SDA SE Wiki

Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
research:jtransformer:developers [2012/01/13 09:31]
fabian.noth created
research:jtransformer:developers [2018/05/09 01:59] (current)
Line 1: Line 1:
 +<​note>​Work in Progress</​note>​
  
 +Bei den Dependencies in deinem Plugin müssen mindestens
 +"​org.cs3.jtransformer"​ und "​org.eclipse.core.resources"​ auftauchen. Um
 +dann an einen Prolog Prozess zu kommen kannst du die Methode
 +
 +JTUtils.getPrologInterface(IProject)
 +oder
 +JTUtils.getPrologInterface(String)
 +
 +benutzen, wobei du in der zweiten Methode den Namen der Faktenbasis
 +(standardmäßig der Name des Projektes) angibst.
 +
 +Du erhälst ein PrologInterface (pif) Objekt auf dem du jetzt deine Prolog
 +Anfragen ausführen kannst. Hierbei gibt es im Prinzip zwei Möglichkeiten:​
 +
 +queryOnce(String...) und queryAll(String...)
 +
 +Hier kannst du als Parameter einfach genau den Aufruf eintragen den du
 +sonst in die Prolog Konsole tippen würdest. Die Variablen die in dem
 +String auftauchen werden gebunden und in einer Map zurückgegeben. Für das
 +queryAll wird eine Liste von Maps zurückgegeben.
 +
 +Zusätzlich kannst du die Methode buildTerm (bzw. bT) aus der Klasse
 +QueryUtils benutzen um deinen Term auf schöne Art und Weise zusammen zu
 +bauen.
 +
 +Ein kleines Beispiel wie das alles zusammen dann aussehen könnte:
 +
 +<Code lang-java>​
 +public void showClassNameForId(String id) {
 +  PrologInterface pif = JTUtils.getPrologInterface("​test"​);​
 +
 +  if (pif != null && pif.isUp()) {
 +    try {
 +      String term = QueryUtils.bT("​classT",​ id, "​_",​ "​ClassName",​ "​_"​);​
 +      Map<​String,​ Object> result = pif.queryOnce(term);​
 +      // ohne bT: pif.queryOnce("​classT("​ + id + ", _, ClassName, _)");
 +
 +      System.out.println("​Name der Klasse:"​ + result.get("​ClassName"​));​
 +
 +    } catch (PrologInterfaceException e) {
 +      e.printStackTrace();​
 +    }
 +  }
 +}
 +</​Code>​

SEWiki, © 2019