private void createGeoTagClass() { schema.createEAttribute(geoTagClass, "enabled", ecorePackage.getEBooleanObject(), Multiplicity.SINGLE); geoTagProjects = schema.createEReference(geoTagClass, "projects", project, Multiplicity.MANY); schema.createEAttribute(geoTagClass, "x", ecorePackage.getEDoubleObject(), Multiplicity.SINGLE); schema.createEAttribute(geoTagClass, "y", ecorePackage.getEDoubleObject(), Multiplicity.SINGLE); schema.createEAttribute(geoTagClass, "z", ecorePackage.getEDoubleObject(), Multiplicity.SINGLE); schema.createEAttribute(geoTagClass, "epsg", ecorePackage.getEIntegerObject(), Multiplicity.SINGLE); schema.createEAttribute(geoTagClass, "directionAngle", ecorePackage.getEDoubleObject(), Multiplicity.SINGLE); }
private void fakePrimitiveRead(EClassifier classifier, ByteBuffer buffer) throws BimserverDatabaseException { if (classifier == EcorePackage.eINSTANCE.getEString()) { int length = buffer.getInt(); if (length != -1) { buffer.position(buffer.position() + length); } } else if (classifier == EcorePackage.eINSTANCE.getEInt() || classifier == EcorePackage.eINSTANCE.getEIntegerObject()) { buffer.position(buffer.position() + 4); } else if (classifier == EcorePackage.eINSTANCE.getELong() || classifier == EcorePackage.eINSTANCE.getELongObject()) { buffer.position(buffer.position() + 8); } else if (classifier == EcorePackage.eINSTANCE.getEFloat() || classifier == EcorePackage.eINSTANCE.getEFloatObject()) { buffer.position(buffer.position() + 4); } else if (classifier == EcorePackage.eINSTANCE.getEDouble() || classifier == EcorePackage.eINSTANCE.getEDoubleObject()) { buffer.position(buffer.position() + 8); } else if (classifier == EcorePackage.eINSTANCE.getEBoolean() || classifier == EcorePackage.eINSTANCE.getEBooleanObject()) { buffer.position(buffer.position() + 1); } else if (classifier == EcorePackage.eINSTANCE.getEDate()) { buffer.position(buffer.position() + 8); } else if (classifier == EcorePackage.eINSTANCE.getEByteArray()) { int length = buffer.getInt(); if (length != -1) { buffer.position(buffer.position() + length); } } else { throw new BimserverDatabaseException("Unimplemented " + classifier); } }
buffer.get(result, 0, 4); return result; } else if (classifier == EcorePackage.eINSTANCE.getEDouble() || classifier == EcorePackage.eINSTANCE.getEDoubleObject()) { byte[] result = new byte[8]; buffer.get(result, 0, 8);
buffer.putInt((Integer) value); } else if (type == EcorePackage.eINSTANCE.getEDouble() || type == EcorePackage.eINSTANCE.getEDoubleObject()) { if (value == null) { buffer.putDouble(0D);
buffer.putShort((Short) value); } else if (type == EcorePackage.eINSTANCE.getEDouble() || type == EcorePackage.eINSTANCE.getEDoubleObject()) { if (value == null) { buffer.putDouble(0D);
buffer.putInt((Integer) value); } else if (type == EcorePackage.eINSTANCE.getEDouble() || type == EcorePackage.eINSTANCE.getEDoubleObject()) { ensureCapacity(buffer.position(), 8); if (value == null) {
} else if (classifier == EcorePackage.eINSTANCE.getEFloat() || classifier == EcorePackage.eINSTANCE.getEFloatObject()) { return buffer.getFloat(); } else if (classifier == EcorePackage.eINSTANCE.getEDouble() || classifier == EcorePackage.eINSTANCE.getEDoubleObject()) { return buffer.getDouble(); } else if (classifier == EcorePackage.eINSTANCE.getEBoolean() || classifier == EcorePackage.eINSTANCE.getEBooleanObject()) {
} else if (classifier == EcorePackage.eINSTANCE.getEFloat() || classifier == EcorePackage.eINSTANCE.getEFloatObject()) { return buffer.getFloat(); } else if (classifier == EcorePackage.eINSTANCE.getEDouble() || classifier == EcorePackage.eINSTANCE.getEDoubleObject()) { return buffer.getDouble(); } else if (classifier == EcorePackage.eINSTANCE.getEShort() || classifier == EcorePackage.eINSTANCE.getEShortObject()) {
private void writeWrappedValue(int pid, int rid, Object value, ByteBuffer buffer, PackageMetaData packageMetaData) throws BimserverDatabaseException { IdEObject wrappedValue = (IdEObject) value; EStructuralFeature eStructuralFeature = wrappedValue.eClass().getEStructuralFeature("wrappedValue"); Short cid = database.getCidOfEClass(wrappedValue.eClass()); buffer.order(ByteOrder.LITTLE_ENDIAN); buffer.putShort((short) -cid); buffer.order(ByteOrder.BIG_ENDIAN); writePrimitiveValue(eStructuralFeature, wrappedValue.eGet(eStructuralFeature), buffer); if (eStructuralFeature.getEType() == EcorePackage.eINSTANCE.getEDouble() || eStructuralFeature.getEType() == EcorePackage.eINSTANCE.getEDoubleObject()) { EStructuralFeature fe = wrappedValue.eClass().getEStructuralFeature("wrappedValueAsString"); writePrimitiveValue(fe, wrappedValue.eGet(fe), buffer); } if (wrappedValue.eClass().getName().equals("IfcGloballyUniqueId")) { EClass eClass = packageMetaData.getEClass("IfcGloballyUniqueId"); if (wrappedValue.getOid() == -1) { ((IdEObjectImpl) wrappedValue).setOid(newOid(eClass)); } ByteBuffer valueBuffer = convertObjectToByteArray(wrappedValue, ByteBuffer.allocate(getExactSize(wrappedValue, packageMetaData, true)), packageMetaData); ByteBuffer keyBuffer = createKeyBuffer(pid, wrappedValue.getOid(), rid); try { database.getKeyValueStore().storeNoOverwrite(eClass.getEPackage().getName() + "_" + eClass.getName(), keyBuffer.array(), valueBuffer.array(), this); database.incrementCommittedWrites(1); } catch (BimserverLockConflictException e) { LOGGER.error("", e); } } }
public int getPrimitiveSize(EDataType eDataType) { if (eDataType == EcorePackage.eINSTANCE.getEInt() || eDataType == EcorePackage.eINSTANCE.getEIntegerObject()) { return 4; } else if (eDataType == EcorePackage.eINSTANCE.getEFloat() || eDataType == EcorePackage.eINSTANCE.getEFloatObject()) { return 4; } else if (eDataType == EcorePackage.eINSTANCE.getEBoolean() || eDataType == EcorePackage.eINSTANCE.getEBooleanObject()) { return 1; } else if (eDataType == EcorePackage.eINSTANCE.getEDate()) { return 8; } else if (eDataType == EcorePackage.eINSTANCE.getELong() || eDataType == EcorePackage.eINSTANCE.getELongObject()) { return 8; } else if (eDataType == EcorePackage.eINSTANCE.getEString()) { return AVERAGE_STRING_SIZE; } else if (eDataType == EcorePackage.eINSTANCE.getEDouble() || eDataType == EcorePackage.eINSTANCE.getEDoubleObject()) { return 8; } else if (eDataType == EcorePackage.eINSTANCE.getEByteArray() || eDataType.getName().equals("DataHandler")) { return AVERAGE_BYTE_ARRAY_SIZE; } else if (eDataType instanceof EEnum) { return 4; } throw new RuntimeException("Unimplemented: " + eDataType); }
private int getPrimitiveSize(EDataType eDataType, Object val) { if (eDataType == EcorePackage.eINSTANCE.getEInt() || eDataType == EcorePackage.eINSTANCE.getEIntegerObject()) { return 4; } else if (eDataType == EcorePackage.eINSTANCE.getEFloat() || eDataType == EcorePackage.eINSTANCE.getEFloatObject()) { return 4; } else if (eDataType == EcorePackage.eINSTANCE.getEBoolean() || eDataType == EcorePackage.eINSTANCE.getEBooleanObject()) { return 1; } else if (eDataType == EcorePackage.eINSTANCE.getEDate()) { return 8; } else if (eDataType == EcorePackage.eINSTANCE.getEShort()) { return 2; } else if (eDataType == EcorePackage.eINSTANCE.getELong() || eDataType == EcorePackage.eINSTANCE.getELongObject()) { return 8; } else if (eDataType == EcorePackage.eINSTANCE.getEDouble() || eDataType == EcorePackage.eINSTANCE.getEDoubleObject()) { return 8; } else if (eDataType == EcorePackage.eINSTANCE.getEString()) { if (val != null) { return 4 + ((String) val).getBytes(Charsets.UTF_8).length; } return 4; } else if (eDataType == EcorePackage.eINSTANCE.getEByteArray()) { if (val != null) { return 4 + ((byte[]) val).length; } return 4; } else if (eDataType instanceof EEnum) { return 4; } throw new RuntimeException("Unimplemented: " + eDataType); }
public int getPrimitiveSize(EDataType eDataType, Object val) { if (eDataType == EcorePackage.eINSTANCE.getEInt() || eDataType == EcorePackage.eINSTANCE.getEIntegerObject()) { return 4; } else if (eDataType == EcorePackage.eINSTANCE.getEShort() || eDataType == EcorePackage.eINSTANCE.getEShortObject()) { return 2; } else if (eDataType == EcorePackage.eINSTANCE.getEFloat() || eDataType == EcorePackage.eINSTANCE.getEFloatObject()) { return 4; } else if (eDataType == EcorePackage.eINSTANCE.getEBoolean() || eDataType == EcorePackage.eINSTANCE.getEBooleanObject()) { return 1; } else if (eDataType == EcorePackage.eINSTANCE.getEDate()) { return 8; } else if (eDataType == EcorePackage.eINSTANCE.getELong() || eDataType == EcorePackage.eINSTANCE.getELongObject()) { return 8; } else if (eDataType == EcorePackage.eINSTANCE.getEDouble() || eDataType == EcorePackage.eINSTANCE.getEDoubleObject()) { return 8; } else if (eDataType == EcorePackage.eINSTANCE.getEString()) { if (val != null) { return 4 + ((String) val).getBytes(Charsets.UTF_8).length; } return 4; } else if (eDataType == EcorePackage.eINSTANCE.getEByteArray()) { if (val != null) { return 4 + ((byte[]) val).length; } return 4; } else if (eDataType instanceof EEnum) { return 4; } throw new RuntimeException("Unimplemented: " + eDataType); }
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(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(strFeature, stringVal); } return eObject; }
listDataValue.setFieldName(eStructuralFeature.getName()); dataObject.getValues().add(listDataValue); if (eStructuralFeature.getEType() == EcorePackage.eINSTANCE.getEDoubleObject() || eStructuralFeature.getEType() == EcorePackage.eINSTANCE.getEDouble()) { EStructuralFeature asStringFeature = eObject.eClass().getEStructuralFeature(eStructuralFeature.getName() + "AsString"); List list = (List) eObject.eGet(asStringFeature); if (eStructuralFeature.getEType() == EcorePackage.eINSTANCE.getEDouble() || eStructuralFeature.getEType() == EcorePackage.eINSTANCE.getEDoubleObject()) { List list = (List)eObject.eGet(eObject.eClass().getEStructuralFeature(eStructuralFeature.getName() + "AsString")); ListDataValue dataValue = StoreFactory.eINSTANCE.createListDataValue();
newObject.setAttribute(newObject.eClass().getEStructuralFeature("List"), result); if (eStructuralFeature.getEType() == EcorePackage.eINSTANCE.getEDouble() || eStructuralFeature.getEType() == EcorePackage.eINSTANCE.getEDoubleObject()) { result = readList(newObject, buffer, eClass.getEStructuralFeature("ListAsString"));
private IdEObject readWrappedValue(EStructuralFeature feature, ByteBuffer buffer, EClass eClass, QueryInterface query) { EStructuralFeature eStructuralFeature = eClass.getEStructuralFeature("wrappedValue"); Object primitiveValue = readPrimitiveValue(eStructuralFeature.getEType(), buffer, query); IdEObject eObject = createInternal(eClass, query); ((IdEObjectImpl) eObject).setLoaded(); // We don't want to go lazy load // this eObject.eSet(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, query); eObject.eSet(strFeature, stringVal); } return eObject; }
private String convertType(EClassifier type) { if (type == EcorePackage.eINSTANCE.getEDouble() || type == EcorePackage.eINSTANCE.getEDoubleObject()) { return "double"; } else if (type == EcorePackage.eINSTANCE.getEInt() || type == EcorePackage.eINSTANCE.getEIntegerObject()) { return "int"; } else if (type == EcorePackage.eINSTANCE.getEShort() || type == EcorePackage.eINSTANCE.getEShortObject()) { return "short"; } else if (type == EcorePackage.eINSTANCE.getEBoolean() || type == EcorePackage.eINSTANCE.getEBooleanObject()) { return "boolean"; } else if (type == EcorePackage.eINSTANCE.getEByteArray()) { return "bytearray"; } else if (type == EcorePackage.eINSTANCE.getELong() || type == EcorePackage.eINSTANCE.getELongObject()) { return "long"; } else if (type == EcorePackage.eINSTANCE.getEString()) { return "string"; } else if (type instanceof EEnum) { return "enum"; } return type.getName(); } }
} else if (eFeature.getEType() == EcorePackage.eINSTANCE.getELong() || eFeature.getEType() == EcorePackage.eINSTANCE.getELongObject()) { throw new UnsupportedOperationException(); } else if (eFeature.getEType() == EcorePackage.eINSTANCE.getEDouble() || eFeature.getEType() == EcorePackage.eINSTANCE.getEDoubleObject()) { bimServerClient.getLowLevelInterface().addDoubleAttribute(getTransactionId(), idEObject.getOid(), eFeature.getName(), (Double) notification.getNewValue()); } else if (eFeature.getEType() == EcorePackage.eINSTANCE.getEBoolean() || eFeature.getEType() == EcorePackage.eINSTANCE.getEBooleanObject()) {
Object wrappedVal = eObject.eGet(wrappedValueFeature); int refSize = 2 + getPrimitiveSize((EDataType) wrappedValueFeature.getEType(), wrappedVal); if (wrappedValueFeature.getEType() == EcorePackage.eINSTANCE.getEDouble() || wrappedValueFeature.getEType() == EcorePackage.eINSTANCE.getEDoubleObject()) { EStructuralFeature wrappedStringFeature = wrappedValue.eClass().getEStructuralFeature("wrappedValueAsString"); String str = (String) eObject.eGet(wrappedStringFeature);
} 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()) { } 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()) {