]> gerrit.simantics Code Review - simantics/interop.git/blob - org.simantics.interop/src/org/simantics/interop/issues/AndRead.java
git-svn-id: https://www.simantics.org/svn/simantics/interoperability/trunk@22477...
[simantics/interop.git] / org.simantics.interop / src / org / simantics / interop / issues / AndRead.java
1 package org.simantics.interop.issues;\r
2 \r
3 import org.simantics.db.ReadGraph;\r
4 import org.simantics.db.exception.DatabaseException;\r
5 import org.simantics.db.request.Read;\r
6 \r
7 /**\r
8  * AndRead can be used to combine multiple requests into single one. If all reads return true or null, this returns true.\r
9  * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
10  *\r
11  */\r
12 public class AndRead implements Read<Boolean>{\r
13 \r
14         private Read<Boolean> reads[];\r
15         \r
16         public AndRead(Read<Boolean>... reads) {\r
17                 this.reads = reads;\r
18         }\r
19         \r
20         @Override\r
21         public Boolean perform(ReadGraph graph) throws DatabaseException {\r
22                 Boolean b = null;\r
23                 for (Read<Boolean> r : reads) {\r
24                         b = r.perform(graph);\r
25                         if(b != null && !b)\r
26                                 return false;\r
27                 }\r
28                 return true;\r
29         }\r
30 }\r