package gw.rating.worksheet.domain uses gw.xml.parser2.PLXMLNode class WorksheetLoop extends WorksheetEntry { protected static final var LOOP_LABEL: String = "Loop" protected static final var LOOP_ITERATION_LABEL: String = "Iteration" protected static final var LOOP_ITERABLE_ELEMENT_LABEL: String = "GetIthElement" protected static final var ITERABLE_NAME_LABEL: String = "Iterable" protected static final var ITERABLE_TYPE_LABEL: String = "IterableType" protected static final var ITERABLE_SIZE_LABEL: String = "IterableSize" protected static final var ITERABLE_ELEMENT_NAME_LABEL: String = "Element" protected static final var ITERABLE_ELEMENT_TYPE_LABEL: String = "ElementType" protected static final var LOOP_VARIABLE_NAME_LABEL: String = "LoopVariable" protected static final var LOOP_VARIABLE_TYPE_LABEL: String = "LoopVariableType" protected static final var LOOP_INDEX_VARIABLE_NAME_LABEL: String = "LoopIndexVariable" protected static final var LOOP_INDEX_VARIABLE_VALUE_LABEL: String = "IterationCount" var _iterableName: String as IterableName var _iterableType: String as IterableTypeName var _iterableSize: int as IterableSize var _loopVarName: String as LoopVariableName var _loopvarType: String as LoopVariableTypeName var _loopIndexVarName: String as LoopIndexVariableName var _parentOperandContainer: WorksheetOperandContainer as ParentOperandContainer protected override function pseudoCode(buffer : StringBuilder, includeValues : boolean) { buffer.append(_iterableName).append("?.eachWithIndex(\\ ").append(_loopVarName).append(", ").append(_loopIndexVarName) .append(" -> {...}") } override function toXml() : PLXMLNode { var node = new PLXMLNode(WorksheetClass) node.setAttributeValue(ITERABLE_NAME_LABEL, IterableName) node.setAttributeValue(ITERABLE_TYPE_LABEL, IterableTypeName) node.setAttributeValue(ITERABLE_SIZE_LABEL, Integer.toString(IterableSize)) node.setAttributeValue(LOOP_VARIABLE_NAME_LABEL, LoopVariableName) node.setAttributeValue(LOOP_VARIABLE_TYPE_LABEL, LoopVariableTypeName) node.setAttributeValue(LOOP_INDEX_VARIABLE_NAME_LABEL, LoopIndexVariableName) writeXml(node) return node } override function fromXml(node : PLXMLNode) { IterableName = node.getAttributeValue(ITERABLE_NAME_LABEL) IterableTypeName = node.getAttributeValue(ITERABLE_TYPE_LABEL) IterableSize = Integer.parseInt(node.getAttributeValue(ITERABLE_SIZE_LABEL)) LoopVariableName = node.getAttributeValue(LOOP_VARIABLE_NAME_LABEL) LoopVariableTypeName = node.getAttributeValue(LOOP_VARIABLE_TYPE_LABEL) LoopIndexVariableName = node.getAttributeValue(LOOP_INDEX_VARIABLE_NAME_LABEL) readXml(node) } override property get WorksheetClass() : String { return LOOP_LABEL } }