]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.image2.ontology/src/org/simantics/image2/ontology/ImageResource.java
415f35746d6668dceedd5af6d853f3f63f01d189
[simantics/platform.git] / bundles / org.simantics.image2.ontology / src / org / simantics / image2 / ontology / ImageResource.java
1 package org.simantics.image2.ontology;
2
3 import org.simantics.db.RequestProcessor;
4 import org.simantics.db.Resource;
5 import org.simantics.db.ReadGraph;
6 import org.simantics.db.request.Read;
7 import org.simantics.db.Session;
8 import org.simantics.db.exception.DatabaseException;
9 import org.simantics.db.service.QueryControl;
10
11 public class ImageResource {
12     
13     public final Resource Functions;
14     public final Resource Functions_data;
15     public final Resource GifImage;
16     public final Resource Image;
17     public final Resource Image_HasFormat;
18     public final Resource Image_HasFormat_Inverse;
19     public final Resource Image_data;
20     public final Resource Image_data_Inverse;
21     public final Resource JpegImage;
22     public final Resource PngImage;
23     public final Resource SvgImage;
24         
25     public static class URIs {
26         public static final String Functions = "http://www.simantics.org/Image2-1.2/Functions";
27         public static final String Functions_data = "http://www.simantics.org/Image2-1.2/Functions/data";
28         public static final String GifImage = "http://www.simantics.org/Image2-1.2/GifImage";
29         public static final String Image = "http://www.simantics.org/Image2-1.2/Image";
30         public static final String Image_HasFormat = "http://www.simantics.org/Image2-1.2/Image/HasFormat";
31         public static final String Image_HasFormat_Inverse = "http://www.simantics.org/Image2-1.2/Image/HasFormat/Inverse";
32         public static final String Image_data = "http://www.simantics.org/Image2-1.2/Image/data";
33         public static final String Image_data_Inverse = "http://www.simantics.org/Image2-1.2/Image/data/Inverse";
34         public static final String JpegImage = "http://www.simantics.org/Image2-1.2/JpegImage";
35         public static final String PngImage = "http://www.simantics.org/Image2-1.2/PngImage";
36         public static final String SvgImage = "http://www.simantics.org/Image2-1.2/SvgImage";
37     }
38     
39     public static Resource getResourceOrNull(ReadGraph graph, String uri) {
40         try {
41             return graph.getResource(uri);
42         } catch(DatabaseException e) {
43             System.err.println(e.getMessage());
44             return null;
45         }
46     }
47     
48     public ImageResource(ReadGraph graph) {
49         Functions = getResourceOrNull(graph, URIs.Functions);
50         Functions_data = getResourceOrNull(graph, URIs.Functions_data);
51         GifImage = getResourceOrNull(graph, URIs.GifImage);
52         Image = getResourceOrNull(graph, URIs.Image);
53         Image_HasFormat = getResourceOrNull(graph, URIs.Image_HasFormat);
54         Image_HasFormat_Inverse = getResourceOrNull(graph, URIs.Image_HasFormat_Inverse);
55         Image_data = getResourceOrNull(graph, URIs.Image_data);
56         Image_data_Inverse = getResourceOrNull(graph, URIs.Image_data_Inverse);
57         JpegImage = getResourceOrNull(graph, URIs.JpegImage);
58         PngImage = getResourceOrNull(graph, URIs.PngImage);
59         SvgImage = getResourceOrNull(graph, URIs.SvgImage);
60     }
61     
62     public static ImageResource getInstance(ReadGraph graph) {
63         Session session = graph.getSession();
64         ImageResource ret = session.peekService(ImageResource.class);
65         if(ret == null) {
66             QueryControl qc = graph.getService(QueryControl.class);
67             ret = new ImageResource(qc.getIndependentGraph(graph));
68             session.registerService(ImageResource.class, ret);
69         }
70         return ret;
71     }
72     
73     public static ImageResource getInstance(RequestProcessor session) throws DatabaseException {
74         ImageResource ret = session.peekService(ImageResource.class);
75         if(ret == null) {
76             ret = session.syncRequest(new Read<ImageResource>() {
77                 public ImageResource perform(ReadGraph graph) throws DatabaseException {
78                     QueryControl qc = graph.getService(QueryControl.class);
79                     return new ImageResource(qc.getIndependentGraph(graph));
80                 }
81             });
82             session.registerService(ImageResource.class, ret);
83         }
84         return ret;
85     }
86     
87 }
88