package org.ovirt.engine.ui.uicommonweb.validation; import org.ovirt.engine.core.common.businessentities.VmPool; import org.ovirt.engine.ui.uicompat.ConstantsManager; public class PoolNameValidation extends BaseI18NValidation { public PoolNameValidation() { super(ConstantsManager.getInstance().getConstants().poolNameValidationMsg()); } PoolNameValidation(String message) { super(message); } @Override protected String composeRegex() { return or(start() + oneOrMore(nonNumberMaskCharacter()) + numberMask() + zeroOrMore(nonNumberMaskCharacter()) + end(), start() + zeroOrMore(nonNumberMaskCharacter()) + numberMask() + oneOrMore(nonNumberMaskCharacter()) + end()); } protected String numberMask() { return "[" + VmPool.MASK_CHARACTER + "]*"; //$NON-NLS-1$ //$NON-NLS-2$ } protected String oneOrMore(String exp) { return "[" + exp + "]+"; //$NON-NLS-1$ //$NON-NLS-2$ } protected String zeroOrMore(String exp) { return "[" + exp + "]*"; //$NON-NLS-1$ //$NON-NLS-2$ } protected String or(String exp1, String exp2) { return exp1 + "|" + exp2; //$NON-NLS-1$ } protected String nonNumberMaskCharacter() { return letters() + numbers() + specialCharacters(); } }