org.eclipse.rdf4j.sail.nativerdf.model.NativeLiteral Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rdf4j-sail-nativerdf Show documentation
Show all versions of rdf4j-sail-nativerdf Show documentation
Sail implementation that stores data directly to disk in dedicated file formats.
/*******************************************************************************
* Copyright (c) 2015 Eclipse RDF4J contributors, Aduna, and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Distribution License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*******************************************************************************/
package org.eclipse.rdf4j.sail.nativerdf.model;
import org.eclipse.rdf4j.model.IRI;
import org.eclipse.rdf4j.model.impl.SimpleLiteral;
import org.eclipse.rdf4j.sail.nativerdf.ValueStoreRevision;
public class NativeLiteral extends SimpleLiteral implements NativeValue {
/*-----------*
* Constants *
*-----------*/
private static final long serialVersionUID = 5198968663650168819L;
/*----------*
* Variable *
*----------*/
private volatile ValueStoreRevision revision;
private volatile int internalID;
/*--------------*
* Constructors *
*--------------*/
protected NativeLiteral(ValueStoreRevision revision, int internalID) {
super();
setInternalID(internalID, revision);
}
public NativeLiteral(ValueStoreRevision revision, String label) {
this(revision, label, UNKNOWN_ID);
}
public NativeLiteral(ValueStoreRevision revision, String label, int internalID) {
super(label);
setInternalID(internalID, revision);
}
public NativeLiteral(ValueStoreRevision revision, String label, String lang) {
this(revision, label, lang, UNKNOWN_ID);
}
public NativeLiteral(ValueStoreRevision revision, String label, String lang, int internalID) {
super(label, lang);
setInternalID(internalID, revision);
}
public NativeLiteral(ValueStoreRevision revision, String label, IRI datatype) {
this(revision, label, datatype, UNKNOWN_ID);
}
public NativeLiteral(ValueStoreRevision revision, String label, IRI datatype, int internalID) {
super(label, datatype);
setInternalID(internalID, revision);
}
/*---------*
* Methods *
*---------*/
@Override
public void setInternalID(int internalID, ValueStoreRevision revision) {
this.internalID = internalID;
this.revision = revision;
}
@Override
public ValueStoreRevision getValueStoreRevision() {
return revision;
}
@Override
public int getInternalID() {
return internalID;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o instanceof NativeLiteral && internalID != NativeValue.UNKNOWN_ID) {
NativeLiteral otherNativeLiteral = (NativeLiteral) o;
if (otherNativeLiteral.internalID != NativeValue.UNKNOWN_ID
&& revision.equals(otherNativeLiteral.revision)) {
// NativeLiteral's from the same revision of the same native store,
// with both ID's set
return internalID == otherNativeLiteral.internalID;
}
}
return super.equals(o);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy