package org.reldb.rel.v0.storage.relvars; import org.reldb.rel.exceptions.ExceptionFatal; import org.reldb.rel.v0.generator.Generator; import org.reldb.rel.v0.storage.RelDatabase; import org.reldb.rel.v0.storage.tables.TableReal; import org.reldb.rel.v0.values.*; import org.reldb.rel.v0.vm.Context; import org.reldb.rel.v0.vm.Operator; /** This represents a relvar in the process of being defined. RelvarInProgress will only exist * at compile-time. By the completion of the run-time execution, none should be left unless * a run-time exception has been thrown. * * @author scat070 * */ public class RelvarInProgress extends RelvarGlobal { private RelvarMetadata metadata; public RelvarInProgress(String name, RelDatabase database, RelvarMetadata metadata) { super(name, database); this.metadata = metadata; } RelvarMetadata getRelvarMetadata() { return metadata; } private void misuse(String operation) { throw new ExceptionFatal("RS0369: Attempt to use " + operation + " in RelvarInProgress."); } TableReal getTable() { misuse("getTable"); return null; } public long getCardinality(Generator generator) { misuse("getCardinality"); return 0; } public boolean contains(Generator generator, ValueTuple tuple) { misuse("contains"); return false; } public ValueTuple getTupleForKey(ValueTuple tuple) { misuse("getTupleForKey"); return null; } public void setValue(ValueRelation relation) { misuse("setValue"); } public long insert(Generator generator, ValueTuple tuple) { misuse("insert tuple"); return 0; } public long insert(Generator generator, ValueRelation relation) { misuse("insert relation"); return 0; } public long insertNoDuplicates(Generator generator, ValueRelation relation) { misuse("insert relation"); return 0; } // Delete all tuples public void purge() { misuse("purge"); } // Delete given tuple public void delete(ValueTuple tuple) { misuse("delete tuple"); } // Delete selected tuples public long delete(Context context, Operator whereTupleOperator) { misuse("delete WHERE (operator)"); return 0; } // Delete selected tuples public long delete(Generator generator, TupleFilter filter) { misuse("delete WHERE (filter)"); return 0; } // Delete specified tuples. If there are tuplesToDelete not found in this Relvar, and errorIfNotIncluded is true, throw an error. public long delete(Context context, ValueRelation tuplesToDelete, boolean errorIfNotIncluded) { misuse("[i_]delete relation"); return 0; } // Update all tuples using a given update operator public long update(Context context, Operator updateTupleOperator) { misuse("update"); return 0; } // Update selected tuples using a given update operator public long update(Context context, Operator whereTupleOperator, Operator updateTupleOperator) { misuse("update WHERE"); return 0; } // Get a TupleIterator public TupleIterator iterator(Generator generator) { misuse("iterator"); return null; } }