IKVM11
11
Java SE 11 Virtual Machine for .NET
Loading...
Searching...
No Matches
RuntimeManagedByteCodeJavaType.GhostJavaType.cs
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2015 Jeroen Frijters
3
4
This software is provided 'as-is', without any express or implied
5
warranty. In no event will the authors be held liable for any damages
6
arising from the use of this software.
7
8
Permission is granted to anyone to use this software for any purpose,
9
including commercial applications, and to alter it and redistribute it
10
freely, subject to the following restrictions:
11
12
1. The origin of this software must not be misrepresented; you must not
13
claim that you wrote the original software. If you use this software
14
in a product, an acknowledgment in the product documentation would be
15
appreciated but is not required.
16
2. Altered source versions must be plainly marked as such, and must not be
17
misrepresented as being the original software.
18
3. This notice may not be removed or altered from any source distribution.
19
20
Jeroen Frijters
21
jeroen@frijters.net
22
23
*/
24
using
System
;
25
26
#if IMPORTER || EXPORTER
27
using
IKVM.Reflection
;
28
29
using
Type
=
IKVM
.
Reflection
.
Type
;
30
#else
31
using
System.Reflection;
32
#endif
33
34
namespace
IKVM.Runtime
35
{
36
37
partial class
RuntimeManagedByteCodeJavaType
38
{
39
40
public
sealed
class
GhostJavaType
:
RuntimeManagedByteCodeJavaType
41
{
42
43
volatile
FieldInfo
ghostRefField;
44
volatile
Type
typeAsBaseType;
45
52
internal
GhostJavaType
(
RuntimeContext
context,
string
name,
Type
type) :
53
base(context, name, type)
54
{
55
56
}
57
58
internal
override
Type
TypeAsBaseType
59
{
60
get
61
{
62
if
(typeAsBaseType ==
null
)
63
typeAsBaseType = type.GetNestedType(
"__Interface"
);
64
65
return
typeAsBaseType;
66
}
67
}
68
69
internal
override
FieldInfo
GhostRefField
70
{
71
get
72
{
73
if
(ghostRefField ==
null
)
74
ghostRefField = type.GetField(
"__<ref>"
);
75
76
return
ghostRefField;
77
}
78
}
79
80
internal
override
bool
IsGhost =>
true
;
81
82
#if !IMPORTER && !EXPORTER && !FIRST_PASS
83
84
internal
override
object
GhostWrap(
object
obj)
85
{
86
return
type.GetMethod(
"Cast"
).Invoke(
null
,
new
object
[] { obj });
87
}
88
89
internal
override
object
GhostUnwrap(
object
obj)
90
{
91
return
type.GetMethod(
"ToObject"
).Invoke(obj,
new
object
[0]);
92
}
93
94
#endif
95
96
}
97
98
}
99
100
}
Type
IKVM.Reflection.Type Type
Definition
IkvmReflectionAssemblySymbol.cs:10
FieldInfo
IKVM.Reflection.FieldInfo FieldInfo
Definition
IkvmReflectionFieldSymbol.cs:3
IKVM.Reflection.Type
Definition
Type.cs:32
IKVM.Runtime.RuntimeContext
Maintains services relevant to an instane of the IKVM runtime.
Definition
RuntimeContext.cs:28
IKVM.Runtime.RuntimeManagedByteCodeJavaType.GhostJavaType
Definition
RuntimeManagedByteCodeJavaType.GhostJavaType.cs:41
IKVM.Runtime.RuntimeManagedByteCodeJavaType
Represents a runtime Java type derived from a .NET assembly which was the result of the IKVM compiler...
Definition
RuntimeManagedByteCodeJavaType.RemappedJavaType.cs:42
IKVM.Reflection
Definition
__MethodImplMap.cs:25
IKVM.Runtime
Definition
Accessor.cs:5
IKVM
Definition
MemoryBufferWriter.cs:7
System
Definition
HexConverter.cs:9
src
IKVM.Runtime
RuntimeManagedByteCodeJavaType.GhostJavaType.cs
Generated by
1.12.0