Example usage for org.apache.wicket.validation.validator DateValidator range

List of usage examples for org.apache.wicket.validation.validator DateValidator range

Introduction

In this page you can find the example usage for org.apache.wicket.validation.validator DateValidator range.

Prototype

public static DateValidator range(Date minimum, Date maximum) 

Source Link

Usage

From source file:org.obiba.onyx.wicket.data.validation.converter.RangeValidatorNodeConverter.java

License:Open Source License

public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
    DataType type = (DataType) context.get("validatorDataType");

    String minimumStr = null;/*from   w  ww .  j a v  a 2  s  . c om*/
    String maximumStr = null;
    while (reader.hasMoreChildren()) {
        reader.moveDown();
        String nodeName = reader.getNodeName();
        if (nodeName.equalsIgnoreCase("minimum")) {
            minimumStr = reader.getValue();
        } else if (nodeName.equalsIgnoreCase("maximum")) {
            maximumStr = reader.getValue();
        }
        reader.moveUp();
    }

    IValidator validator = null;
    switch (type) {
    case INTEGER: {
        Long minimum = minimumStr == null ? null : Long.valueOf(minimumStr);
        Long maximum = maximumStr == null ? null : Long.valueOf(maximumStr);
        if (minimum != null && maximum != null) {
            validator = new RangeValidator(minimum, maximum);
        } else if (minimum != null) {
            validator = new MinimumValidator(minimum);
        } else if (maximum != null) {
            validator = new MaximumValidator(maximum);
        }
        break;
    }
    case DECIMAL: {
        Double minimum = minimumStr == null ? null : Double.valueOf(minimumStr);
        Double maximum = maximumStr == null ? null : Double.valueOf(maximumStr);
        if (minimum != null && maximum != null) {
            validator = new RangeValidator(minimum, maximum);
        } else if (minimum != null) {
            validator = new MinimumValidator(minimum);
        } else if (maximum != null) {
            validator = new MaximumValidator(maximum);
        }
        break;
    }
    case DATE: {
        Date minimum = minimumStr == null ? null : parseDate(minimumStr);
        Date maximum = maximumStr == null ? null : parseDate(maximumStr);
        if (minimum != null && maximum != null) {
            validator = DateValidator.range(minimum, maximum);
        } else if (minimum != null) {
            validator = DateValidator.minimum(minimum);
        } else if (maximum != null) {
            validator = DateValidator.maximum(maximum);
        }
        break;
    }
    case TEXT: {
        Integer minimum = minimumStr == null ? null : Integer.valueOf(minimumStr);
        Integer maximum = maximumStr == null ? null : Integer.valueOf(maximumStr);
        if (minimum != null && maximum != null) {
            validator = StringValidator.lengthBetween(minimum, maximum);
        } else if (minimum != null) {
            validator = StringValidator.minimumLength(minimum);
        } else if (maximum != null) {
            validator = StringValidator.maximumLength(maximum);
        }
        break;
    }
    default:
        throw new ConversionException("Invalid type for rangeValidator node: '" + type + "'");
    }
    if (validator == null) {
        throw new ConversionException("Invalid rangeValidator node");
    }
    return validator;
}