org.snmp4j.agent.mo
Class DefaultMOFactory

java.lang.Object
  extended by org.snmp4j.agent.mo.DefaultMOFactory
All Implemented Interfaces:
LinkedMOFactory, MOFactory, MOTableRowFactory
Direct Known Subclasses:
SimMOFactory

public class DefaultMOFactory
extends java.lang.Object
implements MOFactory, LinkedMOFactory

The DefaultMOFactory is the default factory for creating ManagedObjects. The default factory creates columnar and scalar objects based on SNMPv2-TC textual conventions with appropriate constraints. Other textual conventions can be added too.

Version:
1.2
Author:
Frank Fock

Constructor Summary
protected DefaultMOFactory()
           
 
Method Summary
static void addSNMPv2TCs(MOFactory factory)
          Adds support for SNMPv2TC textual conventions to the supplied ManagedObject factory.
 void addTextualConvention(TextualConvention tc)
          Adds a textual convention to this factory which can then be used by the factory to create appropriate value constraints for columnar and scalar managed objects.
 MOAccess createAccess(int moAccess)
          Creates an MOAccess instance from an access specification constant that is the result of a bitwise OR of any of the constants defined by MOAccess.
 MOColumn createColumn(int columnID, int syntax, MOAccess access)
          Creates a columnar object by supplying column ID, syntax, and maximum access.
 MOColumn createColumn(int columnID, int syntax, MOAccess access, java.lang.String tcModuleName, java.lang.String textualConvention)
          Creates a columnar object by supplying column ID, syntax, and maximum access.
 MOColumn createColumn(int columnID, int syntax, MOAccess access, org.snmp4j.smi.Variable defaultValue, boolean mutableInService)
          Creates a columnar object by supplying column ID, syntax, and maximum access.
 MOColumn createColumn(int columnID, int syntax, MOAccess access, org.snmp4j.smi.Variable defaultValue, boolean mutableInService, java.lang.String tcModuleName, java.lang.String textualConvention)
          Creates a columnar object by supplying column ID, syntax, and maximum access.
 MOTableIndex createIndex(MOTableSubIndex[] subIndexes, boolean impliedLength)
          Creates an index definition from the supplied sub-index definitions without index validation.
 MOTableIndex createIndex(MOTableSubIndex[] subIndexes, boolean impliedLength, MOTableIndexValidator validator)
          Creates an index definition from the supplied sub-index definitions with index validation according to the supplied validator.
 MOTableRow createRow(org.snmp4j.smi.OID index, org.snmp4j.smi.Variable[] values)
          Creates a new MOTableRow row instance and returns it.
 MOScalar createScalar(org.snmp4j.smi.OID id, MOAccess access, org.snmp4j.smi.Variable value)
          Creates a scalar object from a OID, maximum access, and value.
 MOScalar createScalar(org.snmp4j.smi.OID id, MOAccess access, org.snmp4j.smi.Variable value, java.lang.String tcModuleName, java.lang.String textualConvention)
          Creates a scalar object from a OID, maximum access, and value.
 MOTableSubIndex createSubIndex(int smiSyntax)
           
 MOTableSubIndex createSubIndex(int smiSyntax, int minLength, int maxLength)
           
 MOTableSubIndex createSubIndex(org.snmp4j.smi.OID oid, int smiSyntax)
          Creates a sub-index definition.
 MOTableSubIndex createSubIndex(org.snmp4j.smi.OID oid, int smiSyntax, int minLength, int maxLength)
          Creates a sub-index definition.
 MOTable createTable(org.snmp4j.smi.OID oid, MOTableIndex indexDef, MOColumn[] columns)
          Creates a MOTable instance for the supplied OID, index definition, and columns with the DefaultMOMutableTableModel as table model.
 MOTable createTable(org.snmp4j.smi.OID oid, MOTableIndex indexDef, MOColumn[] columns, MOTableModel model)
          Creates a MOTable instance for the supplied OID, index definition, columns, and table model.
 MOTableModel createTableModel(org.snmp4j.smi.OID tableOID, MOTableIndex indexDef, MOColumn[] columns)
          Creates a table model (by default a DefaultMOMutableTableModel).
 MOTableRelation createTableRelation(MOTable baseTable, MOTable dependentTable)
          Creates a relation between two tables.
 void freeRow(MOTableRow row)
          Frees resources associated with the supplied row which is to be deleted.
static MOFactory getInstance()
          Returns the factory singleton with default support for SNMPv2-TC textual conventions.
 java.lang.Object getLink(org.snmp4j.smi.OID oid)
          Gets the link for the given object ID or any sub-OID prefix thereof.
 TextualConvention getTextualConvention(java.lang.String moduleName, java.lang.String name)
          Gets the textual convention described by the TC's name and the MIB module name of the MIB module specifying the TC.
protected  java.util.Map<? extends java.lang.String,? extends java.util.Map<java.lang.String,TextualConvention>> getTextualConventions()
           
protected  void initLinkMap()
           
 void removeTextualConvention(TextualConvention tc)
          Removes the supplied textual convention from the supported TCs by this ManagedObject factory.
static void setInstance(MOFactory factory)
          Sets the singleton factory.
 void setLink(org.snmp4j.smi.OID oid, java.lang.Object instrumentationHelperObject)
          Set a link between the supplied object ID of a managed object class (or a set of managed object classes if the OID refers to a MIB sub-tree) to the given helper object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultMOFactory

protected DefaultMOFactory()
Method Detail

getInstance

public static MOFactory getInstance()
Returns the factory singleton with default support for SNMPv2-TC textual conventions.

Returns:
a MOFactory instance.

setInstance

public static void setInstance(MOFactory factory)
Sets the singleton factory.

Parameters:
factory - a MOFactory instance.

addSNMPv2TCs

public static void addSNMPv2TCs(MOFactory factory)
Adds support for SNMPv2TC textual conventions to the supplied ManagedObject factory.

Parameters:
factory - a MOFactory instance.

getTextualConventions

protected java.util.Map<? extends java.lang.String,? extends java.util.Map<java.lang.String,TextualConvention>> getTextualConventions()

addTextualConvention

public void addTextualConvention(TextualConvention tc)
Adds a textual convention to this factory which can then be used by the factory to create appropriate value constraints for columnar and scalar managed objects.

Specified by:
addTextualConvention in interface MOFactory
Parameters:
tc - a TextualConvention instance.

removeTextualConvention

public void removeTextualConvention(TextualConvention tc)
Description copied from interface: MOFactory
Removes the supplied textual convention from the supported TCs by this ManagedObject factory.

Specified by:
removeTextualConvention in interface MOFactory
Parameters:
tc - a TextualConvention instance.

getTextualConvention

public TextualConvention getTextualConvention(java.lang.String moduleName,
                                              java.lang.String name)
Description copied from interface: MOFactory
Gets the textual convention described by the TC's name and the MIB module name of the MIB module specifying the TC.

Specified by:
getTextualConvention in interface MOFactory
Parameters:
moduleName - the name of the MIB module that defines the TC.
name - the object name of the TC.
Returns:
the TextualConvention that matches the given values, or null if such a TC is not registered with this factory.

createColumn

public MOColumn createColumn(int columnID,
                             int syntax,
                             MOAccess access)
Description copied from interface: MOFactory
Creates a columnar object by supplying column ID, syntax, and maximum access. Use this method for columns not based on a textual convention.

Specified by:
createColumn in interface MOFactory
Parameters:
columnID - the column ID of the column. The column ID is the last sub-identifier of a column definition. It is NOT the index of the column.
syntax - the SMI syntax of the column as defined by SMIConstants.
access - the maximum access supported by this column.
Returns:
a MOColumn instance.

createColumn

public MOColumn createColumn(int columnID,
                             int syntax,
                             MOAccess access,
                             org.snmp4j.smi.Variable defaultValue,
                             boolean mutableInService)
Description copied from interface: MOFactory
Creates a columnar object by supplying column ID, syntax, and maximum access. Use this method for columns based on the textual convention.

Specified by:
createColumn in interface MOFactory
Parameters:
columnID - the column ID of the column. The column ID is the last sub-identifier of a column definition. It is NOT the index of the column.
syntax - the (effective) SMI syntax of the column as defined by SMIConstants.
access - the maximum access supported by this column.
defaultValue - the default value defined by the DEFVAL clause for this column.
mutableInService - if true this object may be changed while it is active (inService), otherwise such an attempt will be rejected with a inconsistentValue error.
Returns:
a MOColumn instance.

createTableRelation

public MOTableRelation createTableRelation(MOTable baseTable,
                                           MOTable dependentTable)
Description copied from interface: MOFactory
Creates a relation between two tables. Related tables share one or more sub-indexes beginning with the first sub-index.

Specified by:
createTableRelation in interface MOFactory
Parameters:
baseTable - the base table.
dependentTable - the dependent or augmenting table.
Returns:
a MOTableRelation instance relating the supplied tables.

createRow

public MOTableRow createRow(org.snmp4j.smi.OID index,
                            org.snmp4j.smi.Variable[] values)
                     throws java.lang.UnsupportedOperationException
Description copied from interface: MOTableRowFactory
Creates a new MOTableRow row instance and returns it.

Specified by:
createRow in interface MOTableRowFactory
Parameters:
index - the index OID for the new row.
values - the values to be contained in the new row.
Returns:
the created MOTableRow.
Throws:
java.lang.UnsupportedOperationException - if the specified row cannot be created.

createScalar

public MOScalar createScalar(org.snmp4j.smi.OID id,
                             MOAccess access,
                             org.snmp4j.smi.Variable value)
Description copied from interface: MOFactory
Creates a scalar object from a OID, maximum access, and value.

Specified by:
createScalar in interface MOFactory
Parameters:
id - the OID of the scalar (including the .0 suffix).
access - the maximum access supported by this scalar.
value - the (initial) value of the scalar.
Returns:
a MOScalar instance.

createTable

public MOTable createTable(org.snmp4j.smi.OID oid,
                           MOTableIndex indexDef,
                           MOColumn[] columns)
Description copied from interface: MOFactory
Creates a MOTable instance for the supplied OID, index definition, and columns with the DefaultMOMutableTableModel as table model.

Specified by:
createTable in interface MOFactory
Parameters:
oid - the OID of the table entry (thus table OID + ".1").
indexDef - the index defintion of the table.
columns - the columns for the new table as an array of MOColumn instances.
Returns:
a MOTable instance.

createTable

public MOTable createTable(org.snmp4j.smi.OID oid,
                           MOTableIndex indexDef,
                           MOColumn[] columns,
                           MOTableModel model)
Description copied from interface: MOFactory
Creates a MOTable instance for the supplied OID, index definition, columns, and table model.

Specified by:
createTable in interface MOFactory
Parameters:
oid - the OID of the table entry (thus table OID + ".1").
indexDef - the index defintion of the table.
columns - the columns for the new table as an array of MOColumn instances.
model - the table model to use for the table.
Returns:
a MOTable instance.

createTableModel

public MOTableModel createTableModel(org.snmp4j.smi.OID tableOID,
                                     MOTableIndex indexDef,
                                     MOColumn[] columns)
Description copied from interface: MOFactory
Creates a table model (by default a DefaultMOMutableTableModel).

Specified by:
createTableModel in interface MOFactory
Parameters:
tableOID - the table's OID for which this model is created.
indexDef - the index definition for the table.
columns - the columns defined for the table.
Returns:
a MOTableModel instance.

freeRow

public void freeRow(MOTableRow row)
Description copied from interface: MOTableRowFactory
Frees resources associated with the supplied row which is to be deleted.

Specified by:
freeRow in interface MOTableRowFactory
Parameters:
row - a MOTableRow that has been created using this factory and is now to be deleted (removed from the associated table).

createIndex

public MOTableIndex createIndex(MOTableSubIndex[] subIndexes,
                                boolean impliedLength)
Description copied from interface: MOFactory
Creates an index definition from the supplied sub-index definitions without index validation.

Specified by:
createIndex in interface MOFactory
Parameters:
subIndexes - an array of MOTableSubIndex instances defining the sub- index values of this index.
impliedLength - indicates whether the last variable length sub-index value has an implied length or not (default is false).
Returns:
MOTableIndex a MOTableIndex instance.

createSubIndex

public MOTableSubIndex createSubIndex(int smiSyntax)

createSubIndex

public MOTableSubIndex createSubIndex(org.snmp4j.smi.OID oid,
                                      int smiSyntax)
Description copied from interface: MOFactory
Creates a sub-index definition.

Specified by:
createSubIndex in interface MOFactory
Parameters:
oid - the object identifier of the OBJECT-TYPE that defines this sub-index or null if that information is not available. An non null is required for AgentX shared tables.
smiSyntax - the SMI syntax as defined by SMIConstants.
Returns:
a MOTableSubIndex instance.

createSubIndex

public MOTableSubIndex createSubIndex(int smiSyntax,
                                      int minLength,
                                      int maxLength)

createSubIndex

public MOTableSubIndex createSubIndex(org.snmp4j.smi.OID oid,
                                      int smiSyntax,
                                      int minLength,
                                      int maxLength)
Description copied from interface: MOFactory
Creates a sub-index definition.

Specified by:
createSubIndex in interface MOFactory
Parameters:
oid - the object identifier of the OBJECT-TYPE that defines this sub-index or null if that information is not available. An non null is required for AgentX shared tables.
smiSyntax - the SMI syntax as defined by SMIConstants.
minLength - the minimum length in sub-identifiers (without length sub-id) of the sub-index.
maxLength - the maximum length in sub-identifiers (without length sub-id) of the sub-index.
Returns:
a MOTableSubIndex instance.

createIndex

public MOTableIndex createIndex(MOTableSubIndex[] subIndexes,
                                boolean impliedLength,
                                MOTableIndexValidator validator)
Description copied from interface: MOFactory
Creates an index definition from the supplied sub-index definitions with index validation according to the supplied validator.

Specified by:
createIndex in interface MOFactory
Parameters:
subIndexes - an array of MOTableSubIndex instances defining the sub- index values of this index.
impliedLength - indicates whether the last variable length sub-index value has an implied length or not (default is false).
validator - an index validator to check index values.
Returns:
MOTableIndex a MOTableIndex instance.

createColumn

public MOColumn createColumn(int columnID,
                             int syntax,
                             MOAccess access,
                             java.lang.String tcModuleName,
                             java.lang.String textualConvention)
Description copied from interface: MOFactory
Creates a columnar object by supplying column ID, syntax, and maximum access. Use this method for columns based on the textual convention.

Specified by:
createColumn in interface MOFactory
Parameters:
columnID - the column ID of the column. The column ID is the last sub-identifier of a column definition. It is NOT the index of the column.
syntax - the (effective) SMI syntax of the column as defined by SMIConstants.
access - the maximum access supported by this column.
tcModuleName - the MIB module name that defines the textual conventions.
textualConvention - the object name of the textual convention on which this column is based.
Returns:
a MOColumn instance.

createColumn

public MOColumn createColumn(int columnID,
                             int syntax,
                             MOAccess access,
                             org.snmp4j.smi.Variable defaultValue,
                             boolean mutableInService,
                             java.lang.String tcModuleName,
                             java.lang.String textualConvention)
Description copied from interface: MOFactory
Creates a columnar object by supplying column ID, syntax, and maximum access. Use this method for columns based on the textual convention.

Specified by:
createColumn in interface MOFactory
Parameters:
columnID - the column ID of the column. The column ID is the last sub-identifier of a column definition. It is NOT the index of the column.
syntax - the (effective) SMI syntax of the column as defined by SMIConstants.
access - the maximum access supported by this column.
defaultValue - the default value defined by the DEFVAL clause for this column.
mutableInService - if true this object may be changed while it is active (inService), otherwise such an attempt will be rejected with a inconsistentValue error.
tcModuleName - the MIB module name that defines the textual conventions.
textualConvention - the object name of the textual convention on which this column is based.
Returns:
a MOColumn instance.

createScalar

public MOScalar createScalar(org.snmp4j.smi.OID id,
                             MOAccess access,
                             org.snmp4j.smi.Variable value,
                             java.lang.String tcModuleName,
                             java.lang.String textualConvention)
Description copied from interface: MOFactory
Creates a scalar object from a OID, maximum access, and value.

Specified by:
createScalar in interface MOFactory
Parameters:
id - the OID of the scalar (including the .0 suffix).
access - the maximum access supported by this scalar.
value - the (initial) value of the scalar.
tcModuleName - the MIB module name that defines the textual conventions.
textualConvention - the object name of the textual convention on which this scalar is based.
Returns:
a MOScalar instance.

createAccess

public MOAccess createAccess(int moAccess)
Description copied from interface: MOFactory
Creates an MOAccess instance from an access specification constant that is the result of a bitwise OR of any of the constants defined by MOAccess.

Specified by:
createAccess in interface MOFactory
Parameters:
moAccess - any bitwise OR combined constant from MOAccess.
Returns:
a MOAccess instance.

setLink

public void setLink(org.snmp4j.smi.OID oid,
                    java.lang.Object instrumentationHelperObject)
Description copied from interface: LinkedMOFactory
Set a link between the supplied object ID of a managed object class (or a set of managed object classes if the OID refers to a MIB sub-tree) to the given helper object.

Specified by:
setLink in interface LinkedMOFactory
Parameters:
oid - an OID of a managed object class or sub-tree.
instrumentationHelperObject - an object that helps the factory or the objects created on its behalf to instrument the those objects.
See Also:
LinkedMOFactory.getLink(OID oid)

getLink

public java.lang.Object getLink(org.snmp4j.smi.OID oid)
Description copied from interface: LinkedMOFactory
Gets the link for the given object ID or any sub-OID prefix thereof.

Specified by:
getLink in interface LinkedMOFactory
Parameters:
oid - the oid of the managed object class (prefix) for which to returned the linked instrumentation helper class.
Returns:
an instrumentation helper object (for example an URI) or null if no such link exists.

initLinkMap

protected void initLinkMap()

Copyright 2005-2010 Frank Fock (SNMP4J.org)

Copyright © 2011 SNMP4J.org. All Rights Reserved.