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.storage.relvars.external.Registry; import org.reldb.rel.v0.types.*; public class RelvarExternalRelvarTypesMetadata extends RelvarMetadata { public static final long serialVersionUID = 0; static Heading getNewHeading() { return Registry.getHeading(); } static RelvarHeading getNewKeyDefinition() { RelvarHeading keydef = new RelvarHeading(getNewHeading()); SelectAttributes keyAttributes = new SelectAttributes(); keyAttributes.add("Identifier"); keydef.addKey(keyAttributes); return keydef; } public RelvarExternalRelvarTypesMetadata(RelDatabase database) { super(database, getNewKeyDefinition(), RelDatabase.systemOwner); } public RelvarHeading getHeadingDefinition(RelDatabase database) { return getNewKeyDefinition(); } public RelvarGlobal getRelvar(String name, RelDatabase database) { return new RelvarExternalRelvarTypes(database); } public void dropRelvar(RelDatabase database) { throw new ExceptionSemantic("RS0480: The " + Catalog.relvarExternalRelvarTypes + " relvar may not be dropped."); } }