Package org.jbpm.wire.descriptor

Examples of org.jbpm.wire.descriptor.ObjectDescriptor


*/
public class MemoryJobSessionBinding implements Binding {

  public Object parse(Element element, Parse parse, Parser parser) {

    ObjectDescriptor objectDescriptor = new ObjectDescriptor();
    objectDescriptor.setClassName(MemoryJobSession.class.getName());

    return objectDescriptor;
  }
View Full Code Here


* @see WireParser
*/
public class ObjectBinding implements Binding {

  public Object parse(Element element, Parse parse, Parser parser) {
    ObjectDescriptor descriptor = new ObjectDescriptor();

    WireParser wireParser = (WireParser) parser;
    String className = XmlUtil.attribute(element, "class");
    String factoryObjectName = XmlUtil.attribute(element, "factory");
    Element factoryElement = XmlUtil.element(element, "factory");

    if (className!=null) {
      descriptor.setClassName(className);
      if (factoryObjectName!=null) {
        parse.addProblem("attribute factory is specified together with attribute class in element object: "+XmlUtil.toString(element));
      }
      if (factoryElement!=null) {
        parse.addProblem("element factory is specified together with attribute class in element object: "+XmlUtil.toString(element));
      }

      Element constructorElement = XmlUtil.element(element, "constructor");
      if (constructorElement!=null) {
        List<Element> argElements = XmlUtil.elements(constructorElement, "arg");
        List<ArgDescriptor> argDescriptors = wireParser.parseArgs(argElements, parse);
        descriptor.setArgDescriptors(argDescriptors);

        if (element.hasAttribute("method")) {
          parse.addProblem("attributes class and method indicate static method and also a constructor element is specified for element object: "+XmlUtil.toString(element));
        }
      }

    } else if (factoryObjectName!=null) {
      descriptor.setFactoryObjectName(factoryObjectName);
      if (factoryElement!=null) {
        parse.addProblem("element factory is specified together with attribute factory in element object: "+XmlUtil.toString(element));
      }

    } else if (factoryElement!=null) {
      Element factoryDescriptorElement = XmlUtil.element(factoryElement);
      Descriptor factoryDescriptor = (Descriptor) parser.parseElement(factoryDescriptorElement, parse, WireParser.CATEGORY_DESCRIPTOR);
      descriptor.setFactoryDescriptor(factoryDescriptor);

    } else {
      parse.addProblem("element object must have one of {attribute class, attribute factory or element factory}: "+XmlUtil.toString(element));
    }

    // method
    if (element.hasAttribute("method")) {
      descriptor.setMethodName(element.getAttribute("method"));

      List<Element> argElements = XmlUtil.elements(element, "arg");
      List<ArgDescriptor> argDescriptors = wireParser.parseArgs(argElements, parse);
      descriptor.setArgDescriptors(argDescriptors);
    } else if (className == null) {
      parse.addProblem("element object with a element factory or a attribute factory must have a attribute method: "+XmlUtil.toString(element));
    }

    if( (className == null) && (XmlUtil.element(element, "constructor") != null)){
      parse.addProblem("element object with a element factory or a attribute factory can't have a constructor element: "+XmlUtil.toString(element));
    }

    // read the operations elements
    List<Operation> operations = null;
    List<Element> elements = XmlUtil.elements(element);
    if (elements!=null) {
      for (Element childElement: elements) {
        if(!childElement.getTagName().equals("constructor")
            && !childElement.getTagName().equals("factory")
            && !childElement.getTagName().equals("arg")){
          Operation operation = (Operation) parser.parseElement(childElement, parse, WireParser.CATEGORY_OPERATION);
          if (operation!=null) {
            if (operations==null) {
              operations = new ArrayList<Operation>();
            }
            operations.add(operation);
          }else{
            parse.addProblem("element object can only have factory, arg, constructor elements or " +
                "an operation element ("+ parser.getBindings().getTagNames(WireParser.CATEGORY_OPERATION) +")." +
                " Invalid element '"+childElement.getTagName()+"' in: "+XmlUtil.toString(element));
          }
        }
      }
    }
    descriptor.setOperations(operations);

    // autowiring
    String autoWireText = XmlUtil.attribute(element, "auto-wire");
    Boolean isAutoWireEnabled = XmlUtil.booleanEquals(autoWireText, Boolean.FALSE);
    if (isAutoWireEnabled==null) {
      parse.addProblem("invalid auto-wire value: '"+autoWireText+"' in "+XmlUtil.toString(element));
    } else if (isAutoWireEnabled) {
      descriptor.setAutoWireEnabled(true);
    }
    return descriptor;
  }
View Full Code Here

/**
* @author Pascal Verdage
*/
public class MemoryTimerSessionBinding implements Binding {
  public Object parse(Element element, Parse parse, Parser parser) {
      ObjectDescriptor objectDescriptor = new ObjectDescriptor();
      objectDescriptor.setClassName(MemoryTimerSession.class.getName());

      objectDescriptor.addTypedInjection(Transaction.class, "transaction");

      return objectDescriptor;
  }
View Full Code Here

* @author Pascal Verdage
*/
public class StandardTimerSessionBinding implements Binding {

  public Object parse(Element element, Parse parse, Parser parser) {
      ObjectDescriptor objectDescriptor = new ObjectDescriptor();
      objectDescriptor.setClassName(StandardTimerSession.class.getName());

      InvokeOperation invokeStartOperation = new InvokeOperation();
      invokeStartOperation.setMethodName("start");
      objectDescriptor.addOperation(invokeStartOperation);

      return objectDescriptor;
  }
View Full Code Here

    FieldOperation persistenceServiceInjection = new FieldOperation();
    persistenceServiceInjection.setFieldName("hibernateSession");
    persistenceServiceInjection.setDescriptor(typeRefDescriptor);
   
    ObjectDescriptor objectDescriptor = new ObjectDescriptor();
    objectDescriptor.setClassName(StandardJobSession.class.getName());
    objectDescriptor.addOperation(persistenceServiceInjection);
   
    return objectDescriptor;
  }
View Full Code Here

  public Object parse(Element element, Parse parse, Parser parser) {
    String factoryName = XmlUtil.attribute(element, "factory");
    ReferenceDescriptor factoryDescriptor = new ReferenceDescriptor();
    factoryDescriptor.setValue(factoryName);

    ObjectDescriptor persistenceSessionDescriptor = new ObjectDescriptor();
    persistenceSessionDescriptor.setFactoryDescriptor(factoryDescriptor);
    persistenceSessionDescriptor.setMethodName("openPersistenceSession");

    persistenceSessionDescriptor.setAutoWireEnabled(true);

    String connectionName = XmlUtil.attribute(element, "connection");
    if (connectionName!=null) {
      List<ArgDescriptor> argDescriptors = new ArrayList<ArgDescriptor>();
      persistenceSessionDescriptor.setArgDescriptors(argDescriptors);

      ArgDescriptor argDescriptor = new ArgDescriptor();
      argDescriptor.setTypeName(Connection.class.getName());
      ReferenceDescriptor connectionDescriptor = new ReferenceDescriptor();
      connectionDescriptor.setValue(connectionName);
      argDescriptor.setDescriptor(connectionDescriptor);
    }

    SubscribeOperation subscribeOperation = new SubscribeOperation();
    subscribeOperation.setWireEvents(false);
    persistenceSessionDescriptor.addOperation(subscribeOperation);
   
    return persistenceSessionDescriptor;
  }
View Full Code Here

*/
public class JobExecutorBinding implements Binding {

  public Object parse(Element element, Parse parse, Parser parser) {
    // create a job executor object   
    ObjectDescriptor descriptor = new ObjectDescriptor();
    descriptor.setClassName(JobExecutor.class.getName());

    // by default invoke the start method, unless auto-start is disabled
    boolean autoStart = XmlUtil.booleanEquals(element, "auto-start", Boolean.TRUE);
    if (autoStart) {
      InvokeOperation invokeStartOperation = new InvokeOperation();
      invokeStartOperation.setMethodName("start");
      descriptor.addOperation(invokeStartOperation);
    }
   
    // by default eager initialization is enabled
//    descriptor.setInit(AbstractDescriptor.INIT_REQUIRED);

    // inject the command executor
    TypeRefDescriptor commandExecutorDescriptor = new TypeRefDescriptor();
    commandExecutorDescriptor.setContextClass(CommandService.class);

    FieldOperation commandExecutorInjection = new FieldOperation();
    commandExecutorInjection.setFieldName("commandService");
    commandExecutorInjection.setDescriptor(commandExecutorDescriptor);
   
    descriptor.addOperation(commandExecutorInjection);

    if (element.hasAttribute("name")) {
      StringDescriptor nameDescriptor = new StringDescriptor();
      nameDescriptor.setValue(element.getAttribute("name"));
      FieldOperation nameInjection = new FieldOperation();
View Full Code Here

* @author Tom Baeyens
*/
public class StandardMessageSessionBinding implements Binding {

  public Object parse(Element element, Parse parse, Parser parser) {
    ObjectDescriptor objectDescriptor = new ObjectDescriptor();
    objectDescriptor.setClassName(StandardMessageSession.class.getName());

    objectDescriptor.addTypedInjection(Transaction.class, "transaction");
    objectDescriptor.addTypedInjection(JobExecutor.class, "jobExecutor");

    return objectDescriptor;
  }
View Full Code Here

TOP

Related Classes of org.jbpm.wire.descriptor.ObjectDescriptor

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.