001: package org.apache.turbine.modules;
002:
003: /*
004: * Licensed to the Apache Software Foundation (ASF) under one
005: * or more contributor license agreements. See the NOTICE file
006: * distributed with this work for additional information
007: * regarding copyright ownership. The ASF licenses this file
008: * to you under the Apache License, Version 2.0 (the
009: * "License"); you may not use this file except in compliance
010: * with the License. You may obtain a copy of the License at
011: *
012: * http://www.apache.org/licenses/LICENSE-2.0
013: *
014: * Unless required by applicable law or agreed to in writing,
015: * software distributed under the License is distributed on an
016: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017: * KIND, either express or implied. See the License for the
018: * specific language governing permissions and limitations
019: * under the License.
020: */
021:
022: import java.util.Hashtable;
023:
024: import org.apache.turbine.Turbine;
025: import org.apache.turbine.TurbineConstants;
026: import org.apache.turbine.util.RunData;
027:
028: /**
029: * This is the base class for the loaders. It contains code that is
030: * used across all of the loaders. It also specifies the interface
031: * that is required to be called a Loader.
032: *
033: * @author <a href="mailto:mbryson@mont.mindspring.com">Dave Bryson</a>
034: * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
035: * @version $Id: GenericLoader.java 534527 2007-05-02 16:10:59Z tv $
036: */
037: public abstract class GenericLoader extends Hashtable {
038: /** @serial This can be serialized */
039: private boolean reload = false;
040:
041: /** @serial This can be serialized */
042: private boolean isCaching = true;
043:
044: /** Base packages path for Turbine */
045: private static final String TURBINE_PACKAGE = "org.apache.turbine.modules";
046:
047: /**
048: * Basic constructor for creating a loader.
049: */
050: public GenericLoader() {
051: super ();
052: isCaching = Turbine.getConfiguration().getBoolean(
053: TurbineConstants.MODULE_CACHE_KEY,
054: TurbineConstants.MODULE_CACHE_DEFAULT);
055: }
056:
057: /**
058: * Basic constructor for creating a loader.
059: */
060: public GenericLoader(int i) {
061: super (i);
062: isCaching = Turbine.getConfiguration().getBoolean(
063: TurbineConstants.MODULE_CACHE_KEY,
064: TurbineConstants.MODULE_CACHE_DEFAULT);
065: }
066:
067: /**
068: * If set to true, then cache the Loader objects.
069: *
070: * @return True if the Loader objects are being cached.
071: */
072: public boolean cache() {
073: return this .isCaching;
074: }
075:
076: /**
077: * Attempts to load and execute the external action that has been
078: * set.
079: *
080: * @exception Exception a generic exception.
081: */
082: public abstract void exec(RunData data, String name)
083: throws Exception;
084:
085: /**
086: * Commented out.
087: * This method should return the complete classpath + name.
088: *
089: * @param name
090: * @return
091: *
092: public abstract String getClassName(String name);
093: */
094:
095: /**
096: * Returns whether or not this external action is reload itself.
097: * This is in cases where the Next button would be clicked, but
098: * since we are checking for that, we would go into an endless
099: * loop.
100: *
101: * @return True if the action is reload.
102: */
103: public boolean reload() {
104: return this .reload;
105: }
106:
107: /**
108: * Sets whether or not this external action is reload itself.
109: * This is in cases where the Next button would be clicked, but
110: * since we are checking for that, we would go into an endless
111: * loop.
112: *
113: * @param reload True if the action must be marked as reload.
114: * @return Itself.
115: */
116: public GenericLoader setReload(boolean reload) {
117: this .reload = reload;
118: return this ;
119: }
120:
121: /**
122: * Gets the base package where Turbine should find its default
123: * modules.
124: *
125: * @return A String with the base package name.
126: */
127: public static String getBasePackage() {
128: return TURBINE_PACKAGE;
129: }
130: }
|