package org.reldb.rel.v0.storage.catalog; import org.reldb.rel.exceptions.ExceptionSemantic; import org.reldb.rel.v0.generator.SelectAttributes; import org.reldb.rel.v0.storage.RelDatabase; import org.reldb.rel.v0.storage.relvars.RelvarGlobal; import org.reldb.rel.v0.storage.relvars.RelvarHeading; import org.reldb.rel.v0.storage.relvars.RelvarMetadata; import org.reldb.rel.v0.types.*; import org.reldb.rel.v0.types.builtin.TypeCharacter; import org.reldb.rel.v0.types.builtin.TypeInteger; public class RelvarVersionMetadata extends RelvarMetadata { public static final long serialVersionUID = 0; static Heading getNewHeading() { Heading heading = new Heading(); heading.add("minor", TypeInteger.getInstance()); heading.add("major", TypeInteger.getInstance()); heading.add("revision", TypeInteger.getInstance()); heading.add("copyright", TypeCharacter.getInstance()); heading.add("license", TypeCharacter.getInstance()); heading.add("versionnum", TypeCharacter.getInstance()); heading.add("redistribution", TypeCharacter.getInstance()); heading.add("release", TypeCharacter.getInstance()); heading.add("versionstr", TypeCharacter.getInstance()); heading.add("warranty", TypeCharacter.getInstance()); return heading; } static RelvarHeading getNewKeyDefinition() { RelvarHeading keydef = new RelvarHeading(getNewHeading()); keydef.addKey(new SelectAttributes()); return keydef; } public RelvarVersionMetadata(RelDatabase database) { super(database, getNewKeyDefinition(), RelDatabase.systemOwner); } public RelvarGlobal getRelvar(String name, RelDatabase database) { return new RelvarVersion(database); } public void dropRelvar(RelDatabase database) { throw new ExceptionSemantic("RS0206: The " + Catalog.relvarVersion + " relvar may not be dropped."); } }