Example Native Interface
A simple application that shows the public timeline of Twitter using Twitter4J. Example project code is available here
Screenshot of result:
Project files:
WebDSL application with native class interface declaration:
application exampleapp
define page root() {
output(TwitterReader.read(null,null))
}
native class nativejava.TwitterReader as TwitterReader {
static read(String,String):List<String>
}
Implementation of TwitterReader.java:
package nativejava;
import java.util.*;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
public class TwitterReader{
public static List<String> read(String twitterID,String twitterPassword){
//The factory instance is re-useable and thread safe.
Twitter twitter = new TwitterFactory().getInstance(twitterID,twitterPassword);
List<String> result = new LinkedList<String>();
List<Status> statuses;
try {
statuses = twitter.getPublicTimeline();
for (Status status : statuses) {
result.add(status.getUser().getName() + ":" + status.getText());
}
} catch (TwitterException e) {
e.printStackTrace();
}
return result;
}
}
