public static ConjurePackage of(Iterable<String> components) { return of(Joiner.on('.').join(components)); } }
public static String parseConjurePackage(com.palantir.conjure.parser.types.names.ConjurePackage parsed) { return parsed.name(); }
"com.palantir.ri.ResourceIdentifier", PrimitiveType.STRING)) .definitions(NamedTypesDefinition.builder() .defaultConjurePackage(ConjurePackage.of("test.api")) .putObjects(TypeName.of("SimpleObject"), ObjectTypeDefinition.builder() .putFields(FieldName.of("stringField"), .putServices(TypeName.of("TestService"), ServiceDefinition.builder() .doNotUseName("Test Service") .conjurePackage(ConjurePackage.of("test.api")) .putEndpoints("get", EndpointDefinition.builder() .http(RequestLineDefinition.of("GET", PathString.of("/get")))
@Value.Check protected final void check() { // TODO(rfink): NPE when the pattern is static !?!? Pattern validPackage = Pattern.compile("^([a-z][a-z0-9]+(\\.[a-z][a-z0-9]*)*)?$"); Preconditions.checkArgument(validPackage.matcher(name()).matches(), "Conjure package names must match pattern %s: %s", validPackage.pattern(), name()); }
public static String parsePackageOrElseThrow( Optional<com.palantir.conjure.parser.types.names.ConjurePackage> conjurePackage, Optional<String> defaultPackage) { String packageName = conjurePackage .map(p -> p.name()) .orElseGet(() -> defaultPackage.orElseThrow(() -> new IllegalArgumentException( // TODO(rfink): Better errors: Can we provide context on where exactly no package was provided? "Must provide default conjure package or " + "explicit conjure package for every object and service"))); PackageValidator.validate(packageName); return packageName; }
/** Returns the components of the package, i.e. return {@code {abc, efg}} for package {@code abc.efg}. */ @Value.Lazy public List<String> components() { return ImmutableList.copyOf(Splitter.on('.').split(name())); }
static List<ErrorDefinition> parseErrors( NamedTypesDefinition defs, ConjureTypeParserVisitor.ReferenceTypeResolver typeResolver) { Optional<String> defaultPackage = defs.defaultConjurePackage().map(p -> p.name()); ImmutableList.Builder<ErrorDefinition> errorsBuidler = ImmutableList.builder(); errorsBuidler.addAll(defs.errors().entrySet().stream().map(entry -> { TypeName typeName = TypeName.of( entry.getKey().name(), parsePackageOrElseThrow(entry.getValue().conjurePackage(), defaultPackage)); return parseErrorType(typeName, entry.getValue(), typeResolver); }).collect(Collectors.toList())); return errorsBuidler.build(); }