
edu.stanford.protege.webprotege.mansyntax.render.DefaultHttpLinkRenderer Maven / Gradle / Ivy
The newest version!
package edu.stanford.protege.webprotege.mansyntax.render;
import org.semanticweb.owlapi.model.OWLLiteral;
import javax.inject.Inject;
import java.util.ArrayList;
import java.util.List;
/**
* @author Matthew Horridge,
* Stanford University,
* Bio-Medical Informatics Research Group
* Date: 21/02/2014
*/
public class DefaultHttpLinkRenderer implements HttpLinkRenderer {
private final List pluginList = new ArrayList<>();
@Inject
public DefaultHttpLinkRenderer() {
pluginList.add(new WikipediaXRefLinkRenderer());
pluginList.add(new ImageLinkRenderer());
pluginList.add(new PlainLinkRenderer());
}
@Override
public boolean isLink(OWLLiteral literal) {
String normalisedLiteral = literal.getLiteral().toLowerCase();
for(LinkRendererPlugin plugin : pluginList) {
if(plugin.isRenderableAsLink(normalisedLiteral)) {
return true;
}
}
return false;
}
@Override
public void renderLink(String link, StringBuilder builder) {
String normalisedLiteral = link.toLowerCase();
for(LinkRendererPlugin plugin : pluginList) {
if(plugin.isRenderableAsLink(normalisedLiteral)) {
LinkInfo linkInfo = plugin.renderLink(link);
renderPlainLink(linkInfo.getLinkAddress(), linkInfo.getLinkContent(), builder);
return;
}
}
}
private boolean isWikipediaXRef(String link) {
return link.toLowerCase().startsWith("wikipedia:");
}
private boolean isImage(String link) {
String normalisedLink = link.toLowerCase();
return normalisedLink.endsWith(".png") || normalisedLink.endsWith("jpg") || normalisedLink.endsWith(".svg");
}
private void renderWikipediaXref(String link, StringBuilder builder) {
renderPlainLink("http://en.wikipedia.org/wiki/" + link.substring("wikipedia:".length()), link, builder);
}
private void renderImage(String link, StringBuilder builder) {
builder.append("");
builder.append("");
builder.append("
");
builder.append("");
builder.append("");
}
private void renderPlainLink(String link, String display, StringBuilder builder) {
builder.append("");
builder.append("");
builder.append(display);
builder.append("");
builder.append("");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy