package org.trianacode.shiwaall.string;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
// TODO: Auto-generated Javadoc
/**
* The Class PatternCollection.
*
* @author Andrew Harrison
* @version 1.0.0 Jul 15, 2010
*/
public class PatternCollection implements StringPattern, Serializable {
/** The serial version uid. */
private static long serialVersionUID = -1;
/** The link. */
private String link = "";
/** The patterns. */
private List<StringPattern> patterns = new ArrayList<StringPattern>();
/**
* Instantiates a new pattern collection.
*
* @param link the link
*/
public PatternCollection(String link) {
this.link = link;
}
/**
* Adds the.
*
* @param pattern the pattern
*/
public void add(StringPattern pattern) {
patterns.add(pattern);
}
/**
* Gets the string pattern list.
*
* @return the string pattern list
*/
public List getStringPatternList() {
return patterns;
}
/**
* Gets the pattern collection size.
*
* @return the pattern collection size
*/
public int getPatternCollectionSize() {
return patterns.size();
}
/* (non-Javadoc)
* @see org.trianacode.shiwaall.string.StringPattern#next()
*/
public String next() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < patterns.size(); i++) {
StringPattern pattern = patterns.get(i);
sb.append(pattern.next());
if (i < patterns.size() - 1) {
sb.append(link);
}
}
return sb.toString();
}
/* (non-Javadoc)
* @see org.trianacode.shiwaall.string.StringPattern#resetCount()
*/
public void resetCount() {
for (StringPattern sp : patterns) {
sp.resetCount();
}
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
public String toString() {
String concat = "";
for (StringPattern string : patterns) {
concat.concat(string.toString());
}
return patterns.toString();
}
/**
* Varies.
*
* @return true, if successful
*/
public boolean varies() {
boolean varies = false;
for (Iterator i = patterns.iterator(); i.hasNext(); ) {
Object o = i.next();
System.out.println(o.getClass().getCanonicalName());
if (!(o instanceof CharSequencePattern)) {
varies = true;
}
}
return varies;
}
}