blob: ceff806db48529761df0fcea2a025eb281565935 [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.
*/
/*
* $Id$
*/
/*
*
* OutputNameManager.java
*
*/
package org.apache.qetest;
/**
* Simple utility class to manage tests with multiple output names.
* <p>Starts with a base name and extension, and returns
* nextName()s like:<pre>
* baseName_<i>1</i>.ext
* baseName_<i>2</i>.ext
* baseName_<i>3</i>.ext
* ...<pre>
* @author Shane_Curcuru@lotus.com
* @version $Id$
*/
public class OutputNameManager
{
// defaults are provided for everything for the terminally lazy
/** NEEDSDOC Field extension */
protected String extension = ".out";
/** NEEDSDOC Field baseName */
protected String baseName = "OutputFile";
/** NEEDSDOC Field currentName */
protected String currentName = "currentUnset";
/** NEEDSDOC Field previousName */
protected String previousName = "previousUnset";
/** NEEDSDOC Field counter */
protected int counter = 0;
/** NEEDSDOC Field SEPARATOR */
public static final String SEPARATOR = "_";
/**
* Construct with just a basename.
*
* @param base basename of file; defaults counter, extension
*/
public OutputNameManager(String base)
{
baseName = base;
}
/**
* Construct with a basename and extension.
*
* @param base basename of file; defaults counter
* @param ext extension to use instead of .out
*/
public OutputNameManager(String base, String ext)
{
baseName = base;
extension = ext;
}
/**
* Construct with a basename, extension, and set the counter.
*
* @param base basename of file; defaults counter
* @param ext extension to use instead of .out
* @param ctr number to start output counting from
*/
public OutputNameManager(String base, String ext, int ctr)
{
baseName = base;
extension = ext;
setCounter(ctr);
}
/** Reset the counter to zero and update current, previous names. */
public void reset()
{
previousName = currentName;
currentName = null;
counter = 0; // Set to 0 since we always call nextOutName() first
}
/**
* Increment counter and get next name.
*
* @return the next name in the series
*/
public String nextName()
{
setCounter(counter + 1); // Updates names
return currentName();
}
/**
* Just get the current name.
*
* @return our current output name
*/
public String currentName()
{
return currentName;
}
/**
* Get the previous name, even past a reset().
*
* @return last name we calculated
*/
public String previousName()
{
return previousName;
}
/**
* Get the current counter number.
*
* @return counter
*/
public int currentCounter()
{
return counter;
}
/**
* Set the current counter number, including names.
*
* @param ctr new counter number to set
*/
public void setCounter(int ctr)
{
counter = ctr;
previousName = currentName;
currentName = baseName + SEPARATOR + counter + extension;
}
} // end of class OutputNameManager