@@ -83,6 +83,8 @@ private static <T> void set(Extensible<?> extensible, String name, T value) {
8383 }
8484 }
8585
86+ // Profiles
87+
8688 public static Set <String > getProfiles (Extensible <?> extensible ) {
8789 Set <String > profiles = new HashSet <>(2 );
8890
@@ -95,6 +97,20 @@ public static Set<String> getProfiles(Extensible<?> extensible) {
9597 return profiles ;
9698 }
9799
100+ public static boolean includedProfile (Extensible <?> extensible , Set <String > included , Set <String > excluded ) {
101+ Set <String > profiles = getProfiles (extensible );
102+
103+ if (!excluded .isEmpty ()) {
104+ return excluded .stream ().noneMatch (profiles ::contains );
105+ }
106+
107+ if (included .isEmpty ()) {
108+ return true ;
109+ }
110+
111+ return included .stream ().anyMatch (profiles ::contains );
112+ }
113+
98114 public static void removeProfiles (Extensible <?> extensible ) {
99115 for (String name : extensionNames (extensible )) {
100116 if (name .startsWith (EXT_PROFILE_PREFIX )) {
@@ -103,7 +119,7 @@ public static void removeProfiles(Extensible<?> extensible) {
103119 }
104120 }
105121
106- //////
122+ // Name
107123
108124 public static String getName (Extensible <?> extensible ) {
109125 return get (extensible , PRIVATE_EXT_PREFIX + "name" , String .class );
@@ -113,7 +129,7 @@ public static void setName(Extensible<?> extensible, String name) {
113129 set (extensible , PRIVATE_EXT_PREFIX + "name" , name );
114130 }
115131
116- //////
132+ // Hidden
117133
118134 public static boolean isHidden (Extensible <?> extensible ) {
119135 return Boolean .TRUE .equals (get (extensible , PRIVATE_EXT_PREFIX + "hidden" , Boolean .class ));
@@ -123,7 +139,7 @@ public static void setHidden(Extensible<?> extensible, Boolean hidden) {
123139 set (extensible , PRIVATE_EXT_PREFIX + "hidden" , hidden );
124140 }
125141
126- //////
142+ // Response-Code
127143
128144 public static String getResponseCode (APIResponse response ) {
129145 return get (response , PRIVATE_EXT_PREFIX + "response-code" , String .class );
@@ -133,7 +149,7 @@ public static void setResponseCode(APIResponse response, String responseCode) {
133149 set (response , PRIVATE_EXT_PREFIX + "response-code" , responseCode );
134150 }
135151
136- //////
152+ // Required-Default
137153
138154 public static Boolean getRequiredDefault (RequestBody requestBody ) {
139155 return get (requestBody , PRIVATE_EXT_PREFIX + "required-default" , Boolean .class );
@@ -151,7 +167,7 @@ public static void setRequiredDefault(RequestBody requestBody, Boolean requiredD
151167 set (requestBody , PRIVATE_EXT_PREFIX + "required-default" , requiredDefault );
152168 }
153169
154- //////
170+ // Is-Required-Set
155171
156172 /**
157173 * Returns whether {@link RequestBody#setRequired(Boolean)} has been called on a request body.
@@ -167,7 +183,7 @@ public static void setIsRequiredSet(RequestBody requestBody, Boolean requiredDef
167183 set (requestBody , PRIVATE_EXT_PREFIX + "is-required-set" , requiredDefault );
168184 }
169185
170- //////
186+ // Param-Ref
171187
172188 /**
173189 * Implementation specific, set a reference to the Java method parameter, so that we can bind back to it later if needed
@@ -183,7 +199,7 @@ public static void setParamRef(Parameter parameter, AnnotationTarget source) {
183199 set (parameter , PRIVATE_EXT_PREFIX + "param-ref" , ref );
184200 }
185201
186- //////
202+ // Method-Ref
187203
188204 /**
189205 * Implementation specific, set a reference to the Java method, so that we can bind back to it later if needed
@@ -199,7 +215,7 @@ public static void setMethodRef(Operation operation, ClassInfo resourceClass, Me
199215 set (operation , PRIVATE_EXT_PREFIX + "method-ref" , ref );
200216 }
201217
202- //////
218+ // Schema-Type-Observers
203219
204220 @ SuppressWarnings ("unchecked" )
205221 public static List <Schema > getTypeObservers (Schema schema ) {
@@ -210,7 +226,7 @@ public static void setTypeObservers(Schema schema, List<Schema> observers) {
210226 set (schema , PRIVATE_EXT_PREFIX + "schema-type-observers" , observers );
211227 }
212228
213- //////
229+ // Private extension accessors/mutator
214230
215231 public static boolean isPrivateExtension (String name ) {
216232 return name .startsWith (PRIVATE_EXT_PREFIX );
@@ -224,7 +240,7 @@ public static void setPrivateExtension(Extensible<?> extensible, String name, Ob
224240 extensible .addExtension (PRIVATE_EXT_PREFIX + name , value );
225241 }
226242
227- ///////
243+ // Directives
228244
229245 @ SuppressWarnings ("unchecked" )
230246 public static Collection <String > getDirectives (Extensible <?> extensible ) {
@@ -239,7 +255,7 @@ public static Collection<String> getDirectives(Extensible<?> extensible) {
239255 return Collections .emptySet ();
240256 }
241257
242- ///////
258+ // Reference helpers
243259
244260 private static String createUniqueAnnotationTargetRef (AnnotationTarget annotationTarget ) {
245261 switch (annotationTarget .kind ()) {
0 commit comments