Package org.activiti.workflow.simple.alfresco.model

Examples of org.activiti.workflow.simple.alfresco.model.M2Model


    M2Property property = new M2Property();
    property.setMandatory(new M2Mandatory(def.isMandatory()));
    property.setName(propertyName);
    property.setPropertyType(AlfrescoConversionConstants.PROPERTY_TYPE_TEXT);
   
    M2Model model = AlfrescoConversionUtil.getContentModel(conversion);
    contentType.getProperties().add(property);
   
    // Create constraint for the values
    if(def.getTransitions() != null && !def.getTransitions().isEmpty()) {
      M2Constraint valueConstraint = new M2Constraint();
      valueConstraint.setType(AlfrescoConversionConstants.CONTENT_MODEL_CONSTRAINT_TYPE_LIST);
      valueConstraint.setName(propertyName + AlfrescoConversionConstants.CONTENT_MODEL_CONSTRAINT_TYPE_LIST.toLowerCase());
     
      List<String> values = new ArrayList<String>(def.getTransitions().size());
      for(ListPropertyEntry entry : def.getTransitions()) {
        values.add(entry.getValue());
      }
      valueConstraint.getParameters().add(new M2NamedValue(AlfrescoConversionConstants.CONTENT_MODEL_CONSTRAINT_ALLOWED_VALUES, null, values));
     
      // Add constraint to the root model instead of the type itself and reference it from within the property
      // for readability and reuse of the model
      model.getConstraints().add(valueConstraint);
     
      M2Constraint reference = new M2Constraint();
      reference.setRef(valueConstraint.getName());
      property.getConstraints().add(reference);
    }
   
    // Add a pointer to the transition-property as well, using an override
    M2PropertyOverride override = new M2PropertyOverride();
    override.setDefaultValue(AlfrescoConversionUtil.getUrlQualifiedPropertyName(propertyName, model.getNamespaces().get(0)));
    override.setName(AlfrescoConversionConstants.PROPERTY_OUTCOME_PROPERTY_NAME);
    contentType.getPropertyOverrides().add(override);
   
    // Add the transition-set
    form.getFormAppearance().addFormSet(AlfrescoConversionConstants.FORM_SET_RESPONSE, null, null, null);
View Full Code Here


    M2Property property = new M2Property();
    property.setMandatory(new M2Mandatory(booleanDefinition.isMandatory()));
    property.setName(propertyName);
    property.setPropertyType(AlfrescoConversionConstants.PROPERTY_TYPE_BOOLEAN);
   
    M2Model model = AlfrescoConversionUtil.getContentModel(conversion);
    M2Aspect aspect = model.getAspect(propertyName);
    if(aspect != null) {
      // In case the "shared" aspect doesn't have the actual property set yet, we
      // do this here
      if(aspect.getProperties().isEmpty()) {
        aspect.getProperties().add(property);
View Full Code Here

    M2Property property = new M2Property();
    property.setMandatory(new M2Mandatory(dateDefinition.isMandatory()));
    property.setName(propertyName);
    property.setPropertyType(AlfrescoConversionConstants.PROPERTY_TYPE_TEXT);
   
    M2Model model = AlfrescoConversionUtil.getContentModel(conversion);
    M2Aspect aspect = model.getAspect(propertyName);
    if(aspect != null) {
      // In case the "shared" aspect doesn't have the actual property set yet, we
      // do this here
      if(aspect.getProperties().isEmpty()) {
        aspect.getProperties().add(property);
      }
      contentType.getMandatoryAspects().add(propertyName);
    } else {
      contentType.getProperties().add(property);
    }
   
    // Create constraint for the values
    if(dateDefinition.getEntries() != null && !dateDefinition.getEntries().isEmpty()) {
      M2Constraint valueConstraint = new M2Constraint();
      valueConstraint.setType(AlfrescoConversionConstants.CONTENT_MODEL_CONSTRAINT_TYPE_LIST);
      valueConstraint.setName(propertyName + AlfrescoConversionConstants.CONTENT_MODEL_CONSTRAINT_TYPE_LIST.toLowerCase());
     
      List<String> values = new ArrayList<String>(dateDefinition.getEntries().size());
      for(ListPropertyEntry entry : dateDefinition.getEntries()) {
        // TODO: i18n file using labels in properties-file, a part of deployment?
        values.add(entry.getValue());
      }
      valueConstraint.getParameters().add(new M2NamedValue(AlfrescoConversionConstants.CONTENT_MODEL_CONSTRAINT_ALLOWED_VALUES, null, values));
     
      // Add constraint to the root model instead of the type itself and reference it from within the property
      // for readability and reuse of the model
      model.getConstraints().add(valueConstraint);
     
      M2Constraint reference = new M2Constraint();
      reference.setRef(valueConstraint.getName());
      property.getConstraints().add(reference);
    }
View Full Code Here

      property.setPropertyType(AlfrescoConversionConstants.PROPERTY_TYPE_DATETIME);
    } else {
      property.setPropertyType(AlfrescoConversionConstants.PROPERTY_TYPE_DATE);
    }
   
    M2Model model = AlfrescoConversionUtil.getContentModel(conversion);
    M2Aspect aspect = model.getAspect(propertyName);
    if(aspect != null) {
      // In case the "shared" aspect doesn't have the actual property set yet, we
      // do this here
      if(aspect.getProperties().isEmpty()) {
        aspect.getProperties().add(property);
View Full Code Here

    M2Property property = new M2Property();
    property.setMandatory(new M2Mandatory(numberPropertyDefinition.isMandatory()));
    property.setName(propertyName);
    property.setPropertyType(AlfrescoConversionConstants.PROPERTY_TYPE_DOUBLE);
   
    M2Model model = AlfrescoConversionUtil.getContentModel(conversion);
    M2Aspect aspect = model.getAspect(propertyName);
    if(aspect != null) {
      // In case the "shared" aspect doesn't have the actual property set yet, we
      // do this here
      if(aspect.getProperties().isEmpty()) {
        aspect.getProperties().add(property);
View Full Code Here

  }

  protected void addAssociation(Form form, String formSet, ReferencePropertyDefinition referenceDefinition,
      M2Type contentType, WorkflowDefinitionConversion conversion) {

    M2Model model = AlfrescoConversionUtil.getContentModel(conversion);

    // Check if model contains an aspect for the property
    String propertyName = getPropertyName(referenceDefinition, conversion);

    M2ClassAssociation association = new M2ClassAssociation();
    association.setName(propertyName);
    association.setTitle(referenceDefinition.getName());
    M2AssociationSource source = new M2AssociationSource();
    source.setMany(false);
    source.setMandatory(true);
    M2AssociationTarget target = new M2AssociationTarget();
    target.setClassName(referenceDefinition.getType());
    target.setMandatory(referenceDefinition.isMandatory());

    // Determine whether or not it's allowed to select multiple targets
    boolean isTargetMany = extractBooleanFromParameters(referenceDefinition.getParameters(),
        AlfrescoConversionConstants.PARAMETER_REFERENCE_MANY, false);
    target.setMany(isTargetMany);

    association.setTarget(target);
    association.setSource(source);

    M2Aspect aspect = model.getAspect(propertyName);
    if (aspect != null) {
      if (aspect.getAssociations().isEmpty()) {
        aspect.getAssociations().add(association);
      }
      contentType.getMandatoryAspects().add(propertyName);
View Full Code Here

    M2Property property = new M2Property();
    property.setMandatory(new M2Mandatory(textDefinition.isMandatory()));
    property.setName(propertyName);
    property.setPropertyType(AlfrescoConversionConstants.PROPERTY_TYPE_TEXT);
   
    M2Model model = AlfrescoConversionUtil.getContentModel(conversion);
    M2Aspect aspect = model.getAspect(propertyName);
    if(aspect != null) {
      // In case the "shared" aspect doesn't have the actual property set yet, we
      // do this here
      if(aspect.getProperties().isEmpty()) {
        aspect.getProperties().add(property);
View Full Code Here

  @Override
  protected FlowElement createProcessArtifact(AlfrescoReviewStepDefinition stepDefinition,
      WorkflowDefinitionConversion conversion) {
    FlowElement lastElement;

    M2Model model = AlfrescoConversionUtil.getContentModel(conversion);
    String namespacePrefix = model.getNamespaces().get(0).getPrefix();
   
    String id = stepDefinition.getId();
    if(id == null) {
      id = AlfrescoConversionUtil.getValidIdString(stepDefinition.getName());
    }
   
    // Break down the review into separate steps and convert those instead
    HumanStepDefinition reviewTask = new HumanStepDefinition();
    reviewTask.setName(stepDefinition.getName());
    reviewTask.setDescription("Review task");

    // Clone the review-form and add custom transitions property
    FormDefinition finalForm = null;
    if (stepDefinition.getForm() != null) {
      finalForm = stepDefinition.getForm().clone();
    } else {
      finalForm = new FormDefinition();
    }
    finalForm.addFormProperty(createTransitionsProperty());
    reviewTask.setForm(finalForm);
   
   
    // Assignment
    if(stepDefinition.getAssignmentType() == HumanStepAssignmentType.USER) {
      reviewTask.setAssignee(new PropertyReference(stepDefinition.getAssignmentPropertyName()).getPlaceholder());
    }
   
    // Add a script-task that initializes the correct variables for the review
    ScriptServiceTaskBuilder builder = new ScriptServiceTaskBuilder();
    builder.setExecutionVariable(getCountVariableName(id, namespacePrefix), "0");
   
    String requiredCount = null;
    if(stepDefinition.getRequiredApprovalCount() != null) {
      if(PropertyReference.isPropertyReference(stepDefinition.getRequiredApprovalCount())) {
        PropertyReference reference = PropertyReference.createReference(stepDefinition.getRequiredApprovalCount());
        requiredCount = reference.getVariableReference(namespacePrefix);
        AlfrescoConversionUtil.getPropertyReferences(conversion).add(reference);
      } else {
        // No reference, use explicit value
        requiredCount = stepDefinition.getRequiredApprovalCount();
      }
    } else {
      requiredCount = "1";
    }
    builder.setExecutionVariable(getRequiredCountVariableName(id, namespacePrefix), requiredCount);
   
    ServiceTask serviceTask = builder.build();
    serviceTask.setName("Review initialization");
    serviceTask.setId(conversion.getUniqueNumberedId(ConversionConstants.SERVICE_TASK_ID_PREFIX));
   
    addFlowElement(conversion, serviceTask, true);

    // Create the actual element
    UserTask userTask = (UserTask) conversion.getConversionFactory().getStepConverterFor(reviewTask)
        .convertStepDefinition(reviewTask, conversion);
    lastElement = userTask;
   

    M2Type userTaskType = model.getType(userTask.getFormKey());
   
    // Update parent, since we use an "outcome" for this task
    userTaskType.setParentName(AlfrescoConversionConstants.OUTCOME_BASE_FORM_TYPE);
   
    // Add script to the complete-task listener to update approval count (if needed)
View Full Code Here

  @Override
  public UserTask convertStepDefinition(StepDefinition stepDefinition, WorkflowDefinitionConversion conversion) {
    HumanStepDefinition humanStep = (HumanStepDefinition) stepDefinition;
    validate(humanStep);
   
    M2Model model = AlfrescoConversionUtil.getContentModel(conversion);
    M2Namespace modelNamespace = model.getNamespaces().get(0);
   
    // Let superclass handle BPMN-specific conversion
    UserTask userTask = super.convertStepDefinition(stepDefinition, conversion);
   
    // Clear form-properties in the BPMN file, as we use custom form-mapping in Alfresco
    userTask.getFormProperties().clear();
   
    userTask.setName(humanStep.getName() != null ? humanStep.getName() : humanStep.getId());
   
    // Create the content model for the task
    M2Type type = new M2Type();
    model.getTypes().add(type);
    type.setName(AlfrescoConversionUtil.getQualifiedName(modelNamespace.getPrefix(),
        humanStep.getId()));
    type.setParentName(AlfrescoConversionConstants.DEFAULT_BASE_FORM_TYPE);
   
    // Update task-key on the task itself
View Full Code Here

      processId = AlfrescoConversionUtil.getValidIdString(conversion.getWorkflowDefinition().getId());
    } else {
      processId = generateUniqueProcessId(conversion);
    }
   
    M2Model model = addContentModel(conversion, processId);
    addExtension(conversion, processId);
   
    // In case the same property definitions are used across multiple forms, we need to identify this
    // up-front and create an aspect for this that can be shared due to the fact that you cannot define the same
    // property twice in a the same content-model namespace
View Full Code Here

TOP

Related Classes of org.activiti.workflow.simple.alfresco.model.M2Model

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.