001 /******************************************************************************
002 * Copyright (C) MActor Developers. All rights reserved. *
003 * ---------------------------------------------------------------------------*
004 * This file is part of MActor. *
005 * *
006 * MActor is free software; you can redistribute it and/or modify *
007 * it under the terms of the GNU General Public License as published by *
008 * the Free Software Foundation; either version 2 of the License, or *
009 * (at your option) any later version. *
010 * *
011 * MActor is distributed in the hope that it will be useful, *
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
014 * GNU General Public License for more details. *
015 * *
016 * You should have received a copy of the GNU General Public License *
017 * along with MActor; if not, write to the Free Software *
018 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA *
019 ******************************************************************************/
020 package org.mactor.framework.spec;
021
022 import org.dom4j.Element;
023 import org.mactor.framework.MactorException;
024 import org.mactor.framework.ParseUtil;
025
026 public class LoopSpec extends ContainerSpec {
027 @Override
028 public String getType() {
029 return "loop";
030 }
031 private int count;
032 public int getCount() {
033 return count;
034 }
035 public static LoopSpec loadSpec(Element element) throws MactorException {
036 if (element == null)
037 return null;
038 LoopSpec s = new LoopSpec();
039 s.name = element.attributeValue("name");
040 String val = element.attributeValue("count");
041 if (val != null)
042 s.count = ParseUtil.tryParseIntVal(val);
043 s.loadContainedNodes(element);
044 return s;
045 }
046 public String getShortDescription() {
047 return "Loop node - '" + name + "'";
048 }
049 public String getDescription() {
050 return "Loop count:" + count;
051 }
052 public Element addToElement(Element parent) {
053 Element e = parent.addElement(getType());
054 e.addAttribute("name", name);
055 e.addAttribute("count", count + "");
056 super.writeContainedNodesToElement(e);
057 return e;
058 }
059 public void setCount(int count) {
060 this.count = count;
061 }
062 }