static private RegisterClass ( |
||
clazz | ||
리턴 |
public GType MakeArray() { if (IsCLRType) { GType array = Repository.RegisterType(CLRType.MakeArrayType()); array.ArrayElement = this; return(array); } else { Class arrClass = JNIEnv.ThreadEnv.NewObjectArray(0, JVMType, null).getClass(); GType array = Repository.RegisterClass(arrClass); array.ArrayElement = this; return(array); } }
public GType Resolve() { if (IsJVMGenerate || IsCLRGenerate) { return(this); } if (IsCLRType && IsJVMType) { return(this); } if (IsCLRType && JVMSubst != null) { return(JVMSubst); } if (IsJVMType && CLRSubst != null) { return(CLRSubst); } if (IsArray) { if (ArrayElement.CLRType == typeof(string)) { JVMSubst = Repository.RegisterClass(String._class).MakeArray(); return(JVMSubst); } GType subst = ArrayElement.Resolve().MakeArray(); if (IsCLRType) { JVMSubst = subst; } else { CLRSubst = subst; } return(subst); } if (IsRootType) { return(this); } if (Base != null) { GType subst = Base.Resolve(); if (!subst.IsRootType) { if (IsCLRType) { JVMSubst = subst; } else { CLRSubst = subst; } return(subst); } } /* * foreach (GType ifc in Interfaces) * { * GType subst = ifc.Resolve(); * if (IsCLRType && ifc.IsJVMType) * { * JVMSubst = subst; * return subst; * } * if (IsJVMType && ifc.IsCLRType) * { * CLRSubst = subst; * return subst; * } * }*/ if (IsCLRType) { JVMSubst = Repository.systemObject; return(Repository.systemObject); } else { CLRSubst = Repository.javaLangObject; return(Repository.javaLangObject); } }