/** * */ package org.minnal.instrument.resource.metadata; import javax.ws.rs.Path; import org.minnal.instrument.metadata.MetaDataBuilder; import org.minnal.instrument.resource.metadata.handler.AbstractResourceAnnotationHandler; import org.minnal.utils.reflection.ClassUtils; /** * @author ganeshs * */ public class ResourceMetaDataBuilder extends MetaDataBuilder<ResourceMetaData, AbstractResourceAnnotationHandler>{ /** * @param resourceClass */ public ResourceMetaDataBuilder(Class<?> resourceClass) { super(new ResourceMetaData(resourceClass, ClassUtils.getAnnotation(resourceClass, Path.class).value())); } /** * @param metaData */ ResourceMetaDataBuilder(ResourceMetaData metaData) { super(metaData); } @Override public ResourceMetaData build() { ResourceMetaData metaData = super.build(); for (ResourceMetaData subResource : metaData.getSubResources()) { ResourceMetaDataBuilder builder = new ResourceMetaDataBuilder(subResource); builder.build(); } return metaData; } @Override protected Class<?> getVistingClass() { return getMetaData().getResourceClass(); } }