public Class<?> getImplementationClass() { return factory.getImplementationClass(); }
private ImplementationManager getImplementationManager() { if (implementationManager == null) { implementationManager = factory.createManager(); } return implementationManager; }
public void endUpdate() { factory.endUpdate(); }
helper.resolveTypeParameters(factory.getImplementationClass(), typeMapping); Injectable source = new Injectable(InjectableType.PROPERTY, name); if (property.getInstanceValue() != null) { factory.setSupplier(source, property::getInstanceValue); } else { String key = property.getKey(); Type type = factory.getGenericType(source); DataType dataType = getDataType(type, typeMapping); ClassLoader classLoader = factory.getImplementationClass().getClassLoader(); factory.setSupplier(source, new UpdatableSupplier<>(supplier)); Document value = property.getXmlValue(); Type type = factory.getGenericType(source); DataType dataType = getDataType(type, typeMapping); ClassLoader classLoader = factory.getImplementationClass().getClassLoader(); boolean many = property.isMany(); factory.setSupplier(source, propertyBuilder.createSupplier(name, dataType, value, many, classLoader));
protected void createPropertyFactories(PCD definition, ImplementationManagerFactory factory) throws BuilderException { List<PhysicalPropertyDefinition> propertyDefinitions = definition.getPropertyDefinitions(); TypeMapping typeMapping = new TypeMapping(); helper.resolveTypeParameters(factory.getImplementationClass(), typeMapping); for (PhysicalPropertyDefinition propertyDefinition : propertyDefinitions) { String name = propertyDefinition.getName(); Document value = propertyDefinition.getValue(); Injectable source = new Injectable(InjectableType.PROPERTY, name); Type type = factory.getGenericType(source); DataType<?> dataType = getDataType(type, typeMapping); ClassLoader classLoader = classLoaderRegistry.getClassLoader(definition.getClassLoaderId()); boolean many = propertyDefinition.isMany(); ObjectFactory<?> objectFactory = propertyBuilder.createFactory(name, dataType, value, many, classLoader); factory.setObjectFactory(source, objectFactory); } }
public void startUpdate() { factory.startUpdate(); }
protected void buildContexts(PojoComponent component, ImplementationManagerFactory factory) { PojoRequestContext requestContext = new PojoRequestContext(); factory.setSupplier(Injectable.OASIS_REQUEST_CONTEXT, () -> requestContext); PojoComponentContext componentContext = new PojoComponentContext(component, requestContext, info); factory.setSupplier(Injectable.OASIS_COMPONENT_CONTEXT, () -> componentContext); }
public void removeSupplier(Injectable injectable) { factory.removeSupplier(injectable); String name = injectable.getName(); List<Object> instances = scopeContainer.getActiveInstances(this); for (Object instance : instances) { getImplementationManager().removed(instance, name); } // Clear the instance factory as it has changed and will need to be re-created. This can happen if reinjection occurs after the first // instance has been created. recreate.set(true); }
public Supplier<?> getSupplier(Injectable injectable) { return factory.getObjectSupplier(injectable); }
helper.resolveTypeParameters(factory.getImplementationClass(), typeMapping); Injectable source = new Injectable(InjectableType.PROPERTY, name); if (property.getInstanceValue() != null) { factory.setSupplier(source, property::getInstanceValue); } else { String key = property.getKey(); Type type = factory.getGenericType(source); DataType dataType = getDataType(type, typeMapping); ClassLoader classLoader = factory.getImplementationClass().getClassLoader(); factory.setSupplier(source, new UpdatableSupplier<>(supplier)); Document value = property.getXmlValue(); Type type = factory.getGenericType(source); DataType dataType = getDataType(type, typeMapping); ClassLoader classLoader = factory.getImplementationClass().getClassLoader(); boolean many = property.isMany(); factory.setSupplier(source, propertyBuilder.createSupplier(name, dataType, value, many, classLoader));
public void startUpdate() { factory.startUpdate(); }
protected void buildContexts(PojoComponent component, ImplementationManagerFactory factory) { PojoRequestContext requestContext = new PojoRequestContext(); factory.setSupplier(Injectable.OASIS_REQUEST_CONTEXT, () -> requestContext); PojoComponentContext componentContext = new PojoComponentContext(component, requestContext, info); factory.setSupplier(Injectable.OASIS_COMPONENT_CONTEXT, () -> componentContext); }
public void removeSupplier(Injectable injectable) { factory.removeSupplier(injectable); String name = injectable.getName(); List<Object> instances = scopeContainer.getActiveInstances(this); for (Object instance : instances) { getImplementationManager().removed(instance, name); } // Clear the instance factory as it has changed and will need to be re-created. This can happen if reinjection occurs after the first // instance has been created. recreate.set(true); }
public Supplier<?> getSupplier(Injectable injectable) { return factory.getObjectSupplier(injectable); }
public Class<?> getImplementationClass() { return factory.getImplementationClass(); }
private ImplementationManager getImplementationManager() { if (implementationManager == null) { implementationManager = factory.createManager(); } return implementationManager; }
public void startUpdate() { factory.startUpdate(); }
public void endUpdate() { factory.endUpdate(); }
/** * Sets a Supplier. * * @param injectable the injectable identifying the component reference, property or context artifact the Supplier creates instances for * @param supplier the Supplier * @param attributes the injection attributes */ public void setSupplier(Injectable injectable, Supplier<?> supplier, InjectionAttributes attributes) { factory.setSupplier(injectable, supplier, attributes); List<Object> instances = scopeContainer.getActiveInstances(this); String name = injectable.getName(); for (Object instance : instances) { getImplementationManager().updated(instance, name); } // Clear the instance factory as it has changed and will need to be re-created. This can happen if reinjection occurs after the first // instance has been created. recreate.set(true); }
public Class<?> getImplementationClass() { return factory.getImplementationClass(); }