ActivitiListener

news2024/12/24 8:52:25

ActivitiListener

  • 目录
    • 概述
      • 需求:
    • 设计思路
    • 实现思路分析
      • 1.ActivitiListener
      • 2.Activity
      • 3.Gateway
      • 5.FieldExtension
    • IOSpecification
  • 参考资料和推荐阅读

Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.

目录

在这里插入图片描述

概述

ActivitiListener的是一个非常常见的需求。

需求:

设计思路

实现思路分析

1.ActivitiListener

protected String event;
  protected String implementationType;
  protected String implementation;
  protected List<FieldExtension> fieldExtensions = new ArrayList<FieldExtension>();
  protected String onTransaction;
  protected String customPropertiesResolverImplementationType;
  protected String customPropertiesResolverImplementation;

2.Activity

在这里插入图片描述

public abstract class Activity extends FlowNode {

  protected String defaultFlow;
  protected boolean forCompensation;
  protected MultiInstanceLoopCharacteristics loopCharacteristics;
  protected IOSpecification ioSpecification;
  protected List<DataAssociation> dataInputAssociations = new ArrayList<DataAssociation>();
  protected List<DataAssociation> dataOutputAssociations = new ArrayList<DataAssociation>();
  protected List<BoundaryEvent> boundaryEvents = new ArrayList<BoundaryEvent>();
  protected String failedJobRetryTimeCycleValue;
  protected List<MapExceptionEntry> mapExceptions = new ArrayList<MapExceptionEntry>();

  public String getFailedJobRetryTimeCycleValue() {
    return failedJobRetryTimeCycleValue;
  }

  public void setFailedJobRetryTimeCycleValue(String failedJobRetryTimeCycleValue) {
    this.failedJobRetryTimeCycleValue = failedJobRetryTimeCycleValue;
  }

3.Gateway


public class ExclusiveGateway extends Gateway {

  public ExclusiveGateway clone() {
    ExclusiveGateway clone = new ExclusiveGateway();
    clone.setValues(this);
    return clone;
  }

  public void setValues(ExclusiveGateway otherElement) {
    super.setValues(otherElement);
  }
}

5.FieldExtension

ublic class FieldExtension extends BaseElement {

  protected String fieldName;
  protected String stringValue;
  protected String expression;

  public FieldExtension() {

  }

  public String getFieldName() {
    return fieldName;
  }

  public void setFieldName(String fieldName) {
    this.fieldName = fieldName;
  }

  public String getStringValue() {
    return stringValue;
  }

  public void setStringValue(String stringValue) {
    this.stringValue = stringValue;
  }

  public String getExpression() {
    return expression;
  }

  public void setExpression(String expression) {
    this.expression = expression;
  }

  public FieldExtension clone() {
    FieldExtension clone = new FieldExtension();
    clone.setValues(this);
    return clone;
  }

  public void setValues(FieldExtension otherExtension) {
    setFieldName(otherExtension.getFieldName());
    setStringValue(otherExtension.getStringValue());
    setExpression(otherExtension.getExpression());
  }
}

IOSpecification

在这里插入图片描述

public class IOSpecification extends BaseElement {

  protected List<DataSpec> dataInputs = new ArrayList<DataSpec>();
  protected List<DataSpec> dataOutputs = new ArrayList<DataSpec>();
  protected List<String> dataInputRefs = new ArrayList<String>();
  protected List<String> dataOutputRefs = new ArrayList<String>();

  public List<DataSpec> getDataInputs() {
    return dataInputs;
  }

  public void setDataInputs(List<DataSpec> dataInputs) {
    this.dataInputs = dataInputs;
  }

  public List<DataSpec> getDataOutputs() {
    return dataOutputs;
  }

  public void setDataOutputs(List<DataSpec> dataOutputs) {
    this.dataOutputs = dataOutputs;
  }

  public List<String> getDataInputRefs() {
    return dataInputRefs;
  }

  public void setDataInputRefs(List<String> dataInputRefs) {
    this.dataInputRefs = dataInputRefs;
  }

  public List<String> getDataOutputRefs() {
    return dataOutputRefs;
  }

  public void setDataOutputRefs(List<String> dataOutputRefs) {
    this.dataOutputRefs = dataOutputRefs;
  }

  public IOSpecification clone() {
    IOSpecification clone = new IOSpecification();
    clone.setValues(this);
    return clone;
  }

  public void setValues(IOSpecification otherSpec) {
    dataInputs = new ArrayList<DataSpec>();
    if (otherSpec.getDataInputs() != null && !otherSpec.getDataInputs().isEmpty()) {
      for (DataSpec dataSpec : otherSpec.getDataInputs()) {
        dataInputs.add(dataSpec.clone());
      }
    }

    dataOutputs = new ArrayList<DataSpec>();
    if (otherSpec.getDataOutputs() != null && !otherSpec.getDataOutputs().isEmpty()) {
      for (DataSpec dataSpec : otherSpec.getDataOutputs()) {
        dataOutputs.add(dataSpec.clone());
      }
    }

    dataInputRefs = new ArrayList<String>(otherSpec.getDataInputRefs());
    dataOutputRefs = new ArrayList<String>(otherSpec.getDataOutputRefs());
  }
}

参考资料和推荐阅读

[1].www.activaty.org

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/30635.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

骨传导原理是什么?哪些骨传导耳机值得入手

​骨传导耳机是目前耳机市场比较流行耳机&#xff0c;深受年轻一族和运动达人的喜爱。但尽管这种产品受到很多人的青睐&#xff0c;相较传统耳机&#xff0c;大众对骨传导耳机的认识和程度并不高&#xff0c;也有很多小伙伴不知道骨传导耳机的原理是怎么发声的&#xff0c;骨传…

Vue子组件传自定义属性给父组件

我们知道组件之间是不能够之间进行通信的&#xff0c;都是相互独立的&#xff0c;你用不了我的状态和方法&#xff0c;我也用不了你的&#xff0c;那如何实现通信呢&#xff0c;可以间接实现&#xff1b; 实现父组件和子组件的通信&#xff1a; 子组件想用父组件的状态需要父…

Java并发之线程池

文章目录前言一、Java中线程池概览1.1 类图1.2 内部流程图二、源码探索2.1 构造参数2.2 线程池状态2.3 Worker 的添加和运行2.4 阻塞队列2.5 任务拒绝策略三、实际使用3.1 动态线程池3.2 拓展使用3.3 springboot 中线程池参考前言 在高并发的 Java 程序设计中&#xff0c;编写…

数字化安全生产平台 DPS 重磅发布

11 月 5 日&#xff0c;在 2022 杭州 云栖大会上&#xff0c;数字化安全生产平台 DPS 重磅发布&#xff0c;助力传统运维向 SRE 转型。 阿里巴巴资深技术专家 周洋 十四五规划下&#xff0c;各行各业全面加速数字化转型与升级。随着企业数字化业务规模变大&#xff0c;迭代速…

Dubbo服务远程调用的简介及使用教程

一、Dubbo的简介 Dubbo是阿里巴巴公司开源的一个高性能、轻量级的 Java RPC 框架。 致力于提供高性能和透明化的 RPC 远程服务调用方案&#xff0c;以及 SOA 服务治理方案。 官网&#xff1a;https://dubbo.apache.org/ SOA架构&#xff1a;&#xff08;Service-Oriented Arch…

华为云RDS数据库测评:性能超出预期,双11优惠还在继续

一、前言 作为一名电商行业公司的员工&#xff0c;深刻体会到系统大压力、高并发下保证服务的正常使用是多么严峻的挑战。双11这段时间&#xff0c;因为激增的使用量让我们的数据库服务严重吃紧&#xff0c;压力特别的大&#xff0c;甚至还出现了交易漏单&#xff0c;脏数据等…

【Servlet】3:Servlet 的基本原理、Servlet对象的生命周期

目录 第五章 | 动态资源与Servlet | 章节概述 | Tomcat与Servlet的 原理、关系 Tomcat的基本构成​编辑 Server处理HTTP请求 Connector内部架构分析 Container内部架构分析 Tomcat的执行流程小结 | Servlet 概述、接口实现 Servlet的基本概述 实现Servlet接口并通过U…

LeetCode HOT 100 —— 10.正则表达式匹配

题目 给你一个字符串 s 和一个字符规律 p&#xff0c;请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 ‘.’ 匹配任意单个字符 ‘*’ 匹配零个或多个前面的那一个元素 所谓匹配&#xff0c;是要涵盖 整个 字符串 s的&#xff0c;而不是部分字符串。 思路 对于字符串…

11月24日国产蓝牙AOA高精度定位vs国外知名厂家的蓝牙aoa定位效果的展示

11月24日国产蓝牙AOA高精度定位vs国外知名厂家的蓝牙aoa定位效果的展示 11月24日国产蓝牙AOA高精度定位vs国外知名厂家的蓝牙aoa定位效果的展示

操作系统的基本概念

文章目录一、操作系统的概念1.什么是操作系统&#xff1f;2 计算机系统的构成3 系统软件的概念4 操作系统的主要作用二、操作系统目标和功能1. 目标1.1 有效性1.2 方便性1.3 可扩充性1.4 开放性2. 功能2.1 作为系统资源的管理者2.2 作为用户与计算机[硬件系统]之间的接口2.3 实…

Linus 文件处理(一)

目录 一、前言 二、低级文件访问 1、write 2、read 3、open 4、Initial Permissions &#xff08;1&#xff09;umask &#xff08;2&#xff09;close &#xff08;3&#xff09;ioctl &#xff08;4&#xff09;第一个 copy_system.c 程序 &#xff08;5&#xff…

Apache ShardingSphere(一) 基本概念介绍

文章目录一 基本介绍1.1 概述1.2 ShardingSphere JDBC1.3 ShardingSphere Proxy1.4 ShardingSphere Sidecar1.5 数据库的扩展1.5.1 向上扩展1.5.2 横向扩展1.5.2.1 读写分离1.5.2.2 垂直切分1.5.2.3 水平切分1.6 分库与分表1.6.1 水平分库1.6.2 水平分表1.6.3 垂直分库1.6.4 垂…

[iOS]使用MonkeyDev完成Hook

一、确定目标 先定个小目标&#xff0c;使用七猫举个例&#xff0c;去移除小说阅读页底部广告和章节之间的广告。 二、HOOK 1. 创建MonkeyApp项目导入砸壳包 2. 使用Reveal工具确定“底部广告”和“章末广告”的视图名称 底部广告 View Controller: Class: QMReader.YYReade…

Strassen矩阵乘法问题(Java)

Strassen矩阵乘法问题&#xff08;Java&#xff09; 文章目录Strassen矩阵乘法问题&#xff08;Java&#xff09;1、前置介绍3、代码实现4、复杂度分析5、参考资料1、前置介绍 矩阵乘法是线性代数中最常见的问题之一 &#xff0c;它在数值计算中有广泛的应用。 设A和B是2个nXn…

搭建灾情快速分析系统 | Bigemap助力防灾减灾重点工作

Bigemap国产基础软件凭借自身强大的新GIS引擎技术与完善的产品链&#xff0c;为相关部门提供了集"灾情采集-灾情监测-灾害快速评估-应急指挥"于一体的灾害防灾减灾解决方案&#xff0c;搭建了灾情快速分析系统&#xff0c;该系统成为相关部门应对灾情的重要支撑平台。…

虚拟号码认证如何开通?

近年来&#xff0c;经常会接到外卖、房产中介、信用贷款等电话&#xff0c;让顾客不胜其扰。现在电话标记功能使用越来越普遍&#xff0c;可以大概了解电话“来意”&#xff0c;同时也会让误标记、恶意标记很方便。对于开展业务或办公司或企业的人&#xff0c;更加不能让自己的…

排序算法之选择排序

今天来给大家介绍一下排序算法之选择排序 选择排序&#xff1a;&#xff08;Selection sort&#xff09;是一种简单直观的排序算法&#xff0c;也是一种不稳定的排序方法。 选择排序的原理&#xff1a; 一组无序待排数组&#xff0c;做升序排序&#xff0c;我们先假定第一个…

【生成模型】Diffusion Models:概率扩散模型

---前言一、Diffusion Model 基本介绍二、生成模型对比三、直观理解Diffusion model四、形式化解析Diffusion model五、详解 Diffusion Model&#xff08;数学推导&#xff09;1.前向过程(扩散过程)2.逆扩散过程3.逆扩散条件概率推导4.训练损失六、训练、测试伪代码1. 训练2.测…

鲲鹏devkit编译调试工具——《sudoku》作业解析

《sudoku》作业解析 本次实验以sudoku项目为例介绍鲲鹏编译调试插件的基本使用方法 本次实验的步骤主要为 获取源码安装鲲鹏编译调试插件服务器配置进行代码同步配置配置测试任务进行编译调试 接下来我们先获取本次实验所需要的源码 获取源码 sudoku项目已经上传到github使…

stata外部命令大全(包含面板门槛、系统GMM、空间计量、Pvar、中介效应等)

1、数据来源&#xff1a;自主整理 2、时间跨度&#xff1a;无 3、区域范围&#xff1a;无 4、指标说明&#xff1a; 该些外部命令包含面板门槛、系统GMM、空间计量、pvar、中介效应等涵盖全部 以下是部分命令截图&#xff1a; 空间计量&#xff1a; 系统GMM&#xff08;动…