private Schema getSchema(EnumDescriptor d) { List<String> symbols = new ArrayList<>(); for (EnumValueDescriptor e : d.getValues()) { symbols.add(e.getName()); } return Schema.createEnum(d.getName(), null, getNamespace(d.getFile(), d.getContainingType()), symbols); }
@SuppressWarnings("unchecked") private static Class<? extends Enum> getEnumClassByEnumDescriptor(Descriptors.EnumDescriptor descriptor, BeanContainer beanContainer) { String name = StringUtils.join(getFullyQualifiedClassName(descriptor.getContainingType(), descriptor.getFile().getOptions(), descriptor.getName()), '.'); return (Class<? extends Enum>)MappingUtils.loadClass(name, beanContainer); }
String enumName = Utils.unescapeIdentifier(enumDescriptor.getName()); if (enumDescriptor.findValueByNumber(0) == null) { throw runtime.newTypeError("Enum definition " + enumName runtime.newString(Utils.unescapeIdentifier(fieldDescriptor.getEnumType().getName()))); rubyFieldDescriptor.setSubType(subType);
if (clazz.getSimpleName().equals(fieldEnumValue.getType().getName())) { Type[] enumValues = clazz.getEnumConstants(); if (fieldEnumValue.getIndex() >= 0 && fieldEnumValue.getIndex() < enumValues.length) {
/** * Gets the default value of the field (null for objects, zero, false, etc). * * @return the "default value" of the field */ public String getDefaultValue() { switch (field.getJavaType()) { case BOOLEAN: return "false"; case BYTE_STRING: return "null"; case DOUBLE: return "0.0"; case ENUM: return field.getEnumType().getName() + ".UNKNOWN"; case FLOAT: return "0.0f"; case INT: return "0"; case LONG: return "0L"; case MESSAGE: return "null"; case STRING: return "null"; default: throw new UnsupportedOperationException("Unsupported field type " + field.getJavaType()); } }
private EnumValueDescriptor( final FileDescriptor file, final EnumDescriptor parent, final Integer number) { String name = "UNKNOWN_ENUM_VALUE_" + parent.getName() + "_" + number; EnumValueDescriptorProto proto = EnumValueDescriptorProto .newBuilder().setName(name).setNumber(number).build(); this.index = -1; this.proto = proto; this.file = file; this.type = parent; this.fullName = parent.getFullName() + '.' + proto.getName(); this.number = number; // Don't add this descriptor into pool. }
private void addEnumType(EnumDescriptor enumType, String scope, Set<String> enumDupes) { String enumTypeNameFull = enumType.getFullName(); String enumTypeNameShort = (scope == null ? enumType.getName() : scope + "." + enumType.getName()); if (mEnumDescriptorMapFull.containsKey(enumTypeNameFull)) throw new IllegalArgumentException("duplicate name: " + enumTypeNameFull); if (mEnumDescriptorMapShort.containsKey(enumTypeNameShort)) enumDupes.add(enumTypeNameShort); mEnumDescriptorMapFull.put(enumTypeNameFull, enumType); mEnumDescriptorMapShort.put(enumTypeNameShort, enumType); }
private static String classNameWithoutPackage(EnumDescriptor descriptor, ProtoFlavor flavor) { // Doesn't append "Mutable" for enum type's name. Descriptor messageDescriptor = descriptor.getContainingType(); if (messageDescriptor == null) { return descriptor.getName(); } return classNameWithoutPackage(messageDescriptor, flavor) + '.' + descriptor.getName(); }
private void serialize(JsonGenerator jgen, EnumDescriptor enumType) throws IOException, JsonProcessingException { jgen.writeObjectField("name", enumType.getName()); jgen.writeArrayFieldStart("values"); { for (EnumValueDescriptor value : enumType.getValues()) { jgen.writeString(value.getName()); } } jgen.writeEndArray(); } }
private void generateProtoFromDescriptor(EnumDescriptor descriptor, Appendable out, String indent) throws IOException { out.append(indent + "enum " + descriptor.getName() + " {\n"); for (EnumValueDescriptor valueDescriptor : descriptor.getValues()) { generateProtoFromDescriptor(valueDescriptor, out, indent + " "); } out.append(indent + "}\n"); }
@SuppressWarnings("unchecked") private static Class<? extends Enum> getEnumClassByEnumDescriptor(Descriptors.EnumDescriptor descriptor, BeanContainer beanContainer) { String name = StringUtils.join(getFullyQualifiedClassName(descriptor.getContainingType(), descriptor.getFile().getOptions(), descriptor.getName()), '.'); return (Class<? extends Enum>)MappingUtils.loadClass(name, beanContainer); }
private Schema getSchema(EnumDescriptor d) { List<String> symbols = new ArrayList<String>(); for (EnumValueDescriptor e : d.getValues()) { symbols.add(e.getName()); } return Schema.createEnum(d.getName(), null, getNamespace(d.getFile(), d.getContainingType()), symbols); }
private static String classNameWithoutPackage(EnumDescriptor descriptor, ProtoFlavor flavor) { // Doesn't append "Mutable" for enum type's name. Descriptor messageDescriptor = descriptor.getContainingType(); if (messageDescriptor == null) { return descriptor.getName(); } return classNameWithoutPackage(messageDescriptor, flavor) + '.' + descriptor.getName(); }
/** * Returns the enum, for example: * <ul> * <li>org.waveprotocol.pst.examples.Example1.Person.Gender = "Gender"</li> * </ul> * * @return the name of the enum */ public String getName() { return descriptor.getName(); }
private void serialize(JsonGenerator jgen, EnumDescriptor enumType) throws IOException { jgen.writeObjectField("name", enumType.getName()); jgen.writeArrayFieldStart("values"); for (EnumValueDescriptor value : enumType.getValues()) { jgen.writeString(value.getName()); } jgen.writeEndArray(); } }
protected Class<?> getJavaPrimitiveType(FieldDescriptor fieldDescriptor) { if (fieldDescriptor.getJavaType() == JavaType.BOOLEAN) { return boolean.class; } else if (fieldDescriptor.getJavaType() == JavaType.BYTE_STRING) { return DataHandler.class; } else if (fieldDescriptor.getJavaType() == JavaType.DOUBLE) { return double.class; } else if (fieldDescriptor.getJavaType() == JavaType.FLOAT) { return float.class; } else if (fieldDescriptor.getJavaType() == JavaType.INT) { return int.class; } else if (fieldDescriptor.getJavaType() == JavaType.LONG) { return long.class; } else if (fieldDescriptor.getJavaType() == JavaType.STRING) { return String.class; } else if (fieldDescriptor.getJavaType() == JavaType.ENUM) { try { return Class.forName("org.bimserver.interfaces.objects." + fieldDescriptor.getEnumType().getName()); } catch (ClassNotFoundException e) { LOGGER.error("", e); } } return null; } }
protected Class<?> getJavaType(FieldDescriptor fieldDescriptor) { if (fieldDescriptor.getJavaType() == JavaType.BOOLEAN) { return Boolean.class; } else if (fieldDescriptor.getJavaType() == JavaType.BYTE_STRING) { return DataHandler.class; } else if (fieldDescriptor.getJavaType() == JavaType.DOUBLE) { return Double.class; } else if (fieldDescriptor.getJavaType() == JavaType.FLOAT) { return Float.class; } else if (fieldDescriptor.getJavaType() == JavaType.INT) { return Integer.class; } else if (fieldDescriptor.getJavaType() == JavaType.LONG) { return Long.class; } else if (fieldDescriptor.getJavaType() == JavaType.STRING) { return String.class; } else if (fieldDescriptor.getJavaType() == JavaType.ENUM) { try { return Class.forName("org.bimserver.interfaces.objects." + fieldDescriptor.getEnumType().getName()); } catch (ClassNotFoundException e) { LOGGER.error("", e); } } return null; }
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; } }
private void serialize(JsonGenerator jgen, EnumDescriptor enumType) throws IOException { jgen.writeObjectField("name", enumType.getName()); jgen.writeArrayFieldStart("values"); for (EnumValueDescriptor value : enumType.getValues()) { jgen.writeString(value.getName()); } jgen.writeEndArray(); } }
private EnumValueDescriptor( final FileDescriptor file, final EnumDescriptor parent, final Integer number) { String name = "UNKNOWN_ENUM_VALUE_" + parent.getName() + "_" + number; EnumValueDescriptorProto proto = EnumValueDescriptorProto .newBuilder().setName(name).setNumber(number).build(); this.index = -1; this.proto = proto; this.file = file; this.type = parent; this.fullName = parent.getFullName() + '.' + proto.getName(); this.number = number; // Don't add this descriptor into pool. }