private static Set<Type> parseMarkers( Set<com.palantir.conjure.parser.types.ConjureType> markers, ConjureTypeParserVisitor.ReferenceTypeResolver typeResolver) { return markers.stream() .map(m -> m.visit(new ConjureTypeParserVisitor(typeResolver))) .collect(Collectors.toSet()); } }
static List<FieldDefinition> parseField( Map<com.palantir.conjure.parser.types.names.FieldName, com.palantir.conjure.parser.types.complex.FieldDefinition> def, ConjureTypeParserVisitor.ReferenceTypeResolver typeResolver) { return def.entrySet().stream().map(entry -> { FieldDefinition fieldDefinition = FieldDefinition.builder() .fieldName(parseFieldName(entry.getKey())) .type(entry.getValue().type().visit(new ConjureTypeParserVisitor(typeResolver))) .docs(entry.getValue().docs().map(Documentation::of)).build(); FieldDefinitionValidator.validate(fieldDefinition); return fieldDefinition; }).collect(Collectors.toList()); }
private static List<ArgumentDefinition> parseArgs( Map<ParameterName, com.palantir.conjure.parser.services.ArgumentDefinition> args, HttpPath httpPath, ReferenceTypeResolver typeResolver) { ImmutableList.Builder<ArgumentDefinition> resultBuilder = ImmutableList.builder(); for (Map.Entry<com.palantir.conjure.parser.services.ParameterName, com.palantir.conjure.parser.services.ArgumentDefinition> entry : args.entrySet()) { com.palantir.conjure.parser.services.ArgumentDefinition original = entry.getValue(); ArgumentName argName = ArgumentName.of(entry.getKey().name()); ParameterType paramType = parseParameterType(original, argName, httpPath); ArgumentDefinition.Builder builder = ArgumentDefinition.builder() .argName(argName) .type(original.type().visit(new ConjureTypeParserVisitor(typeResolver))) .paramType(paramType) .docs(original.docs().map(Documentation::of)) .markers(parseMarkers(original.markers(), typeResolver)); resultBuilder.add(builder.build()); } return resultBuilder.build(); }
public static TypeDefinition parseAliasType( TypeName name, com.palantir.conjure.parser.types.reference.AliasTypeDefinition def, ConjureTypeParserVisitor.ReferenceTypeResolver typeResolver) { return TypeDefinition.alias(AliasDefinition.builder() .typeName(name) .alias(def.alias().visit(new ConjureTypeParserVisitor(typeResolver))) .docs(def.docs().map(Documentation::of)) .build()); }
private static EndpointDefinition parseEndpoint( String name, com.palantir.conjure.parser.services.EndpointDefinition def, PathString basePath, Optional<AuthType> defaultAuth, ReferenceTypeResolver typeResolver, DealiasingTypeVisitor dealiasingVisitor) { HttpPath httpPath = parseHttpPath(def, basePath); EndpointDefinition endpoint = EndpointDefinition.builder() .endpointName(EndpointName.of(name)) .httpMethod(HttpMethod.valueOf(def.http().method())) .httpPath(httpPath) .auth(def.auth().map(ConjureParserUtils::parseAuthType).orElse(defaultAuth)) .args(parseArgs(def.args(), httpPath, typeResolver)) .markers(parseMarkers(def.markers(), typeResolver)) .returns(def.returns().map(t -> t.visit(new ConjureTypeParserVisitor(typeResolver)))) .docs(def.docs().map(Documentation::of)) .deprecated(def.deprecated().map(Documentation::of)) .build(); EndpointDefinitionValidator.validateAll(endpoint, dealiasingVisitor); return endpoint; }