...
Code Block | ||
---|---|---|
| ||
@Inject private ModelPersister modelPersister; //... SampleModel model = resource.adaptTo(SampleModel.class); // inject SampleModel with Slice model.setPageLimit(123); modelPersister.persist(model, resource); resource.getResourceResolver().commit(); |
Read more about Slice Persistence
Extending mapper made easy
Extending the out-of-the-box mapper is now much easier. Thanks to Guice multibindings you can easily register your own Field Processor which can map a field in a custom way. Below code snippet demonstrate how you can register your own field processor ({{MyCustomFieldProcessor}}) with use of multibinding:
Code Block | ||
---|---|---|
| ||
public class CustomProcessorModule implements Module {
@Override
protected void configure() {
Multibinder<FieldProcessor> multibinder = Multibinder.newSetBinder(binder(), FieldProcessor.class);
multibinder.addBinding().to(MyCustomFieldProcessor.class);
}
} |
Read more about extending mapper.
@PreMapping @PostMapping annotations
...
Code Block | ||
---|---|---|
| ||
@SliceResource public class MyComponentModel { @JcrProperty private String property; @Inject private ModelProvider modelProvider; @PreMapping public void preMapping() { // modelProvider is already setinjected; property is not setmapped yet } @PostMapping public void postMapping() { // modelProvider and property are already set } } |
...