@Override public boolean equals(Object obj) { if (!(obj instanceof ConfigItem)) { return false; } ConfigItem<?> toCompare = (ConfigItem<?>) obj; if (!compareMetadata(toCompare.getMetaData(), getMetaData())) { if (!compareMetadata(getMetaData(), toCompare.getMetaData())) { return false; } } return true; }
@Override public List<ConfigItem<WorkflowRepresentation>> load(Map<String, String> metadata) throws PersistenceException, InvalidConfigurationException { LOGGER.info("Loading all Workflows"); List<ConfigItem<WorkflowRepresentation>> result = new ArrayList<ConfigItem<WorkflowRepresentation>>(); try { File[] listFiles = folder.listFiles(); Arrays.sort(listFiles, NameFileComparator.NAME_COMPARATOR); for (File file : listFiles) { String readFileToString = FileUtils.readFileToString(file); WorkflowRepresentation unmarshallWorkflow = converter.unmarshallWorkflow(readFileToString); ConfigItem<WorkflowRepresentation> config = new ConfigItem<WorkflowRepresentation>(); config.setContent(unmarshallWorkflow); result.add(config); } } catch (IOException e) { throw new PersistenceException(e); } return result; }
@Override public void persist(ConfigItem<WorkflowRepresentation> config) throws PersistenceException { LOGGER.info("Persisting Workflow " + config.getContent().getName()); WorkflowRepresentation content = config.getContent(); String marshallWorkflow = converter.marshallWorkflow(content); File file = new File(folder, content.getName()); try { FileWriter writer = new FileWriter(file); writer.write(marshallWorkflow); writer.close(); } catch (IOException e) { throw new PersistenceException(e); } }
@Override public void saveCurrentWorkflow() throws PersistenceException { ConfigItem<WorkflowRepresentation> workflowRepresentation = new ConfigItem<WorkflowRepresentation>(); workflowRepresentation.setContent(getCurrentWorkflow()); try { LOGGER.debug("Saving workflow " + getCurrentWorkflow().getName()); configPersistence.persist(workflowRepresentation); } catch (InvalidConfigurationException e) { LOGGER.error("Invalid Configuration: " + e.getMessage()); throw new PersistenceException(e); } }
@Override public void loadWorkflowsFromDatabase() throws PersistenceException { try { List<ConfigItem<WorkflowRepresentation>> load = configPersistence.load(new HashMap<String, String>()); for (ConfigItem<WorkflowRepresentation> configItem : load) { final WorkflowRepresentation content = configItem.getContent(); workflows.put(content.getName(), content); } } catch (InvalidConfigurationException e) { LOGGER.error("Invalid Configuration: " + e.getMessage()); throw new PersistenceException(e); } }
@Override public boolean equals(Object obj) { if (!(obj instanceof ConfigItem)) { return false; } ConfigItem<?> toCompare = (ConfigItem<?>) obj; if (!compareMetadata(toCompare.getMetaData(), getMetaData())) { if (!compareMetadata(getMetaData(), toCompare.getMetaData())) { return false; } } return true; }