| 1 20 21 22 package org.snmp4j.agent.mo.snmp; 23 24 import org.snmp4j.agent.*; 25 import org.snmp4j.agent.mo.*; 26 import org.snmp4j.agent.request.*; 27 import org.snmp4j.smi.*; 28 import org.snmp4j.mp.SnmpConstants; 29 30 public class RowPointer extends MOMutableColumn { 31 32 private MOTable targetTable; 33 34 public RowPointer(int columnID, MOAccess access, 35 OID defaultValue, boolean mutableInService, 36 MOTable targetTable) { 37 super(columnID, SMIConstants.SYNTAX_OBJECT_IDENTIFIER, 38 access, defaultValue, mutableInService); 39 this.targetTable = targetTable; 40 } 41 42 public RowPointer(int columnID, MOAccess access, 43 OID defaultValue, boolean mutableInService) { 44 super(columnID, SMIConstants.SYNTAX_OBJECT_IDENTIFIER, 45 access, defaultValue, mutableInService); 46 } 47 48 protected void illegalRowPointer(SubRequest subRequest) { 49 subRequest.getStatus(). 50 setErrorStatus(SnmpConstants.SNMP_ERROR_INCONSISTENT_NAME); 51 } 52 53 public void prepare(SubRequest subRequest, MOTableRow row, 54 MOTableRow preparedChanges, int column) { 55 super.prepare(subRequest, row, null, column); 56 if (!subRequest.hasError()) { 57 OID rowPointer = (OID) subRequest.getVariableBinding().getVariable(); 58 MOTableCellInfo cell = targetTable.getCellInfo(rowPointer); 59 if ((cell == null) || 60 (cell.getIndex() == null) || (cell.getColumn() < 0)) { 61 illegalRowPointer(subRequest); 62 } 63 } 64 } 65 66 public MOTable getTargetTable() { 67 return targetTable; 68 } 69 70 public void setTargetTable(MOTable targetTable) { 71 this.targetTable = targetTable; 72 } 73 74 } 75 | Popular Tags |