gluu
静的公開メンバ関数 | 静的公開変数類 | 静的関数 | 非公開メンバ関数 | 静的非公開メンバ関数 | 静的非公開変数類 | 全メンバ一覧
org.gluu.oxtrust.model.scim2.util.IntrospectUtil クラス
org.gluu.oxtrust.model.scim2.util.IntrospectUtil 連携図
Collaboration graph

静的公開メンバ関数

static Field findFieldFromPath (Class<?> initcls, String path)
 
static Map< String, Object > strObjMap (Object obj)
 
static< T extends Annotation > T getFieldAnnotation (String path, Class resourceClass, Class< T > annotationClass)
 
static List< Object > getAttributeValues (BaseScimResource bean, final List< Method > getters)
 
static Method getSetter (String fieldName, Class clazz) throws Exception
 
static Method getGetter (String fieldName, Class clazz) throws Exception
 
static boolean isCollection (Class clazz)
 
static List< String > getPathsInExtension (Extension extension)
 

静的公開変数類

static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > defaultCoreAttrs
 
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > requestCoreAttrs
 
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > alwaysCoreAttrs
 
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > neverCoreAttrs
 
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > requiredCoreAttrs
 
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > validableCoreAttrs
 
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > canonicalCoreAttrs
 
static Map< Class<? extends BaseScimResource >, SortedSet< String > > allAttrs
 
static Map< Class<? extends BaseScimResource >, Map< String, String > > storeRefs
 

静的関数

 [static initializer]
 

非公開メンバ関数

 IntrospectUtil ()
 

静的非公開メンバ関数

static Field findField (final Class<?> cls, final String fieldName)
 
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > newEmptyMap ()
 
static void resetAttrNames ()
 
static void resetMaps ()
 
static void freezeMaps ()
 
static void traverseClassForNames (Class clazz, String prefix, List< Field > extraFields, boolean prune) throws Exception
 
static Map< String, List< Method > > computeGettersMap (List< String > attrNames, Class baseClass) throws Exception
 

静的非公開変数類

static Logger log = LogManager.getLogger(IntrospectUtil.class)
 
static List< String > requiredAttrsNames
 
static List< String > defaultAttrsNames
 
static List< String > alwaysAttrsNames
 
static List< String > neverAttrsNames
 
static List< String > requestAttrsNames
 
static List< String > validableAttrsNames
 
static List< String > canonicalizedAttrsNames
 

詳解

Provides miscelaneous routines to query classes/objects properties using reflection mechanisms. Additionally, this class exposes some static members that contain useful information about SCIM resources that is collected upon class loading.

構築子と解体子

◆ IntrospectUtil()

org.gluu.oxtrust.model.scim2.util.IntrospectUtil.IntrospectUtil ( )
inlineprivate
44 {}

関数詳解

◆ [static initializer]()

org.gluu.oxtrust.model.scim2.util.IntrospectUtil.[static initializer] ( )
inlinestaticpackage

◆ computeGettersMap()

static Map<String, List<Method> > org.gluu.oxtrust.model.scim2.util.IntrospectUtil.computeGettersMap ( List< String >  attrNames,
Class  baseClass 
) throws Exception
inlinestaticprivate
402  {
403 
404  Map<String, List<Method>> map=new HashMap<String, List<Method>>();
405 
406  for (String attrName : attrNames) {
407  List<Method> list =new ArrayList<Method>();
408  Class clazz=baseClass;
409 
410  for (String prop : attrName.split("\\.")) {
411  Method method=getGetter(prop, clazz);
412  list.add(method);
413 
414  if (isCollection(method.getReturnType())) { //Use class of parameter in collection
415  Field f=findField(clazz, prop);
416  Attribute attrAnnot=f.getAnnotation(Attribute.class);
417  if (attrAnnot!=null)
418  clazz=attrAnnot.multiValueClass();
419  }
420  else
421  clazz=method.getReturnType();
422  }
423  map.put(attrName, list);
424  }
425  return map;
426 
427  }
static boolean isCollection(Class clazz)
Definition: IntrospectUtil.java:220
static Method getGetter(String fieldName, Class clazz)
Definition: IntrospectUtil.java:207
static Field findField(final Class<?> cls, final String fieldName)
Definition: IntrospectUtil.java:55

◆ findField()

static Field org.gluu.oxtrust.model.scim2.util.IntrospectUtil.findField ( final Class<?>  cls,
final String  fieldName 
)
inlinestaticprivate

This method will find a java Field with a particular name. If needed, this method will search through super classes. The field does not need to be public. Adapted from https://github.com/pingidentity/scim2/blob/master/scim2-sdk-common/src/main/java/com/unboundid/scim2/common/utils/SchemaUtils.java

引数
clsthe java Class to search.
fieldNamethe name of the field to find.
戻り値
A Field object, or null if no field was found
55  {
56 
57  Class<?> currentClass = cls;
58 
59  while(currentClass != null){
60  Field fields[] = currentClass.getDeclaredFields();
61  for (Field field : fields){
62  if(field.getName().equals(fieldName))
63  return field;
64  }
65  currentClass = currentClass.getSuperclass();
66  }
67  return null;
68 
69  }

◆ findFieldFromPath()

static Field org.gluu.oxtrust.model.scim2.util.IntrospectUtil.findFieldFromPath ( Class<?>  initcls,
String  path 
)
inlinestatic

Inspects a class to search for a field that corresponds to the path passed using dot notation. Every piece of the path (separated by the a dot '.') is expected to have a field with the same name in the class inspected. When such a field is found, the remainder of the path is processed using the class associated to the field, until the path is fully consumed.

This method starts from an initial class and visits ascendingly the class hierarchy with a route determined by the components found in the path parameter.

引数
initclsClass to start the search from
pathA string denoting a path to a target attribute. Examples of valid paths can be: displayName, name.givenName, addresses.locality
戻り値
A Field that represents the terminal portion of the path, for instance "locality" field for "addresses.locality". If no such field is found (because at some point, there was no route to go), null is returned.
84  {
85 
86  Class cls=initcls;
87  Field f=null;
88 
89  for (String prop : path.split("\\.")) {
90  f=findField(cls, prop);
91 
92  if (f!=null) {
93  cls = f.getType();
94  if (isCollection(cls)) {
95  Attribute attrAnnot = f.getAnnotation(Attribute.class);
96  if (attrAnnot != null)
97  cls = attrAnnot.multiValueClass();
98  }
99  }
100  else
101  break;
102  }
103  return f;
104 
105  }
static boolean isCollection(Class clazz)
Definition: IntrospectUtil.java:220
static Field findField(final Class<?> cls, final String fieldName)
Definition: IntrospectUtil.java:55

◆ freezeMaps()

static void org.gluu.oxtrust.model.scim2.util.IntrospectUtil.freezeMaps ( )
inlinestaticprivate
336  {
337  requiredCoreAttrs=Collections.unmodifiableMap(requiredCoreAttrs);
338  defaultCoreAttrs=Collections.unmodifiableMap(defaultCoreAttrs);
339  alwaysCoreAttrs=Collections.unmodifiableMap(alwaysCoreAttrs);
340  neverCoreAttrs=Collections.unmodifiableMap(neverCoreAttrs);
341  requestCoreAttrs=Collections.unmodifiableMap(requestCoreAttrs);
342  validableCoreAttrs=Collections.unmodifiableMap(validableCoreAttrs);
343  canonicalCoreAttrs=Collections.unmodifiableMap(canonicalCoreAttrs);
344 
345  allAttrs=Collections.unmodifiableMap(allAttrs);
346  storeRefs=Collections.unmodifiableMap(storeRefs);
347  }
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > requestCoreAttrs
Definition: IntrospectUtil.java:257
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > requiredCoreAttrs
Definition: IntrospectUtil.java:276
static Map< Class<? extends BaseScimResource >, Map< String, String > > storeRefs
Definition: IntrospectUtil.java:307
static Map< Class<? extends BaseScimResource >, SortedSet< String > > allAttrs
Definition: IntrospectUtil.java:298
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > defaultCoreAttrs
Definition: IntrospectUtil.java:251
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > alwaysCoreAttrs
Definition: IntrospectUtil.java:263
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > canonicalCoreAttrs
Definition: IntrospectUtil.java:290
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > neverCoreAttrs
Definition: IntrospectUtil.java:269
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > validableCoreAttrs
Definition: IntrospectUtil.java:283

◆ getAttributeValues()

static List<Object> org.gluu.oxtrust.model.scim2.util.IntrospectUtil.getAttributeValues ( BaseScimResource  bean,
final List< Method >  getters 
)
inlinestatic

Traverses the contents of a SCIM resource and applies a set of getter methods to collect a list of values. For example, if passing a UserResource object and list of getters such as [getAdresses(), getStreetAddress()], it will return a list with all "street addresses" that can be found inside user object.

引数
beanA SCIM resource object
gettersA list of getters methods
戻り値
List of values. They are collected by scanning the getter list from beginning to end. If no values could be collected at all, an empty list is returned
142  {
143 
144  final List<Object> results=new ArrayList<Object>();
145 
146  class traversalClass{
147 
148  void traverse(Object value, int index){
149 
150  try {
151  if (value!=null && index < getters.size()) {
152  if (IntrospectUtil.isCollection(value.getClass())) {
153 
154  Collection collection=(Collection)value;
155  if (collection.isEmpty())
156  traverse(null, index); //stops branching...
157  else {
158  for (Object val : collection)
159  traverse(val, index);
160  }
161  }
162  else {
163  Object val=getters.get(index).invoke(value);
164  traverse(val, index+1);
165  }
166  }
167  //Add result only if we are at the deepest level (tree tip)
168  if (index==getters.size())
169  results.add(value);
170  }
171  catch (Exception e){
172  log.error(e.getMessage(), e);
173  }
174  }
175 
176  }
177 
178  new traversalClass().traverse(bean, 0);
179  return results;
180 
181  }
static Logger log
Definition: IntrospectUtil.java:42
IntrospectUtil()
Definition: IntrospectUtil.java:44

◆ getFieldAnnotation()

static <T extends Annotation> T org.gluu.oxtrust.model.scim2.util.IntrospectUtil.getFieldAnnotation ( String  path,
Class  resourceClass,
Class< T >  annotationClass 
)
inlinestatic

Searches for a Field that corresponds to the path passed (using findFieldFromPath) and tries to find an annotation attached to such field that matches the annotationClass parameter.

引数
pathA string denoting a path to a target attribute. Examples of valid paths can be: displayName, name.givenName, addresses.locality when UserResource class is used for resourceClass.
resourceClassClass to start the search from
annotationClassClass annotation to be inspected for the field
<T>Type parameter for annotationClass
戻り値
An object of type T, or null if no annotation was found or the field itself couldn't be found
128  {
129  Field f=findFieldFromPath(resourceClass, path);
130  return f==null ? null : f.getAnnotation(annotationClass);
131  }
static Field findFieldFromPath(Class<?> initcls, String path)
Definition: IntrospectUtil.java:84

◆ getGetter()

static Method org.gluu.oxtrust.model.scim2.util.IntrospectUtil.getGetter ( String  fieldName,
Class  clazz 
) throws Exception
inlinestatic

Inspects a class that represents a Java Bean and tries to find the getter Method associated to the class field whose name is passed as parameter.

引数
fieldNameThe name of the field whose getter needs to be found
clazzThe Class to introspect
戻り値
A Method object, null if the lookup is not successful
例外
ExceptionUpon introspection error
207  {
208  PropertyDescriptor[] props = Introspector.getBeanInfo(clazz).getPropertyDescriptors();
209  for (PropertyDescriptor p : props)
210  if (p.getName().equals(fieldName))
211  return p.getReadMethod();
212  return null;
213  }

◆ getPathsInExtension()

static List<String> org.gluu.oxtrust.model.scim2.util.IntrospectUtil.getPathsInExtension ( Extension  extension)
inlinestatic

Returns a list with the names of the attributes that belong to an extension, so that every name is prefixed with the urn of the extension, like this: urn:attribute_name

引数
extensionAn Extension object
戻り値
A list of prefixed names
230  {
231 
232  List<String> list=new ArrayList<String>();
233  for (String attr : extension.getFields().keySet())
234  list.add(extension.getUrn() + "." + attr);
235  return list;
236 
237  }

◆ getSetter()

static Method org.gluu.oxtrust.model.scim2.util.IntrospectUtil.getSetter ( String  fieldName,
Class  clazz 
) throws Exception
inlinestatic

Inspects a class that represents a Java Bean and tries to find the setter Method associated to the class field whose name is passed as parameter.

引数
fieldNameThe name of the field whose setter needs to be found
clazzThe Class to introspect
戻り値
A Method object, null if the lookup is not successful
例外
ExceptionUpon introspection error
191  {
192  PropertyDescriptor[] props = Introspector.getBeanInfo(clazz).getPropertyDescriptors();
193  for (PropertyDescriptor p : props)
194  if (p.getName().equals(fieldName))
195  return p.getWriteMethod();
196  return null;
197  }

◆ isCollection()

static boolean org.gluu.oxtrust.model.scim2.util.IntrospectUtil.isCollection ( Class  clazz)
inlinestatic

Determines if the class passed implements the Collection interface.

引数
clazzClass to analyze
戻り値
true if the class is a Collection, false otherwise.
220  {
221  return Collection.class.isAssignableFrom(clazz);
222  }

◆ newEmptyMap()

static Map<Class<? extends BaseScimResource>, Map<String, List<Method> > > org.gluu.oxtrust.model.scim2.util.IntrospectUtil.newEmptyMap ( )
inlinestaticprivate
309  {
310  return new HashMap<Class<? extends BaseScimResource>, Map<String, List<Method>>>();
311  }

◆ resetAttrNames()

static void org.gluu.oxtrust.model.scim2.util.IntrospectUtil.resetAttrNames ( )
inlinestaticprivate
313  {
314  requiredAttrsNames=new ArrayList<String>();
315  defaultAttrsNames=new ArrayList<String>();
316  validableAttrsNames=new ArrayList<String>();
317  canonicalizedAttrsNames=new ArrayList<String>();
318  alwaysAttrsNames=new ArrayList<String>();
319  neverAttrsNames=new ArrayList<String>();
320  requestAttrsNames=new ArrayList<String>();
321  }
static List< String > validableAttrsNames
Definition: IntrospectUtil.java:244
static List< String > requiredAttrsNames
Definition: IntrospectUtil.java:239
static List< String > requestAttrsNames
Definition: IntrospectUtil.java:243
static List< String > defaultAttrsNames
Definition: IntrospectUtil.java:240
static List< String > neverAttrsNames
Definition: IntrospectUtil.java:242
static List< String > canonicalizedAttrsNames
Definition: IntrospectUtil.java:245
static List< String > alwaysAttrsNames
Definition: IntrospectUtil.java:241

◆ resetMaps()

static void org.gluu.oxtrust.model.scim2.util.IntrospectUtil.resetMaps ( )
inlinestaticprivate
323  {
331 
332  allAttrs=new HashMap<Class<? extends BaseScimResource>, SortedSet<String>>();
333  storeRefs=new HashMap<Class<? extends BaseScimResource>, Map<String,String>>();
334  }
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > requestCoreAttrs
Definition: IntrospectUtil.java:257
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > requiredCoreAttrs
Definition: IntrospectUtil.java:276
static Map< Class<? extends BaseScimResource >, Map< String, String > > storeRefs
Definition: IntrospectUtil.java:307
static Map< Class<? extends BaseScimResource >, SortedSet< String > > allAttrs
Definition: IntrospectUtil.java:298
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > defaultCoreAttrs
Definition: IntrospectUtil.java:251
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > alwaysCoreAttrs
Definition: IntrospectUtil.java:263
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > newEmptyMap()
Definition: IntrospectUtil.java:309
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > canonicalCoreAttrs
Definition: IntrospectUtil.java:290
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > neverCoreAttrs
Definition: IntrospectUtil.java:269
static Map< Class<? extends BaseScimResource >, Map< String, List< Method > > > validableCoreAttrs
Definition: IntrospectUtil.java:283

◆ strObjMap()

static Map<String, Object> org.gluu.oxtrust.model.scim2.util.IntrospectUtil.strObjMap ( Object  obj)
inlinestatic

Takes an opaque object and casts it to a { Map<String, Object>}. Call this only if you are sure the object being passed is actually an instance of { Map<String, Object>}.

引数
objObject to be cast
戻り値
A map instance
113  {
114  return (Map<String, Object>) obj;
115  }

◆ traverseClassForNames()

static void org.gluu.oxtrust.model.scim2.util.IntrospectUtil.traverseClassForNames ( Class  clazz,
String  prefix,
List< Field >  extraFields,
boolean  prune 
) throws Exception
inlinestaticprivate
349  {
350 
351  List<Field> fields=new ArrayList<Field>();
352  fields.addAll(Arrays.asList(clazz.getDeclaredFields()));
353  fields.addAll(extraFields);
354 
355  for (Field f : fields){
356  Attribute attrAnnot=f.getAnnotation(Attribute.class);
357  if (attrAnnot!=null){
358 
359  String name=f.getName();
360  if (prefix.length()>0)
361  name=prefix + "." + name;
362 
363  switch (attrAnnot.returned()){
364  case ALWAYS:
365  alwaysAttrsNames.add(name);
366  break;
367  case DEFAULT:
368  defaultAttrsNames.add(name);
369  break;
370  case NEVER:
371  neverAttrsNames.add(name);
372  break;
373  case REQUEST:
374  requestAttrsNames.add(name);
375  break;
376  }
377 
378  if (attrAnnot.isRequired())
379  requiredAttrsNames.add(name);
380 
381  if (attrAnnot.canonicalValues().length>0)
382  canonicalizedAttrsNames.add(name);
383 
384  Validator vAnnot=f.getAnnotation(Validator.class);
385  if (vAnnot!=null)
386  validableAttrsNames.add(name);
387 
388  if (!prune && attrAnnot.type().equals(AttributeDefinition.Type.COMPLEX)) {
389  Class cls = attrAnnot.multiValueClass(); //Use <T> parameter of Collection if present
390  if (cls.equals(NullType.class))
391  cls=f.getType();
392 
393  if (clazz.equals(cls)) //Prevent infinite loop
394  prune=true;
395 
396  traverseClassForNames(cls.equals(NullType.class) ? f.getType() : cls, name, new ArrayList<Field>(), prune);
397  }
398  }
399  }
400  }
static List< String > validableAttrsNames
Definition: IntrospectUtil.java:244
static List< String > requiredAttrsNames
Definition: IntrospectUtil.java:239
static void traverseClassForNames(Class clazz, String prefix, List< Field > extraFields, boolean prune)
Definition: IntrospectUtil.java:349
static List< String > requestAttrsNames
Definition: IntrospectUtil.java:243
static List< String > defaultAttrsNames
Definition: IntrospectUtil.java:240
static List< String > neverAttrsNames
Definition: IntrospectUtil.java:242
static List< String > canonicalizedAttrsNames
Definition: IntrospectUtil.java:245
static List< String > alwaysAttrsNames
Definition: IntrospectUtil.java:241

メンバ詳解

◆ allAttrs

Map<Class <? extends BaseScimResource>, SortedSet<String> > org.gluu.oxtrust.model.scim2.util.IntrospectUtil.allAttrs
static

An unmodifiable map that stores for every possible subclass of BaseScimResource a SortedSet with the paths that lead to every single attribute/subattribute part of that resource.

As an example, a set for the UserResource includes elements such as schemas, id, name, name.givenName, emails, emails.value, emails.type, ...

◆ alwaysAttrsNames

List<String> org.gluu.oxtrust.model.scim2.util.IntrospectUtil.alwaysAttrsNames
staticprivate

◆ alwaysCoreAttrs

Map<Class<? extends BaseScimResource>, Map<String, List<Method> > > org.gluu.oxtrust.model.scim2.util.IntrospectUtil.alwaysCoreAttrs
static

An unmodifiable map that provides access to the sequence of getter methods that allow to get the actual value(s) for every possible attribute (or sub-atribute) of a SCIM resource when its returnability is "always"

◆ canonicalCoreAttrs

Map<Class<? extends BaseScimResource>, Map<String, List<Method> > > org.gluu.oxtrust.model.scim2.util.IntrospectUtil.canonicalCoreAttrs
static

An unmodifiable map that provides access to the sequence of getter methods that allow to get the actual value(s) for every possible attribute (or sub-atribute) of a SCIM resource when the attribute has canonical values associated

◆ canonicalizedAttrsNames

List<String> org.gluu.oxtrust.model.scim2.util.IntrospectUtil.canonicalizedAttrsNames
staticprivate

◆ defaultAttrsNames

List<String> org.gluu.oxtrust.model.scim2.util.IntrospectUtil.defaultAttrsNames
staticprivate

◆ defaultCoreAttrs

Map<Class<? extends BaseScimResource>, Map<String, List<Method> > > org.gluu.oxtrust.model.scim2.util.IntrospectUtil.defaultCoreAttrs
static

An unmodifiable map that provides access to the sequence of getter methods that allow to get the actual value(s) for every possible attribute (or sub-atribute) of a SCIM resource when its returnability is "default"

◆ log

Logger org.gluu.oxtrust.model.scim2.util.IntrospectUtil.log = LogManager.getLogger(IntrospectUtil.class)
staticprivate

◆ neverAttrsNames

List<String> org.gluu.oxtrust.model.scim2.util.IntrospectUtil.neverAttrsNames
staticprivate

◆ neverCoreAttrs

Map<Class<? extends BaseScimResource>, Map<String, List<Method> > > org.gluu.oxtrust.model.scim2.util.IntrospectUtil.neverCoreAttrs
static

An unmodifiable map that provides access to the sequence of getter methods that allow to get the actual value(s) for every possible attribute (or sub-atribute) of a SCIM resource when its returnability is "never"

◆ requestAttrsNames

List<String> org.gluu.oxtrust.model.scim2.util.IntrospectUtil.requestAttrsNames
staticprivate

◆ requestCoreAttrs

Map<Class<? extends BaseScimResource>, Map<String, List<Method> > > org.gluu.oxtrust.model.scim2.util.IntrospectUtil.requestCoreAttrs
static

An unmodifiable map that provides access to the sequence of getter methods that allow to get the actual value(s) for every possible attribute (or sub-atribute) of a SCIM resource when its returnability is "request"

◆ requiredAttrsNames

List<String> org.gluu.oxtrust.model.scim2.util.IntrospectUtil.requiredAttrsNames
staticprivate

◆ requiredCoreAttrs

Map<Class<? extends BaseScimResource>, Map<String, List<Method> > > org.gluu.oxtrust.model.scim2.util.IntrospectUtil.requiredCoreAttrs
static

An unmodifiable map that provides access to the sequence of getter methods that allow to get the actual value(s) for every possible attribute (or sub-atribute) of a SCIM resource when the attribute is annotated as "required" in the resource

◆ storeRefs

Map<Class <? extends BaseScimResource>, Map<String, String> > org.gluu.oxtrust.model.scim2.util.IntrospectUtil.storeRefs
static

An unmodifiable map that stores for every possible subclass of BaseScimResource a Map that stores paths (as stored in allAttrs) vs. LDAP attribute names corresponding to such paths.

As an example, for UserResource this map will contain pairs like (userName, uid); (displayName, displayName); (meta.created, oxCreationTimestamp); (addresses, oxTrustAddresses); (addresses.value, oxTrustAddresses)...

◆ validableAttrsNames

List<String> org.gluu.oxtrust.model.scim2.util.IntrospectUtil.validableAttrsNames
staticprivate

◆ validableCoreAttrs

Map<Class<? extends BaseScimResource>, Map<String, List<Method> > > org.gluu.oxtrust.model.scim2.util.IntrospectUtil.validableCoreAttrs
static

An unmodifiable map that provides access to the sequence of getter methods that allow to get the actual value(s) for every possible attribute (or sub-atribute) of a SCIM resource when the attribute is annotated with some validation


このクラス詳解は次のファイルから抽出されました: