public static DiscoGapicMethodContext create( DiscoGapicInterfaceContext surfaceTransformerContext, String interfaceName, GapicProductConfig productConfig, SchemaTypeTable typeTable, SurfaceNamer namer, DiscoveryMethodModel method, DiscoGapicMethodConfig methodConfig, FlatteningConfig flatteningConfig, FeatureConfig featureConfig) { return new AutoValue_DiscoGapicMethodContext( productConfig, flatteningConfig, featureConfig, new DiscoInterfaceModel(interfaceName, surfaceTransformerContext.getApiModel()), methodConfig, surfaceTransformerContext, typeTable, method, namer); }
@Override public DiscoApiModel getApiModel() { return getInterfaceModel().getApiModel(); }
public String getInterfaceName() { return getInterfaceModel().getFullName(); }
@Override public String getRawName() { return getInterfaceModel().getSimpleName(); }
public static DiscoGapicInterfaceContext createWithoutInterface( DiscoApiModel model, GapicProductConfig productConfig, SchemaTypeTable typeTable, SurfaceNamer namer, FeatureConfig featureConfig) { return new AutoValue_DiscoGapicInterfaceContext( productConfig, typeTable, new DiscoGapicNamer(), new DiscoInterfaceModel("", model), namer, featureConfig); }
@Override public List<DiscoInterfaceModel> getInterfaces() { if (interfaceModels != null) { return interfaceModels; } ImmutableList.Builder<DiscoInterfaceModel> builder = ImmutableList.builder(); for (String resource : document.resources().keySet()) { String ownerName = document.ownerDomain().split("\\.")[0]; String resourceName = Name.anyCamel(resource).toUpperCamel(); String interfaceName = String.format( "%s.%s.%s.%s", ownerName, document.name(), document.version(), resourceName); builder.add(new DiscoInterfaceModel(interfaceName, this)); } interfaceModels = builder.build(); return interfaceModels; }
private static DiscoGapicInterfaceContext createWithInterface( DiscoApiModel model, String interfaceName, GapicProductConfig productConfig, SchemaTypeTable typeTable, SurfaceNamer namer, FeatureConfig featureConfig) { ImmutableList.Builder<MethodModel> interfaceMethods = new ImmutableList.Builder<>(); for (MethodConfig method : productConfig.getInterfaceConfig(interfaceName).getMethodConfigs()) { interfaceMethods.add(method.getMethodModel()); } return new AutoValue_DiscoGapicInterfaceContext( productConfig, typeTable, new DiscoGapicNamer(), new DiscoInterfaceModel(interfaceName, model), namer, featureConfig); }
@Override public DiscoInterfaceModel getTargetInterface() { return new DiscoInterfaceModel( getInterfaceModel().getFullName(), getSurfaceInterfaceContext().getApiModel()); }
private List<InterfaceView> generateInterfaces( DiscoApiModel model, Map<Method, String> methodToNamePatterns, Map<Method, Name> methodToResourceNames) { ImmutableList.Builder<InterfaceView> interfaces = ImmutableList.builder(); for (String resource : model.getDocument().resources().keySet()) { List<Method> interfaceMethods = model.getDocument().resources().get(resource); Map<String, String> collectionNameMap = getResourceToEntityNameMap(interfaceMethods, methodToNamePatterns, methodToResourceNames); InterfaceView.Builder interfaceView = InterfaceView.newBuilder(); String ownerName = model.getDocument().ownerDomain().split("\\.")[0]; String resourceName = Name.anyCamel(resource).toUpperCamel(); interfaceView.name( String.format( "%s.%s.%s.%s", ownerName, model.getDocument().name(), model.getDocument().version(), resourceName)); retryTransformer.generateRetryDefinitions( interfaceView, ImmutableList.of("UNAVAILABLE", "DEADLINE_EXCEEDED"), ImmutableList.<String>of()); interfaceView.collections(collectionTransformer.generateCollections(collectionNameMap)); interfaceView.methods( methodTransformer.generateMethods( new DiscoInterfaceModel(resource, model), collectionNameMap)); interfaces.add(interfaceView.build()); } return interfaces.build(); }
manualDoc, interfaceNameOverride, new DiscoInterfaceModel(interfaceName, model), smokeTestConfig, methodToSingleResourceNameMap.build(),