package org.trianacode.shiwaall.string;
import java.io.Serializable;
// TODO: Auto-generated Javadoc
/**
* The Class AlphabetPattern.
*
* @author Andrew Harrison
* @version 1.0.0 Jul 15, 2010
*/
public class AlphabetPattern implements StringPattern, Serializable{
/** The serial version uid. */
private static long serialVersionUID = -1;
/** The start. */
private int start;
/** The current. */
private int current;
/** The increment interval. */
private int incrementInterval;
/** The curr count. */
private int currCount = 0;
/**
* Instantiates a new alphabet pattern.
*
* @param uppercase the uppercase
* @param incrementInterval the increment interval
*/
public AlphabetPattern(boolean uppercase, int incrementInterval) {
if(uppercase) {
start = 65;
} else {
start = 97;
}
current = start;
this.incrementInterval = incrementInterval;
}
/**
* Instantiates a new alphabet pattern.
*/
public AlphabetPattern() {
this(false, 1);
}
/**
* Instantiates a new alphabet pattern.
*
* @param uppercase the uppercase
*/
public AlphabetPattern(boolean uppercase) {
this(uppercase, 1);
}
/**
* Instantiates a new alphabet pattern.
*
* @param incrementInterval the increment interval
*/
public AlphabetPattern(int incrementInterval) {
this(false, incrementInterval);
}
/* (non-Javadoc)
* @see org.trianacode.shiwaall.string.StringPattern#next()
*/
public String next() {
String ret = new String(new char[]{(char)current});
currCount++;
if(currCount % incrementInterval == 0) {
current++;
}
if(current - 26 >= start) {
current = start;
}
return ret;
}
/* (non-Javadoc)
* @see org.trianacode.shiwaall.string.StringPattern#resetCount()
*/
@Override
public void resetCount() {
}
}