package org.reldb.rel.v0.storage.catalog; import org.reldb.rel.v0.generator.Generator; import org.reldb.rel.v0.storage.RelDatabase; import org.reldb.rel.v0.values.*; import org.reldb.rel.v0.version.Version; public class RelvarVersion extends RelvarSpecial { RelvarVersion(RelDatabase database) { super(Catalog.relvarVersion, database); } public long getCardinality(Generator generator) { return 1; } // Get a TupleIterator public TupleIterator iterator(final Generator generator) { return new TupleIterator() { boolean available = true; public boolean hasNext() { return available; } public ValueTuple next() { try { Value rawTuple[] = new Value[] { ValueInteger.select(generator, Version.getDatabaseVersion()), ValueInteger.select(generator, Version.getProductVersion()), ValueInteger.select(generator, Version.getRevision()), ValueCharacter.select(generator, Version.getCopyright()), ValueCharacter.select(generator, Version.getLicense()), ValueCharacter.select(generator, Version.getNumericVersion()), ValueCharacter.select(generator, Version.getRedistribution()), ValueCharacter.select(generator, Version.getRelease()), ValueCharacter.select(generator, Version.getVersion()), ValueCharacter.select(generator, Version.getWarranty()) }; return new ValueTuple(generator, rawTuple); } finally { available = false; } } public void close() { } }; } }