public Object parse(final Element element, final Parse parse, final Parser parser) { final ObjectDescriptor chainDescriptor = new ObjectDescriptor(); final ListDescriptor listDescriptor = (ListDescriptor) new ListBinding().parse(element, parse, parser); final ArgDescriptor argDescriptor = new ArgDescriptor(); argDescriptor.setDescriptor(listDescriptor); chainDescriptor.setClassName(Misc.class.getName()); chainDescriptor.setMethodName("getChainOf"); chainDescriptor.addArgDescriptor(argDescriptor); return chainDescriptor; }
/** convenience method to add a type based field injection */ public void addTypedInjection(String fieldName, Class<?> type) { addInjection(fieldName, new EnvironmentTypeRefDescriptor(type)); }
public Object construct(WireContext wireContext) { EventExecutor eventExecutor = (EventExecutor) super.construct(wireContext); if (autoStart) { wireContext.addListener(new EventExecutorStopper(eventExecutor)); } return eventExecutor; }
public Object parse(final Element element, final Parse parse, final Parser parser) { final ObjectDescriptor chainDescriptor = new ObjectDescriptor(); final ListDescriptor listDescriptor = (ListDescriptor) new ListBinding().parse(element, parse, parser); final ArgDescriptor argDescriptor = new ArgDescriptor(); argDescriptor.setDescriptor(listDescriptor); chainDescriptor.setClassName(QuerierListAccessor.class.getName()); chainDescriptor.addArgDescriptor(argDescriptor); return chainDescriptor; }
public Object parse(Element element, Parse parse, Parser parser) { ObjectDescriptor descriptor = new ObjectDescriptor(); if (!element.hasAttribute("class")) { parse.addProblem("element '" + XmlUtil.getTagLocalName(element) + " must have a 'class' attribute"); } String type = element.getAttribute("class"); descriptor.setClassName(type); List<Element> argElements = XmlUtil.elements(element, "arg"); List<ArgDescriptor> argDescriptors = ((WireParser) parser).parseArgs(argElements, parse); descriptor.setArgDescriptors(argDescriptors); return descriptor; }
public Object parse(Element element, Parse parse, Parser parser) { ObjectDescriptor descriptor = new ObjectDescriptor(); descriptor.setClassName(className); if (factoryObjectName != null) { parse List<ArgDescriptor> argDescriptors = wireParser.parseArgs(argElements, parse); descriptor.setArgDescriptors(argDescriptors); descriptor.setFactoryObjectName(factoryObjectName); if (factoryElement != null) { parse Descriptor factoryDescriptor = (Descriptor) parser.parseElement( factoryDescriptorElement, parse, WireParser.CATEGORY_DESCRIPTOR); descriptor.setFactoryDescriptor(factoryDescriptor); descriptor.setMethodName(element.getAttribute("method")); descriptor.setArgDescriptors(argDescriptors); } else if (className == null) { parse descriptor.setOperations(operations); false, parse); if (isAutoWireEnabled != null) { descriptor.setAutoWireEnabled(isAutoWireEnabled.booleanValue());
@Override public PvmEnvironmentFactory parseDocument(final Document document, final Parse parse) { // Default parsing final PvmEnvironmentFactory defaultEnvironmentFactory = (PvmEnvironmentFactory) super.parseDocument(document, parse); // Add authentication descriptor to application block final ObjectDescriptor authenticationDescriptor = new ObjectDescriptor(); authenticationDescriptor.setClassName(Authentication.class.getName()); defaultEnvironmentFactory.getEnvironmentFactoryCtxWireContext().getWireDefinition().addDescriptor(authenticationDescriptor); return defaultEnvironmentFactory; }
public void event(Object source, String eventName, Object info) { if (LOG.isLoggable(Level.FINE)) { LOG.fine("invoking " + methodName + " on " + target + " for event " + eventName); } try { Object[] args = ObjectDescriptor.getArgs(wireContext, argDescriptors); Class<?> clazz = target.getClass(); Method method = ReflectUtilDescriptor.findMethod(clazz, methodName, argDescriptors, args); if (method == null) { String message = ExceptionManager.getInstance().getFullMessage( "bp_MIL_1", ReflectUtilDescriptor.getSignature(methodName, argDescriptors, args), target); throw new WireException(message); } ReflectUtil.invoke(method, target, args); } catch (WireException e) { throw e; } catch (Exception e) { String message = ExceptionManager.getInstance().getFullMessage( "bp_MIL_2", methodName, e.getMessage()); throw new WireException(message, e); } } }
/** add an injection based on a descriptor */ public void addInjection(String fieldName, Descriptor descriptor) { FieldOperation injectionOperation = new FieldOperation(); injectionOperation.setFieldName(fieldName); injectionOperation.setDescriptor(descriptor); addOperation(injectionOperation); }
/** * Initializes the specified object. If auto-wiring was set to * <code>true</code>, auto-wiring is performed (see * {@link #autoWire(Object, WireContext)}). Fields and properties injections * are then performed. * */ public void initialize(Object object, WireContext wireContext) { try { // specified operations takes precedence over auto-wiring. // e.g. in case there is a collision between // a field or property injection and an autowired value, // the field or property injections should win. // That is why autowiring is done first if (isAutoWireEnabled) { autoWire(object, wireContext); } if (operations != null) { for (Operation operation : operations) { operation.apply(object, wireContext); } } } catch (Exception e) { String message = ExceptionManager.getInstance().getMessage( "bp_OD_9", (name != null ? name : className), e.getMessage()); throw new WireException(message, e); } }
public void apply(Object target, WireContext wireContext) { try { Object[] args = ObjectDescriptor.getArgs(wireContext, argDescriptors); Class<?> clazz = target.getClass(); Method method = ReflectUtilDescriptor.findMethod(clazz, methodName, argDescriptors, args); if (method == null) { String message = ExceptionManager.getInstance().getFullMessage( "bp_IO_1", ReflectUtilDescriptor.getSignature(methodName, argDescriptors, args)); throw new WireException(message); } ReflectUtil.invoke(method, target, args); } catch (WireException e) { throw e; } catch (Exception e) { String message = ExceptionManager.getInstance().getFullMessage( "bp_IO_2", methodName, e.getMessage()); throw new WireException(message, e); } }
private void parseBooleanAttribute(final Element element, final String attributeName, final ObjectDescriptor descriptor, final String fieldName, final Parse parse) { final Boolean boolValue = XmlUtil.attributeBoolean(element, attributeName, false, parse); if (boolValue != null) { descriptor.addInjection(fieldName, new BooleanDescriptor(boolValue)); } }
Object[] args = getArgs(wireContext, argDescriptors); Constructor<?> constructor = ReflectUtilDescriptor.findConstructor(clazz, argDescriptors, args); Object[] args = ObjectDescriptor.getArgs(wireContext, argDescriptors); Method method = ReflectUtilDescriptor.findMethod(clazz, methodName, argDescriptors, args);
private void parseIntAttribute(final Element element, final String attributeName, final ObjectDescriptor descriptor, final String fieldName, final Parse parse) { final Integer intValue = XmlUtil.attributeInteger(element, attributeName, false, parse); if (intValue != null) { descriptor.addInjection(fieldName, new IntegerDescriptor(intValue)); } }