]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/adapter/LiteralIntegerArrayStringAdapter.java
39aeb71c880db3951060301db8303529dbc250fb
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / adapter / LiteralIntegerArrayStringAdapter.java
1 package org.simantics.db.layer0.adapter;
2
3 import java.util.Arrays;
4
5 import org.simantics.databoard.Bindings;
6 import org.simantics.db.AsyncReadGraph;
7 import org.simantics.db.RelationContext;
8 import org.simantics.db.Resource;
9 import org.simantics.db.adaption.Adapter;
10 import org.simantics.db.procedure.AsyncProcedure;
11
12 public class LiteralIntegerArrayStringAdapter implements Adapter<String, RelationContext> {
13
14     @Override
15     public void adapt(AsyncReadGraph g, Resource source, RelationContext s, final AsyncProcedure<String> procedure) {
16         g.forValue(s.getStatement().getObject(), Bindings.INT_ARRAY, new  ProcedureWrapper(procedure));
17     }
18     
19     private static class ProcedureWrapper implements AsyncProcedure<int[]> {
20         AsyncProcedure<String> procedure;
21         
22         public ProcedureWrapper(AsyncProcedure<String> procedure) {
23                         this.procedure = procedure;
24                 }
25         
26         public void execute(AsyncReadGraph graph, int[] result) {
27                 procedure.execute(graph, Arrays.toString(result));
28         };
29         
30         @Override
31         public void exception(AsyncReadGraph graph, Throwable throwable) {
32                 procedure.exception(graph, throwable);
33                 
34         }
35     }
36     
37 }