module Sbuilder # Abstract base class for parameter sets (definitions, # interfaces). Provides common method to add parameters to the # parameter set. # # @attr parameters [Sbuilder:Parameter::Array] array of parameters # class ParamSetRoot # @# @!attribute [String] sourceModule pointer to to source module # where defined attr_accessor :sourceModule # @# @!attribute [int] sourceLine line number inf {#sourceModule} attr_accessor :sourceLine # @# @!attribute [int] sourceColumn attr_accessor :sourceColumn attr_reader :parameters # array of parameters:Parameter # ------------------------------------------------------------------ # @!group Constructor and Object Initialize # constructor for the abstact class def initialize( options = {} ) @parameters = [] end # @!endgroup # ------------------------------------------------------------------ # @!group Static services def self.id2name(id) id. gsub( /\//, "_" ). # / --> _ gsub( /\(/, "_" ). # ( --> _ gsub( /\{/, "_" ). # { --> _ gsub( /\}/, "_" ). # } --> _ gsub( /\./, "_" ). # . --> _ gsub( /\)/, "_" ) # ) --> _ end # @!endgroup # ------------------------------------------------------------------ # @!group Configure Model Object Relationships # Add a 'parameter' to known parameters in the parameter set. # # @param param[Sbuilder::parameter] parameter to add def addParameter( param ) parameters << param self end # @param sourceModule [String] pointer to module defining # parameter set # # @param sourceLine [int] sourceLine line number in {#sourceModule} def setSourceLink(sourceModule, sourceLine, sourceColumn) self.sourceModule = sourceModule self.sourceLine = sourceLine self.sourceColumn = sourceColumn end # @param [String] name to look # # @return [Sbuilder::Parameter|nil] return parameter with name, nil if not found def lookupParameter( name ) parameters.each do |parameter| return parameter if parameter.name == name end # not found return nil end # @!endgroup end # class end