Test ran at 2025-07-20 12:38:12.536477+00:00 SOLUTION: file_formats_java_class=7.0.0: File format reader for the Java programming language CLASS file format Origin: commit 1d232835ecd6829259d9124859fcaf62f111f924 from https://github.com/Bread-Experts-Group/file_formats_java_class.git Properties: Author: Miko Elbrecht Description: File format reader for the Java programming language CLASS file format License: Apache-2.0 WITH LLVM-exception Long_Description: `file_formats_java_class` provides the facilities for reading CLASS files defined in the [Java Virtual Machine Specification](https://docs.oracle.com/javase/specs/), [Java SE 7, CLASS major file version 51](https://docs.oracle.com/javase/specs/jvms/se7/html/index.html), [chapter 4](https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html). Supported Elements (Java SE 7) ------------------------------ - Class Access Flags (Table 4.1) - `ACC_PUBLIC` - `ACC_FINAL` - `ACC_SUPER` - `ACC_INTERFACE` - `ACC_ABSTRACT` - `ACC_SYNTHETIC` - `ACC_ANNOTATION` - `ACC_ENUM` - Constant Pool (Table 4.3) - `CONSTANT_Class_info` - `CONSTANT_Fieldref_info` - `CONSTANT_Methodref_info` - `CONSTANT_InterfaceMethodref_info` - `CONSTANT_String_info` - `CONSTANT_Integer_info` - `CONSTANT_Float_info` - `CONSTANT_Long_info` - `CONSTANT_Double_info` - `CONSTANT_NameAndType_info` - `CONSTANT_Utf8_info` - `CONSTANT_MethodHandle_info` - `CONSTANT_MethodType_info` - `CONSTANT_InvokeDynamic_info` - Field Access Flags (Table 4.4) - `ACC_PUBLIC` - `ACC_PRIVATE` - `ACC_PROTECTED` - `ACC_STATIC` - `ACC_FINAL` - `ACC_VOLATILE` - `ACC_TRANSIENT` - `ACC_SYNTHETIC` - `ACC_ENUM` - Method Access Flags (Table 4.5) - `ACC_PUBLIC` - `ACC_PRIVATE` - `ACC_PROTECTED` - `ACC_STATIC` - `ACC_FINAL` - `ACC_SYNCHRONIZED` - `ACC_BRIDGE` - `ACC_VARARGS` - `ACC_NATIVE` - `ACC_ABSTRACT` - `ACC_STRICT` - `ACC_SYNTHETIC` - Attributes (Table 4.6) - `ConstantValue` - `Code` - `StackMapTable` - `Exceptions` - `InnerClasses` - `EnclosingMethod` - `Synthetic` - `Signature` - `SourceFile` - `SourceDebugExtension` - `LineNumberTable` - `LocalVariableTable` - `LocalVariableTypeTable` - `Deprecated` - `RuntimeVisibleAnnotations` - `RuntimeInvisibleAnnotations` - `RuntimeVisibleParameterAnnotations` - `RuntimeInvisibleParameterAnnotations` - `AnnotationDefault` - `BootstrapMethods` - `Other` - Used for unrecognized/private attributes - **NOTE:** All restrictions put in place of each attribute for determining the validity of a CLASS file may not be fully implemented at the current time. Example Use ----------- All pertinent types and subprograms are available within the package `File_Formats_Java_Class`. Reading `Class_File` is done primarily through the `Input` aspect, as shown below. ```ada with Ada.Text_IO; with File_Formats_Java_Class; use File_Formats_Java_Class; procedure Read_Class_File is F : File_Type; S : Stream_Access; begin Open (F, In_File, "Example.class"); S := Stream (F); Ada.Text_IO.Put_Line (Class_File'Input (S)); Close (F); end Read_Class_File; ``` Development Status ------------------ This crate does not yet define operations for writing to CLASS files, but this is a priority. After writing is complete, this crate will be updated to support CLASS files of Java SE 8+. You are free to report issues and contribute at the crate's [GitHub repository](https://github.com/Bread-Experts-Group/file_formats_java_class). Maintainer: Miko Elbrecht Maintainers_Logins: ATPStorages Name: file_formats_java_class Tag: file Tag: formats Tag: java Tag: class Version: 7.0.0 Website: https://github.com/Bread-Experts-Group/file_formats_java_class Dependencies (direct): byteflippers^1.0.0 Dependencies (solution): byteflippers=1.1.0 Dependencies (graph): file_formats_java_class=7.0.0 --> byteflippers=1.1.0 (^1.0.0) LOG: [alr test] Testing file_formats_java_class=7.0.0 [alr test] Spawning retrieval for remote crate: alr -d -n get file_formats_java_class=7.0.0 Note: Deploying file_formats_java_class=7.0.0... Note: Deploying byteflippers=1.1.0... file_formats_java_class=7.0.0 successfully retrieved. Dependencies were solved as follows: + byteflippers 1.1.0 (new) [alr test] Spawning default test for remote crate: alr -d -n build --release -- -cargs:Ada -gnatwn Note: Building file_formats_java_class=7.0.0/file_formats_java_class.gpr... Setup [mkdir] object directory for project Byteflippers [mkdir] library directory for project Byteflippers [mkdir] object directory for project File_Formats_Java_Class [mkdir] library directory for project File_Formats_Java_Class Compile [Ada] byteflippers_config.ads [Ada] byteflipper_generics.adb [Ada] byteflippers.ads [Ada] file_formats_java_class_config.ads [Ada] file_formats_java_class.adb Build Libraries [gprlib] Byteflippers.lexch [gprlib] File_Formats_Java_Class.lexch [archive] libByteflippers.a [index] libByteflippers.a [archive] libFile_Formats_Java_Class.a [index] libFile_Formats_Java_Class.a Success: Build finished successfully in 32.60 seconds. Found declared GPR file: file_formats_java_class.gpr [alr test] Test completed SUCCESSFULLY