65313d01e1e4d5e58981cff6433a5f511a4657ff
[mir.git] / source / mircoders / localizer / MirCachingLocalizerDecorator.java
1 package mircoders.localizer;
2
3 public class MirCachingLocalizerDecorator implements MirLocalizer {
4   private MirLocalizer localizer;
5   private MirProducerLocalizer producerLocalizer;
6   private MirGeneratorLocalizer generatorLocalizer;
7   private MirOpenPostingLocalizer openPostingsLocalizer;
8   private MirProducerAssistantLocalizer producerAssistantLocalizer;
9   private MirDataModelLocalizer dataModelLocalizer;
10
11   public MirCachingLocalizerDecorator(MirLocalizer aLocalizer) {
12     localizer = aLocalizer;
13   }
14
15   public MirProducerLocalizer producers() throws MirLocalizerFailure, MirLocalizerException {
16     if (producerLocalizer==null) {
17       producerLocalizer = localizer.producers();
18     }
19
20     return producerLocalizer;
21   }
22
23   public MirGeneratorLocalizer generators() throws MirLocalizerFailure, MirLocalizerException {
24     if (generatorLocalizer==null) {
25       generatorLocalizer = localizer.generators();
26     }
27
28     return generatorLocalizer;
29   }
30
31   public MirOpenPostingLocalizer openPostings() throws MirLocalizerFailure, MirLocalizerException {
32     if (openPostingsLocalizer==null) {
33       openPostingsLocalizer = localizer.openPostings();
34     }
35
36     return openPostingsLocalizer;
37   }
38
39   public MirProducerAssistantLocalizer producerAssistant() throws MirLocalizerFailure, MirLocalizerException {
40     if (producerAssistantLocalizer==null) {
41       producerAssistantLocalizer = localizer.producerAssistant();
42     }
43
44     return producerAssistantLocalizer;
45   }
46
47   public MirDataModelLocalizer dataModel() throws MirLocalizerFailure, MirLocalizerException {
48     if (dataModelLocalizer==null) {
49       dataModelLocalizer = localizer.dataModel();
50     }
51
52     return dataModelLocalizer;
53   }
54
55 }