Skip to content

Commit

Permalink
file_formats_java_class 7.0.0 (#1362)
Browse files Browse the repository at this point in the history
* Manually create file_formats_java_class-7.0.0.toml

* Rename file_formats_java_class-7.0.0.toml to file_formats_java_class-7.0.0-dev.toml

* Remove -dev suffix, postpone writing to 7.1.0 release
  • Loading branch information
ATPStorages authored Jan 15, 2025
1 parent 1eaa3cc commit da5ce66
Showing 1 changed file with 124 additions and 0 deletions.
124 changes: 124 additions & 0 deletions index/fi/file_formats_java_class/file_formats_java_class-7.0.0.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
name = "file_formats_java_class"
description = "File format reader for the Java programming language CLASS file format"
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).
"""
version = "7.0.0"

authors = ["Miko Elbrecht"]
maintainers = ["Miko Elbrecht <[email protected]>"]
maintainers-logins = ["ATPStorages"]
licenses = "Apache-2.0 WITH LLVM-exception"
website = "https://github.com/Bread-Experts-Group/file_formats_java_class"
tags = ["file", "formats", "java", "class"]

[origin]
commit = "1d232835ecd6829259d9124859fcaf62f111f924"
url = "git+https://github.com/Bread-Experts-Group/file_formats_java_class.git"

[[depends-on]]
byteflippers = "^1.0.0"

0 comments on commit da5ce66

Please sign in to comment.