List of usage examples for org.jdom2.output XMLOutputter XMLOutputter
public XMLOutputter(XMLOutputProcessor processor)
XMLOutputter
with the specified XMLOutputProcessor. From source file:delfos.group.grs.consensus.ConsensusOfIndividualRecommendationsToXML.java
License:Open Source License
public static void writeConsensusInputXML(DatasetLoader datasetLoader, GroupRecommendations groupRecommendations, Collection<RecommendationsToUser> membersRecommendations, File outputFile) {//www . j av a 2s . c o m Element root = new Element(CONSENSUS_ROOT_ELEMENT_NAME); for (RecommendationsToUser recommendationsToMember : membersRecommendations) { User member = recommendationsToMember.getUser(); Element thisMemberElement = new Element(MEMBER_ELEMENT_NAME); thisMemberElement.setAttribute(MEMBER_ELEMENT_NAME_ID_ATTRIBUTE_NAME, Integer.toString(member.getId())); List<Recommendation> sortedRecommendations = recommendationsToMember.getRecommendations().stream() .sorted(Recommendation.BY_PREFERENCE_DESC).collect(Collectors.toList()); int rank = 1; for (Recommendation r : sortedRecommendations) { Element recommendation = new Element(RECOMMENDATION_ELEMENT_NAME); recommendation.setAttribute(RECOMMENDATION_ELEMENT_ID_ITEM_ATTRIBUTE_NAME, Integer.toString(r.getItem().getId())); double preferenceInDomain = datasetLoader.getRatingsDataset().getRatingsDomain() .trimValueToDomain(r.getPreference()).doubleValue(); recommendation.setAttribute(RECOMMENDATION_ELEMENT_PREFERENCE_ATTRIBUTE_NAME, Double.toString(preferenceInDomain)); recommendation.setAttribute(RECOMMENDATION_ELEMENT_RANK_ATTRIBUTE_NAME, Integer.toString(rank)); thisMemberElement.addContent(recommendation); rank++; } root.addContent(thisMemberElement); } Element groupElement = new Element(GROUP_ELEMENT_NAME); String members = groupRecommendations.getGroupOfUsers().toString(); groupElement.setAttribute(GROUP_ELEMENT_MEMBERS_ATTRIBUTE_NAME, members); int rank = 1; List<Recommendation> sortedGroupRecommendations = groupRecommendations.getRecommendations().stream() .sorted(Recommendation.BY_PREFERENCE_DESC).collect(Collectors.toList()); for (Recommendation r : sortedGroupRecommendations) { Element recommendation = new Element(RECOMMENDATION_ELEMENT_NAME); recommendation.setAttribute(RECOMMENDATION_ELEMENT_ID_ITEM_ATTRIBUTE_NAME, Integer.toString(r.getIdItem())); recommendation.setAttribute(RECOMMENDATION_ELEMENT_PREFERENCE_ATTRIBUTE_NAME, Double.toString(r.getPreference().doubleValue())); recommendation.setAttribute(RECOMMENDATION_ELEMENT_RANK_ATTRIBUTE_NAME, Integer.toString(rank)); groupElement.addContent(recommendation); rank++; } root.addContent(groupElement); Document doc = new Document(); doc.addContent(root); XMLOutputter outputter = new XMLOutputter(Constants.getXMLFormat()); try (FileWriter fileWriter = new FileWriter(outputFile)) { outputter.output(doc, fileWriter); } catch (IOException ex) { ERROR_CODES.CANNOT_WRITE_RESULTS_FILE.exit(ex); } }
From source file:delfos.group.grs.consensus.ConsensusOfIndividualRecommendationsToXML.java
License:Open Source License
public static <RatingType extends Rating> void writeRecommendationMembersRatingsXML( Map<Integer, Map<Integer, RatingType>> membersRatings, Collection<Integer> candidateItems, File groupPredictionRequestsFile) { Element root = new Element(RECOMMENDATION_INPUT_ROOT_ELEMENT_NAME); Element membersRatingsElement = new Element(RECOMMENDATION_INPUT_MEMBERS_RATINGS_ELEMENT_NAME); for (int idMember : membersRatings.keySet()) { Element thisMemberRatingsElement = new Element(RECOMMENDATION_INPUT_MEMBER_RATINGS_ELEMENT_NAME); thisMemberRatingsElement.setAttribute(RECOMMENDATION_INPUT_MEMBER_RATINGS_ID_USER_ATTRIBUTE_NAME, Integer.toString(idMember)); Map<Integer, RatingType> memberRatings = membersRatings.get(idMember); for (RatingType memberRating : memberRatings.values()) { Element ratingElement = new Element(RECOMMENDATION_INPUT_MEMBER_RATINGS_RATING_ELEMENT_NAME); ratingElement.setAttribute(RECOMMENDATION_INPUT_MEMBER_RATINGS_ID_USER_ATTRIBUTE_NAME, Integer.toString(memberRating.getIdUser())); ratingElement.setAttribute(RECOMMENDATION_INPUT_MEMBER_RATINGS_ID_ITEM_ATTRIBUTE_NAME, Integer.toString(memberRating.getIdItem())); ratingElement.setAttribute(RECOMMENDATION_INPUT_MEMBER_RATINGS_RATING_VALUE_ATTRIBUTE_NAME, Double.toString(memberRating.getRatingValue().doubleValue())); thisMemberRatingsElement.addContent(ratingElement); }//from w w w .j ava 2s . c o m membersRatingsElement.addContent(thisMemberRatingsElement); } root.addContent(membersRatingsElement); Element candidateItemsElement = new Element(RECOMMENDATION_INPUT_ID_ITEM_LIST_ELEMENT_NAME); for (int idItemRequested : candidateItems) { Element itemRequestedElement = new Element(RECOMMENDATION_INPUT_ITEM_REQUEST_ELEMENT_NAME); itemRequestedElement.setAttribute(RECOMMENDATION_INPUT_ITEM_REQUEST_ID_ITEM_ATTRIBUTE_NAME, Integer.toString(idItemRequested)); candidateItemsElement.addContent(itemRequestedElement); } root.addContent(candidateItemsElement); Document doc = new Document(); doc.addContent(root); XMLOutputter outputter = new XMLOutputter(Constants.getXMLFormat()); try (FileWriter fileWriter = new FileWriter(groupPredictionRequestsFile)) { outputter.output(doc, fileWriter); } catch (IOException ex) { ERROR_CODES.CANNOT_WRITE_RESULTS_FILE.exit(ex); } }
From source file:delfos.group.io.xml.casestudy.GroupCaseStudyXML.java
License:Open Source License
public synchronized static void caseStudyToXMLFile_fullResults(GroupCaseStudy caseStudyGroup, File file) { if (!caseStudyGroup.isFinished()) { throw new UnsupportedOperationException("No se ha ejecutado el caso de uso todava"); }/* ww w . j ava 2 s . c o m*/ Document doc = new Document(); Element casoDeUso = new Element("Case"); casoDeUso.setAttribute(SeedHolder.SEED.getName(), Long.toString(caseStudyGroup.getSeedValue())); casoDeUso.setAttribute(NUM_EXEC_ATTRIBUTE_NAME, Integer.toString(caseStudyGroup.getNumExecutions())); casoDeUso.setAttribute(ParameterOwner.ALIAS.getName(), caseStudyGroup.getAlias()); casoDeUso.addContent(GroupRecommenderSystemXML.getElement(caseStudyGroup.getGroupRecommenderSystem())); casoDeUso.addContent(DatasetLoaderXML.getElement(caseStudyGroup.getDatasetLoader())); casoDeUso.addContent(GroupFormationTechniqueXML.getElement(caseStudyGroup.getGroupFormationTechnique())); casoDeUso.addContent(ValidationTechniqueXML.getElement(caseStudyGroup.getValidationTechnique())); casoDeUso.addContent(GroupPredictionProtocolXML.getElement(caseStudyGroup.getGroupPredictionProtocol())); casoDeUso.addContent(RelevanceCriteriaXML.getElement(caseStudyGroup.getRelevanceCriteria())); casoDeUso.addContent(getResultsElement(caseStudyGroup)); casoDeUso.addContent(getAggregatedResultsElement(caseStudyGroup)); doc.addContent(casoDeUso); XMLOutputter outputter = new XMLOutputter(Constants.getXMLFormat()); FileUtilities.createDirectoriesForFile(file); try (FileWriter fileWriter = new FileWriter(file)) { outputter.output(doc, fileWriter); } catch (IOException ex) { ERROR_CODES.CANNOT_WRITE_RESULTS_FILE.exit(ex); } }
From source file:delfos.group.io.xml.casestudy.GroupCaseStudyXML.java
License:Open Source License
/** * Saves the xml with the description of the case study in de file * specified.// w w w .j a v a 2 s . com * * @param caseStudyGroup Group case study whose description is saved. * @param file File in which the description is saved. */ public static void caseStudyToXMLFile_onlyDescription(GroupCaseStudy caseStudyGroup, File file) { if (caseStudyGroup.isFinished()) { throw new IllegalArgumentException("Ya se ha ejecutado el caso de estudio!"); } Document doc = new Document(); Element casoDeUso = new Element(CASE_ROOT_ELEMENT_NAME); casoDeUso.setAttribute(SeedHolder.SEED.getName(), Long.toString(caseStudyGroup.getSeedValue())); casoDeUso.setAttribute(NUM_EXEC_ATTRIBUTE_NAME, Integer.toString(caseStudyGroup.getNumExecutions())); casoDeUso.setAttribute(ParameterOwner.ALIAS.getName(), caseStudyGroup.getAlias()); casoDeUso.setAttribute(HASH_ATTRIBUTE_NAME, Integer.toString(caseStudyGroup.hashCode())); casoDeUso.setAttribute(HASH_DATA_VALIDATION_ATTRIBUTE_NAME, Integer.toString(caseStudyGroup.hashCode())); casoDeUso.addContent(GroupRecommenderSystemXML.getElement(caseStudyGroup.getGroupRecommenderSystem())); casoDeUso.addContent(DatasetLoaderXML.getElement(caseStudyGroup.getDatasetLoader())); casoDeUso.addContent(GroupFormationTechniqueXML.getElement(caseStudyGroup.getGroupFormationTechnique())); casoDeUso.addContent(ValidationTechniqueXML.getElement(caseStudyGroup.getValidationTechnique())); casoDeUso.addContent(GroupPredictionProtocolXML.getElement(caseStudyGroup.getGroupPredictionProtocol())); casoDeUso.addContent(RelevanceCriteriaXML.getElement(caseStudyGroup.getRelevanceCriteria())); doc.addContent(casoDeUso); FileUtilities.createDirectoriesForFile(file); XMLOutputter outputter = new XMLOutputter(Constants.getXMLFormat()); try (FileWriter fileWriter = new FileWriter(file)) { outputter.output(doc, fileWriter); fileWriter.close(); } catch (IOException ex) { ERROR_CODES.CANNOT_WRITE_RESULTS_FILE.exit(ex); } }
From source file:delfos.group.io.xml.casestudy.GroupCaseStudyXML.java
License:Open Source License
private static void caseStudyToXMLFile_aggregateResults(GroupCaseStudy caseStudyGroup, File file) { if (!caseStudyGroup.isFinished()) { throw new UnsupportedOperationException("No se ha ejecutado el caso de uso todava"); }/*from w ww. ja v a2 s . com*/ Document doc = new Document(); Element casoDeUso = new Element(CASE_ROOT_ELEMENT_NAME); casoDeUso.setAttribute(SeedHolder.SEED.getName(), Long.toString(caseStudyGroup.getSeedValue())); casoDeUso.setAttribute(NUM_EXEC_ATTRIBUTE_NAME, Integer.toString(caseStudyGroup.getNumExecutions())); casoDeUso.setAttribute(ParameterOwner.ALIAS.getName(), caseStudyGroup.getAlias()); casoDeUso.setAttribute(HASH_ATTRIBUTE_NAME, Integer.toString(caseStudyGroup.hashCode())); casoDeUso.setAttribute(HASH_DATA_VALIDATION_ATTRIBUTE_NAME, Integer.toString(caseStudyGroup.hashDataValidation())); casoDeUso.setAttribute(HASH_TECHNIQUE_ATTRIBUTE_NAME, Integer.toString(caseStudyGroup.hashTechnique())); casoDeUso.addContent(GroupRecommenderSystemXML.getElement(caseStudyGroup.getGroupRecommenderSystem())); casoDeUso.addContent(DatasetLoaderXML.getElement(caseStudyGroup.getDatasetLoader())); casoDeUso.addContent(GroupFormationTechniqueXML.getElement(caseStudyGroup.getGroupFormationTechnique())); casoDeUso.addContent(ValidationTechniqueXML.getElement(caseStudyGroup.getValidationTechnique())); casoDeUso.addContent(GroupPredictionProtocolXML.getElement(caseStudyGroup.getGroupPredictionProtocol())); casoDeUso.addContent(RelevanceCriteriaXML.getElement(caseStudyGroup.getRelevanceCriteria())); casoDeUso.addContent(getAggregatedResultsElement(caseStudyGroup)); doc.addContent(casoDeUso); XMLOutputter outputter = new XMLOutputter(Constants.getXMLFormat()); FileUtilities.createDirectoriesForFile(file); try (FileWriter fileWriter = new FileWriter(file)) { outputter.output(doc, fileWriter); } catch (IOException ex) { ERROR_CODES.CANNOT_WRITE_RESULTS_FILE.exit(ex); } }
From source file:delfos.group.results.groupevaluationmeasures.printers.neighbor.PrintNeighborsToXML.java
License:Open Source License
@Override public GroupEvaluationMeasureResult getMeasureResult(GroupRecommenderSystemResult groupRecommenderSystemResult, DatasetLoader<? extends Rating> originalDatasetLoader, RelevanceCriteria relevanceCriteria, DatasetLoader<? extends Rating> trainingDatasetLoader, DatasetLoader<? extends Rating> testDatasetLoader) { File output = new File( PRINTER_DIRECTORY.getPath() + File.separator + groupRecommenderSystemResult.getGroupCaseStudyAlias() + "__" + "exec=" + groupRecommenderSystemResult.getThisExecution() + "-split=" + groupRecommenderSystemResult.getThisSplit() + "-neighbors.xml"); boolean writeFile = false; Element neighborsDetails = new Element("NeighborsDetails"); for (GroupOfUsers groupOfUsers : groupRecommenderSystemResult.getGroupsOfUsers()) { Collection<Recommendation> groupRecommendations = groupRecommenderSystemResult .getGroupOutput(groupOfUsers).getRecommendations().getRecommendations(); List<Neighbor> neighbors; if (groupRecommendations.isEmpty()) { } else if ((groupRecommendations.iterator().next() instanceof RecommendationWithNeighbors)) { writeFile = true;//w ww.ja v a2 s. co m RecommendationWithNeighbors recommendationWithNeighbors = (RecommendationWithNeighbors) groupRecommendations .iterator().next(); neighbors = recommendationWithNeighbors.getNeighbors().stream().collect(Collectors.toList()); Collections.sort(neighbors, Neighbor.BY_ID); neighbors = Collections.unmodifiableList(neighbors); Element groupResults = new Element("GroupResults"); groupResults.addContent(RecommendationsWithNeighborToXML .getNeighborsElement(groupOfUsers.getTargetId(), neighbors)); neighborsDetails.addContent(groupResults); } else { return new GroupEvaluationMeasureResult(this, 0); } } if (writeFile) { XMLOutputter outputter = new XMLOutputter(Constants.getXMLFormat()); FileUtilities.createDirectoriesForFile(output); try (FileWriter fileWriter = new FileWriter(output)) { outputter.output(neighborsDetails, fileWriter); } catch (IOException ex) { ERROR_CODES.CANNOT_WRITE_RESULTS_FILE.exit(ex); } } return new GroupEvaluationMeasureResult(this, 1.0); }
From source file:delfos.group.results.groupevaluationmeasures.printers.PrintGroups.java
License:Open Source License
@Override public GroupEvaluationMeasureResult getMeasureResult(GroupRecommenderSystemResult groupRecommenderSystemResult, DatasetLoader<? extends Rating> originalDatasetLoader, RelevanceCriteria relevanceCriteria, DatasetLoader<? extends Rating> trainingDatasetLoader, DatasetLoader<? extends Rating> testDatasetLoader) { File output = new File( PRINTER_DIRECTORY.getPath() + File.separator + groupRecommenderSystemResult.getGroupCaseStudyAlias() + "__" + "exec=" + groupRecommenderSystemResult.getThisExecution() + "-split=" + groupRecommenderSystemResult.getThisSplit() + "-groups.xml"); Element groups = new Element("Groups"); for (GroupOfUsers groupOfUsers : groupRecommenderSystemResult.getGroupsOfUsers()) { Element group = new Element("Group"); group.setAttribute("group", groupOfUsers.toString()); groups.addContent(group);/* w w w .ja v a2 s . c o m*/ } FileUtilities.createDirectoriesForFile(output); try (FileWriter fileWriter = new FileWriter(output)) { XMLOutputter outputter = new XMLOutputter(Constants.getXMLFormat()); outputter.output(groups, fileWriter); } catch (IOException ex) { ERROR_CODES.CANNOT_WRITE_RESULTS_FILE.exit(ex); } return new GroupEvaluationMeasureResult(this, 1.0); }
From source file:delfos.io.xml.casestudy.CaseStudyXML.java
License:Open Source License
public synchronized static void caseStudyToXMLFile(CaseStudy caseStudy, File file) { if (!caseStudy.isFinished()) { throw new UnsupportedOperationException("No se ha ejecutado el caso de uso todava"); }//from www . java 2 s .c o m Document doc = new Document(); Element casoDeUso = new Element(CASE_ROOT_ELEMENT_NAME); casoDeUso.setAttribute(SEED_ATTRIBUTE_NAME, Long.toString(caseStudy.getSeedValue())); casoDeUso.setAttribute(NUM_EXEC_ATTRIBUTE_NAME, Integer.toString(caseStudy.getNumExecutions())); casoDeUso.addContent(RecommenderSystemXML.getElement(caseStudy.getRecommenderSystem())); casoDeUso.addContent(ValidationTechniqueXML.getElement(caseStudy.getValidationTechnique())); casoDeUso.addContent(PredictionProtocolXML.getElement(caseStudy.getPredictionProtocol())); casoDeUso.addContent(RelevanceCriteriaXML.getElement(caseStudy.getRelevanceCriteria())); casoDeUso.addContent(DatasetLoaderXML.getElement(caseStudy.getDatasetLoader())); casoDeUso.addContent(getResultsElement(caseStudy)); casoDeUso.addContent(getAggregatedResultsElement(caseStudy)); doc.addContent(casoDeUso); XMLOutputter outputter = new XMLOutputter(Constants.getXMLFormat()); try (FileWriter fileWriter = new FileWriter(file)) { outputter.output(doc, fileWriter); } catch (IOException ex) { ERROR_CODES.CANNOT_WRITE_RESULTS_FILE.exit(ex); } }
From source file:delfos.io.xml.casestudy.CaseStudyXML.java
License:Open Source License
public synchronized static void caseStudyToXMLFile(CaseStudy caseStudy, String descriptiveName, File f) { if (!caseStudy.isFinished()) { throw new UnsupportedOperationException("No se ha ejecutado el caso de uso todava"); }//from w w w . j a va2 s. c o m Document doc = new Document(); Element casoDeUso = new Element("Case"); casoDeUso.addContent(RecommenderSystemXML.getElement(caseStudy.getRecommenderSystem())); casoDeUso.addContent(ValidationTechniqueXML.getElement(caseStudy.getValidationTechnique())); casoDeUso.addContent(PredictionProtocolXML.getElement(caseStudy.getPredictionProtocol())); casoDeUso.addContent(RelevanceCriteriaXML.getElement(caseStudy.getRelevanceCriteria())); casoDeUso.addContent(DatasetLoaderXML.getElement(caseStudy.getDatasetLoader())); casoDeUso.addContent(getResultsElement(caseStudy)); casoDeUso.addContent(getAggregatedResultsElement(caseStudy)); doc.addContent(casoDeUso); XMLOutputter outputter = new XMLOutputter(Constants.getXMLFormat()); try (FileWriter fileWriter = new FileWriter(f)) { outputter.output(doc, fileWriter); } catch (IOException ex) { ERROR_CODES.CANNOT_WRITE_RESULTS_FILE.exit(ex); } }
From source file:delfos.io.xml.casestudy.CaseStudyXML.java
License:Open Source License
private static void caseStudyToXMLFile_onlyDescription(CaseStudy caseStudy, File file) { if (caseStudy.isFinished()) { throw new IllegalArgumentException("Ya se ha ejecutado el caso de estudio!"); }//from w w w . ja v a 2s . c om Document doc = new Document(); Element casoDeUso = new Element(CASE_ROOT_ELEMENT_NAME); casoDeUso.addContent(RecommenderSystemXML.getElement(caseStudy.getRecommenderSystem())); casoDeUso.addContent(ValidationTechniqueXML.getElement(caseStudy.getValidationTechnique())); casoDeUso.addContent(PredictionProtocolXML.getElement(caseStudy.getPredictionProtocol())); casoDeUso.addContent(RelevanceCriteriaXML.getElement(caseStudy.getRelevanceCriteria())); casoDeUso.addContent(DatasetLoaderXML.getElement(caseStudy.getDatasetLoader())); //casoDeUso.addContent(getResultsElement(caseStudy)); //casoDeUso.addContent(getAggregatedResultsElement(caseStudy)); doc.addContent(casoDeUso); XMLOutputter outputter = new XMLOutputter(Constants.getXMLFormat()); try (FileWriter fileWriter = new FileWriter(file)) { outputter.output(doc, fileWriter); } catch (IOException ex) { ERROR_CODES.CANNOT_WRITE_RESULTS_FILE.exit(ex); } }