package pluginbase.config.annotation;
import pluginbase.config.SerializableConfig;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Represents an "alias" that a class may be stored as. If this is not present on a class, serializers will generally
* use the fully qualified name of the class instead.
* <p/>
* This name MUST be unique. A non-unique name may result in undesirable behavior.
* <p/>
* <strong>Note:</strong> To use this annotation, the class <strong>must</strong> be registered via
* {@link SerializableConfig#registerSerializableAsClass(Class)} before any serialization occurs or
* problems may arise.
*
* @see NoTypeKey
* @see Name
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface SerializableAs {
String value();
}