protected void loadPropertyAnnotations(MetaProperty metaProperty, AnnotatedElement annotatedElement) { for (Annotation annotation : annotatedElement.getAnnotations()) { MetaAnnotation metaAnnotation = AnnotationUtils.findAnnotation(annotation.getClass(), MetaAnnotation.class); if (metaAnnotation != null) { Map<String, Object> attributes = new LinkedHashMap<>(AnnotationUtils.getAnnotationAttributes(annotatedElement, annotation)); metaProperty.getAnnotations().put(annotation.annotationType().getName(), attributes); } } com.haulmont.chile.core.annotations.MetaProperty metaPropertyAnnotation = annotatedElement.getAnnotation(com.haulmont.chile.core.annotations.MetaProperty.class); if (metaPropertyAnnotation != null) { String[] related = metaPropertyAnnotation.related(); if (!(related.length == 1 && related[0].equals(""))) { metaProperty.getAnnotations().put("relatedProperties", Joiner.on(',').join(related)); } } loadBeanValidationAnnotations(metaProperty, annotatedElement); }