public void changeLinkStatus(String linkId, LinkStatus newStatus) {
logger.debug("changing the status of link " + linkId + " to " + newStatus.name());
LabeledLink link = this.getLinkById(linkId);
if (link == null) {
if (newStatus == LinkStatus.ForcedByUser) {
Node source = this.getNodeById(LinkIdFactory.getLinkSourceId(linkId));
Node target = this.getNodeById(LinkIdFactory.getLinkTargetId(linkId));
String linkUri = LinkIdFactory.getLinkUri(linkId);
LabeledLink newLink;
if (linkUri.equalsIgnoreCase(Uris.RDFS_SUBCLASS_URI))
newLink = new SubClassLink(linkId);
else
newLink = new ObjectPropertyLink(linkId,
this.graphBuilder.getOntologyManager().getUriLabel(linkUri),
this.graphBuilder.getOntologyManager().getObjectPropertyType(source.getLabel().getUri(), target.getLabel().getUri(), linkUri));
newLink.setStatus(LinkStatus.ForcedByUser);
this.graphBuilder.addLink(source, target, newLink);
}
} else
this.graphBuilder.changeLinkStatus(link, newStatus);
}