Class: Flow
- Inherits:
-
Object
- Object
- Flow
- Includes:
- SerializeBehavior
- Defined in:
- lib/network_entities/abstracts/flow.rb
Instance Attribute Summary collapse
-
#distribution_rate ⇒ Object
Returns the value of attribute distribution_rate.
-
#distribution_size ⇒ Object
Returns the value of attribute distribution_size.
-
#id ⇒ Object
Returns the value of attribute id.
-
#paths ⇒ Object
Returns the value of attribute paths.
-
#priority ⇒ Object
Returns the value of attribute priority.
Instance Method Summary collapse
-
#initialize(id, priority, paths, distribution_rate, distribution_size) ⇒ Flow
constructor
A new instance of Flow.
Methods included from SerializeBehavior
#transform_to_output_representation, #validate_concrete_builder
Constructor Details
#initialize(id, priority, paths, distribution_rate, distribution_size) ⇒ Flow
Returns a new instance of Flow.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/network_entities/abstracts/flow.rb', line 14 def initialize(id, priority, paths, distribution_rate, distribution_size) raise "Invalid 'priority' argument received. Priority must be a number, #{priority} was received" unless priority.is_a? Integer raise "Invalid 'paths' argument received. 'paths' must be an instance of Arry class, however the path received has class #{paths.class}" unless paths.is_a? Array raise "Invalid 'distribution_rate' received. Distribution rate cannot be nil" unless distribution_rate raise "Invalid 'distribution_size' received. Distribution size cannot be nil" unless distribution_size raise "Invalid 'distribution_rate' #{distribution_rate}. It is expected that the rate is an instance of a distribution" unless [ConstantDistribution, ExponentialDistribution, NormalDistribution, ParetoDistribution, SplitDistribution, FelixDistribution].include? distribution_rate.class raise "Invalid 'distribution_size' #{distribution_size}. It is expected that the size is an instance of a distribution" unless [ConstantDistribution, ExponentialDistribution, NormalDistribution, ParetoDistribution, SplitDistribution, FelixDistribution].include? distribution_size.class @id = id @priority = priority @paths = paths @distribution_rate = distribution_rate @distribution_size = distribution_size end |
Instance Attribute Details
#distribution_rate ⇒ Object
Returns the value of attribute distribution_rate.
12 13 14 |
# File 'lib/network_entities/abstracts/flow.rb', line 12 def distribution_rate @distribution_rate end |
#distribution_size ⇒ Object
Returns the value of attribute distribution_size.
12 13 14 |
# File 'lib/network_entities/abstracts/flow.rb', line 12 def distribution_size @distribution_size end |
#id ⇒ Object
Returns the value of attribute id.
12 13 14 |
# File 'lib/network_entities/abstracts/flow.rb', line 12 def id @id end |
#paths ⇒ Object
Returns the value of attribute paths.
12 13 14 |
# File 'lib/network_entities/abstracts/flow.rb', line 12 def paths @paths end |
#priority ⇒ Object
Returns the value of attribute priority.
12 13 14 |
# File 'lib/network_entities/abstracts/flow.rb', line 12 def priority @priority end |