@// This is a rythm template
@import org.sidif.triple.TripleQuery
@import org.sidif.triple.Triple
@import org.sidif.wiki.SSLWiki
@import com.bitplan.topic.ContextSetting.TripleStoreMode
@import com.alibaba.fastjson.JSON
@import com.bitplan.mediawiki.japi.MediawikiApi
@import com.bitplan.mediawiki.japi.Mediawiki
@import com.bitplan.mediawiki.japi.api.Api
@include(wiki.PersonJava.Code)
@args() {
String title
String logo
org.sidif.wiki.WikiTask wikiTask
org.sidif.triple.TripleStore tripleStore
}
@// get the Stacktrace
@def getStackTrace(Throwable th) {
@{
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
th.printStackTrace(pw);
String sStackTrace = sw.toString();
}
@(sStackTrace)
}
@// handle error
@def handleError(Throwable th) {
<span style='color:red'>Error: @(th.getClass().getName()): @(th.getMessage())</span>
=== stacktrace ===
<pre>
@getStackTrace(th)
</pre>
}
@// create the given person
@def createPerson(Person p) {
# [[@(p.getName())]]
@{
Throwable error=null;
try {
String pageTitle=p.getName();
SSLWiki wiki=(SSLWiki)wikiTask.getWiki();
String pageContent=p.toWikiSon();
String summary="generated by GenerateRoyalPages at "+wiki.getIsoTimeStamp();
wiki.edit(pageTitle,pageContent,summary);
} catch (Throwable th) {
error=th;
}
}
@if (error) {
@handleError(error)
}
}
@{
TripleQuery query=tripleStore.query();
PersonManager pm=new PersonManager(query);
FamilyManager fm=new FamilyManager(query);
int pCount=0;
int pMax=3;
//Triple contextTriple=query.selectSingle(null,"isA","Context");
//String contextName=contextTriple.getSubject().toString();
//Triple sidifTriple=query.selectSingle(contextName,"sidif", null);
//String contextSidif=sidifTriple.getObject().toString();
}
@(wikiTask.getWiki().getIsoTimeStamp())
*@(query.size()) triples found
*@(pm.getPersons().size()) persons found
*@(fm.getFamilies().size()) families found
@for (Person p:pm.getPersons()) {
@createPerson(p)
@{
pCount++;
if (pCount>=pMax) {
break;
}
}
}