Java tutorial
/* * Copyright (c) 2011 Carman Consulting, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.wicketopia.builder.feature.validator; import org.apache.wicket.validation.IValidator; import org.apache.wicket.validation.validator.RangeValidator; import org.metastopheles.PropertyMetaData; import org.metastopheles.annotation.PropertyDecorator; import org.wicketopia.annotation.validator.LongRange; import org.wicketopia.metadata.WicketopiaPropertyFacet; /** * @author James Carman * @since 1.0 */ public class LongRangeFeature extends AbstractValidatorFeature { //---------------------------------------------------------------------------------------------------------------------- // Fields //---------------------------------------------------------------------------------------------------------------------- private static final long serialVersionUID = 1L; private final long min; private final long max; //---------------------------------------------------------------------------------------------------------------------- // Static Methods //---------------------------------------------------------------------------------------------------------------------- @PropertyDecorator public static void decorate(PropertyMetaData propertyMetaData, LongRange longRange) { WicketopiaPropertyFacet.get(propertyMetaData) .addEditorFeature(new LongRangeFeature(longRange.min(), longRange.max())); } //---------------------------------------------------------------------------------------------------------------------- // Constructors //---------------------------------------------------------------------------------------------------------------------- public LongRangeFeature(long min, long max) { this.min = min; this.max = max; } //---------------------------------------------------------------------------------------------------------------------- // Other Methods //---------------------------------------------------------------------------------------------------------------------- @Override protected IValidator<?> createValidator() { if (max != Long.MAX_VALUE && min != Long.MIN_VALUE) { return new RangeValidator<Long>(min, max); } else if (max != Long.MAX_VALUE) { return RangeValidator.maximum(max); } else { return RangeValidator.minimum(min); } } }