Search in sources :

Example 1 with TypeObject

use of org.jbpm.process.core.TypeObject in project jbpm by kiegroup.

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;
    name = name.replace("org.drools.core.process.core", "org.jbpm.process.core");
    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(org.jbpm.process.core.TypeObject) DataType(org.jbpm.process.core.datatype.DataType) ObjectDataType(org.jbpm.process.core.datatype.impl.type.ObjectDataType) ObjectDataType(org.jbpm.process.core.datatype.impl.type.ObjectDataType)

Aggregations

TypeObject (org.jbpm.process.core.TypeObject)1 DataType (org.jbpm.process.core.datatype.DataType)1 ObjectDataType (org.jbpm.process.core.datatype.impl.type.ObjectDataType)1 SAXParseException (org.xml.sax.SAXParseException)1