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; }
@Override public int compareTo(SField o) { return name.compareTo(o.getName()); } }
if (field.isAggregate()) { messageBuilder.append("repeated "); } else { messageBuilder.append("optional "); SClass type = field.getType(); if (field.isAggregate()) { type = field.getGenericType(); messageBuilder.append(createMessage(sb, type) + " " + field.getName() + " = " + (counter++) + ";\n");
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; }
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; } }
if (jsonObject.has(field.getName())) { newObject.sSet(field, fromJson(field.getType(), field.getGenericType(), jsonObject.get(field.getName())));
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() + "());"); } } }
try { Object value = object.sGet(field); FieldDescriptor fieldDescriptor = messageDescriptor.getField(field.getName()); if (value != null) { if (value.getClass().isPrimitive() || value.getClass() == String.class || value.getClass() == Long.class || value.getClass() == Double.class for (Object o : list) { if (fieldDescriptor.getJavaType() == JavaType.MESSAGE) { newList.add(convertSObjectToProtocolBuffersObject((SBase) o, field.getGenericType())); } else { newList.add(o);
public ObjectNode toJson(ObjectMapper OBJECT_MAPPER) { ObjectNode result = OBJECT_MAPPER.createObjectNode(); result.put("name", getName()); result.put("simpleName", getSimpleName()); result.put("simpleType", getSimpleType().name()); ArrayNode fieldsJson = OBJECT_MAPPER.createArrayNode(); for (SField field : ownFields.values()) { fieldsJson.add(field.toJson(OBJECT_MAPPER)); } result.set("fields", fieldsJson); return result; }
Class<?> genericType = sServicesMap.getGenericType(method); boolean aggregate = List.class.isAssignableFrom(method.getReturnType()) || Set.class.isAssignableFrom(method.getReturnType()); SField sField = new SField(fieldName, sServicesMap.getSType(method.getReturnType().getName()), genericType == null ? null : sServicesMap.getSType(genericType.getName()), aggregate); addField(sField); Class<?> genericType = sServicesMap.getGenericType(method); boolean aggregate = List.class.isAssignableFrom(method.getReturnType()) || Set.class.isAssignableFrom(method.getReturnType()); SField sField = new SField(fieldName, sServicesMap.getSType(method.getReturnType().getName()), genericType == null ? null : sServicesMap.getSType(genericType.getName()), aggregate); addField(sField);
public Object sGet(SField sField) { throw new RuntimeException("Field " + sField.getName() + " not found"); }
public void sSet(SField sField, Object val) { throw new RuntimeException("Field " + sField.getName() + " not found"); }