/****************************************************************************** * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for * the specific language governing rights and limitations under the License. * * The Original Code is: Jsoda * The Initial Developer of the Original Code is: William Wong (williamw520@gmail.com) * Portions created by William Wong are Copyright (C) 2012 William Wong, All Rights Reserved. * ******************************************************************************/ package wwutil.model.annotation; import java.lang.annotation.*; /** Validate a String field matches the mask expression. * digitMask is the mask character for matching any digit. * letterMask is the mask character for matching any alphabet. * anyMask is the mask character for matching any character. * pattern is a the string expression contains the literal characters and the mask characters. * *<pre> * e.g. @MaskMatch( pattern = "(###) ###-####" ) * will match "(415) 555-1212" or "(408) 121-5555" * * e.g. @MaskMatch( pattern = "800-@@@-####" ) * will match "800-ABC-1212" or "800-EFG-4567" * * e.g. @MaskMatch( pattern = "800-***-****" ) * will match "800-A12-3[C?D" * * e.g. @MaskMatch( digitMask = '$', pattern = "## $$/$$/$$$$ ##" ) * redefine the digitMask to $ and will match "## 07/20/1999 ##" *</pre> */ @Retention(RetentionPolicy.RUNTIME) public @interface MaskMatch { public char digitMask() default '#'; public char letterMask() default '@'; public char anyMask() default '*'; public String pattern(); }