class Puppet::Pops::Binder::InjectorEntry

Represents an entry in the injectors internal data.

@api public

Attributes

binding[R]

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

cached_producer[RW]

@api private

precedence[R]

@return [Object] An opaque (comparable) object representing the precedence @api public

resolved[RW]

@api private

Public Instance Methods

<=>(injector_entry) click to toggle source

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

# File lib/puppet/pops/binder/injector_entry.rb, line 54
def <=> (injector_entry)
  precedence <=> injector_entry.precedence
end
is_abstract?() click to toggle source
# File lib/puppet/pops/binder/injector_entry.rb, line 41
def is_abstract?
  binding.abstract
end
is_final?() click to toggle source
# File lib/puppet/pops/binder/injector_entry.rb, line 45
def is_final?
  binding.final
end
is_resolved?() click to toggle source

The binding is resolved if it is non-override, or if the override has been resolved @api private

# File lib/puppet/pops/binder/injector_entry.rb, line 37
def is_resolved?()
  !binding.override || resolved
end
mark_override_resolved() click to toggle source

Marks an overriding entry as resolved (if not an overriding entry, the marking has no effect). @api private

# File lib/puppet/pops/binder/injector_entry.rb, line 30
def mark_override_resolved()
  @resolved = true
end

Public Class Methods

new(binding, precedence = 0) click to toggle source

@api private

# File lib/puppet/pops/binder/injector_entry.rb, line 21
def initialize(binding, precedence = 0)
  @precedence = precedence.freeze
  @binding = binding
  @cached_producer = nil
end