blob: ca8335aadb976607f9e910e5c73418e86945ceaf [file] [log] [blame]
/*
* 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.webapp.admin.valve;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import java.util.List;
/**
* Form bean for the accesslog valve page.
*
* @author Manveen Kaur
* @version $Revision$ $Date$
*/
public final class AccessLogValveForm extends ValveForm {
// ----------------------------------------------------- Instance Variables
/**
* The text for the debug level.
*/
private String debugLvl = "0";
/**
* Set of valid values for debug level.
*/
private List debugLvlVals = null;
/**
* The text for the directory.
*/
private String directory = null;
/**
* The text for the pattern.
*/
private String pattern = null;
/**
* The text for the prefix.
*/
private String prefix = null;
/**
* The text for the suffix.
*/
private String suffix = null;
/**
* The text for the connection URL.
*/
private String resolveHosts = "false";
/**
* The text for the rotatable.
*/
private String rotatable = "true";
/**
* Set of boolean values.
*/
private List booleanVals = null;
// ------------------------------------------------------------- Properties
/**
* Return the debugVals.
*/
public List getDebugLvlVals() {
return this.debugLvlVals;
}
/**
* Set the debugVals.
*/
public void setDebugLvlVals(List debugLvlVals) {
this.debugLvlVals = debugLvlVals;
}
/**
* Return the booleanVals.
*/
public List getBooleanVals() {
return this.booleanVals;
}
/**
* Set the booleanVals.
*/
public void setBooleanVals(List booleanVals) {
this.booleanVals = booleanVals;
}
/**
* Return the Debug Level Text.
*/
public String getDebugLvl() {
return this.debugLvl;
}
/**
* Set the Debug Level Text.
*/
public void setDebugLvl(String debugLvl) {
this.debugLvl = debugLvl;
}
/**
* Return the directory.
*/
public String getDirectory() {
return this.directory;
}
/**
* Set the directory.
*/
public void setDirectory(String directory) {
this.directory = directory;
}
/**
* Return the pattern.
*/
public String getPattern() {
return this.pattern;
}
/**
* Set the pattern.
*/
public void setPattern(String pattern) {
this.pattern = pattern;
}
/**
* Return the prefix.
*/
public String getPrefix() {
return this.prefix;
}
/**
* Set the prefix.
*/
public void setPrefix(String prefix) {
this.prefix = prefix;
}
/**
* Return the suffix.
*/
public String getSuffix() {
return this.suffix;
}
/**
* Set the suffix.
*/
public void setSuffix(String suffix) {
this.suffix = suffix;
}
/**
* Return the resolve hosts.
*/
public String getResolveHosts() {
return this.resolveHosts;
}
/**
* Set the resolveHosts.
*/
public void setResolveHosts(String resolveHosts) {
this.resolveHosts = resolveHosts;
}
/**
* Return the rotatable.
*/
public String getRotatable() {
return this.rotatable;
}
/**
* Set the rotatable.
*/
public void setRotatable(String rotatable) {
this.rotatable = rotatable;
}
// --------------------------------------------------------- Public Methods
/**
* Reset all properties to their default values.
*
* @param mapping The mapping used to select this instance
* @param request The servlet request we are processing
*/
public void reset(ActionMapping mapping, HttpServletRequest request) {
super.reset(mapping, request);
this.debugLvl = "0";
this.directory = null;
this.prefix = null;
this.suffix = null;
this.pattern = null;
this.resolveHosts = "false";
this.rotatable = "true";
}
/**
* Render this object as a String.
*/
public String toString() {
StringBuffer sb = new StringBuffer("AccessLogValveForm[adminAction=");
sb.append(getAdminAction());
sb.append("',valveType=");
sb.append(getValveType());
sb.append(",debugLvl=");
sb.append(debugLvl);
sb.append(",directory=");
sb.append(directory);
sb.append("',prefix='");
sb.append(prefix);
sb.append("',pattern=");
sb.append(pattern);
sb.append(",resolveHosts=");
sb.append(resolveHosts);
sb.append(",rotatable=");
sb.append(rotatable);
sb.append("',objectName='");
sb.append(getObjectName());
sb.append("]");
return (sb.toString());
}
/**
* Validate the properties that have been set from this HTTP request,
* and return an <code>ActionErrors</code> object that encapsulates any
* validation errors that have been found. If no errors are found, return
* <code>null</code> or an <code>ActionErrors</code> object with no
* recorded error messages.
*
* @param mapping The mapping used to select this instance
* @param request The servlet request we are processing
*/
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
// if not specified, default is access_log.
// to specify no prefix, specify a 0 length string...
if ((prefix == null) || (prefix.length() == 0)){
prefix = "access_log.";
}
// default is a 0 length string
if ((suffix == null) || (suffix.length() < 1)) {
suffix = "";
}
// If no directory attribute is specified, the default
// value is "logs".
if ((directory == null) || (directory.length() < 1)) {
directory = "logs";
}
if ((pattern == null) || (pattern.length() < 1)) {
errors.add("pattern",
new ActionMessage("error.pattern.required"));
}
return errors;
}
}