01: /*
02: * Copyright 2005 jWic group (http://www.jwic.de)
03: *
04: * Licensed under the Apache License, Version 2.0 (the "License");
05: * you may not use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
10: * Unless required by applicable law or agreed to in writing, software
11: * distributed under the License is distributed on an "AS IS" BASIS,
12: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13: * See the License for the specific language governing permissions and
14: * limitations under the License.
15: *
16: * de.jwic.renderer.velocity.ConfigurationTool
17: * $Id: ConfigurationTool.java,v 1.1 2006/01/16 08:30:40 lordsam Exp $
18: */
19: package de.jwic.base;
20:
21: import java.util.Iterator;
22: import java.util.Properties;
23:
24: /**
25: * Used to modify <code>Properties</code> configuration. The rootPath is
26: * set by the DispatcherServlet during startup. Classes that depend on
27: * resources from the file system (like renderer) can then "insert" the root
28: * path into their configuration.
29: *
30: * @author Florian Lippisch
31: * @version $Revision: 1.1 $
32: */
33: public class ConfigurationTool {
34:
35: public final static String ROOT_PATH_VAR = "${rootPath}";
36: private static String rootPath = "./";
37:
38: /**
39: * Returns the root path of the Web Application.
40: * @return
41: */
42: public static String getRootPath() {
43: return rootPath;
44: }
45:
46: /**
47: * Searches for the variable ${rootPath} in the property values and
48: * replaces it with the ControlFactory.getRootPath().
49: * @param prop
50: */
51: public static void insertRootPath(Properties prop) {
52:
53: for (Iterator it = prop.keySet().iterator(); it.hasNext();) {
54: String key = (String) it.next();
55: String value = prop.getProperty(key);
56: int idx = value.indexOf(ROOT_PATH_VAR);
57: if (idx != -1) {
58: prop
59: .setProperty(key, value.substring(0, idx)
60: + rootPath
61: + value.substring(idx
62: + ROOT_PATH_VAR.length()));
63: }
64: }
65:
66: }
67:
68: /**
69: * Searches for the variable ${rootPath} in the string and replaces
70: * it with the rootPath setting.
71: * @param value
72: * @return
73: */
74: public static String insertRootPath(String value) {
75:
76: int idx = value.indexOf(ROOT_PATH_VAR);
77: if (idx != -1) {
78: return value.substring(0, idx) + rootPath
79: + value.substring(idx + ROOT_PATH_VAR.length());
80: }
81: return value;
82:
83: }
84:
85: /**
86: * Set the root path of the web application.
87: * @param newRootPath
88: */
89: public static void setRootPath(String newRootPath) {
90: rootPath = newRootPath;
91: }
92:
93: }
|