01: /*_############################################################################
02: _##
03: _## SNMP4J-Agent - ValueConstraintValidator.java
04: _##
05: _## Copyright (C) 2005-2007 Frank Fock (SNMP4J.org)
06: _##
07: _## Licensed under the Apache License, Version 2.0 (the "License");
08: _## you may not use this file except in compliance with the License.
09: _## You may obtain a copy of the License at
10: _##
11: _## http://www.apache.org/licenses/LICENSE-2.0
12: _##
13: _## Unless required by applicable law or agreed to in writing, software
14: _## distributed under the License is distributed on an "AS IS" BASIS,
15: _## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16: _## See the License for the specific language governing permissions and
17: _## limitations under the License.
18: _##
19: _##########################################################################*/
20:
21: package org.snmp4j.agent.mo.snmp.smi;
22:
23: import org.snmp4j.agent.mo.*;
24: import org.snmp4j.smi.*; // For JavaDOC:
25: import org.snmp4j.mp.SnmpConstants;
26:
27: /**
28: * A <code>ValueConstraintValidator</code> adapts a {@link ValueConstraint}
29: * as {@link MOValueValidationListener}.
30: *
31: * @author Frank Fock
32: * @version 1.0
33: */
34: public class ValueConstraintValidator implements
35: MOValueValidationListener {
36:
37: private ValueConstraint valueConstraint;
38:
39: public ValueConstraintValidator(ValueConstraint valueConstraint) {
40: this .valueConstraint = valueConstraint;
41: }
42:
43: /**
44: * Validates a value by returning a SNMP error code if validation fails
45: * or 0 ({@link SnmpConstants#SNMP_ERROR_SUCCESS}) if the validation was
46: * successful. The validation is returned by calling the
47: * {@link MOValueValidationEvent#setValidationStatus} method. If an error
48: * occured the returned status value should be one of the following values:
49: * <ul>
50: * <li>{@link SnmpConstants#SNMP_ERROR_WRONG_LENGTH}</li>
51: * <li>{@link SnmpConstants#SNMP_ERROR_WRONG_VALUE}</li>
52: * <li>{@link SnmpConstants#SNMP_ERROR_WRONG_TYPE}</li>
53: * <li>{@link SnmpConstants#SNMP_ERROR_WRONG_ENCODING}</li>
54: * <li>{@link SnmpConstants#SNMP_ERROR_BAD_VALUE}</li>
55: * </ul>
56: *
57: * @param validationEvent
58: * the <code>MOValueValidationEvent</code> containing the value to
59: * validate.
60: */
61: public void validate(MOValueValidationEvent validationEvent) {
62: Variable v = validationEvent.getNewValue();
63: validationEvent
64: .setValidationStatus(valueConstraint.validate(v));
65: }
66:
67: public ValueConstraint getValueConstraint() {
68: return valueConstraint;
69: }
70: }
|