I want to create a child If node with my URCap, with the condition: test≟"test". Is this possible?
I obtained the ≟ Unicode character in this way:
Ctrl + Shift + U -> 225f -> Space
This is the Java code to create the If node:
manager = apiProvider.getProgramAPI().getUndoRedoManager();
contribution = apiProvider.getProgramAPI().getInstallationNode(PatternSelectorInstallationNodeContribution.class);
programNodeFactory = apiProvider.getProgramAPI().getProgramModel().getProgramNodeFactory();
ProgramAPI programAPI = apiProvider.getProgramAPI();
ProgramModel programModel = programAPI.getProgramModel();
rootTreeNode = programModel.getRootTreeNode(this);
lockTreeNodes();
IfNode ifNode = programNodeFactory.createIfNode();
try {
ExpressionBuilder builder = apiProvider.getProgramAPI().getValueFactoryProvider().createExpressionBuilder();
Expression expression;
try {
expression = builder.append("test").append("≟").append("\"test\"").build();
ifNode = ifNode.setExpression(expression);
} catch (InvalidExpressionException e) {
e.printStackTrace();
}
ifTreeNode = rootTreeNode.addChild(ifNode);
} catch (TreeStructureException e1) {
e1.printStackTrace();
}
The condition in the If node is empty, while if I write <
instead of ≟
I see the correct condition If test<“test”.
This is the first part of the error in the console:
com.ur.urcap.api.domain.value.expression.InvalidExpressionException: Lexer exception on line 1: var_1 = test≟"test"
at com.ur.urcap.domain.expression.ExpressionParser.checkValidity(ExpressionParser.java:34)
at com.ur.urcap.domain.expression.ExpressionParser.parseExpression(ExpressionParser.java:23)
at com.ur.urcap.domain.expression.ExpressionBuilderImpl.build_aroundBody20(ExpressionBuilderImpl.java:83)
at com.ur.urcap.domain.expression.ExpressionBuilderImpl$AjcClosure21.run(ExpressionBuilderImpl.java:1)
at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)
at com.ur.polyscope.valueobjects.aspects.UncaughtExceptionAspect.aroundMethod(UncaughtExceptionAspect.java:24)
at com.ur.urcap.domain.expression.ExpressionBuilderImpl.build(ExpressionBuilderImpl.java:82)