private DataObjectDefinition getDataObjectByName(String name) { for (DataObjectDefinition dod : subDataObjects) { if (dod.getName().equals(name)) return dod; } return null; }
public DataObjectType(Node xmlNode) throws SclParserException { super(xmlNode); this.cdc = ParserUtils.parseAttribute(xmlNode, "cdc"); if (this.cdc == null) throw new SclParserException(xmlNode, "cdc is missing!"); NodeList elementNodes = xmlNode.getChildNodes(); if (elementNodes != null) { this.dataAttributes = new LinkedList<DataAttributeDefinition>(); this.subDataObjects = new LinkedList<DataObjectDefinition>(); for (int i = 0; i < elementNodes.getLength(); i++) { Node elementNode = elementNodes.item(i); if (elementNode.getNodeName().equals("DA")) { DataAttributeDefinition dad = new DataAttributeDefinition(elementNode); DataAttributeDefinition otherDefinition = getDataAttributeByName(dad.getName()); if (otherDefinition != null) { if (otherDefinition.getFc() == dad.getFc()) throw new SclParserException( xmlNode, "DO type definition contains multiple elements of name \"" + dad.getName() + "\""); } if (getDataObjectByName(dad.getName()) != null) { throw new SclParserException( xmlNode, "DO type definition contains multiple elements of name \"" + dad.getName() + "\""); } dataAttributes.add(dad); } else if (elementNode.getNodeName().equals("SDO")) { DataObjectDefinition dod = new DataObjectDefinition(elementNode); if ((getDataAttributeByName(dod.getName()) != null) || (getDataObjectByName(dod.getName()) != null)) throw new SclParserException( xmlNode, "DO type definition contains multiple elements of name \"" + dod.getName() + "\""); this.subDataObjects.add(dod); } } } }