/*******************************************************************************
* Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.common.meta.constraint.impl;
import java.text.MessageFormat;
public class XAttributeConstraintFolderName extends XAttributeConstraintImpl {
private static String forbid = "\\/:*\""; //$NON-NLS-1$
public XAttributeConstraintFolderName() {}
public boolean accepts(String value) {
if(value == null) return true;
int l = value.length();
for (int i = 0; i < l; i++)
if(forbid.indexOf(value.charAt(i)) >= 0) return false;
if(value.startsWith(".")) { //$NON-NLS-1$
return !value.equals(".") && !value.equals(".."); //$NON-NLS-1$ //$NON-NLS-2$
}
return true;
}
public String getError(String value) {
if(accepts(value)) return null;
int l = value.length();
for (int i = 0; i < l; i++) {
char c = value.charAt(i);
if(forbid.indexOf(c) >= 0) return MessageFormat.format("contains illegal symbol {0}", c);
}
if(value.equals(".") || value.equals("..")) { //$NON-NLS-1$ //$NON-NLS-2$
return "cannot be equal to a path reserved for navigation";
}
return null;
}
}