private Map<PropertyKey, OptionsContainerBuilder> getPropertyOptions(final Class<?> entityClass) { final Map<PropertyKey, OptionsContainerBuilder> optionsByProperty = new HashMap<PropertyKey, OptionsContainerBuilder>(); for ( final Method method : entityClass.getMethods() ) { String propertyName = ReflectionHelper.getPropertyName( method ); if ( propertyName == null ) { continue; } final OptionsContainerBuilder optionsOfProperty = convertOptionAnnotations( method.getAnnotations() ); if ( optionsOfProperty != null ) { optionsByProperty.put( new PropertyKey( entityClass, propertyName ), optionsOfProperty ); } } for ( final Field field : entityClass.getDeclaredFields() ) { PropertyKey key = new PropertyKey( entityClass, field.getName() ); OptionsContainerBuilder optionsOfField = convertOptionAnnotations( field.getAnnotations() ); if ( optionsOfField != null ) { OptionsContainerBuilder optionsOfProperty = optionsByProperty.get( key ); if ( optionsOfProperty != null ) { optionsOfProperty.addAll( optionsOfField ); } else { optionsByProperty.put( key, optionsOfField ); } } } return optionsByProperty; }