@Override
  public Parameter fromXml(XmlPullParser parser) throws XmlPullParserException, IOException {
    OptionParameter p = new OptionParameter();

    int depth = parser.getDepth();
    int startdepth = depth;

    // proceed by one tag (out of option tag)
    int eventType = parser.nextTag();

    while (!((eventType == XmlPullParser.END_TAG) && (depth == startdepth))) {

      // proceed to the next start tag
      if (eventType == XmlPullParser.START_TAG) {
        Parameter parameter = ParameterManager.getInstance().parseXml(parser);
        String name = parser.getName().trim();
        if (name.equalsIgnoreCase("option")) {
          try {
            p.addOption(parameter);
          } catch (SpecializationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          }
        } else if (name.equalsIgnoreCase("value")) {
          String value = parser.nextText();
          p.addValue(value);
        }
      }
      eventType = parser.next();
      depth = parser.getDepth();
    }
    return p;
  }
 public OptionParameter(ArrayList<Parameter> options) {
   try {
     setOptions(options);
   } catch (SpecializationException e) {
     e.printStackTrace();
     mOptions.clear();
     mSubType = Parameter.TYPENAME_UNKNOWN;
   }
 }