public ClassResourceInfo getSubResource(Class<?> typedClass, Class<?> instanceClass, Object instance, boolean resolveContexts) { SubresourceKey key = new SubresourceKey(typedClass, instanceClass); ClassResourceInfo cri = subResources.get(key); if (cri == null) { cri = ResourceUtils.createClassResourceInfo(typedClass, instanceClass, this, false, resolveContexts, getBus()); if (cri != null) { subResources.putIfAbsent(key, cri); } } // this branch will run only if ResourceContext is used // or static resolution is enabled for subresources initialized // from within singleton root resources (not default) if (resolveContexts && cri != null && cri.isSingleton() && instance != null && cri.contextsAvailable()) { synchronized (this) { if (!injectedSubInstances.contains(instance.toString())) { InjectionUtils.injectContextProxies(cri, instance); injectedSubInstances.add(instance.toString()); } } } return cri; }
public ClassResourceInfo(ClassResourceInfo cri) { super(cri.getBus()); if (cri.isCreatedFromModel() && !InjectionUtils.isConcreteClass(cri.getServiceClass())) { this.root = cri.root; this.serviceClass = cri.serviceClass; this.uriTemplate = cri.uriTemplate; this.methodDispatcher = new MethodDispatcher(cri.methodDispatcher, this); this.subResources = cri.subResources; //CHECKSTYLE:OFF this.paramFields = cri.paramFields; this.paramMethods = cri.paramMethods; //CHECKSTYLE:ON this.enableStatic = true; this.nameBindings = cri.nameBindings; this.parent = cri.parent; } else { throw new IllegalArgumentException(); } }
public ClassResourceInfo(ClassResourceInfo cri) { super(cri.getBus()); if (cri.isCreatedFromModel() && !InjectionUtils.isConcreteClass(cri.getServiceClass())) { this.root = cri.root; this.serviceClass = cri.serviceClass; this.uriTemplate = cri.uriTemplate; this.methodDispatcher = new MethodDispatcher(cri.methodDispatcher, this); this.subResources = cri.subResources; //CHECKSTYLE:OFF this.paramFields = cri.paramFields; this.paramMethods = cri.paramMethods; //CHECKSTYLE:ON this.enableStatic = true; this.nameBindings = cri.nameBindings; this.parent = cri.parent; } else { throw new IllegalArgumentException(); } }
public void initBeanParamInfo(ServerProviderFactory factory) { if (factory != null) { Set<OperationResourceInfo> oris = getMethodDispatcher().getOperationResourceInfos(); for (OperationResourceInfo ori : oris) { List<Parameter> params = ori.getParameters(); for (Parameter param : params) { if (param.getType() == ParameterType.BEAN) { Class<?> cls = ori.getMethodToInvoke().getParameterTypes()[param.getIndex()]; BeanParamInfo bpi = new BeanParamInfo(cls, getBus()); factory.addBeanParamInfo(bpi); } } } List<Method> methods = super.getParameterMethods(); for (Method m : methods) { if (m.getAnnotation(BeanParam.class) != null) { BeanParamInfo bpi = new BeanParamInfo(m.getParameterTypes()[0], getBus()); factory.addBeanParamInfo(bpi); } } List<Field> fields = super.getParameterFields(); for (Field f : fields) { if (f.getAnnotation(BeanParam.class) != null) { BeanParamInfo bpi = new BeanParamInfo(f.getType(), getBus()); factory.addBeanParamInfo(bpi); } } } }
public void initBeanParamInfo(ProviderFactory factory) { Set<OperationResourceInfo> oris = getMethodDispatcher().getOperationResourceInfos(); for (OperationResourceInfo ori : oris) { List<Parameter> params = ori.getParameters(); for (Parameter param : params) { if (param.getType() == ParameterType.BEAN) { Class<?> cls = ori.getMethodToInvoke().getParameterTypes()[param.getIndex()]; BeanParamInfo bpi = new BeanParamInfo(cls, getBus()); factory.addBeanParamInfo(bpi); } } } List<Method> methods = super.getParameterMethods(); for (Method m : methods) { if (m.getAnnotation(BeanParam.class) != null) { BeanParamInfo bpi = new BeanParamInfo(m.getParameterTypes()[0], getBus()); factory.addBeanParamInfo(bpi); } } List<Field> fields = super.getParameterFields(); for (Field f : fields) { if (f.getAnnotation(BeanParam.class) != null) { BeanParamInfo bpi = new BeanParamInfo(f.getType(), getBus()); factory.addBeanParamInfo(bpi); } } } }
if (cri == null) { cri = ResourceUtils.createClassResourceInfo(typedClass, instanceClass, this, false, resolveContexts, getBus()); if (cri != null) { if (message != null) {
subCri = ancestor != null ? ancestor : createClassResourceInfo(subClass, subClass, cri, false, enableStatic, cri.getBus());
subCri = ancestor != null ? ancestor : createClassResourceInfo(subClass, subClass, cri, false, enableStatic, cri.getBus());