]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/ComposedTGValueModifier.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / util / ComposedTGValueModifier.java
1 package org.simantics.db.layer0.util;\r
2 \r
3 import org.simantics.databoard.binding.Binding;\r
4 import org.simantics.databoard.type.Datatype;\r
5 import org.simantics.db.exception.DatabaseException;\r
6 \r
7 public class ComposedTGValueModifier implements TGValueModifier {\r
8 \r
9         final TGValueModifier[] modifiers;\r
10         \r
11         public ComposedTGValueModifier(TGValueModifier[] modifiers) {\r
12                 this.modifiers = modifiers;\r
13         }\r
14         \r
15         @Override\r
16         public boolean mayNeedModification(Datatype type) throws DatabaseException {\r
17                 for(TGValueModifier mod : modifiers)\r
18                         if(mod.mayNeedModification(type))\r
19                                 return true;\r
20                 return false;\r
21         }\r
22 \r
23         @Override\r
24         public Object modify(final DomainProcessorState state, Binding binding, Object value) throws DatabaseException {\r
25 \r
26                 Datatype type = binding.type();\r
27                 \r
28                 for(TGValueModifier mod : modifiers)\r
29                         if(mod.mayNeedModification(type))\r
30                                 value = mod.modify(state, binding, value);\r
31                 \r
32                 return value;\r
33                 \r
34         }\r
35 \r
36 }\r