Class: Puppet::Pops::Binder::InjectorEntry

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet/pops/binder/injector_entry.rb

Overview

Represents an entry in the injectors internal data.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(binding, precedence = 0) ⇒ InjectorEntry

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of InjectorEntry.



21
22
23
24
25
# File 'lib/puppet/pops/binder/injector_entry.rb', line 21

def initialize(binding, precedence = 0)
  @precedence = precedence.freeze
  @binding = binding
  @cached_producer = nil
end

Instance Attribute Details

#bindingPuppet::Pops::Binder::Bindings::Binding (readonly)

Returns The binding for this entry.

Returns:



12
13
14
# File 'lib/puppet/pops/binder/injector_entry.rb', line 12

def binding
  @binding
end

#cached_producerObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



18
19
20
# File 'lib/puppet/pops/binder/injector_entry.rb', line 18

def cached_producer
  @cached_producer
end

#precedenceObject (readonly)

Returns An opaque (comparable) object representing the precedence.

Returns:

  • (Object)

    An opaque (comparable) object representing the precedence



8
9
10
# File 'lib/puppet/pops/binder/injector_entry.rb', line 8

def precedence
  @precedence
end

#resolvedObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



15
16
17
# File 'lib/puppet/pops/binder/injector_entry.rb', line 15

def resolved
  @resolved
end

Instance Method Details

#<=>(injector_entry) ⇒ Integer

Compares against another InjectorEntry by comparing precedence.

Parameters:

Returns:

  • (Integer)

    1, if this entry has higher precedence, 0 if equal, and -1 if given entry has higher precedence.



54
55
56
# File 'lib/puppet/pops/binder/injector_entry.rb', line 54

def <=> (injector_entry)
  precedence <=> injector_entry.precedence
end

#is_abstract?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/puppet/pops/binder/injector_entry.rb', line 41

def is_abstract?
  binding.abstract
end

#is_final?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/puppet/pops/binder/injector_entry.rb', line 45

def is_final?
  binding.final
end

#is_resolved?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

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

Returns:

  • (Boolean)


37
38
39
# File 'lib/puppet/pops/binder/injector_entry.rb', line 37

def is_resolved?()
  !binding.override || resolved
end

#mark_override_resolvedObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

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



30
31
32
# File 'lib/puppet/pops/binder/injector_entry.rb', line 30

def mark_override_resolved()
  @resolved = true
end