Skip to content

Commit f38394a

Browse files
committed
Add some interfaces
1 parent f45d644 commit f38394a

File tree

7 files changed

+50
-4
lines changed

7 files changed

+50
-4
lines changed

java_runtime/src/classes/java/io.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ mod print_stream;
2121
mod print_writer;
2222
mod random_access_file;
2323
mod reader;
24+
mod serializable;
2425
mod string_writer;
2526
mod writer;
2627

@@ -31,5 +32,5 @@ pub use self::{
3132
file_not_found_exception::FileNotFoundException, file_output_stream::FileOutputStream, filter_input_stream::FilterInputStream,
3233
filter_output_stream::FilterOutputStream, input_stream::InputStream, input_stream_reader::InputStreamReader, io_exception::IOException,
3334
output_stream::OutputStream, print_stream::PrintStream, print_writer::PrintWriter, random_access_file::RandomAccessFile, reader::Reader,
34-
string_writer::StringWriter, writer::Writer,
35+
serializable::Serializable, string_writer::StringWriter, writer::Writer,
3536
};
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
use alloc::vec;
2+
3+
use java_constants::ClassAccessFlags;
4+
5+
use crate::RuntimeClassProto;
6+
7+
// interface java.io.Serializable
8+
pub struct Serializable;
9+
10+
impl Serializable {
11+
pub fn as_proto() -> RuntimeClassProto {
12+
RuntimeClassProto {
13+
name: "java/io/Serializable",
14+
parent_class: None,
15+
interfaces: vec![],
16+
methods: vec![],
17+
fields: vec![],
18+
access_flags: ClassAccessFlags::INTERFACE,
19+
}
20+
}
21+
}

java_runtime/src/classes/java/lang.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ mod class;
33
mod class_loader;
44
mod clone_not_supported_exception;
55
mod cloneable;
6+
mod comparable;
67
mod error;
78
mod exception;
89
mod illegal_argument_exception;
@@ -31,7 +32,7 @@ mod unsupported_operation_exception;
3132

3233
pub use self::{
3334
array_index_out_of_bounds_exception::ArrayIndexOutOfBoundsException, class::Class, class_loader::ClassLoader,
34-
clone_not_supported_exception::CloneNotSupportedException, cloneable::Cloneable, error::Error, exception::Exception,
35+
clone_not_supported_exception::CloneNotSupportedException, cloneable::Cloneable, comparable::Comparable, error::Error, exception::Exception,
3536
illegal_argument_exception::IllegalArgumentException, incompatible_class_change_error::IncompatibleClassChangeError,
3637
index_out_of_bounds_exception::IndexOutOfBoundsException, instantiation_error::InstantiationError, integer::Integer,
3738
interrupted_exception::InterruptedException, linkage_error::LinkageError, math::Math, no_class_def_found_error::NoClassDefFoundError,
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
use alloc::vec;
2+
3+
use java_constants::ClassAccessFlags;
4+
5+
use crate::RuntimeClassProto;
6+
7+
// interface java.lang.Comparable
8+
pub struct Comparable;
9+
10+
impl Comparable {
11+
pub fn as_proto() -> RuntimeClassProto {
12+
RuntimeClassProto {
13+
name: "java/lang/Comparable",
14+
parent_class: None,
15+
interfaces: vec![],
16+
methods: vec![],
17+
fields: vec![],
18+
access_flags: ClassAccessFlags::INTERFACE,
19+
}
20+
}
21+
}

java_runtime/src/classes/java/lang/integer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ impl Integer {
1414
RuntimeClassProto {
1515
name: "java/lang/Integer",
1616
parent_class: Some("java/lang/Object"),
17-
interfaces: vec![],
17+
interfaces: vec!["java/lang/Comparable"],
1818
methods: vec![
1919
JavaMethodProto::new("<init>", "(I)V", Self::init, Default::default()),
2020
JavaMethodProto::new("parseInt", "(Ljava/lang/String;)I", Self::parse_int, MethodAccessFlags::STATIC),

java_runtime/src/classes/java/util/date.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ impl Date {
1313
RuntimeClassProto {
1414
name: "java/util/Date",
1515
parent_class: Some("java/lang/Object"),
16-
interfaces: vec![],
16+
interfaces: vec!["java/io/Serializable", "java/lang/Cloneable", "java/lang/Comparable"],
1717
methods: vec![
1818
JavaMethodProto::new("<init>", "()V", Self::init, Default::default()),
1919
JavaMethodProto::new("<init>", "(J)V", Self::init_with_time, Default::default()),

java_runtime/src/loader.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,15 @@ pub fn get_runtime_class_proto(name: &str) -> Option<RuntimeClassProto> {
2929
crate::classes::java::io::PrintWriter::as_proto(),
3030
crate::classes::java::io::RandomAccessFile::as_proto(),
3131
crate::classes::java::io::Reader::as_proto(),
32+
crate::classes::java::io::Serializable::as_proto(),
3233
crate::classes::java::io::StringWriter::as_proto(),
3334
crate::classes::java::io::Writer::as_proto(),
3435
crate::classes::java::lang::ArrayIndexOutOfBoundsException::as_proto(),
3536
crate::classes::java::lang::Class::as_proto(),
3637
crate::classes::java::lang::ClassLoader::as_proto(),
3738
crate::classes::java::lang::Cloneable::as_proto(),
3839
crate::classes::java::lang::CloneNotSupportedException::as_proto(),
40+
crate::classes::java::lang::Comparable::as_proto(),
3941
crate::classes::java::lang::Error::as_proto(),
4042
crate::classes::java::lang::Exception::as_proto(),
4143
crate::classes::java::lang::IllegalArgumentException::as_proto(),

0 commit comments

Comments
 (0)