<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://royal-family.bitplan.com/index.php?action=history&amp;feed=atom&amp;title=Concept%3AFixme%2FJava</id>
	<title>Concept:Fixme/Java - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://royal-family.bitplan.com/index.php?action=history&amp;feed=atom&amp;title=Concept%3AFixme%2FJava"/>
	<link rel="alternate" type="text/html" href="http://royal-family.bitplan.com/index.php?title=Concept:Fixme/Java&amp;action=history"/>
	<updated>2026-04-20T03:46:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.5</generator>
	<entry>
		<id>http://royal-family.bitplan.com/index.php?title=Concept:Fixme/Java&amp;diff=295&amp;oldid=prev</id>
		<title>Wf: created by WikiTask 2017-10-03T18:44:51Z</title>
		<link rel="alternate" type="text/html" href="http://royal-family.bitplan.com/index.php?title=Concept:Fixme/Java&amp;diff=295&amp;oldid=prev"/>
		<updated>2017-10-03T18:44:51Z</updated>

		<summary type="html">&lt;p&gt;created by WikiTask 2017-10-03T18:44:51Z&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== java code ===&lt;br /&gt;
&amp;lt;source lang='java' id='javacode'&amp;gt;@// This is a rythm template&lt;br /&gt;
@// the args are the standard wikiTask arguments&lt;br /&gt;
@import org.sidif.triple.TripleQuery&lt;br /&gt;
@import org.sidif.triple.Triple&lt;br /&gt;
@import com.alibaba.fastjson.JSON&lt;br /&gt;
@args() {&lt;br /&gt;
  String title &lt;br /&gt;
  String logo&lt;br /&gt;
  org.sidif.wiki.WikiTask wikiTask&lt;br /&gt;
  org.sidif.triple.TripleStore tripleStore&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@def static {&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * Base class&lt;br /&gt;
   */&lt;br /&gt;
  static abstract class TopicBase {&lt;br /&gt;
    // each Topic has a pageid - for non subobject thats the pagename&lt;br /&gt;
    public String pageid;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * get a WikiSon version of the given name value&lt;br /&gt;
     * &lt;br /&gt;
     * @param name&lt;br /&gt;
     * @param value&lt;br /&gt;
     * @return - the string representation&lt;br /&gt;
     */&lt;br /&gt;
    public String toWikiSon(String name, String value) {&lt;br /&gt;
      String result = &amp;quot;&amp;lt;!-- &amp;quot; + name + &amp;quot; is null--&amp;gt;\n&amp;quot;;&lt;br /&gt;
      if (value != null)&lt;br /&gt;
        result = &amp;quot;|&amp;quot; + name + &amp;quot;=&amp;quot; + value + &amp;quot;\n&amp;quot;;&lt;br /&gt;
      return result;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * get the propertySidif of the given property&lt;br /&gt;
     * &lt;br /&gt;
     * @param name&lt;br /&gt;
     * @param value&lt;br /&gt;
     * @return&lt;br /&gt;
     */&lt;br /&gt;
    public static String propertySiDIF(String name, String value, String type) {&lt;br /&gt;
      // default is an empty string - no property line for emtpy values&lt;br /&gt;
      String result = &amp;quot;&amp;quot;;&lt;br /&gt;
      // if the value is not empty&lt;br /&gt;
      if ((value != null) &amp;amp;&amp;amp; (!(&amp;quot;&amp;quot;.equals(value.trim())))) {&lt;br /&gt;
        // do we need to quote the result?&lt;br /&gt;
        String quote = &amp;quot;&amp;quot;;&lt;br /&gt;
        // this depends on the Type&lt;br /&gt;
        if (&amp;quot;Text&amp;quot;.equals(type)) {&lt;br /&gt;
          quote = &amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        // create a SIDIF Property line like&lt;br /&gt;
        // &amp;quot;John&amp;quot; is lastname of it&lt;br /&gt;
        result += quote + value + quote + &amp;quot; is &amp;quot; + name + &amp;quot; of it\n&amp;quot;;&lt;br /&gt;
      }&lt;br /&gt;
      // return the SiDIF property line&lt;br /&gt;
      return result;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * get me as a String&lt;br /&gt;
     * &lt;br /&gt;
     * @param name&lt;br /&gt;
     * @param value&lt;br /&gt;
     * @return&lt;br /&gt;
     */&lt;br /&gt;
    public static String propertySiDIF(String name, String value) {&lt;br /&gt;
      String result = propertySiDIF(name, value, &amp;quot;Text&amp;quot;);&lt;br /&gt;
      return result;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * check if the given boolean String value is true&lt;br /&gt;
     * &lt;br /&gt;
     * @param value&lt;br /&gt;
     * @return true if the value is not null and has true/TRUE as it's string&lt;br /&gt;
     *         content&lt;br /&gt;
     */&lt;br /&gt;
    public boolean isTrue(String value) {&lt;br /&gt;
      boolean result = false;&lt;br /&gt;
      if (value != null &amp;amp;&amp;amp; value.toLowerCase().equals(&amp;quot;true&amp;quot;)) {&lt;br /&gt;
        result = true;&lt;br /&gt;
      }&lt;br /&gt;
      return result;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * initialize&lt;br /&gt;
     */&lt;br /&gt;
    public void init(TripleQuery query) {&lt;br /&gt;
    }&lt;br /&gt;
  } // TopicBase&lt;br /&gt;
 /**&lt;br /&gt;
  * Fixme&lt;br /&gt;
  * I mark something that needs to be fixed optionally with what needs to be done&lt;br /&gt;
  */&lt;br /&gt;
  public static class Fixme extends TopicBase {&lt;br /&gt;
  &lt;br /&gt;
    public String done;&lt;br /&gt;
    public String todo;&lt;br /&gt;
&lt;br /&gt;
    public String getDone() { return done; }&lt;br /&gt;
    public void setDone(String pDone) { done=pDone; }&lt;br /&gt;
    public String getTodo() { return todo; }&lt;br /&gt;
    public void setTodo(String pTodo) { todo=pTodo; }&lt;br /&gt;
    /**&lt;br /&gt;
     * convert this Fixme to a JSON string&lt;br /&gt;
     */&lt;br /&gt;
    public String toJson() { return JSON.toJSONString(this); }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * convert this Fixme to a WikiSon string&lt;br /&gt;
     */&lt;br /&gt;
    public String toWikiSon() {&lt;br /&gt;
      String wikison= &amp;quot;{{Fixme\n&amp;quot;;&lt;br /&gt;
      wikison+=toWikiSon(&amp;quot;done&amp;quot;,done);&lt;br /&gt;
      wikison+=toWikiSon(&amp;quot;todo&amp;quot;,todo);&lt;br /&gt;
      wikison+=&amp;quot;}}\n&amp;quot;;&lt;br /&gt;
      return wikison;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    /**  &lt;br /&gt;
     * get the pageid for this topic&lt;br /&gt;
     */&lt;br /&gt;
    public String getPageid() { return pageid; };&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * default constructor for Fixme&lt;br /&gt;
     */&lt;br /&gt;
    public Fixme() {}&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * construct a Fixme from the given Triple&lt;br /&gt;
     * @param query - the TripleQuery to get the triples from&lt;br /&gt;
     * @param pFixmeTriple - the triple to construct me from&lt;br /&gt;
     */&lt;br /&gt;
    public Fixme(TripleQuery query,Triple pFixmeTriple) {&lt;br /&gt;
      this(query,pFixmeTriple.getSubject().toString());&lt;br /&gt;
    } // constructor&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * construct a Fixme from the given pageId&lt;br /&gt;
     * @param query - the TripleQuery to get the triples from&lt;br /&gt;
     * @param pageid - pageid&lt;br /&gt;
     */&lt;br /&gt;
    public Fixme(TripleQuery query,String pageid) {&lt;br /&gt;
      this.pageid=pageid;&lt;br /&gt;
      Triple doneTriple=query.selectSingle(pageid,&amp;quot;done&amp;quot;,null);&lt;br /&gt;
      if (doneTriple==null)&lt;br /&gt;
        doneTriple=query.selectSingle(pageid,&amp;quot;Property:Fixme_done&amp;quot;,null);&lt;br /&gt;
      if (doneTriple!=null) &lt;br /&gt;
        done=doneTriple.getObject().toString();&lt;br /&gt;
      Triple todoTriple=query.selectSingle(pageid,&amp;quot;todo&amp;quot;,null);&lt;br /&gt;
      if (todoTriple==null)&lt;br /&gt;
        todoTriple=query.selectSingle(pageid,&amp;quot;Property:Fixme_todo&amp;quot;,null);&lt;br /&gt;
      if (todoTriple!=null) &lt;br /&gt;
        todo=todoTriple.getObject().toString();&lt;br /&gt;
      init(query);&lt;br /&gt;
    } // constructor for Fixme&lt;br /&gt;
    &lt;br /&gt;
    // &amp;gt;&amp;gt;&amp;gt;{user defined topic code}{Fixme}{Fixme}&lt;br /&gt;
    // &amp;lt;&amp;lt;&amp;lt;{user defined topic code}{Fixme}{Fixme}&lt;br /&gt;
  } // class Fixme&lt;br /&gt;
  /**&lt;br /&gt;
   * Manager for Fixme&lt;br /&gt;
   */&lt;br /&gt;
  public static class FixmeManager extends TopicBase {&lt;br /&gt;
 &lt;br /&gt;
    public String topicName=&amp;quot;Fixme&amp;quot;;&lt;br /&gt;
    public transient List&amp;lt;Fixme&amp;gt; mFixmes=new ArrayList&amp;lt;Fixme&amp;gt;();&lt;br /&gt;
    public transient Map&amp;lt;String,Fixme&amp;gt; mFixmeMap=new LinkedHashMap&amp;lt;String,Fixme&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * get my Fixmes&lt;br /&gt;
     */&lt;br /&gt;
    public List&amp;lt;Fixme&amp;gt; getFixmes() {&lt;br /&gt;
      List&amp;lt;Fixme&amp;gt; result=this.mFixmes;&lt;br /&gt;
      return result;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     *  add a new Fixme &lt;br /&gt;
     */&lt;br /&gt;
    public Fixme add(Fixme pFixme) {&lt;br /&gt;
      mFixmes.add(pFixme);&lt;br /&gt;
      mFixmeMap.put(pFixme.getPageid(),pFixme);&lt;br /&gt;
      return pFixme;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     *  add a new Fixme from the given triple&lt;br /&gt;
     */&lt;br /&gt;
    public Fixme add(TripleQuery query,Triple pFixmeTriple) {&lt;br /&gt;
      Fixme lFixme=new Fixme(query,pFixmeTriple);&lt;br /&gt;
      add(lFixme);&lt;br /&gt;
      return lFixme;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // reinitialize my mFixme map&lt;br /&gt;
    public void reinit() {&lt;br /&gt;
      mFixmeMap.clear();&lt;br /&gt;
      for (Fixme lFixme:mFixmes) {&lt;br /&gt;
        mFixmeMap.put(lFixme.getPageid(),lFixme);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // convert this manager to json format &lt;br /&gt;
    public String toJson() { return JSON.toJSONString(this); }&lt;br /&gt;
    &lt;br /&gt;
    // get a new manager from the given json string&lt;br /&gt;
    public static FixmeManager fromJson(String json) {&lt;br /&gt;
      FixmeManager result=JSON.parseObject(json, FixmeManager.class);&lt;br /&gt;
      result.reinit();&lt;br /&gt;
      return result;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // default constructor for Fixme Manager&lt;br /&gt;
    public FixmeManager() {}&lt;br /&gt;
&lt;br /&gt;
    // add Fixmes from the given query&lt;br /&gt;
    public void addFixmes(TripleQuery pFixmeQuery,TripleQuery query) {&lt;br /&gt;
      if (pFixmeQuery!=null) {&lt;br /&gt;
        for (Triple lFixmeTriple:pFixmeQuery.getTriples()) {&lt;br /&gt;
          add(query,lFixmeTriple);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // construct me from the given triple Query query&lt;br /&gt;
    public FixmeManager(TripleQuery query) {&lt;br /&gt;
      // first query the SiDIF bases triplestore&lt;br /&gt;
      TripleQuery lFixmeQuery=query.query(null,&amp;quot;isA&amp;quot;,&amp;quot;Fixme&amp;quot;);&lt;br /&gt;
      addFixmes(lFixmeQuery,query);&lt;br /&gt;
      // then the SMW triplestore&lt;br /&gt;
      lFixmeQuery=query.query(null,&amp;quot;Property:IsA&amp;quot;,&amp;quot;Fixme&amp;quot;);&lt;br /&gt;
      addFixmes(lFixmeQuery,query);&lt;br /&gt;
      init(query);&lt;br /&gt;
    } // constructor for Fixme Manager&lt;br /&gt;
    &lt;br /&gt;
    // &amp;gt;&amp;gt;&amp;gt;{user defined topicmanager code}{Fixme}{Fixme}&lt;br /&gt;
    // &amp;lt;&amp;lt;&amp;lt;{user defined topicmanager code}{Fixme}{Fixme}&lt;br /&gt;
  } // class Fixme Manager&lt;br /&gt;
&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Wf</name></author>
	</entry>
</feed>