IKVM11  11
Java SE 11 Virtual Machine for .NET
Loading...
Searching...
No Matches
IKVM.Java.Externs.sun.reflect.ReflectionFactory Class Reference

Static Public Member Functions

static global::sun.reflect.FieldAccessor newFieldAccessor (object thisFactory, global::java.lang.reflect.Field field, bool overrideAccessCheck)
 
static global::sun.reflect.MethodAccessor newMethodAccessor (object thisFactory, global::java.lang.reflect.Method method)
 
static global::sun.reflect.ConstructorAccessor newConstructorAccessor0 (object thisFactory, global::java.lang.reflect.Constructor constructor)
 
static global::sun.reflect.ConstructorAccessor newConstructorAccessorForSerialization (global::java.lang.Class classToInstantiate, global::java.lang.reflect.Constructor constructorToCall)
 

Detailed Description

Definition at line 41 of file ReflectionFactory.cs.

Member Function Documentation

◆ newConstructorAccessor0()

static global.sun.reflect.ConstructorAccessor IKVM.Java.Externs.sun.reflect.ReflectionFactory.newConstructorAccessor0 ( object thisFactory,
global.java.lang.reflect.Constructor constructor )
static

Definition at line 2255 of file ReflectionFactory.cs.

2256 {
2257#if FIRST_PASS
2258 return null;
2259#else
2260 RuntimeJavaMethod mw = RuntimeJavaMethod.FromExecutable(constructor);
2261 if (ActivatorConstructorAccessor.IsSuitable(mw))
2262 {
2263 // we special case public default constructors, because in that case using Activator.CreateInstance()
2264 // is almost as fast as FastConstructorAccessorImpl, but it saves us significantly in working set and
2265 // startup time (because often during startup a sun.nio.cs.* encoder is instantiated using reflection)
2266 return new ActivatorConstructorAccessor(mw);
2267 }
2268 else
2269 {
2270#if NO_REF_EMIT
2271 return new ConstructorAccessorImpl(mw);
2272#else
2273 return new FastConstructorAccessorImpl(constructor);
2274#endif
2275 }
2276#endif
2277 }

◆ newConstructorAccessorForSerialization()

static global.sun.reflect.ConstructorAccessor IKVM.Java.Externs.sun.reflect.ReflectionFactory.newConstructorAccessorForSerialization ( global.java.lang.Class classToInstantiate,
global.java.lang.reflect.Constructor constructorToCall )
static

Definition at line 2279 of file ReflectionFactory.cs.

2280 {
2281#if FIRST_PASS
2282 return null;
2283#else
2284 try
2285 {
2286#if NO_REF_EMIT
2287 return new SerializationConstructorAccessorImpl(constructorToCall, classToInstantiate);
2288#else
2289 return new FastSerializationConstructorAccessorImpl(constructorToCall, classToInstantiate);
2290#endif
2291 }
2292 catch (SecurityException x)
2293 {
2294 throw new global::java.lang.SecurityException(x.Message, global::ikvm.runtime.Util.mapException(x));
2295 }
2296#endif
2297 }

◆ newFieldAccessor()

static global.sun.reflect.FieldAccessor IKVM.Java.Externs.sun.reflect.ReflectionFactory.newFieldAccessor ( object thisFactory,
global.java.lang.reflect.Field field,
bool overrideAccessCheck )
static

Definition at line 2219 of file ReflectionFactory.cs.

2220 {
2221#if FIRST_PASS
2222 return null;
2223#else
2224 // we look at the modifiers of the Field object to allow Unsafe to give us a fake Field take doesn't have the final flag set
2225 int modifiers = field.getModifiers();
2226 bool isStatic = global::java.lang.reflect.Modifier.isStatic(modifiers);
2227 bool isFinal = global::java.lang.reflect.Modifier.isFinal(modifiers);
2228 return FieldAccessorImplBase.Create(RuntimeJavaField.FromField(field), isFinal && (!overrideAccessCheck || isStatic));
2229#endif
2230 }

◆ newMethodAccessor()

static global.sun.reflect.MethodAccessor IKVM.Java.Externs.sun.reflect.ReflectionFactory.newMethodAccessor ( object thisFactory,
global.java.lang.reflect.Method method )
static

Definition at line 2239 of file ReflectionFactory.cs.

2240 {
2241#if FIRST_PASS
2242 return null;
2243#else
2244 RuntimeJavaMethod mw = RuntimeJavaMethod.FromExecutable(method);
2245#if !NO_REF_EMIT
2246 if (!mw.IsDynamicOnly)
2247 {
2248 return new FastMethodAccessorImpl(mw);
2249 }
2250#endif
2251 return new MethodAccessorImpl(mw);
2252#endif
2253 }

The documentation for this class was generated from the following file: