/*
 @license.text@
  */
package com.hammurapi.convert;

import com.hammurapi.common.Context;

/**
 * Part of composite decorators.
 * @author Pavel Vlasov
 *
 * @version $Revision: 1.1 $
 */
public interface AtomicDecorator<S> {
	
	/**
	 * @return Type which converter converts from.
	 */
	Class<S> getSourceType();
	
	/**
	 * Creates decoration.
	 * @param source Source object.
	 * @param master Master decorator to delegate decoration 
	 * of object parts.
	 * @return Decoration or null.
	 */
	Object decorate(S source, Context context, Decorator<?, ?> master);
}
