1 20 21 22 package org.snmp4j.agent.mo; 23 24 import org.snmp4j.agent.*; 25 import org.snmp4j.smi.*; 26 import org.snmp4j.agent.request.SubRequest; 27 import org.snmp4j.mp.SnmpConstants; 28 29 41 public class MOColumn implements Comparable { 42 43 private int columnID; 44 private int syntax; 45 private MOAccess access; 46 private MOTable table; 47 48 public MOColumn(int columnID, int syntax) { 49 this.columnID = columnID; 50 this.syntax = syntax; 51 this.access = MOAccessImpl.ACCESS_READ_ONLY; 52 } 53 54 public MOColumn(int columnID, int syntax, MOAccess access) { 55 this.columnID = columnID; 56 this.syntax = syntax; 57 if (access == null) { 58 throw new NullPointerException ("Access must be specified"); 59 } 60 this.access = access; 61 } 62 63 public void setColumnID(int columnID) { 64 this.columnID = columnID; 65 } 66 67 public void setSyntax(int syntax) { 68 this.syntax = syntax; 69 } 70 71 public void setAccess(MOAccess access) { 72 this.access = access; 73 } 74 75 82 public void setTable(MOTable table) { 83 this.table = table; 84 } 85 86 public int getColumnID() { 87 return columnID; 88 } 89 90 public int getSyntax() { 91 return syntax; 92 } 93 94 public MOAccess getAccess() { 95 return access; 96 } 97 98 public MOTable getTable() { 99 return table; 100 } 101 102 public Variable getValue(MOTableRow row, int column) { 103 return row.getValue(column); 104 } 105 106 117 public boolean isVolatile(MOTableRow row, int column) { 118 return false; 119 } 120 121 130 public int compareTo(Object column) { 131 return columnID - ((MOColumn)column).getColumnID(); 132 } 133 134 public String toString() { 135 return this.getClass().getName()+"[columnID="+getColumnID()+",syntax="+ 136 getSyntax()+"]"; 137 } 138 139 public void get(SubRequest subRequest, MOTableRow row, int column) { 140 if (getAccess().isAccessibleForRead()) { 141 Variable value = getValue(row, column); 142 if (value != null) { 143 subRequest.getVariableBinding().setVariable((Variable) value.clone()); 144 } 145 else { 146 subRequest.getVariableBinding().setVariable(Null.noSuchInstance); 147 } 148 subRequest.completed(); 149 } 150 else { 151 subRequest.getStatus().setErrorStatus(SnmpConstants.SNMP_ERROR_NO_ACCESS); 152 } 153 } 154 155 } 156 | Popular Tags |