File size: 3,689 Bytes
2adb4b5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | // Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd
// Author: kenton@google.com (Kenton Varda)
// Based on original Protocol Buffers design by
// Sanjay Ghemawat, Jeff Dean, and others.
//
// Provides a mechanism for mapping a descriptor to the
// fully-qualified name of the corresponding Java class.
#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_NAMES_H__
#define GOOGLE_PROTOBUF_COMPILER_JAVA_NAMES_H__
#include <string>
#include "absl/strings/string_view.h"
#include "google/protobuf/compiler/java/options.h"
#include "google/protobuf/descriptor.h"
// Must be last.
#include "google/protobuf/port_def.inc"
namespace google {
namespace protobuf {
class Descriptor;
class EnumDescriptor;
class FileDescriptor;
class FieldDescriptor;
class ServiceDescriptor;
namespace compiler {
namespace java {
// Requires:
// descriptor != NULL
//
// Returns:
// The fully-qualified Java class name.
PROTOC_EXPORT std::string ClassName(const Descriptor* descriptor);
// Requires:
// descriptor != NULL
//
// Returns:
// The fully-qualified Java class name.
PROTOC_EXPORT std::string ClassName(const EnumDescriptor* descriptor);
// Requires:
// descriptor != NULL
//
// Returns:
// The fully-qualified Java class name.
PROTOC_EXPORT std::string ClassName(const FileDescriptor* descriptor);
// Requires:
// descriptor != NULL
//
// Returns:
// The fully-qualified Java class name.
PROTOC_EXPORT std::string ClassName(const ServiceDescriptor* descriptor);
// Requires:
// descriptor != NULL
//
// Returns:
// Java package name.
PROTOC_EXPORT std::string FileJavaPackage(const FileDescriptor* descriptor,
Options options = {});
// Requires:
// descriptor != NULL
//
// Returns:
// Java package directory.
PROTOC_EXPORT std::string JavaPackageDirectory(const FileDescriptor* file);
// Requires:
// descriptor != NULL
//
// Returns:
// The unqualified Java class name.
PROTOC_EXPORT std::string FileClassName(const FileDescriptor* file);
// Requires:
// descriptor != NULL
// Returns:
// Capitalized camel case field name.
PROTOC_EXPORT std::string CapitalizedFieldName(const FieldDescriptor* field);
// Requires:
// descriptor != NULL
// Returns:
// Capitalized camel case oneof name.
PROTOC_EXPORT std::string CapitalizedOneofName(const OneofDescriptor* oneof);
// Returns:
// Converts a name to camel-case. If cap_first_letter is true, capitalize the
// first letter.
PROTOC_EXPORT std::string UnderscoresToCamelCase(absl::string_view input,
bool cap_next_letter);
// Requires:
// field != NULL
// Returns:
// Converts the field's name to camel-case, e.g. "foo_bar_baz" becomes
// "fooBarBaz" or "FooBarBaz", respectively.
PROTOC_EXPORT std::string UnderscoresToCamelCase(const FieldDescriptor* field);
// Requires:
// method != NULL
// Returns:
// Similar, but for method names. (Typically, this merely has the effect
// of lower-casing the first letter of the name.)
PROTOC_EXPORT std::string UnderscoresToCamelCase(const MethodDescriptor* method);
// Requires:
// field != NULL
// Returns:
// Same as UnderscoresToCamelCase, but checks for reserved keywords
PROTOC_EXPORT std::string UnderscoresToCamelCaseCheckReserved(const FieldDescriptor* field);
} // namespace java
} // namespace compiler
} // namespace protobuf
} // namespace google
#include "google/protobuf/port_undef.inc"
#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_NAMES_H__
|