Example usage for org.jdom2.input SAXBuilder build

List of usage examples for org.jdom2.input SAXBuilder build

Introduction

In this page you can find the example usage for org.jdom2.input SAXBuilder build.

Prototype

@Override
public Document build(final String systemId) throws JDOMException, IOException 

Source Link

Document

This builds a document from the supplied URI.

Usage

From source file:delfos.group.io.xml.casestudy.GroupCaseStudyXML.java

License:Open Source License

/**
 * Carga la descripcin de un caso de estudio para sistemas de recomendacin
 * para grupos.//  w  ww  . ja  va  2 s  . c  om
 *
 * @param file Archivo donde se encuentra almacenado el caso de estudio.
 * @return Caso de estudio recuperado del archivo.
 * @throws org.jdom2.JDOMException Cuando se intenta cargar un xml que no
 * tiene la estructura esperada. Chequear si esta desfasada la versin.
 * @throws IOException Cuando no se puede leer el archivo indicado o existe
 * algun fallo de conversin de datos al leer el contenido del mismo.
 */
public static GroupCaseStudyConfiguration loadGroupCaseWithResults(File file)
        throws JDOMException, IOException {
    SAXBuilder builder = new SAXBuilder();

    Document doc = builder.build(file);
    Element caseStudy = doc.getRootElement();
    if (!caseStudy.getName().equals(CASE_ROOT_ELEMENT_NAME)) {
        throw new IllegalArgumentException("The XML does not contains a Case Study.");
    }
    GroupRecommenderSystem<Object, Object> groupRecommenderSystem = GroupRecommenderSystemXML
            .getGroupRecommenderSystem(caseStudy.getChild(GroupRecommenderSystemXML.ELEMENT_NAME));

    GroupFormationTechnique groupFormationTechnique = GroupFormationTechniqueXML
            .getGroupFormationTechnique(caseStudy.getChild(GroupFormationTechniqueXML.ELEMENT_NAME));
    ValidationTechnique validationTechnique = ValidationTechniqueXML
            .getValidationTechnique(caseStudy.getChild(ValidationTechniqueXML.ELEMENT_NAME));
    GroupPredictionProtocol groupPredictionProtocol = GroupPredictionProtocolXML
            .getGroupPredictionProtocol(caseStudy.getChild(GroupPredictionProtocolXML.ELEMENT_NAME));
    RelevanceCriteria relevanceCriteria = RelevanceCriteriaXML
            .getRelevanceCriteria(caseStudy.getChild(RelevanceCriteriaXML.ELEMENT_NAME));

    DatasetLoader<? extends Rating> datasetLoader = DatasetLoaderXML
            .getDatasetLoader(caseStudy.getChild(DatasetLoaderXML.ELEMENT_NAME));

    Map<GroupEvaluationMeasure, GroupEvaluationMeasureResult> groupEvaluationMeasuresResults = getEvaluationMeasures(
            caseStudy);

    long seed = Long.parseLong(caseStudy.getAttributeValue(SeedHolder.SEED.getName()));
    int numExecutions = Integer.parseInt(caseStudy.getAttributeValue(NUM_EXEC_ATTRIBUTE_NAME));
    String caseStudyAlias = caseStudy.getAttributeValue(ParameterOwner.ALIAS.getName());

    return new GroupCaseStudyConfiguration(groupRecommenderSystem, datasetLoader, groupFormationTechnique,
            validationTechnique, groupPredictionProtocol, relevanceCriteria, caseStudyAlias, numExecutions,
            seed, groupEvaluationMeasuresResults);
}

From source file:delfos.group.io.xml.casestudy.GroupCaseStudyXML.java

License:Open Source License

public static int extractResultNumExec(File groupCaseStudyXML) throws JDOMException, IOException {
    SAXBuilder builder = new SAXBuilder();

    Document doc = builder.build(groupCaseStudyXML);
    Element caseStudy = doc.getRootElement();
    if (!caseStudy.getName().equals(CASE_ROOT_ELEMENT_NAME)) {
        throw new IllegalArgumentException("The XML does not contains a Case Study.");
    }/*from  w  ww  . jav a2  s .  c om*/

    Integer numExec = new Integer(caseStudy.getAttributeValue(NUM_EXEC_ATTRIBUTE_NAME));

    return numExec;
}

From source file:delfos.io.xml.casestudy.CaseStudyXML.java

License:Open Source License

/**
 * Carga un caso de estudio desde un archivo XML
 *
 * @param file Archivo XML del que se carga la configuracin del caso de estudio.
 * @return//ww  w.  j av  a  2  s  . c  o m
 * @throws org.jdom2.JDOMException
 * @throws java.io.IOException
 */
public static CaseStudyConfiguration loadCase(File file) throws JDOMException, IOException {

    SAXBuilder builder = new SAXBuilder();
    Document doc = builder.build(file);

    Element caseStudy = doc.getRootElement();
    if (!caseStudy.getName().equals(CASE_ROOT_ELEMENT_NAME)) {
        throw new IllegalArgumentException(
                "The XML does not contains a Case Study (" + file.getAbsolutePath() + ")");
    }
    GenericRecommenderSystem<Object> recommenderSystem = RecommenderSystemXML
            .getRecommenderSystem(caseStudy.getChild(RecommenderSystemXML.ELEMENT_NAME));
    DatasetLoader<? extends Rating> datasetLoader = DatasetLoaderXML
            .getDatasetLoader(caseStudy.getChild(DatasetLoaderXML.ELEMENT_NAME));
    ValidationTechnique validationTechnique = ValidationTechniqueXML
            .getValidationTechnique(caseStudy.getChild(ValidationTechniqueXML.ELEMENT_NAME));
    PredictionProtocol predictionProtocol = PredictionProtocolXML
            .getPredictionProtocol(caseStudy.getChild(PredictionProtocolXML.ELEMENT_NAME));
    RelevanceCriteria relevanceCriteria = RelevanceCriteriaXML
            .getRelevanceCriteria(caseStudy.getChild(RelevanceCriteriaXML.ELEMENT_NAME));

    return new CaseStudyConfiguration(recommenderSystem, datasetLoader, validationTechnique, predictionProtocol,
            relevanceCriteria);
}

From source file:delfos.io.xml.casestudy.CaseStudyXML.java

License:Open Source License

/**
 * Carga un caso de estudio desde un archivo XML
 *
 * @param file Archivo XML del que se carga la configuracin del caso de estudio.
 * @return// w ww . j a  v  a  2  s  . co m
 * @throws org.jdom2.JDOMException
 * @throws java.io.IOException
 */
public static CaseStudyResults loadCaseResults(File file) throws JDOMException, IOException {

    SAXBuilder builder = new SAXBuilder();
    Document doc = builder.build(file);

    Element caseStudy = doc.getRootElement();
    if (!caseStudy.getName().equals(CASE_ROOT_ELEMENT_NAME)) {
        throw new IllegalArgumentException("The XML does not contains a Case Study.");
    }
    GenericRecommenderSystem<Object> recommenderSystem = RecommenderSystemXML
            .getRecommenderSystem(caseStudy.getChild(RecommenderSystemXML.ELEMENT_NAME));
    ValidationTechnique validationTechnique = ValidationTechniqueXML
            .getValidationTechnique(caseStudy.getChild(ValidationTechniqueXML.ELEMENT_NAME));
    PredictionProtocol predictionProtocol = PredictionProtocolXML
            .getPredictionProtocol(caseStudy.getChild(PredictionProtocolXML.ELEMENT_NAME));
    DatasetLoader<? extends Rating> datasetLoader = DatasetLoaderXML
            .getDatasetLoader(caseStudy.getChild(DatasetLoaderXML.ELEMENT_NAME));

    EvaluationMeasuresResults aggregatedElement = getAggregateEvaluationMeasures(
            caseStudy.getChild("Aggregate_values"));

    return new CaseStudyResults(recommenderSystem, datasetLoader, validationTechnique, predictionProtocol,
            aggregatedElement.evaluationMeasuresResults, aggregatedElement.buildTime,
            aggregatedElement.recommendationTime);

}

From source file:delfos.main.managers.experiment.join.xml.AggregateResultsXML.java

License:Open Source License

public Map<String, Object> extractMapFromFile(File inputFile) throws JDOMException, IOException {

    Element caseStudy;//from  ww  w  . j  a  v a 2  s . c  o  m

    long fileSize = FileUtils.sizeOf(inputFile);
    if (fileSize > Math.pow(2, 20)) {
        File smallerFile = new File(inputFile.getPath() + "_smaller");

        BufferedWriter writer;
        try (BufferedReader reader = new BufferedReader(new FileReader(inputFile))) {
            writer = new BufferedWriter(new FileWriter(smallerFile));
            String line = reader.readLine();
            while (line != null) {
                if (!line.contains("ndcg_value=")) {
                    writer.write(line);
                }
                line = reader.readLine();
            }
        }
        writer.close();

        SAXBuilder builder = new SAXBuilder();

        Document doc = builder.build(smallerFile);
        caseStudy = doc.getRootElement();
        smallerFile.delete();
    } else {
        SAXBuilder builder = new SAXBuilder();

        Document doc = builder.build(inputFile);
        caseStudy = doc.getRootElement();
    }

    Map<String, Object> valuesByColumnName = new TreeMap<>();

    if (!caseStudy.getName().equals(CASE_ROOT_ELEMENT_NAME)) {
        throw new IllegalArgumentException(
                "The XML does not contains a Case Study (" + inputFile.getAbsolutePath() + ")");
    }

    valuesByColumnName.putAll(extractCaseParametersMapFromElement(caseStudy));
    valuesByColumnName.putAll(extractCaseResultsMapFromElement(caseStudy));

    return valuesByColumnName;

}

From source file:delfos.rs.output.RecommendationsOutputFileXML.java

License:Open Source License

public Recommendations readRecommendations(String idTarget) throws JDOMException {

    SAXBuilder builder = new SAXBuilder();
    Document doc = null;/*from  w w w  .  java 2 s .  co m*/

    try {
        doc = builder.build(getCompleteFile(idTarget));
    } catch (IOException ex) {
        Global.showError(ex);
        ERROR_CODES.CANNOT_LOAD_CONFIG_FILE.exit(ex);
        throw new IllegalStateException(ex);
    }

    Element recommendationsElement = doc.getRootElement();
    Recommendations recommendations = RecommendationsToXML.getRecommendations(recommendationsElement);
    return recommendations;
}

From source file:delfos.web.DelfosWebConfiguration.java

public static String printXML(String xmlPath) {
    DelfosWebConfiguration.setConfiguration();
    File xml = new File(xmlPath);
    if (!xml.exists()) {
        ERROR_CODES.CONFIG_FILE_NOT_EXISTS.exit(
                new FileNotFoundException("Configuration file '" + xml.getAbsolutePath() + "' not found"));
    }/*from  w w w  . j  av a2s  .  c  o m*/
    Global.showMessageTimestamped("Loading config file " + xml.getAbsolutePath());
    SAXBuilder builder = new SAXBuilder();
    Document doc = null;
    try {
        doc = builder.build(xml);
    } catch (JDOMException | IOException ex) {
        Global.showError(ex);
        ERROR_CODES.CANNOT_LOAD_CONFIG_FILE.exit(ex);
        throw new IllegalStateException(ex);
    }
    Element config = doc.getRootElement();
    config.setAttribute("configurationFilePath", xml.getAbsolutePath());
    XMLOutputter outputter = new XMLOutputter(Constants.getXMLFormat());
    return outputter.outputString(doc);
}

From source file:devicemodel.conversions.XmlConversions.java

public static DeviceNode xmlToNode(File f) throws IOException, JDOMException {
    SAXBuilder docBuilder = new SAXBuilder();
    Document doc = docBuilder.build(f);

    return xmlToNode(doc.getRootElement());
}

From source file:devicemodel.conversions.XmlConversions.java

public static Element xmlString2Element(String string) throws JDOMException, IOException {
    SAXBuilder builder = new SAXBuilder();
    Document document = builder.build(new StringReader(string));
    return document.getRootElement();
}

From source file:devicerestservice.ExampleApp.java

public static void main(String[] args) throws IOException {
    if (args.length != 2) {
        System.out.println("Must specify configuration file and device description");
        System.exit(1);//from   w  w w  .ja v  a 2  s.  c o  m
    }

    File xmlConfig = new File(args[0]);
    File xmlDeviceDesc = new File(args[1]);
    if (!xmlConfig.exists()) {
        System.out.println("Configuration file not found.");
        System.exit(2);
    }
    if (!xmlDeviceDesc.exists()) {
        System.out.println("Device description file not found.");
        System.exit(3);
    }

    SAXBuilder builder = new SAXBuilder();
    Element configurationElement = null;
    Element deviceDescriptionElement = null;

    try {
        Document document = (Document) builder.build(xmlConfig);
        configurationElement = document.getRootElement();
    } catch (JDOMException ex) {
        System.out.println("Can't parse configuration file.");
        System.exit(4);
    }

    try {
        Document document = (Document) builder.build(xmlDeviceDesc);
        deviceDescriptionElement = document.getRootElement();
    } catch (JDOMException ex) {
        System.out.println("Can't parse device description file.");
        System.exit(5);
    }

    if (configurationElement == null || !configurationElement.getName().equals("Device")) {
        System.out.println("Not a proper configuration XML file.");
        System.out.println(
                "Ensure XML has elements in Pascal Case (i.e. DeviceName not deviceName or devicename)");
        System.exit(6);
    }

    new ExampleApp(configurationElement, deviceDescriptionElement);
}