use of com.dexels.navajo.document.navascript.tags.ExpressionTag in project navajo by Dexels.
the class NS3ToNSXML method parseAdapterField.
private void parseAdapterField(FieldTag parent, XMLElement currentXML) throws Exception {
// MethodName
Vector<XMLElement> children = currentXML.getChildren();
parent.setOldSkool(true);
for (XMLElement child : children) {
String name = child.getName();
String content = (child.getContent() != null && !"".equals(child.getContent()) ? child.getContent() : null);
if (name.equals("Conditional")) {
ConditionFragment currentFragment = new ConditionFragment();
consumeContent(currentFragment, child);
parent.setCondition(currentFragment.consumedFragment());
}
if (name.equals("FieldName")) {
parent.setFieldName(content);
}
if (name.equals("ConditionalExpressions")) {
List<ExpressionTag> expressions = parseConditionalExpressions(parent, child);
for (ExpressionTag et : expressions) {
parent.addExpression(et);
}
}
if (name.equals("MappedArrayField")) {
// <map ref="$"
MapTag maf = parseMappedArrayField((MapTag) parent.getParent(), child);
parent.addMap(maf);
}
if (name.equals("MappedMessage")) {
// map ref="[/@]"
MapTag mt = parseMappedMessage(parent, child);
parent.addMap(mt);
}
if (name.equals("MappedArrayMessage")) {
MapTag mt = parsedMappedArrayMessage(parent, child);
parent.addMap(mt);
}
if (name.equals("StringConstant")) {
String c = content.replaceAll("\"", "");
ExpressionTag et = new ExpressionTag(myNavascript);
et.setConstant(c);
parent.addExpression(et);
}
}
}
use of com.dexels.navajo.document.navascript.tags.ExpressionTag in project navajo by Dexels.
the class NS3ToNSXML method parseConditionalExpressions.
/**
* parent is ParamTag or PropertyTag or FieldTag
*
* Conditional
* Expression
* Conditional
* TOKEN else
* Expression
*
* @param parent
* @param xe
*/
private List<ExpressionTag> parseConditionalExpressions(NS3Compatible parent, XMLElement currentXML) {
List<ExpressionTag> expressions = new ArrayList<>();
currentXML.setAttribute("PROCESSED", "true");
Vector<XMLElement> children = currentXML.getChildren();
ConditionFragment conditionFragment = null;
for (XMLElement child : children) {
String name = child.getName();
String content = (child.getContent() != null && !"".equals(child.getContent()) ? child.getContent() : null);
if (name.equals("Conditional")) {
conditionFragment = new ConditionFragment();
consumeContent(conditionFragment, child);
}
if (name.equals("StringConstant")) {
String constant = content.replaceAll("\"", "");
ExpressionTag et = new ExpressionTag(myNavascript);
if (conditionFragment != null) {
et.setCondition(conditionFragment.consumedFragment());
}
et.setConstant(constant);
expressions.add(et);
conditionFragment = null;
}
if (name.equals("Expression")) {
ExpressionFragment ef = new ExpressionFragment();
consumeContent(ef, child);
ExpressionTag et = new ExpressionTag(myNavascript);
if (conditionFragment != null) {
et.setCondition(conditionFragment.consumedFragment());
}
et.setValue(ef.consumedFragment());
expressions.add(et);
conditionFragment = null;
}
if (name.equals("TOKEN") && content.trim().equals("else")) {
conditionFragment = null;
}
}
return expressions;
}
use of com.dexels.navajo.document.navascript.tags.ExpressionTag in project navajo by Dexels.
the class NS3ToNSXML method parseProperty.
private NS3Compatible parseProperty(NS3Compatible parent, XMLElement currentXML) throws Exception {
currentXML.setAttribute("PROCESSED", "true");
PropertyTag pt = new PropertyTag(myNavascript);
pt.addParent(parent);
Vector<XMLElement> children = currentXML.getChildren();
for (XMLElement child : children) {
String name = child.getName();
String content = (child.getContent() != null && !"".equals(child.getContent()) ? child.getContent() : null);
if (name.equals("TOKEN")) {
if (content.equals("value")) {
pt.setName("value");
}
if (content.equals("name")) {
pt.setName("name");
}
if (content.equals("selected")) {
pt.setName("selected");
}
}
if (name.equals("Conditional")) {
ConditionFragment currentFragment = new ConditionFragment();
consumeContent(currentFragment, child);
pt.setCondition(currentFragment.consumedFragment());
}
if (name.equals("PropertyName")) {
pt.setName(content);
}
if (name.equals("PropertyArguments")) {
parsePropertyArguments(pt, child);
}
if (name.equals("ConditionalExpressions")) {
List<ExpressionTag> expressions = parseConditionalExpressions(pt, child);
for (ExpressionTag et : expressions) {
pt.addExpression(et);
}
}
if (name.equals("StringConstant")) {
String c = content.replaceAll("\"", "");
ExpressionTag et = new ExpressionTag(myNavascript);
et.setConstant(c);
pt.addExpression(et);
}
if (name.equals("MappedArrayFieldSelection")) {
MapTag maf = parseMappedArrayField(parent, child);
pt.addMap(maf);
}
if (name.equals("MappedArrayMessageSelection")) {
MapTag maf = parsedMappedArrayMessage(parent, child);
pt.addMap(maf);
}
// Use SelectionMap in combination with a param array message to support this construction in navascript XML.
if (name.equals("SelectionArray")) {
// Create param array
ParamTag paramtag = new ParamTag(myNavascript);
paramtag.setType(Message.MSG_TYPE_ARRAY);
paramtag.setName(randomParamName(pt.getName() + "_selections"));
myNavascript.addParam(paramtag);
// Create com.dexels.navajo.adapter.SelectionMap
MapTag mt = new MapTag(myNavascript);
mt.setObject("com.dexels.navajo.adapter.SelectionMap");
mt.setOldStyleMap(true);
FieldTag fieldOptions = new FieldTag(mt);
fieldOptions.setFieldName("options");
fieldOptions.setOldSkool(true);
MapTag mappedOptions = new MapTag(myNavascript);
fieldOptions.addMap(mappedOptions);
mappedOptions.setOldStyleMap(true);
mappedOptions.setRefAttribute("[/@" + paramtag.getName() + "]");
// Add name, value, selected
FieldTag nameField = new FieldTag(mappedOptions);
nameField.setOldSkool(true);
nameField.setFieldName("optionName");
mappedOptions.addField(nameField);
nameField.addExpression(null, "[name]");
FieldTag valueField = new FieldTag(mappedOptions);
valueField.setOldSkool(true);
valueField.setFieldName("optionValue");
mappedOptions.addField(valueField);
valueField.addExpression(null, "[value]");
FieldTag selectedField = new FieldTag(mappedOptions);
selectedField.setOldSkool(true);
selectedField.setFieldName("optionSelected");
mappedOptions.addField(selectedField);
selectedField.addExpression(null, "[selected]");
// add options field to map
mt.addField(fieldOptions);
// add property to selectionmap
mt.addProperty(pt);
MapTag refOptions = new MapTag(myNavascript);
refOptions.setOldStyleMap(true);
refOptions.setRefAttribute("options");
pt.addMap(refOptions);
PropertyTag nameProp = new PropertyTag(myNavascript);
nameProp.setName("name");
nameProp.addExpression(null, "$optionName");
refOptions.addProperty(nameProp);
PropertyTag valueProp = new PropertyTag(myNavascript);
valueProp.setName("value");
valueProp.addExpression(null, "$optionValue");
refOptions.addProperty(valueProp);
PropertyTag selectedProp = new PropertyTag(myNavascript);
selectedProp.setName("selected");
selectedProp.addExpression(null, "$optionSelected");
refOptions.addProperty(selectedProp);
// Fetch the array elements to construct a param array message to store them.
parseSelectionArrayElements(paramtag, mt, child);
// Return the map instead of the property.
return mt;
}
}
return pt;
}
use of com.dexels.navajo.document.navascript.tags.ExpressionTag in project navajo by Dexels.
the class NS3ToNSXML method parseVar.
private ParamTag parseVar(NS3Compatible parent, XMLElement currentXML) throws Exception {
// Conditional -> VarName -> "=" OR ":" -> ConditionalExpressions
Vector<XMLElement> children = currentXML.getChildren();
ParamTag paramTag = new ParamTag(myNavascript);
paramTag.addParent(parent);
currentXML.setAttribute("PROCESSED", "true");
for (XMLElement child : children) {
String name = child.getName();
String content = (child.getContent() != null && !"".equals(child.getContent()) ? child.getContent() : null);
if (name.equals("VarName")) {
paramTag.setName(content);
}
if (name.equals("VarArguments")) {
parseVarArguments(paramTag, child);
}
if (name.equals("Conditional")) {
ConditionFragment currentFragment = new ConditionFragment();
consumeContent(currentFragment, child);
paramTag.setCondition(currentFragment.consumedFragment());
}
if (name.equals("ConditionalExpressions")) {
List<ExpressionTag> expressions = parseConditionalExpressions(paramTag, child);
for (ExpressionTag et : expressions) {
paramTag.addExpression(et);
}
}
if (name.equals("MappedArrayField")) {
// <map ref="$"
MapTag maf = parseMappedArrayField(findClosestMapTag(parent, ""), child);
paramTag.addMap(maf);
}
if (name.equals("MappedArrayMessage")) {
MapTag mt = parsedMappedArrayMessage(parent, child);
paramTag.addMap(mt);
}
if (name.equals("VarArray")) {
paramTag.setType(Message.MSG_TYPE_ARRAY);
Vector<XMLElement> paramChildren = child.getChildren();
for (XMLElement paramChild : paramChildren) {
if (paramChild.getName().equals("VarArrayElement")) {
ParamTag paramElt = parseVarArrayElement(paramTag, paramChild);
paramElt.setName(paramTag.getName());
paramTag.addParam(paramElt);
}
}
}
}
return paramTag;
}
use of com.dexels.navajo.document.navascript.tags.ExpressionTag in project navajo by Dexels.
the class NS3ToNSXML method parseOptionElement.
private void parseOptionElement(ParamTag ft, XMLElement currentXML) {
Vector<XMLElement> children = currentXML.getChildren();
ParamTag pt = null;
for (XMLElement child : children) {
String name = child.getName();
String content = (child.getContent() != null && !"".equals(child.getContent()) ? child.getContent() : null);
if (name.equals("TOKEN") && (content.equals("name") || content.equals("value") || content.equals("selected"))) {
pt = new ParamTag(myNavascript);
pt.setName(content);
ft.addParam(pt);
}
if (name.equals("ConditionalExpressions")) {
List<ExpressionTag> expressions = parseConditionalExpressions(pt, child);
for (ExpressionTag et : expressions) {
pt.addExpression(et);
}
}
}
}
Aggregations