1616
1717package com .palantir .conjure .java .api .errors ;
1818
19- import java .util .regex .Matcher ;
19+ import com .palantir .logsafe .SafeArg ;
20+ import com .palantir .logsafe .exceptions .SafeIllegalArgumentException ;
2021import java .util .regex .Pattern ;
2122import org .immutables .value .Value ;
2223
@@ -55,18 +56,16 @@ public enum Code {
5556 }
5657 }
5758
58- public static final ErrorType UNAUTHORIZED = createInternal (Code .UNAUTHORIZED , "Default:Unauthorized" );
59- public static final ErrorType PERMISSION_DENIED =
60- createInternal (Code .PERMISSION_DENIED , "Default:PermissionDenied" );
61- public static final ErrorType INVALID_ARGUMENT = createInternal (Code .INVALID_ARGUMENT , "Default:InvalidArgument" );
59+ public static final ErrorType UNAUTHORIZED = create (Code .UNAUTHORIZED , "Default:Unauthorized" );
60+ public static final ErrorType PERMISSION_DENIED = create (Code .PERMISSION_DENIED , "Default:PermissionDenied" );
61+ public static final ErrorType INVALID_ARGUMENT = create (Code .INVALID_ARGUMENT , "Default:InvalidArgument" );
6262 public static final ErrorType REQUEST_ENTITY_TOO_LARGE =
63- createInternal (Code .REQUEST_ENTITY_TOO_LARGE , "Default:RequestEntityTooLarge" );
64- public static final ErrorType NOT_FOUND = createInternal (Code .NOT_FOUND , "Default:NotFound" );
65- public static final ErrorType CONFLICT = createInternal (Code .CONFLICT , "Default:Conflict" );
66- public static final ErrorType FAILED_PRECONDITION =
67- createInternal (Code .FAILED_PRECONDITION , "Default:FailedPrecondition" );
68- public static final ErrorType INTERNAL = createInternal (Code .INTERNAL , "Default:Internal" );
69- public static final ErrorType TIMEOUT = createInternal (Code .TIMEOUT , "Default:Timeout" );
63+ create (Code .REQUEST_ENTITY_TOO_LARGE , "Default:RequestEntityTooLarge" );
64+ public static final ErrorType NOT_FOUND = create (Code .NOT_FOUND , "Default:NotFound" );
65+ public static final ErrorType CONFLICT = create (Code .CONFLICT , "Default:Conflict" );
66+ public static final ErrorType FAILED_PRECONDITION = create (Code .FAILED_PRECONDITION , "Default:FailedPrecondition" );
67+ public static final ErrorType INTERNAL = create (Code .INTERNAL , "Default:Internal" );
68+ public static final ErrorType TIMEOUT = create (Code .TIMEOUT , "Default:Timeout" );
7069
7170 /** The {@link Code} of this error. */
7271 public abstract Code code ();
@@ -83,32 +82,14 @@ public enum Code {
8382 @ Value .Check
8483 final void check () {
8584 if (!ERROR_NAME_PATTERN .matcher (name ()).matches ()) {
86- throw new IllegalArgumentException (
87- "ErrorType names must be of the form 'UpperCamelNamespace:UpperCamelName': " + name ());
85+ throw new SafeIllegalArgumentException (
86+ "ErrorType names must be of the form 'UpperCamelNamespace:UpperCamelName'" ,
87+ SafeArg .of ("name" , name ()));
8888 }
8989 }
9090
9191 /** Constructs an {@link ErrorType} with the given error {@link Code} and name. */
9292 public static ErrorType create (Code code , String name ) {
93- return createAndCheckNamespaceIsNotDefault (code , name );
94- }
95-
96- private static ErrorType createAndCheckNamespaceIsNotDefault (Code code , String name ) {
97- ErrorType error = createInternal (code , name );
98- Matcher matcher = ERROR_NAME_PATTERN .matcher (name );
99- if (!matcher .matches ()) {
100- throw new IllegalArgumentException ("Expected ERROR_NAME_PATTERN to match, this is a bug: " + name );
101- }
102-
103- String namespace = matcher .group (1 );
104- if (namespace .equals ("Default" )) {
105- throw new IllegalArgumentException ("Namespace must not be 'Default' in ErrorType name: " + name );
106- }
107-
108- return error ;
109- }
110-
111- private static ErrorType createInternal (Code code , String name ) {
11293 return ImmutableErrorType .builder ()
11394 .code (code )
11495 .name (name )
0 commit comments