test_class.declarator: PACKAGE = "package"
test_class.modifier: private static final
test_class.original_string: private static final String PACKAGE = "package";
test_class.type: String
test_class.var_name: PACKAGE
test_class.file: conjure-core/src/test/java/com/palantir/conjure/defs/validator/TypeNameValidatorTest.java
test_class.identifier: TypeNameValidatorTest
test_case.body: @Test
      public void testInvalidNames() {
          for (String invalid : new String[] {"a", "IFoo", "ABC", "$Special", "snake_case", "kebab-case", "Camel1B"}) {
              assertThatThrownBy(() -> TypeNameValidator.validate(TypeName.of(invalid, PACKAGE)))
                      .isInstanceOf(IllegalArgumentException.class)
                      .hasMessage(
                              "TypeNames must be a primitive type"
                                      + " [STRING, DATETIME, INTEGER, DOUBLE, SAFELONG, BINARY, ANY, BOOLEAN, UUID, RID,"
                                      + " BEARERTOKEN, UNKNOWN] or match pattern ^[A-Z][a-z0-9]+([A-Z][a-z0-9]+)*$: %s",
                              invalid);
          }
      }
test_case.class_method_signature: TypeNameValidatorTest.testInvalidNames()
test_case.full_signature: @Test public void testInvalidNames()
test_case.identifier: testInvalidNames
test_case.invocations: hasMessage isInstanceOf assertThatThrownBy validate of
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testInvalidNames()
focal_class.declarator: CUSTOM_TYPE_PATTERN = Pattern.compile("^[A-Z][a-z0-9]+([A-Z][a-z0-9]+)*$")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern CUSTOM_TYPE_PATTERN = Pattern.compile("^[A-Z][a-z0-9]+([A-Z][a-z0-9]+)*$");
focal_class.type: Pattern
focal_class.var_name: CUSTOM_TYPE_PATTERN
focal_class.declarator: PRIMITIVE_TYPES =
              Lists.transform(java.util.Arrays.asList(PrimitiveType.Value.values()), PrimitiveType.Value::name)
focal_class.modifier: static final
focal_class.original_string: static final List<String> PRIMITIVE_TYPES =
              Lists.transform(java.util.Arrays.asList(PrimitiveType.Value.values()), PrimitiveType.Value::name);
focal_class.type: List<String>
focal_class.var_name: PRIMITIVE_TYPES
focal_class.file: conjure-core/src/main/java/com/palantir/conjure/defs/validator/TypeNameValidator.java
focal_class.identifier: TypeNameValidator
focal_class.class_method_signature: TypeNameValidator.TypeNameValidator()
focal_class.full_signature: private  TypeNameValidator()
focal_class.identifier: TypeNameValidator
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  TypeNameValidator()
focal_class.class_method_signature: TypeNameValidator.validate(TypeName typeName)
focal_class.full_signature: public static void validate(TypeName typeName)
focal_class.identifier: validate
focal_class.modifiers: public static
focal_class.parameters: (TypeName typeName)
focal_class.return: void
focal_class.signature: void validate(TypeName typeName)
focal_method.body: public static void validate(TypeName typeName) {
          Preconditions.checkArgument(
                  CUSTOM_TYPE_PATTERN.matcher(typeName.getName()).matches()
                          || PRIMITIVE_TYPES.contains(typeName.getName()),
                  "TypeNames must be a primitive type %s or match pattern %s: %s",
                  PRIMITIVE_TYPES,
                  CUSTOM_TYPE_PATTERN,
                  typeName.getName());
      }
focal_method.class_method_signature: TypeNameValidator.validate(TypeName typeName)
focal_method.full_signature: public static void validate(TypeName typeName)
focal_method.identifier: validate
focal_method.invocations: checkArgument matches matcher getName contains getName getName
focal_method.modifiers: public static
focal_method.parameters: (TypeName typeName)
focal_method.return: void
focal_method.signature: void validate(TypeName typeName)