All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.neba.api.resourcemodels.ResourceModelPostProcessor Maven / Gradle / Ivy

Go to download

Contains all annotations, tag libraries and lifecycle callback interfaces of NEBA. All packages of this API bundle are exported. Change to the API that are not byte code compatible only occur in major revisions.

There is a newer version: 5.2.3
Show newest version
/**
 * Copyright 2013 the original author or authors.
 * 
 * Licensed under the Apache License, Version 2.0 the "License";
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0

 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
**/

package io.neba.api.resourcemodels;

import org.apache.sling.api.resource.Resource;
import org.springframework.beans.factory.BeanFactory;

/**
 * Lifecycle callback for
 * {@link io.neba.api.annotations.ResourceModel resource models}. 
* * {@link #processBeforeMapping(Object, Resource, BeanFactory)} is invoked after * the bean was created and initialized by the {@link BeanFactory} but before * all resource properties are mapped. All spring lifecycle callbacks where * already called at this point.
* * {@link #processAfterMapping(Object, Resource, BeanFactory)} is invoked after * the bean was created and initialized by the {@link BeanFactory} and all * resource properties are mapped. All spring lifecycle callbacks where already * called at this point.
* * OSGi services providing this interface are automatically detected by the core * and apply to all resource models. There are no guarantees concerning the * order in which these post processors are invoked; if a specific order is * required, implementing a {@link ResourceModelPostProcessor} that delegates to * other post processors in the desired order is advised. * * @author Olaf Otto */ public interface ResourceModelPostProcessor { /** * Lifecycle callback invoked before the resource properties are mapped onto * the {@link io.neba.api.annotations.ResourceModel}. * * @param resourceModel is never null. * @param resource is never null. * @param factory is never null. * @return a new resource model overriding the provided resourceModel, or * null if the resource model is not to be changed. */ T processBeforeMapping(T resourceModel, Resource resource, BeanFactory factory); /** * Lifecycle callback invoked after the resource properties are mapped onto * the {@link io.neba.api.annotations.ResourceModel}. * * @param resourceModel is never null. * @param resource is never null. * @param factory is never null. * @return a new resource model overriding the provided resourceModel, or * null if the resource model is not to be changed. */ T processAfterMapping(T resourceModel, Resource resource, BeanFactory factory); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy