Class: Mirah::JVM::Types::GenericType

Inherits:
Type
  • Object
show all
Includes:
GenericType
Defined in:
lib/mirah/jvm/types/generic_type.rb

Direct Known Subclasses

TypeDefGeneric

Constant Summary

Constants included from Logging::Logged

Logging::Logged::VLEVELS

Instance Attribute Summary collapse

Attributes inherited from Type

#inner_class, #name, #type_system

Instance Method Summary collapse

Methods inherited from Type

#abstract?, #add_compiled_macro, #add_enumerable_macros, #add_intrinsics, #add_method, #add_method_listener, #aload, #ancestors_and_interfaces, #array?, #array_type, #assignableFrom, #astore, #class_id, #compatible?, #component_type, #constructor, #declared_class_methods, #declared_constructors, #declared_instance_methods, #declared_intrinsics, #dynamic?, #error?, #expand_each, #field_getter, #field_setter, #find_callable_macros, #find_callable_macros2, #find_callable_methods, #find_callable_methods2, #find_callable_static_methods, #flags, #full_name, #getAsmType, #getDeclaredField, #getDeclaredFields, #get_method, #hasStaticField, #include, #init_value, #inner_class_getter, #interface?, #internal_name, #intrinsics, #isAnnotation, #isArray, #isBlock, #isEnum, #isError, #isGeneric, #isMeta, #isPrimitive, #is_parent, #iterable?, #java_method, #load, #load_extensions, #macro, #macros, #matchesAnything, #meta, #meta?, #method_listeners, #method_updated, #newarray, #pop, #prefix, #primitive?, #read_macrodef_annotation, #retention, #return, #store, #to_s, #type_parameters, #unmeta, #void?, #wide?, #widen

Methods included from Logging::Logged

#error, #info, #log, #logger, #logger_name, #logging?, #vlog, #warning

Methods included from MethodLookup

#each_is_exact, #each_is_exact_or_subtype_or_convertible, #field_lookup, #find_jls, #find_jls2, #find_method, #find_method2, #inner_class, #is_more_specific?, #phase1, #phase2, #phase3, #primitive_convertible?

Constructor Details

#initialize(ungeneric) ⇒ GenericType

Returns a new instance of GenericType.



11
12
13
14
# File 'lib/mirah/jvm/types/generic_type.rb', line 11

def initialize(ungeneric)
  super(ungeneric.type_system, ungeneric.name)
  @ungeneric = ungeneric
end

Instance Attribute Details

#ungenericObject (readonly)

Returns the value of attribute ungeneric.



9
10
11
# File 'lib/mirah/jvm/types/generic_type.rb', line 9

def ungeneric
  @ungeneric
end

Instance Method Details

#assignable_from?(other) ⇒ Boolean

Returns:

  • (Boolean)


59
60
61
# File 'lib/mirah/jvm/types/generic_type.rb', line 59

def assignable_from?(other)
  @ungeneric.assignable_from?(other)
end

#basic_typeObject



16
17
18
# File 'lib/mirah/jvm/types/generic_type.rb', line 16

def basic_type
  @ungeneric.basic_type
end

#declared_macros(name = nil) ⇒ Object



36
37
38
# File 'lib/mirah/jvm/types/generic_type.rb', line 36

def declared_macros(name=nil)
  @ungeneric.declared_macros(name)
end

#genericObject



24
25
26
# File 'lib/mirah/jvm/types/generic_type.rb', line 24

def generic
  self
end

#generic?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/mirah/jvm/types/generic_type.rb', line 20

def generic?
  true
end

#inner_class?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/mirah/jvm/types/generic_type.rb', line 48

def inner_class?
  basic_type.inner_class?
end

#inspect(indent = 0) ⇒ Object



63
64
65
# File 'lib/mirah/jvm/types/generic_type.rb', line 63

def inspect(indent=0)
  "#{' ' * indent}#<#{self.class.name.split(/::/)[-1]} #{name} #{type_parameter_map}>"
end

#interfaces(include_parent = true) ⇒ Object



40
41
42
# File 'lib/mirah/jvm/types/generic_type.rb', line 40

def interfaces(include_parent=true)
  ungeneric.interfaces
end

#jvm_typeObject



44
45
46
# File 'lib/mirah/jvm/types/generic_type.rb', line 44

def jvm_type
  @ungeneric.jvm_type
end

#superclassObject



32
33
34
# File 'lib/mirah/jvm/types/generic_type.rb', line 32

def superclass
  @ungeneric.superclass.generic if @ungeneric.superclass
end

#type_parameter_mapObject



52
53
54
55
56
57
# File 'lib/mirah/jvm/types/generic_type.rb', line 52

def type_parameter_map
  unless @type_parameter_map
    @type_parameter_map = HashMap.new
  end
  @type_parameter_map
end