/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.start.validators.internal;
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 the length of the path to RCE's installation directory is not too long for the file system.
*
* @author Sascha Zur
*/
public class InstallationDirectoryPathLengthValidator extends DefaultInstanceValidator {
private static final int MAX_LENGTH_WINDOWS_7_UNIX = 255;
private static final int MAX_LENGTH_PLUGIN_NAMES = 96; //Optimizer
@Override
public InstanceValidationResult validate() {
final String validationDisplayName = "RCE installation directory (path length)";
String rceInstallationPath = System.getProperty("eclipse.home.location");
if (rceInstallationPath.length() + MAX_LENGTH_PLUGIN_NAMES > MAX_LENGTH_WINDOWS_7_UNIX){
return InstanceValidationResultFactory.createResultForFailureWhichRequiresInstanceShutdown(
validationDisplayName, Messages.directoryRceFolderPathTooLong + ": " + rceInstallationPath,
Messages.directoryRceFolderPathTooLong + ": \n" + rceInstallationPath);
}
return InstanceValidationResultFactory.createResultForPassed(validationDisplayName);
}
}