sig
type access = [ `Default | `Private | `Protected | `Public ]
type attributes = {
synthetic : bool;
deprecated : bool;
other : (string * string) list;
}
type visibility = RTVisible | RTInvisible
type field_kind = NotFinal | Final | Volatile
type constant_attribute =
[ `Double of float
| `Float of float
| `Int of int32
| `Long of int64
| `String of JBasics.jstr ]
type class_field = {
cf_signature : JBasics.field_signature;
cf_class_signature : JBasics.class_field_signature;
cf_generic_signature : JSignature.fieldTypeSignature option;
cf_access : JClass.access;
cf_static : bool;
cf_synthetic : bool;
cf_enum : bool;
cf_kind : JClass.field_kind;
cf_value : JClass.constant_attribute option;
cf_transient : bool;
cf_annotations : (JBasics.annotation * JClass.visibility) list;
cf_other_flags : int list;
cf_attributes : JClass.attributes;
}
type interface_field = {
if_signature : JBasics.field_signature;
if_class_signature : JBasics.class_field_signature;
if_generic_signature : JSignature.fieldTypeSignature option;
if_synthetic : bool;
if_value : JClass.constant_attribute option;
if_annotations : (JBasics.annotation * JClass.visibility) list;
if_other_flags : int list;
if_attributes : JClass.attributes;
}
type any_field =
InterfaceField of JClass.interface_field
| ClassField of JClass.class_field
type 'a implementation = Native | Java of 'a Stdlib.Lazy.t
type method_annotations = {
ma_global : (JBasics.annotation * JClass.visibility) list;
ma_parameters : (JBasics.annotation * JClass.visibility) list list;
}
type method_parameter_attribute = {
mp_name : string option;
mp_final : bool;
mp_synthetic : bool;
mp_mandated : bool;
}
type 'a concrete_method = {
cm_signature : JBasics.method_signature;
cm_class_method_signature : JBasics.class_method_signature;
cm_static : bool;
cm_final : bool;
cm_synchronized : bool;
cm_strict : bool;
cm_access : JClass.access;
cm_generic_signature : JSignature.methodTypeSignature option;
cm_bridge : bool;
cm_varargs : bool;
cm_synthetic : bool;
cm_other_flags : int list;
cm_exceptions : JBasics.class_name list;
cm_attributes : JClass.attributes;
cm_parameters : JClass.method_parameter_attribute list;
cm_annotations : JClass.method_annotations;
cm_implementation : 'a JClass.implementation;
}
type abstract_method = {
am_signature : JBasics.method_signature;
am_class_method_signature : JBasics.class_method_signature;
am_access : [ `Default | `Private | `Protected | `Public ];
am_generic_signature : JSignature.methodTypeSignature option;
am_bridge : bool;
am_varargs : bool;
am_synthetic : bool;
am_other_flags : int list;
am_exceptions : JBasics.class_name list;
am_attributes : JClass.attributes;
am_parameters : JClass.method_parameter_attribute list;
am_annotations : JClass.method_annotations;
am_annotation_default : JBasics.element_value option;
}
type 'a jmethod =
AbstractMethod of JClass.abstract_method
| ConcreteMethod of 'a JClass.concrete_method
type inner_class = {
ic_class_name : JBasics.class_name option;
ic_outer_class_name : JBasics.class_name option;
ic_source_name : string option;
ic_access : JClass.access;
ic_static : bool;
ic_final : bool;
ic_synthetic : bool;
ic_annotation : bool;
ic_enum : bool;
ic_other_flags : int list;
ic_type : [ `Abstract | `ConcreteClass | `Interface ];
}
type 'a jclass = {
c_name : JBasics.class_name;
c_version : JBasics.version;
c_access : [ `Default | `Public ];
c_final : bool;
c_abstract : bool;
c_super_class : JBasics.class_name option;
c_generic_signature : JSignature.classSignature option;
c_fields : JClass.class_field JBasics.FieldMap.t;
c_interfaces : JBasics.class_name list;
c_consts : JBasics.constant array;
c_sourcefile : string option;
c_deprecated : bool;
c_enclosing_method :
(JBasics.class_name * JBasics.method_signature option) option;
c_source_debug_extention : string option;
c_inner_classes : JClass.inner_class list;
c_synthetic : bool;
c_enum : bool;
c_annotations : (JBasics.annotation * JClass.visibility) list;
c_other_flags : int list;
c_other_attributes : (string * string) list;
c_methods : 'a JClass.jmethod JBasics.MethodMap.t;
}
type 'a jinterface = {
i_name : JBasics.class_name;
i_version : JBasics.version;
i_access : [ `Default | `Public ];
i_interfaces : JBasics.class_name list;
i_generic_signature : JSignature.classSignature option;
i_consts : JBasics.constant array;
i_sourcefile : string option;
i_deprecated : bool;
i_source_debug_extention : string option;
i_inner_classes : JClass.inner_class list;
i_annotation : bool;
i_annotations : (JBasics.annotation * JClass.visibility) list;
i_other_attributes : (string * string) list;
i_other_flags : int list;
i_fields : JClass.interface_field JBasics.FieldMap.t;
i_methods : 'a JClass.jmethod JBasics.MethodMap.t;
}
type 'a interface_or_class =
JInterface of 'a JClass.jinterface
| JClass of 'a JClass.jclass
val get_name : 'a JClass.interface_or_class -> JBasics.class_name
val get_consts : 'a JClass.interface_or_class -> JBasics.constant array
val get_access : 'a JClass.interface_or_class -> [ `Default | `Public ]
val get_sourcefile : 'a JClass.interface_or_class -> string option
val is_deprecated : 'a JClass.interface_or_class -> bool
val is_final : 'a JClass.interface_or_class -> bool
val get_inner_classes :
'a JClass.interface_or_class -> JClass.inner_class list
val get_other_attributes :
'a JClass.interface_or_class -> (string * string) list
val get_initializer :
'a JClass.interface_or_class -> 'a JClass.concrete_method option
val get_other_flags : 'a JClass.interface_or_class -> int list
val get_method_signature : 'a JClass.jmethod -> JBasics.method_signature
val get_class_method_signature :
'a JClass.jmethod -> JBasics.class_method_signature
val get_method_visibility : 'a JClass.jmethod -> JClass.access
val is_static_method : 'a JClass.jmethod -> bool
val is_final_method : 'a JClass.jmethod -> bool
val is_synchronized_method : 'a JClass.jmethod -> bool
val get_method :
'a JClass.interface_or_class ->
JBasics.method_signature -> 'a JClass.jmethod
val get_concrete_method :
'a JClass.interface_or_class ->
JBasics.method_signature -> 'a JClass.concrete_method
val get_methods :
'a JClass.interface_or_class -> 'a JClass.jmethod JBasics.MethodMap.t
val get_concrete_methods :
'a JClass.interface_or_class ->
'a JClass.concrete_method JBasics.MethodMap.t
val defines_method :
'a JClass.interface_or_class -> JBasics.method_signature -> bool
val get_field_signature : JClass.any_field -> JBasics.field_signature
val get_class_field_signature :
JClass.any_field -> JBasics.class_field_signature
val get_field_visibility : JClass.any_field -> JClass.access
val is_static_field : JClass.any_field -> bool
val is_final_field : JClass.any_field -> bool
val get_field :
'a JClass.interface_or_class ->
JBasics.field_signature -> JClass.any_field
val get_fields :
'a JClass.interface_or_class -> JClass.any_field JBasics.FieldMap.t
val defines_field :
'a JClass.interface_or_class -> JBasics.field_signature -> bool
val cf_iter :
(JClass.class_field -> unit) -> 'a JClass.interface_or_class -> unit
val if_iter :
(JClass.interface_field -> unit) -> 'a JClass.interface_or_class -> unit
val f_iter :
(JClass.any_field -> unit) -> 'a JClass.interface_or_class -> unit
val cf_fold :
(JClass.class_field -> 'b -> 'b) ->
'a JClass.interface_or_class -> 'b -> 'b
val if_fold :
(JClass.interface_field -> 'b -> 'b) ->
'a JClass.interface_or_class -> 'b -> 'b
val f_fold :
(JClass.any_field -> 'b -> 'b) ->
'a JClass.interface_or_class -> 'b -> 'b
val cm_iter :
('a JClass.concrete_method -> unit) ->
'a JClass.interface_or_class -> unit
val am_iter :
(JClass.abstract_method -> unit) -> 'a JClass.interface_or_class -> unit
val m_iter :
('a JClass.jmethod -> unit) -> 'a JClass.interface_or_class -> unit
val cm_fold :
('a JClass.concrete_method -> 'b -> 'b) ->
'a JClass.interface_or_class -> 'b -> 'b
val am_fold :
(JClass.abstract_method -> 'b -> 'b) ->
'a JClass.interface_or_class -> 'b -> 'b
val m_fold :
('a JClass.jmethod -> 'b -> 'b) ->
'a JClass.interface_or_class -> 'b -> 'b
val map_concrete_method :
?force:bool ->
('a -> 'b) -> 'a JClass.concrete_method -> 'b JClass.concrete_method
val map_concrete_method_with_native :
('a JClass.implementation -> 'b JClass.implementation) ->
'a JClass.concrete_method -> 'b JClass.concrete_method
val map_class :
?force:bool -> ('a -> 'b) -> 'a JClass.jclass -> 'b JClass.jclass
val map_interface :
?force:bool -> ('a -> 'b) -> 'a JClass.jinterface -> 'b JClass.jinterface
val map_interface_or_class :
?force:bool ->
('a -> 'b) ->
'a JClass.interface_or_class -> 'b JClass.interface_or_class
val map_class_with_native :
('a JClass.implementation -> 'b JClass.implementation) ->
'a JClass.jclass -> 'b JClass.jclass
val map_interface_with_native :
('a JClass.implementation -> 'b JClass.implementation) ->
'a JClass.jinterface -> 'b JClass.jinterface
val map_interface_or_class_with_native :
('a JClass.implementation -> 'b JClass.implementation) ->
'a JClass.interface_or_class -> 'b JClass.interface_or_class
val map_class_context :
?force:bool ->
('a JClass.concrete_method -> 'a -> 'b) ->
'a JClass.jclass -> 'b JClass.jclass
val map_interface_context :
?force:bool ->
('a JClass.concrete_method -> 'a -> 'b) ->
'a JClass.jinterface -> 'b JClass.jinterface
val map_interface_or_class_context :
?force:bool ->
('a JClass.concrete_method -> 'a -> 'b) ->
'a JClass.interface_or_class -> 'b JClass.interface_or_class
val map_class_with_native_context :
('a JClass.concrete_method ->
'a JClass.implementation -> 'b JClass.implementation) ->
'a JClass.jclass -> 'b JClass.jclass
val map_interface_with_native_context :
('a JClass.concrete_method ->
'a JClass.implementation -> 'b JClass.implementation) ->
'a JClass.jinterface -> 'b JClass.jinterface
val map_interface_or_class_with_native_context :
('a JClass.concrete_method ->
'a JClass.implementation -> 'b JClass.implementation) ->
'a JClass.interface_or_class -> 'b JClass.interface_or_class
val remove_invokedynamic :
JCode.jcode JClass.interface_or_class ->
JBasics.method_signature ->
int ->
prefix:string ->
JCode.jcode JClass.interface_or_class *
JCode.jcode JClass.interface_or_class
val remove_invokedynamics_in_method :
JCode.jcode JClass.interface_or_class ->
JBasics.method_signature ->
prefix:string ->
JCode.jcode JClass.interface_or_class *
JCode.jcode JClass.interface_or_class JBasics.ClassMap.t
val remove_invokedynamics :
JCode.jcode JClass.interface_or_class ->
prefix:string ->
JCode.jcode JClass.interface_or_class *
JCode.jcode JClass.interface_or_class JBasics.ClassMap.t
end