1 /*
2 * Copyright 2004-2005 Dan Washusen
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
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
17 package org.reactive.configuration;
18
19 import org.igfay.jfig.JFig;
20 import org.igfay.jfig.JFigException;
21 import org.igfay.jfig.JFigIF;
22 import org.igfay.jfig.JFigLocator;
23
24 /***
25 * A wrapper for JFig configuration instantiation. This class helps to deal with some of the oddities of JFig.
26 *
27 * <p>An example of the bean factory configuration required for JFig Configuration</p>
28 * <pre>
29 * TODO: add example XML here
30 * </pre>
31 *
32 * @author Dan Washusen
33 * @version $Id: JFigConfigurationFactory.java,v 1.2 2004/12/30 23:27:33 dan_washusen Exp $
34 * @since 30.12.2004
35 * @see org.springframework.core.io.DefaultResourceLoader
36 */
37 public class JFigConfigurationFactory {
38 private String fileName;
39 private String configLocation;
40
41 public String getConfigLocation() {
42 return configLocation;
43 }
44
45 public void setConfigLocation(String configLocation) {
46 this.configLocation = configLocation;
47 }
48
49 public String getFileName() {
50 return fileName;
51 }
52
53 /***
54 * For some reason JFig prepends the "/" character for you, even if you don't want it to.
55 * @return Returns the fixed file name (remove the "/" character if there is one)
56 */
57 public String getFixedFileName() {
58 if (getFileName().startsWith("/"))
59 return getFileName().substring(1, getFileName().length());
60 else
61 return getFileName();
62 }
63
64 public void setFileName(String fileName) {
65 this.fileName = fileName;
66 }
67
68 public JFigIF getConfiguration() {
69 JFigLocator jFigLocator = new JFigLocator(getFixedFileName());
70 jFigLocator.setConfigLocation(getConfigLocation());
71
72 JFigIF jFig = null;
73 try {
74 jFig = JFig.initialize(jFigLocator);
75 } catch (JFigException e) {
76 throw new ConfigurationFactoryException("A problem was encountered while attempting to construct the JFig configuration agent.", e);
77 }
78
79 return jFig;
80 }
81
82
83 // private Resource configurationResource;
84 //
85 // public Resource getConfigurationResource() {
86 // return configurationResource;
87 // }
88 //
89 // public void setConfigurationResource(Resource configurationResource) {
90 // this.configurationResource = configurationResource;
91 // }
92 //
93 // public JFigIF getConfiguration() {
94 // JFigLocatorIF jFigLocator = null;
95 // if (getConfigurationResource() instanceof ClassPathResource)
96 // jFigLocator = new ClasspathResourceJFigLocator((ClassPathResource) getConfigurationResource());
97 // else
98 // jFigLocator = new FileSystemResourceJFigLocator((FileSystemResource) getConfigurationResource());
99 //
100 // JFigIF jFig = JFig.getInstance(jFigLocator);
101 //
102 // return jFig;
103 // }
104 //
105 // protected class ResourceJFigLocator
106 // implements JFigLocatorIF {
107 // protected Resource resource;
108 // protected String configFileName;
109 // protected String configLocation;
110 // protected String defaultConfigFileName;
111 //
112 // public ResourceJFigLocator(Resource resource) {
113 // this.resource = resource;
114 // this.configFileName = resource.
115 // }
116 //
117 // public Resource getResource() {
118 // return resource;
119 // }
120 //
121 // public void setResource(Resource resource) {
122 // this.resource = resource;
123 // }
124 //
125 // public String getConfigFileName() {
126 // return configFileName;
127 // }
128 //
129 // public void setConfigFileName(String configFileName) {
130 // this.configFileName = configFileName;
131 // }
132 //
133 // public String getConfigLocation() {
134 // return configLocation;
135 // }
136 //
137 // public void setConfigLocation(String configLocation) {
138 // this.configLocation = configLocation;
139 // }
140 //
141 // public String getDefaultConfigFileName() {
142 // return defaultConfigFileName;
143 // }
144 //
145 // public void setDefaultConfigFileName(String defaultConfigFileName) {
146 // this.defaultConfigFileName = defaultConfigFileName;
147 // }
148 //
149 // public InputStream getInputStream() throws JFigException {
150 // try {
151 // return this.resource.getInputStream();
152 // } catch (IOException e) {
153 // throw new JFigException(e.getMessage());
154 // }
155 // }
156 // }
157 //
158 // protected class ClasspathResourceJFigLocator
159 // extends ResourceJFigLocator {
160 // public static final String LOCATION = "classpath";
161 //
162 // public ClasspathResourceJFigLocator(ClassPathResource resource) {
163 // super(resource);
164 // super.setConfigLocation(LOCATION);
165 // }
166 // }
167 //
168 // protected class FileSystemResourceJFigLocator
169 // extends ResourceJFigLocator {
170 // public static final String LOCATION = "file";
171 //
172 // public FileSystemResourceJFigLocator(FileSystemResource resource) {
173 // super(resource);
174 // super.setConfigLocation(LOCATION);
175 // }
176 // }
177 }