Class ChannelBase

    • Constructor Detail

      • ChannelBase

        public ChannelBase​(ProductType type)
      • ChannelBase

        public ChannelBase()
    • Method Detail

      • getCurrentRequirements

        public java.util.Queue<Requirement> getCurrentRequirements()
      • addRequirement

        public void addRequirement​(Requirement requirement)
        Adds new requirement to the requirement Queue.
        Parameters:
        requirement - requirement
      • tick

        public boolean tick()
        Passes tick onto every requirement in channel, if requirement has TTL= 0 deletes it, notifies all nodes with current requirements.
        Returns:
        if there are any requirements
      • notifyAllObservers

        public void notifyAllObservers()
        Notifies all nodes apart from creator about a requirement.
        Specified by:
        notifyAllObservers in interface Observable
      • attach

        public void attach​(ChannelObserver observer)
        Adds observer to list of subscribed nodes.
        Specified by:
        attach in interface Observable
        Parameters:
        observer - channelobserver
      • detach

        public void detach​(ChannelObserver observer)
        Removes observer from list of subscribed nodes.
        Specified by:
        detach in interface Observable
        Parameters:
        observer - channelobserver
      • addTransaction

        public void addTransaction​(Transaction transaction)
        Adds new transaction to the transaction Queue.
        Parameters:
        transaction - transaction
      • disposeOf

        public void disposeOf​(Requirement requirement)
        Removes requirement from list of active requirements.
        Parameters:
        requirement - requirement
      • disposeOf

        public void disposeOf​(Transaction transaction)
        Removes transaction from list of unprocessed transactions.
        Parameters:
        transaction - transaction
      • clearRequirements

        public void clearRequirements()
        Clears all active requirements from this channel.