package org.reldb.rel.v0.storage.relvars; import org.reldb.rel.v0.generator.*; import org.reldb.rel.v0.storage.RelDatabase; import org.reldb.rel.v0.types.*; import org.reldb.rel.v0.vm.*; import org.reldb.rel.v0.vm.instructions.core.*; public class RelvarPrivate extends Variable implements CellFactory { private RelDatabase database; private RelvarHeading headingDefinition; public RelvarPrivate(int depth, int offset, RelDatabase database, RelvarHeading headingDefinition) { super(depth, offset); setType(new TypeRelation(headingDefinition.getHeading())); this.database = database; this.headingDefinition = headingDefinition; } public Cell getNewCell() { return new RelvarPrivateCell(database.getTempTable(headingDefinition)); } @Override public void compileInitialise(Generator generator) { generator.compileInstruction(new OpVariableInitialise(getDepth(), getOffset(), this)); } }