Class ModelChecker

java.lang.Object
common.controller.ModelChecker
All Implemented Interfaces:
CommonConstants, EngineNodeConstants

public class ModelChecker extends Object implements CommonConstants

Title: ModelChecker

Description: Checks the model correctness

Author:
Francesco D'Aquino Date: 6-ott-2005 Time: 16.12.50, Bertoli Marco (new errors)
  • Field Details

    • ERROR_PROBLEM

      public static final int ERROR_PROBLEM
      See Also:
    • WARNING_PROBLEM

      public static final int WARNING_PROBLEM
      See Also:
    • NO_CLASS_ERROR

      public static final int NO_CLASS_ERROR
      See Also:
    • NO_STATION_ERROR

      public static final int NO_STATION_ERROR
      See Also:
    • NO_MEASURE_ERROR

      public static final int NO_MEASURE_ERROR
      See Also:
    • OPEN_CLASS_BUT_NO_SOURCE_ERROR

      public static final int OPEN_CLASS_BUT_NO_SOURCE_ERROR
      See Also:
    • OPEN_CLASS_BUT_NO_SINK_ERROR

      public static final int OPEN_CLASS_BUT_NO_SINK_ERROR
      See Also:
    • SOURCE_WITHOUT_OPEN_CLASS_ERROR

      public static final int SOURCE_WITHOUT_OPEN_CLASS_ERROR
      See Also:
    • SINK_BUT_NO_OPEN_CLASS_ERROR

      public static final int SINK_BUT_NO_OPEN_CLASS_ERROR
      See Also:
    • NO_REFERENCE_STATION_ERROR

      public static final int NO_REFERENCE_STATION_ERROR
      See Also:
    • INVALID_MEASURE_ERROR

      public static final int INVALID_MEASURE_ERROR
      See Also:
    • DUPLICATE_MEASURE_ERROR

      public static final int DUPLICATE_MEASURE_ERROR
      See Also:
    • INCONSISTENT_QUEUE_STRATEGY_ERROR

      public static final int INCONSISTENT_QUEUE_STRATEGY_ERROR
      See Also:
    • UNPREDICTABLE_SERVICE_ERROR

      public static final int UNPREDICTABLE_SERVICE_ERROR
      See Also:
    • JOIN_WITHOUT_FORK_ERROR

      public static final int JOIN_WITHOUT_FORK_ERROR
      See Also:
    • FORK_JOIN_ROUTING_ERROR

      public static final int FORK_JOIN_ROUTING_ERROR
      See Also:
    • EMPTY_BLOCKING_REGION_ERROR

      public static final int EMPTY_BLOCKING_REGION_ERROR
      See Also:
    • BLOCKING_REGION_CAPACITY_OVERLOAD_ERROR

      public static final int BLOCKING_REGION_CAPACITY_OVERLOAD_ERROR
      See Also:
    • BLOCKING_REGION_MEMORY_OVERLOAD_ERROR

      public static final int BLOCKING_REGION_MEMORY_OVERLOAD_ERROR
      See Also:
    • CLASS_SWITCH_REFERENCE_STATION_ERROR

      public static final int CLASS_SWITCH_REFERENCE_STATION_ERROR
      See Also:
    • ZERO_GUARD_STRATEGY_ERROR

      public static final int ZERO_GUARD_STRATEGY_ERROR
      See Also:
    • SEMAPHORE_NOT_BETWEEN_FORK_JOIN_ERROR

      public static final int SEMAPHORE_NOT_BETWEEN_FORK_JOIN_ERROR
      See Also:
    • SCALER_NOT_BETWEEN_FORK_JOIN_ERROR

      public static final int SCALER_NOT_BETWEEN_FORK_JOIN_ERROR
      See Also:
    • TRANSITION_INFINITE_ENABLING_DEGREE_ERROR

      public static final int TRANSITION_INFINITE_ENABLING_DEGREE_ERROR
      See Also:
    • DROP_ENABLED_BETWEEN_FORK_JOIN_ERROR

      public static final int DROP_ENABLED_BETWEEN_FORK_JOIN_ERROR
      See Also:
    • IMPATIENCE_ENABLED_BETWEEN_FORK_JOIN_ERROR

      public static final int IMPATIENCE_ENABLED_BETWEEN_FORK_JOIN_ERROR
      See Also:
    • BCMP_DIFFERENT_QUEUE_STRATEGIES_WARNING

      public static final int BCMP_DIFFERENT_QUEUE_STRATEGIES_WARNING
      See Also:
    • BCMP_FCFS_DIFFERENT_SERVICE_STRATEGIES_WARNING

      public static final int BCMP_FCFS_DIFFERENT_SERVICE_STRATEGIES_WARNING
      See Also:
    • BCMP_FCFS_NON_EXPONENTIAL_DISTRIBUTION_WARNING

      public static final int BCMP_FCFS_NON_EXPONENTIAL_DISTRIBUTION_WARNING
      See Also:
    • BCMP_FCFS_DIFFERENT_SERVICE_TIMES_WARNING

      public static final int BCMP_FCFS_DIFFERENT_SERVICE_TIMES_WARNING
      See Also:
    • BCMP_PS_NON_RATIONAL_DISTRIBUTION_WARNING

      public static final int BCMP_PS_NON_RATIONAL_DISTRIBUTION_WARNING
      See Also:
    • BCMP_LCFS_PR_NON_RATIONAL_DISTRIBUTION_WARNING

      public static final int BCMP_LCFS_PR_NON_RATIONAL_DISTRIBUTION_WARNING
      See Also:
    • BCMP_DELAY_NON_RATIONAL_DISTRIBUTION_WARNING

      public static final int BCMP_DELAY_NON_RATIONAL_DISTRIBUTION_WARNING
      See Also:
    • BCMP_STATE_DEPENDENT_ROUTING_STRATEGY_WARNING

      public static final int BCMP_STATE_DEPENDENT_ROUTING_STRATEGY_WARNING
      See Also:
    • BCMP_ASYMMETRIC_SCHEDULING_POLICY_WARNING

      public static final int BCMP_ASYMMETRIC_SCHEDULING_POLICY_WARNING
      See Also:
    • BCMP_PRIORITY_SCHEDULING_POLICY_WARNING

      public static final int BCMP_PRIORITY_SCHEDULING_POLICY_WARNING
      See Also:
    • FORK_WITHOUT_JOIN_WARNING

      public static final int FORK_WITHOUT_JOIN_WARNING
      See Also:
    • PARAMETRIC_ANALYSIS_MODEL_MODIFIED_WARNING

      public static final int PARAMETRIC_ANALYSIS_MODEL_MODIFIED_WARNING
      See Also:
    • PARAMETRIC_ANALYSIS_NOT_AVAILABLE_WARNING

      public static final int PARAMETRIC_ANALYSIS_NOT_AVAILABLE_WARNING
      See Also:
    • ZERO_POPULATION_WARNING

      public static final int ZERO_POPULATION_WARNING
      See Also:
    • ZERO_TOTAL_POPULATION_WARNING

      public static final int ZERO_TOTAL_POPULATION_WARNING
      See Also:
    • CLASS_SWITCH_BETWEEN_FORK_JOIN_WARNING

      public static final int CLASS_SWITCH_BETWEEN_FORK_JOIN_WARNING
      See Also:
    • CLASS_SWITCH_ROUTING_BETWEEN_FORK_JOIN_WARNING

      public static final int CLASS_SWITCH_ROUTING_BETWEEN_FORK_JOIN_WARNING
      See Also:
    • SCHEDULING_SAME_PRIORITY_WARNING

      public static final int SCHEDULING_SAME_PRIORITY_WARNING
      See Also:
    • TRANSITION_BETWEEN_FORK_JOIN_WARNING

      public static final int TRANSITION_BETWEEN_FORK_JOIN_WARNING
      See Also:
    • TRANSITION_CONSTANT_ENABLING_DEGREE_WARNING

      public static final int TRANSITION_CONSTANT_ENABLING_DEGREE_WARNING
      See Also:
    • TRANSITION_INVALID_INPUT_CONDITION_WARNING

      public static final int TRANSITION_INVALID_INPUT_CONDITION_WARNING
      See Also:
    • TRANSITION_NO_FIRING_OUTCOME_WARNING

      public static final int TRANSITION_NO_FIRING_OUTCOME_WARNING
      See Also:
  • Constructor Details

    • ModelChecker

      public ModelChecker(ClassDefinition class_def, StationDefinition station_def, SimulationDefinition simulation_def, BlockingRegionDefinition brd, boolean isToJMVA)
      Creates a new modelchecker
      Parameters:
      class_def - reference to class definition data structure
      station_def - reference to station definition data structure
      simulation_def - reference to simulation definition data structure
      brd - reference to blocking region definition data structure
      isToJMVA - true if model must be converted to jmva, false otherwise
  • Method Details

    • checkModel

      public void checkModel()
    • getClassModel

      public ClassDefinition getClassModel()
    • getStationModel

      public StationDefinition getStationModel()
    • getBlockingModel

      public BlockingRegionDefinition getBlockingModel()
    • isToJMVA

      public boolean isToJMVA()
    • isEverythingOkNormal

      public boolean isEverythingOkNormal()
    • isEverythingOkToJMVA

      public boolean isEverythingOkToJMVA()
    • isErrorFreeNormal

      public boolean isErrorFreeNormal()
    • isWarningFreeNormal

      public boolean isWarningFreeNormal()
    • isErrorFreeToJMVA

      public boolean isErrorFreeToJMVA()
    • isWarningFreeToJMVA

      public boolean isWarningFreeToJMVA()
    • isThereNoClassError

      public boolean isThereNoClassError()
      Returns true if no classes have been defined.
      Returns:
      true if no classes have been defined.
    • isThereNoStationError

      public boolean isThereNoStationError()
      Returns true if no stations have been defined.
      Returns:
      true if no stations have been defined.
    • isThereNoMeasureError

      public boolean isThereNoMeasureError()
      Returns true if no measures have been defined.
      Returns:
      true if no measures have been defined.
    • isThereOpenClassButNoSourceError

      public boolean isThereOpenClassButNoSourceError()
      Returns true if there is an open class but no sources or transitions have been defined.
      Returns:
      true if there is an open class but no sources or transitions have been defined.
    • isThereOpenClassButNoSinkError

      public boolean isThereOpenClassButNoSinkError()
      Returns true if there is an open class but no sinks or transitions have been defined.
      Returns:
      true if there is an open class but no sinks or transitions have been defined.
    • isThereSourceWithoutOpenClassError

      public boolean isThereSourceWithoutOpenClassError()
      Returns true if a source has no associated open classes.
      Returns:
      true if a source has no associated open classes.
    • isThereSinkButNoOpenClassError

      public boolean isThereSinkButNoOpenClassError()
      Returns true if there is a sink but no open classes have been defined.
      Returns:
      true if there is a sink but no open classes have been defined.
    • isThereNoReferenceStationError

      public boolean isThereNoReferenceStationError()
      Returns true if a class has no reference station.
      Returns:
      true if a class has no reference station.
    • isThereNoEssentialLinkError

      public boolean isThereNoEssentialLinkError()
      Returns true if a station has no essential links.
      Returns:
      true if a station has no essential links.
    • isThereInvalidMeasureError

      public boolean isThereInvalidMeasureError()
      Returns true if a measure has one or more 'null' field.
      Returns:
      true if a measure has one or more 'null' field.
    • isThereRedundantMeasureError

      public boolean isThereRedundantMeasureError()
      Returns true if the same measure is defined more than once.
      Returns:
      true if the same measure is defined more than once.
    • isThereInconsistentQueueStrategyError

      public boolean isThereInconsistentQueueStrategyError()
      Returns true if a station uses different queue strategies for classes within the same priority group.
      Returns:
      true if a station uses different queue strategies for classes within the same priority group.
    • isThereUnpredictableServiceError

      public boolean isThereUnpredictableServiceError()
      Returns true if a server uses SJF, LJF, SEPT or LEPT along with the load dependent service strategy.
      Returns:
      true if a server uses SJF, LJF, SEPT or LEPT along with the load dependent service strategy.
    • isThereJoinWithoutForkError

      public boolean isThereJoinWithoutForkError()
      Returns true if there is a join but no forks.
      Returns:
      true if there is a join but no forks.
    • isThereForkJoinRoutingError

      public boolean isThereForkJoinRoutingError()
      Returns true if tasks split from a job may be routed to different joins.
      Returns:
      true if tasks split from a job may be routed to different joins.
    • isThereEmptyBlockingRegionError

      public boolean isThereEmptyBlockingRegionError()
      Returns true if a blocking region has no stations.
      Returns:
      true if a blocking region has no stations.
    • isThereBlockingRegionCapacityOverloadError

      public boolean isThereBlockingRegionCapacityOverloadError()
      Returns true if the total preload in a blocking region exceeds the capacity constraints.
      Returns:
      true if the total preload in a blocking region exceeds the capacity constraints.
    • isThereBlockingRegionMemoryOverloadError

      public boolean isThereBlockingRegionMemoryOverloadError()
      Returns true if the total preload in a blocking region exceeds the memory constraints.
      Returns:
      true if the total preload in a blocking region exceeds the memory constraints.
    • isThereClassSwitchReferenceStationError

      public boolean isThereClassSwitchReferenceStationError()
      Returns true if a class switch is in the model and closed classes have different reference stations.
      Returns:
      true if a class switch is in the model and closed classes have different reference stations.
    • isThereZeroGuardStrategyError

      public boolean isThereZeroGuardStrategyError()
      Returns true if a station uses a Guard strategy with zero tasks for a class.
      Returns:
      true if a station uses a Guard strategy with zero tasks for a class.
    • isThereSemaphoreNotBetweenForkJoinError

      public boolean isThereSemaphoreNotBetweenForkJoinError()
      Returns true if a semaphore is not located between fork/join.
      Returns:
      true if a semaphore is not located between fork/join.
    • isThereScalerNotBetweenForkJoinError

      public boolean isThereScalerNotBetweenForkJoinError()
      Returns true if a scaler is not located between fork/join.
      Returns:
      true if a scaler is not located between fork/join.
    • isThereTransitionInfiniteEnablingDegreeError

      public boolean isThereTransitionInfiniteEnablingDegreeError()
      Returns true if a transition has an infinite enabling degree for a mode.
      Returns:
      true if a transition has an infinite enabling degree for a mode.
    • isThereDropEnabledBetweenForkJoinError

      public boolean isThereDropEnabledBetweenForkJoinError()
      Returns true if a station with a drop strategy for a class is located between fork/join.
      Returns:
      true if a station with a drop strategy for a class is located between fork/join.
    • isThereImpatienceEnabledBetweenForkJoinError

      public boolean isThereImpatienceEnabledBetweenForkJoinError()
      Returns true if a station with an impatience strategy is located between fork/join.
      Returns:
      true if a station with an impatience strategy is located between fork/join.
    • isThereBcmpDifferentQueueStrategiesWarning

      public boolean isThereBcmpDifferentQueueStrategiesWarning()
      Returns true if a server has different queue strategies.
      Returns:
      true if a server has different queue strategies.
    • isThereBcmpDifferentServiceStrategiesWarning

      public boolean isThereBcmpDifferentServiceStrategiesWarning()
      Returns true if an FCFS server has different service strategies.
      Returns:
      true if an FCFS server has different service strategies.
    • isThereBcmpFcfsNonExponentialDistributionWarning

      public boolean isThereBcmpFcfsNonExponentialDistributionWarning()
      Returns true if an FCFS server has a service time distribution that is not exponential.
      Returns:
      true if an FCFS server has a service time distribution that is not exponential.
    • isThereBcmpFcfsDifferentServiceTimesWarning

      public boolean isThereBcmpFcfsDifferentServiceTimesWarning()
      Returns true if an FCFS server has different mean service times.
      Returns:
      true if an FCFS server has different mean service times.
    • isThereBcmpPsNonRationalDistributionWarning

      public boolean isThereBcmpPsNonRationalDistributionWarning()
      Returns true if a PS server has a service time distribution for which the Laplace transform is not rational.
      Returns:
      true if a PS server has a service time distribution for which the Laplace transform is not rational.
    • isThereBcmpLcfsPrNonRationalDistributionWarning

      public boolean isThereBcmpLcfsPrNonRationalDistributionWarning()
      Returns true if an LCFS-PR server has a service time distribution for which the Laplace transform is not rational.
      Returns:
      true if an LCFS-PR server has a service time distribution for which the Laplace transform is not rational.
    • isThereBcmpDelayNonRationalDistributionWarning

      public boolean isThereBcmpDelayNonRationalDistributionWarning()
      Returns true if a delay has a service time distribution for which the Laplace transform is not rational.
      Returns:
      true if a delay has a service time distribution for which the Laplace transform is not rational.
    • isThereBcmpStateDependentRoutingStrategyWarning

      public boolean isThereBcmpStateDependentRoutingStrategyWarning()
      Returns true if a station has a routing strategy dependent on the state of the model.
      Returns:
      true if a station has a routing strategy dependent on the state of the model.
    • isThereBcmpAsymmetricSchedulingPolicyWarning

      public boolean isThereBcmpAsymmetricSchedulingPolicyWarning()
      Returns true if a server has a scheduling policy other than PS, FCFS or RAND.
      Returns:
      true if a server has a scheduling policy other than PS, FCFS or RAND.
    • isThereBcmpPrioritySchedulingPolicyWarning

      public boolean isThereBcmpPrioritySchedulingPolicyWarning()
      Returns:
      true if a server has a priority scheduling policy
    • isThereNoOptionalLinkWarning

      public boolean isThereNoOptionalLinkWarning()
      Returns true if a station has no optional links.
      Returns:
      true if a station has no optional links.
    • isThereForkWithoutJoinWarning

      public boolean isThereForkWithoutJoinWarning()
      Returns true if there is a fork but no joins.
      Returns:
      true if there is a fork but no joins.
    • isThereParametricAnalysisModelModifiedWarning

      public boolean isThereParametricAnalysisModelModifiedWarning()
      Returns true if the parametric analysis model becomes inconsistent with the simulation model.
      Returns:
      true if the parametric analysis model becomes inconsistent with the simulation model.
    • isThereParametricAnalysisNotAvailableWarning

      public boolean isThereParametricAnalysisNotAvailableWarning()
      Returns true if a parametric analysis model was defined but no parametric analysis is available.
      Returns:
      true if a parametric analysis model was defined but no parametric analysis is available.
    • isThereZeroPopulationWarning

      public boolean isThereZeroPopulationWarning()
      Returns true if the population of a closed class is zero.
      Returns:
      true if the population of a closed class is zero.
    • isThereZeroTotalPopulationWarning

      public boolean isThereZeroTotalPopulationWarning()
      Returns true if the total population of closed classes is zero.
      Returns:
      true if the total population of closed classes is zero.
    • isThereClassSwitchBetweenForkJoinWarning

      public boolean isThereClassSwitchBetweenForkJoinWarning()
      Returns true if a class switch is located between fork/join.
      Returns:
      true if a class switch is located between fork/join.
    • isThereClassSwitchRoutingBetweenForkJoinWarning

      public boolean isThereClassSwitchRoutingBetweenForkJoinWarning()
      Returns true if a station with a class switch routing strategy is located between fork/join.
      Returns:
      true if a station uses a class switch routing strategy is located between fork/join.
    • isThereSchedulingSamePriorityWarning

      public boolean isThereSchedulingSamePriorityWarning()
      Returns true if a station uses priority scheduling but all the classes have the same priority.
      Returns:
      true if a station uses priority scheduling but all the classes have the same priority.
    • isThereTransitionBetweenForkJoinWarning

      public boolean isThereTransitionBetweenForkJoinWarning()
      Returns true if a transition is located between fork/join.
      Returns:
      true if a transition is located between fork/join.
    • isThereTransitionConstantEnablingDegreeWarning

      public boolean isThereTransitionConstantEnablingDegreeWarning()
      Returns true if a transition has a constant enabling degree for a mode.
      Returns:
      true if a transition has a constant enabling degree for a mode.
    • isThereTransitionInvalidInputConditionWarning

      public boolean isThereTransitionInvalidInputConditionWarning()
      Returns true if a transition has invalid input condition for a mode.
      Returns:
      true if a transition has invalid input condition for a mode.
    • isThereTransitionNoFiringOutcomeWarning

      public boolean isThereTransitionNoFiringOutcomeWarning()
      Returns true if a transition has no firing outcome for a mode.
      Returns:
      true if a transition has no firing outcome for a mode.
    • getSourcesWithoutOpenClass

      public Vector<Object> getSourcesWithoutOpenClass()
      Returns a Vector<Object> containing the keys of sources without an associated open class.
      Returns:
      a Vector<Object> containing the keys of sources without an associated open class.
    • getClassesWithoutReferenceStation

      public Vector<Object> getClassesWithoutReferenceStation()
      Returns a Vector<Object> containing the keys of classes without a reference station.
      Returns:
      a Vector<Object> containing the keys of classes without a reference station.
    • getStationsWithoutEssentialLink

      public Vector<Object> getStationsWithoutEssentialLink()
      Returns a Vector<Object> containing the keys of stations without an essential link.
      Returns:
      a Vector<Object> containing the keys of stations without an essential link.
    • getStationsWithInconsistentQueueStrategies

      public Vector<Object> getStationsWithInconsistentQueueStrategies()
      Returns a Vector<Object> containing the keys of stations using different queue strategies for classes within the same priority group.
      Returns:
      a Vector<Object> containing the keys of stations using different queue strategies for classes within the same priority group.
    • getServersWithUnpredictableService

      public Vector<Object> getServersWithUnpredictableService()
      Returns a Vector<Object> containing the keys of servers using SJF, LJF, SEPT or LEPT along with the load dependent service strategy.
      Returns:
      a Vector<Object> containing the keys of servers using SJF, LJF, SEPT or LEPT along with the load dependent service strategy.
    • getBlockingRegionsWithCapacityOverload

      public Vector<Object> getBlockingRegionsWithCapacityOverload()
      Returns a Vector<Object> containing the keys of blocking regions in which the total preload exceeds the capacity constraints.
      Returns:
      a Vector<Object> containing the keys of blocking regions in which the total preload exceeds the capacity constraints.
    • getBlockingRegionsWithMemoryOverload

      public Vector<Object> getBlockingRegionsWithMemoryOverload()
      Returns a Vector<Object> containing the keys of blocking regions in which the total preload exceeds the memory constraints.
      Returns:
      a Vector<Object> containing the keys of blocking regions in which the total preload exceeds the memory constraints.
    • getStationsWithZeroGuardStrategy

      public HashMap<Object, Vector<Object>> getStationsWithZeroGuardStrategy()
      Returns a HashMap where the key is the key of a station. For each station that uses a Guard strategy with zero tasks for a class, it contains a Vector<Object> with the keys of classes for which the problem occurs.
      Returns:
      a HashMap where the key is the key of a station.
    • getSemaphoresNotBetweenForkJoin

      public Vector<Object> getSemaphoresNotBetweenForkJoin()
      Returns a Vector<Object> containing the keys of semaphores not located between fork/join.
      Returns:
      a Vector<Object> containing the keys of semaphores not located between fork/join.
    • getScalersNotBetweenForkJoin

      public Vector<Object> getScalersNotBetweenForkJoin()
      Returns a Vector<Object> containing the keys of scalers not located between fork/join.
      Returns:
      a Vector<Object> containing the keys of scalers not located between fork/join.
    • getTransitionsWithInfiniteEnablingDegree

      public Vector<Object> getTransitionsWithInfiniteEnablingDegree()
      Returns a Vector<Object> containing the keys of transitions with an infinite enabling degree for a mode.
      Returns:
      a Vector<Object> containing the keys of transitions with an infinite enabling degree for a mode.
    • getStationsWithDropStrategyBetweenForkJoin

      public Vector<Object> getStationsWithDropStrategyBetweenForkJoin()
      Returns a Vector<Object> containing the keys of stations using a drop strategy for a class but located between fork/join. Returns a Vector<Object> containing the keys of stations using a drop strategy for a class but located between fork/join.
    • getStationsWithImpatienceStrategyBetweenForkJoin

      public Vector<Object> getStationsWithImpatienceStrategyBetweenForkJoin()
      Returns a Vector<Object> containing the keys of stations using an impatience strategy for a class but located between fork/join. Returns a Vector<Object> containing the keys of stations using an impatience strategy for a class but located between fork/join.
    • getBcmpServersWithDifferentQueueStrategies

      public Vector<Object> getBcmpServersWithDifferentQueueStrategies()
      Returns a Vector<Object> containing the keys of servers with different queue strategies.
      Returns:
      a Vector<Object> containing the keys of servers with different queue strategies.
    • getBcmpFcfsServersWithDifferentServiceStrategies

      public Vector<Object> getBcmpFcfsServersWithDifferentServiceStrategies()
      Returns a Vector<Object> containing the keys of FCFS servers with different service strategies.
      Returns:
      a Vector<Object> containing the keys of FCFS servers with different service strategies.
    • getBcmpFcfsServersWithNonExponentialDistribution

      public Vector<Object> getBcmpFcfsServersWithNonExponentialDistribution()
      Returns a Vector<Object> containing the keys of FCFS servers with a service time distribution that is not exponential.
      Returns:
      a Vector<Object> containing the keys of FCFS servers with a service time distribution that is not exponential.
    • getBcmpFcfsServersWithDifferentServiceTimes

      public Vector<Object> getBcmpFcfsServersWithDifferentServiceTimes()
      Returns a Vector<Object> containing the keys of FCFS servers with different mean service times.
      Returns:
      a Vector<Object> containing the keys of FCFS servers with different mean service times.
    • getBcmpDelaysWithNonRationalDistribution

      public Vector<Object> getBcmpDelaysWithNonRationalDistribution()
      Returns a Vector<Object> containing the keys of delays with a service time distribution for which the Laplace transform is not rational.
      Returns:
      a Vector<Object> containing the keys of delays with a service time distribution for which the Laplace transform is not rational.
    • getBcmpStationsWithStateDependentRoutingStrategy

      public Vector<Object> getBcmpStationsWithStateDependentRoutingStrategy()
      Returns a Vector<Object> containing the keys of stations with a routing strategy dependent on the state of the model.
      Returns:
      a Vector<Object> containing the keys of stations with a routing strategy dependent on the state of the model.
    • getBcmpServersWithAsymmetricSchedulingPolicy

      public Vector<Object> getBcmpServersWithAsymmetricSchedulingPolicy()
      Returns a Vector<Object> containing the keys of servers with a scheduling policy other than PS, FCFS or RAND.
      Returns:
      a Vector<Object> containing the keys of servers with a scheduling policy other than PS, FCFS or RAND.
    • getBcmpServersWithPrioritySchedulingPolicy

      public Vector<Object> getBcmpServersWithPrioritySchedulingPolicy()
      Returns:
      a Vector<Object> containing the keys of servers with a priority scheduling policy
    • getStationsWithoutOptionalLink

      public Vector<Object> getStationsWithoutOptionalLink()
      Returns a Vector<Object> containing the keys of stations without an optional link.
      Returns:
      a Vector<Object> containing the keys of stations without an optional link.
    • getClosedClassesWithZeroPopulation

      public Vector<Object> getClosedClassesWithZeroPopulation()
      Returns a Vector<Object> containing the keys of closed classes with zero population.
      Returns:
      a Vector<Object> containing the keys of closed classes with zero population.
    • getClassSwitchesBetweenForkJoin

      public Vector<Object> getClassSwitchesBetweenForkJoin()
      Returns a Vector<Object> containing the keys of class switches located between fork/join.
      Returns:
      a Vector<Object> containing the keys of class switches located between fork/join.
    • getStationsWithClassSwitchRoutingBetweenForkJoin

      public Vector<Object> getStationsWithClassSwitchRoutingBetweenForkJoin()
      Returns a Vector<Object> containing the keys of stations using a class switch routing strategy but located between fork/join.
      Returns:
      a Vector<Object> containing the keys of stations using a class switch routing strategy but located between fork/join.
    • getStationsWithPriorityScheduling

      public Vector<Object> getStationsWithPriorityScheduling()
      Returns a Vector<Object> containing the keys of stations using priority scheduling when all the classes have the same priority.
      Returns:
      a Vector<Object> containing the keys of stations using priority scheduling when all the classes have the same priority.
    • getTransitionsBetweenForkJoin

      public Vector<Object> getTransitionsBetweenForkJoin()
      Returns a Vector<Object> containing the keys of transitions located between fork/join.
      Returns:
      a Vector<Object> containing the keys of transitions located between fork/join.
    • getTransitionsWithConstantEnablingDegree

      public Vector<Object> getTransitionsWithConstantEnablingDegree()
      Returns a Vector<Object> containing the keys of transitions with a constant enabling degree for a mode.
      Returns:
      a Vector<Object> containing the keys of transitions with a constant enabling degree for a mode.
    • getTransitionsWithInvalidInputCondition

      public Vector<Object> getTransitionsWithInvalidInputCondition()
      Returns a Vector<Object> containing the keys of transitions with invalid input condition for a mode.
      Returns:
      a Vector<Object> containing the keys of transitions with invalid input condition for a mode.
    • getTransitionsWithoutFiringOutcome

      public Vector<Object> getTransitionsWithoutFiringOutcome()
      Returns a Vector<Object> containing the keys of transitions without firing outcome for a mode.
      Returns:
      a Vector<Object> containing the keys of transitions without firing outcome for a mode.
    • deleteRedundantMeasures

      public void deleteRedundantMeasures()
      Deletes all redundant measures.
    • deleteEmptyBlockingRegions

      public void deleteEmptyBlockingRegions()
      Deletes all empty blocking regions.