Esempio n. 1
0
 private static void WriteJarClass(this DataOutputStream stream, MetadataJavaClass @class)
 {
     stream.WriteUTF(@class.ClassName);
     stream.WriteAccessFlagsParameter(@class.AccessFlags);
     stream.WriteArray(@class.Interfaces, stream.WriteUTF);
     stream.WriteArray(@class.AllInterfaces, stream.WriteUTF);
     stream.WriteArray(@class.Interfaces, stream.WriteUTF);
     stream.WriteArray(@class.AllSuperClasses, stream.WriteUTF);
     stream.WriteArray(@class.Methods, stream.WriteJavaMethod);
     stream.WriteArray(@class.Fields, stream.WriteJavaField);
 }
 public void PrepareProperties(MetadataJavaClass meta)
 {
     ClassName   = meta.ClassName.Substring(meta.ClassName.LastIndexOf('.') + 1);
     PackageName = meta.ClassName.Substring(0, meta.ClassName.LastIndexOf('.'));
     _metaFlags  = (AccessFlags)meta.AccessFlags;
     _metaSuperClasses ??= meta.AllSuperClasses.Select(c => LoadedClassRepository.Instance[c]).ToArray();
     _metaInterfaces ??= meta.Interfaces.Select(c => LoadedClassRepository.Instance[c]).ToArray();
     _metaAllInterfaces ??= meta.AllInterfaces.Select(c => LoadedClassRepository.Instance[c]).ToArray();
     _metaFields ??= meta.Fields.Select(c => c.ToDataClass()).ToArray();
     _metaMethods ??= meta.Methods.Select(c => c.ToDataClass()).ToArray();
 }
Esempio n. 3
0
        private static MetadataJavaClass ReadJarClass(this DataInputStream stream)
        {
            var @class = new MetadataJavaClass
            {
                ClassName     = stream.ReadUtfAndIntern(),
                AccessFlags   = stream.ReadAccessFlagsParameter(),
                Interfaces    = stream.ReadArray(stream.ReadUtfAndIntern),
                AllInterfaces = stream.ReadArray(stream.ReadUtfAndIntern)
            };

            @class.Interfaces      = stream.ReadArray(stream.ReadUtfAndIntern);
            @class.AllSuperClasses = stream.ReadArray(stream.ReadUtfAndIntern);
            @class.Methods         = stream.ReadArray(stream.ReadJavaMethod);
            @class.Fields          = stream.ReadArray(stream.ReadJavaField);

            return(@class);
        }
Esempio n. 4
0
 public static DataJavaClass ToDataClass(this MetadataJavaClass meta)
 {
     return(new DataJavaClass(meta));
 }
Esempio n. 5
0
 private static void WriteJarArchiveClass(this DataOutputStream stream, string name, MetadataJavaClass @class)
 {
     stream.WriteUTF(name);
     stream.WriteJarClass(@class);
 }
 public DataJavaClass(MetadataJavaClass meta)
 {
     FullClassName = meta.ClassName;
     CanLoad      += (_, __) => PrepareProperties(meta);
 }