Пример #1
0
 /**
  * Creates a new datapoint from XML input.
  *
  * <p>If the current XML element position is no start tag, the next element tag is read. The
  * datapoint element is then expected to be the current element in the reader.
  *
  * @param r a XML reader
  * @return the created datapoint, either of type {@link StateDP} or {@link CommandDP}
  * @throws KNXMLException if the XML element is no datapoint or could not be read correctly
  */
 public static Datapoint create(final XMLReader r) throws KNXMLException {
   if (r.getPosition() != XMLReader.START_TAG) r.read();
   if (r.getPosition() == XMLReader.START_TAG) {
     if (readDPType(r)) return new StateDP(r);
     return new CommandDP(r);
   }
   throw new KNXMLException("no KNX datapoint", null, r.getLineNumber());
 }
Пример #2
0
 /**
  * Creates a new datapoint from XML input.
  *
  * <p>If the current XML element position is no start tag, the next element tag is read. The
  * datapoint element is then expected to be the current element in the reader. It reads the start
  * tag and attributes of a datapoint element, and sets the reader to the next position.
  *
  * @param r a XML reader
  * @throws KNXMLException if the XML element is no datapoint or could not be read correctly
  */
 Datapoint(final XMLReader r) throws KNXMLException {
   if (r.getPosition() != XMLReader.START_TAG) r.read();
   final Element e = r.getCurrent();
   final int line = r.getLineNumber();
   if (r.getPosition() != XMLReader.START_TAG || !e.getName().equals(TAG_DATAPOINT))
     throw new KNXMLException("no KNX datapoint element", e != null ? e.getName() : null, line);
   stateBased = readDPType(r);
   if ((name = e.getAttribute(ATTR_NAME)) == null)
     throw new KNXMLException("missing attribute " + ATTR_NAME, null, line);
   if ((dptId = e.getAttribute(ATTR_DPTID)) == null)
     throw new KNXMLException("missing attribute " + ATTR_DPTID, null, line);
   if (dptId.length() == 0) dptId = null;
   String a = null;
   try {
     a = e.getAttribute(ATTR_MAINNUMBER);
     mainNo = Integer.decode(a).intValue();
     a = e.getAttribute(ATTR_PRIORITY);
     priority = Priority.get(a);
   } catch (final RuntimeException rte) {
     throw new KNXMLException("malformed attribute, " + rte.getMessage(), a, line);
   }
   r.read();
 }
Пример #3
0
 /* returns true for state based DP, false for command based DP */
 private static boolean readDPType(final XMLReader r) throws KNXMLException {
   final String a = r.getCurrent().getAttribute(ATTR_STATEBASED);
   if ("false".equalsIgnoreCase(a)) return false;
   if ("true".equalsIgnoreCase(a)) return true;
   throw new KNXMLException("malformed attribute " + ATTR_STATEBASED, a, r.getLineNumber());
 }
Пример #4
0
 void doLoad(final XMLReader r) throws KNXMLException {
   if (main != null) throw new KNXMLException("main address already set", null, r.getLineNumber());
   if (r.getPosition() != XMLReader.START_TAG) r.read();
   main = new GroupAddress(r);
 }