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}; }
hash = (37 * hash) + JAVA_MULTIPLE_FILES_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getJavaMultipleFiles());
setJavaMultipleFiles(other.getJavaMultipleFiles());
setJavaMultipleFiles(other.getJavaMultipleFiles());
setJavaMultipleFiles(other.getJavaMultipleFiles());
setJavaMultipleFiles(other.getJavaMultipleFiles());
setJavaMultipleFiles(other.getJavaMultipleFiles());
fileDescriptor.getPackage()); final String enclosingClassName = fileOptions.getJavaMultipleFiles() ? null : getJavaOuterClassname(fileDescriptor, fileOptions);
fileDescriptor.getPackage()); final String enclosingClassName = fileOptions.getJavaMultipleFiles() ? null : getJavaOuterClassname(fileDescriptor, fileOptions);
/** * Generate a class name from a descriptor. Handles options such as java_multiple_files, java_package, and * java_outer_classname */ public static String genClassName(Descriptors.Descriptor descriptor) { String pkg = descriptor.getFile().getOptions().getJavaPackage(); String outerClassName = descriptor.getFile().getOptions().getJavaOuterClassname(); boolean multipleFiles = descriptor.getFile().getOptions().getJavaMultipleFiles(); StringBuilder sb = new StringBuilder(pkg); sb.append("."); if (multipleFiles) { sb.append(descriptor.getName()); } else { String baseClassName; if (!outerClassName.isEmpty()) { baseClassName = outerClassName; } else { String baseName = descriptor.getFile().getName(); baseName = baseName.substring(baseName.lastIndexOf('/') + 1); baseName = baseName.replace(".proto", "").replace(".protodevel", ""); baseClassName = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, baseName); } sb.append(baseClassName) .append(".") .append(descriptor.getName()); } return sb.toString(); }
/** * <pre> * If set true, then the Java code generator will generate a separate .java * file for each top-level message, enum, and service defined in the .proto * file. Thus, these types will *not* be nested inside the outer class * named by java_outer_classname. However, the outer class will still be * generated to contain the file's getDescriptor() method as well as any * top-level extensions defined in the file. * </pre> * * <code>optional bool java_multiple_files = 10 [default = false];</code> */ public boolean getJavaMultipleFiles() { return instance.getJavaMultipleFiles(); } /**
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 static boolean multipleJavaFiles(FileDescriptorProto fd, ProtoFlavor flavor) { FileOptions options = fd.getOptions(); switch (flavor) { case PROTO2: return options.getJavaMultipleFiles(); default: throw new AssertionError(); } }
private static String getProtoElementPackage(ProtoElement elem) { String name = getJavaPackage(elem.getFile()); if (!elem.getFile().getProto().getOptions().getJavaMultipleFiles()) { String outerClassName = elem.getFile().getProto().getOptions().getJavaOuterClassname(); if (outerClassName.isEmpty()) { outerClassName = getFileClassName(elem.getFile()); } name = name + "." + outerClassName; } return name; }
private static boolean multipleJavaFiles(FileDescriptorProto fd, ProtoFlavor flavor) { FileOptions options = fd.getOptions(); switch (flavor) { case PROTO2: return options.getJavaMultipleFiles(); default: throw new AssertionError(); } }
setJavaMultipleFiles(other.getJavaMultipleFiles());
result = result && (getJavaMultipleFiles() == other.getJavaMultipleFiles());