ClassParserChain.java
package com.ziesemer.utils.classParser;
import java.util.ArrayList;
import java.util.List;
/**
* @author Mark A. Ziesemer
* <a href="http://www.ziesemer.com"><www.ziesemer.com></a>
*/
public class ClassParserChain implements IClassParser{
protected List<IClassParser> chain;
public ClassParserChain(){
chain = new ArrayList<IClassParser>();
}
public ClassParserChain(final List<IClassParser> chain){
this.chain = chain;
}
@Override
public Object convert(final Class<?> c, final String str) throws Exception{
for(final IClassParser parser : chain){
final Object result = parser.convert(c, str);
if(result != NO_RESULT){
return result;
}
}
return NO_RESULT;
}
public List<IClassParser> getChain(){
return chain;
}
public void setChain(final List<IClassParser> chain){
this.chain = chain;
}
public static ClassParserChain getDefault(){
final List<IClassParser> chain = new ArrayList<IClassParser>(4);
chain.add(new NumberParser());
chain.add(new CommonParser());
chain.add(new InetAddressParser());
chain.add(new UnhandledParser());
return new ClassParserChain(chain);
}
}