Пример #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;
  }
Пример #2
0
  private Set<OrganizacionCapacidadDemanda> buscarDemandas(
      Element demandsEl, Organizacion organizacion) {
    Set<OrganizacionCapacidadDemanda> ret = new HashSet<OrganizacionCapacidadDemanda>();

    NodeList nodeLst = demandsEl.getElementsByTagName("demand");

    for (int s = 0; s < nodeLst.getLength(); s++) {
      Node fstNode = nodeLst.item(s);
      if (fstNode.getNodeType() == Node.ELEMENT_NODE) {
        Element elDemand = (Element) fstNode;

        String capacityCode = XmlParserUtil.getAttribute(elDemand, "capacity_code");
        String sectorCode = XmlParserUtil.getAttribute(elDemand, "sector_code");
        String description = XmlParserUtil.getAttribute(elDemand, "description");

        Sector sector = buscarSector(Integer.parseInt(sectorCode));
        Capacidad capacidad = buscarCapacidad(Integer.parseInt(capacityCode));

        if (capacidad != null) {
          OrganizacionCapacidadDemanda demanda = null;

          if (organizacion.getDemandas() != null) {
            for (OrganizacionCapacidadDemanda d : organizacion.getDemandas()) {
              if (d.getSector().equals(sector) && d.getCapacidad().equals(capacidad)) {
                demanda = d;
                break;
              }
            }
          }

          if (demanda == null) {
            demanda = new OrganizacionCapacidadDemanda();
            demanda.setOrganizacion(organizacion);
            demanda.setCapacidad(capacidad);
            demanda.setSector(sector);
          }
          demanda.setDescripcion(description);

          ret.add(demanda);
        } else {
          if (logger.isTraceEnabled()) {
            logger.trace("No se ha agregado la Demanda con código de capacidad: " + capacityCode);
          }
        }
      }
    }

    return ret;
  }
Пример #3
0
  private Asociacion importAsociacion(String xmlString, Integer associationCode)
      throws ParserConfigurationException, SAXException, IOException {
    Document doc = XmlParserUtil.createDocumentFromString(xmlString);
    Asociacion ret = null;
    NodeList nodeLst = doc.getElementsByTagName("association");

    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 url = XmlParserUtil.getAttribute(elPDU, "url");
        String icon = XmlParserUtil.getAttribute(elPDU, "icon");
        NodeList fstNm = elPDU.getChildNodes();
        String associationName = null;

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

          Integer capId = getId(code);
          Asociacion association = null;
          try {
            Collection<Asociacion> associations = asociacionService.findByName(associationName);

            if (associations != null && associations.size() > 0) {
              association = associations.iterator().next();
            } else {
              association = new Asociacion();
              association.setName(associationName);
              association.setUrl(url);
              association.setIcon(icon);
              logger.info(
                  "Saving Asociacion: " + associationName + " url: " + url + " icon " + icon);
              asociacionService.save(association);
            }

            if (capId != null && capId.equals(associationCode)) {
              ret = association;
            }
          } catch (ServiceException e) {
            logger.error(e.getMessage());
          }
        }
      }
    }
    return ret;
  }
Пример #4
0
  private Set<OrganizacionAsociacion> buscarAsociaciones(
      Element associationsEl, Organizacion organizacion) {
    if (associationsEl == null) return null;
    Set<OrganizacionAsociacion> ret = new HashSet<OrganizacionAsociacion>();

    NodeList nodeLst = associationsEl.getElementsByTagName("associationMembership");

    for (int s = 0; s < nodeLst.getLength(); s++) {
      Node fstNode = nodeLst.item(s);
      if (fstNode.getNodeType() == Node.ELEMENT_NODE) {
        Element elDemand = (Element) fstNode;

        String code = XmlParserUtil.getAttribute(elDemand, "code");
        String url = XmlParserUtil.getAttribute(elDemand, "url");
        String icon = XmlParserUtil.getAttribute(elDemand, "icon");

        Asociacion asoc = buscarAsociacion(Integer.parseInt(code));
        boolean found = false;
        if (organizacion.getOrganizacionAsociacions() != null) {
          for (OrganizacionAsociacion orgAsoc : organizacion.getOrganizacionAsociacions()) {
            if (orgAsoc.getAsociacion().getName().equalsIgnoreCase(asoc.getName())) {
              found = true;
              break;
            }
          }
        }
        if (!found) {
          asoc.setUrl(url);
          asoc.setIcon(icon);
          try {
            asociacionService.save(asoc);
            OrganizacionAsociacion asociacion = new OrganizacionAsociacion();
            asociacion.setOrganizacion(organizacion);
            asociacion.setAsociacion(asoc);
            ret.add(asociacion);
          } catch (ServiceException e) {
            logger.error(e.getMessage());
          }
        }
      }
    }

    return ret;
  }
Пример #5
0
  private Set<OrganizacionSede> buscarSedes(Element degationsEl, Organizacion organizacion) {
    if (degationsEl == null) return null;

    Set<OrganizacionSede> ret = new HashSet<OrganizacionSede>();

    NodeList nodeLst = degationsEl.getElementsByTagName("delegation");

    for (int s = 0; s < nodeLst.getLength(); s++) {
      Node fstNode = nodeLst.item(s);
      if (fstNode.getNodeType() == Node.ELEMENT_NODE) {
        Element elSede = (Element) fstNode;

        String direccion = XmlParserUtil.getStringNodeValue(elSede, "street");
        String localidad = XmlParserUtil.getStringNodeValue(elSede, "locality");
        Element provEl = XmlParserUtil.getChildren(elSede, "province");
        String provId = XmlParserUtil.getAttribute(provEl, "code");
        String provincia = XmlParserUtil.getStringNodeValue(elSede, "province");
        Integer codigoPostal = XmlParserUtil.getIntegerNodeValue(elSede, "postalCode");
        String telefonoContacto = XmlParserUtil.getStringNodeValue(elSede, "contactPhone");
        String mailContacto = XmlParserUtil.getStringNodeValue(elSede, "contactMail");
        String personaContacto = XmlParserUtil.getStringNodeValue(elSede, "contactPerson");
        float lat = XmlParserUtil.getFloatNodeValue(elSede, "locationLatitude");
        float lon = XmlParserUtil.getFloatNodeValue(elSede, "locationLongitude");
        Integer hombres = XmlParserUtil.getIntegerNodeValue(elSede, "numberOfMen");
        Integer mujeres = XmlParserUtil.getIntegerNodeValue(elSede, "numberOfWomen");
        Provincia prov = findProvincia(provId, provincia);

        OrganizacionSede sede = null;
        try {
          sede =
              organizacionSedeService.findSedeByAddressLocalityProvince(direccion, localidad, prov);
        } catch (ServiceException e) {
        }
        if (sede == null) sede = new OrganizacionSede();

        sede.setDireccion(direccion);
        sede.setLocalidad(localidad);
        sede.setProvincia(prov);
        sede.setCodigoPostal(codigoPostal);
        sede.setTelefonoContacto(telefonoContacto);
        sede.setMailContacto(mailContacto);
        sede.setPersonaContacto(personaContacto);
        sede.setLatitud(lat);
        sede.setLongitud(lon);
        sede.setHombres(hombres);
        sede.setMujeres(mujeres);
        sede.setOrganizacion(organizacion);

        ret.add(sede);
      }
    }
    return ret;
  }
Пример #6
0
  public static String parseToken(String xmlString)
      throws ParserConfigurationException, SAXException, IOException {
    Document doc = XmlParserUtil.createDocumentFromString(xmlString);
    String retToken = null;

    NodeList nodeLst = doc.getElementsByTagName(TOKEN_RESULT_TAG);
    for (int s = 0; s < nodeLst.getLength(); s++) {
      Node fstNode = nodeLst.item(s);
      if (fstNode.getNodeType() == Node.ELEMENT_NODE) {
        Element elPDU = (Element) fstNode;
        Element tokenEl = XmlParserUtil.getChildren(elPDU, TOKEN_TAG);
        retToken = XmlParserUtil.getAttribute(tokenEl, CODE_ATTR);
      }
    }
    logger.info("Token: " + retToken);
    return retToken;
  }
Пример #7
0
  private Sector importSector(String xmlString, Integer id)
      throws ParserConfigurationException, SAXException, IOException {
    Document doc = XmlParserUtil.createDocumentFromString(xmlString);
    Sector ret = null;
    NodeList nodeLst = doc.getElementsByTagName("sector");

    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");
        NodeList fstNm = elPDU.getChildNodes();
        String sectorName = null;

        if (fstNm.getLength() > 0) {
          String tmp = ((Node) fstNm.item(0)).getNodeValue();
          byte[] utf8 = tmp.getBytes("UTF-8");
          sectorName = new String(utf8, "UTF-8");

          Integer capId = getId(code);
          Sector sector = null;
          try {
            Collection<Sector> sectores = sectorService.findByName(sectorName);

            if (sectores != null && sectores.size() > 0) {
              sector = sectores.iterator().next();
            } else {
              sector = new Sector();
              sector.setName(sectorName);
              sectorService.save(sector);
            }

            if (capId != null && capId.equals(id)) {
              ret = sector;
            }
          } catch (ServiceException e) {
            logger.error(e.getMessage());
          }
        }
      }
    }
    return ret;
  }
Пример #8
0
  private Set<OrganizacionCapacidadOferta> buscarOfertas(
      Element capacitiesEl, Organizacion organizacion) {
    if (capacitiesEl == null) return null;

    Set<OrganizacionCapacidadOferta> ret = new HashSet<OrganizacionCapacidadOferta>();
    NodeList nodeLst = capacitiesEl.getElementsByTagName("capacity");

    for (int s = 0; s < nodeLst.getLength(); s++) {
      Node fstNode = nodeLst.item(s);
      if (fstNode.getNodeType() == Node.ELEMENT_NODE) {
        Element elCapacity = (Element) fstNode;

        String capacityCode = XmlParserUtil.getAttribute(elCapacity, "capacity_code");
        String sectorCode = XmlParserUtil.getAttribute(elCapacity, "sector_code");
        String resources = XmlParserUtil.getAttribute(elCapacity, "resources");
        String score = XmlParserUtil.getAttribute(elCapacity, "score");
        String billingProportion = XmlParserUtil.getAttribute(elCapacity, "billingProportion");
        String description = XmlParserUtil.getAttribute(elCapacity, "description");

        Capacidad capacidad = buscarCapacidad(Integer.parseInt(capacityCode));
        Sector sector = buscarSector(Integer.parseInt(sectorCode));

        OrganizacionCapacidadOferta oferta = null;

        if (organizacion.getOfertas() != null) {
          for (OrganizacionCapacidadOferta o : organizacion.getOfertas()) {
            if (o.getSector().equals(sector) && o.getCapacidad().equals(capacidad)) {
              oferta = o;
              break;
            }
          }
        }

        if (oferta == null) {
          oferta = new OrganizacionCapacidadOferta();
          oferta.setOrganizacion(organizacion);
          oferta.setCapacidad(capacidad);
          oferta.setSector(sector);
        }
        oferta.setRecursos(Integer.parseInt(resources));
        oferta.setPuntuacion(Integer.parseInt(score));
        oferta.setPorcentajeFacturacion(Integer.parseInt(billingProportion));
        oferta.setDescripcion(description);

        ret.add(oferta);
      }
    }

    return ret;
  }
Пример #9
0
  private ClasificacionOrganizacion importClasificacionOrganizacion(String xmlString, Integer id)
      throws ParserConfigurationException, SAXException, IOException {
    Document doc = XmlParserUtil.createDocumentFromString(xmlString);
    ClasificacionOrganizacion ret = null;
    NodeList nodeLst = doc.getElementsByTagName("classification");

    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");
        NodeList fstNm = elPDU.getChildNodes();
        String classOrg = null;

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

          Integer orgId = getId(code);
          ClasificacionOrganizacion clasificacionOrganizacion = null;
          try {
            List<ClasificacionOrganizacion> lCO =
                organizacionService.findClasificacionOrganizacionByName(classOrg);

            if (lCO != null && lCO.size() > 0) {
              clasificacionOrganizacion = lCO.get(0);
            } else {
              clasificacionOrganizacion = new ClasificacionOrganizacion();
              clasificacionOrganizacion.setName(classOrg);
              organizacionService.saveClasificacionOrganizacion(clasificacionOrganizacion);
            }

            if (orgId != null && orgId.equals(id)) {
              ret = clasificacionOrganizacion;
            }
          } catch (ServiceException e) {
            logger.error(e.getMessage());
          }
        }
      }
    }
    return ret;
  }
Пример #10
0
  private FormaJuridica importFormaJuridica(String xmlString, Integer id)
      throws ParserConfigurationException, SAXException, IOException {
    Document doc = XmlParserUtil.createDocumentFromString(xmlString);
    FormaJuridica ret = null;
    NodeList nodeLst = doc.getElementsByTagName("organizationType");

    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");
        NodeList fstNm = elPDU.getChildNodes();
        String organizationType = null;

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

          Integer orgId = getId(code);
          FormaJuridica formaJuridica = null;
          try {
            List<FormaJuridica> lFJ = formaJuridicaService.findByName(organizationType);

            if (lFJ != null && lFJ.size() > 0) {
              formaJuridica = lFJ.get(0);
            } else {
              formaJuridica = new FormaJuridica();
              formaJuridica.setName(organizationType);
              formaJuridicaService.save(formaJuridica);
            }

            if (orgId != null && orgId.equals(id)) {
              ret = formaJuridica;
            }
          } catch (ServiceException e) {
            logger.error(e.getMessage());
          }
        }
      }
    }
    return ret;
  }
Пример #11
0
  private Organizacion parseOrganizacion(String xmlString)
      throws ParserConfigurationException, SAXException, IOException, ServiceException {
    Document doc = XmlParserUtil.createDocumentFromString(xmlString);

    Organizacion ret = null;

    NodeList nodeLst = doc.getElementsByTagName(ORGANIZATION_TAG);
    for (int s = 0; s < nodeLst.getLength(); s++) {
      Node fstNode = nodeLst.item(s);
      if (fstNode.getNodeType() == Node.ELEMENT_NODE) {
        Element elOrg = (Element) fstNode;

        String legalId = XmlParserUtil.getStringNodeValue(elOrg, "legalID");
        if (!legalId.isEmpty()) {
          ret = organizacionService.findByCIF(legalId);
          if (ret == null) {
            if (logger.isTraceEnabled()) ;
            logger.trace("Organizacion con CIF: " + legalId + " no encontrada, AGREGANDO");
            ret = new Organizacion();
          } else {
            if (logger.isTraceEnabled()) ;
            logger.trace("Organizacion con CIF: " + legalId + " encontrada, ACTUALIZANDO");
          }

          String name = XmlParserUtil.getStringNodeValue(elOrg, "name");
          String description = XmlParserUtil.getStringNodeValue(elOrg, "description");
          String web = XmlParserUtil.getStringNodeValue(elOrg, "web");
          String logoUrl = XmlParserUtil.getStringNodeValue(elOrg, "logo_url");
          String direccion = XmlParserUtil.getStringNodeValue(elOrg, "HQstreet");
          String localidad = XmlParserUtil.getStringNodeValue(elOrg, "HQlocality");

          String newsTitle = XmlParserUtil.getStringNodeValue(elOrg, "newsTitle");
          String newsBody = XmlParserUtil.getStringNodeValue(elOrg, "newsBody");

          Element provEl = XmlParserUtil.getChildren(elOrg, "HQprovince");
          String provId = XmlParserUtil.getAttribute(provEl, "code");
          String provincia = XmlParserUtil.getStringNodeValue(elOrg, "HQprovince");
          String codPostal = XmlParserUtil.getStringNodeValue(elOrg, "HQpostalCode");
          String year = XmlParserUtil.getStringNodeValue(elOrg, "year");

          String partners = XmlParserUtil.getStringNodeValue(elOrg, "partners");
          String corpGroup = XmlParserUtil.getStringNodeValue(elOrg, "enpresarialGroup");
          String phoneNumber = XmlParserUtil.getStringNodeValue(elOrg, "telephone");
          String email = XmlParserUtil.getStringNodeValue(elOrg, "email");
          String research =
              XmlParserUtil.getStringNodeValue(elOrg, "researchAndDevelopmentProgrammes");
          String relacionesComunidad =
              XmlParserUtil.getStringNodeValue(elOrg, "communityRelationships");
          String qualityCertifications =
              XmlParserUtil.getStringNodeValue(elOrg, "qualityCertifications");

          Element orgClassEl = XmlParserUtil.getChildren(elOrg, "organizationClasification");
          String orgClassCode = XmlParserUtil.getAttribute(orgClassEl, "code");
          String organizationClasification =
              XmlParserUtil.getStringNodeValue(elOrg, "organizationClasification");

          Element orgTypeEl = XmlParserUtil.getChildren(elOrg, "organizationType");
          String orgTypeCode = XmlParserUtil.getAttribute(orgTypeEl, "code");
          String organizationType = XmlParserUtil.getStringNodeValue(elOrg, "organizationType");

          Element degationsEl = XmlParserUtil.getChildren(elOrg, "delegations");
          Element capacitiesEl = XmlParserUtil.getChildren(elOrg, "capacities");
          Element demandsEl = XmlParserUtil.getChildren(elOrg, "demands");
          Element eventsEl = XmlParserUtil.getChildren(elOrg, "events");
          // Association Memberships
          Element associationsEl = XmlParserUtil.getChildren(elOrg, "associationMemberships");
          // username
          String username = XmlParserUtil.getStringNodeValue(elOrg, "username");
          // password
          String password = XmlParserUtil.getStringNodeValue(elOrg, "password");

          ret.setCif(legalId);
          ret.setName(name);
          ret.setDescripcion(description);
          ret.setNewsTitle(newsTitle);
          ret.setNewsBody(newsBody);
          ret.setWeb(web);
          ret.setLogoUrl(logoUrl);
          ret.setDireccion(direccion);
          ret.setLocalidad(localidad);
          ret.setProvincia(findProvincia(provId, provincia));
          ret.setCodigoPostal(Integer.parseInt(codPostal));
          try {
            if (year != null && !year.isEmpty()) ret.setAnoConstitucion(Integer.parseInt(year));
          } catch (NumberFormatException e) {
          }
          ret.setPartners(partners);
          ret.setGrupoEmpresarial(corpGroup);
          ret.setTelefono(phoneNumber);
          ret.setEmail(email);
          ret.setActividadesImasD(!research.isEmpty());
          ret.setParticipacionImasD(research);
          ret.setRelacionesComunidad(relacionesComunidad);
          ret.setCertificacionesCalidad(Organizacion.decoded(qualityCertifications));

          if (orgClassEl != null && StringUtils.hasLength(orgClassCode)) {
            ret.setClasificacionOrganizacion(
                findClasificacionOrganizacion(orgClassCode, organizationClasification));
          }
          if (orgTypeEl != null && StringUtils.hasLength(orgTypeCode)) {
            ret.setFormaJuridica(findFormaJuridica(orgTypeCode, organizationType));
          }
          if (degationsEl != null) {
            Set<OrganizacionSede> sedes = buscarSedes(degationsEl, ret);
            if (ret.getSedes() == null) {
              ret.setSedes(sedes);
            } else {
              ret.getSedes().addAll(sedes);
            }
          }
          if (capacitiesEl != null) {
            Set<OrganizacionCapacidadOferta> ofertas = buscarOfertas(capacitiesEl, ret);
            if (ret.getOfertas() == null) {
              ret.setOfertas(ofertas);
            } else {
              ret.getOfertas().addAll(ofertas);
            }
          }
          if (demandsEl != null) {
            Set<OrganizacionCapacidadDemanda> demandas = buscarDemandas(demandsEl, ret);
            if (ret.getDemandas() == null) {
              ret.setDemandas(demandas);
            } else {
              ret.getDemandas().addAll(demandas);
            }
          }
          if (associationsEl != null) {
            Set<OrganizacionAsociacion> organizacionAsociacions =
                buscarAsociaciones(associationsEl, ret);
            if (ret.getOrganizacionAsociacions() == null) {
              ret.setOrganizacionAsociacions(organizacionAsociacions);
            } else {
              ret.getOrganizacionAsociacions().addAll(organizacionAsociacions);
            }
          }
          if (eventsEl != null) {
            Set<OrganizacionEvento> eventos = buscarEventos(eventsEl, ret);
            if (ret.getEventos() == null) {
              ret.setEventos(eventos);
            } else {
              ret.getEventos().addAll(eventos);
            }
          }

          ret.setUsername(username);
          ret.setPassword(password);
        }
      }
    }

    return ret;
  }