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; } }
messageBuilder.append("optional "); SClass type = field.getType(); if (field.isAggregate()) { type = field.getGenericType();
private void genServiceInterfaceToProtocolBuffers(PrintWriter out, String sourceName, String targetName, SClass parameterType) { for (SField field : parameterType.getAllFields()) { SClass fieldType = field.getType(); SClass fieldClass = fieldType; if (fieldClass.isList()) { out.println("\t\t\tfor (" + fieldType.getName() + " o : " + sourceName + "." + field.getName() + "()) {"); out.println("\t\t\t\t" + targetName + ".add" + field.getName() + "(o);"); out.println("\t\t\t}"); } else if (fieldClass.isDate()) { out.println("\t\t\t" + targetName + ".set" + field.getName() + "(" + sourceName + "." + field.getName() + "().getTime());"); } else if (fieldType.getInstanceClass() == byte[].class) { out.println("\t\t\t" + targetName + ".set" + field.getName() + "(ByteString.copyFrom(" + sourceName + "." + field.getName() + "()));"); } else if (fieldClass.isEnum()) { out.println("\t\t\t" + targetName + ".set" + field.getName() + "(" + fieldType.getInstanceClass().getSimpleName() + ".values()[" + sourceName + "." + field.getName() + "().ordinal()]);"); } else { out.println("\t\t\t" + targetName + ".set" + field.getName() + "(" + sourceName + "." + field.getName() + "());"); } } }
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; }