Class RoutedServicesLayerImpl

    • Constructor Detail

      • RoutedServicesLayerImpl

        public RoutedServicesLayerImpl​(IdGroupingToken tokenId,
                                       ServiceNetworkLayer parentLayer)
        Constructor
        Parameters:
        tokenId - to use for id generation
        parentLayer - the parent layer these routed services are built upon
      • RoutedServicesLayerImpl

        public RoutedServicesLayerImpl​(RoutedServicesLayerImpl other,
                                       boolean deepCopy,
                                       ManagedIdDeepCopyMapper<RoutedService> routedServiceMapper)
        Copy constructor
        Parameters:
        other - to copy
        deepCopy - when true, create a deep copy, shallow copy otherwise
        routedServiceMapper - to use for tracking mapping between original and copied entity (may be null)
    • Method Detail

      • generateId

        protected static long generateId​(IdGroupingToken tokenId)
        Generate id for instances of this class based on the token and class identifier
        Parameters:
        tokenId - to use
        Returns:
        generated id
      • removeServicesByMode

        protected RoutedModeServices removeServicesByMode​(RoutedModeServices servicesByMode)
        Remove a given routed services by mode
        Parameters:
        servicesByMode - to remove
        Returns:
        removed entry (if any)
      • recreateManagedIds

        public long recreateManagedIds​(IdGroupingToken tokenId)
        recreate the internal id(s) and set them including the Idable id
        Specified by:
        recreateManagedIds in interface ManagedId
        Parameters:
        tokenId - to use (may be null in case managed id entity does not rely on token to recreate its managed id(s))
        Returns:
        the updated internal id
      • isServicesByModeEmpty

        public boolean isServicesByModeEmpty​(Mode mode)
        Verify if there exist no registered services for a given mode at all at present
        Specified by:
        isServicesByModeEmpty in interface RoutedServicesLayer
        Parameters:
        mode - to check
        Returns:
        true when no single routed service by mode exists, false otherwise
      • getServicesByMode

        public RoutedModeServices getServicesByMode​(Mode mode)
        The services for a given mode available on this layer. If no services are yet available an empty instance is created and registered. It is expected that each routed service across all modes on the layer has a unique internal id, so internal ids do not restart at zero per mode
        Specified by:
        getServicesByMode in interface RoutedServicesLayer
        Parameters:
        mode - to obtain services for
        Returns:
        services by mode, empty instance if none have been registered yet
      • getLayerModifier

        public RoutedServicesLayerModifier getLayerModifier()
        Routed services have an additional modifier options to provided integrated utilities for changing the routed services in a way that updates all attached managed routed and service network elements involved
        Specified by:
        getLayerModifier in interface RoutedServicesLayer
        Returns:
        routed services layer modifier
      • logInfo

        public void logInfo​(String prefix)
        invoked by entities inquiring about general information about the layer to display to users
        Specified by:
        logInfo in interface RoutedServicesLayer
        Parameters:
        prefix - optional prefix to include in each line of logging
      • isEmpty

        public boolean isEmpty()
        Check if the layer is empty of any routed services
        Specified by:
        isEmpty in interface RoutedServicesLayer
        Returns:
        true when empty, false otherwise
      • deepClone

        public RoutedServicesLayerImpl deepClone()
        An id entity should always support a deep copy, i.e., all "owned" members will be deep copied when a clone of this instance is created via this call. To be used with caution if not called by managed id container related code
        Specified by:
        deepClone in interface IdAble
        Specified by:
        deepClone in interface RoutedServicesLayer
        Overrides:
        deepClone in class ExternalIdAbleImpl
        Returns:
        deep copy of entity