InstanceDefault.java

package org.linkedopenactors.rdfpub.domain.commonsrdf;

import java.net.URL;

import org.apache.commons.rdf.api.Graph;
import org.apache.commons.rdf.api.IRI;
import org.apache.commons.rdf.api.RDF;
import org.linkedopenactors.rdfpub.domain.commonsrdf.vocab.LDP;
import org.linkedopenactors.rdfpub.domain.commonsrdf.vocab.Rdf;
import org.linkedopenactors.rdfpub.domain.commonsrdf.vocab.Vocabularies;

public class InstanceDefault extends ActorDefault implements Instance {

	private InstanceProperties instanceProperties;
	private org.linkedopenactors.rdfpub.domain.commonsrdf.vocab.AS as;
	private LDP ldp;
	private Rdf rdfVocab;
	private org.linkedopenactors.rdfpub.domain.commonsrdf.vocab.RDFPUB rdfpub;

	public InstanceDefault(RDF rdf, IRI subject, Graph graph, GraphToStringConverter graphToStringConverter, 
			SubjectProvider subjectProvider, Vocabularies vocabularies, InstanceProperties instanceProperties) {
		super(rdf, subject, graph, graphToStringConverter, subjectProvider, vocabularies, instanceProperties);
		this.instanceProperties = instanceProperties;		
		as = vocabularies.getActivityStreams();
		ldp = vocabularies.getLDP();
		rdfVocab = vocabularies.getRdf();
		rdfpub = vocabularies.getRdfPub();
	}
	
	@Override
	public URL getDomain() {
		return instanceProperties.getInstanceDomain();
	}

	@Override
	public IRI getCollectionInbox() {
		return getIri(ldp.inbox()).orElseThrow();
	}

	@Override
	public IRI getCollectionOutbox() {
		return getIri(as.outbox()).orElseThrow();
	}

	@Override
	public IRI getCollectionPublic() {
		return getIri(as.Public()).orElseThrow();
	}

	@Override
	public String getAppVersion() {
		return instanceProperties.getMavenVersion();
	}

	@Override
	public Long getProfileVersion() {
		return 0L;
	}

	@Override
	public String getIdentifier() {
		throw new UnsupportedOperationException();
	}

	@Override
	public IRI getPublicSparqlEndpoint() {
		throw new UnsupportedOperationException();
	}

	@Override
	public void setType(IRI id) {
		set(rdfVocab.type(), id);
		
	}

	@Override
	public void setInboxCollection(IRI inboxCollection) {
		set(ldp.inbox(), inboxCollection);		
	}

	@Override
	public void setOutboxCollection(IRI outboxCollection) {
		set(as.outbox(), outboxCollection);
	}

	@Override
	public void setPublicCollection(IRI publicCollection) {
		set(as.Public(), publicCollection);
	}

	@Override
	public void setInstanceVersion(String mavenVersion) {
		set(rdfpub.version(), rdf.createLiteral(mavenVersion));		
	}

	@Override
	public void setCommitId(String commitId) {
		set(rdfpub.commitId(), rdf.createLiteral(commitId));		
	}

	@Override
	public void setPublicSparqlEndpoint(IRI sparqlPublic) {
		// TODO Auto-generated method stub
		
	}
}