@@ -20,11 +20,6 @@ public String toString() {
20
20
return allTypes .toString ();
21
21
}
22
22
23
- /** Ensure the component name has been initialised. */
24
- void initialiseFullName () {
25
- fullName ();
26
- }
27
-
28
23
boolean contains (String type ) {
29
24
return allTypes .contains (type );
30
25
}
@@ -45,25 +40,24 @@ void setFullName(String fullName) {
45
40
this .fullName = fullName ;
46
41
}
47
42
48
- String fullName () {
43
+ String fullName (boolean pkgPrivate ) {
49
44
if (fullName == null ) {
50
45
final List <String > types = new ArrayList <>(allTypes );
51
46
for (final var adapter : annotationAdapters ) {
52
47
adapter .getQualifiedName ().toString ().transform (types ::add );
53
48
}
54
49
String topPackage = TopPackage .of (types );
55
- if (!topPackage .endsWith (".valid" )) {
50
+ if (!topPackage .endsWith (".valid" ) && ! pkgPrivate ) {
56
51
topPackage += ".valid" ;
57
52
}
58
- fullName = topPackage + ".GeneratedValidatorComponent" ;
53
+ fullName =
54
+ pkgPrivate
55
+ ? topPackage + "." + name (topPackage ) + "ValidatorComponent"
56
+ : topPackage + ".GeneratedValidatorComponent" ;
59
57
}
60
58
return fullName ;
61
59
}
62
60
63
- String packageName () {
64
- return ProcessorUtils .packageOf (fullName ());
65
- }
66
-
67
61
List <String > all () {
68
62
return allTypes ;
69
63
}
@@ -81,18 +75,20 @@ Collection<String> allImports() {
81
75
final Set <String > packageImports = new TreeSet <>();
82
76
for (final String adapterFullName : allTypes ) {
83
77
packageImports .add (adapterFullName );
84
- packageImports .add (ProcessorUtils .extractEnclosingFQN (Util .baseTypeOfAdapter (adapterFullName )));
78
+ packageImports .add (
79
+ ProcessorUtils .extractEnclosingFQN (Util .baseTypeOfAdapter (adapterFullName )));
85
80
}
86
81
87
82
for (final var adapter : annotationAdapters ) {
88
83
final var adapterFullName = adapter .getQualifiedName ().toString ();
89
84
packageImports .add (adapterFullName );
90
- packageImports .add (ProcessorUtils .extractEnclosingFQN (Util .baseTypeOfAdapter (adapterFullName )));
85
+ packageImports .add (
86
+ ProcessorUtils .extractEnclosingFQN (Util .baseTypeOfAdapter (adapterFullName )));
91
87
92
88
ConstraintAdapterPrism .getInstanceOn (adapter )
93
- .value ()
94
- .toString ()
95
- .transform (packageImports ::add );
89
+ .value ()
90
+ .toString ()
91
+ .transform (packageImports ::add );
96
92
}
97
93
98
94
return packageImports ;
@@ -101,4 +97,36 @@ Collection<String> allImports() {
101
97
public boolean isEmpty () {
102
98
return allTypes .isEmpty () && factoryTypes .isEmpty () && annotationAdapters .isEmpty ();
103
99
}
100
+
101
+ static String name (String name ) {
102
+ if (name == null ) {
103
+ return null ;
104
+ }
105
+ final int pos = name .lastIndexOf ('.' );
106
+ if (pos > -1 ) {
107
+ name = name .substring (pos + 1 );
108
+ }
109
+ return camelCase (name ).replaceFirst ("Valid" , "Generated" );
110
+ }
111
+
112
+ private static String camelCase (String name ) {
113
+ StringBuilder sb = new StringBuilder (name .length ());
114
+ boolean upper = true ;
115
+ for (char aChar : name .toCharArray ()) {
116
+ if (Character .isLetterOrDigit (aChar )) {
117
+ if (upper ) {
118
+ aChar = Character .toUpperCase (aChar );
119
+ upper = false ;
120
+ }
121
+ sb .append (aChar );
122
+ } else if (toUpperOn (aChar )) {
123
+ upper = true ;
124
+ }
125
+ }
126
+ return sb .toString ();
127
+ }
128
+
129
+ private static boolean toUpperOn (char aChar ) {
130
+ return aChar == ' ' || aChar == '-' || aChar == '_' ;
131
+ }
104
132
}
0 commit comments