package won.node.facet.impl;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.Resource;
import org.apache.jena.shared.PrefixMapping;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import won.protocol.exception.ConnectionAlreadyExistsException;
import won.protocol.exception.IllegalMessageForNeedStateException;
import won.protocol.exception.NoSuchNeedException;
import won.protocol.message.WonMessage;
import won.protocol.model.Connection;
import won.protocol.model.FacetType;
import won.protocol.util.RdfUtils;
import won.protocol.vocabulary.SIOC;
/**
* User: gabriel
* Date: 17/01/14
*/
public class CommentModeratedFacet extends AbstractFacet
{
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Override
public FacetType getFacetType() {
return FacetType.CommentModeratedFacet;
}
@Override
public void connectFromOwner(Connection con, Model content, WonMessage wonMessage) throws NoSuchNeedException, IllegalMessageForNeedStateException, ConnectionAlreadyExistsException {
super.connectFromOwner(con, content, wonMessage);
/* when connected change linked data*/
PrefixMapping prefixMapping = PrefixMapping.Factory.create();
prefixMapping.setNsPrefix(SIOC.getURI(),"sioc");
content.withDefaultMappings(prefixMapping);
content.setNsPrefix("sioc",SIOC.getURI());
Resource post = content.createResource(con.getConnectionURI() + "/p/", SIOC.POST);
content.add(content.createStatement(content.getResource(con.getConnectionURI().toString()), SIOC.HAS_REPLY,
content.getResource(con.getRemoteConnectionURI().toString())));
logger.debug(RdfUtils.toString(content));
con.getDatasetHolder().getDataset().setDefaultModel(content);
datasetHolderRepository.save(con.getDatasetHolder());
}
}