Author: apetrelli
Date: Mon Dec 18 08:53:28 2006
New Revision: 488338
URL: http://svn.apache.org/viewvc?view=rev&rev=488338
Log:
SB-101
First attempt to create a mutable keyed DefinitionsFactory container.
Added:
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/mgmt/CachedKeyedDefinitionsFactoryTilesContainerFactory.java
Added:
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/mgmt/CachedKeyedDefinitionsFactoryTilesContainerFactory.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/mgmt/CachedKeyedDefinitionsFactoryTilesContainerFactory.java?view=auto&rev=488338
==============================================================================
---
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/mgmt/CachedKeyedDefinitionsFactoryTilesContainerFactory.java
(added)
+++
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/mgmt/CachedKeyedDefinitionsFactoryTilesContainerFactory.java
Mon Dec 18 08:53:28 2006
@@ -0,0 +1,67 @@
+package org.apache.tiles.impl.mgmt;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.tiles.TilesException;
+import org.apache.tiles.context.TilesRequestContext;
+import org.apache.tiles.definition.ComponentDefinition;
+import org.apache.tiles.definition.DefinitionsFactory;
+import org.apache.tiles.definition.DefinitionsFactoryException;
+import org.apache.tiles.impl.KeyedDefinitionsFactoryTilesContainer;
+import org.apache.tiles.mgmt.MutableTilesContainer;
+import org.apache.tiles.mgmt.TileDefinition;
+
+public class CachedKeyedDefinitionsFactoryTilesContainerFactory extends
+ KeyedDefinitionsFactoryTilesContainer implements MutableTilesContainer
{
+
+ private DefinitionManager mgr = new DefinitionManager();
+
+ private Map<String, DefinitionManager> key2definitionManager
+ = new HashMap<String, DefinitionManager>();
+
+ public void register(TileDefinition definition)
+ throws TilesException {
+ ComponentDefinition def = new ComponentDefinition(definition);
+ mgr.addDefinition(def);
+ }
+
+ @Override
+ protected ComponentDefinition getDefinition(String definition,
+ TilesRequestContext context)
+ throws DefinitionsFactoryException {
+ return mgr.getDefinition(definition, context);
+ }
+
+ @Override
+ public DefinitionsFactory getDefinitionsFactory() {
+ return mgr.getFactory();
+ }
+
+ @Override
+ public DefinitionsFactory getDefinitionsFactory(String key) {
+ DefinitionsFactory factory = key2definitionsFactory.get(key);
+ if (factory == null) {
+ factory = mgr.getFactory();
+ }
+
+ return factory;
+ }
+
+ @Override
+ public void setDefinitionsFactory(DefinitionsFactory definitionsFactory) {
+ super.setDefinitionsFactory(definitionsFactory);
+ mgr.setFactory(definitionsFactory);
+ }
+
+ @Override
+ public void setDefinitionsFactory(String key, DefinitionsFactory
definitionsFactory, Map<String, String> initParameters) {
+ DefinitionManager mgr = key2definitionManager.get(key);
+ if (mgr == null) {
+ mgr = new DefinitionManager();
+ key2definitionManager.put(key, mgr);
+ }
+ mgr.setFactory(definitionsFactory);
+ }
+
+}