/*
* $Id: ControllerConfig.java 471754 2006-11-06 14:55:09Z husted $
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.struts.config;
/**
* <p>A JavaBean representing the configuration information of a
* <code><controller></code> element in a Struts configuration
* file.</p>
*
* @version $Rev: 471754 $ $Date: 2005-05-12 18:41:19 -0400 (Thu, 12 May 2005)
* $
* @since Struts 1.1
*/
public class ControllerConfig extends BaseConfig {
// ------------------------------------------------------------- Properties
/**
* <p> The input buffer size for file uploads. </p>
*/
protected int bufferSize = 4096;
/**
* <p> The content type and character encoding to be set on each response.
* </p>
*/
protected String contentType = "text/html";
/**
* <p> The chain catalog name for this module. </p>
*/
protected String catalog = "struts";
/**
* <p> The chain command to execute for each request. </p>
*/
protected String command = "servlet-standard";
/**
* <p>The replacement pattern used to determine a context-relative URL
* from a {@link ForwardConfig} element. The pattern may consist of any
* combination of the following markers and characters:</p>
*
* <ul>
*
* <li><code><strong>$M</strong></code> - Replaced by the module prefix
* for the current module.</li>
*
* <li><code><strong>$P</strong></code> - Replaced by the
* <code>path</code> property of a {@link ForwardConfig} instance.</li>
*
* <li><code><strong>$$</strong></code> - Renders a literal dollar sign
* ("$") character in the resulting URL.</li>
*
* <li>A dollar sign followed by any other character is reserved for
* future use, and both characters are silently swallowed.</li>
*
* <li>All other characters in the pattern are passed through unchanged.
* </li>
*
* </ul>
*
* <p>If this property is set to <code>null</code>, a default pattern of
* <code>$M$P</code> is utilized, which is backwards compatible with the
* hard coded functionality in prior versions.</p>
*/
protected String forwardPattern = null;
/**
* <p>Should the <code>input</code> property of {@link ActionConfig}
* instances associated with this module be treated as the name of a
* corresponding {@link ForwardConfig}. A <code>false</code> value treats
* them as a module-relative path (consistent with the hard coded behavior
* of earlier versions of Struts.</p>
*
* @since Struts 1.1
*/
protected boolean inputForward = false;
/**
* <p> Should we store a Locale object in the user's session if needed?
* </p>
*/
protected boolean locale = true;
/**
* <p> The maximum file size to process for file uploads. </p>
*/
protected String maxFileSize = "250M";
/**
* <p> The maximum file size to retain in memory. </p>
*/
protected String memFileSize = "256K";
/**
* <p> The fully qualified Java class name of the MultipartRequestHandler
* class to be used. </p>
*/
protected String multipartClass =
"org.apache.struts.upload.CommonsMultipartRequestHandler";
/**
* <p> Should we set no-cache HTTP headers on each response? </p>
*/
protected boolean nocache = false;
/**
* <p>The replacement pattern used to determine a context-relative URL
* from the <code>page</code> attribute of Struts tags and configuration
* properties. The pattern may consist of any combination of the
* following markers and characters:</p>
*
* <ul>
*
* <li><code><strong>$M</strong></code> - Replaced by the module prefix
* for the current module.</li>
*
* <li><code><strong>$P</strong></code> - Replaced by the
* <code>page</code> attribute value being evaluated.</li>
*
* <li><code><strong>$$</strong></code> - Renders a literal dollar sign
* ("$") character in the resulting URL.</li>
*
* <li>A dollar sign followed by any other character is reserved for
* future use, and both characters are silently swallowed.</li>
*
* <li>All other characters in the pattern are passed through unchanged.
* </li>
*
* </ul>
*
* <p>If this property is set to <code>null</code>, a default pattern of
* <code>$M$P</code> is utilized, which is backwards compatible with the
* hard coded functionality in prior versions.</p>
*/
protected String pagePattern = null;
/**
* <p> The fully qualified class name of the RequestProcessor
* implementation class to be used for this module. </p>
*/
protected String processorClass =
"org.apache.struts.chain.ComposableRequestProcessor";
/**
* <p> The temporary working directory to use for file uploads. </p>
*/
protected String tempDir = null;
public int getBufferSize() {
return (this.bufferSize);
}
public void setBufferSize(int bufferSize) {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
}
this.bufferSize = bufferSize;
}
public String getContentType() {
return (this.contentType);
}
public void setContentType(String contentType) {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
}
this.contentType = contentType;
}
public String getCatalog() {
return (this.catalog);
}
public void setCatalog(String catalog) {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
}
this.catalog = catalog;
}
public String getCommand() {
return (this.command);
}
public void setCommand(String command) {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
}
this.command = command;
}
public String getForwardPattern() {
return (this.forwardPattern);
}
public void setForwardPattern(String forwardPattern) {
this.forwardPattern = forwardPattern;
}
public boolean getInputForward() {
return (this.inputForward);
}
public void setInputForward(boolean inputForward) {
this.inputForward = inputForward;
}
public boolean getLocale() {
return (this.locale);
}
public void setLocale(boolean locale) {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
}
this.locale = locale;
}
public String getMaxFileSize() {
return (this.maxFileSize);
}
public void setMaxFileSize(String maxFileSize) {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
}
this.maxFileSize = maxFileSize;
}
public String getMemFileSize() {
return (this.memFileSize);
}
public void setMemFileSize(String memFileSize) {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
}
this.memFileSize = memFileSize;
}
public String getMultipartClass() {
return (this.multipartClass);
}
public void setMultipartClass(String multipartClass) {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
}
this.multipartClass = multipartClass;
}
public boolean getNocache() {
return (this.nocache);
}
public void setNocache(boolean nocache) {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
}
this.nocache = nocache;
}
public String getPagePattern() {
return (this.pagePattern);
}
public void setPagePattern(String pagePattern) {
this.pagePattern = pagePattern;
}
public String getProcessorClass() {
return (this.processorClass);
}
public void setProcessorClass(String processorClass) {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
}
this.processorClass = processorClass;
}
public String getTempDir() {
return (this.tempDir);
}
public void setTempDir(String tempDir) {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
}
this.tempDir = tempDir;
}
// --------------------------------------------------------- Public Methods
/**
* <p> Return a String representation of this object. </p>
*/
public String toString() {
StringBuffer sb = new StringBuffer("ControllerConfig[");
sb.append("bufferSize=");
sb.append(this.bufferSize);
if (this.contentType != null) {
sb.append(",contentType=");
sb.append(this.contentType);
}
if (this.forwardPattern != null) {
sb.append(",forwardPattern=");
sb.append(this.forwardPattern);
}
sb.append(",inputForward=");
sb.append(this.inputForward);
sb.append(",locale=");
sb.append(this.locale);
if (this.maxFileSize != null) {
sb.append(",maxFileSize=");
sb.append(this.maxFileSize);
}
if (this.memFileSize != null) {
sb.append(",memFileSize=");
sb.append(this.memFileSize);
}
sb.append(",multipartClass=");
sb.append(this.multipartClass);
sb.append(",nocache=");
sb.append(this.nocache);
if (this.pagePattern != null) {
sb.append(",pagePattern=");
sb.append(this.pagePattern);
}
sb.append(",processorClass=");
sb.append(this.processorClass);
if (this.tempDir != null) {
sb.append(",tempDir=");
sb.append(this.tempDir);
}
sb.append("]");
return (sb.toString());
}
}