InetAddressParser.java
package com.ziesemer.utils.classParser;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author Mark A. Ziesemer
* <a href="http://www.ziesemer.com"><www.ziesemer.com></a>
*/
public class InetAddressParser implements IClassParser{
protected final Pattern inetSocketAddressPat = Pattern.compile("^(.*?):(\\d+)");
@Override
public Object convert(final Class<?> c, final String str) throws Exception{
if(InetAddress.class.isAssignableFrom(c)){
return InetAddress.getByName(str);
}else if(InetSocketAddress.class.isAssignableFrom(c)){
final Matcher m = inetSocketAddressPat.matcher(str);
if(m.matches()){
final String host = m.group(1);
final int port = Integer.parseInt(m.group(2));
return new InetSocketAddress(host, port);
}
throw new ClassParseException("Unrecognized", c, str);
}
return NO_RESULT;
}
}