package com.bigdata.rdf.internal;
import com.bigdata.rdf.internal.impl.literal.AbstractLiteralIV;
import com.bigdata.rdf.model.BigdataLiteral;
/**
*
* Inline URI Handler to handle URI's in the form of a UUID with a prefix and a suffix such as:
*
* <pre>
* http://blazegraph.com/element/prefix_1ae004cf-0f48-469f-8a94-01339afaec41_SUFFIX
* </pre>
*
* {@link https://jira.blazegraph.com/browse/BLZG-1937}
*
* @author beebs
*
*/
public class InlinePrefixedSuffixedUUIDURIHandler extends InlineUUIDURIHandler {
private String prefix;
private String suffix;
public InlinePrefixedSuffixedUUIDURIHandler(final String namespace, final String prefix, final String suffix) {
super(namespace);
this.prefix = prefix;
this.suffix = suffix;
}
@SuppressWarnings("rawtypes")
protected AbstractLiteralIV createInlineIV(final String localName) {
if(localName.startsWith(prefix) && localName.endsWith(suffix)) {
final String l2 = localName.substring(this.prefix.length(), localName.length() - this.suffix.length());
return super.createInlineIV(l2);
}
return null; //fall through
}
@Override
public String getLocalNameFromDelegate(
AbstractLiteralIV<BigdataLiteral, ?> delegate) {
final String localName = prefix + super.getLocalNameFromDelegate(delegate)
+ suffix;
return localName;
}
}