/** * */ package org.minnal.instrument.entity.metadata.handler; import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.lang.reflect.Method; import javax.persistence.OneToMany; import org.minnal.instrument.entity.metadata.CollectionMetaData; import org.minnal.instrument.entity.metadata.EntityMetaData; /** * @author ganeshs * */ public class OneToManyAnnotationHandler extends AbstractEntityAnnotationHandler { @Override public void handle(EntityMetaData metaData, Annotation annotation, Method method) { Class<?> elementType = getElementType(method.getGenericReturnType()); CollectionMetaData collectionMetaData = new CollectionMetaData(metaData.getEntityClass(), getGetterName(method, false), elementType, method.getReturnType(), isEntity(elementType)); metaData.addCollection(collectionMetaData); } @Override public void handle(EntityMetaData metaData, Annotation annotation, Field field) { String name = field.getName(); Class<?> elementType = getElementType(field.getGenericType()); CollectionMetaData collectionMetaData = new CollectionMetaData(metaData.getEntityClass(), name, elementType, field.getType(), isEntity(elementType)); metaData.addCollection(collectionMetaData); } @Override public Class<?> getAnnotationType() { return OneToMany.class; } }