Search in sources :

Example 21 with FieldConfigNode

use of com.google.api.codegen.configgen.nodes.FieldConfigNode in project toolkit by googleapis.

the class ConfigMerger method mergeConfig.

private FieldConfigNode mergeConfig(ApiModel model, FieldConfigNode configNode) {
    ConfigNode typeNode = mergeType(configNode);
    if (typeNode == null) {
        return null;
    }
    ConfigNode versionNode = mergeVersion(configNode, typeNode);
    if (versionNode == null) {
        return null;
    }
    ConfigNode languageSettingsNode = languageSettingsMerger.mergeLanguageSettings(packageName, configNode, versionNode);
    mergeLicenseHeader(configNode, languageSettingsNode);
    interfaceMerger.mergeInterfaces(model, configNode);
    return configNode;
}
Also used : ScalarConfigNode(com.google.api.codegen.configgen.nodes.ScalarConfigNode) FieldConfigNode(com.google.api.codegen.configgen.nodes.FieldConfigNode) ConfigNode(com.google.api.codegen.configgen.nodes.ConfigNode)

Example 22 with FieldConfigNode

use of com.google.api.codegen.configgen.nodes.FieldConfigNode in project toolkit by googleapis.

the class InterfaceMerger method mergeInterfaces.

public void mergeInterfaces(ApiModel model, ConfigNode configNode) {
    FieldConfigNode interfacesNode = MissingFieldTransformer.append("interfaces", configNode).generate();
    if (NodeFinder.hasContent(interfacesNode.getChild())) {
        return;
    }
    ConfigNode interfacesValueNode = ListTransformer.generateList(model.getInterfaces(), interfacesNode, this::generateInterfaceNode);
    interfacesNode.setChild(interfacesValueNode).setComment(new DefaultComment("A list of API interface configurations."));
}
Also used : FieldConfigNode(com.google.api.codegen.configgen.nodes.FieldConfigNode) ListItemConfigNode(com.google.api.codegen.configgen.nodes.ListItemConfigNode) FieldConfigNode(com.google.api.codegen.configgen.nodes.FieldConfigNode) ConfigNode(com.google.api.codegen.configgen.nodes.ConfigNode) DefaultComment(com.google.api.codegen.configgen.nodes.metadata.DefaultComment)

Example 23 with FieldConfigNode

use of com.google.api.codegen.configgen.nodes.FieldConfigNode in project toolkit by googleapis.

the class MethodMerger method generateFlatteningNode.

private ConfigNode generateFlatteningNode(ConfigNode prevNode, List<String> parameterList) {
    ConfigNode flatteningNode = new FieldConfigNode(NodeFinder.getNextLine(prevNode), "flattening").setComment(new FixmeComment("Configure which groups of fields should be flattened into method params."));
    prevNode.insertNext(flatteningNode);
    ConfigNode flatteningGroupsNode = new FieldConfigNode(NodeFinder.getNextLine(flatteningNode), "groups");
    flatteningNode.setChild(flatteningGroupsNode);
    ConfigNode groupNode = new ListItemConfigNode(NodeFinder.getNextLine(flatteningGroupsNode));
    flatteningGroupsNode.setChild(groupNode);
    ConfigNode parametersNode = new FieldConfigNode(groupNode.getStartLine(), "parameters");
    groupNode.setChild(parametersNode);
    ListTransformer.generateStringList(parameterList, parametersNode);
    return flatteningNode;
}
Also used : FieldConfigNode(com.google.api.codegen.configgen.nodes.FieldConfigNode) FixmeComment(com.google.api.codegen.configgen.nodes.metadata.FixmeComment) ListItemConfigNode(com.google.api.codegen.configgen.nodes.ListItemConfigNode) ConfigNode(com.google.api.codegen.configgen.nodes.ConfigNode) ListItemConfigNode(com.google.api.codegen.configgen.nodes.ListItemConfigNode) FieldConfigNode(com.google.api.codegen.configgen.nodes.FieldConfigNode)

Example 24 with FieldConfigNode

use of com.google.api.codegen.configgen.nodes.FieldConfigNode in project toolkit by googleapis.

the class MethodMerger method generateFieldNamePatterns.

private ConfigNode generateFieldNamePatterns(ConfigNode prevNode, MethodModel method, final Map<String, String> nameMap) {
    ConfigNode fieldNamePatternsNode = new FieldConfigNode(NodeFinder.getNextLine(prevNode), "field_name_patterns");
    ConfigNode fieldNamePatternsValueNode = ListTransformer.generateList(method.getResourcePatternNameMap(nameMap).entrySet(), fieldNamePatternsNode, (startLine, entry) -> FieldConfigNode.createStringPair(startLine, entry.getKey(), entry.getValue()));
    if (!fieldNamePatternsValueNode.isPresent()) {
        return prevNode;
    }
    prevNode.insertNext(fieldNamePatternsNode);
    return fieldNamePatternsNode;
}
Also used : FieldConfigNode(com.google.api.codegen.configgen.nodes.FieldConfigNode) ConfigNode(com.google.api.codegen.configgen.nodes.ConfigNode) ListItemConfigNode(com.google.api.codegen.configgen.nodes.ListItemConfigNode) FieldConfigNode(com.google.api.codegen.configgen.nodes.FieldConfigNode)

Example 25 with FieldConfigNode

use of com.google.api.codegen.configgen.nodes.FieldConfigNode in project toolkit by googleapis.

the class PageStreamingMerger method generatePageStreamingRequestNode.

private ConfigNode generatePageStreamingRequestNode(ConfigNode parentNode, MethodModel method) {
    ConfigNode requestNode = new FieldConfigNode(NodeFinder.getNextLine(parentNode), "request");
    parentNode.setChild(requestNode);
    ConfigNode requestValueNode = generatePageStreamingRequestValueNode(requestNode, NodeFinder.getNextLine(requestNode), method);
    return requestValueNode.isPresent() ? requestNode : null;
}
Also used : FieldConfigNode(com.google.api.codegen.configgen.nodes.FieldConfigNode) FieldConfigNode(com.google.api.codegen.configgen.nodes.FieldConfigNode) NullConfigNode(com.google.api.codegen.configgen.nodes.NullConfigNode) ConfigNode(com.google.api.codegen.configgen.nodes.ConfigNode)

Aggregations

FieldConfigNode (com.google.api.codegen.configgen.nodes.FieldConfigNode)27 ConfigNode (com.google.api.codegen.configgen.nodes.ConfigNode)22 ListItemConfigNode (com.google.api.codegen.configgen.nodes.ListItemConfigNode)11 ScalarConfigNode (com.google.api.codegen.configgen.nodes.ScalarConfigNode)9 DefaultComment (com.google.api.codegen.configgen.nodes.metadata.DefaultComment)7 NullConfigNode (com.google.api.codegen.configgen.nodes.NullConfigNode)5 Test (org.junit.Test)5 MappingNode (org.yaml.snakeyaml.nodes.MappingNode)3 Node (org.yaml.snakeyaml.nodes.Node)3 FixmeComment (com.google.api.codegen.configgen.nodes.metadata.FixmeComment)2 FieldDescriptor (com.google.protobuf.Descriptors.FieldDescriptor)2 ScalarNode (org.yaml.snakeyaml.nodes.ScalarNode)2 SequenceNode (org.yaml.snakeyaml.nodes.SequenceNode)2 FieldModel (com.google.api.codegen.config.FieldModel)1 IOException (java.io.IOException)1 StringReader (java.io.StringReader)1 ArrayList (java.util.ArrayList)1 Yaml (org.yaml.snakeyaml.Yaml)1 ComposerException (org.yaml.snakeyaml.composer.ComposerException)1