/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.start.validators.internal; import java.io.File; import de.rcenvironment.core.configuration.ConfigurationService; import de.rcenvironment.core.start.common.validation.api.InstanceValidationResult; import de.rcenvironment.core.start.common.validation.api.InstanceValidationResultFactory; import de.rcenvironment.core.start.common.validation.spi.DefaultInstanceValidator; /** * Ensures that the profile directory used is writable. * * @author Christian Weiss */ public class ProfileDirectoryWritableValidator extends DefaultInstanceValidator { private ConfigurationService configurationService; @Override public InstanceValidationResult validate() { final String validationDisplayName = "RCE profile directory"; File profileDir = configurationService.getProfileDirectory(); if (!profileDir.exists() || !profileDir.isDirectory()) { String errorMessage = Messages.directoryRceFolderDoesNotExist + profileDir.getAbsolutePath(); return InstanceValidationResultFactory.createResultForFailureWhichRequiresInstanceShutdown( validationDisplayName, errorMessage); } else if (!profileDir.canRead() || !profileDir.canWrite()) { String errorMessage = Messages.directoryRceFolderNotReadWriteAble + profileDir.getAbsolutePath(); return InstanceValidationResultFactory.createResultForFailureWhichRequiresInstanceShutdown( validationDisplayName, errorMessage); } return InstanceValidationResultFactory.createResultForPassed(validationDisplayName); } protected void bindConfigurationService(final ConfigurationService newConfigurationService) { configurationService = newConfigurationService; } }