Class: Sbuilder::DomainValue

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

Constant Summary collapse

PROGNAME =

mixer

"ValueDomain"

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_values, #setExtension, #setName, #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



68
69
70
71
72
# File 'lib/sbuilder/domain_value.rb', line 68

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_entriesObject


return array of strings for entries in domain - overides super



60
61
62
63
# File 'lib/sbuilder/domain_value.rb', line 60

def domain_entries
  @logger.debug( "#{__method__} #{name}: added domain_entries #{values.join(',')}" )            
  values
end

#domain_entry(i) ⇒ Object

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:

  • 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
# File 'lib/sbuilder/domain_value.rb', line 34

def domain_entry( i )
  case i
  when Integer
    @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
    return ret
  else
    raise DomainException.new <<-EOS
    Unknown type #{i.class} in 'domain_entry' #{name}.

    Support only for Integer, String
    EOS
  end
end