示例#1
0
        private static void WriteMethods(BigEndianStream bes, TypeWrapper tw)
        {
            List <MethodWrapper> list = new List <MethodWrapper>();

            foreach (MethodWrapper mw in tw.GetMethods())
            {
                if (!mw.IsConstructor && !mw.IsHideFromReflection && !mw.IsPrivate)
                {
                    list.Add(mw);
                }
            }
            list.Sort(delegate(MethodWrapper mw1, MethodWrapper mw2) {
                if (mw1.Name == mw2.Name)
                {
                    return(String.CompareOrdinal(mw1.Signature, mw2.Signature));
                }
                return(String.CompareOrdinal(mw1.Name, mw2.Name));
            });
            foreach (MethodWrapper mw in list)
            {
                Modifiers mods = mw.Modifiers & (Modifiers.Public | Modifiers.Private | Modifiers.Protected | Modifiers.Static | Modifiers.Final | Modifiers.Synchronized | Modifiers.Native | Modifiers.Abstract | Modifiers.Strictfp);
                bes.WriteUtf8(mw.Name);
                bes.WriteUInt32((uint)mods);
                bes.WriteUtf8(mw.Signature);
            }
        }
示例#2
0
        private static void WriteStaticInitializer(BigEndianStream bes, TypeWrapper tw)
        {
            Type type = tw.TypeAsTBD;

            if (!type.IsArray && type.TypeInitializer != null)
            {
                if (!AttributeHelper.IsHideFromJava(type.TypeInitializer))
                {
                    bes.WriteUtf8("<clinit>");
                    bes.WriteUInt32((uint)Modifiers.Static);
                    bes.WriteUtf8("()V");
                }
            }
        }
示例#3
0
        private static void WriteStaticInitializer(BigEndianStream bes, TypeWrapper tw)
        {
#if !WINRT
            Type type = tw.TypeAsTBD;
            if (!type.IsArray && type.TypeInitializer != null)
            {
                if (!AttributeHelper.IsHideFromJava(type.TypeInitializer))
                {
                    bes.WriteUtf8("<clinit>");
                    bes.WriteUInt32((uint)Modifiers.Static);
                    bes.WriteUtf8("()V");
                }
            }
#else
            throw new NotImplementedException();
#endif
        }
示例#4
0
 private static void WriteInterfaces(BigEndianStream bes, TypeWrapper tw)
 {
     TypeWrapper[] interfaces = (TypeWrapper[])tw.Interfaces.Clone();
     Array.Sort(interfaces, delegate(TypeWrapper tw1, TypeWrapper tw2) { return(String.CompareOrdinal(tw1.Name, tw2.Name)); });
     foreach (TypeWrapper iface in interfaces)
     {
         bes.WriteUtf8(iface.Name);
     }
 }
示例#5
0
        private static void WriteFields(BigEndianStream bes, TypeWrapper tw)
        {
            List <FieldWrapper> list = new List <FieldWrapper>();

            foreach (FieldWrapper fw in tw.GetFields())
            {
                if (!fw.IsHideFromReflection)
                {
                    list.Add(fw);
                }
            }
            list.Sort(delegate(FieldWrapper fw1, FieldWrapper fw2) { return(String.CompareOrdinal(fw1.Name, fw2.Name)); });
            foreach (FieldWrapper fw in list)
            {
                Modifiers mods = fw.Modifiers & (Modifiers.Public | Modifiers.Private | Modifiers.Protected | Modifiers.Static | Modifiers.Final | Modifiers.Volatile | Modifiers.Transient);
                if (((mods & Modifiers.Private) == 0) || ((mods & (Modifiers.Static | Modifiers.Transient)) == 0))
                {
                    bes.WriteUtf8(fw.Name);
                    bes.WriteUInt32((uint)mods);
                    bes.WriteUtf8(fw.Signature.Replace('.', '/'));
                }
            }
        }
示例#6
0
 private static void WriteClassName(BigEndianStream bes, TypeWrapper tw)
 {
     bes.WriteUtf8(tw.Name);
 }
		private static void WriteInterfaces(BigEndianStream bes, TypeWrapper tw)
		{
			TypeWrapper[] interfaces = (TypeWrapper[])tw.Interfaces.Clone();
			Array.Sort(interfaces, delegate(TypeWrapper tw1, TypeWrapper tw2) { return String.CompareOrdinal(tw1.Name, tw2.Name); });
			foreach (TypeWrapper iface in interfaces)
			{
				bes.WriteUtf8(iface.Name);
			}
		}
		private static void WriteFields(BigEndianStream bes, TypeWrapper tw)
		{
			List<FieldWrapper> list = new List<FieldWrapper>();
			foreach (FieldWrapper fw in tw.GetFields())
			{
				if (!fw.IsHideFromReflection)
				{
					list.Add(fw);
				}
			}
			list.Sort(delegate(FieldWrapper fw1, FieldWrapper fw2) { return String.CompareOrdinal(fw1.Name, fw2.Name); });
			foreach (FieldWrapper fw in list)
			{
				Modifiers mods = fw.Modifiers & (Modifiers.Public | Modifiers.Private | Modifiers.Protected | Modifiers.Static | Modifiers.Final | Modifiers.Volatile | Modifiers.Transient);
				if (((mods & Modifiers.Private) == 0) || ((mods & (Modifiers.Static | Modifiers.Transient)) == 0))
				{
					bes.WriteUtf8(fw.Name);
					bes.WriteUInt32((uint)mods);
					bes.WriteUtf8(fw.Signature.Replace('.', '/'));
				}
			}
		}
		private static void WriteClassName(BigEndianStream bes, TypeWrapper tw)
		{
			bes.WriteUtf8(tw.Name);
		}
		private static void WriteMethods(BigEndianStream bes, TypeWrapper tw)
		{
			List<MethodWrapper> list = new List<MethodWrapper>();
			foreach (MethodWrapper mw in tw.GetMethods())
			{
				if (mw.Name != StringConstants.INIT && !mw.IsHideFromReflection && !mw.IsPrivate)
				{
					list.Add(mw);
				}
			}
			list.Sort(delegate(MethodWrapper mw1, MethodWrapper mw2) {
				if (mw1.Name == mw2.Name)
					return String.CompareOrdinal(mw1.Signature, mw2.Signature);
				return String.CompareOrdinal(mw1.Name, mw2.Name); 
			});
			foreach (MethodWrapper mw in list)
			{
				Modifiers mods = mw.Modifiers & (Modifiers.Public | Modifiers.Private | Modifiers.Protected | Modifiers.Static | Modifiers.Final | Modifiers.Synchronized | Modifiers.Native | Modifiers.Abstract | Modifiers.Strictfp);
				bes.WriteUtf8(mw.Name);
				bes.WriteUInt32((uint)mods);
				bes.WriteUtf8(mw.Signature);
			}
		}
		private static void WriteStaticInitializer(BigEndianStream bes, TypeWrapper tw)
		{
			Type type = tw.TypeAsTBD;
			if (!type.IsArray && type.TypeInitializer != null)
			{
				if (!AttributeHelper.IsHideFromJava(type.TypeInitializer))
				{
					bes.WriteUtf8("<clinit>");
					bes.WriteUInt32((uint)Modifiers.Static);
					bes.WriteUtf8("()V");
				}
			}
		}
示例#12
0
 public override void Write(BigEndianStream bes)
 {
     bes.WriteByte((byte)Constant.Utf8);
     bes.WriteUtf8(str);
 }
示例#13
0
 public override void Write(BigEndianStream bes)
 {
     bes.WriteByte((byte)Constant.Utf8);
     bes.WriteUtf8(str);
 }