class Puppet::Pops::Types::PStructElement
@api public
@api public
Attributes
key_type[RW]
value_type[RW]
Public Class Methods
new(key_type, value_type)
click to toggle source
# File lib/puppet/pops/types/types.rb 1945 def initialize(key_type, value_type) 1946 @key_type = key_type 1947 @value_type = value_type 1948 end
register_ptype(loader, ir)
click to toggle source
# File lib/puppet/pops/types/types.rb 1922 def self.register_ptype(loader, ir) 1923 @type = Pcore::create_object_type(loader, ir, self, 'Pcore::StructElement', nil, 1924 'key_type' => PTypeType::DEFAULT, 1925 'value_type' => PTypeType::DEFAULT) 1926 end
Public Instance Methods
<=>(o)
click to toggle source
# File lib/puppet/pops/types/types.rb 1966 def <=>(o) 1967 self.name <=> o.name 1968 end
==(o)
click to toggle source
# File lib/puppet/pops/types/types.rb 1974 def ==(o) 1975 self.class == o.class && value_type == o.value_type && key_type == o.key_type 1976 end
accept(visitor, guard)
click to toggle source
# File lib/puppet/pops/types/types.rb 1930 def accept(visitor, guard) 1931 @key_type.accept(visitor, guard) 1932 @value_type.accept(visitor, guard) 1933 end
eql?(o)
click to toggle source
# File lib/puppet/pops/types/types.rb 1970 def eql?(o) 1971 self == o 1972 end
generalize()
click to toggle source
# File lib/puppet/pops/types/types.rb 1950 def generalize 1951 gv_type = @value_type.generalize 1952 @value_type.equal?(gv_type) ? self : PStructElement.new(@key_type, gv_type) 1953 end
hash()
click to toggle source
# File lib/puppet/pops/types/types.rb 1935 def hash 1936 value_type.hash ^ key_type.hash 1937 end
name()
click to toggle source
# File lib/puppet/pops/types/types.rb 1939 def name 1940 k = key_type 1941 k = k.optional_type if k.is_a?(POptionalType) 1942 k.value 1943 end
normalize(guard = nil)
click to toggle source
# File lib/puppet/pops/types/types.rb 1955 def normalize(guard = nil) 1956 nv_type = @value_type.normalize(guard) 1957 @value_type.equal?(nv_type) ? self : PStructElement.new(@key_type, nv_type) 1958 end
replace_value_type(new_type)
click to toggle source
Special boostrap method to overcome the hen and egg problem with the Object initializer that contains types that are derived from Object (such as Annotation)
@api private
# File lib/puppet/pops/types/types.rb 1982 def replace_value_type(new_type) 1983 @value_type = new_type 1984 end
resolve(loader)
click to toggle source
# File lib/puppet/pops/types/types.rb 1960 def resolve(loader) 1961 rkey_type = @key_type.resolve(loader) 1962 rvalue_type = @value_type.resolve(loader) 1963 rkey_type.equal?(@key_type) && rvalue_type.equal?(@value_type) ? self : self.class.new(rkey_type, rvalue_type) 1964 end