/******************************************************************************* * Copyright (c) 2003, 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 API and implementation *******************************************************************************/ package org.eclipse.wst.web.internal; import com.ibm.icu.util.StringTokenizer; public class WebPropertiesUtil { private static final char[] BAD_CHARS = {'/', '\\', ':'}; /** * @param project * org.eclipse.core.resources.IProject */ /** * Returns a error message that states whether a context root is valid or not returns null if * context root is fine * * @return java.lang.String * @param contextRoot * java.lang.String */ public static String validateContextRoot(String contextRoot) { if (contextRoot == null) return null; String errorMessage = null; String name = contextRoot; if (name.equals("")) { //$NON-NLS-1$ // this was added because the error message shouldnt be shown initially. It should be // shown only if context root field is edited to errorMessage = ResourceHandler.StaticWebProjectWizardBasePage_Page_Title; //errorMessage = ProjectSupportResourceHandler.getString("Context_Root_cannot_be_empty_2"); //$NON-NLS-1$ return errorMessage; } /******************************************************************************************* * // JZ - fix to defect 204264, "/" is valid in context root if (name.indexOf("//") != -1) { * //$NON-NLS-1$ errorMessage = "// are invalid characters in a resource name"; return * errorMessage; * } ******************************************************************************************/ if (name.trim().equals(name)) { StringTokenizer stok = new StringTokenizer(name, "."); //$NON-NLS-1$ outer : while (stok.hasMoreTokens()) { String token = stok.nextToken(); for (int i = 0; i < token.length(); i++) { if (!(token.charAt(i) == '_') && !(token.charAt(i) == '-') && !(token.charAt(i) == '/') && Character.isLetterOrDigit(token.charAt(i)) == false) { if (Character.isWhitespace(token.charAt(i))) { //Removed because context roots can contain white space //errorMessage = // ResourceHandler.getString("_Context_root_cannot_conta_UI_");//$NON-NLS-1$ // = " Context root cannot contain whitespaces." } else { errorMessage = ResourceHandler.StaticWebProjectWizardBasePage_Page_Title; //errorMessage = ProjectSupportResourceHandler.getString("The_character_is_invalid_in_a_context_root", new Object[]{(new Character(token.charAt(i))).toString()}); //$NON-NLS-1$ break outer; } } } } } // en/ end of if(name.trim else errorMessage = ResourceHandler.StaticWebProjectWizardBasePage_Page_Title; //errorMessage = ProjectSupportResourceHandler.getString("Names_cannot_begin_or_end_with_whitespace_5"); //$NON-NLS-1$ return errorMessage; } /** * Return true if the string contains any of the characters in the array. */ private static boolean contains(String str, char[] chars) { for (int i = 0; i < chars.length; i++) { if (str.indexOf(chars[i]) != -1) return true; } return false; } public static String validateFolderName(String folderName) { if (folderName.length() == 0) return ResourceHandler.StaticWebProjectWizardBasePage_Page_Title; //return ProjectSupportResourceHandler.getString("Folder_name_cannot_be_empty_2"); //$NON-NLS-1$ if (contains(folderName, BAD_CHARS)) return ResourceHandler.StaticWebProjectWizardBasePage_Page_Title; //return ProjectSupportResourceHandler.getString("Folder_name_is_not_valid", new Object[]{folderName}); //$NON-NLS-1$ return null; } }