コード例 #1
0
ファイル: IrXmlReader.java プロジェクト: hallvard/caltoopia
  private Action createAction(Element element) {
    Action action = IrFactory.eINSTANCE.createAction();
    String id = element.getAttribute("id");
    action.setId(id);
    doAnnotations(action, element);

    addIrObject(id, action);

    action.setOuter((Actor) findIrObject(element.getAttribute("outer-scope")));
    List<Element> qualifiedName = getChildren(getChild(element, "QID"), "ID");
    for (Element e : qualifiedName) {
      action.getTag().add(e.getAttribute("name"));
    }

    List<Element> decls = getChildren(element, "Decl");
    for (Element e : decls) {
      Declaration decl = createDeclaration(e);
      action.getDeclarations().add(decl);
    }

    List<Element> guards = getChildren(element, "Guard");
    for (Element e : guards) {
      Guard guard = createGuard(e);
      action.getGuards().add(guard);
    }

    List<Element> inputs = getChildren(element, "PortRead");
    for (Element e : inputs) {
      PortRead portRead = createPortRead(action, e);
      action.getInputs().add(portRead);
    }

    List<Element> stmts = getChildren(element, "Stmt");
    for (Element e : stmts) {
      Statement stmt = createStatement(e);
      action.getStatements().add(stmt);
    }

    List<Element> outputs = getChildren(element, "PortWrite");
    for (Element e : outputs) {
      PortWrite portWrite = createPortWrite(action, e);
      action.getOutputs().add(portWrite);
    }

    return action;
  }