Sha256: cdca331dd6d1519431efb937c554e6f2d2dfaa4d040d3cee1861df07c8fc2c99

Contents?: true

Size: 1.71 KB

Versions: 1

Compression:

Stored size: 1.71 KB

Contents

module Sbuilder

  class Parameter_Ref < Parameter

    attr_reader   :reference                  # name of paramSet being pointed

    # ------------------------------------------------------------------
    # mixer
    PROGNAME = "ParameterRef"                 # progname for logger
    include Sbuilder::Utils::MyLogger         # mix logger

    # ------------------------------------------------------------------
    # constrcutore
    def initialize( options = {} )
      super( options )
      @logger = getLogger( PROGNAME, options )
      @logger.info( "#{__method__} initialized" )
    end

    def self.create( name, paramSetName )
      p = Parameter_Ref.new
      p.setName( name )
      p.setReference( paramSetName )
    end
    

    # ------------------------------------------------------------------
    # configure
    def setReference( paramSetName )
      @reference = paramSetName
      self
    end

    # is reference && valid reference configured
    def isReference
      ! @reference.nil?
    end

    # ------------------------------------------------------------------
    # resolve

    # resolve parametSet reference in 'model'
    def getResolvedReference( model )
      model.getParamset( reference )
    end


    # ------------------------------------------------------------------
    # build model

    def doGetType
      reference
    end

    def do_parameter_definition( model )
      {
        # :name => name,
        :type => reference,
        :namespace => Constants::TYPE_NAMESPACE_REF,   # in TLA code prefix with 't_'
        :composite_parameters => getResolvedReference(model).parameter_definitions( model ),
      }
    end

    def to_s
      reference ? reference.to_s : ""
    end

  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tla-sbuilder-0.1.0 lib/sbuilder/parameter_ref.rb