Package org.jbpm.pvm.internal.wire.descriptor

Examples of org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor


    }
    return false;
  }

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

    Parser wireParser = (Parser) parser;
    String className = XmlUtil.attribute(element, "class");
    String expr = XmlUtil.attribute(element, "expr");
    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), element);
      }
      if (factoryElement!=null) {
        parse.addProblem("element 'factory' is specified together with attribute 'class' in element 'object': "+XmlUtil.toString(element), 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), 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), element);
      }

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

    } else if (expr!=null) {
      descriptor.setExpr(expr);
      String lang = XmlUtil.attribute(element, "lang");
      descriptor.setLang(lang);
     
    } else {
      parse.addProblem("element 'object' must have one of {attribute 'class', attribute 'expr', attribute 'factory' or element 'factory'}: "+XmlUtil.toString(element), 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 ( (factoryObjectName!=null)
                || (factoryElement!=null)
              ) {
      parse.addProblem("element 'object' with a element 'factory' or a attribute 'factory' must have a attribute 'method': "+XmlUtil.toString(element), element);
    }

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

    // read the operations elements
    List<Operation> operations = null;
    List<Element> elements = XmlUtil.elements(element);
   
    Set<String> operationTagNames = null;
    Bindings bindings = parser.getBindings();
    if (bindings!=null) {
      operationTagNames = bindings.getTagNames(WireParser.CATEGORY_OPERATION);
    } else {
      operationTagNames = Collections.EMPTY_SET;
    }

    for (Element childElement: elements) {
      if (operationTagNames.contains(childElement.getTagName())) {
        Operation operation = (Operation) parser.parseElement(childElement, parse, WireParser.CATEGORY_OPERATION);
        if (operations==null) {
          operations = new ArrayList<Operation>();
        }
        operations.add(operation);
      }
    }
    descriptor.setOperations(operations);

    // autowiring
    Boolean isAutoWireEnabled = XmlUtil.attributeBoolean(element, "auto-wire", false, parse);
    if (isAutoWireEnabled!=null) {
      descriptor.setAutoWireEnabled(isAutoWireEnabled.booleanValue());
    }
    return descriptor;
  }
View Full Code Here


  public HistoryServiceBinding() {
    super("history-service");
  }

  public Object parse(Element element, Parse parse, Parser parser) {
    ObjectDescriptor descriptor = new ObjectDescriptor(HistoryServiceImpl.class);
    descriptor.addInjection("commandService", new ReferenceDescriptor(CommandService.NAME_TX_REQUIRED_COMMAND_SERVICE));
    return descriptor;
  }
View Full Code Here

  public TransactionBinding() {
    super("transaction");
  }

  public Object parse(Element element, Parse parse, Parser parser) {
    ObjectDescriptor transactionDescriptor = null;

    String type = "standard";
    if (element.hasAttribute("type")) {
      type = element.getAttribute("type");
    }
   
    if ("standard".equals(type)) {
      transactionDescriptor = new ObjectDescriptor(StandardTransaction.class);
    } else if ("jta".equals(type)){
      transactionDescriptor = new ObjectDescriptor(JtaTransaction.class);
    } else if ("spring".equals(type)){
      transactionDescriptor = new ObjectDescriptor(SpringTransaction.class);
    } else {
      parse.addProblem("unsupported transaction type: "+type, element);
    }
   
    return transactionDescriptor;
View Full Code Here

    activityBuilder.activity.setActivityBehaviour(activityBehaviour);
    return activityBuilder;
  }

  public ActivityBuilder startActivity(Class<? extends ActivityBehaviour> activityClass) {
    return startActivity(null, new ObjectDescriptor(activityClass));
  }
View Full Code Here

  public ActivityBuilder startActivity(Class<? extends ActivityBehaviour> activityClass) {
    return startActivity(null, new ObjectDescriptor(activityClass));
  }

  public ActivityBuilder startActivity(String activityName, Class<? extends ActivityBehaviour> activityClass) {
    return startActivity(activityName, new ObjectDescriptor(activityClass));
  }
View Full Code Here

  public MailProducer parseMailProducer(Element element, Parse parse, String defaultTemplateName) {
    // check whether the element is a generic object descriptor
    if (ObjectBinding.isObjectDescriptor(element)) {
      // TODO test custom mail producer
      ObjectDescriptor objectDescriptor = parseObjectDescriptor(element, parse);
      return (MailProducer) WireContext.create(objectDescriptor);
    }

    // parse the default producer
    MailProducerImpl mailProducer = new MailProducerImpl();
View Full Code Here

  }

  public UserCodeReference parseUserCodeReference(Element element, Parse parse) {
    UserCodeReference userCodeReference = new UserCodeReference();

    ObjectDescriptor objectDescriptor = parseObjectDescriptor(element, parse);
    userCodeReference.setDescriptor(objectDescriptor);
   
    if (objectDescriptor.getExpr()!=null) {
      // expressions are not cached by default
      userCodeReference.setCached(false);
    }

    Boolean isCached = XmlUtil.attributeBoolean(element, "cache", false, parse, null);
View Full Code Here

    Class<?> clazz;
    // method invocation on object or static method invocation in case object is null
    if (target!=null) {
      clazz = target.getClass();
    } else {
      ObjectDescriptor objectDescriptor = (ObjectDescriptor) invocationReference.getDescriptor();
      String className = objectDescriptor.getClassName();
      ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
      clazz = Class.forName(className, true, classLoader)
    }
   
    WireContext wireContext = new WireContext(new WireDefinition());
View Full Code Here

  }
 
  private void parseJavaInvocation(JavaActivity javaActivity, Element element, Parse parse, JpdlParser parser) {
    UserCodeReference invocationReference = parser.parseUserCodeReference(element, parse);
    javaActivity.setInvocationReference(invocationReference);   
    ObjectDescriptor objectDescriptor = (ObjectDescriptor) invocationReference.getDescriptor();
    javaActivity.setArgDescriptors(objectDescriptor.getArgDescriptors());
    objectDescriptor.setArgDescriptors(null);
    javaActivity.setMethodName(objectDescriptor.getMethodName());
    objectDescriptor.setMethodName(null);
  }
View Full Code Here

TOP

Related Classes of org.jbpm.pvm.internal.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.