From: <mrp...@us...> - 2010-07-26 15:13:53
|
Revision: 3289 http://bigdata.svn.sourceforge.net/bigdata/?rev=3289&view=rev Author: mrpersonick Date: 2010-07-26 15:13:46 +0000 (Mon, 26 Jul 2010) Log Message: ----------- hiding the NullIV class from the world at large Modified Paths: -------------- branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/inf/Justification.java branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/AbstractIV.java branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/AbstractInlineIV.java branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/IV.java branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/IVUtility.java branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/NullIV.java branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/TermId.java branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOKeyOrder.java branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/test/com/bigdata/rdf/internal/TestEncodeDecodeKeys.java Modified: branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/inf/Justification.java =================================================================== --- branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/inf/Justification.java 2010-07-26 14:24:18 UTC (rev 3288) +++ branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/inf/Justification.java 2010-07-26 15:13:46 UTC (rev 3289) @@ -37,7 +37,6 @@ import com.bigdata.journal.TemporaryRawStore; import com.bigdata.rdf.internal.IV; import com.bigdata.rdf.internal.IVUtility; -import com.bigdata.rdf.internal.NullIV; import com.bigdata.rdf.internal.TermId; import com.bigdata.rdf.model.StatementEnum; import com.bigdata.rdf.rules.InferenceEngine; @@ -442,16 +441,8 @@ for (int i = 0; i < ivs.length; i++) { - if (ivs[i] != null) { - - ivs[i].encode(keyBuilder); - - } else { - - NullIV.INSTANCE.encode(keyBuilder); - - } - + IVUtility.encode(keyBuilder, ivs[i]); + } return keyBuilder.getKey(); Modified: branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/AbstractIV.java =================================================================== --- branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/AbstractIV.java 2010-07-26 14:24:18 UTC (rev 3288) +++ branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/AbstractIV.java 2010-07-26 15:13:46 UTC (rev 3289) @@ -603,8 +603,7 @@ switch (dte) { case XSDInt: - final int i = ((NumericBNodeIV) this).getInlineValue().intValue(); - keyBuilder.append(i); + keyBuilder.append(((Integer) getInlineValue()).intValue()); break; case UUID: keyBuilder.append((UUID) getInlineValue()); Modified: branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/AbstractInlineIV.java =================================================================== --- branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/AbstractInlineIV.java 2010-07-26 14:24:18 UTC (rev 3288) +++ branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/AbstractInlineIV.java 2010-07-26 15:13:46 UTC (rev 3289) @@ -83,13 +83,6 @@ } /** - * Always returns <code>false</code> since the value is inline. - */ - final public boolean isNull() { - return false; - } - - /** * No term identifier for an inline IV - throws an exception. */ final public long getTermId() { Modified: branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/IV.java =================================================================== --- branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/IV.java 2010-07-26 14:24:18 UTC (rev 3288) +++ branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/IV.java 2010-07-26 15:13:46 UTC (rev 3289) @@ -128,14 +128,6 @@ boolean isTermId(); /** - * <code>true</code> iff the RDF value is a term identifier whose value is - * <code>0L</code>. - * - * @see #isTermId() - */ - boolean isNull(); - - /** * Return the term identifier. * * @return The term identifier. Modified: branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/IVUtility.java =================================================================== --- branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/IVUtility.java 2010-07-26 14:24:18 UTC (rev 3288) +++ branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/IVUtility.java 2010-07-26 15:13:46 UTC (rev 3289) @@ -31,6 +31,7 @@ import java.math.BigInteger; import java.util.ArrayList; import java.util.UUID; +import com.bigdata.btree.keys.IKeyBuilder; import com.bigdata.btree.keys.KeyBuilder; import com.bigdata.rawstore.Bytes; import com.bigdata.rdf.internal.constraints.AbstractInlineConstraint; @@ -162,6 +163,33 @@ } /** + * Encode an RDF value into a key for one of the statement indices. Handles + * null {@link IV} references gracefully. + * + * @param keyBuilder + * The key builder. + * @param iv + * The internal value (can be <code>null</code>). + * + * @return The key builder. + */ + public static IKeyBuilder encode(final IKeyBuilder keyBuilder, final IV iv) { + + if (iv == null) { + + NullIV.INSTANCE.encode(keyBuilder); + + } else { + + iv.encode(keyBuilder); + + } + + return keyBuilder; + + } + + /** * Decode an {@link IV} from a byte[]. * * @param key @@ -262,13 +290,6 @@ final byte flags = KeyBuilder.decodeByte(key[o++]); -// /* -// * FIXME iNull does not work yet -// */ -// if (AbstractIV.isNull(flags)) -// return null; -// - /* * Handle a term identifier (versus an inline value). */ @@ -277,10 +298,6 @@ // decode the term identifier. final long termId = KeyBuilder.decodeLong(key, o); -// /* -// * FIXME this is here for now until -// * {@link AbstractInternalValue#isNull(byte)} works. -// */ if (termId == TermId.NULL) return null; else Modified: branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/NullIV.java =================================================================== --- branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/NullIV.java 2010-07-26 14:24:18 UTC (rev 3288) +++ branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/NullIV.java 2010-07-26 15:13:46 UTC (rev 3289) @@ -28,12 +28,7 @@ package com.bigdata.rdf.internal; -/** - * FIXME A null {@link IV} class used in cases where we want to encode and - * decode null in the key space. We really need to have a null option in the - * byte flags so we can avoid this class altogether. - */ -public class NullIV extends TermId { +class NullIV extends TermId { private static final long serialVersionUID = -214758033769962923L; Modified: branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/TermId.java =================================================================== --- branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/TermId.java 2010-07-26 14:24:18 UTC (rev 3288) +++ branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/TermId.java 2010-07-26 15:13:46 UTC (rev 3289) @@ -23,6 +23,8 @@ */ package com.bigdata.rdf.internal; +import java.util.UUID; +import com.bigdata.btree.keys.IKeyBuilder; import com.bigdata.rawstore.Bytes; import com.bigdata.rdf.model.BigdataValue; import com.bigdata.rdf.model.BigdataValueFactory; @@ -174,13 +176,6 @@ } /** - * Return <code>true</code> iff the term identifier is null. - */ - final public boolean isNull() { - return termId == NULL; - } - - /** * Note: only the termId matters for equality (unless we also have a * transient reference to the value factory which stands in as a proxy for * the KB instance). @@ -225,5 +220,22 @@ return termId < termId2 ? -1 : termId > termId2 ? 1 : 0; } + + /** + * {@inheritDoc} + */ + @Override + public IKeyBuilder encode(final IKeyBuilder keyBuilder) { + + // First emit the flags byte. + keyBuilder.append(flags()); + + keyBuilder.append(getTermId()); + + return keyBuilder; + + } + + } Modified: branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOKeyOrder.java =================================================================== --- branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOKeyOrder.java 2010-07-26 14:24:18 UTC (rev 3288) +++ branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOKeyOrder.java 2010-07-26 15:13:46 UTC (rev 3289) @@ -46,7 +46,6 @@ import com.bigdata.rdf.internal.DTE; import com.bigdata.rdf.internal.IV; import com.bigdata.rdf.internal.IVUtility; -import com.bigdata.rdf.internal.NullIV; import com.bigdata.rdf.internal.TermId; import com.bigdata.rdf.internal.UUIDLiteralIV; import com.bigdata.rdf.internal.VTE; @@ -515,7 +514,7 @@ IV iv = spo.get(a[i]); - encodeKey(keyBuilder, iv); + IVUtility.encode(keyBuilder, iv); } @@ -524,37 +523,6 @@ } /** - * Encode an RDF value into a key for one of the statement indices. - * - * @param keyBuilder - * The key builder. - * @param iv - * The RDF value. - * - * @return The key builder. - */ - private void encodeKey(final IKeyBuilder keyBuilder, final IV iv) { - - if (iv == null) { - - /* - * FIXME justifications use null IVs to represent wildcards. we - * use a fake TermId object to simulate this since we have no way - * of encoding null into the byte flags yet. - */ - NullIV.INSTANCE.encode(keyBuilder); - - return; - - } else { - - iv.encode(keyBuilder); - - } - - } - - /** * Decode the key into an {@link SPO}. The {@link StatementEnum} and the * optional SID will not be decoded, since it is carried in the B+Tree * value. However, if the {@link SPOKeyOrder} is a quad order then the Modified: branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/test/com/bigdata/rdf/internal/TestEncodeDecodeKeys.java =================================================================== --- branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/test/com/bigdata/rdf/internal/TestEncodeDecodeKeys.java 2010-07-26 14:24:18 UTC (rev 3288) +++ branches/LEXICON_REFACTOR_BRANCH/bigdata-rdf/src/test/com/bigdata/rdf/internal/TestEncodeDecodeKeys.java 2010-07-26 15:13:46 UTC (rev 3289) @@ -164,12 +164,6 @@ assertFalse(v.isInline()); - if (termId == 0L) { - assertTrue(v.toString(), v.isNull()); - } else { - assertFalse(v.toString(), v.isNull()); - } - assertEquals(termId, v.getTermId()); try { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |