public class org.hibernate.validator.constraintvalidators.RegexpURLValidator implements jakarta.validation.ConstraintValidator<org.hibernate.validator.constraints.URL, java.lang.CharSequence>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hibernate.validator.constraintvalidators.RegexpURLValidator
super_class: java.lang.Object
{
private static final java.util.regex.Pattern URL_REGEX;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private java.lang.String protocol;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String host;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private int port;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "(?i)^([a-z](?:[-a-z0-9\\+\\.])*):(?:\\/\\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\x{A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}\\x{10000}-\\x{1FFFD}\\x{20000}-\\x{2FFFD}\\x{30000}-\\x{3FFFD}\\x{40000}-\\x{4FFFD}\\x{50000}-\\x{5FFFD}\\x{60000}-\\x{6FFFD}\\x{70000}-\\x{7FFFD}\\x{80000}-\\x{8FFFD}\\x{90000}-\\x{9FFFD}\\x{A0000}-\\x{AFFFD}\\x{B0000}-\\x{BFFFD}\\x{C0000}-\\x{CFFFD}\\x{D0000}-\\x{DFFFD}\\x{E1000}-\\x{EFFFD}!\\$&'\\(\\)\\*\\+,;=:])*@)?((?:\\[(?:(?:(?:[0-9a-f]{1,4}:){6}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|::(?:[0-9a-f]{1,4}:){5}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:[0-9a-f]{1,4}:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|v[0-9a-f]+[-a-z0-9\\._~!\\$&'\\(\\)\\*\\+,;=:]+)\\]|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}|(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\x{A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}\\x{10000}-\\x{1FFFD}\\x{20000}-\\x{2FFFD}\\x{30000}-\\x{3FFFD}\\x{40000}-\\x{4FFFD}\\x{50000}-\\x{5FFFD}\\x{60000}-\\x{6FFFD}\\x{70000}-\\x{7FFFD}\\x{80000}-\\x{8FFFD}\\x{90000}-\\x{9FFFD}\\x{A0000}-\\x{AFFFD}\\x{B0000}-\\x{BFFFD}\\x{C0000}-\\x{CFFFD}\\x{D0000}-\\x{DFFFD}\\x{E1000}-\\x{EFFFD}!\\$&'\\(\\)\\*\\+,;=@])*))(?::([0-9]*))?(?:\\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\x{A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}\\x{10000}-\\x{1FFFD}\\x{20000}-\\x{2FFFD}\\x{30000}-\\x{3FFFD}\\x{40000}-\\x{4FFFD}\\x{50000}-\\x{5FFFD}\\x{60000}-\\x{6FFFD}\\x{70000}-\\x{7FFFD}\\x{80000}-\\x{8FFFD}\\x{90000}-\\x{9FFFD}\\x{A0000}-\\x{AFFFD}\\x{B0000}-\\x{BFFFD}\\x{C0000}-\\x{CFFFD}\\x{D0000}-\\x{DFFFD}\\x{E1000}-\\x{EFFFD}!\\$&'\\(\\)\\*\\+,;=:@]))*)*|\\/(?:(?:(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\x{A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}\\x{10000}-\\x{1FFFD}\\x{20000}-\\x{2FFFD}\\x{30000}-\\x{3FFFD}\\x{40000}-\\x{4FFFD}\\x{50000}-\\x{5FFFD}\\x{60000}-\\x{6FFFD}\\x{70000}-\\x{7FFFD}\\x{80000}-\\x{8FFFD}\\x{90000}-\\x{9FFFD}\\x{A0000}-\\x{AFFFD}\\x{B0000}-\\x{BFFFD}\\x{C0000}-\\x{CFFFD}\\x{D0000}-\\x{DFFFD}\\x{E1000}-\\x{EFFFD}!\\$&'\\(\\)\\*\\+,;=:@]))+)(?:\\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\x{A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}\\x{10000}-\\x{1FFFD}\\x{20000}-\\x{2FFFD}\\x{30000}-\\x{3FFFD}\\x{40000}-\\x{4FFFD}\\x{50000}-\\x{5FFFD}\\x{60000}-\\x{6FFFD}\\x{70000}-\\x{7FFFD}\\x{80000}-\\x{8FFFD}\\x{90000}-\\x{9FFFD}\\x{A0000}-\\x{AFFFD}\\x{B0000}-\\x{BFFFD}\\x{C0000}-\\x{CFFFD}\\x{D0000}-\\x{DFFFD}\\x{E1000}-\\x{EFFFD}!\\$&'\\(\\)\\*\\+,;=:@]))*)*)?|(?:(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\x{A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}\\x{10000}-\\x{1FFFD}\\x{20000}-\\x{2FFFD}\\x{30000}-\\x{3FFFD}\\x{40000}-\\x{4FFFD}\\x{50000}-\\x{5FFFD}\\x{60000}-\\x{6FFFD}\\x{70000}-\\x{7FFFD}\\x{80000}-\\x{8FFFD}\\x{90000}-\\x{9FFFD}\\x{A0000}-\\x{AFFFD}\\x{B0000}-\\x{BFFFD}\\x{C0000}-\\x{CFFFD}\\x{D0000}-\\x{DFFFD}\\x{E1000}-\\x{EFFFD}!\\$&'\\(\\)\\*\\+,;=:@]))+)(?:\\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\x{A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}\\x{10000}-\\x{1FFFD}\\x{20000}-\\x{2FFFD}\\x{30000}-\\x{3FFFD}\\x{40000}-\\x{4FFFD}\\x{50000}-\\x{5FFFD}\\x{60000}-\\x{6FFFD}\\x{70000}-\\x{7FFFD}\\x{80000}-\\x{8FFFD}\\x{90000}-\\x{9FFFD}\\x{A0000}-\\x{AFFFD}\\x{B0000}-\\x{BFFFD}\\x{C0000}-\\x{CFFFD}\\x{D0000}-\\x{DFFFD}\\x{E1000}-\\x{EFFFD}!\\$&'\\(\\)\\*\\+,;=:@]))*)*|(?!(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\x{A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}\\x{10000}-\\x{1FFFD}\\x{20000}-\\x{2FFFD}\\x{30000}-\\x{3FFFD}\\x{40000}-\\x{4FFFD}\\x{50000}-\\x{5FFFD}\\x{60000}-\\x{6FFFD}\\x{70000}-\\x{7FFFD}\\x{80000}-\\x{8FFFD}\\x{90000}-\\x{9FFFD}\\x{A0000}-\\x{AFFFD}\\x{B0000}-\\x{BFFFD}\\x{C0000}-\\x{CFFFD}\\x{D0000}-\\x{DFFFD}\\x{E1000}-\\x{EFFFD}!\\$&'\\(\\)\\*\\+,;=:@])))(?:\\?(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\x{A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}\\x{10000}-\\x{1FFFD}\\x{20000}-\\x{2FFFD}\\x{30000}-\\x{3FFFD}\\x{40000}-\\x{4FFFD}\\x{50000}-\\x{5FFFD}\\x{60000}-\\x{6FFFD}\\x{70000}-\\x{7FFFD}\\x{80000}-\\x{8FFFD}\\x{90000}-\\x{9FFFD}\\x{A0000}-\\x{AFFFD}\\x{B0000}-\\x{BFFFD}\\x{C0000}-\\x{CFFFD}\\x{D0000}-\\x{DFFFD}\\x{E1000}-\\x{EFFFD}!\\$&'\\(\\)\\*\\+,;=:@])|[\\x{E000}-\\x{F8FF}\\x{F0000}-\\x{FFFFD}|\\x{100000}-\\x{10FFFD}\\/\\?])*)?(?:\\#(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\x{A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}\\x{10000}-\\x{1FFFD}\\x{20000}-\\x{2FFFD}\\x{30000}-\\x{3FFFD}\\x{40000}-\\x{4FFFD}\\x{50000}-\\x{5FFFD}\\x{60000}-\\x{6FFFD}\\x{70000}-\\x{7FFFD}\\x{80000}-\\x{8FFFD}\\x{90000}-\\x{9FFFD}\\x{A0000}-\\x{AFFFD}\\x{B0000}-\\x{BFFFD}\\x{C0000}-\\x{CFFFD}\\x{D0000}-\\x{DFFFD}\\x{E1000}-\\x{EFFFD}!\\$&'\\(\\)\\*\\+,;=:@])|[\\/\\?])*)?$"
1: invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
2: putstatic org.hibernate.validator.constraintvalidators.RegexpURLValidator.URL_REGEX:Ljava/util/regex/Pattern;
3: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hibernate/validator/constraintvalidators/RegexpURLValidator;
public void initialize(org.hibernate.validator.constraints.URL);
descriptor: (Lorg/hibernate/validator/constraints/URL;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface org.hibernate.validator.constraints.URL.protocol:()Ljava/lang/String;
putfield org.hibernate.validator.constraintvalidators.RegexpURLValidator.protocol:Ljava/lang/String;
1: aload 0
aload 1
invokeinterface org.hibernate.validator.constraints.URL.host:()Ljava/lang/String;
putfield org.hibernate.validator.constraintvalidators.RegexpURLValidator.host:Ljava/lang/String;
2: aload 0
aload 1
invokeinterface org.hibernate.validator.constraints.URL.port:()I
putfield org.hibernate.validator.constraintvalidators.RegexpURLValidator.port:I
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/hibernate/validator/constraintvalidators/RegexpURLValidator;
0 4 1 url Lorg/hibernate/validator/constraints/URL;
MethodParameters:
Name Flags
url
public boolean isValid(java.lang.CharSequence, jakarta.validation.ConstraintValidatorContext);
descriptor: (Ljava/lang/CharSequence;Ljakarta/validation/ConstraintValidatorContext;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnull 1
aload 1
invokeinterface java.lang.CharSequence.length:()I
ifne 2
1: StackMap locals:
StackMap stack:
iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
invokevirtual org.hibernate.validator.constraintvalidators.RegexpURLValidator.parseUrl:(Ljava/lang/String;)Lorg/hibernate/validator/constraintvalidators/RegexpURLValidator$ValueHolder;
astore 3
start local 3 3: aload 3
ifnonnull 5
4: iconst_0
ireturn
5: StackMap locals: org.hibernate.validator.constraintvalidators.RegexpURLValidator$ValueHolder
StackMap stack:
aload 3
invokevirtual org.hibernate.validator.constraintvalidators.RegexpURLValidator$ValueHolder.getHost:()Ljava/lang/String;
invokestatic org.hibernate.validator.internal.util.DomainNameUtil.isValidDomainAddress:(Ljava/lang/String;)Z
ifne 7
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 0
getfield org.hibernate.validator.constraintvalidators.RegexpURLValidator.protocol:Ljava/lang/String;
ifnull 9
aload 0
getfield org.hibernate.validator.constraintvalidators.RegexpURLValidator.protocol:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
ifle 9
aload 0
getfield org.hibernate.validator.constraintvalidators.RegexpURLValidator.protocol:Ljava/lang/String;
aload 3
invokevirtual org.hibernate.validator.constraintvalidators.RegexpURLValidator$ValueHolder.getProtocol:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
aload 0
getfield org.hibernate.validator.constraintvalidators.RegexpURLValidator.host:Ljava/lang/String;
ifnull 11
aload 0
getfield org.hibernate.validator.constraintvalidators.RegexpURLValidator.host:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
ifle 11
aload 0
getfield org.hibernate.validator.constraintvalidators.RegexpURLValidator.host:Ljava/lang/String;
aload 3
invokevirtual org.hibernate.validator.constraintvalidators.RegexpURLValidator$ValueHolder.getHost:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 11
10: iconst_0
ireturn
11: StackMap locals:
StackMap stack:
aload 0
getfield org.hibernate.validator.constraintvalidators.RegexpURLValidator.port:I
iconst_m1
if_icmpeq 13
aload 3
invokevirtual org.hibernate.validator.constraintvalidators.RegexpURLValidator$ValueHolder.getPort:()I
aload 0
getfield org.hibernate.validator.constraintvalidators.RegexpURLValidator.port:I
if_icmpeq 13
12: iconst_0
ireturn
13: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/hibernate/validator/constraintvalidators/RegexpURLValidator;
0 14 1 value Ljava/lang/CharSequence;
0 14 2 constraintValidatorContext Ljakarta/validation/ConstraintValidatorContext;
3 14 3 values Lorg/hibernate/validator/constraintvalidators/RegexpURLValidator$ValueHolder;
MethodParameters:
Name Flags
value
constraintValidatorContext
private org.hibernate.validator.constraintvalidators.RegexpURLValidator$ValueHolder parseUrl(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/hibernate/validator/constraintvalidators/RegexpURLValidator$ValueHolder;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: getstatic org.hibernate.validator.constraintvalidators.RegexpURLValidator.URL_REGEX:Ljava/util/regex/Pattern;
aload 1
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 3
start local 3 2: aload 3
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 10
3: aload 3
iconst_1
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 4
start local 4 4: aload 3
iconst_2
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 5
start local 5 5: iconst_m1
istore 6
start local 6 6: aload 3
iconst_3
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 7
start local 7 7: aload 7
ifnull 9
8: aload 7
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 6
9: StackMap locals: org.hibernate.validator.constraintvalidators.RegexpURLValidator java.lang.String org.hibernate.validator.constraintvalidators.RegexpURLValidator$ValueHolder java.util.regex.Matcher java.lang.String java.lang.String int java.lang.String
StackMap stack:
new org.hibernate.validator.constraintvalidators.RegexpURLValidator$ValueHolder
dup
aload 4
aload 5
iload 6
invokespecial org.hibernate.validator.constraintvalidators.RegexpURLValidator$ValueHolder.<init>:(Ljava/lang/String;Ljava/lang/String;I)V
astore 2
end local 7 end local 6 end local 5 end local 4 10: StackMap locals: org.hibernate.validator.constraintvalidators.RegexpURLValidator java.lang.String org.hibernate.validator.constraintvalidators.RegexpURLValidator$ValueHolder java.util.regex.Matcher
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/hibernate/validator/constraintvalidators/RegexpURLValidator;
0 11 1 stringUrl Ljava/lang/String;
1 11 2 valueHolder Lorg/hibernate/validator/constraintvalidators/RegexpURLValidator$ValueHolder;
2 11 3 regexpMatcher Ljava/util/regex/Matcher;
4 10 4 protocol Ljava/lang/String;
5 10 5 host Ljava/lang/String;
6 10 6 port I
7 10 7 portMatch Ljava/lang/String;
MethodParameters:
Name Flags
stringUrl
public void initialize(java.lang.annotation.Annotation);
descriptor: (Ljava/lang/annotation/Annotation;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast org.hibernate.validator.constraints.URL
invokevirtual org.hibernate.validator.constraintvalidators.RegexpURLValidator.initialize:(Lorg/hibernate/validator/constraints/URL;)V
return
LocalVariableTable:
Start End Slot Name Signature
public boolean isValid(java.lang.Object, jakarta.validation.ConstraintValidatorContext);
descriptor: (Ljava/lang/Object;Ljakarta/validation/ConstraintValidatorContext;)Z
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
checkcast java.lang.CharSequence
aload 2
invokevirtual org.hibernate.validator.constraintvalidators.RegexpURLValidator.isValid:(Ljava/lang/CharSequence;Ljakarta/validation/ConstraintValidatorContext;)Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljakarta/validation/ConstraintValidator<Lorg/hibernate/validator/constraints/URL;Ljava/lang/CharSequence;>;
SourceFile: "RegexpURLValidator.java"
NestMembers:
org.hibernate.validator.constraintvalidators.RegexpURLValidator$ValueHolder
InnerClasses:
private ValueHolder = org.hibernate.validator.constraintvalidators.RegexpURLValidator$ValueHolder of org.hibernate.validator.constraintvalidators.RegexpURLValidator