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

com.github.nill14.utils.init.api.IPropertyResolver Maven / Gradle / Ivy

The newest version!
package com.github.nill14.utils.init.api;

import java.io.Serializable;
import java.util.List;

import javax.annotation.Nullable;

import com.github.nill14.utils.init.impl.CallerContext;
import com.github.nill14.utils.init.impl.EmptyPropertyResolver;

public interface IPropertyResolver extends Serializable {

	/**
	 * 
	 * @param type The property type descriptor.
	 * @param context 
	 * @return The resolved property provider or nullProvider if property could not be resolved.
	 */
	@Nullable Object resolve(IParameterType type, CallerContext context);
	
	
	static IPropertyResolver empty() {
		return EmptyPropertyResolver.empty();
	}
	
//	static  Provider nullProvider() {
//		return AbstractPropertyResolver.nullProvider();
//	}
	
	IBeanInjector toBeanInjector(CallerContext context);
	
	
	 void initializeBean(IBeanDescriptor beanDescriptor, Object instance, CallerContext context);
	
	 void destroyBean(IBeanDescriptor beanDescriptor, Object instance);
	
	void insertInitializer(IPojoInitializer initializer);

	void appendInitializer(IPojoInitializer extraInitializer);

	List getInitializers(); 
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy