/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.components.cpacs.writer.execution.validator;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import de.rcenvironment.components.cpacs.writer.common.CpacsWriterComponentConstants;
import de.rcenvironment.components.cpacs.writer.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;
/**
* Validator for CPACS Writer component.
*
* @author Jan Flink
* @author Jascha Riedel
*/
public class CpacsWriterComponentValidator extends AbstractComponentValidator {
private static final String PROPERTY_LOCAL_FOLDER = "localFolder";
@Override
public String getIdentifier() {
return CpacsWriterComponentConstants.COMPONENT_ID;
}
@Override
protected List<ComponentValidationMessage> validateComponentSpecific(ComponentDescription componentDescription) {
final List<ComponentValidationMessage> messages = new ArrayList<ComponentValidationMessage>();
if (!isPropertySet(componentDescription, PROPERTY_LOCAL_FOLDER)
|| getProperty(componentDescription, PROPERTY_LOCAL_FOLDER).isEmpty()) {
messages.add(new ComponentValidationMessage(ComponentValidationMessage.Type.WARNING, PROPERTY_LOCAL_FOLDER,
Messages.localFolderNotConfigured, Messages.localFolderNotConfiguredLong));
return messages;
}
File targetFolder = new File(getProperty(componentDescription, PROPERTY_LOCAL_FOLDER));
if (!targetFolder.isAbsolute()) {
messages.add(new ComponentValidationMessage(ComponentValidationMessage.Type.WARNING, PROPERTY_LOCAL_FOLDER,
Messages.localFolderPathNotAbsolute, Messages.localFolderPathNotAbsoluteLong));
}
return messages;
}
@Override
protected List<ComponentValidationMessage> validateOnWorkflowStartComponentSpecific(
ComponentDescription componentDescription) {
return null;
}
}