blob: a232c447b398df1f1df6c63ee80b555f008512a4 [file] [log] [blame]
package org.apache.rya.indexing.accumulo.freetext;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import java.nio.ByteBuffer;
import java.nio.charset.CharacterCodingException;
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.io.Text;
import org.apache.rya.indexing.StatementSerializer;
import org.eclipse.rdf4j.model.Statement;
/**
* Row ID: shardId
* <p>
* CF: CF Prefix + Term
*/
public class ColumnPrefixes {
public static final Text DOCS_CF_PREFIX = new Text("d\0");
public static final Text TERM_CF_PREFIX = new Text("t\0");
public static final Text TERM_LIST_CF_PREFIX = new Text("l\0");
public static final Text REVERSE_TERM_LIST_CF_PREFIX = new Text("r\0");
public static final Text SUBJECT_CF_PREFIX = new Text("s\0");
public static final Text PREDICATE_CF_PREFIX = new Text("p\0");
public static final Text OBJECT_CF_PREFIX = new Text("o\0");
public static final Text CONTEXT_CF_PREFIX = new Text("c\0");
private static Text concat(Text prefix, String str) {
Text temp = new Text(prefix);
try {
ByteBuffer buffer = Text.encode(str, false);
temp.append(buffer.array(), 0, buffer.limit());
} catch (CharacterCodingException cce) {
throw new IllegalArgumentException(cce);
}
return temp;
}
public static Text getTermColFam(String term) {
return concat(TERM_CF_PREFIX, term);
}
public static Text getTermListColFam(String term) {
return concat(TERM_LIST_CF_PREFIX, term);
}
public static Text getRevTermListColFam(String term) {
return concat(REVERSE_TERM_LIST_CF_PREFIX, StringUtils.reverse(term));
}
public static Text getDocColFam(String term) {
return concat(DOCS_CF_PREFIX, term);
}
public static Text getSubjColFam(String term) {
return concat(SUBJECT_CF_PREFIX, term);
}
public static Text getSubjColFam(Statement statement) {
String subj = StatementSerializer.writeSubject(statement);
return getSubjColFam(subj);
}
public static Text getPredColFam(String term) {
return concat(PREDICATE_CF_PREFIX, term);
}
public static Text getPredColFam(Statement statement) {
String pred = StatementSerializer.writePredicate(statement);
return getPredColFam(pred);
}
public static Text getObjColFam(String term) {
return concat(OBJECT_CF_PREFIX, term);
}
public static Text getObjColFam(Statement statement) {
String obj = StatementSerializer.writeObject(statement);
return getObjColFam(obj);
}
public static Text getContextColFam(String term) {
return concat(CONTEXT_CF_PREFIX, term);
}
public static Text getContextColFam(Statement statement) {
String cont = StatementSerializer.writeContext(statement);
return getContextColFam(cont);
}
public static Text removePrefix(Text termWithPrefix) {
Text temp = new Text();
temp.set(termWithPrefix.getBytes(), 2, termWithPrefix.getLength() - 2);
return temp;
}
}