module Sbuilder class ParameterContainer < Parameter attr_reader :domainElement # access configured domain Id # TODO: refractor domainElement to a sub-class attr_reader :parameter # parameter-->domain-->(check cardinality)->domainElement attr_reader :parameters # array of hash names: modeling hash attr_reader :rows # modeling array # ------------------------------------------------------------------ # mixer PROGNAME = nil # progname for logger default class name include Sbuilder::Utils::MyLogger # mix logger # ------------------------------------------------------------------ # constrcutore def initialize( options = {} ) super( options ) @logger = getLogger( PROGNAME, options ) @logger.debug( "#{__method__} initialized" ) end # ------------------------------------------------------------------ # build def setDomainElement( domainElement ) @domainElement = domainElement self end # set a reference def setParameter( parameter ) @parameter = parameter self end # add to collection def addParameter( parameter ) @parameters = [] if @parameters.nil? @parameters << parameter self end # add to collection def addParameter( parameter ) @parameters = [] if @parameters.nil? @parameters << parameter self end # add to collection def addRow( parameter ) @rows = [] if @rows.nil? @rows << parameter self end # ------------------------------------------------------------------ # genarate phase def do_parameter_definition( model ) # ret = parameters.inject( [] ) { |arr, parameter| arr << { :parameter_name[parameter.name] = "value for #{parameter.name}" } ret end end end