package com.swtworkbench.community.xswt.dataparser.parsers;
import com.swtworkbench.community.xswt.XSWTException;
import com.swtworkbench.community.xswt.dataparser.IDataParserContext;
import com.swtworkbench.community.xswt.dataparser.NonDisposableDataParser;
public class ConstructorDataParser extends NonDisposableDataParser {
protected String getRegex() {
return "(.+)(\\(.*\\))";
}
public Object parse(String source, IDataParserContext context) throws XSWTException {
if (! matches(source)) {
return null;
}
Class c = (Class)getObject(1, Class.class, context);
if (c == null) {
return null;
}
Class[] args = (Class[])getObject(2, Class[].class, context);
if (args == null) {
return null;
}
try {
return c.getConstructor(args);
} catch (Exception e) {
}
return null;
}
}