blob: abbf5eea63f6751e490919b70605b9e45fba50f3 [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 IBM Corporation and others.
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// which accompanies this distribution, and is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// Contributors:
// IBM Corporation - initial implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.library.edit.validation.internal;
import java.io.File;
import org.eclipse.epf.library.edit.LibraryEditResources;
import org.eclipse.epf.library.edit.util.TngUtil;
import org.eclipse.epf.library.edit.validation.AbstractStringValidator;
import org.eclipse.epf.library.edit.validation.NameChecker;
import org.eclipse.epf.services.IFileBasedLibraryPersister;
import org.eclipse.epf.services.Services;
import org.eclipse.epf.uma.MethodConfiguration;
import org.eclipse.epf.uma.MethodLibrary;
import org.eclipse.osgi.util.NLS;
/**
* Name validator for MethodConfiguration.
*
* @author Phong Nguyen Le - May 12, 2006
* @since 1.0
* https://bugs.eclipse.org/bugs/show_bug.cgi?id=177973
*/
public class MethodConfigurationNameValidator extends AbstractStringValidator {
private MethodLibrary library;
private MethodConfiguration config;
public MethodConfigurationNameValidator(MethodLibrary lib, MethodConfiguration config) {
library = lib;
this.config = config;
}
/* (non-Javadoc)
* @see org.eclipse.epf.library.edit.validation.IValidator#isValid(java.lang.String)
*/
public String isValid(String newText) {
newText = newText.trim(); //fix https://bugs.eclipse.org/bugs/show_bug.cgi?id=177973
Integer max = new Integer(MaxFilePathNameLength);
if (! NameChecker.checkFilePathLength(library, config, newText, max.intValue(), null)) {
String msg = NLS.bind(LibraryEditResources.filePathNameTooLong_msg,
new Object[] { max } );
return msg;
}
String configFolder = ((IFileBasedLibraryPersister)Services.getLibraryPersister(Services.XMI_PERSISTENCE_TYPE))
.getFolderRelativePath(config);
File dir = new File(new File(library.eResource().getURI().toFileString())
.getParent(), configFolder);
return TngUtil.checkName(dir, library.getPredefinedConfigurations(), config,
newText, TngUtil.getTypeText(config), false);
}
}