Пример #1
0
  /**
   * método que permite verificar si el ODE tiene metadatos.. ya sea integrados en el manifest o
   * externos al mismo.
   *
   * @return String con tres posibles valores
   *     <ul>
   *       <li>null . - si el ODE no tiene metadatos
   *       <li>vacio . - si el ODE tiene metadatos integrados en el manifest
   *       <li>path al metadato. - si el ODE tiene metadatos externos que sean lomes validos </ul
   */
  private String chequearLomes() throws Exception {
    String resultado = null;
    List listaLomes = new ArrayList();

    Node nodo = modelo.getNode().getChildNodes().item(0);
    NodeModel.simplify(nodo);
    boolean terminado = false;

    NodeList hijos = nodo.getChildNodes();
    for (int i = 0; i < hijos.getLength() && !terminado; i++) {
      Node child = hijos.item(i);
      if (child.getLocalName() != null && child.getLocalName().equals("metadata")) {
        NodeList hijos2 = child.getChildNodes();
        for (int j = 0; j < hijos2.getLength() && !terminado; j++) {
          Node child2 = hijos2.item(j);
          if (child2.getLocalName() != null && child2.getLocalName().equals("lom")) {
            resultado = "";
            terminado = true;
          }
          if (child2.getLocalName() != null && child2.getLocalName().equals("location")) {
            listaLomes.add(child2.getFirstChild().getNodeValue());
          }
        }
      } // metadata
    }

    if (resultado == null
        && listaLomes.size() > 0) { // busco en la lista de nodos externos al primero que sea lomes
      boolean encontrado = false;
      for (Iterator iter = listaLomes.iterator(); iter.hasNext() && !encontrado; ) {
        String path = (String) iter.next();
        if (chequearTipoLomesExterno(path)) {
          resultado = path;
          encontrado = true;
        }
      }
    }

    return resultado;
  }
Пример #2
0
  /**
   * metodo que permite verificar si un fichero lomes externo es un fichero lomes
   *
   * @param lomesExterno path al fichero xml con los metadatos
   * @return
   *     <ul>
   *       <li>true .- si es un lomes
   *       <li>false.- si no es un lomes
   *     </ul>
   */
  private boolean chequearTipoLomesExterno(String lomesExterno) throws Exception {
    boolean resultado = false;

    NodeModel modeloExterno = null;
    try {
      modeloExterno = NodeModel.parse(new File(pathOde + "/" + lomesExterno));
      Node nodo = modeloExterno.getNode().getChildNodes().item(0);
      if (nodo != null
          && nodo.getNamespaceURI() != null
          && nodo.getNamespaceURI().equals("http://ltsc.ieee.org/xsd/LOM")) {
        resultado = true;
      }

    } catch (Exception e) {
      if (logger.isDebugEnabled()) {
        logger.debug(
            "Error en GeneradorHTML:chequearTipoLomesExterno .. problemas al leer fichero lomes externo: "
                + e.getMessage());
      }
      throw e;
    }
    return resultado;
  }
Пример #3
0
  /**
   * Método que devuelve el título de ode en caso que existiera.. busca el título en el lomes
   * integrado en el manifest o en algun lomes externo si lo tuviera.
   *
   * @return String con el título del ode
   */
  private String obtenerTitulo() throws Exception {
    String resultado = "";
    if (pathLomesExterno == null) return resultado;
    boolean terminado = false;

    if (pathLomesExterno.equals("")) {
      Node nodo = modelo.getNode().getChildNodes().item(0);
      NodeModel.simplify(nodo);

      NodeList hijos = nodo.getChildNodes();
      for (int i = 0; i < hijos.getLength() && !terminado; i++) {
        Node child = hijos.item(i);
        if (child.getLocalName() != null && child.getLocalName().equals("metadata")) {

          NodeList hijos2 = child.getChildNodes();
          for (int j = 0; j < hijos2.getLength() && !terminado; j++) {
            Node child2 = hijos2.item(j);
            if (child2.getLocalName() != null && child2.getLocalName().equals("lom")) {

              NodeList hijos3 = child2.getChildNodes();
              for (int k = 0; k < hijos3.getLength() && !terminado; k++) {
                Node child3 = hijos3.item(k);
                if (child3.getLocalName() != null && child3.getLocalName().equals("general")) {

                  NodeList hijos4 = child3.getChildNodes();
                  for (int l = 0; l < hijos4.getLength() && !terminado; l++) {
                    Node child4 = hijos4.item(l);
                    if (child4.getLocalName() != null && child4.getLocalName().equals("title")) {

                      NodeList hijos5 = child4.getChildNodes();
                      for (int ll = 0; ll < hijos5.getLength() && !terminado; ll++) {
                        Node child5 = hijos5.item(ll);
                        if (child5.getLocalName() != null
                            && child5.getLocalName().equals("string")) {
                          resultado = child5.getFirstChild().getNodeValue();

                          terminado = true;
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        } // metadata
      }
    } else {
      NodeModel modeloExterno = null;
      try {
        modeloExterno = NodeModel.parse(new File(pathOde + "/" + pathLomesExterno));

        Node nodo = modeloExterno.getNode().getChildNodes().item(0);
        NodeModel.simplify(nodo);

        NodeList hijos = nodo.getChildNodes();
        for (int i = 0; i < hijos.getLength() && !terminado; i++) {
          Node child = hijos.item(i);
          if (child.getLocalName() != null && child.getLocalName().equals("general")) {

            NodeList hijos2 = child.getChildNodes();
            for (int j = 0; j < hijos2.getLength() && !terminado; j++) {
              Node child2 = hijos2.item(j);
              if (child2.getLocalName() != null && child2.getLocalName().equals("title")) {

                NodeList hijos3 = child2.getChildNodes();
                for (int k = 0; k < hijos3.getLength() && !terminado; k++) {
                  Node child3 = hijos3.item(k);
                  if (child3.getLocalName() != null && child3.getLocalName().equals("string")) {
                    resultado = child3.getFirstChild().getNodeValue();
                    terminado = true;
                  }
                }
              }
            }
          } // metadata
        }

      } catch (Exception e) {
        if (logger.isDebugEnabled()) {
          logger.debug("Error en GeneradorHTML:obtenerTitulo .. " + e.getMessage());
        }
        throw e;
      }
    }

    return resultado;
  }