private static String[] getFullyQualifiedClassName(Descriptors.Descriptor container, final FileOptions fileOpts, String name) { if (fileOpts.getJavaMultipleFiles()) { LinkedList<String> fqnSegments = new LinkedList<>(); fqnSegments.push(name); while (container != null) { fqnSegments.push(container.getName()); container = container.getContainingType(); } fqnSegments.push(fileOpts.getJavaPackage()); return fqnSegments.toArray(new String[] {}); } return new String[] {fileOpts.getJavaPackage(), fileOpts.getJavaOuterClassname(), name}; }
private MessageType(Descriptors.Descriptor descriptor) { this.fieldDescriptors = descriptor.getFields().toArray(new Descriptors.FieldDescriptor[descriptor.getFields().size()]); this.doesWrapRepeated = fieldDescriptors.length == 1 && fieldDescriptors[0].isRepeated() && descriptor.getName().equalsIgnoreCase(fieldDescriptors[0].getName()); }
private Schema getSchema(Descriptor descriptor) { Map<Descriptor,Schema> seen = SEEN.get(); if (seen.containsKey(descriptor)) // stop recursion return seen.get(descriptor); boolean first = seen.isEmpty(); try { Schema result = Schema.createRecord(descriptor.getName(), null, getNamespace(descriptor.getFile(), descriptor.getContainingType()), false); seen.put(descriptor, result); List<Field> fields = new ArrayList<>(); for (FieldDescriptor f : descriptor.getFields()) fields.add(Accessor.createField(f.getName(), getSchema(f), null, getDefault(f))); result.setFields(fields); return result; } finally { if (first) seen.clear(); } }
@Nonnull public RecordType getRecordTypeForDescriptor(@Nonnull Descriptors.Descriptor descriptor) { RecordType recordType = getRecordType(descriptor.getName()); if (recordType.getDescriptor() != descriptor) { throw new MetaDataException("descriptor did not match record type"); } return recordType; }
if (methodDescriptor.getOutputDescriptor().getName().equals("VoidResponse")) { builder.setField(errorMessageField, "OKE"); } else { FieldDescriptor valueField = protocolBuffersMetaData.getMessageDescriptor(response.getDescriptorForType().getName()).getField("value"); if (result != null) { if (valueField.getType().getJavaType() == JavaType.ENUM) {
String errorMessage = (String) result.getField(errorMessageField); if (errorMessage.equals("OKE")) { if (result.getDescriptorForType().getName().equals("VoidResponse")) { return null; } else {
&& !field.getMessageType().getName().equals(name)) { field = null;
if (field.getType() == FieldDescriptor.Type.GROUP) { generator.print(field.getMessageType().getName()); } else { generator.print(field.getName());
loaded.put(fileDescriptor.getName(), fileDescriptor); for (Descriptor descriptor : fileDescriptor.getMessageTypes()) { this.messageDescriptors.put(descriptor.getName(), new MessageDescriptorContainer(descriptor));
public TableMetadataPersistence.ColumnValueDescription.Builder persistToProto() { Builder builder = TableMetadataPersistence.ColumnValueDescription.newBuilder(); builder.setType(type.persistToProto()); builder.setCompression(compression.persistToProto()); if (className != null) { builder.setClassName(className); } if (canonicalClassName != null) { builder.setCanonicalClassName(canonicalClassName); } builder.setFormat(format.persistToProto()); if (protoDescriptor != null) { builder.setProtoMessageName(protoDescriptor.getName()); builder.setProtoFileDescriptorTree(persistFileDescriptorTree(protoDescriptor.getFile())); if (protoDescriptor.getContainingType() != null) { log.error("proto descriptors should be top level types: {}", protoDescriptor.getName()); } } return builder; }
private void serialize(JsonGenerator jgen, Descriptor descriptor) throws IOException { jgen.writeObjectField("name", descriptor.getName()); jgen.writeArrayFieldStart("fields"); for (FieldDescriptor field : descriptor.getFields()) { jgen.writeStartObject(); serialize(jgen, field); jgen.writeEndObject(); } jgen.writeEndArray(); }
private void publishSuccessEvent(String id, String message) { publisher.publishSync(TestServiceOuterClass.HandlerSuccessEvent.newBuilder() .setMeta(TestServiceOuterClass.Meta.newBuilder() .setName(TestServiceOuterClass.HandlerSuccessEvent.getDescriptor().getName()) .build()) .setId(id) .setMessage(message) .build()); } }
!field.getMessageType().getName().equals(name)) { field = null;
&& !field.getMessageType().getName().equals(name)) { field = null;
throw new DescriptorValidationException(this, "FieldDescriptorProto.oneof_index is out of range for type " + parent.getName());
if (field.getType() == FieldDescriptor.Type.GROUP) { generator.print(field.getMessageType().getName()); } else { generator.print(field.getName());
if (field.getType() == FieldDescriptor.Type.GROUP) { generator.print(field.getMessageType().getName()); } else { generator.print(field.getName());
private static Class<?> getJavaClassIgnoreRepeated(final Descriptors.FieldDescriptor descriptor, BeanContainer beanContainer) { switch (descriptor.getJavaType()) { case INT: return Integer.class; case LONG: return Long.class; case FLOAT: return Float.class; case DOUBLE: return Double.class; case BOOLEAN: return Boolean.class; case STRING: return String.class; case BYTE_STRING: return ByteString.class; //code duplicate, but GenericDescriptor interface is private in protobuf case ENUM: return getEnumClassByEnumDescriptor(descriptor.getEnumType(), beanContainer); case MESSAGE: return MappingUtils.loadClass(StringUtils.join( getFullyQualifiedClassName(descriptor.getMessageType().getContainingType(), descriptor.getMessageType().getFile().getOptions(), descriptor.getMessageType().getName()), '.'), beanContainer); default: throw new MappingException("Unable to find " + descriptor.getJavaType()); } }
private String getNamespace(FileDescriptor fd, Descriptor containing) { FileOptions o = fd.getOptions(); String p = o.hasJavaPackage() ? o.getJavaPackage() : fd.getPackage(); String outer; if (o.hasJavaOuterClassname()) { outer = o.getJavaOuterClassname(); } else { outer = new File(fd.getName()).getName(); outer = outer.substring(0, outer.lastIndexOf('.')); outer = toCamelCase(outer); } String inner = ""; while (containing != null) { inner = containing.getName() + "$" + inner; containing = containing.getContainingType(); } return p + "." + outer + "$" + inner; }
symtab.get(runtime.newString(Utils.unescapeIdentifier(descriptor.getName())))); for (Descriptors.FieldDescriptor fieldDescriptor : descriptor.getFields()) { if (fieldDescriptor.isRequired()) { if (fieldDescriptor.getType() == Descriptors.FieldDescriptor.Type.MESSAGE) { RubyDescriptor subType = (RubyDescriptor) lookup(context, runtime.newString(Utils.unescapeIdentifier(fieldDescriptor.getMessageType().getName()))); rubyFieldDescriptor.setSubType(subType);