1 20 21 22 package org.snmp4j.agent.mo.snmp; 23 24 import org.snmp4j.agent.mo.MOMutableColumn; 25 import org.snmp4j.agent.MOAccess; 26 import org.snmp4j.smi.Variable; 27 import org.snmp4j.smi.SMIConstants; 28 import org.snmp4j.smi.Integer32; 29 import org.snmp4j.mp.SnmpConstants; 30 import org.snmp4j.agent.mo.snmp.smi.EnumerationConstraint; 31 32 39 public class Enumerated extends MOMutableColumn { 40 41 private EnumerationConstraint constraint; 42 43 57 public Enumerated(int columnID, 58 MOAccess access, 59 Integer32 defaultValue, 60 boolean mutableInService, 61 int[] allowedValues) { 62 super(columnID, SMIConstants.SYNTAX_INTEGER, 63 access, defaultValue, mutableInService); 64 this.constraint = new EnumerationConstraint(allowedValues); 65 } 66 67 81 public Enumerated(int columnID, 82 MOAccess access, 83 Integer32 defaultValue, 84 boolean mutableInService) { 85 super(columnID, SMIConstants.SYNTAX_INTEGER, 86 access, defaultValue, mutableInService); 87 } 88 89 99 public Enumerated(int columnID, 100 MOAccess access, 101 Integer32 defaultValue) { 102 super(columnID, SMIConstants.SYNTAX_INTEGER, 103 access, defaultValue); 104 } 105 106 public synchronized int validate(Variable newValue, Variable oldValue) { 107 int result = super.validate(newValue, oldValue); 108 if ((constraint != null) && 109 (result == SnmpConstants.SNMP_ERROR_SUCCESS)) { 110 return constraint.validate(newValue); 111 } 112 return result; 113 } 114 115 protected void setConstraint(EnumerationConstraint constraint) { 116 this.constraint = constraint; 117 } 118 119 } 120 | Popular Tags |