Search in sources :

Example 1 with TypeObject

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;
}
Also used : SAXParseException(org.xml.sax.SAXParseException) TypeObject(io.automatiko.engine.workflow.base.core.TypeObject) DataType(io.automatiko.engine.api.workflow.datatype.DataType) ObjectDataType(io.automatiko.engine.workflow.base.core.datatype.impl.type.ObjectDataType) ObjectDataType(io.automatiko.engine.workflow.base.core.datatype.impl.type.ObjectDataType)

Aggregations

DataType (io.automatiko.engine.api.workflow.datatype.DataType)1 TypeObject (io.automatiko.engine.workflow.base.core.TypeObject)1 ObjectDataType (io.automatiko.engine.workflow.base.core.datatype.impl.type.ObjectDataType)1 SAXParseException (org.xml.sax.SAXParseException)1