public Component addSubComponent(SubComponent subComponent) { getSubComponents().add(subComponent); return this; }
/** * Digests attributes and child elements of Component element. * @param node the Component element. * @param component the {@link org.dhatim.edisax.model.internal.Component} to populate. * @param namespacePrefix the prefix used to name elements in xml. * @throws org.dhatim.edisax.EDIConfigurationException is thrown when values are badly formatted. */ private void digestComponent(Node node, Component component, String namespacePrefix, MappingNode parent) throws EDIConfigurationException { setValuesForComponent(component, node, namespacePrefix, parent); NodeList nodes = node.getChildNodes(); for (int i = 0; i < nodes.getLength(); i++) { Node currentNode = nodes.item(i); if (currentNode.getNodeName().equalsIgnoreCase(namespacePrefix + "sub-component")) { SubComponent subComponent = new SubComponent(); component.getSubComponents().add(subComponent); setValuesForSubComponent(currentNode, subComponent, namespacePrefix, component); } } }
private void addComponents(List<Component> components, Element fieldEl) { for(Component component : components) { Element componentEl = newElement("component", fieldEl, component); mapBeanProperties(component, componentEl, "name", "xmltag", "nodeTypeRef", "truncatable", "maxLength", "minLength", "required", "dataType", "dataTypeParametersString|dataTypeParameters"); addSubComponents(component.getSubComponents(), componentEl); } }
if (component.getSubComponents().size() == 0 && (!currentFieldComponents[i].equals(""))) { validateValueNode(component, currentFieldComponents[i]);
/** * Converts {@link Component} to {@link EAttribute} * * @param component * @return */ private static EStructuralFeature componentToEAttribute(Component component) { if (!component.getSubComponents().isEmpty()) { throw new IllegalArgumentException( "Sub-components are not supported yet for component " + component.getXmltag()); } EAttribute result = EcoreFactory.eINSTANCE.createEAttribute(); result.setName(toJavaName(component.getXmltag(), false)); result.setLowerBound(component.isRequired() ? 1 : 0); result.setUpperBound(1); result.setEType(toEType(component.getTypeClass())); annotate(result, "truncable", String.valueOf(component.isTruncatable())); annotate(result, "required", String.valueOf(component.isRequired())); annotate(result, ANNOTATION_TYPE_KEY, SmooksMetadata.COMPONENT_TYPE); annotateValueNode(result, component); addMappingInformation(result, component); return result; }
List<SubComponent> expectedSubComponents = expectedComponent.getSubComponents();