com.google.protobuf.Descriptors#GenericDescriptor ( )源码实例Demo

下面列出了com.google.protobuf.Descriptors#GenericDescriptor ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: metastore   文件: ProtoDiff.java
private <T extends Descriptors.GenericDescriptor> void diffGenericDescriptor(
    List<T> mt_ref,
    List<T> mt_new,
    Consumer<T> removal,
    Consumer<T> addition,
    BiConsumer<T, T> diff) {
  Map<String, T> m_ref = toMap4Descriptor(mt_ref);
  Map<String, T> m_new = toMap4Descriptor(mt_new);

  Set<String> onlyRef = onlyInLeft(m_ref, m_new);
  onlyRef.forEach(k -> removal.accept(m_ref.get(k)));

  Set<String> onlyNew = onlyInLeft(m_new, m_ref);
  onlyNew.forEach(k -> addition.accept(m_new.get(k)));

  Set<String> common = onlyInCommon(m_new, m_ref);
  common.forEach(k -> diff.accept(m_ref.get(k), m_new.get(k)));
}
 
源代码2 项目: stateful-functions   文件: JsonModule.java
private static Router<Message> dynamicRouter(JsonNode router) {
  String addressTemplate = Selectors.textAt(router, Pointers.Routers.SPEC_TARGET);
  String descriptorSetPath = Selectors.textAt(router, Pointers.Routers.SPEC_DESCRIPTOR);
  String messageType = Selectors.textAt(router, Pointers.Routers.SPEC_MESSAGE_TYPE);

  ProtobufDescriptorMap descriptorPath = protobufDescriptorMap(descriptorSetPath);
  Optional<Descriptors.GenericDescriptor> maybeDescriptor =
      descriptorPath.getDescriptorByName(messageType);
  if (!maybeDescriptor.isPresent()) {
    throw new IllegalStateException(
        "Error while processing a router definition. Unable to locate a message "
            + messageType
            + " in a descriptor set "
            + descriptorSetPath);
  }
  return ProtobufRouter.forAddressTemplate(
      (Descriptors.Descriptor) maybeDescriptor.get(), addressTemplate);
}
 
源代码3 项目: flink-statefun   文件: RouterJsonEntity.java
private static Router<Message> dynamicRouter(JsonNode router) {
  String addressTemplate = Selectors.textAt(router, SpecPointers.TARGET);
  String descriptorSetPath = Selectors.textAt(router, SpecPointers.DESCRIPTOR);
  String messageType = Selectors.textAt(router, SpecPointers.MESSAGE_TYPE);

  ProtobufDescriptorMap descriptorPath = protobufDescriptorMap(descriptorSetPath);
  Optional<Descriptors.GenericDescriptor> maybeDescriptor =
      descriptorPath.getDescriptorByName(messageType);
  if (!maybeDescriptor.isPresent()) {
    throw new IllegalStateException(
        "Error while processing a router definition. Unable to locate a message "
            + messageType
            + " in a descriptor set "
            + descriptorSetPath);
  }
  return ProtobufRouter.forAddressTemplate(
      (Descriptors.Descriptor) maybeDescriptor.get(), addressTemplate);
}
 
源代码4 项目: js-dossier   文件: Renderer.java
@Inject
Renderer(
    Provider<SoyFileSet.Builder> filesetBuilderProvider,
    ImmutableSet<Descriptors.GenericDescriptor> descriptors,
    JsonRenderer jsonRenderer) {
  this.filesetBuilderProvider = filesetBuilderProvider;
  this.tofu =
      filesetBuilderProvider
          .get()
          .add(Renderer.class.getResource("resources/types.soy"))
          .add(Renderer.class.getResource("resources/dossier.soy"))
          .addProtoDescriptors(descriptors)
          .build()
          .compileToTofu();
  this.jsonRenderer = jsonRenderer;
}
 
源代码5 项目: metastore   文件: ProtoDiff.java
private <T extends Descriptors.GenericDescriptor> Map<String, T> toMap4Descriptor(List<T> in) {
  Map<String, T> out = new HashMap<>();
  in.forEach(
      descriptor -> {
        out.put(descriptor.getName(), descriptor);
      });
  return out;
}
 
public static ProtobufDescriptorMap from(DescriptorProtos.FileDescriptorSet fileDescriptorSet) {
  Map<String, Descriptors.FileDescriptor> resolvedSet =
      FileDescriptorResolver.resolve(fileDescriptorSet);

  Map<String, Descriptors.GenericDescriptor> messageOrEnumDescriptors = new HashMap<>();

  for (Descriptors.FileDescriptor fileDescriptor : resolvedSet.values()) {
    addMessages(messageOrEnumDescriptors, fileDescriptor, packageName(fileDescriptor));
    addEnums(messageOrEnumDescriptors, fileDescriptor, packageName(fileDescriptor));
  }
  return new ProtobufDescriptorMap(messageOrEnumDescriptors);
}
 
private static void addMessages(
    Map<String, Descriptors.GenericDescriptor> descriptors,
    Descriptors.FileDescriptor proto,
    String packageName) {
  for (Descriptors.Descriptor message : proto.getMessageTypes()) {
    String fullName = packageName + message.getName();
    descriptors.put(fullName, message);
  }
}
 
private static void addEnums(
    Map<String, Descriptors.GenericDescriptor> descriptors,
    Descriptors.FileDescriptor descriptor,
    String packageName) {
  for (Descriptors.EnumDescriptor message : descriptor.getEnumTypes()) {
    String fullName = packageName + message.getName();
    descriptors.put(fullName, message);
  }
}
 
源代码9 项目: flink-statefun   文件: ProtobufDescriptorMap.java
public static ProtobufDescriptorMap from(DescriptorProtos.FileDescriptorSet fileDescriptorSet) {
  Map<String, Descriptors.FileDescriptor> resolvedSet =
      FileDescriptorResolver.resolve(fileDescriptorSet);

  Map<String, Descriptors.GenericDescriptor> messageOrEnumDescriptors = new HashMap<>();

  for (Descriptors.FileDescriptor fileDescriptor : resolvedSet.values()) {
    addMessages(messageOrEnumDescriptors, fileDescriptor, packageName(fileDescriptor));
    addEnums(messageOrEnumDescriptors, fileDescriptor, packageName(fileDescriptor));
  }
  return new ProtobufDescriptorMap(messageOrEnumDescriptors);
}
 
源代码10 项目: flink-statefun   文件: ProtobufDescriptorMap.java
private static void addMessages(
    Map<String, Descriptors.GenericDescriptor> descriptors,
    Descriptors.FileDescriptor proto,
    String packageName) {
  for (Descriptors.Descriptor message : proto.getMessageTypes()) {
    String fullName = packageName + message.getName();
    descriptors.put(fullName, message);
  }
}
 
源代码11 项目: flink-statefun   文件: ProtobufDescriptorMap.java
private static void addEnums(
    Map<String, Descriptors.GenericDescriptor> descriptors,
    Descriptors.FileDescriptor descriptor,
    String packageName) {
  for (Descriptors.EnumDescriptor message : descriptor.getEnumTypes()) {
    String fullName = packageName + message.getName();
    descriptors.put(fullName, message);
  }
}
 
源代码12 项目: js-dossier   文件: DossierSoyModule.java
@Provides
@Singleton
ImmutableSet<Descriptors.GenericDescriptor> provideProtoDescriptors() {
  return ImmutableSet.copyOf(
      collectDescriptors(
          DescriptorProtos.getDescriptor(), Dossier.getDescriptor(), Expression.getDescriptor()));
}
 
源代码13 项目: js-dossier   文件: DossierSoyModule.java
private static Set<Descriptors.GenericDescriptor> collectDescriptors(
    Descriptors.FileDescriptor... fileDescriptors) {
  Set<Descriptors.GenericDescriptor> set = new HashSet<>();
  for (Descriptors.FileDescriptor file : fileDescriptors) {
    set.addAll(file.getEnumTypes());
    for (Descriptors.Descriptor descriptor : file.getMessageTypes()) {
      collectDescriptors(set, descriptor);
    }
  }
  return set;
}
 
源代码14 项目: js-dossier   文件: DossierSoyModule.java
private static void collectDescriptors(
    Set<Descriptors.GenericDescriptor> set, Descriptors.Descriptor descriptor) {
  if (!set.add(descriptor)) {
    return;
  }

  set.addAll(descriptor.getEnumTypes());
  for (Descriptors.FieldDescriptor field : descriptor.getFields()) {
    if (field.getJavaType() == Descriptors.FieldDescriptor.JavaType.MESSAGE) {
      collectDescriptors(set, field.getMessageType());
    }
  }
}
 
源代码15 项目: stateful-functions   文件: ProtobufDescriptorMap.java
private ProtobufDescriptorMap(Map<String, Descriptors.GenericDescriptor> descriptorByName) {
  this.descriptorByName = descriptorByName;
}
 
源代码16 项目: stateful-functions   文件: ProtobufDescriptorMap.java
public Optional<Descriptors.GenericDescriptor> getDescriptorByName(String messageFullName) {
  Descriptors.GenericDescriptor descriptor = descriptorByName.get(messageFullName);
  return Optional.ofNullable(descriptor);
}
 
源代码17 项目: flink-statefun   文件: ProtobufDescriptorMap.java
private ProtobufDescriptorMap(Map<String, Descriptors.GenericDescriptor> descriptorByName) {
  this.descriptorByName = descriptorByName;
}
 
源代码18 项目: flink-statefun   文件: ProtobufDescriptorMap.java
public Optional<Descriptors.GenericDescriptor> getDescriptorByName(String messageFullName) {
  Descriptors.GenericDescriptor descriptor = descriptorByName.get(messageFullName);
  return Optional.ofNullable(descriptor);
}
 
源代码19 项目: js-dossier   文件: Renderer.java
public static void main(String[] args) throws IOException {
  checkArgument(args.length > 0, "no output directory specified");

  Path outputDir = FileSystems.getDefault().getPath(args[0]);
  checkArgument(Files.isDirectory(outputDir), "not a directory: %s", outputDir);

  Injector injector = Guice.createInjector(new DossierSoyModule());

  ImmutableSet<Descriptors.GenericDescriptor> descriptors =
      injector.getInstance(
          Key.get(new TypeLiteral<ImmutableSet<Descriptors.GenericDescriptor>>() {}));
  SoyFileSet fileSet =
      injector
          .getInstance(SoyFileSet.Builder.class)
          .add(Renderer.class.getResource("resources/dossier.soy"))
          .add(Renderer.class.getResource("resources/nav.soy"))
          .add(Renderer.class.getResource("resources/types.soy"))
          .addProtoDescriptors(descriptors)
          .build();

  SoyJsSrcOptions options = new SoyJsSrcOptions();

  options.setShouldGenerateGoogModules(true);

  Pattern googModulePattern = Pattern.compile("(goog\\.module\\('.*'\\);)");
  String missingContent =
      "\n/** @suppress {extraRequire} */\n"
          + "goog.require('dossier.soyplugins');\n"
          + "/** @suppress {extraRequire} */\n"
          + "goog.require('goog.soy.data.SanitizedContent');\n";

  Iterator<Path> files =
      ImmutableList.of(
              outputDir.resolve("dossier.soy.js"),
              outputDir.resolve("nav.soy.js"),
              outputDir.resolve("types.soy.js"))
          .iterator();
  for (String string : fileSet.compileToJsSrc(options, null)) {
    Matcher matcher = googModulePattern.matcher(string);
    if (matcher.find()) {
      string = matcher.replaceFirst("$1\n" + missingContent);
    }

    Path file = files.next();
    Files.write(file, string.getBytes(StandardCharsets.UTF_8));
  }
}