Author: apetrelli
Date: Sun Dec 17 08:51:13 2006
New Revision: 488007
URL: http://svn.apache.org/viewvc?view=rev&rev=488007
Log:
SB-101
First attempt to create a keyed DefinitionsFactory container.
Added:
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/KeyedDefinitionsFactoryTilesContainer.java
Added:
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/KeyedDefinitionsFactoryTilesContainer.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/KeyedDefinitionsFactoryTilesContainer.java?view=auto&rev=488007
==============================================================================
---
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/KeyedDefinitionsFactoryTilesContainer.java
(added)
+++
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/KeyedDefinitionsFactoryTilesContainer.java
Sun Dec 17 08:51:13 2006
@@ -0,0 +1,67 @@
+package org.apache.tiles.impl;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.tiles.TilesException;
+import org.apache.tiles.definition.DefinitionsFactory;
+
+public class KeyedDefinitionsFactoryTilesContainer extends BasicTilesContainer
{
+
+ protected Map<String, DefinitionsFactory> key2definitionsFactory;
+
+ protected Map<String, Map<String, String>> key2initParams;
+
+ public KeyedDefinitionsFactoryTilesContainer() {
+ key2definitionsFactory = new HashMap<String,
DefinitionsFactory>();
+ key2initParams = new HashMap<String, Map<String,String>>();
+ }
+
+ @Override
+ public void init(Map<String, String> initParameters) throws
TilesException {
+ super.init(initParameters);
+
+ for (Map.Entry<String, DefinitionsFactory> entry:
+ key2definitionsFactory.entrySet()) {
+ String key = entry.getKey();
+ initializeDefinitionsFactory(entry.getValue(),
+ getResourceString(initParameters),
key2initParams.get(key));
+ }
+ }
+
+ /**
+ * Standard Getter
+ *
+ * @return the definitions factory used by this container.
+ */
+ public DefinitionsFactory getDefinitionsFactory(String key) {
+ DefinitionsFactory retValue = null;
+
+ if (key != null) {
+ retValue = key2definitionsFactory.get(key);
+ }
+ if (retValue == null) {
+ retValue = getDefinitionsFactory();
+ }
+
+ return retValue;
+ }
+
+ /**
+ * Set the definitions factory. This method first ensures
+ * that the container has not yet been initialized.
+ *
+ * @param definitionsFactory the definitions factory for this instance.
+ */
+ public void setDefinitionsFactory(String key,
+ DefinitionsFactory definitionsFactory,
+ Map<String, String> initParameters) {
+ if (key != null) {
+ checkInit();
+ key2definitionsFactory.put(key, definitionsFactory);
+ key2initParams.put(key, initParameters);
+ } else {
+ setDefinitionsFactory(definitionsFactory);
+ }
+ }
+}