public class org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator extends java.lang.Object implements jakarta.validation.ConstraintValidator
{
private static final int[] GROUP_LENGTHS;
private boolean allowEmpty;
private boolean allowNil;
private int[] version;
private int[] variant;
private org.hibernate.validator.constraints.UUID$LetterCase letterCase;
public void <init>()
{
org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator v;
v := @this: org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public void initialize(org.hibernate.validator.constraints.UUID)
{
org.hibernate.validator.constraints.UUID$LetterCase v, v;
org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator v;
org.hibernate.validator.constraints.UUID v;
org.hibernate.validator.internal.util.logging.Messages v;
int[] v, v, v, v;
java.lang.String v;
boolean v, v;
v := @this: org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator;
v := @parameter: org.hibernate.validator.constraints.UUID;
v = interfaceinvoke v.<org.hibernate.validator.constraints.UUID: boolean allowEmpty()>();
v.<org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: boolean allowEmpty> = v;
v = interfaceinvoke v.<org.hibernate.validator.constraints.UUID: boolean allowNil()>();
v.<org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: boolean allowNil> = v;
v = interfaceinvoke v.<org.hibernate.validator.constraints.UUID: int[] version()>();
v = staticinvoke <org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: int[] checkAndSortMultiOptionParameter(int[],java.lang.String,int,int)>(v, "version", 1, 15);
v.<org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: int[] version> = v;
v = interfaceinvoke v.<org.hibernate.validator.constraints.UUID: int[] variant()>();
v = staticinvoke <org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: int[] checkAndSortMultiOptionParameter(int[],java.lang.String,int,int)>(v, "variant", 0, 2);
v.<org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: int[] variant> = v;
v = interfaceinvoke v.<org.hibernate.validator.constraints.UUID: org.hibernate.validator.constraints.UUID$LetterCase letterCase()>();
v.<org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: org.hibernate.validator.constraints.UUID$LetterCase letterCase> = v;
v = v.<org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: org.hibernate.validator.constraints.UUID$LetterCase letterCase>;
v = <org.hibernate.validator.internal.util.logging.Messages: org.hibernate.validator.internal.util.logging.Messages MESSAGES>;
v = interfaceinvoke v.<org.hibernate.validator.internal.util.logging.Messages: java.lang.String parameterMustNotBeNull(java.lang.String)>("letterCase");
staticinvoke <org.hibernate.validator.internal.util.Contracts: void assertNotNull(java.lang.Object,java.lang.String)>(v, v);
return;
}
private static int[] checkAndSortMultiOptionParameter(int[], java.lang.String, int, int)
{
org.hibernate.validator.internal.util.logging.Messages v, v, v, v;
int[] v;
int v, v, v, v, v;
java.lang.String v, v, v, v, v;
boolean v, v;
v := @parameter: int[];
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: int;
v = <org.hibernate.validator.internal.util.logging.Messages: org.hibernate.validator.internal.util.logging.Messages MESSAGES>;
v = interfaceinvoke v.<org.hibernate.validator.internal.util.logging.Messages: java.lang.String parameterMustNotBeNull(java.lang.String)>(v);
staticinvoke <org.hibernate.validator.internal.util.Contracts: void assertNotNull(java.lang.Object,java.lang.String)>(v, v);
v = <org.hibernate.validator.internal.util.logging.Messages: org.hibernate.validator.internal.util.logging.Messages MESSAGES>;
v = interfaceinvoke v.<org.hibernate.validator.internal.util.logging.Messages: java.lang.String parameterMustNotBeEmpty(java.lang.String)>(v);
staticinvoke <org.hibernate.validator.internal.util.Contracts: void assertNotEmpty(int[],java.lang.String)>(v, v);
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
if v < v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = <org.hibernate.validator.internal.util.logging.Messages: org.hibernate.validator.internal.util.logging.Messages MESSAGES>;
v = interfaceinvoke v.<org.hibernate.validator.internal.util.logging.Messages: java.lang.String parameterShouldBeGreaterThanOrEqualTo(java.lang.String,int)>(v, v);
staticinvoke <org.hibernate.validator.internal.util.Contracts: void assertTrue(boolean,java.lang.String)>(v, v);
if v > v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = <org.hibernate.validator.internal.util.logging.Messages: org.hibernate.validator.internal.util.logging.Messages MESSAGES>;
v = interfaceinvoke v.<org.hibernate.validator.internal.util.logging.Messages: java.lang.String parameterShouldBeLessThanOrEqualTo(java.lang.String,int)>(v, v);
staticinvoke <org.hibernate.validator.internal.util.Contracts: void assertTrue(boolean,java.lang.String)>(v, v);
v = v + 1;
goto label;
label:
staticinvoke <java.util.Arrays: void sort(int[])>(v);
return v;
}
public boolean isValid(java.lang.CharSequence, jakarta.validation.ConstraintValidatorContext)
{
org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator v;
int[] v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v, v, v;
java.lang.CharSequence v;
char v;
jakarta.validation.ConstraintValidatorContext v;
v := @this: org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator;
v := @parameter: java.lang.CharSequence;
v := @parameter: jakarta.validation.ConstraintValidatorContext;
if v != null goto label;
return 1;
label:
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
if v != 0 goto label;
v = v.<org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: boolean allowEmpty>;
return v;
label:
if v == 36 goto label;
return 0;
label:
v = 0;
v = 0;
v = 0;
v = (int) -1;
v = v;
v = (int) -1;
v = v;
v = 0;
label:
if v >= v goto label;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
if v != 45 goto label;
v = v + 1;
v = 0;
goto label;
label:
v = v + 1;
v = <org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: int[] GROUP_LENGTHS>;
v = v[v];
if v <= v goto label;
return 0;
label:
v = staticinvoke <java.lang.Character: int digit(char,int)>(v, 16);
v = (int) -1;
if v != v goto label;
return 0;
label:
if v <= 9 goto label;
v = specialinvoke v.<org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: boolean hasCorrectLetterCase(char)>(v);
if v != 0 goto label;
return 0;
label:
v = v + v;
v = staticinvoke <org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: int extractVersion(int,int,int)>(v, v, v);
v = staticinvoke <org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: int extractVariant(int,int,int)>(v, v, v);
label:
v = v + 1;
goto label;
label:
if v != 0 goto label;
v = v.<org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: boolean allowNil>;
return v;
label:
v = v.<org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: int[] version>;
v = staticinvoke <java.util.Arrays: int binarySearch(int[],int)>(v, v);
v = (int) -1;
if v != v goto label;
return 0;
label:
v = v.<org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: int[] variant>;
v = staticinvoke <java.util.Arrays: int binarySearch(int[],int)>(v, v);
v = (int) -1;
if v == v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean hasCorrectLetterCase(char)
{
org.hibernate.validator.constraints.UUID$LetterCase v, v, v, v, v;
org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator v;
char v;
boolean v, v, v;
v := @this: org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator;
v := @parameter: char;
v = v.<org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: org.hibernate.validator.constraints.UUID$LetterCase letterCase>;
if v != null goto label;
return 1;
label:
v = v.<org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: org.hibernate.validator.constraints.UUID$LetterCase letterCase>;
v = <org.hibernate.validator.constraints.UUID$LetterCase: org.hibernate.validator.constraints.UUID$LetterCase LOWER_CASE>;
if v != v goto label;
v = staticinvoke <java.lang.Character: boolean isLowerCase(char)>(v);
if v != 0 goto label;
return 0;
label:
v = v.<org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: org.hibernate.validator.constraints.UUID$LetterCase letterCase>;
v = <org.hibernate.validator.constraints.UUID$LetterCase: org.hibernate.validator.constraints.UUID$LetterCase UPPER_CASE>;
if v != v goto label;
v = staticinvoke <java.lang.Character: boolean isUpperCase(char)>(v);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private static int extractVersion(int, int, int)
{
int v, v, v;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
if v != 14 goto label;
return v;
label:
return v;
}
private static int extractVariant(int, int, int)
{
int v, v, v, v, v, v;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
if v != 19 goto label;
v = v >> 3;
if v != 0 goto label;
return 0;
label:
v = v >> 2;
if v != 2 goto label;
return 1;
label:
v = v >> 1;
if v != 6 goto label;
return 2;
label:
return v;
}
static void <clinit>()
{
int[] v;
v = newarray (int)[5];
v[0] = 8;
v[1] = 4;
v[2] = 4;
v[3] = 4;
v[4] = 12;
<org.hibernate.validator.internal.constraintvalidators.hv.UUIDValidator: int[] GROUP_LENGTHS> = v;
return;
}
}