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