/*
 *
 * xmlGenerator.java
 *
 */

package com.uvigo.tMaestro.SCOCreator.tool.metadataGenerator;

/**
 * Esta interfaz debe ser implementada por todas aquellas clases que el
 * programador debera proveer para generar el fichero .xml de metadatos para
 * cada uno de los esquemas de metadatos contemplados en la herramienta. La
 * herramienta por defecto proporciona el esquema LOM v1.0 (que por tanto implementa
 * esta interfaz) en el fichero LOMv1.java. Todos los esquemas que se deseen anadir
 * deben contemplar una clase java en el package metadataGenerator cuyo nombre
 * ha de ser el del esquema (vocabulario) que se ha indicado en el fichero .xml
 * correspondiente del package metadata. De esta forma, la implementacion de LOM v1.0
 * esta compuesta por: el fichero LOMv1.xml del package metadata y el fichero LOMv1.java
 * del package metadataGenerator. El fichero .xml es el responsable de la presentacion del
 * formulario de usuario, mientras el segundo es el responsable de la generacion del fichero
 * .xml de metadatos informados por el usuario a traves del formulario.
 * @author raul
 * @version 0.1
 */
public interface XmlGenerator {
    
    /**
     * unico metodo de la interfaz que debe escribir el fichero .xml de metadatos
     * en la ruta indicada por oFile. Los valores de los metadatos de pasan en la estructura
     * metadata donde las keys son los nombres (etiquetas) de los metadatos y los values
     * son lso valores de esos metadatos.
     * @param oFile Ruta al fichero .xml
     * @param oMetadata Estructura con los metadatos. (etiquetas y valores)
     * Las etiquetas son nombres compuestos (canonicos) cuyos campos estan separados por el caracter '.'
     * Si los nombres son simples estar�n compuestos por un solo nombre (no habra caracter '.')
     */
    public void generateXMLFile(java.io.File oFile,java.util.HashMap<String,Object> oMetadata) throws Exception;
    
}
