private static List<MediaType> resolveProducedTypes(final AnnotatedMethod am, final List<MediaType> defaultProducedTypes) { // Override default types if the annotation is present on the method if (am.isAnnotationPresent(Produces.class)) { return extractMediaTypes(am.getAnnotation(Produces.class)); } return defaultProducedTypes; }
@Override public void visitResourceMethod(final ResourceMethod method) { switch (method.getType()) { case RESOURCE_METHOD: visitJaxrsResourceMethod(method); break; case SUB_RESOURCE_LOCATOR: visitSubResourceLocator(method); break; } }
/** * Create a new resource method invocable model backed by an inflector instance. * * @param inflector inflector processing the request method. * * @return Invocable. */ public static <T> Invocable create(Inflector<Request, T> inflector) { return create(MethodHandler.create(inflector), APPLY_INFLECTOR_METHOD, false); }
@Override public ResourceModel processSubResource(ResourceModel subResource, Configuration configuration) { final Resource resource = Resource.builder() .mergeWith(Resource.from(EnhancedSubResourceSingleton.class)) .mergeWith(Resource.from(EnhancedSubResource.class)) .mergeWith(subResource.getResources().get(0)).build(); return new ResourceModel.Builder(true).addResource(resource).build(); } }
@Override public void accept(ResourceModelVisitor visitor) { if (getParent() == null) { visitor.visitResource(this); } else { visitor.visitChildResource(this); } }
private void validateWithErrors(final ResourceModelComponent component) { for (ResourceModelVisitor validator : validators) { component.accept(validator); } final List<? extends ResourceModelComponent> componentList = component.getComponents(); if (null != componentList) { for (ResourceModelComponent subComponent : componentList) { validateWithErrors(subComponent); } } } }
private Resource getLocatorResource(final RuntimeResource resource) { for (final Resource res : resource.getResources()) { if (res.getResourceLocator() != null) { return res; } } return null; }
@Override public boolean requiresEntity() { for (Parameter p : getParameters()) { if (Parameter.Source.ENTITY == p.getSource()) { return true; } } return false; }
/** * Build a new resource model. * * @return new (immutable) resource model. */ public Resource build() { final Data resourceData = buildResourceData(); return new Resource(null, resourceData); }
private static List<MediaType> resolveConsumedTypes(final AnnotatedMethod am, final List<MediaType> defaultConsumedTypes) { // Override default types if the annotation is present on the method if (am.isAnnotationPresent(Consumes.class)) { return extractMediaTypes(am.getAnnotation(Consumes.class)); } return defaultConsumedTypes; }
@Override public void accept(ResourceModelVisitor visitor) { if (getParent() == null) { visitor.visitResource(this); } else { visitor.visitChildResource(this); } }
private void validateWithErrors(final ResourceModelComponent component) { for (ResourceModelVisitor validator : validators) { component.accept(validator); } final List<? extends ResourceModelComponent> componentList = component.getComponents(); if (null != componentList) { for (ResourceModelComponent subComponent : componentList) { validateWithErrors(subComponent); } } } }
/** * Create a new resource method invocable model backed by an inflector class. * * @param inflectorClass inflector syb-type processing the request method. * @return Invocable. */ public static Invocable create(Class<? extends Inflector> inflectorClass) { return create(MethodHandler.create(inflectorClass), APPLY_INFLECTOR_METHOD, false); }
private Resource getLocatorResource(final RuntimeResource resource) { for (final Resource res : resource.getResources()) { if (res.getResourceLocator() != null) { return res; } } return null; }
@Override public boolean requiresEntity() { for (Parameter p : getParameters()) { if (Parameter.Source.ENTITY == p.getSource()) { return true; } } return false; }
private static List<MediaType> resolveProducedTypes(final AnnotatedMethod am, final List<MediaType> defaultProducedTypes) { // Override default types if the annotation is present on the method if (am.isAnnotationPresent(Produces.class)) { return extractMediaTypes(am.getAnnotation(Produces.class)); } return defaultProducedTypes; }
private Invocable createInvocable() { assert handlerClass != null || handlerInstance != null; final MethodHandler handler; if (handlerClass != null) { handler = MethodHandler.create(handlerClass, encodedParams, handlerParameters); } else { // instance based handler = MethodHandler.create(handlerInstance, handlerParameters); } return Invocable.create(handler, definitionMethod, handlingMethod, encodedParams, routingResponseType); } }
/** * Create a new resource method invocable model backed by an inflector instance. * * @param inflector inflector processing the request method. * * @return Invocable. */ public static <T> Invocable create(Inflector<Request, T> inflector) { return create(MethodHandler.create(inflector), APPLY_INFLECTOR_METHOD, false); }
/** * Create a new resource method invocable model backed by an inflector class. * * @param inflectorClass inflector syb-type processing the request method. * @return Invocable. */ public static Invocable create(Class<? extends Inflector> inflectorClass) { return create(MethodHandler.create(inflectorClass), APPLY_INFLECTOR_METHOD, false); }
private Invocable createInvocable() { assert handlerClass != null || handlerInstance != null; final MethodHandler handler; if (handlerClass != null) { handler = MethodHandler.create(handlerClass, encodedParams, handlerParameters); } else { // instance based handler = MethodHandler.create(handlerInstance, handlerParameters); } return Invocable.create(handler, definitionMethod, handlingMethod, encodedParams, routingResponseType); } }