Java Code Examples for org.eclipse.emf.ecore.EStructuralFeature#getEType()

The following examples show how to use org.eclipse.emf.ecore.EStructuralFeature#getEType() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: Step0001.java    From BIMserver with GNU Affero General Public License v3.0 6 votes vote down vote up
@Override
	public void migrate(Schema schema, DatabaseSession databaseSession) {
		schema.loadEcore("ifc2x3_tc1.ecore", getClass().getResourceAsStream("IFC2X3_TC1.ecore"));
		for (EClassifier eClassifier : schema.getEPackage("ifc2x3tc1").getEClassifiers()) {
			if (eClassifier instanceof EClass) {
				EClass eClass = (EClass)eClassifier;
				for (EStructuralFeature eStructuralFeature : eClass.getEStructuralFeatures()) {
					if (eStructuralFeature.getEType() == EcorePackage.eINSTANCE.getEString()) {
						// A hack because unfortunately not every "Name" field inherits from IfcRoot.Name, same could be true for GlobalId
						if (eStructuralFeature.getName().equals("Name") || eStructuralFeature.getName().equals("GlobalId")) {
//							System.out.println(eClass.getName() + "." + eStructuralFeature.getName());
							schema.addIndex(eStructuralFeature);
						}
					}
				}
			}
		}
	}
 
Example 2
Source File: SharedJsonStreamingSerializer.java    From BIMserver with GNU Affero General Public License v3.0 6 votes vote down vote up
private void writeWrapper(MinimalVirtualObject object) throws IOException {
	print("{");
	print("\"_t\":\"" + object.eClass().getName() + "\",");
	for (EStructuralFeature eStructuralFeature : object.eClass().getEAllStructuralFeatures()) {
		print("\"" + eStructuralFeature.getName() + "\":");
		if (eStructuralFeature.getEType() instanceof EDataType) {
			writePrimitive(eStructuralFeature, object.eGet(eStructuralFeature));
		} else {
			Object val = object.eGet(eStructuralFeature);
			write((MinimalVirtualObject) val);
		}
		if (object.eClass().getEAllStructuralFeatures().get(object.eClass().getEAllStructuralFeatures().size()-1) != eStructuralFeature) {
			print(",");
		}
	}
	print("}");
}
 
Example 3
Source File: HashMapVirtualObject.java    From BIMserver with GNU Affero General Public License v3.0 6 votes vote down vote up
private void writeWrappedValue(int pid, int rid, WrappedVirtualObject wrappedValue, ByteBuffer buffer, PackageMetaData packageMetaData) throws BimserverDatabaseException {
	Short cid = getDatabaseInterface().getCidOfEClass(wrappedValue.eClass());
	buffer.order(ByteOrder.LITTLE_ENDIAN);
	buffer.putShort((short) -cid);
	buffer.order(ByteOrder.BIG_ENDIAN);
	for (EStructuralFeature eStructuralFeature : wrappedValue.eClass().getEAllStructuralFeatures()) {
		Object val = wrappedValue.eGet(eStructuralFeature);
		if (eStructuralFeature.isMany()) {
			List list = (List)val;
			buffer.putInt(list.size());
			for (Object o : list) {
				if (o instanceof HashMapWrappedVirtualObject) {
					writeWrappedValue(pid, rid, (VirtualObject) o, buffer, packageMetaData);
				}
			}
		} else {
			if (eStructuralFeature.getEType() instanceof EDataType) {
				writePrimitiveValue(eStructuralFeature, val, buffer);
			} else {
				writeWrappedValue(pid, rid, (HashMapWrappedVirtualObject) val, buffer, packageMetaData);
			}
		}
	}
}
 
Example 4
Source File: Ecore2XtextExtensions.java    From xtext-core with Eclipse Public License 2.0 6 votes vote down vote up
private static void allAssignedClassifiers(final EClass eClazz, final Collection<EClassifier> acceptor) {
  final Function1<EStructuralFeature, Boolean> _function = (EStructuralFeature f) -> {
    return Boolean.valueOf(Ecore2XtextExtensions.needsAssignment(f));
  };
  final Function1<EStructuralFeature, EClassifier> _function_1 = (EStructuralFeature it) -> {
    return it.getEType();
  };
  final List<EClassifier> classifiers = IterableExtensions.<EClassifier>toList(IterableExtensions.<EStructuralFeature, EClassifier>map(IterableExtensions.<EStructuralFeature>filter(eClazz.getEAllStructuralFeatures(), _function), _function_1));
  Iterable<EClass> _subClasses = Ecore2XtextExtensions.subClasses(eClazz);
  Iterables.<EClassifier>addAll(classifiers, _subClasses);
  classifiers.removeAll(acceptor);
  boolean _isEmpty = classifiers.isEmpty();
  if (_isEmpty) {
    return;
  } else {
    Iterables.<EClassifier>addAll(acceptor, classifiers);
    final Consumer<EClass> _function_2 = (EClass c) -> {
      Ecore2XtextExtensions.allAssignedClassifiers(c, acceptor);
    };
    Iterables.<EClass>filter(classifiers, EClass.class).forEach(_function_2);
  }
}
 
Example 5
Source File: DatabaseSession.java    From BIMserver with GNU Affero General Public License v3.0 6 votes vote down vote up
private IdEObject readEmbeddedValue(EStructuralFeature feature, ByteBuffer buffer, EClass eClass, QueryInterface query) throws BimserverDatabaseException {
	IdEObject eObject = createInternal(eClass, query);
	for (EStructuralFeature eStructuralFeature : eClass.getEAllStructuralFeatures()) {
		if (eStructuralFeature.isMany()) {
			// Not implemented
		} else {
			if (eStructuralFeature.getEType() instanceof EDataType) {
				Object primitiveValue = readPrimitiveValue(eStructuralFeature.getEType(), buffer, query);
				((IdEObjectImpl) eObject).setLoaded();
				eObject.eSet(eStructuralFeature, primitiveValue);
			} else {
				buffer.order(ByteOrder.LITTLE_ENDIAN);
				short cid = buffer.getShort();
				buffer.order(ByteOrder.BIG_ENDIAN);
				if (cid == -1) {
					// null, do nothing
				} else if (cid < 0) {
					// non minus one and negative cid means value is embedded in record
					EClass referenceClass = database.getEClassForCid((short) (-cid));
					eObject.eSet(eStructuralFeature, readEmbeddedValue(eStructuralFeature, buffer, referenceClass, query));
				}
			}
		}
	}
	return eObject;
}
 
Example 6
Source File: BeansModelWizard.java    From hybris-commerce-eclipse-plugin with Apache License 2.0 6 votes vote down vote up
/**
 * Returns the names of the features representing global elements.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
protected Collection<String> getInitialObjectNames() {
	if (initialObjectNames == null) {
		initialObjectNames = new ArrayList<String>();
		for (EStructuralFeature eStructuralFeature : ExtendedMetaData.INSTANCE.getAllElements(ExtendedMetaData.INSTANCE.getDocumentRoot(beansPackage))) {
			if (eStructuralFeature.isChangeable()) {
				EClassifier eClassifier = eStructuralFeature.getEType();
				if (eClassifier instanceof EClass) {
					EClass eClass = (EClass)eClassifier;
					if (!eClass.isAbstract()) {
						initialObjectNames.add(eStructuralFeature.getName());
					}
				}
			}
		}
		Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
	}
	return initialObjectNames;
}
 
Example 7
Source File: ConfigurationModelWizard.java    From neoscada with Eclipse Public License 1.0 6 votes vote down vote up
/**
 * Returns the names of the features representing global elements.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
protected Collection<String> getInitialObjectNames ()
{
    if ( initialObjectNames == null )
    {
        initialObjectNames = new ArrayList<String> ();
        for ( EStructuralFeature eStructuralFeature : ExtendedMetaData.INSTANCE.getAllElements ( ExtendedMetaData.INSTANCE.getDocumentRoot ( configurationPackage ) ) )
        {
            if ( eStructuralFeature.isChangeable () )
            {
                EClassifier eClassifier = eStructuralFeature.getEType ();
                if ( eClassifier instanceof EClass )
                {
                    EClass eClass = (EClass)eClassifier;
                    if ( !eClass.isAbstract () )
                    {
                        initialObjectNames.add ( eStructuralFeature.getName () );
                    }
                }
            }
        }
        Collections.sort ( initialObjectNames, CommonPlugin.INSTANCE.getComparator () );
    }
    return initialObjectNames;
}
 
Example 8
Source File: AssignmentQuantityAllocator.java    From xtext-core with Eclipse Public License 2.0 5 votes vote down vote up
protected boolean allowTransient(EObject obj, EStructuralFeature feature, Collection<ISyntaxConstraint> constraint) {
	if (feature.getEType() instanceof EEnum)
		return true;
	Object value = obj.eGet(feature);
	List<RuleCall> ruleCalls = GrammarUtil.containedRuleCalls(constraint.iterator().next().getGrammarElement());
	if (ruleCalls.isEmpty())
		return false;
	return valueSerializer.isValid(obj, ruleCalls.get(0), value, null);

}
 
Example 9
Source File: IfcModel.java    From BIMserver with GNU Affero General Public License v3.0 5 votes vote down vote up
private int comparePrimitives(IdEObject o1, IdEObject o2) {
	EClass eClass = o1.eClass();
	EStructuralFeature eStructuralFeature = eClass.getEStructuralFeature("wrappedValue");
	Object val1 = o1.eGet(eStructuralFeature);
	Object val2 = o2.eGet(eStructuralFeature);
	if (eStructuralFeature.getEType() == EcorePackage.eINSTANCE.getEString()) {
		return ((String) val1).compareTo((String) val2);
	} else if (eStructuralFeature.getEType() == EcorePackage.eINSTANCE.getEInt()) {
		return ((Integer) val1).compareTo((Integer) val2);
	} else {
		throw new RuntimeException("ni");
	}
}
 
Example 10
Source File: TransientValueService.java    From xtext-core with Eclipse Public License 2.0 5 votes vote down vote up
protected boolean defaultValueIsSerializeable(EStructuralFeature feature) {
	if (feature instanceof EAttribute) {
		if (feature.getEType() == EcorePackage.eINSTANCE.getEString() && feature.getDefaultValue() == null)
			return false;
		return true;
	}
	return false;
}
 
Example 11
Source File: DatabaseReadingStackFrame.java    From BIMserver with GNU Affero General Public License v3.0 5 votes vote down vote up
private HashMapWrappedVirtualObject readWrappedValue(EStructuralFeature feature, ByteBuffer buffer, EClass eClass) throws BimserverDatabaseException {
	EStructuralFeature eStructuralFeature = eClass.getEStructuralFeature("wrappedValue");
	Object primitiveValue = readPrimitiveValue(eStructuralFeature.getEType(), buffer);
	HashMapWrappedVirtualObject eObject = new HashMapWrappedVirtualObject(eClass);
	eObject.setAttribute((EAttribute) eStructuralFeature, primitiveValue);
	if (eStructuralFeature.getEType() == EcorePackage.eINSTANCE.getEDouble() || eStructuralFeature.getEType() == EcorePackage.eINSTANCE.getEDoubleObject()) {
		EStructuralFeature strFeature = eClass.getEStructuralFeature("wrappedValueAsString");
		Object stringVal = readPrimitiveValue(EcorePackage.eINSTANCE.getEString(), buffer);
		eObject.setAttribute((EAttribute) strFeature, stringVal);
	}
	return eObject;
}
 
Example 12
Source File: EClassifierInfo.java    From xtext-core with Eclipse Public License 2.0 5 votes vote down vote up
public boolean isFeatureSemanticallyEqualTo(EStructuralFeature f1, EStructuralFeature f2) {
	boolean result = isFeatureSemanticallyEqualApartFromType(f1, f2);
	if (f1 instanceof EReference && f2 instanceof EReference) {
		EClass f1Type = (EClass) f1.getEType();
		EClass f2Type = (EClass) f2.getEType();
		result &= f1Type.isSuperTypeOf(f2Type);
		result &= ((EReference) f1).isContainment() == ((EReference) f2).isContainment();
		result &= ((EReference) f1).isContainer() == ((EReference) f2).isContainer();
	} else {
		result &= f1.getEType().equals(EcoreUtil2.getCompatibleType(f1.getEType(), f2.getEType()));
	}
	return result;
}
 
Example 13
Source File: GenerateUtils.java    From BIMserver with GNU Affero General Public License v3.0 5 votes vote down vote up
public static String makeGetter(EStructuralFeature eStructuralFeature) {
	StringBuilder sb = new StringBuilder();
	if (eStructuralFeature.getEType() == EcorePackage.eINSTANCE.getEBoolean()) {
		sb.append("is");
	} else {
		sb.append("get");
	}
	sb.append(firstLetterUpperCase(eStructuralFeature.getName()));
	if (eStructuralFeature instanceof EReference && !eStructuralFeature.isMany() && eStructuralFeature.getEAnnotation("embedsreference") == null) {
		sb.append("Id");
	}
	return sb.toString();
}
 
Example 14
Source File: IfcStepStreamingSerializer.java    From IfcPlugins with GNU Affero General Public License v3.0 5 votes vote down vote up
private void writeObject(HashMapVirtualObject object, EStructuralFeature feature) throws SerializerException, IOException {
	Object ref = object.eGet(feature);
	if (ref == null || (feature.isUnsettable() && !object.eIsSet(feature))) {
		EClassifier type = feature.getEType();
		if (type instanceof EClass) {
			EStructuralFeature structuralFeature = ((EClass) type).getEStructuralFeature(WRAPPED_VALUE);
			if (structuralFeature != null) {
				String name = structuralFeature.getEType().getName();
				if (name.equals(IFC_BOOLEAN) || name.equals(IFC_LOGICAL) || structuralFeature.getEType() == EcorePackage.eINSTANCE.getEBoolean()) {
					print(BOOLEAN_UNDEFINED);
				} else {
					print(DOLLAR);
				}
			} else {
				print(DOLLAR);
			}
		} else {
			if (type == EcorePackage.eINSTANCE.getEBoolean()) {
				print(BOOLEAN_UNDEFINED);
			} else if (feature.isMany()) {
				print("()");
			} else {
				print(DOLLAR);
			}
		}
	} else {
		if (ref instanceof HashMapWrappedVirtualObject) {
			writeEmbedded((HashMapWrappedVirtualObject) ref);
		} else if (feature.getEType() == ECORE_PACKAGE_INSTANCE.getEDouble()) {
			EStructuralFeature asStringFeature = object.eClass().getEStructuralFeature(feature.getName() + "AsString");
			String asString = (String) object.eGet(asStringFeature);
			writeDoubleValue((Double)ref, asString, feature);
		} else {
			IfcParserWriterUtils.writePrimitive(ref, printWriter);
		}
	}
}
 
Example 15
Source File: IfcStepSerializer.java    From IfcPlugins with GNU Affero General Public License v3.0 5 votes vote down vote up
private void writeEmbedded(EObject eObject) throws SerializerException, IOException {
	EClass class1 = eObject.eClass();
	print(getPackageMetaData().getUpperCase(class1));
	print(OPEN_PAREN);
	EStructuralFeature structuralFeature = class1.getEStructuralFeature(WRAPPED_VALUE);
	if (structuralFeature != null) {
		Object realVal = eObject.eGet(structuralFeature);
		if (structuralFeature.getEType() == ECORE_PACKAGE_INSTANCE.getEDouble()) {
			writeDoubleValue((Double)realVal, eObject, structuralFeature);
		} else {
			IfcParserWriterUtils.writePrimitive(realVal, outputStream);
		}
	}
	print(CLOSE_PAREN);
}
 
Example 16
Source File: IfcStepSerializer.java    From IfcPlugins with GNU Affero General Public License v3.0 5 votes vote down vote up
private void writeObject(IdEObject object, EStructuralFeature feature) throws SerializerException, IOException {
	Object ref = object.eGet(feature);
	if (ref == null || (feature.isUnsettable() && !object.eIsSet(feature))) {
		EClassifier type = feature.getEType();
		if (type instanceof EClass) {
			EStructuralFeature structuralFeature = ((EClass) type).getEStructuralFeature(WRAPPED_VALUE);
			if (structuralFeature != null) {
				String name = structuralFeature.getEType().getName();
				if (name.equals(IFC_BOOLEAN) || name.equals(IFC_LOGICAL) || structuralFeature.getEType() == EcorePackage.eINSTANCE.getEBoolean()) {
					print(BOOLEAN_UNDEFINED);
				} else {
					print(DOLLAR);
				}
			} else {
				print(DOLLAR);
			}
		} else {
			if (type == EcorePackage.eINSTANCE.getEBoolean()) {
				print(BOOLEAN_UNDEFINED);
			} else if (feature.isMany()) {
				print("()");
			} else {
				print(DOLLAR);
			}
		}
	} else {
		if (ref instanceof EObject) {
			writeEmbedded((EObject) ref);
		} else if (feature.getEType() == ECORE_PACKAGE_INSTANCE.getEDouble()) {
			writeDoubleValue((Double)ref, object, feature);
		} else {
			IfcParserWriterUtils.writePrimitive(ref, outputStream);
		}
	}
}
 
Example 17
Source File: GenerateUtils.java    From BIMserver with GNU Affero General Public License v3.0 4 votes vote down vote up
public static String getType(EStructuralFeature eStructuralFeature) {
	boolean embedsReference = eStructuralFeature.getEAnnotation("embedsreference") != null;
	EClassifier eType = eStructuralFeature.getEType();
	if (eStructuralFeature.isMany()) {
		if (eType instanceof EDataType) {
			if (eType == EcorePackage.eINSTANCE.getEString()) {
				return "List<String>";
			} else if (eType == EcorePackage.eINSTANCE.getEInt() || eType == EcorePackage.eINSTANCE.getEIntegerObject()) {
				return "List<Integer>";
			} else if (eType == EcorePackage.eINSTANCE.getELong() || eType == EcorePackage.eINSTANCE.getELongObject()) {
				return "List<Long>";
			} else if (eType == EcorePackage.eINSTANCE.getEDouble() || eType == EcorePackage.eINSTANCE.getEDoubleObject()) {
				return "List<Double>";
			} else if (eType == EcorePackage.eINSTANCE.getEBoolean() || eType == EcorePackage.eINSTANCE.getEBooleanObject()) {
				return "List<Boolean>";
			} else if (eType == EcorePackage.eINSTANCE.getEFloat() || eType == EcorePackage.eINSTANCE.getEFloatObject()) {
				return "List<Float>";
			} else if (eType == EcorePackage.eINSTANCE.getEDate()) {
				return "List<Date>";
			}
		} else if (eType instanceof EClass) {
			if (embedsReference) {
				return "List<S" + eType.getName() + ">";
			} else {
				return "List<Long>";
			}
		}
	} else {
		if (eType instanceof EDataType) {
			if (eType == EcorePackage.eINSTANCE.getEString()) {
				return "String";
			} else if (eType == EcorePackage.eINSTANCE.getEInt() || eType == EcorePackage.eINSTANCE.getEIntegerObject()) {
				return "Integer";
			} else if (eType == EcorePackage.eINSTANCE.getELong() || eType == EcorePackage.eINSTANCE.getELongObject()) {
				return "Long";
			} else if (eType == EcorePackage.eINSTANCE.getEShort() || eType == EcorePackage.eINSTANCE.getEShortObject()) {
				return "Short";
			} else if (eType == EcorePackage.eINSTANCE.getEDouble() || eType == EcorePackage.eINSTANCE.getEDoubleObject()) {
				return "Double";
			} else if (eType == EcorePackage.eINSTANCE.getEBoolean() || eType == EcorePackage.eINSTANCE.getEBooleanObject()) {
				return "Boolean";
			} else if (eType == EcorePackage.eINSTANCE.getEFloat() || eType == EcorePackage.eINSTANCE.getEFloatObject()) {
				return "Float";
			} else if (eType == EcorePackage.eINSTANCE.getEDate()) {
				return "Date";
			} else if (eType == EcorePackage.eINSTANCE.getEByteArray()) {
				return "byte[]";
			} else if (eType.getInstanceClass() == DataHandler.class) {
				return "DataHandler";
			}
		} else if (eType instanceof EClass) {
			if (embedsReference) {
				return "S" + eType.getName();
			} else {
				return "Long";
			}
		}
	}
	return "S" + eType.getName();
}
 
Example 18
Source File: Ecore2XtextExtensions.java    From xtext-core with Eclipse Public License 2.0 4 votes vote down vote up
public static boolean needsAssignment(final EStructuralFeature it) {
  return ((((!it.isDerived()) && (!it.isTransient())) && (!((it instanceof EReference) && EReference.class.cast(it).isContainer()))) && 
    (!((it.getEType() instanceof EDataType) && (!EDataType.class.cast(it.getEType()).isSerializable()))));
}
 
Example 19
Source File: IfcStepStreamingSerializer.java    From IfcPlugins with GNU Affero General Public License v3.0 4 votes vote down vote up
private void write(HashMapVirtualObject object) throws SerializerException, IOException {
	EClass eClass = object.eClass();

	if (eClass.getEPackage() == GeometryPackage.eINSTANCE) {
		return;
	}
	if (eClass.getEAnnotation("hidden") != null) {
		return;
	}
	print(DASH);
	long convertedKey = getExpressId(object);
	if (convertedKey == -1) {
		throw new SerializerException("Going to serialize an object with id -1 (" + object.eClass().getName() + ")");
	}
	print(String.valueOf(convertedKey));
	print("= ");
	String upperCase = packageMetaData.getUpperCase(eClass);
	if (upperCase == null) {
		throw new SerializerException("Type not found: " + eClass.getName());
	}
	print(upperCase);
	print(OPEN_PAREN);
	boolean isFirst = true;
	
	EntityDefinition entityBN = getSchemaDefinition().getEntityBN(object.eClass().getName());
	for (EStructuralFeature feature : eClass.getEAllStructuralFeatures()) {

		if (feature.getEAnnotation("hidden") == null && (entityBN != null && (!entityBN.isDerived(feature.getName()) || entityBN.isDerivedOverride(feature.getName())))) {
			EClassifier type = feature.getEType();
			if (type instanceof EEnum) {
				if (!isFirst) {
					print(COMMA);
				}
				writeEnum(object, feature);
				isFirst = false;
			} else if (type instanceof EClass) {
				EReference eReference = (EReference)feature;
				if (!packageMetaData.isInverse(eReference)) {
					if (!isFirst) {
						print(COMMA);
					}
					writeEClass(object, feature);
					isFirst = false;
				}
			} else if (type instanceof EDataType) {
				if (!isFirst) {
					print(COMMA);
				}
				writeEDataType(object, entityBN, feature);
				isFirst = false;
			}
		}
	}
	println(PAREN_CLOSE_SEMICOLON);
}
 
Example 20
Source File: IfcStepSerializer.java    From IfcPlugins with GNU Affero General Public License v3.0 4 votes vote down vote up
private void write(IdEObject object) throws SerializerException, IOException {
	EClass eClass = object.eClass();
	if (eClass.getEAnnotation("hidden") != null) {
		return;
	}
	if (eClass.getEPackage() != getPackageMetaData().getEPackage()) {
		return;
	}
	print(DASH);
	long convertedKey = getExpressId(object);
	if (convertedKey == -1) {
		throw new SerializerException("Going to serialize an object with id -1 (" + object.eClass().getName() + ")");
	}
	print(String.valueOf(convertedKey));
	print("= ");
	String upperCase = getPackageMetaData().getUpperCase(eClass);
	if (upperCase == null) {
		throw new SerializerException("Type not found: " + eClass.getName());
	}
	print(upperCase);
	print(OPEN_PAREN);
	boolean isFirst = true;
	EntityDefinition entityBN = getPackageMetaData().getSchemaDefinition().getEntityBN(object.eClass().getName());
	for (EStructuralFeature feature : eClass.getEAllStructuralFeatures()) {
		if (feature.getEAnnotation("hidden") == null && (entityBN != null && (!entityBN.isDerived(feature.getName()) || entityBN.isDerivedOverride(feature.getName())))) {
			EClassifier type = feature.getEType();
			if (type instanceof EEnum) {
				if (!isFirst) {
					print(COMMA);
				}
				writeEnum(object, feature);
				isFirst = false;
			} else if (type instanceof EClass) {
				EReference eReference = (EReference)feature;
				if (!getPackageMetaData().isInverse(eReference)) {
					if (!isFirst) {
						print(COMMA);
					}
					writeEClass(object, feature);
					isFirst = false;
				}
			} else if (type instanceof EDataType) {
				if (!isFirst) {
					print(COMMA);
				}
				writeEDataType(object, entityBN, feature);
				isFirst = false;
			}
		}
	}
	println(PAREN_CLOSE_SEMICOLON);
}