]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/cic_cache/cicCache.ml
first moogle template checkin
[helm.git] / helm / ocaml / cic_cache / cicCache.ml
index 394f9db77bcc158d467fd8db7fa4e86d40bb49d4..b4ae4fbec3261fe31109778e2896f17fe10fc77f 100644 (file)
 (******************************************************************************)
 
 let get_annobj uri =
- let module G = Getter in
  let module U = UriManager in
-  let cicfilename = G.getxml (U.cicuri_of_uri uri) in
+  let cicfilename = Http_getter.getxml' (U.cicuri_of_uri uri) in
    match (U.bodyuri_of_uri uri) with
       None ->
         let annobj = CicParser.annobj_of_xml cicfilename None in
          Unix.unlink cicfilename ;
          annobj
     | Some bodyuri ->
-       let cicbodyfilename = G.getxml (U.cicuri_of_uri bodyuri) in
+       let cicbodyfilename =
+        try
+         ignore (Http_getter.resolve' bodyuri) ;
+         (* The body exists ==> it is not an axiom *)
+         Some (Http_getter.getxml' bodyuri)
+        with
+         Http_getter_types.Unresolvable_URI _ ->
+          (* The body does not exist ==> we consider it an axiom *)
+          None
+       in
         let annobj =
-         CicParser.annobj_of_xml cicfilename (Some cicbodyfilename)
+         CicParser.annobj_of_xml cicfilename cicbodyfilename
         in
          Unix.unlink cicfilename ;
-         Unix.unlink cicbodyfilename ;
+         (match cicbodyfilename with None -> () | Some f -> Unix.unlink f) ;
          annobj
 ;;
 
 let get_obj uri =
- let module G = Getter in
  let module U = UriManager in
-  let cicfilename = G.getxml (U.cicuri_of_uri uri) in
+  let cicfilename = Http_getter.getxml' (U.cicuri_of_uri uri) in
    match (U.bodyuri_of_uri uri) with
       None ->
         let obj = CicParser.obj_of_xml cicfilename None in
          Unix.unlink cicfilename ;
          obj
     | Some bodyuri ->
-       let cicbodyfilename = G.getxml (U.cicuri_of_uri bodyuri) in
-       let obj = CicParser.obj_of_xml cicfilename (Some cicbodyfilename) in
+       let cicbodyfilename =
+        try
+         ignore (Http_getter.resolve' bodyuri) ;
+         (* The body exists ==> it is not an axiom *)
+         Some (Http_getter.getxml' bodyuri)
+        with Http_getter_types.Unresolvable_URI _ ->
+          (* The body does not exist ==> we consider it an axiom *)
+          None
+       in
+       let obj = CicParser.obj_of_xml cicfilename cicbodyfilename in
         Unix.unlink cicfilename ;
-        Unix.unlink cicbodyfilename ;
+        (match cicbodyfilename with None -> () | Some f -> Unix.unlink f) ;
         obj
 ;;