Sha256: d3e92d43af7c4bae56654a4dfe45f4557e7339682b5fc82f7573fdc3b18b520a

Contents?: true

Size: 1.31 KB

Versions: 14

Compression:

Stored size: 1.31 KB

Contents

# Represents an entry in the injectors internal data.
#
# @api public
#
class Puppet::Pops::Binder::InjectorEntry
  # @return [Object] An opaque object representing the precedence
  # @api public
  attr_reader :precedence

  # @return [Puppet::Pops::Binder::Bindings::Binding] The binding for this entry
  # @api public
  attr_reader :binding

  # @api private
  attr_accessor :resolved

  # @api private
  attr_accessor :cached_producer

  # @api private
  def initialize(precedence, binding)
    @precedence = precedence.freeze
    @binding = binding
    @cached_producer = nil
  end

  # Marks an overriding entry as resolved (if not an overriding entry, the marking has no effect).
  # @api private
  #
  def mark_override_resolved()
    @resolved = true
  end

  # The binding is resolved if it is non-override, or if the override has been resolved
  # @api private
  #
  def is_resolved?()
    !binding.override || resolved
  end

  def is_abstract?
    binding.abstract
  end

  # Compares against another InjectorEntry by comparing precedence.
  # @param injector_entry [InjectorEntry] entry to compare against.
  # @return [Integer] 1, if this entry has higher precedence, 0 if equal, and -1 if given entry has higher precedence.
  # @api public
  #
  def <=> (injector_entry)
    precedence <=> injector_entry.precedence
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
puppet-3.4.3 lib/puppet/pops/binder/injector_entry.rb
puppet-3.4.2 lib/puppet/pops/binder/injector_entry.rb
puppet-3.4.1 lib/puppet/pops/binder/injector_entry.rb
puppet-3.4.0 lib/puppet/pops/binder/injector_entry.rb
puppet-3.4.0.rc2 lib/puppet/pops/binder/injector_entry.rb
puppet-3.4.0.rc1 lib/puppet/pops/binder/injector_entry.rb
puppet-3.3.2 lib/puppet/pops/binder/injector_entry.rb
puppet-3.3.1 lib/puppet/pops/binder/injector_entry.rb
puppet-3.3.1.rc3 lib/puppet/pops/binder/injector_entry.rb
puppet-3.3.1.rc2 lib/puppet/pops/binder/injector_entry.rb
puppet-3.3.1.rc1 lib/puppet/pops/binder/injector_entry.rb
puppet-3.3.0 lib/puppet/pops/binder/injector_entry.rb
puppet-3.3.0.rc3 lib/puppet/pops/binder/injector_entry.rb
puppet-3.3.0.rc2 lib/puppet/pops/binder/injector_entry.rb