/* vim: set ts=2 et sw=2 cindent fo=qroca: */
package com.globant.katari.trails;
import org.apache.commons.lang.Validate;
import org.trails.descriptor.IPropertyDescriptor;
import org.trails.descriptor.annotation.AbstractAnnotationHandler;
import org.trails.descriptor.annotation.DescriptorAnnotationHandler;
/**
* Creates a new {@link ViewGroupDivisionDescriptorExtension} with the value
* from the {@link ViewGroupDivision} annotation.
*
* @author juan.pereyra
*/
public class ViewGroupDivisionAnnotationHandler extends
AbstractAnnotationHandler implements
DescriptorAnnotationHandler<ViewGroupDivision, IPropertyDescriptor> {
/** Creates a {@link ViewGroupDivisionDescriptorExtension} and adds it to the
* property descriptor.
*
* @param annotation Annotation added to the property. It cannot be null.
* @param descriptor The property descriptor. It cannot be null.
*
* @return Returns descriptor, with the possible values extension.
*/
public IPropertyDescriptor decorateFromAnnotation(final ViewGroupDivision
annotation, final IPropertyDescriptor descriptor) {
Validate.notNull(annotation, "The annotation cannot be null");
Validate.notNull(descriptor, "The descriptor cannot be null");
ViewGroupDivisionDescriptorExtension extension
= new ViewGroupDivisionDescriptorExtension(annotation.cssClass());
descriptor.addExtension(
ViewGroupDivisionDescriptorExtension.class.getName(), extension);
return descriptor;
}
}