Class DelegatingResource

  • All Implemented Interfaces:
    Cloneable, Resource

    public class DelegatingResource
    extends ResourceProvider.ResourceProviderRegistry
    implements Resource
    Resource implementation that simply delegates to another Resource. Intended as a convenience class to allow overriding of standard behaviors and also as a means to support a copy-on-write/publish-on-commit semantic for the management resource tree.
    Author:
    Brian Stansberry (c) 2014 Red Hat Inc.
    • Constructor Detail

      • DelegatingResource

        public DelegatingResource​(Resource delegate)
        Creates a new DelegatingResource with a fixed delegate.
        Parameters:
        delegate - the delegate. Cannot be null
      • DelegatingResource

        public DelegatingResource​(DelegatingResource.ResourceDelegateProvider delegateProvider)
        Creates a new DelegatingResource with a possibly changing delegate.
        Parameters:
        delegateProvider - provider of the delegate. Cannot be null
    • Method Detail

      • clone

        public Resource clone()
        Description copied from interface: Resource
        Creates and returns a copy of this resource.
        Specified by:
        clone in interface Resource
        Overrides:
        clone in class Object
        Returns:
        the clone. Will not return null
      • getChild

        public Resource getChild​(PathElement element)
        Description copied from interface: Resource
        Get a single child of this resource with the given address. If no such child exists this will return null.
        Specified by:
        getChild in interface Resource
        Parameters:
        element - the path element
        Returns:
        the resource, null if there is no such child resource
      • getChildrenNames

        public Set<String> getChildrenNames​(String childType)
        Description copied from interface: Resource
        Get the children names for a given type.
        Specified by:
        getChildrenNames in interface Resource
        Parameters:
        childType - the child type
        Returns:
        the names of registered child resources
      • getChildTypes

        public Set<String> getChildTypes()
        Description copied from interface: Resource
        Get a list of registered child types for this resource.
        Specified by:
        getChildTypes in interface Resource
        Returns:
        the registered child types
      • getModel

        public org.jboss.dmr.ModelNode getModel()
        Description copied from interface: Resource
        Get the local model.
        Specified by:
        getModel in interface Resource
        Returns:
        the model
      • hasChild

        public boolean hasChild​(PathElement element)
        Description copied from interface: Resource
        Determine whether this resource has a child with the given address. In case the PathElement has a wildcard as value, it will determine whether this resource has any resources of a given type.
        Specified by:
        hasChild in interface Resource
        Parameters:
        element - the path element
        Returns:
        true if there is child with the given address
      • hasChildren

        public boolean hasChildren​(String childType)
        Description copied from interface: Resource
        Determine whether this resource has any child of a given type.
        Specified by:
        hasChildren in interface Resource
        Parameters:
        childType - the child type
        Returns:
        true if there is any child of the given type
      • isModelDefined

        public boolean isModelDefined()
        Description copied from interface: Resource
        Determine whether the model of this resource is defined.
        Specified by:
        isModelDefined in interface Resource
        Returns:
        true if the local model is defined
      • isProxy

        public boolean isProxy()
        Description copied from interface: Resource
        Gets whether operations against this resource will be proxied to a remote process.
        Specified by:
        isProxy in interface Resource
        Returns:
        true if this resource represents a remote resource; false otherwise
      • isRuntime

        public boolean isRuntime()
        Description copied from interface: Resource
        Gets whether this resource only exists in the runtime and has no representation in the persistent configuration model.
        Specified by:
        isRuntime in interface Resource
        Returns:
        true if the resource has no representation in the persistent configuration model; false otherwise
      • navigate

        public Resource navigate​(PathAddress address)
        Description copied from interface: Resource
        Navigate the resource tree.
        Specified by:
        navigate in interface Resource
        Parameters:
        address - the address
        Returns:
        the resource
      • registerChild

        public void registerChild​(PathElement address,
                                  Resource resource)
        Description copied from interface: Resource
        Register a child resource.
        Specified by:
        registerChild in interface Resource
        Parameters:
        address - the address
        resource - the resource
      • registerChild

        public void registerChild​(PathElement address,
                                  int index,
                                  Resource resource)
        Description copied from interface: Resource
        Register a child resource
        Specified by:
        registerChild in interface Resource
        Parameters:
        address - the address
        index - the index at which to add the resource. Existing children with this index and higher will be shifted one uo
        resource - the resource
      • removeChild

        public Resource removeChild​(PathElement address)
        Description copied from interface: Resource
        Remove a child resource.
        Specified by:
        removeChild in interface Resource
        Parameters:
        address - the address
        Returns:
        the resource
      • requireChild

        public Resource requireChild​(PathElement element)
        Description copied from interface: Resource
        Get a single child of this resource with the given address. If no such child exists a, an exception is thrown.
        Specified by:
        requireChild in interface Resource
        Parameters:
        element - the path element
        Returns:
        the resource
      • writeModel

        public void writeModel​(org.jboss.dmr.ModelNode newModel)
        Description copied from interface: Resource
        Write the model.
        Specified by:
        writeModel in interface Resource
        Parameters:
        newModel - the new model
      • getOrderedChildTypes

        public Set<String> getOrderedChildTypes()
        Description copied from interface: Resource
        Return the child types for which the order matters.
        Specified by:
        getOrderedChildTypes in interface Resource
        Returns:
        true if the order of the children matters. If there are no ordered children and empty set is returned. This method should never return null