Freemarker dataGetter directive
Mentioned in VIVO GitHub issue
What does this pull request do?
Adds new Freemarker directive to execute DataGetters with provided parameters and save results as Freemarker variables.
What's new?
- Added new directive to FreemarkerConfiguration
- Fixed substitutions in SparqlQueryDataGetter
- New data properties to specify types of substituted variables
- Added more tests for SparqlQueryDataGetter
- Removed unreachable case in DataGetterBase
- Removed SparqlQueryDataGetterTest.java from checkstyle suppressions
How should this be tested?
SparqlQueryDataGetter improvements covered by tests. New directive could be tested by calling test data getter in Freemarker template:
<@dataGetter uri = "test:dataGetter" var = "labels" parameters = {"object": "http://purl.org/ontology/bibo/AcademicArticle"} />
<#if labels?has_content><p>Label returned by data getter: ${labels[0].label}</p></#if>
Data getter configuration:
<test:dataGetter>
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter> ;
display:saveToVar "result" ;
display:uri "object";
display:query """
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?label
WHERE {
?object rdfs:label ?label .
} LIMIT 1
""" .
Interested parties
@VIVO-project/vivo-committers