public Object endElement(Object o, QName qName, ElementBinding element) { Holder holder = (Holder) o; ValueMetaData value = (ValueMetaData) holder.getValue(); if (value == null || value.getUnderlyingValue() == null) throw new IllegalArgumentException("Factory should have a bean attribute or nested element."); return value; } }
public void setParent(Object parent, Object o, QName elementName, ElementBinding element, ElementBinding parentElement) { Holder holder = (Holder) parent; if (o instanceof ValueMetaData == false) o = new AbstractValueMetaData(o); holder.setValue(o); } }
public Object startElement(Object parent, QName name, ElementBinding element) { return new Holder(new AbstractDependencyValueMetaData()); }
public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx) { Holder value = (Holder) o; AbstractDependencyValueMetaData dependency = (AbstractDependencyValueMetaData) value.getValue(); for (int i = 0; i < attrs.getLength(); ++i) { String localName = attrs.getLocalName(i); if ("bean".equals(localName)) dependency.setValue(attrs.getValue(i)); else if ("property".equals(localName)) dependency.setProperty(attrs.getValue(i)); else if ("state".equals(localName)) dependency.setDependentState(ControllerState.getInstance(attrs.getValue(i))); else if ("whenRequired".equals(localName)) dependency.setWhenRequiredState(ControllerState.getInstance(attrs.getValue(i))); } }