Class: Sbuilder::DomainValue

Inherits:
Domain
  • Object
show all
Includes:
Utils::MyLogger
Defined in:
lib/sbuilder/domain_value.rb

Constant Summary collapse

PROGNAME =

mixer

nil

Constants included from Utils::MyLogger

Utils::MyLogger::LOGFILE

Instance Attribute Summary collapse

Attributes inherited from Domain

#extension, #name

Instance Method Summary collapse

Methods included from Utils::MyLogger

#getLogger, #logfile

Methods inherited from Domain

#domain_range, #domain_values, #includeNil, #nilValue, #numberOfElements, #render_entry, #render_values, #setExtension, #setName, #stringize, #tlaBaseType, #to_s

Constructor Details

#initialize(options = {}) ⇒ DomainValue

Returns a new instance of DomainValue.



14
15
16
17
18
19
20
21
# File 'lib/sbuilder/domain_value.rb', line 14

def initialize( options = {} )
  super( options )
  @logger = getLogger( PROGNAME, options )
  @logger.debug( "#{__method__} initialized" )
  
  # default values one
  @values = []
end

Instance Attribute Details

#valuesObject (readonly)

Returns the value of attribute values.



6
7
8
# File 'lib/sbuilder/domain_value.rb', line 6

def values
  @values
end

Instance Method Details

#addValue(value) ⇒ Object


build



76
77
78
79
80
# File 'lib/sbuilder/domain_value.rb', line 76

def addValue( value )
  @logger.debug( "#{__method__} #{name}: added value #{value}" )      
  @values << value
  self
end

#cardinalityObject


cardinality overriden



26
27
28
# File 'lib/sbuilder/domain_value.rb', line 26

def cardinality
  @values.size
end

#domain_entry(i) ⇒ String

Returns value in location ‘i-1` ie. indexing from 1,2,3,.. when i:integer value with the given name when i:string.

Parameters:

  • i (integer|string)

    domain entry to access

Returns:

  • (String)

    value in location ‘i-1` ie. indexing from 1,2,3,.. when i:integer value with the given name when i:string



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/sbuilder/domain_value.rb', line 34

def domain_entry( i )
  case i
  when Integer
    if i<1 || i>cardinality
      msg = <<-EOS
      Error in domain index #{i} 

      Valid domain index: 1..#{cardinality}
      EOS
      raise DomainException.new, msg
    end
    @values[i-1]        
  when String
    ret = @values.select { |val| val == i }.first
    if ret.nil?
      raise DomainException.new <<-EOS
      Unknown domain entry '#{i}'

      Known domain entries: #{values.join(',')}
      EOS
    end
    ret
  else
    raise DomainException.new <<-EOS
    Unknown type #{i.class} in 'domain_entry' #{name}.

    Support only for Integer, String
    EOS
  end
end