public ObjectNode toJson(ObjectMapper OBJECT_MAPPER) { ObjectNode json = OBJECT_MAPPER.createObjectNode(); json.put("name", name); json.set("type", getType().toJson(OBJECT_MAPPER)); json.set("genericType", getGenericType().toJson(OBJECT_MAPPER)); json.put("doc", getDoc()); return json; }
private Object convertFieldValue(SField field, Object val) throws ConvertException { if (val instanceof EnumValueDescriptor) { EnumValueDescriptor enumValueDescriptor = (EnumValueDescriptor) val; Class<?> enumClass; try { enumClass = Class.forName("org.bimserver.interfaces.objects." + enumValueDescriptor.getType().getName()); for (Object v : enumClass.getEnumConstants()) { Enum<?> e = (Enum<?>) v; if (e.ordinal() == enumValueDescriptor.getNumber()) { val = e; break; } } } catch (ClassNotFoundException e) { LOGGER.error("", e); } return val; } else if (field.getType().getInstanceClass() == Date.class) { return new Date((Long) val); } else if (field.getType().getInstanceClass() == DataHandler.class) { ByteString byteString = (ByteString) val; ByteArrayDataSource byteArrayDataSource = new ByteArrayDataSource("test", byteString.toByteArray()); return new DataHandler(byteArrayDataSource); } else if (val instanceof DynamicMessage) { return convertProtocolBuffersMessageToSObject((DynamicMessage) val, null, field.isAggregate() ? field.getGenericType() : field.getType()); } else { return val; } }
type = field.getGenericType();
for (Object o : list) { if (fieldDescriptor.getJavaType() == JavaType.MESSAGE) { newList.add(convertSObjectToProtocolBuffersObject((SBase) o, field.getGenericType())); } else { newList.add(o);
for (SField field : newObject.getSClass().getAllFields()) { if (jsonObject.has(field.getName())) { newObject.sSet(field, fromJson(field.getType(), field.getGenericType(), jsonObject.get(field.getName())));
public SServiceType createSServiceType(SClass sClass, boolean recurse) throws UserException, ServerException { if (sClass == null) { return null; } SServiceType sServiceType = new SServiceType(); sServiceType.setName(sClass.getName()); sServiceType.setSimpleName(sClass.getSimpleName()); sServiceType.setSimpleType(SServiceSimpleType.valueOf(sClass.getSimpleType().name())); for (SField field : sClass.getOwnFields()) { SServiceField sServiceField = new SServiceField(); sServiceField.setName(field.getName()); if (recurse) { sServiceField.setType(createSServiceType(field.getType(), recurse)); sServiceField.setGenericType(createSServiceType(field.getGenericType(), recurse)); } sServiceField.setDoc(field.getDoc()); sServiceType.getFields().add(sServiceField); } return sServiceType; }