/** * Get {@link javax.persistence.AccessType } from {@link javax.persistence.Access @Access} on the * attribute of the given class */ static XMLAccessType getAccessFromAttributeAnnotation( DotName className, String attributeName, IndexBuilder indexBuilder) { Map<DotName, List<AnnotationInstance>> indexedAnnotations = indexBuilder.getIndexedAnnotations(className); if (indexedAnnotations != null && indexedAnnotations.containsKey(ACCESS)) { List<AnnotationInstance> annotationInstances = indexedAnnotations.get(ACCESS); if (MockHelper.isNotEmpty(annotationInstances)) { for (AnnotationInstance annotationInstance : annotationInstances) { AnnotationTarget indexedPropertyTarget = annotationInstance.target(); if (indexedPropertyTarget == null) { continue; } if (JandexHelper.getPropertyName(indexedPropertyTarget).equals(attributeName)) { XMLAccessType accessType = JandexHelper.getValueAsEnum(annotationInstance, "value", XMLAccessType.class); /** here we ignore @Access(FIELD) on property (getter) and @Access(PROPERTY) on field */ XMLAccessType targetAccessType = annotationTargetToAccessType(indexedPropertyTarget); if (accessType.equals(targetAccessType)) { return targetAccessType; } else { LOG.warn( String.format( "%s.%s has @Access on %s, but it tries to assign the access type to %s, this is not allowed by JPA spec, and will be ignored.", className, attributeName, targetAccessType, accessType)); } } } } } return null; }
void collectGlobalConfigurationFromIndex(GlobalAnnotations globalAnnotations) { for (DotName annName : DefaultConfigurationHelper.GLOBAL_ANNOTATIONS) { List<AnnotationInstance> annotationInstanceList = index.getAnnotations(annName); if (MockHelper.isNotEmpty(annotationInstanceList)) { globalAnnotations.addIndexedAnnotationInstance(annotationInstanceList); } } globalAnnotations.filterIndexedAnnotations(); }
private static XMLAccessType getAccessFromIdPosition( Map<DotName, List<AnnotationInstance>> annotations) { if (annotations == null || annotations.isEmpty() || !(annotations.containsKey(ID))) { return null; } List<AnnotationInstance> idAnnotationInstances = annotations.get(ID); if (MockHelper.isNotEmpty(idAnnotationInstances)) { return processIdAnnotations(idAnnotationInstances); } return null; }
private static XMLAccessType getAccess(Map<DotName, List<AnnotationInstance>> annotations) { if (annotations == null || annotations.isEmpty() || !isEntityObject(annotations)) { return null; } List<AnnotationInstance> accessAnnotationInstances = annotations.get(JPADotNames.ACCESS); if (MockHelper.isNotEmpty(accessAnnotationInstances)) { for (AnnotationInstance annotationInstance : accessAnnotationInstances) { if (annotationInstance.target() != null && annotationInstance.target() instanceof ClassInfo) { return JandexHelper.getValueAsEnum(annotationInstance, "value", XMLAccessType.class); } } } return null; }