package org.reldb.rel.v0.types; import org.reldb.rel.v0.generator.Generator; import org.reldb.rel.v0.values.Value; public interface Type { /** Obtain this type's signature. */ public String getSignature(); /** Return true if source can be assigned to variables of this type. */ public boolean canAccept(Type source); /** Return true if source must be reformated before being assigned to variables * of this type. This should only be true on Projectable ValueS of TypeHeading. */ public boolean requiresReformatOf(Type source); /** Obtain a default value of this type. */ public Value getDefaultValue(Generator generator); /** Return the name of the Java class that represents values of this type. */ public String getValueClassname(Generator generator); public String toString(); }