@SuppressWarnings("unused")
    @Internal
    @UsedByGeneratedCode
    protected final void indexProperty(@Nonnull Class<? extends Annotation> annotationType, @Nonnull String propertyName) {
        ArgumentUtils.requireNonNull("annotationType", annotationType);
        if (StringUtils.isNotEmpty(propertyName)) {
            final BeanProperty<T, Object> property = beanProperties.get(propertyName);
            if (property == null) {
                throw new IllegalStateException("Invalid byte code generated during bean introspection. Call addProperty first!");
            }
            if (indexed == null) {
                indexed = new HashMap<>(2);
            }
            final List<BeanProperty<T, Object>> indexed = this.indexed.computeIfAbsent(annotationType, aClass -> new ArrayList<>(2));

            indexed.add(property);
        }
    }
@ SuppressWarnings ( "unused" ) @ Internal @ UsedByGeneratedCode protected final void indexProperty ( @ Nonnull Class < ? extends Annotation > annotationType , @ Nonnull String propertyName ) { ArgumentUtils . requireNonNull ( "annotationType" , annotationType ) ; if ( StringUtils . isNotEmpty ( propertyName ) ) { final BeanProperty < T , Object > property = beanProperties . get ( propertyName ) ; if ( property == null ) { throw new IllegalStateException ( "Invalid byte code generated during bean introspection. Call addProperty first!" ) ; } if ( indexed == null ) { indexed = new HashMap < > ( 2 ) ; } final List < BeanProperty < T , Object > > indexed = this . indexed . computeIfAbsent ( annotationType , aClass -> new ArrayList < > ( 2 ) ) ; indexed . add ( property ) ; } }
Used to produce an index for particular annotation type. Method referenced by generated byte code and
not for public consumption. Should be called after {@link #addProperty(BeanProperty)} if required.

@param annotationType The annotation type
@param propertyName The property name