public boolean isXMLDuration() { ExtendedMetaData extendedMetaData = getExtendedMetaData(); for (EDataType eDataType = getEcoreDataType(); eDataType != null; eDataType = extendedMetaData.getBaseType(eDataType)) { String namespace = extendedMetaData.getNamespace(eDataType); String name = extendedMetaData.getName(eDataType); if (XMLTypePackage.eNS_URI.equals(namespace) && "duration".equals(name)) { return true; } } return false; }
public boolean isIncluded(EStructuralFeature feature) { if (wildcards == ANY_WILDCARD) { int featureKind = ExtendedMetaData.INSTANCE.getFeatureKind(feature); return isElement ? featureKind == ExtendedMetaData.ELEMENT_FEATURE && feature != XMLTypeFeatures.TEXT && feature != XMLTypeFeatures.CDATA && feature != XMLTypeFeatures.COMMENT && feature != XMLTypeFeatures.PROCESSING_INSTRUCTION : featureKind == ExtendedMetaData.ATTRIBUTE_FEATURE; } if (groupMembers != null && (groupMembers.contains(feature) || groupMembers.contains(ExtendedMetaData.INSTANCE.getGroup(feature)) || groupMembers.contains(ExtendedMetaData.INSTANCE.getAffiliation(containingClass, feature)))) { return true; } if (wildcards != null) { if (ExtendedMetaData.INSTANCE.matches(wildcards, ExtendedMetaData.INSTANCE.getNamespace(feature))) { int featureKind = ExtendedMetaData.INSTANCE.getFeatureKind(feature); return isElement ? featureKind == ExtendedMetaData.ELEMENT_FEATURE : featureKind == ExtendedMetaData.ATTRIBUTE_FEATURE; } } return false; } }
wildcards = ExtendedMetaData.INSTANCE.getWildcards(eStructuralFeature); EStructuralFeature mixedFeature; if (!wildcards.isEmpty()) isElement = ExtendedMetaData.INSTANCE.getFeatureKind(eStructuralFeature) == ExtendedMetaData.ELEMENT_WILDCARD_FEATURE; if (wildcards.equals(ANY_WILDCARD)) else if ((mixedFeature = ExtendedMetaData.INSTANCE.getMixedFeature(containingClass)) == eStructuralFeature) wildcards = new UniqueEList<String>(); wildcards.add(XMLTypePackage.eNS_URI); if (ExtendedMetaData.INSTANCE.getDocumentRoot(containingClass.getEPackage()) == containingClass) wildcards.add(ExtendedMetaData.INSTANCE.getNamespace(containingClass)); for (EStructuralFeature feature : ExtendedMetaData.INSTANCE.getAllElements(containingClass)) switch (ExtendedMetaData.INSTANCE.getFeatureKind(feature)) wildcards.addAll(ExtendedMetaData.INSTANCE.getWildcards(feature)); break; for (EStructuralFeature group = ExtendedMetaData.INSTANCE.getGroup(feature); group != null; group = ExtendedMetaData.INSTANCE.getGroup(group)) else if (ExtendedMetaData.INSTANCE.getFeatureKind(eStructuralFeature) == ExtendedMetaData.SIMPLE_FEATURE && mixedFeature != null)
protected boolean isWrapperType(EClassifier eClassifier) { String name = extendedMetaData.getName(eClassifier); return name.endsWith(":Object") && !EcorePackage.eNS_URI.equals(extendedMetaData.getNamespace(eClassifier)); }
protected void populateTypeToTypeObjectMap(EPackage ePackage) { for (EClassifier eClassifier : ePackage.getEClassifiers()) { String xmlName = extendedMetaData.getName(eClassifier); if (xmlName != null && xmlName.endsWith(":Object")) { typeToTypeObjectMap.put(extendedMetaData.getType(ePackage, xmlName.substring(0, xmlName.length() - 7)), eClassifier); } } }
protected XSDParticle buildElementParticle(XSDComplexTypeDefinition xsdComplexTypeDefinition, EStructuralFeature eStructuralFeature) String namespace = extendedMetaData.getNamespace(eStructuralFeature); String name = extendedMetaData.getName(eStructuralFeature); String typeNamespace = extendedMetaData.getNamespace(eStructuralFeature.getEContainingClass()); boolean isRef = namespace != null && !namespace.equals(typeNamespace); if (namespace == null ? typeNamespace == null : namespace.equals(typeNamespace)) EStructuralFeature globalFeature = extendedMetaData.getElement(namespace, name); isRef = globalFeature != null && EcoreUtil.equals(globalFeature.getEGenericType(), eStructuralFeature.getEGenericType()); EStructuralFeature group = extendedMetaData.getGroup(eStructuralFeature); if (group != null) if (extendedMetaData.getContentKind(eStructuralFeature.getEContainingClass()) != ExtendedMetaData.MIXED_CONTENT && extendedMetaData.getGroup(eStructuralFeature) == null)
String targetNamespace = extendedMetaData.getNamespace(ePackage); xsdSchema.setTargetNamespace(targetNamespace); EClass documentRootEClass = extendedMetaData.getDocumentRoot(ePackage); if (documentRootEClass == null) if (extendedMetaData.getContentKind(eClass) == ExtendedMetaData.UNSPECIFIED_CONTENT) if (extendedMetaData.getName(eStructuralFeature).indexOf(':') == -1)
public boolean hasDelegateFeature() { EStructuralFeature ecoreFeature = getEcoreFeature(); EClass ecoreClass = ecoreFeature.getEContainingClass(); EStructuralFeature mixedFeature = getExtendedMetaData().getMixedFeature(ecoreClass); return (mixedFeature != null && mixedFeature != ecoreFeature && getExtendedMetaData().getFeatureKind(ecoreFeature) >= ExtendedMetaData.ELEMENT_FEATURE) || getExtendedMetaData().getGroup(ecoreFeature) != null; }
public Object eOpenGet(EStructuralFeature eFeature, boolean resolve) { EStructuralFeature openFeature = ExtendedMetaData.INSTANCE.getAffiliation(eClass(), eFeature); if (openFeature != null) { if (!FeatureMapUtil.isFeatureMap(openFeature)) { openFeature = ExtendedMetaData.INSTANCE.getGroup(openFeature); } FeatureMap featureMap = (FeatureMap)eGet(openFeature); return ((FeatureMap.Internal)featureMap).get(eFeature, resolve); } else { throw new IllegalArgumentException("The feature '" + eFeature.getName() + "' is not a valid feature"); } }
.getContentKind((EClass) eModelElement)) { .getFeatureKind((EStructuralFeature) eModelElement)) { .getName((EClassifier) eModelElement); } else if (eModelElement instanceof EStructuralFeature) { value = ExtendedMetaData.INSTANCE .getName((EStructuralFeature) eModelElement); .getNamespace((EStructuralFeature) eModelElement); } else if (propertyName == TAG_DEFINITION__VISIBILITY) { Enumeration visibilityKindEnumeration = (Enumeration) getEcoreProfile(
@Override protected void freeze() { // Bug 433108: Lock in the shared extended metadata for this data type ExtendedMetaData.INSTANCE.getName(this); super.freeze(); }
@Override protected Object doGetValue() { return ExtendedMetaData.INSTANCE.getAffiliation(eObject.eClass(), eStructuralFeature) == null ? null : eObject.eGet(eStructuralFeature); }
else if (extendedMetaData.getContentKind(eClass) == ExtendedMetaData.MIXED_CONTENT) eAttribute.setUpperBound(maxOccurs); eClass.getEStructuralFeatures().add(eAttribute); extendedMetaData.setFeatureKind(eAttribute, ExtendedMetaData.ELEMENT_WILDCARD_FEATURE); extendedMetaData.setName(eAttribute, ":" + eAttribute.getName()); return eAttribute; eReference.setTransient(true); eClass.getEStructuralFeatures().add(eReference); extendedMetaData.setFeatureKind(eReference, ExtendedMetaData.ATTRIBUTE_FEATURE); return eReference; extendedMetaData.setName(eReference, ":" + eClass.getEAllStructuralFeatures().indexOf(eReference)); extendedMetaData.setFeatureKind(eReference, ExtendedMetaData.SIMPLE_FEATURE); eReference.setResolveProxies(!isLocalReferenceType((XSDSimpleTypeDefinition)xsdComponent)); extendedMetaData.setFeatureKind(eReference, ExtendedMetaData.ELEMENT_FEATURE); extendedMetaData.setName(eReference, xsdElementDeclaration.getName()); extendedMetaData.setNamespace(eReference, xsdElementDeclaration.getTargetNamespace()); extendedMetaData.setFeatureKind(eReference, ExtendedMetaData.ELEMENT_WILDCARD_FEATURE); extendedMetaData.setWildcards(eReference, getWildcards(xsdWildcard)); extendedMetaData.setProcessingKind(eReference, xsdWildcard.getProcessContents().getValue() + 1); extendedMetaData.setName(eReference, ":" + eClass.getEAllStructuralFeatures().indexOf(eReference)); extendedMetaData.setFeatureKind(eReference, ExtendedMetaData.GROUP_FEATURE); extendedMetaData.setName(eReference, ":" + eClass.getEAllStructuralFeatures().indexOf(eReference));
public EClass getDocumentRoot(EPackage epackage) { for (int i = 0; i < docRoots.size(); i += 2) { if (docRoots.get(i) == epackage) { return (EClass)docRoots.get(++i); } } docRoots.add(epackage); EClass docRoot = extendedMetaData.getDocumentRoot(epackage); docRoots.add(docRoot); return docRoot; }
public List<String> getPrefixes(EPackage ePackage) { List<String> result = new UniqueEList<String>(); result.add(getPrefix(ePackage)); String namespace = extendedMetaData == null ? ePackage.getNsURI() : extendedMetaData.getNamespace(ePackage); List<String> prefixes = urisToPrefixes.get(namespace); if (prefixes != null) { result.addAll(prefixes); } return result; }
EObject eObject = (EObject)object; EClass eClass = eObject.eClass(); if (ExtendedMetaData.INSTANCE.getContentKind(eClass) != ExtendedMetaData.MIXED_CONTENT) if (eReference.isContainment() && ExtendedMetaData.INSTANCE.getGroup(eReference) == null) if (ExtendedMetaData.INSTANCE.getGroup(eAttribute) == null && eAttribute.getEType().getInstanceClass() == FeatureMap.Entry.class && !eAttribute.isDerived())
@Override protected void saveFeatureMapElementReference(EObject o, EReference f) { if (extendedMetaData == null || extendedMetaData.getFeatureKind(f) != ExtendedMetaData.ELEMENT_FEATURE) { saveHref(o, f); } else { saveElementReference(o, f); } } }
public List<String> getEnumerationLiterals() { ExtendedMetaData extendedMetaData = getExtendedMetaData(); for (EDataType eDataType = getEcoreDataType(); eDataType != null; eDataType = extendedMetaData.getBaseType(eDataType)) { List<String> literals = extendedMetaData.getEnumerationFacet(eDataType); if (!literals.isEmpty()) { return literals; } } return Collections.emptyList(); }
protected XSDWildcard buildAttributeWildcard(XSDComplexTypeDefinition xsdComplexTypeDefinition, EStructuralFeature eStructuralFeature) { XSDWildcard xsdWildcard = XSDFactory.eINSTANCE.createXSDWildcard(); xsdWildcard.setStringLexicalNamespaceConstraint (BasicExtendedMetaData.getEncodedWildcards (extendedMetaData.getNamespace(eStructuralFeature.getEContainingClass()), extendedMetaData.getWildcards(eStructuralFeature))); xsdComplexTypeDefinition.setAttributeWildcardContent(xsdWildcard); map(xsdWildcard, eStructuralFeature); createEcoreAnnotation(xsdWildcard, "name", eStructuralFeature.getName()); buildAnnotations(xsdWildcard, eStructuralFeature); return xsdWildcard; }
public int getFractionDigits() { ExtendedMetaData extendedMetaData = getExtendedMetaData(); for (EDataType eDataType = getEcoreDataType(); eDataType != null; eDataType = extendedMetaData.getBaseType(eDataType)) { int fractionDigits = extendedMetaData.getFractionDigitsFacet(eDataType); if (fractionDigits != -1) { return fractionDigits; } } return -1; }