001package com.mrivanplays.annotationconfig.core; 002 003import java.lang.annotation.Documented; 004import java.lang.annotation.ElementType; 005import java.lang.annotation.Retention; 006import java.lang.annotation.RetentionPolicy; 007import java.lang.annotation.Target; 008 009/** 010 * Annotation, representing a custom (non-primitive) type of the field it was annotated on. The 011 * value specified should be a {@link FieldTypeResolver} class, which is resolving primitive value 012 * to field value. 013 */ 014@Documented 015@Retention(RetentionPolicy.RUNTIME) 016@Target(ElementType.FIELD) 017public @interface TypeResolver { 018 019 /** 020 * Class value of the {@link FieldTypeResolver} 021 * 022 * @return class value 023 */ 024 Class<? extends FieldTypeResolver> value(); 025}