예제 #1
0
  protected boolean loadCommonDCCMast(DccSignalMast m, Element element) {
    loadCommon(m, element);
    if (element.getChild("unlit") != null) {
      Element unlit = element.getChild("unlit");
      if (unlit.getAttribute("allowed") != null) {
        if (unlit.getAttribute("allowed").getValue().equals("no")) {
          m.setAllowUnLit(false);
        } else {
          m.setAllowUnLit(true);
          m.setUnlitId(Integer.parseInt(unlit.getChild("aspect").getValue()));
        }
      }
    }
    List<Element> list = element.getChildren("aspect");
    for (int i = 0; i < list.size(); i++) {
      Element e = list.get(i);
      String aspect = e.getAttribute("defines").getValue();
      int number = -1;
      try {
        String value = e.getChild("number").getValue();
        number = Integer.parseInt(value);

      } catch (Exception ex) {
        log.error("failed to convert DCC number");
      }
      m.setOutputForAppearance(aspect, number);
    }
    Element e = element.getChild("disabledAspects");
    if (e != null) {
      list = e.getChildren("disabledAspect");
      for (Element aspect : list) {
        m.setAspectDisabled(aspect.getText());
      }
    }

    InstanceManager.getDefault(jmri.SignalMastManager.class).register(m);
    return true;
  }