1 /*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22 /*
23 * ident "%Z%%M% %I% %E% SMI"
24 *
25 * Copyright 2002 Sun Microsystems, Inc. All rights reserved.
26 * Use is subject to license terms.
27 */
28
29 package com.sun.dhcpmgr.data.qualifier;
30
31 /**
32 * An extension of the integer qualifier type that restricts the integer
33 * values to a given range, bounded by an inclusive minimum and maximum value.
34 */
35 public class QualifierIntegerRange extends QualifierInteger
36 implements QualifierRange {
37
38 /**
39 * Minimum legal value.
40 */
41 protected int min;
42
43 /**
44 * Maximum legal value.
45 */
46 protected int max;
47
48 private QualifierIntegerRange() {}
49
50 /**
51 * Construct an integer range qualifier type.
52 *
53 * @param min
54 * Minimum legal value.
55 * @param max
56 * Maximum legal value.
57 */
58 public QualifierIntegerRange(int min, int max) {
59 this.min = min;
60 this.max = max;
61 }
62
63 /**
64 * Get the minimum boundary.
65 *
66 * @return
67 * Minimum legal value.
68 */
69 public int getMin() {
70 return min;
71 }
72
73 /**
74 * Get the maximum boundary.
75 *
76 * @return
77 * Maximum legal value.
78 */
79 public int getMax() {
80 return max;
81 }
82
83 public Object parseValue(String value) {
84 Integer intValue = (Integer)super.parseValue(value);
85
86 if (intValue != null) {
87 int i = intValue.intValue();
88
89 if (i >= min && i <= max) {
90 return intValue;
91 }
92 }
93
94 return null;
95 }
96
97 public String toString() {
98 return super.toString() + "<" + min + "," + max + ">";
99 }
100
101 }