X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Flocalizer%2FMirCachingLocalizerDecorator.java;h=759a881dd5f9ef07f5454bf375864e12df5c42d6;hb=95c2e3a74f492f6f61d4dbe8bb47996f43af0627;hp=340d2bd552c3d42d0c36df5359e1606b493846a2;hpb=b865b9333cb77f34a540a5ec102687af24f5cf24;p=mir.git diff --git a/source/mircoders/localizer/MirCachingLocalizerDecorator.java b/source/mircoders/localizer/MirCachingLocalizerDecorator.java index 340d2bd5..759a881d 100755 --- a/source/mircoders/localizer/MirCachingLocalizerDecorator.java +++ b/source/mircoders/localizer/MirCachingLocalizerDecorator.java @@ -30,10 +30,10 @@ package mircoders.localizer; +import mir.entity.adapter.EntityAdapterModel; import mir.generator.Generator; import mir.generator.WriterEngine; - public class MirCachingLocalizerDecorator implements MirLocalizer { private MirLocalizer localizer; private MirProducerLocalizer producerLocalizer; @@ -42,6 +42,7 @@ public class MirCachingLocalizerDecorator implements MirLocalizer { private MirProducerAssistantLocalizer producerAssistantLocalizer; private MirDataModelLocalizer dataModelLocalizer; private MirAdminInterfaceLocalizer adminInterfaceLocalizer; + private MirMediaLocalizer mediaLocalizer; public MirCachingLocalizerDecorator(MirLocalizer aLocalizer) { localizer = aLocalizer; @@ -81,7 +82,7 @@ public class MirCachingLocalizerDecorator implements MirLocalizer { public MirDataModelLocalizer dataModel() throws MirLocalizerFailure, MirLocalizerExc { if (dataModelLocalizer==null) { - dataModelLocalizer = localizer.dataModel(); + dataModelLocalizer = new MirCachingDatamodelLocalizer(localizer.dataModel()); } return dataModelLocalizer; @@ -93,14 +94,41 @@ public class MirCachingLocalizerDecorator implements MirLocalizer { } return adminInterfaceLocalizer; - }; + } + + public MirMediaLocalizer media() throws MirLocalizerFailure, MirLocalizerExc { + if (mediaLocalizer==null) { + mediaLocalizer = localizer.media(); + } + + return mediaLocalizer; + } + + private static class MirCachingDatamodelLocalizer implements MirDataModelLocalizer { + private MirDataModelLocalizer master; + private EntityAdapterModel adapterModel; + + public MirCachingDatamodelLocalizer(MirDataModelLocalizer aMaster) { + master = aMaster; + adapterModel = null; + } + + public EntityAdapterModel adapterModel() throws MirLocalizerExc, MirLocalizerFailure { + if (adapterModel==null) { + adapterModel = master.adapterModel(); + } + + return adapterModel; + } + + } private static class MirCachingGeneratorLocalizer implements MirGeneratorLocalizer { private MirGeneratorLocalizer master; private WriterEngine writerEngine; - private Generator.GeneratorLibrary producerGeneratorLibrary; - private Generator.GeneratorLibrary adminGeneratorLibrary; - private Generator.GeneratorLibrary openPostingGeneratorLibrary; + private Generator.Library producerGeneratorLibrary; + private Generator.Library adminGeneratorLibrary; + private Generator.Library openPostingGeneratorLibrary; public MirCachingGeneratorLocalizer(MirGeneratorLocalizer aMaster) { master = aMaster; @@ -112,31 +140,31 @@ public class MirCachingLocalizerDecorator implements MirLocalizer { } return writerEngine; - }; + } - public Generator.GeneratorLibrary makeProducerGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure { + public Generator.Library makeProducerGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure { if (producerGeneratorLibrary==null) { producerGeneratorLibrary = master.makeProducerGeneratorLibrary(); } return producerGeneratorLibrary; - }; + } - public Generator.GeneratorLibrary makeAdminGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure { + public Generator.Library makeAdminGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure { if (adminGeneratorLibrary==null) { adminGeneratorLibrary = master.makeAdminGeneratorLibrary(); } return adminGeneratorLibrary; - }; + } - public Generator.GeneratorLibrary makeOpenPostingGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure { + public Generator.Library makeOpenPostingGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure { if (openPostingGeneratorLibrary==null) { openPostingGeneratorLibrary = master.makeOpenPostingGeneratorLibrary(); } return openPostingGeneratorLibrary; - }; + } } } \ No newline at end of file