]> matita.cs.unibo.it Git - helm.git/blob - helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/ominidom.ml
Initial revision
[helm.git] / helm / DEVEL / lablgtk_gtkmathview / lablgtk-20000829_gtkmathview-0.2.1 / minidom / ominidom.ml
1
2 exception Minidom_exception of string;;
3
4 let option_to_exception v e =
5   match (v) with
6     Some x -> x
7   | None   -> raise e
8 ;;
9
10 class o_mDOMString (str: Minidom.mDOMString) =
11   object
12     method get_dom_string = str
13     method get_string = Minidom.string_of_mDOMString str
14   end;;
15   
16 let o_mDOMString_of_string str =
17   new o_mDOMString (Minidom.mDOMString_of_string str)
18
19 class o_mDOMDoc (doc : Minidom.mDOMDoc) =
20   object
21     method get_dom_doc = doc
22
23     method get_root_node = Minidom.doc_get_root_node doc
24     method add_entity (name : o_mDOMString) content =
25       Minidom.doc_add_entity doc (name#get_dom_string) content
26     method get_entity (name : o_mDOMString) =
27       Minidom.doc_get_entity doc (name#get_dom_string)
28     method get_predefined_entity (name : o_mDOMString) =
29       Minidom.doc_get_predefined_entity doc (name#get_dom_string)
30   end;;
31
32 class o_mDOMNode (node : Minidom.mDOMNode) =
33   object
34     method get_dom_node = node
35
36     method is_text = Minidom.node_is_text node
37     method is_element = Minidom.node_is_element node
38     method is_blank = Minidom.node_is_blank node
39     method is_entity_ref = Minidom.node_is_entity_ref node
40
41     method get_type = Minidom.node_get_type node
42     method get_name = 
43       new o_mDOMString
44         (option_to_exception (Minidom.node_get_name node) (Minidom_exception "node has no name"))
45     method get_ns_uri =
46       new o_mDOMString
47         (option_to_exception (Minidom.node_get_ns_uri node) (Minidom_exception "node has no associated namepsace"))
48     method get_attribute (name : o_mDOMString) =
49       new o_mDOMString
50         (option_to_exception
51           (Minidom.node_get_attribute node (name#get_dom_string))
52           (Minidom_exception "attribute not set for this node")
53         )
54     method get_attribute_ns (name : o_mDOMString) (uri : o_mDOMString) =
55       new o_mDOMString
56         (option_to_exception
57          (Minidom.node_get_attribute_ns node (name#get_dom_string) (uri#get_dom_string))
58          (Minidom_exception "attribute not set for this node")
59         )
60     method get_content =
61       new o_mDOMString
62         (option_to_exception (Minidom.node_get_content node) (Minidom_exception "node has no content"))
63     method get_parent =
64       new o_mDOMNode
65         (option_to_exception (Minidom.node_get_parent node) (Minidom_exception "node has no parent"))
66     method get_prev_sibling =
67       new o_mDOMNode
68         (option_to_exception (Minidom.node_get_prev_sibling node) (Minidom_exception "node has no previous sibling"))
69     method get_next_sibling =
70       new o_mDOMNode
71         (option_to_exception (Minidom.node_get_next_sibling node) (Minidom_exception "node has no next sibling"))
72     method get_first_child =
73       new o_mDOMNode
74         (option_to_exception (Minidom.node_get_first_child node) (Minidom_exception "node has no children"))
75     method get_first_attribute =
76       new o_mDOMAttr
77         (option_to_exception (Minidom.node_get_first_attribute node) (Minidom_exception "node has no attributes"))
78     method is_first = Minidom.node_is_first node
79     method is_last = Minidom.node_is_last node
80
81     method get_children = List.map (function x -> new o_mDOMNode x) (Minidom.node_get_children node)
82     method get_attributes = List.map (function x -> new o_mDOMAttr x) (Minidom.node_get_attributes node)
83   end
84 and o_mDOMAttr (attr : Minidom.mDOMAttr) =
85   object
86     method get_dom_attr = attr
87
88     method get_name =
89       new o_mDOMString
90         (option_to_exception (Minidom.attr_get_name attr) (Minidom_exception "attribute has no name"))
91     method get_ns_uri =
92       new o_mDOMString
93         (option_to_exception (Minidom.attr_get_ns_uri attr) (Minidom_exception "attribute has no associated namespace"))
94     method get_value =
95       new o_mDOMString
96         (option_to_exception (Minidom.attr_get_value attr) (Minidom_exception "attribute has no value"))
97
98     method get_prev_sibling =
99       new o_mDOMAttr
100         (option_to_exception (Minidom.attr_get_prev_sibling attr) (Minidom_exception "attribute has no previous sibling"))
101     method get_next_sibling =
102       new o_mDOMAttr
103         (option_to_exception (Minidom.attr_get_next_sibling attr) (Minidom_exception "attribute has no next sibling"))
104     method get_parent =
105       new o_mDOMNode
106         (option_to_exception (Minidom.attr_get_parent attr) (Minidom_exception "attribute has no parent"))
107   end
108 ;;
109