Exemple #1
0
  private Set<OrganizacionEvento> buscarEventos(Element eventsEl, Organizacion organizacion) {
    if (eventsEl == null) return null;

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

    NodeList nodeLst = eventsEl.getElementsByTagName("event");

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

        String localization = XmlParserUtil.getStringNodeValue(elEvento, "localization");
        String title = XmlParserUtil.getStringNodeValue(elEvento, "title");
        String description = XmlParserUtil.getStringNodeValue(elEvento, "description");
        String date = XmlParserUtil.getStringNodeValue(elEvento, "date");

        Date fecha = null;
        try {
          fecha = formatter.parse(date);
        } catch (ParseException e) {
        }

        Evento evento = null;

        if (organizacion.getEventos() != null) {
          for (OrganizacionEvento oe : organizacion.getEventos()) {
            Evento e = oe.getEvento();
            if (e.getTitulo().equals(title)) {
              evento = e;
              break;
            }
          }
        }
        if (evento == null) {
          evento = new Evento();

          evento.setLocalizacion(localization);
          evento.setTitulo(title);
          evento.setDescripcion(description);
          evento.setFecha(fecha);
          try {
            organizacionService.saveEvento(evento);

            OrganizacionEvento eventoOrg = new OrganizacionEvento();
            eventoOrg.setEvento(evento);
            eventoOrg.setOrganizacion(organizacion);
            ret.add(eventoOrg);
          } catch (ServiceException e) {
            logger.error(e.getMessage());
          }
        }
      }
    }
    return ret;
  }
Exemple #2
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;
  }