Class Node

  • All Implemented Interfaces:
    java.io.Serializable , jline.lang.Copyable

    
    public class Node
    extends NetworkElement implements Serializable
                        

    Superclass for a node element within a Network model

    • Constructor Detail

      • Node

        Node(String nodeName)
        Creates a new node with the specified name.
        Parameters:
        nodeName - the name for this node
    • Method Detail

      • getAttribute

         NodeAttribute getAttribute()

        Gets the attribute object containing additional metadata for this node.

        Returns:

        the node attribute object

      • getCap

         double getCap()

        Returns the total capacity limit for this node. Default implementation returns infinite capacity.

        Returns:

        the total capacity limit

      • getClassCap

         double getClassCap(JobClass jobClass)

        Returns the capacity limit for a specific job class at this node. Default implementation returns infinite capacity.

        Parameters:
        jobClass - the job class to query
        Returns:

        the capacity limit for the job class

      • getDropStrategy

         DropStrategy getDropStrategy()

        Gets the drop strategy used by this node when capacity limits are exceeded.

        Returns:

        the drop strategy

      • getInput

         InputSection getInput()

        Gets the input section that handles incoming jobs to this node.

        Returns:

        the input section

      • getModel

         Network getModel()

        Returns the network model containing this node.

        Returns:

        the parent network model

      • setModel

         void setModel(Network model)

        Sets the network model containing this node.

        Parameters:
        model - the parent network model
      • getNodeIndex

         int getNodeIndex()

        Gets the index of this node in the network's node collection. The index is lazily computed if not already set.

        Returns:

        the node index

      • setNodeIdx

         void setNodeIdx(int index)

        Sets the index of this node in the network's node collection.

        Parameters:
        index - the node index to set
      • getOutput

         OutputSection getOutput()

        Gets the output section that handles job routing from this node.

        Returns:

        the output section

      • getRoutingStrategy

         RoutingStrategy getRoutingStrategy(JobClass jobClass)

        Returns the routing strategy configured for a specific job class.

        Parameters:
        jobClass - the job class to query
        Returns:

        the routing strategy, or RAND if none specified

      • getSections

         List<Section> getSections()

        Gets all sections (input, server, output) that compose this node.

        Returns:

        list containing all node sections

      • getServer

         ServiceSection getServer()

        Gets the service section that handles job processing at this node.

        Returns:

        the service section

      • getStatefulIdx

         int getStatefulIdx()

        Gets the index of this node in the network's stateful node collection. Returns -1 if this node is not stateful.

        Returns:

        the stateful node index, or -1 if not stateful

      • getStationIdx

         int getStationIdx()

        Gets the index of this node in the network's station collection. The index is lazily computed if not already set.

        Returns:

        the station index

      • setStationIdx

         void setStationIdx(int index)

        Sets the index of this node in the network's station collection.

        Parameters:
        index - the station index to set
      • isReferenceStation

         boolean isReferenceStation()

        Checks if this node is a reference station. Default implementation returns false; override in subclasses as needed.

        Returns:

        true if this is a reference station, false otherwise

      • isStateful

         boolean isStateful()

        Checks if this node maintains state between job visits.

        Returns:

        true if this node is stateful, false otherwise

      • setState

         void setState(Matrix state)

        Sets the state of this node.

        Parameters:
        state - the state matrix to set
      • getState

         Matrix getState()

        Gets the current state of this node.

        Returns:

        the current state matrix

      • printSummary

         void printSummary()

        Prints a summary of this node's configuration to the console.

      • reset

         void reset()

        Resets the internal state of this node. Called when the network model is reset. Default implementation is no-op; override in subclasses as needed.

      • resetRouting

         void resetRouting()

        Resets all routing configurations for this node.

      • setProbRouting

         void setProbRouting(JobClass jobClass, Node destination, double probability)

        Sets probabilistic routing for a job class to a specific destination.

        Parameters:
        jobClass - the job class to configure routing for
        destination - the destination node
        probability - the routing probability (0.0 to 1.
      • setRouting

         void setRouting(JobClass jobClass, RoutingStrategy routingStrategy)

        Sets the routing strategy for a specific job class.

        Parameters:
        jobClass - the job class to configure routing for
        routingStrategy - the routing strategy to use
      • setRouting

         void setRouting(JobClass jobClass, RoutingStrategy routingStrategy, Node destination, double probability)

        Sets the routing strategy with destination and probability for a job class.

        Parameters:
        jobClass - the job class to configure routing for
        routingStrategy - the routing strategy to use
        destination - the destination node
        probability - the routing probability to this destination