Input:
	private void bindToViewer(final Tree control) {
		viewer = new TreeViewer(control);
		Realm realm = Realm.getDefault();
		IObservableFactory listFactory = BeansObservables.listFactory(realm, childrenAccessor, treeElementClass);
		TreeStructureAdvisor structureAdvisor = new GenericTreeStructureAdvisor(parentAccessor, treeElementClass);
		TreeContentProvider viewerCP = new TreeContentProvider(listFactory, structureAdvisor);
		viewerCP.getKnownElements().addSetChangeListener(new TreeContentChangeListener(viewerCP, structureAdvisor));
		viewer.setContentProvider(viewerCP);
		IObservableMap[] attributeMap = BeansObservables.observeMaps(viewerCP.getKnownElements(), treeElementClass,
				valueAccessors);
		ILabelProvider viewerLP = new TreeRidgetLabelProvider(viewer, attributeMap);
		viewer.setLabelProvider(viewerLP);
		if (showRoots) {
			viewer.setInput(treeRoots);
		} else {
			final Object root0 = treeRoots[0];
			final String accessor = "get" + capitalize(childrenAccessor);
			List root0Children = ReflectionUtils.invoke(root0, accessor);
			final List inputList = new ArrayList(root0Children);
			viewer.setInput(inputList);
			PropertyChangeListener listener = new PropertyChangeListener() {
				private String ACCESSOR = childrenAccessor.toUpperCase();
				public void propertyChange(PropertyChangeEvent evt) {
					if (evt.getPropertyName().toUpperCase().endsWith(ACCESSOR)) {
						List root0Children = ReflectionUtils.invoke(root0, accessor);
						inputList.clear();
						for (Object child : root0Children) {
							inputList.add(child);
						}
						viewer.setInput(inputList);
					}
				}
			};
			ReflectionUtils.invoke(root0, "addPropertyChangeListener", listener);
		}
	}

Output:
	private void bindToViewer(final Tree control) {
		viewer = new TreeViewer(control);
		Realm realm = Realm.getDefault();
		IObservableFactory listFactory = BeansObservables.listFactory(realm, childrenAccessor, treeElementClass);
		TreeStructureAdvisor structureAdvisor = new GenericTreeStructureAdvisor(parentAccessor, treeElementClass);
		TreeContentProvider viewerCP = new TreeContentProvider(listFactory, structureAdvisor);
		viewerCP.getKnownElements().addSetChangeListener(new TreeContentChangeListener(viewerCP, structureAdvisor));
		viewer.setContentProvider(viewerCP);
		IObservableMap[] attributeMap = BeansObservables.observeMaps(viewerCP.getKnownElements(), treeElementClass,
				valueAccessors);
		ILabelProvider viewerLP = new TreeRidgetLabelProvider(viewer, attributeMap);
		viewer.setLabelProvider(viewerLP);
		if (showRoots) {
			viewer.setInput(treeRoots);
		} else {
			final Object root0 = treeRoots[0];
			final String accessor = "get" + capitalize(childrenAccessor);
			List root0Children = ReflectionUtils.invoke(root0, accessor);
			final List inputList = new ArrayList(root0Children);
			viewer.setInput(inputList);
			PropertyChangeListener listener = new PropertyChangeListener() {
				private String ACCESSOR = childrenAccessor.toUpperCase();
				public void propertyChange(PropertyChangeEvent evt) {
					if (evt.getPropertyName().toUpperCase().endsWith(ACCESSOR)) {
						List root0Children = ReflectionUtils.invoke(root0, accessor);
						inputList.clear();
						inputList.addAll(root0Children);
						viewer.refresh();
					}
				}
			};
			ReflectionUtils.invoke(root0, "addPropertyChangeListener", listener);
		}
	}


Input:
   public UniformInterface getTarget()
   {
      if(this.handler != null)
      {
         return this.handler;
      }
      else
      {
         synchronized(ServerServlet.class)
         {
            String targetAttributeName = getServletConfig().getInitParameter(NAME_TARGET_ATTRIBUTE);
            if(targetAttributeName == null)
            {
               targetAttributeName = getServletContext().getInitParameter(NAME_TARGET_ATTRIBUTE);
            }
            if(targetAttributeName != null)
            {
               this.handler = (UniformInterface)getServletContext().getAttribute(targetAttributeName);
               if(this.handler == null)
               {
                  String targetClassName = getServletConfig().getInitParameter(NAME_TARGET_CLASS);
                  if(targetClassName == null)
                  {
                     targetClassName = getServletContext().getInitParameter(NAME_TARGET_CLASS);
                  }
                  if(targetClassName != null)
                  {
                     try
                     {
                        Class targetClass = Class.forName(targetClassName);
                        this.handler = (UniformInterface)targetClass.newInstance();
                        getServletContext().setAttribute(NAME_TARGET_ATTRIBUTE, this.handler);
                     }
                     catch(ClassNotFoundException e)
                     {
                        log("[Noelios Restlet Engine] - The ServerServlet couldn't find the class. Please check that your classpath includes " + NAME_TARGET_CLASS);
                     }
                     catch(InstantiationException e)
                     {
                        log("[Noelios Restlet Engine] - The ServerServlet couldn't instantiate the class. Please check this class has an empty constructor " + NAME_TARGET_CLASS);
                     }
                     catch(IllegalAccessException e)
                     {
                        log("[Noelios Restlet Engine] - The ServerServlet couldn't instantiate the class. Please check that you have to proper access rights to " + NAME_TARGET_CLASS);
                     }
                  }
                  else
                  {
                     log("[Noelios Restlet Engine] - The ServerServlet couldn't find the class name of the target handler. Please set the initialization parameter called " + NAME_TARGET_CLASS);
                  }
               }
            }
            else
            {
               log("[Noelios Restlet Engine] - The ServerServlet couldn't find the attribute name of the target handler. Please set the initialization parameter called " + NAME_TARGET_ATTRIBUTE);
            }
         }
         return this.handler;
      }
   }

Output:
   public UniformInterface getTarget()
   {
      if(this.handler != null)
      {
         return this.handler;
      }
      else
      {
         synchronized(ServerServlet.class)
         {
            String targetAttributeName = getServletConfig().getInitParameter(NAME_TARGET_ATTRIBUTE);
            if(targetAttributeName == null)
            {
               targetAttributeName = getServletContext().getInitParameter(NAME_TARGET_ATTRIBUTE);
            }
            if(targetAttributeName != null)
            {
               this.handler = (UniformInterface)getServletContext().getAttribute(targetAttributeName);
               if(this.handler == null)
               {
                  String targetClassName = getServletConfig().getInitParameter(NAME_TARGET_CLASS);
                  if(targetClassName == null)
                  {
                     targetClassName = getServletContext().getInitParameter(NAME_TARGET_CLASS);
                  }
                  if(targetClassName != null)
                  {
                     try
                     {
                        Class targetClass = Class.forName(targetClassName);
                        this.handler = (UniformInterface)targetClass.newInstance();
                        getServletContext().setAttribute(NAME_TARGET_ATTRIBUTE, this.handler);
                     }
                     catch(ClassNotFoundException e)
                     {
                        log("[Noelios Restlet Engine] - The ServerServlet couldn't find the class. Please check that your classpath includes " + targetClassName);
                     }
                     catch(InstantiationException e)
                     {
                        log("[Noelios Restlet Engine] - The ServerServlet couldn't instantiate the class. Please check this class has an empty constructor " + targetClassName);
                     }
                     catch(IllegalAccessException e)
                     {
                        log("[Noelios Restlet Engine] - The ServerServlet couldn't instantiate the class. Please check that you have to proper access rights to " + targetClassName);
                     }
                  }
                  else
                  {
                     log("[Noelios Restlet Engine] - The ServerServlet couldn't find the class name of the target handler. Please set the initialization parameter called " + NAME_TARGET_CLASS);
                  }
               }
            }
            else
            {
               log("[Noelios Restlet Engine] - The ServerServlet couldn't find the attribute name of the target handler. Please set the initialization parameter called " + NAME_TARGET_ATTRIBUTE);
            }
         }
         return this.handler;
      }
   }


Input:
	public void run() {
		while (!shutdown) {
			if (!isEmpty()) {
				flowSpace = getFlowMap();
				Iterator<Entry<Integer, List<FlowEntry>>> it = this.entrySet().iterator();
				while (it.hasNext()) {
					Entry<Integer, List<FlowEntry>> entry = it.next();
					for (FlowEntry fentry : entry.getValue()) {
						try {
							FlowSpaceImpl.getProxy().addRule(fentry);
							flowSpace.addRule(fentry);
							String logMsg = "User " + APIUserCred.getUserName() +
									flowspaceAddChangeLogMessage(fentry.getDpid(),
											fentry.getRuleMatch(), fentry.getPriority(),
											fentry.getActionsList(), fentry.getName());
							FVLog.log(LogLevel.INFO, null, logMsg);
						} catch (ConfigError e) {
							FVLog.log(LogLevel.WARN, null, e.getMessage());
						}
					}
					FlowSpaceImpl.getProxy().notifyChange(flowSpace);
					it.remove();
				}
			}
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				FVLog.log(LogLevel.DEBUG, null, "Shutting down FlowSpace handler; exiting.");
				break;
			}
		}
	}

Output:
	public void run() {
		while (!shutdown) {
			if (!isEmpty()) {
				flowSpace = getFlowMap();
				Iterator<Entry<Integer, List<FlowEntry>>> it = this.entrySet().iterator();
				while (it.hasNext()) {
					Entry<Integer, List<FlowEntry>> entry = it.next();
					for (FlowEntry fentry : entry.getValue()) {
						try {
							FlowSpaceImpl.getProxy().addRule(fentry);
							flowSpace.addRule(fentry);
							String logMsg = "User " + APIUserCred.getUserName() +
									flowspaceAddChangeLogMessage(fentry.getDpid(),
											fentry.getRuleMatch(), fentry.getPriority(),
											fentry.getActionsList(), fentry.getName());
							FVLog.log(LogLevel.INFO, null, logMsg);
						} catch (ConfigError e) {
							FVLog.log(LogLevel.WARN, null, e.getMessage());
						}
					}
					FlowSpaceImpl.getProxy().notifyChange(flowSpace);
					it.remove();
				}
			}
			try {
				Thread.sleep(200);
			} catch (InterruptedException e) {
				FVLog.log(LogLevel.DEBUG, null, "Shutting down FlowSpace handler; exiting.");
				break;
			}
		}
	}


Input:
	private SVDBExpr assignment_pattern_expr() throws SVParseException {
		SVDBExpr ret_top;
		fLexer.readOperator("'");
		fLexer.readOperator("{");
		if (fDebugEn) {debug("    assignmentPattern");}
		if (fLexer.peekOperator("}")) {
			fLexer.eatToken();
			ret_top = new SVDBConcatenationExpr();
		} else {
			try {
				fEnableNameMappedPrimary = true;
				SVDBExpr expr1 = expression();
				if (fLexer.peekOperator("{")) {
					SVDBAssignmentPatternRepeatExpr ret = new SVDBAssignmentPatternRepeatExpr(expr1);
					fLexer.eatToken();
					while (true) {
						SVDBExpr expr = expression();
						ret.getPatternList().add(expr);
						if (fLexer.peekOperator(",")) {
							fLexer.eatToken();
						} else {
							break;
						}
					}
					fLexer.readOperator("}");
					ret_top = ret;
				} else  {
					SVDBAssignmentPatternExpr ret = new SVDBAssignmentPatternExpr();
					ret.getPatternList().add(expr1);
					while (fLexer.peekOperator(",")) {
						fLexer.eatToken();
						SVDBExpr expr = expression();
						ret.getPatternList().add(expr);
					}
					ret_top = ret;
				}
				fLexer.readOperator("}");
			} finally {
				fEnableNameMappedPrimary = false;
			}
		}
		return ret_top;
	}
	public SVDBExpr primary() throws SVParseException {
		if (fDebugEn) {debug("--> primary() - " + fLexer.peek());}
		SVDBExpr ret = null;
		if (peekOperator("(")) {
			if (fDebugEn) {debug("  Found paren in primary");}
			fLexer.eatToken();
			SVDBExpr a = expression();
			if (fLexer.peekOperator(":")) {
				fLexer.eatToken();
				SVDBExpr expr = fParsers.exprParser().expression();
				if (fLexer.peekOperator(":")) {
					fLexer.eatToken();
					expr = fParsers.exprParser().expression();
				}
			}
			readOperator(")");
			peek();
			if (fLexer.isNumber() || fLexer.isIdentifier() ||
					peekOperator("(", "~", "!") ||
					peekKeyword("this", "super", "new")) {
				ret = new SVDBCastExpr(a, unaryExpression());
			} else {
				ret = new SVDBParenExpr(a);
			}
		} else {
			fLexer.peek();
			if (fLexer.isNumber()) {
				if (fDebugEn) {debug("-- primary is a number");}
				SVToken tmp = fLexer.consumeToken();
				if (fEnableNameMappedPrimary && fLexer.peekOperator(":")) {
					fLexer.eatToken();
					ret = new SVDBNameMappedExpr(tmp.getImage(), expression());
				} else {
					ret = new SVDBLiteralExpr(tmp.getImage());
				}
			} else if (fLexer.peekOperator("$")) {
				fLexer.eatToken();
				ret = new SVDBRangeDollarBoundExpr();
			} else if (fLexer.peekString()) {
				if (fDebugEn) {debug("-- primary is a string");}
				SVToken tmp = fLexer.consumeToken();
				if (fEnableNameMappedPrimary && fLexer.peekOperator(":")) {
					fLexer.eatToken();
					ret = new SVDBNameMappedExpr(tmp.getImage(), expression());
				} else {
					ret = new SVDBStringExpr(tmp.getImage());
				}
			} else if (fLexer.peekKeyword("null")) {
				if (fDebugEn) {debug("-- primary is 'null'");}
				fLexer.eatToken();
				ret = new SVDBNullExpr();
			} else if (fLexer.isIdentifier() ||
					SVKeywords.isBuiltInType(fLexer.peek()) ||
					fLexer.peekKeyword("new","default","local")) {
				if (fDebugEn) {
					debug("  primary \"" + fLexer.getImage() + "\" is identifier or built-in type");
				}
				String id = fLexer.eatToken();
				if (fLexer.peekOperator("(*")) {
					fParsers.attrParser().parse(null);
				}
				if (peekOperator("#")) {
					ret = new SVDBParamIdExpr(id);
					fLexer.eatToken();
					fLexer.readOperator("(");
					while (fLexer.peek() != null) {
						((SVDBParamIdExpr)ret).addParamExpr(datatype_or_expression());
						if (fLexer.peekOperator(",")) {
							fLexer.eatToken();
						} else {
							break;
						}
					}
					fLexer.readOperator(")");
				} else if (fLexer.peekOperator("(") || fLexer.peekKeyword("with")) {
					if (id.equals("randomize")) {
						ret = randomize_call(null);
					} else if (fLexer.peekOperator("(")) {
						ret = tf_args_call(null, id);
					} else {
						ret = tf_noargs_with_call(null, id);
					}
				} else if (id.equals("new")) {
					ret = ctor_call();
				} else if (fLexer.peekKeyword(SVKeywords.fBuiltinDeclTypes)) {
					fLexer.startCapture();
					fLexer.eatToken();
					if (fLexer.peekKeyword("signed","unsigned")) {
						fLexer.eatToken();
					}
					ret = new SVDBIdentifierExpr(fLexer.endCapture());
				} else {
					if (fEnableNameMappedPrimary && fLexer.peekOperator(":")) {
						fLexer.eatToken();
						if (fDebugEn) {debug("    nameMappedExpr");}
						ret = new SVDBNameMappedExpr(id, expression());
					} else {
						ret = new SVDBIdentifierExpr(id);
					}
					if (fDebugEn) {debug("  after id-read: " + peek());}
				}
			} else if (fLexer.peekOperator("{")) {
				ret = concatenation_or_repetition();
			} else if (peekKeyword("this")) {
				fLexer.eatToken();
				ret = new SVDBIdentifierExpr("this");
			} else if (peekKeyword("super")) {
				fLexer.eatToken();
				ret = new SVDBIdentifierExpr("super");
			} else if (peekKeyword("void")) {
				fLexer.eatToken();
				ret = new SVDBIdentifierExpr("void");
			} else if (fEventExpr.peek() && fLexer.peekOperator("@")) {
				ret = clocking_event();
			} else if (fEventExpr.peek() && fLexer.peekOperator("##")) {
				ret = cycle_delay();
			} else {
				error("Unexpected token in primary: \"" + fLexer.getImage() + "\"");
			}
		}
		if (fDebugEn) {debug("<-- primary() ");}
		return ret;
	}
	private SVDBExpr concatenation_or_repetition() throws SVParseException {
		SVDBExpr expr = null;
		if (fDebugEn) {debug("--> concatenation_or_repetition()");}
		readOperator("{");
		if (peekOperator("}")) {
			fLexer.eatToken();
			expr = new SVDBConcatenationExpr();
		} else if (peekOperator("<<", ">>")) {
			if (fDebugEn) {debug("streaming operator");}
			fLexer.eatToken();
			if (fLexer.peekKeyword(SVKeywords.fBuiltinTypes)) {
				expr = new SVDBTypeExpr(fParsers.dataTypeParser().data_type(0));
			} else if (!fLexer.peekOperator("{")) {
				expr = new SVDBLiteralExpr(fLexer.eatToken());
			}
			if (fDebugEn) {debug("post-datatype: " + fLexer.peek());}
			fLexer.readOperator("{");
			while (fLexer.peek() != null) {
				expression();
				if (fDebugEn) {debug("pre-with: " + fLexer.peek());}
				if (fLexer.peekKeyword("with")) {
					fLexer.eatToken();
					fLexer.readOperator("[");
					expression();
					if (fLexer.peekOperator(":", "+:", "-:")) {
						fLexer.eatToken();
						expression();
					}
					fLexer.readOperator("]");
				}
				if (fLexer.peekOperator(",")) {
					fLexer.eatToken();
				} else {
					break;
				}
			}
			fLexer.readOperator("}");
			fLexer.readOperator("}");
			expr = new SVDBConcatenationExpr();
		} else {
			try {
				SVDBExpr expr0 = expression();
				if (fLexer.peekOperator("{")) {
					if (fDebugEn) {debug("repetition");}
					fLexer.eatToken();
					SVDBAssignmentPatternRepeatExpr ret = new SVDBAssignmentPatternRepeatExpr(expr);
					ret.setRepeatExpr(expr0);
					while (fLexer.peek() != null) {
						ret.getPatternList().add(expression());
						if (fLexer.peekOperator(",")) {
							fLexer.eatToken();
						} else {
							break;
						}
					}
					fLexer.readOperator("}");
					fLexer.readOperator("}");
					expr = ret;
				} else {
					if (fDebugEn) {debug("concatenation");}
					SVDBConcatenationExpr ret = new SVDBConcatenationExpr();
					ret.getElements().add(expr0);
					while (fLexer.peekOperator(",")) {
						fLexer.eatToken();
						ret.getElements().add(expression());
					}
					fLexer.readOperator("}");
					expr = ret;
				}
			} finally {
			}
		}
		if (fDebugEn) {debug("<-- concatenation_or_repetition()");}
		return expr;
	}
	public List<SVDBExpr> arguments() throws SVParseException {
		if (fDebugEn) {debug("--> arguments()");}
		readOperator("(");
		if (peekOperator(")")) {
			fLexer.eatToken();
			return new ArrayList<SVDBExpr>();
		}
		List<SVDBExpr> arguments = argumentList();
		readOperator(")");
		if (fDebugEn) {debug("<-- arguments()");}
		return arguments;
	}
	private List<SVDBExpr>  argumentList() throws SVParseException {
		List<SVDBExpr> arguments = new ArrayList<SVDBExpr>();
		if (fDebugEn) {debug("--> argumentList()");}
		for (;;) {
			if (peekOperator(".")) {
				fLexer.eatToken();
				SVDBNamedArgExpr arg_expr = new SVDBNamedArgExpr();
				String name = readIdentifier();
				arg_expr.setArgName(name);
				readOperator("(");
				if (fLexer.peekOperator(")")) {
					arg_expr.setExpr(new SVDBLiteralExpr(""));
				} else {
					arg_expr.setExpr(expression());
				}
				readOperator(")");
				arguments.add(arg_expr);
			} else if (peekOperator(",", ")")) {
				arguments.add(new SVDBLiteralExpr(""));
			} else {
				arguments.add(expression());
			}
			if (peekOperator(",")) {
				fLexer.eatToken();
			} else {
				break;
			}
		}
		if (fDebugEn) {debug("<-- argumentList()");}
		return arguments;
	}
	public SVDBExpr selector(SVDBExpr expr) throws SVParseException {
		if (fDebugEn) {debug("--> selector()");}
		if (peekOperator(".", "::")) {
			String q = fLexer.eatToken();
			fLexer.peek();
			if (fLexer.isIdentifier() || peekKeyword("new", "super", "this")) {
				String id = fLexer.eatToken();
				if (fLexer.peekOperator("(*")) {
					fParsers.attrParser().parse(null);
				}
				if (fLexer.peekOperator("(") || fLexer.peekKeyword("with")) {
					if (id.equals("randomize")) {
						return randomize_call(expr);
					} else if (fLexer.peekOperator("(")){
						return tf_args_call(expr, id);
					} else {
						return tf_noargs_with_call(expr, id);
					}
				}
				if (fDebugEn) {debug("<-- selector()");}
				return new SVDBFieldAccessExpr(expr, (q.equals("::")),
						new SVDBIdentifierExpr(id));
			}
		}
		if (peekOperator("[")) {
			if (fDebugEn) {debug("primary() -- operator " + fLexer.peek());}
			fLexer.eatToken();
			SVDBExpr low = expression();
			SVDBExpr high = null;
			if (peekOperator(":", "+:", "-:")) {
				fLexer.eatToken();
				high = expression();
			}
			readOperator("]");
			if (expr == null) {
				error("array expr == null");
			}
			if (fDebugEn) {debug("<-- selector()");}
			return new SVDBArrayAccessExpr(expr, low, high);
		}
		error("Unexpected token \"" + fLexer.getImage() + "\"");
		return null;
	}
	private SVDBRandomizeCallExpr randomize_call(SVDBExpr target) throws SVParseException {
		List<SVDBExpr> arguments = null;
		SVDBRandomizeCallExpr rand_call = null;
		fAssertionExpr.push(false);
		fEventExpr.push(false);
		try {
			if (fLexer.peekOperator("(")) {
				arguments = arguments();
			}
			rand_call = new SVDBRandomizeCallExpr(target, "randomize", arguments);
			if (fLexer.peekKeyword("with")) {
				fLexer.eatToken();
				rand_call.setWithBlock(fParsers.constraintParser().constraint_set(true));
			}
		} finally {
			fAssertionExpr.pop();
			fEventExpr.pop();
		}
		return rand_call;
	}
	private SVDBTFCallExpr tf_args_call(SVDBExpr target, String id) throws SVParseException {
		SVDBTFCallExpr tf = new SVDBTFCallExpr(target, id, arguments());
		if (fLexer.peekKeyword("with")) {
			fLexer.eatToken();
			fLexer.readOperator("(");
			tf.setWithExpr(expression());
			fLexer.readOperator(")");
		}
		return tf;
	}
	private SVDBTFCallExpr tf_noargs_with_call(SVDBExpr target, String id) throws SVParseException {
		SVDBTFCallExpr tf = new SVDBTFCallExpr(target, id, null);
		if (fLexer.peekKeyword("with")) {
			fLexer.eatToken();
			if (fLexer.peekOperator("[")) {
				fLexer.readOperator("[");
				tf.setWithExpr(expression());
				if (fLexer.peekOperator(":", "+:","-:")) {
					fLexer.eatToken();
					expression();
				}
				fLexer.readOperator("]");
			} else {
				fLexer.readOperator("(");
				tf.setWithExpr(expression());
				fLexer.readOperator(")");
			}
		}
		return tf;
	}
	private SVDBCtorExpr ctor_call() throws SVParseException {
		if (fDebugEn) {
			debug("--> ctor_call()");
		}
		SVDBCtorExpr ctor = new SVDBCtorExpr();
		if (fLexer.peekOperator("[")) {
			fLexer.readOperator("[");
			ctor.setCtorType(CtorType.CtorType_Dim);
			ctor.setArg(expression());
			fLexer.readOperator("]");
		}
		if (fLexer.peekOperator("(")) {
			ctor.setCtorType(CtorType.CtorType_Args);
			ctor.setArgs(arguments());
		} else if (fLexer.peekKeyword() || fLexer.peekId()) {
			ctor.setCtorType(CtorType.CtorType_Expr);
			ctor.setArg(expression());
		}
		if (fDebugEn) {
			debug("--> ctor_call()");
		}
		return ctor;
	}
	private String peek() throws SVParseException {
		return fLexer.peek();
	}
	private boolean peekOperator(String ... ops) throws SVParseException {
		return fLexer.peekOperator(ops);
	}
	private String readOperator(String ... ops) throws SVParseException {
		return fLexer.readOperator(ops);
	}
	private boolean peekKeyword(String ... kw) throws SVParseException {
		return fLexer.peekKeyword(kw);
	}
	private String readKeyword(String ... kw) throws SVParseException {
		return fLexer.readKeyword(kw);
	}
	private String readIdentifier() throws SVParseException {
		return fLexer.readId();
	}
	public SVDBIdentifierExpr idExpr() throws SVParseException {
		SVDBLocation start = fLexer.getStartLocation();
		SVDBIdentifierExpr ret = new SVDBIdentifierExpr(fLexer.readId());
		ret.setLocation(start);
		return ret;
	}
	public SVDBLiteralExpr literalExpr() throws SVParseException {
		SVDBLocation start = fLexer.getStartLocation();
		SVDBLiteralExpr ret = new SVDBLiteralExpr(fLexer.readNumber());
		ret.setLocation(start);
		return ret;
	}
}

Output:
	private SVDBExpr assignment_pattern_expr() throws SVParseException {
		SVDBExpr ret_top;
		fLexer.readOperator("'");
		fLexer.readOperator("{");
		if (fDebugEn) {debug("    assignmentPattern");}
		if (fLexer.peekOperator("}")) {
			fLexer.eatToken();
			ret_top = new SVDBConcatenationExpr();
		} else {
			try {
				fEnableNameMappedPrimary = true;
				SVDBExpr expr1 = expression();
				if (fLexer.peekOperator("{")) {
					SVDBAssignmentPatternRepeatExpr ret = new SVDBAssignmentPatternRepeatExpr(expr1);
					fLexer.eatToken();
					while (true) {
						SVDBExpr expr = expression();
						ret.getPatternList().add(expr);
						if (fLexer.peekOperator(",")) {
							fLexer.eatToken();
						} else {
							break;
						}
					}
					fLexer.readOperator("}");
					ret_top = ret;
				} else  {
					SVDBAssignmentPatternExpr ret = new SVDBAssignmentPatternExpr();
					ret.getPatternList().add(expr1);
					while (fLexer.peekOperator(",")) {
						fLexer.eatToken();
						SVDBExpr expr = expression();
						ret.getPatternList().add(expr);
					}
					ret_top = ret;
				}
				fLexer.readOperator("}");
			} finally {
				fEnableNameMappedPrimary = false;
			}
		}
		return ret_top;
	}
	public SVDBExpr primary() throws SVParseException {
		if (fDebugEn) {debug("--> primary() - " + fLexer.peek());}
		SVDBExpr ret = null;
		if (peekOperator("(")) {
			if (fDebugEn) {debug("  Found paren in primary");}
			fLexer.eatToken();
			SVDBExpr a = expression();
			if (fLexer.peekOperator(":")) {
				fLexer.eatToken();
				SVDBExpr expr = fParsers.exprParser().expression();
				if (fLexer.peekOperator(":")) {
					fLexer.eatToken();
					expr = fParsers.exprParser().expression();
				}
			}
			readOperator(")");
			peek();
			if (fLexer.isNumber() || fLexer.isIdentifier() ||
					peekOperator("(", "~", "!") ||
					peekKeyword("this", "super", "new")) {
				ret = new SVDBCastExpr(a, unaryExpression());
			} else {
				ret = new SVDBParenExpr(a);
			}
		} else {
			fLexer.peek();
			if (fLexer.isNumber()) {
				if (fDebugEn) {debug("-- primary is a number");}
				SVToken tmp = fLexer.consumeToken();
				if (fEnableNameMappedPrimary && fLexer.peekOperator(":")) {
					fLexer.eatToken();
					ret = new SVDBNameMappedExpr(tmp.getImage(), expression());
				} else {
					ret = new SVDBLiteralExpr(tmp.getImage());
				}
			} else if (fLexer.peekOperator("$")) {
				fLexer.eatToken();
				ret = new SVDBRangeDollarBoundExpr();
			} else if (fLexer.peekString()) {
				if (fDebugEn) {debug("-- primary is a string");}
				SVToken tmp = fLexer.consumeToken();
				if (fEnableNameMappedPrimary && fLexer.peekOperator(":")) {
					fLexer.eatToken();
					ret = new SVDBNameMappedExpr(tmp.getImage(), expression());
				} else {
					ret = new SVDBStringExpr(tmp.getImage());
				}
			} else if (fLexer.peekKeyword("null")) {
				if (fDebugEn) {debug("-- primary is 'null'");}
				fLexer.eatToken();
				ret = new SVDBNullExpr();
			} else if (fLexer.isIdentifier() ||
					SVKeywords.isBuiltInType(fLexer.peek()) ||
					fLexer.peekKeyword("new","default","local")) {
				if (fDebugEn) {
					debug("  primary \"" + fLexer.getImage() + "\" is identifier or built-in type");
				}
				String id = fLexer.eatToken();
				if (fLexer.peekOperator("(*")) {
					fParsers.attrParser().parse(null);
				}
				if (peekOperator("#")) {
					if (fDebugEn) {
						debug("Parameterized identifier");
					}
					ret = new SVDBParamIdExpr(id);
					fLexer.eatToken();
					fLexer.readOperator("(");
					while (fLexer.peek() != null && !fLexer.peekOperator(")")) {
						((SVDBParamIdExpr)ret).addParamExpr(datatype_or_expression());
						if (fLexer.peekOperator(",")) {
							fLexer.eatToken();
						} else {
							break;
						}
					}
					fLexer.readOperator(")");
				} else if (fLexer.peekOperator("(") || fLexer.peekKeyword("with")) {
					if (id.equals("randomize")) {
						ret = randomize_call(null);
					} else if (fLexer.peekOperator("(")) {
						ret = tf_args_call(null, id);
					} else {
						ret = tf_noargs_with_call(null, id);
					}
				} else if (id.equals("new")) {
					ret = ctor_call();
				} else if (fLexer.peekKeyword(SVKeywords.fBuiltinDeclTypes)) {
					fLexer.startCapture();
					fLexer.eatToken();
					if (fLexer.peekKeyword("signed","unsigned")) {
						fLexer.eatToken();
					}
					ret = new SVDBIdentifierExpr(fLexer.endCapture());
				} else {
					if (fEnableNameMappedPrimary && fLexer.peekOperator(":")) {
						fLexer.eatToken();
						if (fDebugEn) {debug("    nameMappedExpr");}
						ret = new SVDBNameMappedExpr(id, expression());
					} else {
						ret = new SVDBIdentifierExpr(id);
					}
					if (fDebugEn) {debug("  after id-read: " + peek());}
				}
			} else if (fLexer.peekOperator("{")) {
				ret = concatenation_or_repetition();
			} else if (peekKeyword("this")) {
				fLexer.eatToken();
				ret = new SVDBIdentifierExpr("this");
			} else if (peekKeyword("super")) {
				fLexer.eatToken();
				ret = new SVDBIdentifierExpr("super");
			} else if (peekKeyword("void")) {
				fLexer.eatToken();
				ret = new SVDBIdentifierExpr("void");
			} else if (fEventExpr.peek() && fLexer.peekOperator("@")) {
				ret = clocking_event();
			} else if (fEventExpr.peek() && fLexer.peekOperator("##")) {
				ret = cycle_delay();
			} else {
				error("Unexpected token in primary: \"" + fLexer.getImage() + "\"");
			}
		}
		if (fDebugEn) {debug("<-- primary() ");}
		return ret;
	}
	private SVDBExpr concatenation_or_repetition() throws SVParseException {
		SVDBExpr expr = null;
		if (fDebugEn) {debug("--> concatenation_or_repetition()");}
		readOperator("{");
		if (peekOperator("}")) {
			fLexer.eatToken();
			expr = new SVDBConcatenationExpr();
		} else if (peekOperator("<<", ">>")) {
			if (fDebugEn) {debug("streaming operator");}
			fLexer.eatToken();
			if (fLexer.peekKeyword(SVKeywords.fBuiltinTypes)) {
				expr = new SVDBTypeExpr(fParsers.dataTypeParser().data_type(0));
			} else if (!fLexer.peekOperator("{")) {
				expr = new SVDBLiteralExpr(fLexer.eatToken());
			}
			if (fDebugEn) {debug("post-datatype: " + fLexer.peek());}
			fLexer.readOperator("{");
			while (fLexer.peek() != null) {
				expression();
				if (fDebugEn) {debug("pre-with: " + fLexer.peek());}
				if (fLexer.peekKeyword("with")) {
					fLexer.eatToken();
					fLexer.readOperator("[");
					expression();
					if (fLexer.peekOperator(":", "+:", "-:")) {
						fLexer.eatToken();
						expression();
					}
					fLexer.readOperator("]");
				}
				if (fLexer.peekOperator(",")) {
					fLexer.eatToken();
				} else {
					break;
				}
			}
			fLexer.readOperator("}");
			fLexer.readOperator("}");
			expr = new SVDBConcatenationExpr();
		} else {
			try {
				SVDBExpr expr0 = expression();
				if (fLexer.peekOperator("{")) {
					if (fDebugEn) {debug("repetition");}
					fLexer.eatToken();
					SVDBAssignmentPatternRepeatExpr ret = new SVDBAssignmentPatternRepeatExpr(expr);
					ret.setRepeatExpr(expr0);
					while (fLexer.peek() != null) {
						ret.getPatternList().add(expression());
						if (fLexer.peekOperator(",")) {
							fLexer.eatToken();
						} else {
							break;
						}
					}
					fLexer.readOperator("}");
					fLexer.readOperator("}");
					expr = ret;
				} else {
					if (fDebugEn) {debug("concatenation");}
					SVDBConcatenationExpr ret = new SVDBConcatenationExpr();
					ret.getElements().add(expr0);
					while (fLexer.peekOperator(",")) {
						fLexer.eatToken();
						ret.getElements().add(expression());
					}
					fLexer.readOperator("}");
					expr = ret;
				}
			} finally {
			}
		}
		if (fDebugEn) {debug("<-- concatenation_or_repetition()");}
		return expr;
	}
	public List<SVDBExpr> arguments() throws SVParseException {
		if (fDebugEn) {debug("--> arguments()");}
		readOperator("(");
		if (peekOperator(")")) {
			fLexer.eatToken();
			return new ArrayList<SVDBExpr>();
		}
		List<SVDBExpr> arguments = argumentList();
		readOperator(")");
		if (fDebugEn) {debug("<-- arguments()");}
		return arguments;
	}
	private List<SVDBExpr>  argumentList() throws SVParseException {
		List<SVDBExpr> arguments = new ArrayList<SVDBExpr>();
		if (fDebugEn) {debug("--> argumentList()");}
		for (;;) {
			if (peekOperator(".")) {
				fLexer.eatToken();
				SVDBNamedArgExpr arg_expr = new SVDBNamedArgExpr();
				String name = readIdentifier();
				arg_expr.setArgName(name);
				readOperator("(");
				if (fLexer.peekOperator(")")) {
					arg_expr.setExpr(new SVDBLiteralExpr(""));
				} else {
					arg_expr.setExpr(expression());
				}
				readOperator(")");
				arguments.add(arg_expr);
			} else if (peekOperator(",", ")")) {
				arguments.add(new SVDBLiteralExpr(""));
			} else {
				arguments.add(expression());
			}
			if (peekOperator(",")) {
				fLexer.eatToken();
			} else {
				break;
			}
		}
		if (fDebugEn) {debug("<-- argumentList()");}
		return arguments;
	}
	public SVDBExpr selector(SVDBExpr expr) throws SVParseException {
		if (fDebugEn) {debug("--> selector()");}
		if (peekOperator(".", "::")) {
			String q = fLexer.eatToken();
			fLexer.peek();
			if (fLexer.isIdentifier() || peekKeyword("new", "super", "this")) {
				String id = fLexer.eatToken();
				if (fLexer.peekOperator("(*")) {
					fParsers.attrParser().parse(null);
				}
				if (fLexer.peekOperator("(") || fLexer.peekKeyword("with")) {
					if (id.equals("randomize")) {
						return randomize_call(expr);
					} else if (fLexer.peekOperator("(")){
						return tf_args_call(expr, id);
					} else {
						return tf_noargs_with_call(expr, id);
					}
				}
				if (fDebugEn) {debug("<-- selector()");}
				return new SVDBFieldAccessExpr(expr, (q.equals("::")),
						new SVDBIdentifierExpr(id));
			}
		}
		if (peekOperator("[")) {
			if (fDebugEn) {debug("primary() -- operator " + fLexer.peek());}
			fLexer.eatToken();
			SVDBExpr low = expression();
			SVDBExpr high = null;
			if (peekOperator(":", "+:", "-:")) {
				fLexer.eatToken();
				high = expression();
			}
			readOperator("]");
			if (expr == null) {
				error("array expr == null");
			}
			if (fDebugEn) {debug("<-- selector()");}
			return new SVDBArrayAccessExpr(expr, low, high);
		}
		error("Unexpected token \"" + fLexer.getImage() + "\"");
		return null;
	}
	private SVDBRandomizeCallExpr randomize_call(SVDBExpr target) throws SVParseException {
		List<SVDBExpr> arguments = null;
		SVDBRandomizeCallExpr rand_call = null;
		fAssertionExpr.push(false);
		fEventExpr.push(false);
		try {
			if (fLexer.peekOperator("(")) {
				arguments = arguments();
			}
			rand_call = new SVDBRandomizeCallExpr(target, "randomize", arguments);
			if (fLexer.peekKeyword("with")) {
				fLexer.eatToken();
				rand_call.setWithBlock(fParsers.constraintParser().constraint_set(true));
			}
		} finally {
			fAssertionExpr.pop();
			fEventExpr.pop();
		}
		return rand_call;
	}
	private SVDBTFCallExpr tf_args_call(SVDBExpr target, String id) throws SVParseException {
		SVDBTFCallExpr tf = new SVDBTFCallExpr(target, id, arguments());
		if (fLexer.peekKeyword("with")) {
			fLexer.eatToken();
			fLexer.readOperator("(");
			tf.setWithExpr(expression());
			fLexer.readOperator(")");
		}
		return tf;
	}
	private SVDBTFCallExpr tf_noargs_with_call(SVDBExpr target, String id) throws SVParseException {
		SVDBTFCallExpr tf = new SVDBTFCallExpr(target, id, null);
		if (fLexer.peekKeyword("with")) {
			fLexer.eatToken();
			if (fLexer.peekOperator("[")) {
				fLexer.readOperator("[");
				tf.setWithExpr(expression());
				if (fLexer.peekOperator(":", "+:","-:")) {
					fLexer.eatToken();
					expression();
				}
				fLexer.readOperator("]");
			} else {
				fLexer.readOperator("(");
				tf.setWithExpr(expression());
				fLexer.readOperator(")");
			}
		}
		return tf;
	}
	private SVDBCtorExpr ctor_call() throws SVParseException {
		if (fDebugEn) {
			debug("--> ctor_call()");
		}
		SVDBCtorExpr ctor = new SVDBCtorExpr();
		if (fLexer.peekOperator("[")) {
			fLexer.readOperator("[");
			ctor.setCtorType(CtorType.CtorType_Dim);
			ctor.setArg(expression());
			fLexer.readOperator("]");
		}
		if (fLexer.peekOperator("(")) {
			ctor.setCtorType(CtorType.CtorType_Args);
			ctor.setArgs(arguments());
		} else if (fLexer.peekKeyword() || fLexer.peekId()) {
			ctor.setCtorType(CtorType.CtorType_Expr);
			ctor.setArg(expression());
		}
		if (fDebugEn) {
			debug("--> ctor_call()");
		}
		return ctor;
	}
	private String peek() throws SVParseException {
		return fLexer.peek();
	}
	private boolean peekOperator(String ... ops) throws SVParseException {
		return fLexer.peekOperator(ops);
	}
	private String readOperator(String ... ops) throws SVParseException {
		return fLexer.readOperator(ops);
	}
	private boolean peekKeyword(String ... kw) throws SVParseException {
		return fLexer.peekKeyword(kw);
	}
	private String readKeyword(String ... kw) throws SVParseException {
		return fLexer.readKeyword(kw);
	}
	private String readIdentifier() throws SVParseException {
		return fLexer.readId();
	}
	public SVDBIdentifierExpr idExpr() throws SVParseException {
		SVDBLocation start = fLexer.getStartLocation();
		SVDBIdentifierExpr ret = new SVDBIdentifierExpr(fLexer.readId());
		ret.setLocation(start);
		return ret;
	}
	public SVDBLiteralExpr literalExpr() throws SVParseException {
		SVDBLocation start = fLexer.getStartLocation();
		SVDBLiteralExpr ret = new SVDBLiteralExpr(fLexer.readNumber());
		ret.setLocation(start);
		return ret;
	}
}


Input:
  public void initializeAttributes(){
    addAttribute(getIDColumnName());
    addAttribute(getNewsCategoryIdColumnName(), "Category", true, true, "java.lang.Integer", "many-to-one","com.idega.jmodule.news.data.NewsCategory");
    addAttribute(getHeadLineColumnName(), "Headline", true, true, "java.lang.String");
    addAttribute(getNewsTextColumnName(), "Text", true, true, "java.lang.String",4000);
    addAttribute(getIncludeImageColumnName(), "Photo Included", true, true, "java.lang.String");
    addAttribute(getImageIdColumnName(), "Photo", true, true, "java.lang.Integer");
    addAttribute(getNewsDateColumnName(), "Date", true, true, "java.sql.Timestamp");
    addAttribute(getAuthorColumnName(), "Author", true, true, "java.lang.String");
    addAttribute(getSourceColumnName(), "Source", true, true, "java.lang.String");
    addAttribute(getDaysShownColumnName(), "Days shown", true, true, "java.lang.Integer");
  }

Output:
  public void initializeAttributes(){
    addAttribute(getIDColumnName());
    addAttribute(getNewsCategoryIdColumnName(), "Category", true, true, Integer.class, "many-to-one",NewsCategory.class);
    addAttribute(getHeadLineColumnName(), "Headline", true, true, String.class);
    addAttribute(getNewsTextColumnName(), "Text", true, true, String.class,4000);
    addAttribute(getIncludeImageColumnName(), "Photo Included", true, true, String.class);
    addAttribute(getImageIdColumnName(), "Photo", true, true, Integer.class);
    addAttribute(getNewsDateColumnName(), "Date", true, true, java.sql.Timestamp.class);
    addAttribute(getAuthorColumnName(), "Author", true, true, String.class);
    addAttribute(getSourceColumnName(), "Source", true, true, String.class);
    addAttribute(getDaysShownColumnName(), "Days shown", true, true, String.class);
  }


Input:
    public static serverObjects respond(httpHeader header, serverObjects post, serverSwitch env) {
        plasmaSwitchboard switchboard = (plasmaSwitchboard) env;
        serverObjects prop = new serverObjects();
        prop.put("rejected", 0);
        int showRejectedCount = 10;
        if (post != null) {
            if (post.containsKey("clearRejected")) {
                switchboard.urlPool.errorURL.clearStack();
            }
            if (post.containsKey("moreRejected")) {
                showRejectedCount = Integer.parseInt(post.get("showRejected", "10"));
            }
            if (post.containsKey("clearIndexingQueue")) {
                try {
                    synchronized (switchboard.sbQueue) {
                        plasmaSwitchboardQueue.Entry entry = null;
                        while ((entry = switchboard.sbQueue.pop()) != null) {
                            if ((entry != null) && (entry.profile() != null) && (!(entry.profile().storeHTCache()))) {
                                switchboard.cacheManager.deleteFile(entry.url());
                            }
                        }
                    }
                } catch (Exception e) {}
            } else if (post.containsKey("deleteEntry")) {
                String urlHash = (String) post.get("deleteEntry");
                try {
                    synchronized (switchboard.sbQueue) {
                        ArrayList entries = switchboard.sbQueue.list(0);
                        for (int i=entries.size()-1; i >= 0; i--) {
                            plasmaSwitchboardQueue.Entry pcentry = (plasmaSwitchboardQueue.Entry) entries.get(i);
                            if (pcentry.urlHash().equals(urlHash)) {
                                plasmaSwitchboardQueue.Entry entry = switchboard.sbQueue.remove(i);
                                if ((entry != null) && (entry.profile() != null) && (!(entry.profile().storeHTCache()))) {
                                    switchboard.cacheManager.deleteFile(entry.url());
                                }
                                break;
                            }
                        }
                    }
                } catch (Exception e) {}
                prop.put("LOCATION","");
                return prop;
            }
        }
        yacySeed initiator;
        boolean dark;
        if ((switchboard.sbQueue.size() == 0) && (switchboard.indexingTasksInProcess.size() == 0)) {
            prop.put("indexing-queue", 0);
        } else {
            prop.put("indexing-queue", 1);
            dark = true;
            plasmaSwitchboardQueue.Entry pcentry;
            int inProcessCount = 0, entryCount = 0;
            long totalSize = 0;
            try {
                ArrayList entryList = new ArrayList();
                synchronized (switchboard.indexingTasksInProcess) {
                    inProcessCount = switchboard.indexingTasksInProcess.size();
                    entryList.addAll(switchboard.indexingTasksInProcess.values());
                }
                if ((switchboard.sbQueue.size() > 0)) {
                    entryList.addAll(switchboard.sbQueue.list(0));
                }
                int count=entryList.size();
                if(count>100)count=100;
                for (int i = 0; i < count; i++) {
                    boolean inProcess = i < inProcessCount;
                    pcentry = (plasmaSwitchboardQueue.Entry) entryList.get(i);
                    long entrySize = pcentry.size();
                    totalSize += entrySize;
                    if ((pcentry != null)&&(pcentry.url() != null)) {
                        initiator = yacyCore.seedDB.getConnected(pcentry.initiator());
                        prop.put("indexing-queue_list_"+entryCount+"_dark", (inProcess)? 2: ((dark) ? 1 : 0));
                        prop.put("indexing-queue_list_"+entryCount+"_initiator", ((initiator == null) ? "proxy" : wikiCode.replaceHTML(initiator.getName())));
                        prop.put("indexing-queue_list_"+entryCount+"_depth", pcentry.depth());
                        prop.put("indexing-queue_list_"+entryCount+"_modified", (pcentry.responseHeader() == null) ? "" : daydate(pcentry.responseHeader().lastModified()));
                        prop.put("indexing-queue_list_"+entryCount+"_anchor", (pcentry.anchorName()==null)?"":pcentry.anchorName());
                        prop.put("indexing-queue_list_"+entryCount+"_url", wikiCode.replaceHTML(pcentry.normalizedURLString()));
                        prop.put("indexing-queue_list_"+entryCount+"_size", bytesToString(entrySize));
                        prop.put("indexing-queue_list_"+entryCount+"_inProcess", (inProcess)?1:0);
                        prop.put("indexing-queue_list_"+entryCount+"_inProcess_hash", pcentry.urlHash());
                        dark = !dark;
                        entryCount++;
                    }
                }
            } catch (IOException e) {}
            prop.put("indexing-queue_num", entryCount);
            prop.put("indexing-queue_totalSize", bytesToString(totalSize));
            prop.put("indexing-queue_list", entryCount);
        }
        if (switchboard.urlPool.errorURL.stackSize() != 0) {
            if (showRejectedCount > switchboard.urlPool.errorURL.stackSize()) showRejectedCount = switchboard.urlPool.errorURL.stackSize();
            prop.put("rejected", 1);
            prop.put("rejected_num", switchboard.urlPool.errorURL.stackSize());
            if (showRejectedCount != switchboard.urlPool.errorURL.stackSize()) {
                prop.put("rejected_only-latest", 1);
                prop.put("rejected_only-latest_num", showRejectedCount);
                prop.put("rejected_only-latest_newnum", ((int) (showRejectedCount * 1.5)));
            }else{
                prop.put("rejected_only-latest", 0);
            }
            dark = true;
            String url, initiatorHash, executorHash;
            plasmaCrawlEURL.Entry entry;
            yacySeed initiatorSeed, executorSeed;
            int j=0;
            for ( int i = switchboard.urlPool.errorURL.stackSize() - 1; i >= (switchboard.urlPool.errorURL.stackSize() - showRejectedCount); i--) {
                entry = (plasmaCrawlEURL.Entry) switchboard.urlPool.errorURL.getStack(i);
                initiatorHash = entry.initiator();
                executorHash = entry.executor();
                url = entry.url().toString();
                initiatorSeed = yacyCore.seedDB.getConnected(initiatorHash);
                executorSeed = yacyCore.seedDB.getConnected(executorHash);
                prop.put("rejected_list_"+j+"_initiator", ((initiatorSeed == null) ? "proxy" : wikiCode.replaceHTML(initiatorSeed.getName())));
                prop.put("rejected_list_"+j+"_executor", ((executorSeed == null) ? "proxy" : wikiCode.replaceHTML(executorSeed.getName())));
                prop.put("rejected_list_"+j+"_url", wikiCode.replaceHTML(url));
                prop.put("rejected_list_"+j+"_failreason", entry.failreason());
                prop.put("rejected_list_"+j+"_dark", ((dark) ? 1 : 0));
                dark = !dark;
                j++;
            }
            prop.put("rejected_list", j);
        }
        return prop;
    }

Output:
    public static serverObjects respond(httpHeader header, serverObjects post, serverSwitch env) {
        plasmaSwitchboard switchboard = (plasmaSwitchboard) env;
        serverObjects prop = new serverObjects();
        prop.put("rejected", 0);
        int showRejectedCount = 10;
        if (post != null) {
            if (post.containsKey("clearRejected")) {
                switchboard.urlPool.errorURL.clearStack();
            }
            if (post.containsKey("moreRejected")) {
                showRejectedCount = Integer.parseInt(post.get("showRejected", "10"));
            }
            if (post.containsKey("clearIndexingQueue")) {
                try {
                    synchronized (switchboard.sbQueue) {
                        plasmaSwitchboardQueue.Entry entry = null;
                        while ((entry = switchboard.sbQueue.pop()) != null) {
                            if ((entry != null) && (entry.profile() != null) && (!(entry.profile().storeHTCache()))) {
                                switchboard.cacheManager.deleteFile(entry.url());
                            }
                        }
                    }
                } catch (Exception e) {}
            } else if (post.containsKey("deleteEntry")) {
                String urlHash = (String) post.get("deleteEntry");
                try {
                    synchronized (switchboard.sbQueue) {
                        ArrayList entries = switchboard.sbQueue.list(0);
                        for (int i=entries.size()-1; i >= 0; i--) {
                            plasmaSwitchboardQueue.Entry pcentry = (plasmaSwitchboardQueue.Entry) entries.get(i);
                            if (pcentry.urlHash().equals(urlHash)) {
                                plasmaSwitchboardQueue.Entry entry = switchboard.sbQueue.remove(i);
                                if ((entry != null) && (entry.profile() != null) && (!(entry.profile().storeHTCache()))) {
                                    switchboard.cacheManager.deleteFile(entry.url());
                                }
                                break;
                            }
                        }
                    }
                } catch (Exception e) {}
                prop.put("LOCATION","");
                return prop;
            }
        }
        yacySeed initiator;
        boolean dark;
        if ((switchboard.sbQueue.size() == 0) && (switchboard.indexingTasksInProcess.size() == 0)) {
            prop.put("indexing-queue", 0);
        } else {
            prop.put("indexing-queue", 1);
            dark = true;
            plasmaSwitchboardQueue.Entry pcentry;
            int inProcessCount = 0, entryCount = 0;
            long totalSize = 0;
            try {
                ArrayList entryList = new ArrayList();
                synchronized (switchboard.indexingTasksInProcess) {
                    inProcessCount = switchboard.indexingTasksInProcess.size();
                    entryList.addAll(switchboard.indexingTasksInProcess.values());
                }
                if ((switchboard.sbQueue.size() > 0)) {
                    entryList.addAll(switchboard.sbQueue.list(0));
                }
                for (int i = 0; i < entryList.size(); i++) {
                    boolean inProcess = i < inProcessCount;
                    pcentry = (plasmaSwitchboardQueue.Entry) entryList.get(i);
                    long entrySize = pcentry.size();
                    totalSize += entrySize;
                    if ((pcentry != null)&&(pcentry.url() != null)) {
                        initiator = yacyCore.seedDB.getConnected(pcentry.initiator());
                        prop.put("indexing-queue_list_"+entryCount+"_dark", (inProcess)? 2: ((dark) ? 1 : 0));
                        prop.put("indexing-queue_list_"+entryCount+"_initiator", ((initiator == null) ? "proxy" : wikiCode.replaceHTML(initiator.getName())));
                        prop.put("indexing-queue_list_"+entryCount+"_depth", pcentry.depth());
                        prop.put("indexing-queue_list_"+entryCount+"_modified", (pcentry.responseHeader() == null) ? "" : daydate(pcentry.responseHeader().lastModified()));
                        prop.put("indexing-queue_list_"+entryCount+"_anchor", (pcentry.anchorName()==null)?"":wikiCode.replaceHTML(pcentry.anchorName()));
                        prop.put("indexing-queue_list_"+entryCount+"_url", wikiCode.replaceHTML(pcentry.normalizedURLString()));
                        prop.put("indexing-queue_list_"+entryCount+"_size", bytesToString(entrySize));
                        prop.put("indexing-queue_list_"+entryCount+"_inProcess", (inProcess)?1:0);
                        prop.put("indexing-queue_list_"+entryCount+"_inProcess_hash", pcentry.urlHash());
                        dark = !dark;
                        entryCount++;
                    }
                }
            } catch (IOException e) {}
            prop.put("indexing-queue_num", entryCount);
            prop.put("indexing-queue_totalSize", bytesToString(totalSize));
            prop.put("indexing-queue_list", entryCount);
        }
        if (switchboard.urlPool.errorURL.stackSize() != 0) {
            if (showRejectedCount > switchboard.urlPool.errorURL.stackSize()) showRejectedCount = switchboard.urlPool.errorURL.stackSize();
            prop.put("rejected", 1);
            prop.put("rejected_num", switchboard.urlPool.errorURL.stackSize());
            if (showRejectedCount != switchboard.urlPool.errorURL.stackSize()) {
                prop.put("rejected_only-latest", 1);
                prop.put("rejected_only-latest_num", showRejectedCount);
                prop.put("rejected_only-latest_newnum", ((int) (showRejectedCount * 1.5)));
            }else{
                prop.put("rejected_only-latest", 0);
            }
            dark = true;
            String url, initiatorHash, executorHash;
            plasmaCrawlEURL.Entry entry;
            yacySeed initiatorSeed, executorSeed;
            int j=0;
            for ( int i = switchboard.urlPool.errorURL.stackSize() - 1; i >= (switchboard.urlPool.errorURL.stackSize() - showRejectedCount); i--) {
                entry = (plasmaCrawlEURL.Entry) switchboard.urlPool.errorURL.getStack(i);
                initiatorHash = entry.initiator();
                executorHash = entry.executor();
                url = entry.url().toString();
                initiatorSeed = yacyCore.seedDB.getConnected(initiatorHash);
                executorSeed = yacyCore.seedDB.getConnected(executorHash);
                prop.put("rejected_list_"+j+"_initiator", ((initiatorSeed == null) ? "proxy" : wikiCode.replaceHTML(initiatorSeed.getName())));
                prop.put("rejected_list_"+j+"_executor", ((executorSeed == null) ? "proxy" : wikiCode.replaceHTML(executorSeed.getName())));
                prop.put("rejected_list_"+j+"_url", wikiCode.replaceHTML(url));
                prop.put("rejected_list_"+j+"_failreason", entry.failreason());
                prop.put("rejected_list_"+j+"_dark", ((dark) ? 1 : 0));
                dark = !dark;
                j++;
            }
            prop.put("rejected_list", j);
        }
        return prop;
    }


Input:
    public void setScriptToTokenize(String script) {
        _queries.clear();
        String MULTI_LINE_COMMENT_END = "*/";
        String MULTI_LINE_COMMENT_BEGIN = "/*";
        script = script.replace('\r', ' ');
        StringBuffer curQuery = new StringBuffer();
        boolean isInLiteral = false;
        boolean isInMultiLineComment = false;
        boolean isInLineComment = false;
        int literalSepCount = 0;
        for (int i = 0; i < script.length(); ++i)
        {
            char c = script.charAt(i);
            if(false == isInLiteral)
            {
                if(isInLineComment && script.startsWith("\n", i - "\n".length()))
                {
                    isInLineComment = false;
                }
                if(isInMultiLineComment && script.startsWith(MULTI_LINE_COMMENT_END, i - MULTI_LINE_COMMENT_END.length()))
                {
                    isInMultiLineComment = false;
                }
                if(false == isInLineComment && false == isInMultiLineComment)
                {
                    isInMultiLineComment = script.startsWith(MULTI_LINE_COMMENT_BEGIN, i);
                    isInLineComment = script.startsWith(_lineCommentBegin, i);
                    if(isInMultiLineComment && _removeMultiLineComment)
                    {
                        i+=MULTI_LINE_COMMENT_BEGIN.length()+1;
                    }
                }
                if((isInMultiLineComment && _removeMultiLineComment) || isInLineComment)
                {
                    continue;
                }
            }
            curQuery.append(c);
            if ('\'' == c)
            {
                if(false == isInLiteral)
                {
                    isInLiteral = true;
                }
                else
                {
                    ++literalSepCount;
                }
            }
            else
            {
                if(0 != literalSepCount % 2)
                {
                    isInLiteral = false;
                }
                literalSepCount = 0;
            }
            int querySepLen =
                getLenOfQuerySepIfAtLastCharOfQuerySep(script, i, _querySep, isInLiteral);
            if(-1 < querySepLen)
            {
                int newLength = curQuery.length() - querySepLen;
                if(-1 < newLength && curQuery.length() > newLength)
                {
                    curQuery.setLength(newLength);
                    String newQuery = curQuery.toString().trim();
                    if(0 < newQuery.length())
                    {
                        _queries.add(curQuery.toString().trim());
                    }
                }
                curQuery.setLength(0);
            }
        }
        String lastQuery = curQuery.toString().trim();
        if(0 < lastQuery.length())
        {
            _queries.add(lastQuery.trim());
        }
        _queryIterator = _queries.iterator();
    }

Output:
    public void setScriptToTokenize(String script) {
        _queries.clear();
        String MULTI_LINE_COMMENT_END = "*/";
        String MULTI_LINE_COMMENT_BEGIN = "/*";
        script = script.replace('\r', ' ');
        StringBuffer curQuery = new StringBuffer();
        boolean isInLiteral = false;
        boolean isInMultiLineComment = false;
        boolean isInLineComment = false;
        int literalSepCount = 0;
        for (int i = 0; i < script.length(); ++i)
        {
            char c = script.charAt(i);
            if(false == isInLiteral)
            {
                if(isInLineComment && script.startsWith("\n", i - "\n".length()))
                {
                    isInLineComment = false;
                }
                if(isInMultiLineComment && script.startsWith(MULTI_LINE_COMMENT_END, i - MULTI_LINE_COMMENT_END.length()))
                {
                    isInMultiLineComment = false;
                }
                if(false == isInLineComment && false == isInMultiLineComment)
                {
                    isInMultiLineComment = script.startsWith(MULTI_LINE_COMMENT_BEGIN, i);
                    isInLineComment = script.startsWith(_lineCommentBegin, i);
                    if(isInMultiLineComment && _removeMultiLineComment)
                    {
                        i+=MULTI_LINE_COMMENT_BEGIN.length()+1;
                    }
                }
                if((isInMultiLineComment && _removeMultiLineComment) || isInLineComment)
                {
                    continue;
                }
            }
            curQuery.append(c);
            if ('\'' == c)
            {
                if(false == isInLiteral)
                {
                    isInLiteral = true;
                }
                else
                {
                    ++literalSepCount;
                }
            }
            else
            {
                if(0 != literalSepCount % 2)
                {
                    isInLiteral = false;
                }
                literalSepCount = 0;
            }
            int querySepLen =
                getLenOfQuerySepIfAtLastCharOfQuerySep(script, i, _querySep, isInLiteral);
            if(-1 < querySepLen && !isInMultiLineComment)
            {
                int newLength = curQuery.length() - querySepLen;
                if(-1 < newLength && curQuery.length() > newLength)
                {
                    curQuery.setLength(newLength);
                    String newQuery = curQuery.toString().trim();
                    if(0 < newQuery.length())
                    {
                        _queries.add(curQuery.toString().trim());
                    }
                }
                curQuery.setLength(0);
            }
        }
        String lastQuery = curQuery.toString().trim();
        if(0 < lastQuery.length())
        {
            _queries.add(lastQuery.trim());
        }
        _queryIterator = _queries.iterator();
    }


Input:
	protected Control createDialogArea(Composite parent) {
		WorkbenchHelp.setHelp(
			parent,
			IJavaDebugHelpContextIds.EDIT_DETAIL_FORMATTER_DIALOG);
		Font font = parent.getFont();
		Composite container = new Composite(parent, SWT.NONE);
		GridLayout layout = new GridLayout();
		container.setLayout(layout);
		GridData gd= new GridData(GridData.FILL_BOTH);
		container.setLayoutData(gd);
		Label label= new Label(container, SWT.NONE);
		label.setText(DebugUIMessages.getString("DetailFormatterDialog.Qualified_type_&name__2"));
		gd= new GridData(GridData.BEGINNING);
		label.setLayoutData(gd);
		label.setFont(font);
		Composite innerContainer = new Composite(container, SWT.NONE);
		layout = new GridLayout();
		layout.marginWidth = 0;
		layout.marginHeight = 0;
		layout.numColumns = 2;
		innerContainer.setLayout(layout);
		gd = new GridData(GridData.FILL_HORIZONTAL);
		innerContainer.setLayoutData(gd);
		fTypeNameText= new Text(innerContainer, SWT.SINGLE | SWT.BORDER);
		fTypeNameText.setEditable(fEditTypeName);
		fTypeNameText.setText(fDetailFormatter.getTypeName());
		gd= new GridData(GridData.FILL_HORIZONTAL);
		fTypeNameText.setLayoutData(gd);
		fTypeNameText.setFont(font);
		fTypeNameText.addModifyListener(new ModifyListener() {
			public void modifyText(ModifyEvent e) {
				fTypeSearched= false;
				checkValues();
			}
		});
		Button typeSearchButton = new Button(innerContainer, SWT.PUSH);
		typeSearchButton.setText(DebugUIMessages.getString("DetailFormatterDialog.Select_&type_4"));
		setButtonLayoutData(typeSearchButton);
		gd= (GridData)typeSearchButton.getLayoutData();
		gd.horizontalAlignment = GridData.END;
		typeSearchButton.setLayoutData(gd);
		typeSearchButton.setFont(font);
		typeSearchButton.addListener(SWT.Selection, new Listener() {
			public void handleEvent(Event e) {
				selectType();
			}
		});
		label= new Label(container, SWT.NONE);
		label.setText(DebugUIMessages.getString("DetailFormatterDialog.Detail_formatter_&code_snippet__1"));
		gd= new GridData(GridData.BEGINNING);
		label.setLayoutData(gd);
		label.setFont(font);
		fSnippetViewer= new JDISourceViewer(container,  null, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL );
		fSnippetViewer.setInput(this);
		JavaTextTools tools= JavaPlugin.getDefault().getJavaTextTools();
		IDocument document= new Document();
		IDocumentPartitioner partitioner= tools.createDocumentPartitioner();
		document.setDocumentPartitioner(partitioner);
		partitioner.connect(document);
		fSnippetViewer.configure(new DisplayViewerConfiguration() {
			public IContentAssistProcessor getContentAssistantProcessor() {
				return new DetailFormatterCompletionProcessor(DetailFormatterDialog.this);
			}
		});
		fSnippetViewer.setEditable(true);
		fSnippetViewer.setDocument(document);
		fSnippetViewer.getTextWidget().setFont(JFaceResources.getTextFont());
		Control control= fSnippetViewer.getControl();
		gd= new GridData(GridData.FILL_BOTH);
		gd.heightHint= convertHeightInCharsToPixels(10);
		gd.widthHint= convertWidthInCharsToPixels(80);
		control.setLayoutData(gd);
		document.set(fDetailFormatter.getSnippet());
		fSnippetViewer.getTextWidget().addVerifyKeyListener(new VerifyKeyListener() {
			public void verifyKey(VerifyEvent event) {
				if (event.stateMask == SWT.CTRL && event.keyCode == 0) {
					if (event.character == 0x20) {
						findCorrespondingType();
						fSnippetViewer.doOperation(ISourceViewer.CONTENTASSIST_PROPOSALS);
						event.doit= false;
					}
				}
			}
		});
		fSnippetViewer.getDocument().addDocumentListener(new IDocumentListener() {
			public void documentAboutToBeChanged(DocumentEvent event) {
			}
			public void documentChanged(DocumentEvent event) {
				checkValues();
			}
		});
		fCheckBox= new Button(container, SWT.CHECK | SWT.LEFT);
		fCheckBox.setText(DebugUIMessages.getString("DetailFormatterDialog.&Enable_1"));
		fCheckBox.setSelection(fDetailFormatter.isEnabled());
		fCheckBox.setFont(font);
		checkValues();
		return container;
	}

Output:
	protected Control createDialogArea(Composite parent) {
		WorkbenchHelp.setHelp(
			parent,
			IJavaDebugHelpContextIds.EDIT_DETAIL_FORMATTER_DIALOG);
		Font font = parent.getFont();
		Composite container = (Composite)super.createDialogArea(parent);
		Label label= new Label(container, SWT.NONE);
		label.setText(DebugUIMessages.getString("DetailFormatterDialog.Qualified_type_&name__2"));
		GridData gd= new GridData(GridData.BEGINNING);
		label.setLayoutData(gd);
		label.setFont(font);
		Composite innerContainer = new Composite(container, SWT.NONE);
		GridLayout layout = new GridLayout();
		layout.marginWidth = 0;
		layout.marginHeight = 0;
		layout.numColumns = 2;
		innerContainer.setLayout(layout);
		gd = new GridData(GridData.FILL_HORIZONTAL);
		innerContainer.setLayoutData(gd);
		fTypeNameText= new Text(innerContainer, SWT.SINGLE | SWT.BORDER);
		fTypeNameText.setEditable(fEditTypeName);
		fTypeNameText.setText(fDetailFormatter.getTypeName());
		gd= new GridData(GridData.FILL_HORIZONTAL);
		fTypeNameText.setLayoutData(gd);
		fTypeNameText.setFont(font);
		fTypeNameText.addModifyListener(new ModifyListener() {
			public void modifyText(ModifyEvent e) {
				fTypeSearched= false;
				checkValues();
			}
		});
		Button typeSearchButton = new Button(innerContainer, SWT.PUSH);
		typeSearchButton.setText(DebugUIMessages.getString("DetailFormatterDialog.Select_&type_4"));
		setButtonLayoutData(typeSearchButton);
		gd= (GridData)typeSearchButton.getLayoutData();
		gd.horizontalAlignment = GridData.END;
		typeSearchButton.setLayoutData(gd);
		typeSearchButton.setFont(font);
		typeSearchButton.addListener(SWT.Selection, new Listener() {
			public void handleEvent(Event e) {
				selectType();
			}
		});
		label= new Label(container, SWT.NONE);
		label.setText(DebugUIMessages.getString("DetailFormatterDialog.Detail_formatter_&code_snippet__1"));
		gd= new GridData(GridData.BEGINNING);
		label.setLayoutData(gd);
		label.setFont(font);
		fSnippetViewer= new JDISourceViewer(container,  null, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL );
		fSnippetViewer.setInput(this);
		JavaTextTools tools= JavaPlugin.getDefault().getJavaTextTools();
		IDocument document= new Document();
		IDocumentPartitioner partitioner= tools.createDocumentPartitioner();
		document.setDocumentPartitioner(partitioner);
		partitioner.connect(document);
		fSnippetViewer.configure(new DisplayViewerConfiguration() {
			public IContentAssistProcessor getContentAssistantProcessor() {
				return new DetailFormatterCompletionProcessor(DetailFormatterDialog.this);
			}
		});
		fSnippetViewer.setEditable(true);
		fSnippetViewer.setDocument(document);
		fSnippetViewer.getTextWidget().setFont(JFaceResources.getTextFont());
		Control control= fSnippetViewer.getControl();
		gd= new GridData(GridData.FILL_BOTH);
		gd.heightHint= convertHeightInCharsToPixels(10);
		gd.widthHint= convertWidthInCharsToPixels(80);
		control.setLayoutData(gd);
		document.set(fDetailFormatter.getSnippet());
		fSnippetViewer.getTextWidget().addVerifyKeyListener(new VerifyKeyListener() {
			public void verifyKey(VerifyEvent event) {
				if (event.stateMask == SWT.CTRL && event.keyCode == 0) {
					if (event.character == 0x20) {
						findCorrespondingType();
						fSnippetViewer.doOperation(ISourceViewer.CONTENTASSIST_PROPOSALS);
						event.doit= false;
					}
				}
			}
		});
		fSnippetViewer.getDocument().addDocumentListener(new IDocumentListener() {
			public void documentAboutToBeChanged(DocumentEvent event) {
			}
			public void documentChanged(DocumentEvent event) {
				checkValues();
			}
		});
		fCheckBox= new Button(container, SWT.CHECK | SWT.LEFT);
		fCheckBox.setText(DebugUIMessages.getString("DetailFormatterDialog.&Enable_1"));
		fCheckBox.setSelection(fDetailFormatter.isEnabled());
		fCheckBox.setFont(font);
		checkValues();
		return container;
	}


Input:
    public static void main(String[] args) {
        OTPMain main = new OTPMain();
        JCommander jc = new JCommander(main, args);
        if (main.help) {
            jc.usage();
            System.exit(0);
        }
        main.run();
    }

Output:
    public static void main(String[] args) {
        OTPMain main = new OTPMain();
        JCommander jc = new JCommander(main, args);
        if (main.help) {
            jc.usage();
            System.exit(0);
        }
        while (true) {
            try {
                main.run();
                return;
            }
            catch (Throwable throwable) {
                LOG.error("An uncaught " + throwable.getClass().getSimpleName()
                        + " occurred inside OTP. Restarting server.", throwable);
            }
        }
    }


Input:
    public void startApp() {
	Display display = Display.getDisplay(this);
	try {
	    Alert a = new Alert("Loading Hecl", "Loading Hecl...", null, AlertType.INFO);
	    display.setCurrent(a);
	    a.setTimeout(10000);
	    a.setIndicator(new Gauge(null, false,
				     Gauge.INDEFINITE, Gauge.CONTINUOUS_RUNNING));
	    interp = new Interp();
	    Vector v = new Vector();
	    for(int i = 0; i<args.length; ++i) {
		v.addElement(new Thing(args[i]));
	    }
	    interp.setVar("argv", ListThing.create(v));
	    RMSCmd.load(interp);
	    HttpCmd.load(interp);
	    Base64Cmd.load(interp);
	    org.hecl.kxml.KXMLCmd.load(interp);
	    MidletCmd.load(interp,this);
			 org.hecl.mwtgui.MwtCmds.load(interp, this);
	    String scriptcontent =
		HeclUtils.getResourceAsString(this.getClass(),"/script.hcl","UTF-8");
	    interp.setVar("splash", ObjectThing.create(a));
	    evaltask = interp.evalIdle(new Thing(scriptcontent));
	}
	catch (Exception e) {
	    e.printStackTrace();
	    destroyApp(true);
	}
    }

Output:
    public void startApp() {
	Display display = Display.getDisplay(this);
	try {
	    Alert a = new Alert("Loading Hecl", "Loading Hecl...", null, AlertType.INFO);
	    display.setCurrent(a);
	    a.setTimeout(Alert.FOREVER);
	    a.setIndicator(new Gauge(null, false,
				     Gauge.INDEFINITE, Gauge.CONTINUOUS_RUNNING));
	    interp = new Interp();
	    Vector v = new Vector();
	    for(int i = 0; i<args.length; ++i) {
		v.addElement(new Thing(args[i]));
	    }
	    interp.setVar("argv", ListThing.create(v));
	    RMSCmd.load(interp);
	    HttpCmd.load(interp);
	    Base64Cmd.load(interp);
	    org.hecl.kxml.KXMLCmd.load(interp);
	    MidletCmd.load(interp,this);
			 org.hecl.mwtgui.MwtCmds.load(interp, this);
	    String scriptcontent =
		HeclUtils.getResourceAsString(this.getClass(),"/script.hcl","UTF-8");
	    interp.setVar("splash", ObjectThing.create(a));
	    evaltask = interp.evalIdle(new Thing(scriptcontent));
	}
	catch (Exception e) {
	    e.printStackTrace();
	    destroyApp(true);
	}
    }


Input:
	public void render(HttpServletRequest req, HttpServletResponse resp, Object obj)
			throws Exception {
		Mirror<?> mirror = Mirror.me(obj);
		boolean isMap = null != obj && obj instanceof Map<?, ?>;
		Map<?, ?> map = (Map<?, ?>) obj;
		Set<String> keySet = dest.keys();
		Iterator<String> it = keySet.iterator();
		while (it.hasNext()) {
			String key = it.next();
			Object value = null;
			int length = key.length();
			if (key.startsWith("p.") && length > 2) {
				value = req.getParameter(key.substring(2));
			}
			else if (isMap && key.startsWith("obj.") && length > 4) {
				value = map.get(key);
			}
			else if (null != mirror && key.startsWith("obj.") && length > 4) {
				value = mirror.getValue(obj, key.substring(4));
			}
			else {
				value = obj;
			}
			if (null == value)
				value = obj;
			dest.set(key, value);
		}
		String path = dest.toString();
		if (path.startsWith("http://") || path.startsWith("https://")) {}
		else if (path.startsWith("/")) {
			path = req.getContextPath() + path;
		}
		else {
			String myPath = req.getPathInfo();
			int pos = myPath.lastIndexOf('/');
			if (pos > 0)
				path = myPath.substring(0, pos) + "/" + path;
			else
				path = "/" + path;
		}
		resp.sendRedirect(path);
		resp.flushBuffer();
	}

Output:
	public void render(HttpServletRequest req, HttpServletResponse resp, Object obj)
			throws Exception {
		Mirror<?> mirror = Mirror.me(obj);
		boolean isMap = null != obj && obj instanceof Map<?, ?>;
		Map<?, ?> map = isMap ? null : (Map<?, ?>) obj;
		Set<String> keySet = dest.keys();
		Iterator<String> it = keySet.iterator();
		while (it.hasNext()) {
			String key = it.next();
			Object value = null;
			int length = key.length();
			if (key.startsWith("p.") && length > 2) {
				value = req.getParameter(key.substring(2));
			}
			else if (isMap && key.startsWith("obj.") && length > 4) {
				value = map.get(key);
			}
			else if (null != mirror && key.startsWith("obj.") && length > 4) {
				value = mirror.getValue(obj, key.substring(4));
			}
			else {
				value = obj;
			}
			if (null == value)
				value = obj;
			dest.set(key, value);
		}
		String path = dest.toString();
		if (path.startsWith("http://") || path.startsWith("https://")) {}
		else if (path.startsWith("/")) {
			path = req.getContextPath() + path;
		}
		else {
			String myPath = req.getPathInfo();
			int pos = myPath.lastIndexOf('/');
			if (pos > 0)
				path = myPath.substring(0, pos) + "/" + path;
			else
				path = "/" + path;
		}
		resp.sendRedirect(path);
		resp.flushBuffer();
	}


Input:
	private void createFile(IProject project, IPath projectRelativePath, String content,
			boolean firstTimeOnly, IProgressMonitor monitor) {
		try {
			IContainer container = project;
			String[] folders = projectRelativePath.removeLastSegments(1).segments();
			for (int i = 0; i < folders.length; i++) {
				container = container.getFolder(new Path(folders[i]));
				if (!container.exists()) {
					((IFolder)container).create(true, true, monitor);
				}
			}
			IFile file = container.getFile(new Path(projectRelativePath.lastSegment()));
			if (!file.exists() && file.getParent().exists()) {
				IResource[] members = file.getParent().members(IResource.FILE);
				for (int i = 0; i < members.length; i++) {
					if (members[i] instanceof IFile
							&& file.getName().toLowerCase().equals(members[i].getName().toLowerCase())) {
						file = (IFile)members[i];
						break;
					}
				}
			}
			String text = content;
			if (!firstTimeOnly && file.exists() && "java".equals(file.getFileExtension())) {
				String jmergeFile = URI.createPlatformPluginURI(
						"org.eclipse.emf.codegen.ecore/templates/emf-merge.xml", false).toString();
				JControlModel model = new JControlModel();
				ASTFacadeHelper astFacadeHelper = new ASTFacadeHelper();
				model.initialize(astFacadeHelper, jmergeFile);
				if (model.canMerge()) {
					JMerger jMerger = new JMerger(model);
					jMerger.setSourceCompilationUnit(jMerger.createCompilationUnitForContents(text));
					try {
						jMerger.setTargetCompilationUnit(jMerger
								.createCompilationUnitForInputStream(new FileInputStream(file.getLocation()
										.toFile())));
						jMerger.merge();
						text = jMerger.getTargetCompilationUnit().getContents();
					} catch (FileNotFoundException e) {
						AcceleoUIActivator.getDefault().getLog().log(
								new Status(IStatus.ERROR, AcceleoUIActivator.PLUGIN_ID, e.getMessage(), e));
					}
				} else {
					AcceleoUIActivator.getDefault().getLog().log(
							new Status(IStatus.WARNING, AcceleoUIActivator.PLUGIN_ID, AcceleoUIMessages
									.getString("CreateRunnableAcceleoOperation.MergerFailure"), null));
				}
			}
			if (!file.exists()
					|| (!firstTimeOnly && !text.equals(FileContent
							.getFileContent(file.getLocation().toFile()).toString()))) {
				ByteArrayInputStream javaStream = new ByteArrayInputStream(text.getBytes("UTF8"));
				if (!file.exists()) {
					file.create(javaStream, true, monitor);
				} else if (!firstTimeOnly) {
					file.setContents(javaStream, true, false, monitor);
				}
			}
		} catch (CoreException e) {
			IStatus status = new Status(IStatus.ERROR, AcceleoUIActivator.PLUGIN_ID, IStatus.OK, e
					.getMessage(), e);
			AcceleoUIActivator.getDefault().getLog().log(status);
		} catch (UnsupportedEncodingException e) {
			IStatus status = new Status(IStatus.ERROR, AcceleoUIActivator.PLUGIN_ID, IStatus.OK, e
					.getMessage(), e);
			AcceleoUIActivator.getDefault().getLog().log(status);
		}
	}

Output:
	private void createFile(IProject project, IPath projectRelativePath, String content,
			boolean firstTimeOnly, IProgressMonitor monitor) {
		try {
			IContainer container = project;
			String[] folders = projectRelativePath.removeLastSegments(1).segments();
			for (int i = 0; i < folders.length; i++) {
				container = container.getFolder(new Path(folders[i]));
				if (!container.exists()) {
					((IFolder)container).create(true, true, monitor);
				}
			}
			IFile file = container.getFile(new Path(projectRelativePath.lastSegment()));
			if (!file.exists() && file.getParent().exists()) {
				IResource[] members = file.getParent().members(IResource.FILE);
				for (int i = 0; i < members.length; i++) {
					if (members[i] instanceof IFile
							&& file.getName().toLowerCase().equals(members[i].getName().toLowerCase())) {
						file = (IFile)members[i];
						break;
					}
				}
			}
			String text = content;
			if (!firstTimeOnly && file.exists() && "java".equals(file.getFileExtension())) {
				String jmergeFile = URI.createPlatformPluginURI(
						"org.eclipse.emf.codegen.ecore/templates/emf-merge.xml", false).toString();
				JControlModel model = new JControlModel();
				ASTFacadeHelper astFacadeHelper = new ASTFacadeHelper();
				model.initialize(astFacadeHelper, jmergeFile);
				if (model.canMerge()) {
					JMerger jMerger = new JMerger(model);
					jMerger.setSourceCompilationUnit(jMerger.createCompilationUnitForContents(text));
					try {
						jMerger.setTargetCompilationUnit(jMerger
								.createCompilationUnitForInputStream(new FileInputStream(file.getLocation()
										.toFile())));
						jMerger.merge();
						text = jMerger.getTargetCompilationUnit().getContents();
					} catch (FileNotFoundException e) {
						AcceleoUIActivator.getDefault().getLog().log(
								new Status(IStatus.ERROR, AcceleoUIActivator.PLUGIN_ID, e.getMessage(), e));
					}
				} else {
					AcceleoUIActivator.getDefault().getLog().log(
							new Status(IStatus.WARNING, AcceleoUIActivator.PLUGIN_ID, AcceleoUIMessages
									.getString("CreateRunnableAcceleoOperation.MergerUnusable"), null));
				}
			}
			if (!file.exists()
					|| (!firstTimeOnly && !text.equals(FileContent
							.getFileContent(file.getLocation().toFile()).toString()))) {
				ByteArrayInputStream javaStream = new ByteArrayInputStream(text.getBytes("UTF8"));
				if (!file.exists()) {
					file.create(javaStream, true, monitor);
				} else if (!firstTimeOnly) {
					file.setContents(javaStream, true, false, monitor);
				}
			}
		} catch (CoreException e) {
			IStatus status = new Status(IStatus.ERROR, AcceleoUIActivator.PLUGIN_ID, IStatus.OK, e
					.getMessage(), e);
			AcceleoUIActivator.getDefault().getLog().log(status);
		} catch (UnsupportedEncodingException e) {
			IStatus status = new Status(IStatus.ERROR, AcceleoUIActivator.PLUGIN_ID, IStatus.OK, e
					.getMessage(), e);
			AcceleoUIActivator.getDefault().getLog().log(status);
		}
	}


Input:
	public void onCreate(Bundle savedInstanceState) {
        getActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(android.R.color.holo_blue_dark)));
        getActionBar().setDisplayShowHomeEnabled(true);
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		final Button button = (Button)findViewById(R.id.button);
		button.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
				pbarDialog = ProgressDialog.show(IconRequest.this,
						"Please wait...", "Gathering application info...", true);
				Thread designriftsThread = new Thread()
				{
					@Override
					public void run()
					{
						Looper.prepare();
						final File save_loc = new File(SAVE_LOC);
						save_loc.mkdirs();
						final PackageManager packageManager = getPackageManager();
						final StringBuilder sb = new StringBuilder( );
						final Intent intent = new Intent("android.intent.action.MAIN");
						intent.addCategory("android.intent.category.LAUNCHER");
						final List<ResolveInfo> activities = packageManager.queryIntentActivities( intent, 0 );
						final int size = activities.size();
						if (size == 0) {
							finish();
						}
						for (int i = 0; i < size; i++)
						{
							final ResolveInfo info = activities.get(i);
							final String label = info.loadLabel(packageManager).toString();
							final Drawable icon = info.loadIcon(packageManager);
							final String pkgName = info.activityInfo.packageName;
							final String className = info.activityInfo.name;
							sb.append("<!-- " + label + " -->\n<item component=\""+pkgName+"/"+className+"\" drawable=\""+label+"\" />");
							sb.append("\n");
							sb.append("\n");
							Bitmap bitmap = ((BitmapDrawable)icon).getBitmap();
							FileOutputStream fOut;
							try {
								fOut = new FileOutputStream(SAVE_LOC + "/" + pkgName + ".png");
								bitmap.compress(Bitmap.CompressFormat.PNG,100,fOut);
								fOut.flush();fOut.close();
							} catch (FileNotFoundException e) {	}
							catch (IOException e) {	}
						}
						try {
							FileWriter fstream = new FileWriter(SAVE_LOC + "/+appfilter.xml");
							BufferedWriter out = new BufferedWriter(fstream);
							out.write(sb.toString());
							out.close();
						} catch (Exception e){}
						createZipFile(SAVE_LOC, true, SD + "/" + android.os.Build.MODEL + ".zip");
						handler.sendEmptyMessage(0);
					}
				};
				designriftsThread.start();
			}
		});
	}

Output:
	public void onCreate(Bundle savedInstanceState) {
        getActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(android.R.color.holo_blue_dark)));
        getActionBar().setDisplayShowHomeEnabled(true);
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		final Button button = (Button)findViewById(R.id.button);
		button.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
				pbarDialog = ProgressDialog.show(IconRequest.this,
						"Please wait...", "Gathering application info...", true);
				Thread designriftsThread = new Thread()
				{
					@Override
					public void run()
					{
						Looper.prepare();
						final File save_loc = new File(SAVE_LOC);
						save_loc.mkdirs();
						final PackageManager packageManager = getPackageManager();
						final StringBuilder sb = new StringBuilder( );
						final Intent intent = new Intent("android.intent.action.MAIN");
						intent.addCategory("android.intent.category.LAUNCHER");
						final List<ResolveInfo> activities = packageManager.queryIntentActivities( intent, 0 );
						final int size = activities.size();
						if (size == 0) {
							finish();
						}
						for (int i = 0; i < size; i++)
						{
							final ResolveInfo info = activities.get(i);
							final String label = info.loadLabel(packageManager).toString();
							final Drawable icon = info.loadIcon(packageManager);
							final String pkgName = info.activityInfo.packageName;
							final String className = info.activityInfo.name;
							sb.append("<!-- " + label + " -->\n<!-- " + pkgName + " -->\n<item component=\""+pkgName+"/"+className+"\" drawable=\""+label.replace(" ", "")+"\" />");
							sb.append("\n");
							sb.append("\n");
							Bitmap bitmap = ((BitmapDrawable)icon).getBitmap();
							FileOutputStream fOut;
							try {
								fOut = new FileOutputStream(SAVE_LOC + "/" + pkgName + ".png");
								bitmap.compress(Bitmap.CompressFormat.PNG,100,fOut);
								fOut.flush();fOut.close();
							} catch (FileNotFoundException e) {	}
							catch (IOException e) {	}
						}
						try {
							FileWriter fstream = new FileWriter(SAVE_LOC + "/appfilter.xml");
							BufferedWriter out = new BufferedWriter(fstream);
							out.write(sb.toString());
							out.close();
						} catch (Exception e){}
						createZipFile(SAVE_LOC, true, SD + "/" + android.os.Build.MODEL + ".zip");
						handler.sendEmptyMessage(0);
					}
				};
				designriftsThread.start();
			}
		});
	}


Input:
    public void testEventAssertion() throws Exception {
        KnowledgeBase kbase = loadKnowledgeBase( "test_EntryPoint.drl" );
        KnowledgeSessionConfiguration conf = new SessionConfiguration();
        ((SessionConfiguration) conf).setClockType( ClockType.PSEUDO_CLOCK );
        StatefulKnowledgeSession session = kbase.newStatefulSession( conf );
        final List results = new ArrayList();
        session.setGlobal( "results",
                           results );
        StockTick tick1 = new StockTick( 1,
                                         "DROO",
                                         50,
                                         System.currentTimeMillis() );
        StockTick tick2 = new StockTick( 2,
                                         "ACME",
                                         10,
                                         System.currentTimeMillis() );
        StockTick tick3 = new StockTick( 3,
                                         "ACME",
                                         10,
                                         System.currentTimeMillis() );
        StockTick tick4 = new StockTick( 4,
                                         "DROO",
                                         50,
                                         System.currentTimeMillis() );
        InternalFactHandle handle1 = (InternalFactHandle) session.insert( tick1 );
        InternalFactHandle handle2 = (InternalFactHandle) session.insert( tick2 );
        InternalFactHandle handle3 = (InternalFactHandle) session.insert( tick3 );
        InternalFactHandle handle4 = (InternalFactHandle) session.insert( tick4 );
        assertNotNull( handle1 );
        assertNotNull( handle2 );
        assertNotNull( handle3 );
        assertNotNull( handle4 );
        assertTrue( handle1.isEvent() );
        assertTrue( handle2.isEvent() );
        assertTrue( handle3.isEvent() );
        assertTrue( handle4.isEvent() );
        session.fireAllRules();
        assertEquals( 0,
                      results.size() );
        StockTick tick5 = new StockTick( 5,
                                         "DROO",
                                         50,
                                         System.currentTimeMillis() );
        StockTick tick6 = new StockTick( 6,
                                         "ACME",
                                         10,
                                         System.currentTimeMillis() );
        StockTick tick7 = new StockTick( 7,
                                         "ACME",
                                         15,
                                         System.currentTimeMillis() );
        StockTick tick8 = new StockTick( 8,
                                         "DROO",
                                         50,
                                         System.currentTimeMillis() );
        WorkingMemoryEntryPoint entry = session.getWorkingMemoryEntryPoint( "StockStream" );
        InternalFactHandle handle5 = (InternalFactHandle) entry.insert( tick5 );
        InternalFactHandle handle6 = (InternalFactHandle) entry.insert( tick6 );
        InternalFactHandle handle7 = (InternalFactHandle) entry.insert( tick7 );
        InternalFactHandle handle8 = (InternalFactHandle) entry.insert( tick8 );
        assertNotNull( handle5 );
        assertNotNull( handle6 );
        assertNotNull( handle7 );
        assertNotNull( handle8 );
        assertTrue( handle5.isEvent() );
        assertTrue( handle6.isEvent() );
        assertTrue( handle7.isEvent() );
        assertTrue( handle8.isEvent() );
        session.fireAllRules();
        assertEquals( 1,
                      results.size() );
        assertSame( tick7,
                    results.get( 0 ) );
    }

Output:
    public void testEventAssertion() throws Exception {
        KnowledgeBase kbase = loadKnowledgeBase( "test_EntryPoint.drl" );
        KnowledgeSessionConfiguration conf = new SessionConfiguration();
        ((SessionConfiguration) conf).setClockType( ClockType.PSEUDO_CLOCK );
        StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession( conf );
        final List results = new ArrayList();
        session.setGlobal( "results",
                           results );
        StockTick tick1 = new StockTick( 1,
                                         "DROO",
                                         50,
                                         System.currentTimeMillis() );
        StockTick tick2 = new StockTick( 2,
                                         "ACME",
                                         10,
                                         System.currentTimeMillis() );
        StockTick tick3 = new StockTick( 3,
                                         "ACME",
                                         10,
                                         System.currentTimeMillis() );
        StockTick tick4 = new StockTick( 4,
                                         "DROO",
                                         50,
                                         System.currentTimeMillis() );
        InternalFactHandle handle1 = (InternalFactHandle) session.insert( tick1 );
        InternalFactHandle handle2 = (InternalFactHandle) session.insert( tick2 );
        InternalFactHandle handle3 = (InternalFactHandle) session.insert( tick3 );
        InternalFactHandle handle4 = (InternalFactHandle) session.insert( tick4 );
        assertNotNull( handle1 );
        assertNotNull( handle2 );
        assertNotNull( handle3 );
        assertNotNull( handle4 );
        assertTrue( handle1.isEvent() );
        assertTrue( handle2.isEvent() );
        assertTrue( handle3.isEvent() );
        assertTrue( handle4.isEvent() );
        session.fireAllRules();
        assertEquals( 0,
                      results.size() );
        StockTick tick5 = new StockTick( 5,
                                         "DROO",
                                         50,
                                         System.currentTimeMillis() );
        StockTick tick6 = new StockTick( 6,
                                         "ACME",
                                         10,
                                         System.currentTimeMillis() );
        StockTick tick7 = new StockTick( 7,
                                         "ACME",
                                         15,
                                         System.currentTimeMillis() );
        StockTick tick8 = new StockTick( 8,
                                         "DROO",
                                         50,
                                         System.currentTimeMillis() );
        WorkingMemoryEntryPoint entry = session.getWorkingMemoryEntryPoint( "StockStream" );
        InternalFactHandle handle5 = (InternalFactHandle) entry.insert( tick5 );
        InternalFactHandle handle6 = (InternalFactHandle) entry.insert( tick6 );
        InternalFactHandle handle7 = (InternalFactHandle) entry.insert( tick7 );
        InternalFactHandle handle8 = (InternalFactHandle) entry.insert( tick8 );
        assertNotNull( handle5 );
        assertNotNull( handle6 );
        assertNotNull( handle7 );
        assertNotNull( handle8 );
        assertTrue( handle5.isEvent() );
        assertTrue( handle6.isEvent() );
        assertTrue( handle7.isEvent() );
        assertTrue( handle8.isEvent() );
        session.fireAllRules();
        assertEquals( 1,
                      results.size() );
        assertSame( tick7,
                    results.get( 0 ) );
    }