📄 snmpcommunitymib.java
字号:
/*_############################################################################
_##
_## SNMP4J-Agent - SnmpCommunityMIB.java
_##
_## Copyright 2005-2006 Frank Fock (SNMP4J.org)
_##
_## Licensed under the Apache License, Version 2.0 (the "License");
_## you may not use this file except in compliance with the License.
_## You may obtain a copy of the License at
_##
_## http://www.apache.org/licenses/LICENSE-2.0
_##
_## Unless required by applicable law or agreed to in writing, software
_## distributed under the License is distributed on an "AS IS" BASIS,
_## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
_## See the License for the specific language governing permissions and
_## limitations under the License.
_##
_##########################################################################*/
package org.snmp4j.agent.mo.snmp;
//--AgentGen BEGIN=_BEGIN
//--AgentGen END
import org.snmp4j.smi.*;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.agent.*;
import org.snmp4j.agent.mo.*;
import org.snmp4j.agent.mo.snmp.*;
import java.util.Map;
import java.util.Collections;
import java.util.HashMap;
import org.snmp4j.agent.mo.snmp.SnmpCommunityMIB.SnmpCommunityEntryRow;
import java.util.List;
import java.util.*;
import org.snmp4j.agent.mo.snmp.SnmpTargetMIB.SnmpTargetAddrEntryRow;
import org.snmp4j.agent.mo.snmp.SnmpCommunityMIB.SnmpTargetAddrExtEntryRow;
import org.snmp4j.log.LogAdapter;
import org.snmp4j.log.LogFactory;
//--AgentGen BEGIN=_IMPORT
//--AgentGen END
public class SnmpCommunityMIB
//--AgentGen BEGIN=_EXTENDS
//--AgentGen END
implements MOGroup
//--AgentGen BEGIN=_IMPLEMENTS
, CoexistenceInfoProvider
//--AgentGen END
{
// Factory
private static MOFactory moFactory = DefaultMOFactory.getInstance();
// Constants
private static final OID oidSnmpCommunityEntry =
new OID(new int[] { 1,3,6,1,6,3,18,1,1,1 });
// Column sub-identifer defintions for snmpCommunityEntry:
private static final int colSnmpCommunityName = 2;
private static final int colSnmpCommunitySecurityName = 3;
private static final int colSnmpCommunityContextEngineID = 4;
private static final int colSnmpCommunityContextName = 5;
private static final int colSnmpCommunityTransportTag = 6;
private static final int colSnmpCommunityStorageType = 7;
private static final int colSnmpCommunityStatus = 8;
// Column index defintions for snmpCommunityEntry:
private static final int idxSnmpCommunityName = 0;
private static final int idxSnmpCommunitySecurityName = 1;
private static final int idxSnmpCommunityContextEngineID = 2;
private static final int idxSnmpCommunityContextName = 3;
private static final int idxSnmpCommunityTransportTag = 4;
private static final int idxSnmpCommunityStorageType = 5;
private static final int idxSnmpCommunityStatus = 6;
private static MOTableSubIndex[] snmpCommunityEntryIndexes =
new MOTableSubIndex[] {
moFactory.createSubIndex(SMIConstants.SYNTAX_OCTET_STRING, 1, 32)
};
private static MOTableIndex snmpCommunityEntryIndex =
moFactory.createIndex(snmpCommunityEntryIndexes,
true);
private MOTable snmpCommunityEntry;
private MOMutableTableModel snmpCommunityEntryModel;
private static final OID oidSnmpTargetAddrExtEntry =
new OID(new int[] { 1,3,6,1,6,3,18,1,2,1 });
// Column sub-identifer defintions for snmpTargetAddrExtEntry:
private static final int colSnmpTargetAddrTMask = 1;
private static final int colSnmpTargetAddrMMS = 2;
// Column index defintions for snmpTargetAddrExtEntry:
private static final int idxSnmpTargetAddrTMask = 0;
private static final int idxSnmpTargetAddrMMS = 1;
private static MOTableSubIndex[] snmpTargetAddrExtEntryIndexes =
new MOTableSubIndex[] {
moFactory.createSubIndex(SMIConstants.SYNTAX_OCTET_STRING, 1, 32)
};
private static MOTableIndex snmpTargetAddrExtEntryIndex =
moFactory.createIndex(snmpTargetAddrExtEntryIndexes,
true);
private MOTable snmpTargetAddrExtEntry;
private MOMutableTableModel snmpTargetAddrExtEntryModel;
private MOTable snmpTargetAddrEntry;
private MOTableRelation snmpTargetAddrEntryRelation;
//--AgentGen BEGIN=_MEMBERS
private static final LogAdapter logger =
LogFactory.getLogger(SnmpCommunityMIB.class);
private Map coexistenceInfo;
private Map communityInfo;
private SnmpTargetMIB targetMIB;
private boolean sourceAddressFiltering;
public SnmpCommunityMIB(SnmpTargetMIB targetMIB) {
this();
this.targetMIB = targetMIB;
setBaseTableSnmpTargetAddrEntry(targetMIB.getSnmpTargetAddrEntry());
}
//--AgentGen END
private SnmpCommunityMIB() {
createSnmpCommunityEntry();
createSnmpTargetAddrExtEntry();
}
public MOTable getSnmpCommunityEntry() {
return snmpCommunityEntry;
}
private void createSnmpCommunityEntry() {
MOColumn[] snmpCommunityEntryColumns = new MOColumn[7];
snmpCommunityEntryColumns[idxSnmpCommunityName] =
new MOMutableColumn(colSnmpCommunityName,
SMIConstants.SYNTAX_OCTET_STRING,
MOAccessImpl.ACCESS_READ_CREATE,
null,
true);
snmpCommunityEntryColumns[idxSnmpCommunitySecurityName] =
new MOMutableColumn(colSnmpCommunitySecurityName,
SMIConstants.SYNTAX_OCTET_STRING,
MOAccessImpl.ACCESS_READ_CREATE,
null,
true);
((MOMutableColumn)snmpCommunityEntryColumns[idxSnmpCommunitySecurityName]).
addMOValueValidationListener(new SnmpCommunitySecurityNameValidator());
snmpCommunityEntryColumns[idxSnmpCommunityContextEngineID] =
new MOMutableColumn(colSnmpCommunityContextEngineID,
SMIConstants.SYNTAX_OCTET_STRING,
MOAccessImpl.ACCESS_READ_CREATE,
null,
true);
((MOMutableColumn)snmpCommunityEntryColumns[idxSnmpCommunityContextEngineID]).
addMOValueValidationListener(new SnmpCommunityContextEngineIDValidator());
snmpCommunityEntryColumns[idxSnmpCommunityContextName] =
new MOMutableColumn(colSnmpCommunityContextName,
SMIConstants.SYNTAX_OCTET_STRING,
MOAccessImpl.ACCESS_READ_CREATE,
new OctetString(new byte[] { }),
true);
((MOMutableColumn)snmpCommunityEntryColumns[idxSnmpCommunityContextName]).
addMOValueValidationListener(new SnmpCommunityContextNameValidator());
snmpCommunityEntryColumns[idxSnmpCommunityTransportTag] =
new MOMutableColumn(colSnmpCommunityTransportTag,
SMIConstants.SYNTAX_OCTET_STRING,
MOAccessImpl.ACCESS_READ_CREATE,
new OctetString(new byte[] { }),
true);
((MOMutableColumn)snmpCommunityEntryColumns[idxSnmpCommunityTransportTag]).
addMOValueValidationListener(new SnmpCommunityTransportTagValidator());
snmpCommunityEntryColumns[idxSnmpCommunityStorageType] =
new StorageType(colSnmpCommunityStorageType,
MOAccessImpl.ACCESS_READ_CREATE,
null,
true);
snmpCommunityEntryColumns[idxSnmpCommunityStatus] =
new RowStatus(colSnmpCommunityStatus);
snmpCommunityEntryModel = new DefaultMOMutableTableModel();
snmpCommunityEntryModel.setRowFactory(new SnmpCommunityEntryRowFactory());
snmpCommunityEntry =
moFactory.createTable(oidSnmpCommunityEntry,
snmpCommunityEntryIndex,
snmpCommunityEntryColumns,
snmpCommunityEntryModel);
}
public MOTable getSnmpTargetAddrExtEntry() {
return snmpTargetAddrExtEntry;
}
public void setBaseTableSnmpTargetAddrEntry(MOTable baseTable) {
this.snmpTargetAddrEntry = baseTable;
snmpTargetAddrEntryRelation =
moFactory.createTableRelation(baseTable, snmpTargetAddrExtEntry);
snmpTargetAddrEntryRelation.createRelationShip();
}
private void createSnmpTargetAddrExtEntry() {
MOColumn[] snmpTargetAddrExtEntryColumns = new MOColumn[2];
snmpTargetAddrExtEntryColumns[idxSnmpTargetAddrTMask] =
new MOMutableColumn(colSnmpTargetAddrTMask,
SMIConstants.SYNTAX_OCTET_STRING,
MOAccessImpl.ACCESS_READ_CREATE,
new OctetString(new byte[] { }),
true);
((MOMutableColumn)snmpTargetAddrExtEntryColumns[idxSnmpTargetAddrTMask]).
addMOValueValidationListener(new SnmpTargetAddrTMaskValidator());
snmpTargetAddrExtEntryColumns[idxSnmpTargetAddrMMS] =
new MOMutableColumn(colSnmpTargetAddrMMS,
SMIConstants.SYNTAX_INTEGER32,
MOAccessImpl.ACCESS_READ_CREATE,
new Integer32(484),
true);
((MOMutableColumn)snmpTargetAddrExtEntryColumns[idxSnmpTargetAddrMMS]).
addMOValueValidationListener(new SnmpTargetAddrMMSValidator());
snmpTargetAddrExtEntryModel = new DefaultMOMutableTableModel();
snmpTargetAddrExtEntryModel.setRowFactory(new SnmpTargetAddrExtEntryRowFactory());
snmpTargetAddrExtEntry =
moFactory.createTable(oidSnmpTargetAddrExtEntry,
snmpTargetAddrExtEntryIndex,
snmpTargetAddrExtEntryColumns,
snmpTargetAddrExtEntryModel);
}
public void registerMOs(MOServer server, OctetString context)
throws DuplicateRegistrationException
{
// Scalar Objects
server.register(this.snmpCommunityEntry, context);
server.register(this.snmpTargetAddrExtEntry, context);
//--AgentGen BEGIN=_registerMOs
//--AgentGen END
}
public void unregisterMOs(MOServer server, OctetString context) {
// Scalar Objects
server.unregister(this.snmpCommunityEntry, context);
server.unregister(this.snmpTargetAddrExtEntry, context);
//--AgentGen BEGIN=_unregisterMOs
//--AgentGen END
}
// Notifications
// Scalars
// Value Validators
/**
* The <code>SnmpCommunitySecurityNameValidator</code> implements the value
* validation for <code>SnmpCommunitySecurityName</code>.
*/
static class SnmpCommunitySecurityNameValidator implements MOValueValidationListener {
public void validate(MOValueValidationEvent validationEvent) {
Variable newValue = validationEvent.getNewValue();
OctetString os = (OctetString)newValue;
if (!(((os.length() >= 1) && (os.length() <= 32)))) {
validationEvent.setValidationStatus(SnmpConstants.SNMP_ERROR_WRONG_LENGTH);
return;
}
//--AgentGen BEGIN=snmpCommunitySecurityName::validate
//--AgentGen END
}
}
/**
* The <code>SnmpCommunityContextEngineIDValidator</code> implements the value
* validation for <code>SnmpCommunityContextEngineID</code>.
*/
static class SnmpCommunityContextEngineIDValidator implements MOValueValidationListener {
public void validate(MOValueValidationEvent validationEvent) {
Variable newValue = validationEvent.getNewValue();
OctetString os = (OctetString)newValue;
if (!(((os.length() >= 5) && (os.length() <= 32)))) {
validationEvent.setValidationStatus(SnmpConstants.SNMP_ERROR_WRONG_LENGTH);
return;
}
//--AgentGen BEGIN=snmpCommunityContextEngineID::validate
//--AgentGen END
}
}
/**
* The <code>SnmpCommunityContextNameValidator</code> implements the value
* validation for <code>SnmpCommunityContextName</code>.
*/
static class SnmpCommunityContextNameValidator implements MOValueValidationListener {
public void validate(MOValueValidationEvent validationEvent) {
Variable newValue = validationEvent.getNewValue();
OctetString os = (OctetString)newValue;
if (!(((os.length() >= 0) && (os.length() <= 32)))) {
validationEvent.setValidationStatus(SnmpConstants.SNMP_ERROR_WRONG_LENGTH);
return;
}
//--AgentGen BEGIN=snmpCommunityContextName::validate
//--AgentGen END
}
}
/**
* The <code>SnmpCommunityTransportTagValidator</code> implements the value
* validation for <code>SnmpCommunityTransportTag</code>.
*/
static class SnmpCommunityTransportTagValidator implements MOValueValidationListener {
public void validate(MOValueValidationEvent validationEvent) {
Variable newValue = validationEvent.getNewValue();
OctetString os = (OctetString)newValue;
if (!(((os.length() >= 0) && (os.length() <= 255)))) {
validationEvent.setValidationStatus(SnmpConstants.SNMP_ERROR_WRONG_LENGTH);
return;
}
//--AgentGen BEGIN=snmpCommunityTransportTag::validate
//--AgentGen END
}
}
/**
* The <code>SnmpTargetAddrTMaskValidator</code> implements the value
* validation for <code>SnmpTargetAddrTMask</code>.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -