package ring.magic; /** * Interface that allows implementation of a specific, type-safe metadata * class for Spells. The interface contains only a single method, transform(). * The spell metadata implementation is passed to the current MagicSystem, * which is responsible for casting to the appropriate metadata implementation * and handling errors properly. * @author projectmoon * */ public interface SpellMetadataImplementation { /** * Transform the String-based values into types useful * to this implementation. * @param metadata */ public void transform(SpellMetadata metadata); }