diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/IndividualTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/IndividualTemplateModel.java index 9e3356aaf..e2abbeec6 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/IndividualTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/IndividualTemplateModel.java @@ -16,6 +16,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.ParamMap; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Route; +import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; import edu.cornell.mannlib.vitro.webapp.web.ViewFinder; import edu.cornell.mannlib.vitro.webapp.web.ViewFinder.ClassView; @@ -57,13 +58,20 @@ public class IndividualTemplateModel extends BaseTemplateModel { URI uri = new URIImpl(individualUri); String namespace = uri.getNamespace(); - String defaultNamespace = vreq.getWebappDaoFactory().getDefaultNamespace(); - + WebappDaoFactory wadf = vreq.getWebappDaoFactory(); + String defaultNamespace = wadf.getDefaultNamespace(); + if (defaultNamespace.equals(namespace)) { profileUrl = getUrl(PATH + "/" + individual.getLocalName()); } else { - ParamMap params = new ParamMap("uri", individualUri); - profileUrl = getUrl("/individual", params); + List externallyLinkedNamespaces = wadf.getApplicationDao().getExternallyLinkedNamespaces(); + if (externallyLinkedNamespaces.contains(namespace)) { + log.debug("Found externally linked namespace " + namespace); + profileUrl = namespace + "/" + individual.getLocalName(); + } else { + ParamMap params = new ParamMap("uri", individualUri); + profileUrl = getUrl("/individual", params); + } } return profileUrl; @@ -188,6 +196,10 @@ public class IndividualTemplateModel extends BaseTemplateModel { } return models; } + + private boolean isExternallyLinkedNamespace(String namespace,List externallyLinkedNamespaces) { + return externallyLinkedNamespaces.contains(namespace); + } // public Map< > getPropertyList