private void visit(Type type, InjectingComponentType componentType, InjectionSite site, Class<?> clazz, Member member, IntrospectionContext context) { if (!(type instanceof Class)) { context.addError(new InvalidContextType("Context type " + type + " is not supported in " + clazz.getName(), member, componentType)); } else if (RequestContext.class.isAssignableFrom((Class<?>) type)) { componentType.addInjectionSite(site, Injectable.OASIS_REQUEST_CONTEXT); } else if (ComponentContext.class.isAssignableFrom((Class<?>) type)) { componentType.addInjectionSite(site, Injectable.OASIS_COMPONENT_CONTEXT); } else { context.addError(new InvalidContextType("Context type is not supported: " + type, member, componentType)); } } }
/** * Add a reference and its associated with an injection site. * * @param reference the reference to add * @param injectionSite the injection site for the reference */ public void add(Reference<ComponentType> reference, InjectionSite injectionSite) { super.add(reference); Injectable injectable = new Injectable(InjectableType.REFERENCE, reference.getName()); addInjectionSite(injectionSite, injectable); injectionSiteMapping.put(reference, injectionSite); }
/** * Add a resource reference and its associated an injection site. * * @param definition the resource reference to add * @param injectionSite the injection site for the resource */ public void add(ResourceReference definition, InjectionSite injectionSite) { super.add(definition); Injectable injectable = new Injectable(InjectableType.RESOURCE, definition.getName()); addInjectionSite(injectionSite, injectable); injectionSiteMapping.put(definition, injectionSite); }
/** * Adds a callback proxy definition and its associated injection site * * @param definition the callback proxy definition * @param injectionSite the proxy injection site */ public void add(Callback definition, InjectionSite injectionSite) { definition.setParent(this); String name = definition.getName(); callbacks.put(name, definition); Injectable injectable = new Injectable(InjectableType.CALLBACK, name); addInjectionSite(injectionSite, injectable); injectionSiteMapping.put(definition, injectionSite); }
/** * Add a property and its associated with an injection site. * * @param property the property to add * @param injectionSite the injection site for the property */ public void add(Property property, InjectionSite injectionSite) { super.add(property); Injectable injectable = new Injectable(InjectableType.PROPERTY, property.getName()); addInjectionSite(injectionSite, injectable); injectionSiteMapping.put(property, injectionSite); }
/** * Add a producer and its associated injection site. * * @param producer the producer to add * @param injectionSite the injection site for the producer */ public void add(Producer<ComponentType> producer, InjectionSite injectionSite) { super.add(producer); Injectable injectable = new Injectable(InjectableType.PRODUCER, producer.getName()); addInjectionSite(injectionSite, injectable); injectionSiteMapping.put(producer, injectionSite); }
/** * Add a consumer and its associated accessible object. * * @param consumer the consumer to add * @param object the consumer method, field or ctor */ public void add(Consumer<ComponentType> consumer, InjectionSite injectionSite, AccessibleObject object) { super.add(consumer); Injectable injectable = new Injectable(InjectableType.CONSUMER, consumer.getName()); addInjectionSite(injectionSite, injectable); injectionSiteMapping.put(consumer, injectionSite); consumerSignatures.put(consumer.getName(), object); }