/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.components.xml.merger.execution.validator;
import java.util.ArrayList;
import java.util.List;
import de.rcenvironment.components.xml.merger.common.XmlMergerComponentConstants;
import de.rcenvironment.components.xml.merger.execution.Messages;
import de.rcenvironment.core.component.model.api.ComponentDescription;
import de.rcenvironment.core.component.validation.api.ComponentValidationMessage;
import de.rcenvironment.core.component.validation.spi.AbstractComponentValidator;
import de.rcenvironment.core.datamodel.api.DataType;
/**
* Validator for XML Merger component.
*
* @author Jan Flink
* @author Jascha Riedel
*/
public class XmlMergerComponentValidator extends AbstractComponentValidator {
private static final String PROPERTY_MAPPING_TYPE = "mappingType";
private static final String PROPERTY_XML_CONTENT = "xmlContent";
@Override
public String getIdentifier() {
return XmlMergerComponentConstants.COMPONENT_ID;
}
@Override
protected List<ComponentValidationMessage> validateComponentSpecific(ComponentDescription componentDescription) {
final List<ComponentValidationMessage> messages = new ArrayList<ComponentValidationMessage>();
boolean mappingFileInputExists = getInputs(componentDescription, DataType.FileReference).size() == 3;
// TODO : add messages
if (!mappingFileInputExists && !isPropertySet(componentDescription, PROPERTY_XML_CONTENT)) {
messages.add(new ComponentValidationMessage(ComponentValidationMessage.Type.ERROR, PROPERTY_XML_CONTENT,
Messages.noXmlFileLoaded, Messages.noXmlFileLoadedLong));
}
if (!mappingFileInputExists && !isPropertySet(componentDescription, PROPERTY_MAPPING_TYPE)) {
messages.add(new ComponentValidationMessage(ComponentValidationMessage.Type.ERROR, PROPERTY_MAPPING_TYPE,
Messages.unknownMappingType, Messages.unknownMappingTypeLong));
}
return messages;
}
@Override
protected List<ComponentValidationMessage> validateOnWorkflowStartComponentSpecific(
ComponentDescription componentDescription) {
return null;
}
}