package org.openntf.domino.tests.ntf; import java.util.Set; import org.openntf.domino.Session; import org.openntf.domino.helpers.Formula; import org.openntf.domino.thread.DominoThread; import org.openntf.domino.utils.Factory; import org.openntf.domino.utils.Factory.SessionType; @SuppressWarnings("unused") public class DominoRunnable implements Runnable { public static void main(final String[] args) { DominoThread thread = new DominoThread(new DominoRunnable(), "My thread"); thread.start(); } public DominoRunnable() { // whatever you might want to do in your constructor, but stay away from Domino objects } @Override public void run() { Session session = Factory.getSession(SessionType.CURRENT); Formula formula = new Formula(); String source = "REM {the quick \"brown\" fox jumped};\r\n" + "REM {over the \"lazy\" dog};\r\n" + "DEFAULT defVar := @If(isThing2; \"thing2\"; thing);\r\n" + "ENVIRONMENT envVar := @Now;\r\n" + "FIELD field1 := \"the cow jumped over the moon\";\r\n" + "FIELD field2 := \"dish... spoon... you know the score.\";\r\n" + "FIELD field3 := @Adjust([08/08/2002]; 1; 2; 3; 4; 5; 6);\r\n" + "tmpVar := field1 + \" rhyming \\\"time\\\" \" + field2[2];\r\n" + "tmpVar2 := 54938 + docField2;\r\n" + "tmpVar + tmpVar2 + docField3 + @Name([CN]; @UserName) + 8;\r\n" + "@Command([AddBookmark]; \"foo\"; docField);\r\n" + ""; formula.setExpression(source); org.openntf.domino.helpers.Formula.Parser parser = formula.getParser(); if (parser != null) { parser.parse(); Set<String> literals = parser.getLiterals(); System.out.println("BEGIN LITERALS"); for (String literal : literals) { System.out.print(literal + ", "); } System.out.println("END LITERALS"); Set<String> functions = parser.getFunctions(); System.out.println("BEGIN FUNCTIONS"); for (String function : functions) { System.out.print(function + ", "); } System.out.println("END FUNCTIONS"); Set<String> localVars = parser.getLocalVars(); System.out.println("BEGIN LOCAL VARIABLES"); for (String var : localVars) { System.out.print(var + ", "); } System.out.println("END LOCAL VARIABLES"); Set<String> fieldVars = parser.getFieldVars(); System.out.println("BEGIN FIELDS"); for (String var : fieldVars) { System.out.print(var + ", "); } System.out.println("END FIELDS"); Set<String> envVars = parser.getEnvVars(); System.out.println("BEGIN ENVIRONMENTS"); for (String var : envVars) { System.out.print(var + ", "); } System.out.println("END ENVIRONMENTS"); Set<String> keywords = parser.getKeywords(); System.out.println("BEGIN KEYWORDS"); for (String var : keywords) { System.out.print(var + ", "); } System.out.println("END KEYWORDS"); Set<String> numbers = parser.getNumberLiterals(); System.out.println("BEGIN NUMBERS"); for (String var : numbers) { System.out.print(var + ", "); } System.out.println("END NUMBERS"); } } }