use of org.bimserver.shared.IfcDoc in project BIMserver by opensourceBIM.
the class IfcSchemaToJson method convert.
private void convert(OutputStream outputStream, File docs, EPackage ePackage) throws IOException {
IfcDoc ifcDoc = new IfcDoc(docs);
JsonWriter jsonWriter = new JsonWriter(new OutputStreamWriter(outputStream));
jsonWriter.setIndent(" ");
try {
jsonWriter.beginObject();
jsonWriter.name("classes");
jsonWriter.beginObject();
for (EClassifier eClassifier : ePackage.getEClassifiers()) {
jsonWriter.name(eClassifier.getName());
jsonWriter.beginObject();
if (eClassifier instanceof EEnum) {
} else if (eClassifier instanceof EClass) {
EClass eClass = (EClass) eClassifier;
String domain = ifcDoc.getDomain(eClass.getName());
jsonWriter.name("domain");
jsonWriter.value(domain);
jsonWriter.name("superclasses");
jsonWriter.beginArray();
for (EClass superClass : eClass.getESuperTypes()) {
jsonWriter.value(superClass.getName());
}
jsonWriter.endArray();
jsonWriter.name("fields");
jsonWriter.beginObject();
if (eClass.getName().equals("IfcCartesianPointList3D")) {
System.out.println();
}
for (EStructuralFeature eStructuralFeature : eClass.getEStructuralFeatures()) {
jsonWriter.name(eStructuralFeature.getName());
jsonWriter.beginObject();
jsonWriter.name("type");
jsonWriter.value(convertType(eStructuralFeature.getEType()));
jsonWriter.name("reference");
jsonWriter.value(eStructuralFeature instanceof EReference);
jsonWriter.name("many");
jsonWriter.value(eStructuralFeature.isMany());
jsonWriter.name("inverse");
jsonWriter.value(eStructuralFeature.getEAnnotation("inverse") != null);
jsonWriter.endObject();
}
jsonWriter.endObject();
}
jsonWriter.endObject();
}
jsonWriter.endObject();
jsonWriter.endObject();
} finally {
jsonWriter.close();
}
}
Aggregations