protected ValueDefinition resolvedString(String string) { return new ValueDefinition(string); }
protected ValueDefinition resolvedValue(Object value) { return new ValueDefinition(value); }
protected ValueDefinition resolvedString(Class<?> type, String string) { return new ValueDefinition(string, false, type); }
protected ValueDefinition beanReference(LoaderContext context, Class<?> type, String name) { return new ValueDefinition(new BeanReference(type, name)); }
protected ValueDefinition beanReference(LoaderContext context, String ref) { return new ValueDefinition(new BeanReference(ref)); }
protected ValueDefinition readSet(BeanContainer container, XmlReader reader, LoaderContext context) { boolean merge = boolAttribute(reader, MERGE_ATTRIBUTE, false); Class<?> valueType = javaTypeAttribute(reader, VALUE_TYPE_ATTRIBUTE); Set<ValueDefinition> values = new LinkedHashSet<>(); final QName elementName = reader.getElementName(); while (reader.nextWhileNotEnd(elementName)) { if (reader.isStartElement()) { if (reader.isStartElement(DESCRIPTION_ELEMENT)) { continue; } ValueDefinition vd = readValueElement(container, reader, context); if (null != vd) { values.add(vd); } } } return new ValueDefinition(values, merge, null, null, valueType); }
protected ValueDefinition readList(BeanContainer container, XmlReader reader, LoaderContext context) { boolean merge = boolAttribute(reader, MERGE_ATTRIBUTE, false); Class<?> valueType = javaTypeAttribute(reader, VALUE_TYPE_ATTRIBUTE); List<ValueDefinition> values = new ArrayList<>(); final QName elementName = reader.getElementName(); while (reader.nextWhileNotEnd(elementName)) { if (reader.isStartElement()) { if (reader.isStartElement(DESCRIPTION_ELEMENT)) { continue; } ValueDefinition vd = readValueElement(container, reader, context); if (null != vd) { values.add(vd); } } } return new ValueDefinition(values, merge, null, null, valueType); }
protected ValueDefinition readProps(BeanContainer container, XmlReader reader, LoaderContext context) { boolean merge = boolAttribute(reader, MERGE_ATTRIBUTE, false); Properties props = new Properties(); while (reader.nextWhileNotEnd(PROPS_ELEMENT)) { if (reader.isStartElement()) { if (reader.isStartElement(PROP_ELEMENT)) { props.put(reader.getRequiredAttribute(KEY_ATTRIBUTE), reader.getElementTextAndEnd()); } else { throw new BeanDefinitionException("unsupported child element '" + reader.getElementLocalName() + "' in 'props' element, source : " + reader.getSource()); } } } return new ValueDefinition(props, merge); }
protected ValueDefinition readArray(BeanContainer container, XmlReader reader, LoaderContext context) { boolean merge = boolAttribute(reader, MERGE_ATTRIBUTE, false); Class<?> valueType = javaTypeAttribute(reader, VALUE_TYPE_ATTRIBUTE); List<ValueDefinition> values = new ArrayList<>(); while (reader.nextWhileNotEnd(ARRAY_ELEMENT)) { if (reader.isStartElement()) { if (reader.isStartElement(DESCRIPTION_ELEMENT)) { continue; } if (reader.isStartElement()) { ValueDefinition vd = readValueElement(container, reader, context); if (null != vd) { values.add(vd); } continue; } throw new BeanDefinitionException("unsupported child element '" + reader.getElementLocalName() + "' in element 'array', source : " + reader.getSource()); } } return new ValueDefinition(values.toArray(), merge, null, null, valueType); }
public <T> BeanDefinitionBase create(String id, Class<? super T> typeClass, boolean primary, String name, boolean lazyInit, Class<?> beanClass, Object... constructorArguments) { BeanDefinitionBase bd = new BeanDefinitionBase(RUNTIME_SOURCE); bd.setId(id); bd.setName(name); bd.setType(typeClass); bd.setBeanClass(beanClass); bd.setBeanClassType(BeanType.of(beanClass)); bd.setPrimary(primary); bd.setSingleton(true); bd.setLazyInit(lazyInit); for (Object arg : constructorArguments) { bd.addConstructorArgument(new ArgumentDefinition(new ValueDefinition(arg))); } resolveBeanConstructor(bd); return bd; }
@SuppressWarnings({"rawtypes", "unchecked"}) protected ValueDefinition readMap(BeanContainer container, XmlReader reader, LoaderContext context) { boolean merge = boolAttribute(reader, MERGE_ATTRIBUTE, false); Class<?> keyType = javaTypeAttribute(reader, KEY_TYPE_ATTRIBUTE); Class<?> valueType = javaTypeAttribute(reader, VALUE_TYPE_ATTRIBUTE); Map map = new LinkedHashMap(); final QName elementName = reader.getElementName(); while (reader.nextWhileNotEnd(elementName)) { if (reader.isStartElement()) { if (reader.isStartElement(DESCRIPTION_ELEMENT)) { continue; } if (reader.isStartElement(ENTRY_ELEMENT)) { ValueDefinition key = readEntryKey(container, reader, context); ValueDefinition val = readEntryValue(container, reader, context); map.put(key, val); continue; } throw new BeanDefinitionException("unsupported child element '" + reader.getElementLocalName() + "' in element 'map', source : " + reader.getSource()); } } //Skip END event reader.next(); return new ValueDefinition(map, merge, null, keyType, valueType); }
protected void processBeanList(BeanContainer container, XmlReader reader, LoaderContext context) { Object source = reader.getSource(); Class<?> beanType = classAttribute(reader, TYPE_ATTRIBUTE, true); String qualifier = reader.getAttribute(QUALIFIER_ATTRIBUTE); boolean override = reader.getBooleanAttribute(OVERRIDE_ATTRIBUTE, context.defaultOverride); List<ValueDefinition> values = new ArrayList<ValueDefinition>(); final QName elementName = reader.getElementName(); while (reader.nextWhileNotEnd(elementName)) { if (reader.isStartElement()) { if (reader.isStartElement(DESCRIPTION_ELEMENT)) { continue; } if (reader.isStartElement(REF_ELEMENT)) { values.add(readRefElement(context, reader)); continue; } if (reader.isStartElement(BEAN_ELEMENT)) { BeanDefinition bd = readBean(container, reader, context); if (null != bd) { values.add(new ValueDefinition(bd)); } continue; } throw new BeanDefinitionException("The value element '" + reader.getElementLocalName() + "' not supported in 'bean-list' element, source : " + reader.getSource()); } } container.addBeanList(new BeanListDefinition(source, beanType, qualifier, override, values)); }
BeanDefinition bd = readBean(container, reader, context); if (null != bd) { return new ValueDefinition(bd); } else { return null;