Ejemplo n.º 1
0
  private Capacidad importCapacidad(String xmlString, Integer capacityId)
      throws ParserConfigurationException, SAXException, IOException {
    Document doc = XmlParserUtil.createDocumentFromString(xmlString);
    Capacidad ret = null;
    NodeList nodeLst = doc.getElementsByTagName("capacity");

    for (int s = 0; s < nodeLst.getLength(); s++) {
      Node fstNode = nodeLst.item(s);
      if (fstNode.getNodeType() == Node.ELEMENT_NODE) {
        Element elPDU = (Element) fstNode;
        String code = XmlParserUtil.getAttribute(elPDU, "code");
        String category = XmlParserUtil.getAttribute(elPDU, "category");
        NodeList fstNm = elPDU.getChildNodes();
        String capacidadName = null;

        if (fstNm.getLength() > 0) {
          capacidadName = ((Node) fstNm.item(0)).getNodeValue();

          Integer capId = getId(code);
          Capacidad capacidad = null;
          try {
            List<Capacidad> capacidades = organizacionService.findCapacidadByName(capacidadName);

            if (capacidades != null && capacidades.size() > 0) {
              capacidad = capacidades.get(0);
            } else {
              capacidad = new Capacidad();
              capacidad.setName(capacidadName);
              if (StringUtils.hasLength(category)) capacidad.setCategoria(category);
              organizacionService.saveCapacidad(capacidad);
            }

            if (capId != null && capId.equals(capacityId)) {
              ret = capacidad;
            }
          } catch (ServiceException e) {
            logger.error(e.getMessage());
          }
        }
      }
    }

    if (ret != null) {
      if (logger.isTraceEnabled()) logger.trace("Se devuelve la Capacidad: " + ret);
      return ret;
    }
    if (logger.isTraceEnabled())
      logger.trace("No se ha encontrado la Capacidad con Id: " + capacityId);
    return null;
  }