001 package org.bukkit.configuration.serialization;
002
003 import java.lang.annotation.ElementType;
004 import java.lang.annotation.Retention;
005 import java.lang.annotation.RetentionPolicy;
006 import java.lang.annotation.Target;
007
008 /**
009 * Applies to a {@link ConfigurationSerializable} that will delegate all
010 * deserialization to another {@link ConfigurationSerializable}.
011 */
012 @Retention(RetentionPolicy.RUNTIME)
013 @Target(ElementType.TYPE)
014 public @interface DelegateDeserialization {
015 /**
016 * Which class should be used as a delegate for this classes
017 * deserialization
018 *
019 * @return Delegate class
020 */
021 public Class<? extends ConfigurationSerializable> value();
022 }