Search in sources :

Example 1 with NS3Compatible

use of com.dexels.navajo.document.navascript.tags.NS3Compatible in project navajo by Dexels.

the class NS3ToNSXML method parseInnerBody.

private List<NS3Compatible> parseInnerBody(NS3Compatible parent, XMLElement currentXML) throws Exception {
    currentXML.setAttribute("PROCESSED", "true");
    List<NS3Compatible> bodyElts = new ArrayList<>();
    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("Print")) {
            DebugTag pt = parsePrint(parent, child);
            bodyElts.add(pt);
        }
        if (name.equals("Log")) {
            LogTag pt = parseLog(parent, child);
            bodyElts.add(pt);
        }
        if (name.equals("Property")) {
            NS3Compatible pt = parseProperty(parent, child);
            bodyElts.add(pt);
        }
        if (name.equals("Option")) {
            // Find type of option: name, value or selected
            NS3Compatible pt = parseProperty(parent, child);
            bodyElts.add(pt);
        }
        if (name.equals("Map")) {
            MapTag mt = parseMap(parent, child);
            bodyElts.add(mt);
        }
        if (name.equals("Var")) {
            ParamTag pt = parseVar(parent, child);
            bodyElts.add(pt);
        }
        if (name.equals("Break")) {
            BreakTag mt = parseBreak(parent, child);
            bodyElts.add(mt);
        }
        if (name.equals("Include")) {
            IncludeTag mt = parseInclude(parent, child);
            bodyElts.add(mt);
        }
        if (name.equals("Message")) {
            MessageTag pt = parseMessage(parent, child);
            bodyElts.add(pt);
        }
        if (name.equals("Synchronized")) {
            SynchronizedTag st = parseSynchronizedBlock(parent, child);
            bodyElts.add(st);
        }
        if (name.equals("ConditionalEmptyMessage")) {
            BlockTag pt = parseConditionalBlock(parent, child, true);
            bodyElts.add(pt);
        }
        if (name.equals("TopLevelStatement")) {
            bodyElts.addAll(parseInnerBody(parent, child));
        }
        if (name.equals("MethodOrSetter")) {
            MapTag parentMap = findClosestMapTag(parent, "");
            FieldTag ft = parseMethodOrSetter(parentMap, child);
            bodyElts.add(ft);
        }
        if (name.equals("Loop")) {
            LoopTag mt = parseLoop(parent, child);
            bodyElts.add(mt);
        }
    }
    return bodyElts;
}
Also used : ParamTag(com.dexels.navajo.document.navascript.tags.ParamTag) LoopTag(com.dexels.navajo.document.navascript.tags.LoopTag) DebugTag(com.dexels.navajo.document.navascript.tags.DebugTag) ArrayList(java.util.ArrayList) LogTag(com.dexels.navajo.document.navascript.tags.LogTag) CaseSensitiveXMLElement(com.dexels.navajo.document.nanoimpl.CaseSensitiveXMLElement) XMLElement(com.dexels.navajo.document.nanoimpl.XMLElement) BreakTag(com.dexels.navajo.document.navascript.tags.BreakTag) NS3Compatible(com.dexels.navajo.document.navascript.tags.NS3Compatible) MapTag(com.dexels.navajo.document.navascript.tags.MapTag) BlockTag(com.dexels.navajo.document.navascript.tags.BlockTag) IncludeTag(com.dexels.navajo.document.navascript.tags.IncludeTag) MessageTag(com.dexels.navajo.document.navascript.tags.MessageTag) FieldTag(com.dexels.navajo.document.navascript.tags.FieldTag) SynchronizedTag(com.dexels.navajo.document.navascript.tags.SynchronizedTag)

Example 2 with NS3Compatible

use of com.dexels.navajo.document.navascript.tags.NS3Compatible in project navajo by Dexels.

the class NS3ToNSXML method parsedMappedArrayMessage.

private MapTag parsedMappedArrayMessage(NS3Compatible parent, XMLElement currentXML) throws Exception {
    MapTag mapTag = new MapTag(myNavascript);
    mapTag.addParent(parent);
    Vector<XMLElement> children = currentXML.getChildren();
    mapTag.setOldStyleMap(true);
    if (parent != null && parent instanceof FieldTag) {
        mapTag.setName(((FieldTag) parent).getParent().getObject());
    }
    boolean hasFilter = false;
    for (XMLElement child : children) {
        String name = child.getName();
        String content = (child.getContent() != null && !"".equals(child.getContent()) ? child.getContent() : null);
        if (name.equals("MsgIdentifier")) {
            mapTag.setRefAttribute("[" + content + "]");
        }
        if (name.equals("TOKEN") && content.equals("filter")) {
            hasFilter = true;
        }
        if (hasFilter && name.equals("Expression")) {
            ExpressionFragment ef = new ExpressionFragment();
            consumeContent(ef, child);
            mapTag.setFilter(ef.consumedFragment());
        }
        if (name.equals("InnerBody") || name.equals("InnerBodySelection")) {
            List<NS3Compatible> innerBodyElements = parseInnerBody(mapTag, child);
            for (NS3Compatible ib : innerBodyElements) {
                addChildTag(mapTag, ib);
            }
        }
    }
    return mapTag;
}
Also used : FieldTag(com.dexels.navajo.document.navascript.tags.FieldTag) CaseSensitiveXMLElement(com.dexels.navajo.document.nanoimpl.CaseSensitiveXMLElement) XMLElement(com.dexels.navajo.document.nanoimpl.XMLElement) MapTag(com.dexels.navajo.document.navascript.tags.MapTag) NS3Compatible(com.dexels.navajo.document.navascript.tags.NS3Compatible)

Example 3 with NS3Compatible

use of com.dexels.navajo.document.navascript.tags.NS3Compatible in project navajo by Dexels.

the class NS3ToNSXML method parseMappedMessage.

private MapTag parseMappedMessage(NS3Compatible parent, XMLElement currentXML) throws Exception {
    MapTag mapTag = new MapTag(myNavascript);
    mapTag.setOldStyleMap(true);
    mapTag.setName("map");
    mapTag.setRefAttribute("[/@]");
    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("InnerBody")) {
            List<NS3Compatible> innerBodyElements = parseInnerBody(mapTag, child);
            for (NS3Compatible ib : innerBodyElements) {
                addChildTag(mapTag, ib);
            }
        }
    }
    return mapTag;
}
Also used : CaseSensitiveXMLElement(com.dexels.navajo.document.nanoimpl.CaseSensitiveXMLElement) XMLElement(com.dexels.navajo.document.nanoimpl.XMLElement) MapTag(com.dexels.navajo.document.navascript.tags.MapTag) NS3Compatible(com.dexels.navajo.document.navascript.tags.NS3Compatible)

Example 4 with NS3Compatible

use of com.dexels.navajo.document.navascript.tags.NS3Compatible in project navajo by Dexels.

the class NS3ToNSXML method parseFinally.

private FinallyTag parseFinally(NS3Compatible parent, XMLElement xe) throws Exception {
    FinallyTag ft = new FinallyTag(myNavascript);
    ft.addParent(parent);
    Vector<XMLElement> children = xe.getChildren();
    for (XMLElement child : children) {
        String name = child.getName();
        if (name.equals("TopLevelStatement")) {
            List<NS3Compatible> innerBodyElements = parseInnerBody(ft, child);
            for (NS3Compatible ib : innerBodyElements) {
                addChildTag(ft, ib);
            }
        }
    }
    return ft;
}
Also used : CaseSensitiveXMLElement(com.dexels.navajo.document.nanoimpl.CaseSensitiveXMLElement) XMLElement(com.dexels.navajo.document.nanoimpl.XMLElement) FinallyTag(com.dexels.navajo.document.navascript.tags.FinallyTag) NS3Compatible(com.dexels.navajo.document.navascript.tags.NS3Compatible)

Example 5 with NS3Compatible

use of com.dexels.navajo.document.navascript.tags.NS3Compatible in project navajo by Dexels.

the class NS3ToNSXML method parseSynchronizedBlock.

private SynchronizedTag parseSynchronizedBlock(NS3Compatible parent, XMLElement xe) throws Exception {
    SynchronizedTag st = new SynchronizedTag(myNavascript);
    st.addParent(parent);
    Vector<XMLElement> children = xe.getChildren();
    for (XMLElement child : children) {
        String name = child.getName();
        if (name.equals("SynchronizedArguments")) {
            parseSynchronizedArguments(null, st, child);
        }
        if (name.equals("TopLevelStatement")) {
            List<NS3Compatible> innerBodyElements = parseInnerBody(st, child);
            for (NS3Compatible ib : innerBodyElements) {
                addChildTag(st, ib);
            }
        }
    }
    return st;
}
Also used : SynchronizedTag(com.dexels.navajo.document.navascript.tags.SynchronizedTag) CaseSensitiveXMLElement(com.dexels.navajo.document.nanoimpl.CaseSensitiveXMLElement) XMLElement(com.dexels.navajo.document.nanoimpl.XMLElement) NS3Compatible(com.dexels.navajo.document.navascript.tags.NS3Compatible)

Aggregations

NS3Compatible (com.dexels.navajo.document.navascript.tags.NS3Compatible)11 CaseSensitiveXMLElement (com.dexels.navajo.document.nanoimpl.CaseSensitiveXMLElement)10 XMLElement (com.dexels.navajo.document.nanoimpl.XMLElement)10 MapTag (com.dexels.navajo.document.navascript.tags.MapTag)7 BlockTag (com.dexels.navajo.document.navascript.tags.BlockTag)2 FieldTag (com.dexels.navajo.document.navascript.tags.FieldTag)2 IncludeTag (com.dexels.navajo.document.navascript.tags.IncludeTag)2 LoopTag (com.dexels.navajo.document.navascript.tags.LoopTag)2 MessageTag (com.dexels.navajo.document.navascript.tags.MessageTag)2 SynchronizedTag (com.dexels.navajo.document.navascript.tags.SynchronizedTag)2 BreakTag (com.dexels.navajo.document.navascript.tags.BreakTag)1 CommentBlock (com.dexels.navajo.document.navascript.tags.CommentBlock)1 DebugTag (com.dexels.navajo.document.navascript.tags.DebugTag)1 FinallyTag (com.dexels.navajo.document.navascript.tags.FinallyTag)1 LogTag (com.dexels.navajo.document.navascript.tags.LogTag)1 ParamTag (com.dexels.navajo.document.navascript.tags.ParamTag)1 ArrayList (java.util.ArrayList)1