use of io.automatiko.engine.workflow.base.core.TypeObject in project automatiko-engine by automatiko-io.
the class TypeHandler method start.
public Object start(final String uri, final String localName, final Attributes attrs, final ExtensibleXmlParser parser) throws SAXException {
parser.startElementBuilder(localName, attrs);
TypeObject typeable = (TypeObject) parser.getParent();
String name = attrs.getValue("name");
emptyAttributeCheck(localName, "name", name, parser);
DataType dataType = null;
try {
dataType = (DataType) Class.forName(name).newInstance();
// TODO make this pluggable so datatypes can read in other properties as well
if (dataType instanceof ObjectDataType) {
String className = attrs.getValue("className");
if (className == null) {
className = "java.lang.Object";
}
((ObjectDataType) dataType).setClassName(className);
}
} catch (ClassNotFoundException e) {
throw new SAXParseException("Could not find datatype " + name, parser.getLocator());
} catch (InstantiationException e) {
throw new SAXParseException("Could not instantiate datatype " + name, parser.getLocator());
} catch (IllegalAccessException e) {
throw new SAXParseException("Could not access datatype " + name, parser.getLocator());
}
typeable.setType(dataType);
return dataType;
}
Aggregations