@Override public void mixedElement(String elementName) throws SAXException { if (isVerbose) { System.out.println("mixedElement: elementName: " + elementName); } final MetadataElement element = new MetadataElement(); element.setName(elementName); element.setType(elementName); metadata.addClassElement(currentContentModel, element); }
public boolean filter(final Metadata metadata, final TreeWalker walker) { final Node parent = walker.getCurrentNode(); final Element element = (Element) parent; if (XsdElementEnum.attributeGroup.isTagNameEqual(element.getTagName())) { final Node refNode = element.getAttributes().getNamedItem("ref"); if (refNode != null) { final MetadataElement refElement = new MetadataElement(element); refElement.setIsRef(true); final Node parentNodeWithName = MetadataUtil.getNextParentNodeWithAttr(parent.getParentNode(), "name"); if (parentNodeWithName != null) { final Element parentElementWithName = (Element) parentNodeWithName; final String groupOrClassName = MetadataUtil.getAttributeValue(parentElementWithName, "name"); if (XsdElementEnum.attributeGroup.isTagNameEqual(parentElementWithName.getTagName())) { metadata.addGroupReference(groupOrClassName, refElement); return true; } else { metadata.addClassReference(groupOrClassName, refElement); return true; } } } } return false; } }
public boolean filter(final Metadata metadata, final TreeWalker walker) { final Node parent = walker.getCurrentNode(); final Element element = (Element) parent; if (XsdElementEnum.enumeration.isTagNameEqual(element.getTagName())) { final Node valueNode = element.getAttributes().getNamedItem("value"); if (valueNode != null) { final String enumValue = valueNode.getNodeValue(); final Node simpleTypeNode = MetadataUtil.getNextParentNodeWithAttr(parent.getParentNode(), "name"); if (simpleTypeNode != null) { final Element parentElementWithName = (Element) simpleTypeNode; final String enumName = MetadataUtil.getAttributeValue(parentElementWithName, "name"); metadata.addEnumValue(enumName, enumValue); return true; } } } return false; }
/** * Adds a new reference to the specific element class. If no element class is found, then a new element class. will * be created. * * @param className * the class name * @param classReference * the new reference to be added. */ public void addClassReference(final String className, final MetadataElement classReference) { classReference.setRef(getNamespaceValue(classReference.getRef())); for (MetadataItem item : classList) { if (item.getName().equals(className) && item.getNamespace().equals(getCurrentNamespace()) && item.getPackageApi().equals(getCurrentPackageApi())) { item.getReferences().add(classReference); return; } } final MetadataItem newItem = new MetadataItem(className); newItem.getReferences().add(classReference); newItem.setNamespace(getCurrentNamespace()); newItem.setSchemaName(getCurrentSchmema()); newItem.setPackageApi(getCurrentPackageApi()); newItem.setPackageImpl(getCurrentPackageImpl()); classList.add(newItem); }
/** * Adds a enumeration value to the specified enumeration name. If no enumeration class is found, then a new * enumeration class will be created. * * @param enumName * the enumeration class name. * @param enumValue * the new enumeration value. */ public void addEnumValue(final String enumName, final String enumValue) { for (MetadataEnum instance : enumList) { if (instance.getName().equals(enumName) && instance.getNamespace().equals(getCurrentNamespace())) { instance.addValue(enumValue); return; } } final MetadataEnum newEnum = new MetadataEnum(enumName); newEnum.addValue(enumValue); newEnum.setNamespace(getCurrentNamespace()); newEnum.setSchemaName(getCurrentSchmema()); newEnum.setPackageApi(getCurrentPackageApi()); enumList.add(newEnum); }
for (final MetadataItem metadataClass : metadata.getClassList()) { if (metadataClass.getName().equals(currentContentModel)) { childElementCounter = metadataClass.getElements().size(); final MetadataItem type = new MetadataItem(currentContentModel); type.setMappedTo("xsd:string"); type.setNamespace(metadata.getCurrentNamespace()); metadata.getDataTypeList().add(type); metadata.getClassList().remove(foundClass);
final String baseStr = MetadataUtil.getAttributeValue(element, "base"); if (baseStr != null) { for (MetadataItem metadataClass : metadata.getClassList()) { if (metadataClass.getName().equals(baseStr)) { final Node parentNodeWithName = MetadataUtil.getNextParentNodeWithAttr(parent.getParentNode(), if (className != null) { for (MetadataElement metadataElement : metadataClass.getElements()) { metadata.addClassElement(className, metadataElement); final MetadataItem dataType = new MetadataItem(dataTypeName); dataType.setMappedTo(typeStr); dataType.setNamespace(metadata.getCurrentNamespace()); dataType.setSchemaName(metadata.getCurrentSchmema()); metadata.getDataTypeList().add(dataType);
final StringBuilder sb = new StringBuilder(); for (final MetadataItem item : metadata.getGroupList()) { sb.append(LINE); sb.append(NEWLINE); for (MetadataEnum enumItem : metadata.getEnumList()) { sb.append(LINE); sb.append(NEWLINE); for (MetadataItem item : metadata.getClassList()) { sb.append(LINE); sb.append(NEWLINE); for (MetadataItem dataType : metadata.getDataTypeList()) { sb.append(LINE); sb.append(NEWLINE);
@Override public boolean filter(final Metadata metadata, final TreeWalker walker) { final Node parent = walker.getCurrentNode(); final Element element = (Element) parent; if (XsdElementEnum.union.isTagNameEqual(element.getTagName())) { final String memberTypesStr = MetadataUtil.getAttributeValue(element, "memberTypes"); if (memberTypesStr != null) { final Node parentNodeWithName = MetadataUtil.getNextParentNodeWithAttr(parent.getParentNode(), "name"); if (parentNodeWithName != null) { final Element parentElementWithName = (Element) parentNodeWithName; final String parentName = MetadataUtil.getAttributeValue(parentElementWithName, "name"); final String[] items = memberTypesStr.split(" ", -1); if (items != null && items.length > 1) { final MetadataItem dataType = new MetadataItem(parentName); dataType.setMappedTo(getDataType(items)); dataType.setNamespace(metadata.getCurrentNamespace()); dataType.setSchemaName(metadata.getCurrentSchmema()); metadata.getDataTypeList().add(dataType); } } } } return false; }
public String getFqnClass(final MetadataElement element) { final String namespace = splitElementType(element.getType())[0]; final String localname = splitElementType(element.getType())[1]; // search in all enumeration for (final MetadataEnum metadataEnum : metadata.getEnumList()) { if (metadataEnum.getName().equals(localname) && metadataEnum.getNamespace().equals(namespace)) { return metadataEnum.getPackageApi() + "." + getPascalizeCase(metadataEnum.getName()); } } // search in all classes for (final MetadataItem metadataClass : metadata.getClassList()) { if (metadataClass.getName().equals(localname) && metadataClass.getNamespace().equals(namespace)) { return metadataClass.getPackageApi() + "." + getPascalizeCase(metadataClass.getName()); } } return null; }
private List<String> findCommonClasses(final Metadata metadata) { final List<String> classList = new ArrayList<String>(); for (MetadataDescriptor descr : metadata.getMetadataDescriptorList()) { if (descr.getCommon() != null) { traverseClasses(metadata, classList, descr.getRootElementType()); } else { if (descr.isGenerateClasses()) { final String packageApi = descr.getPackageApi(); for (MetadataItem item : metadata.getClassList()) { if (packageApi.equals(item.getPackageApi())) { final String type = item.getNamespace() + ":" + item.getName(); if (!classList.contains(type)) { classList.add(type); } } } } } } return classList; }
private void traverseClasses(final Metadata metadata, final List<String> classList, final String elementType) { final String[] elItems = elementType.split(":", -1); if (elItems.length == 2) { for (MetadataItem item : metadata.getClassList()) { if (item.getNamespace().equals(elItems[0]) && item.getName().equals(elItems[1])) { for (MetadataElement element : item.getElements()) { for (MetadataItem item : metadata.getGroupList()) { if (item.getNamespace().equals(elItems[0]) && item.getName().equals(elItems[1])) { for (MetadataElement element : item.getElements()) {
private String getNamespaceValue(final String value) { if (value == null || value.contains(":") || value.equals("text")) { return value; } else { return getCurrentNamespace() + ":" + value; } }
childInterface.generify("T"); for (final MetadataItem metadataClass : metadata.getClassList()) { final String fqnInterface = metadataClass.getPackageApi() + "." + getPascalizeCase(metadataClass.getName()); final JDefinedClass dc = cm._class(fqnInterface, ClassType.INTERFACE);
final String baseStr = MetadataUtil.getAttributeValue(element, "base"); if (baseStr != null) { for (MetadataItem metadataClass : metadata.getClassList()) { if (metadataClass.getName().equals(baseStr)) { final Node parentNodeWithName = MetadataUtil.getNextParentNodeWithAttr(parent.getParentNode(), if (className != null) { for (MetadataElement metadataElement : metadataClass.getElements()) { metadata.addClassElement(className, metadataElement); final MetadataItem dataType = new MetadataItem(dataTypeName); dataType.setMappedTo(typeStr); dataType.setNamespace(metadata.getCurrentNamespace()); dataType.setSchemaName(metadata.getCurrentSchmema()); metadata.getDataTypeList().add(dataType);
/** * Adds a new element to the specific group element class. If no group element class is found, then a new group * element class. will be created. * * @param groupName * the group class name of * @param groupElement * the new element to be added. */ public void addGroupElement(final String groupName, final MetadataElement groupElement) { for (MetadataItem item : groupList) { if (item.getName().equals(groupName) && item.getNamespace().equals(getCurrentNamespace())) { item.getElements().add(groupElement); return; } } final MetadataItem newItem = new MetadataItem(groupName); newItem.getElements().add(groupElement); newItem.setNamespace(getCurrentNamespace()); newItem.setSchemaName(getCurrentSchmema()); newItem.setPackageApi(getCurrentPackageApi()); newItem.setPackageImpl(getCurrentPackageImpl()); groupList.add(newItem); }
final StringBuilder sb = new StringBuilder(); for (final MetadataItem item : metadata.getGroupList()) { sb.append(LINE); sb.append(NEWLINE); for (MetadataEnum enumItem : metadata.getEnumList()) { sb.append(LINE); sb.append(NEWLINE); for (MetadataItem item : metadata.getClassList()) { sb.append(LINE); sb.append(NEWLINE); for (MetadataItem dataType : metadata.getDataTypeList()) { sb.append(LINE); sb.append(NEWLINE);
@Override public boolean filter(final Metadata metadata, final TreeWalker walker) { final Node parent = walker.getCurrentNode(); final Element element = (Element) parent; if (XsdElementEnum.union.isTagNameEqual(element.getTagName())) { final String memberTypesStr = MetadataUtil.getAttributeValue(element, "memberTypes"); if (memberTypesStr != null) { final Node parentNodeWithName = MetadataUtil.getNextParentNodeWithAttr(parent.getParentNode(), "name"); if (parentNodeWithName != null) { final Element parentElementWithName = (Element) parentNodeWithName; final String parentName = MetadataUtil.getAttributeValue(parentElementWithName, "name"); final String[] items = memberTypesStr.split(" ", -1); if (items != null && items.length > 1) { final MetadataItem dataType = new MetadataItem(parentName); dataType.setMappedTo(getDataType(items)); dataType.setNamespace(metadata.getCurrentNamespace()); dataType.setSchemaName(metadata.getCurrentSchmema()); metadata.getDataTypeList().add(dataType); } } } } return false; }
/** * Adds a enumeration value to the specified enumeration name. If no enumeration class is found, then a new * enumeration class will be created. * * @param enumName * the enumeration class name. * @param enumValue * the new enumeration value. */ public void addEnumValue(final String enumName, final String enumValue) { for (MetadataEnum instance : enumList) { if (instance.getName().equals(enumName) && instance.getNamespace().equals(getCurrentNamespace())) { instance.addValue(enumValue); return; } } final MetadataEnum newEnum = new MetadataEnum(enumName); newEnum.addValue(enumValue); newEnum.setNamespace(getCurrentNamespace()); newEnum.setSchemaName(getCurrentSchmema()); newEnum.setPackageApi(getCurrentPackageApi()); enumList.add(newEnum); }
for (final MetadataItem metadataClass : metadata.getClassList()) { if (metadataClass.getName().equals(currentContentModel)) { childElementCounter = metadataClass.getElements().size(); final MetadataItem type = new MetadataItem(currentContentModel); type.setMappedTo("xsd:string"); type.setNamespace(metadata.getCurrentNamespace()); metadata.getDataTypeList().add(type); metadata.getClassList().remove(foundClass);