Class DefaultMOQuery

  • All Implemented Interfaces:
    MOContextScope, MOQuery, MOScope
    Direct Known Subclasses:
    MOQueryWithSource

    public class DefaultMOQuery
    extends Object
    implements MOQuery
    The DefaultMOQuery class is the default implementation of a managed object query. It is used to lookup managed objects, for example in a MOServer repository. The constructor with source object reference has been pushed down into the new subclass MOQueryWithSource (since version 2.0).
    Version:
    2.0
    Author:
    Frank Fock
    • Constructor Detail

      • DefaultMOQuery

        public DefaultMOQuery​(MOContextScope scope)
        Creates a context aware query from a context aware OID scope.
        Parameters:
        scope - a scope that defines the possible result set of OIDs from a specific context for this query.
      • DefaultMOQuery

        public DefaultMOQuery​(MOContextScope scope,
                              boolean isWriteAccessIntended)
        Creates a context aware query from a context aware OID scope.
        Parameters:
        scope - a scope that defines the possible result set of OIDs from a specific context for this query.
        isWriteAccessIntended - indicates whether this query serves a write access on ManagedObjects or not.
        Since:
        1.1
      • DefaultMOQuery

        public DefaultMOQuery​(MOContextScope scope,
                              boolean isWriteAccessIntended,
                              Object source)
        Creates a context aware query from a context aware OID scope.
        Parameters:
        scope - a scope that defines the possible result set of OIDs from a specific context for this query.
        isWriteAccessIntended - indicates whether this query serves a write access on ManagedObjects or not.
        source - the request object that triggered the creation of this query. See getSource().
        Since:
        1.1
    • Method Detail

      • getScope

        public MOContextScope getScope()
        Gets the search range of this query.
        Specified by:
        getScope in interface MOQuery
        Returns:
        a MORange instance denoting upper and lower bound of this queries scope.
      • getSource

        public Object getSource()
        Gets the source (Request) object on whose behalf this query is executed. This object reference can be used to determine whether a query needs to update ManagedObject content or not. When the reference is the same as those from the last query then an update is not necessary.
        Returns:
        an Object on whose behalf this query is executed which will be in most cases a Request instance, but code should not rely on that. If null is returned, the query source cannot be determined.
        Since:
        1.1
      • matchesQuery

        public boolean matchesQuery​(ManagedObject<?> managedObject)
        Checks whether a managed object matches the internal query criteria defined by this query.
        Specified by:
        matchesQuery in interface MOQuery
        Parameters:
        managedObject - the ManagedObject instance to check.
        Returns:
        true if the managedObject matches the query.
      • substractScope

        public void substractScope​(MOScope scope)
        Description copied from interface: MOQuery
        Changes the query to no longer match (cover) the specified scope. If the query's scope is immutable (does not implement the MutableMOScope interface, then this method will throw an UnsupportedOperationException.
        Specified by:
        substractScope in interface MOQuery
        Parameters:
        scope - a MOScope instance that defines the range of OIDs that should be no longer in the scope of this query.
      • isWriteAccessQuery

        public boolean isWriteAccessQuery()
        Description copied from interface: MOQuery
        Indicates whether this query is issued on behalf of an intended write access on the ManagedObjects matched by this query. This information can be used to optimize query evaluation or to control resource allocation.
        Specified by:
        isWriteAccessQuery in interface MOQuery
        Returns:
        true if this query is performed to change or create a managed object matching this query and false if the query is for read-only access on the matched managed objects.
      • getLowerBound

        public org.snmp4j.smi.OID getLowerBound()
        Description copied from interface: MOScope
        Gets the lower bound OID of the scope. Whether the lower bound is included or excluded from the scope's region is determined by MOScope.isLowerIncluded().
        Specified by:
        getLowerBound in interface MOScope
        Returns:
        an OID.
      • getUpperBound

        public org.snmp4j.smi.OID getUpperBound()
        Description copied from interface: MOScope
        Gets the upper bound OID of the scope. Whether the upper bound is included or excluded from the scope's region is determined by MOScope.isUpperIncluded().
        Specified by:
        getUpperBound in interface MOScope
        Returns:
        OID
      • isLowerIncluded

        public boolean isLowerIncluded()
        Description copied from interface: MOScope
        Indicates whether the lower bound OID is included in the scope or not.
        Specified by:
        isLowerIncluded in interface MOScope
        Returns:
        true if the lower bound is included.
      • isUpperIncluded

        public boolean isUpperIncluded()
        Description copied from interface: MOScope
        Indicates whether the upper bound OID is included in the scope or not.
        Specified by:
        isUpperIncluded in interface MOScope
        Returns:
        true if the upper bound is included.
      • isCovered

        public boolean isCovered​(MOScope other)
        Description copied from interface: MOScope
        Checks whether the supplied scope is covered by this scope.
        Specified by:
        isCovered in interface MOScope
        Parameters:
        other - the MOScope to check
        Returns:
        true if the lower bound of other is greater or equal than the lower bound of this scope and if the upper bound of other is lower or equal than the upper bound of this scope.
      • isOverlapping

        public boolean isOverlapping​(MOScope other)
        Description copied from interface: MOScope
        Checks whether the supplied scope overlap with this one, thus sharing at least one OID with the supplied one.
        Specified by:
        isOverlapping in interface MOScope
        Parameters:
        other - a MOScope.
        Returns:
        true if there exists at least one OID that is included in both scopes.
      • covers

        public boolean covers​(org.snmp4j.smi.OID oid)
        Description copied from interface: MOScope
        Checks if this scope covers the supplied OID.
        Specified by:
        covers in interface MOScope
        Parameters:
        oid - an OID.
        Returns:
        true if oid is greater or equal the scope's lower bound and if it is less or equal its upper bound.
      • getContext

        public org.snmp4j.smi.OctetString getContext()
        Description copied from interface: MOContextScope
        Returns the context name of this scope.
        Specified by:
        getContext in interface MOContextScope
        Returns:
        the context name of this scope.