/** * Create bindings for entity class to its permission checks. * @param dictionary the entity dictionary to look up permissions from * @param cls entity class * @param fieldOrMethodList list of fields/methods */ public EntityPermissions(EntityDictionary dictionary, Class<?> cls, Collection<AccessibleObject> fieldOrMethodList) { this.dictionary = dictionary; for (Class<? extends Annotation> annotationClass : PERMISSION_ANNOTATIONS) { final Map<String, ParseTree> fieldPermissions = new HashMap<>(); fieldOrMethodList.stream() .forEach(member -> bindMemberPermissions(fieldPermissions, member, annotationClass)); if (annotationClass != SharePermission.class) { ParseTree classPermission = bindClassPermissions(cls, annotationClass); if (classPermission != null || !fieldPermissions.isEmpty()) { bindings.put(annotationClass, new AnnotationBinding(classPermission, fieldPermissions)); } } } }
/** * Create bindings for entity class to its permission checks. * @param dictionary the entity dictionary to look up permissions from * @param cls entity class * @param fieldOrMethodList list of fields/methods */ public EntityPermissions(EntityDictionary dictionary, Class<?> cls, Collection<AccessibleObject> fieldOrMethodList) { this.dictionary = dictionary; for (Class<? extends Annotation> annotationClass : PERMISSION_ANNOTATIONS) { final Map<String, ParseTree> fieldPermissions = new HashMap<>(); fieldOrMethodList.stream() .forEach(member -> bindMemberPermissions(fieldPermissions, member, annotationClass)); if (annotationClass != SharePermission.class) { ParseTree classPermission = bindClassPermissions(cls, annotationClass); if (classPermission != null || !fieldPermissions.isEmpty()) { bindings.put(annotationClass, new AnnotationBinding(classPermission, fieldPermissions)); } } } }