/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.activiti.editor.language.json.converter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import math.geom2d.Point2D;
import math.geom2d.conic.Circle2D;
import math.geom2d.curve.AbstractContinuousCurve2D;
import math.geom2d.line.Line2D;
import math.geom2d.polygon.Polyline2D;
import org.activiti.bpmn.model.Activity;
import org.activiti.bpmn.model.Artifact;
import org.activiti.bpmn.model.BaseElement;
import org.activiti.bpmn.model.BoundaryEvent;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.bpmn.model.Event;
import org.activiti.bpmn.model.EventDefinition;
import org.activiti.bpmn.model.ExtensionElement;
import org.activiti.bpmn.model.FlowElement;
import org.activiti.bpmn.model.FlowElementsContainer;
import org.activiti.bpmn.model.FlowNode;
import org.activiti.bpmn.model.Gateway;
import org.activiti.bpmn.model.GraphicInfo;
import org.activiti.bpmn.model.Lane;
import org.activiti.bpmn.model.Message;
import org.activiti.bpmn.model.MessageEventDefinition;
import org.activiti.bpmn.model.MessageFlow;
import org.activiti.bpmn.model.Pool;
import org.activiti.bpmn.model.Process;
import org.activiti.bpmn.model.SequenceFlow;
import org.activiti.bpmn.model.Signal;
import org.activiti.bpmn.model.SignalEventDefinition;
import org.activiti.bpmn.model.SubProcess;
import org.activiti.bpmn.model.ValuedDataObject;
import org.activiti.editor.constants.EditorJsonConstants;
import org.activiti.editor.constants.StencilConstants;
import org.activiti.editor.language.json.converter.util.JsonConverterUtil;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author Tijs Rademakers
*/
public class BpmnJsonConverter implements EditorJsonConstants,
StencilConstants, ActivityProcessor {
protected static final Logger LOGGER = LoggerFactory
.getLogger(BpmnJsonConverter.class);
protected static Map<Class<? extends BaseElement>, Class<? extends BaseBpmnJsonConverter>> convertersToJsonMap = new HashMap<Class<? extends BaseElement>, Class<? extends BaseBpmnJsonConverter>>();
protected static Map<String, Class<? extends BaseBpmnJsonConverter>> convertersToBpmnMap = new HashMap<String, Class<? extends BaseBpmnJsonConverter>>();
public static final String MODELER_NAMESPACE = "http://activiti.com/modeler";
protected static final DateFormat defaultFormat = new SimpleDateFormat(
"yyyyMMddHHmmss");
protected static final DateFormat entFormat = new SimpleDateFormat(
"yyyyMMddHHmmssSSS");
static {
// start and end events
StartEventJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
EndEventJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
// connectors
SequenceFlowJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
MessageFlowJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
AssociationJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
// task types
BusinessRuleTaskJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
MailTaskJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
ManualTaskJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
ReceiveTaskJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
ScriptTaskJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
ServiceTaskJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
UserTaskJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
CallActivityJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
CamelTaskJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
MuleTaskJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
SendTaskJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
// gateways
ExclusiveGatewayJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
InclusiveGatewayJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
ParallelGatewayJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
EventGatewayJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
// scope constructs
SubProcessJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
EventSubProcessJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
// catch events
CatchEventJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
// throw events
ThrowEventJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
// boundary events
BoundaryEventJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
// artifacts
TextAnnotationJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
DataStoreJsonConverter.fillTypes(convertersToBpmnMap,
convertersToJsonMap);
}
private static final List<String> DI_CIRCLES = new ArrayList<String>();
private static final List<String> DI_RECTANGLES = new ArrayList<String>();
private static final List<String> DI_GATEWAY = new ArrayList<String>();
static {
DI_CIRCLES.add(STENCIL_EVENT_START_ERROR);
DI_CIRCLES.add(STENCIL_EVENT_START_MESSAGE);
DI_CIRCLES.add(STENCIL_EVENT_START_NONE);
DI_CIRCLES.add(STENCIL_EVENT_START_TIMER);
DI_CIRCLES.add(STENCIL_EVENT_START_SIGNAL);
DI_CIRCLES.add(STENCIL_EVENT_BOUNDARY_ERROR);
DI_CIRCLES.add(STENCIL_EVENT_BOUNDARY_SIGNAL);
DI_CIRCLES.add(STENCIL_EVENT_BOUNDARY_TIMER);
DI_CIRCLES.add(STENCIL_EVENT_BOUNDARY_MESSAGE);
DI_CIRCLES.add(STENCIL_EVENT_BOUNDARY_CANCEL);
DI_CIRCLES.add(STENCIL_EVENT_BOUNDARY_COMPENSATION);
DI_CIRCLES.add(STENCIL_EVENT_CATCH_MESSAGE);
DI_CIRCLES.add(STENCIL_EVENT_CATCH_SIGNAL);
DI_CIRCLES.add(STENCIL_EVENT_CATCH_TIMER);
DI_CIRCLES.add(STENCIL_EVENT_THROW_NONE);
DI_CIRCLES.add(STENCIL_EVENT_THROW_SIGNAL);
DI_CIRCLES.add(STENCIL_EVENT_END_NONE);
DI_CIRCLES.add(STENCIL_EVENT_END_ERROR);
DI_CIRCLES.add(STENCIL_EVENT_END_CANCEL);
DI_CIRCLES.add(STENCIL_EVENT_END_TERMINATE);
DI_RECTANGLES.add(STENCIL_CALL_ACTIVITY);
DI_RECTANGLES.add(STENCIL_SUB_PROCESS);
DI_RECTANGLES.add(STENCIL_EVENT_SUB_PROCE
没有合适的资源?快使用搜索试试~ 我知道了~
Lemon OA系统源代码
共4517个文件
java:1273个
sql:919个
js:678个
5星 · 超过95%的资源 需积分: 32 145 下载量 141 浏览量
2016-06-29
16:36:42
上传
评论 2
收藏 10.68MB ZIP 举报
温馨提示
来源lemon社区,集成activiti并根据ZH特色定制了流程。源代码
资源推荐
资源详情
资源评论
收起资源包目录
Lemon OA系统源代码 (4517个子文件)
lemon.apk 1.6MB
javax.cache.spi.CachingProvider 50B
CHANGES 3KB
bootstrap.css 144KB
bootstrap.css 143KB
bootstrap.css 138KB
bootstrap.css 134KB
bootstrap.css 129KB
bootstrap.css 124KB
bootstrap.min.css 120KB
bootstrap.min.css 118KB
bootstrap.css 118KB
bootstrap.min.css 115KB
bootstrap.min.css 111KB
bootstrap.min.css 107KB
bootstrap.min.css 104KB
bootstrap.min.css 98KB
app.css 42KB
app.css 37KB
editor.css 35KB
jquery-ui.css 32KB
editor.css 31KB
editor.css 30KB
bootstrap-theme.css 26KB
bootstrap-theme.css 26KB
style-common.css 25KB
jquery-ui.min.css 25KB
jquery-ui.min.css 25KB
fullcalendar.css 24KB
bootstrap-theme.min.css 23KB
bootstrap-theme.min.css 23KB
bootstrap-theme.css 22KB
bootstrap-theme.css 22KB
bootstrap-responsive.css 22KB
bootstrap-theme.css 21KB
bootstrap-theme.min.css 19KB
bootstrap-theme.min.css 19KB
bootstrap-theme.min.css 18KB
layout.css 18KB
dialog.css 18KB
datepicker.css 18KB
jquery.ui.theme.css 17KB
bootstrap-responsive.min.css 16KB
dialog.css 16KB
host.css 15KB
dialog.css 15KB
bootstrap-theme.css 15KB
jquery.ui.theme.min.css 13KB
chosen.css 13KB
layout2.css 13KB
bootstrap-theme.min.css 13KB
host.css 12KB
datetimepicker.css 12KB
fullcalendar.min.css 11KB
chosen.min.css 11KB
uniform.default.css 11KB
style-editor.css 10KB
layout3.css 9KB
uipanel.css 9KB
uipanel.css 9KB
uniform.default.min.css 8KB
style.css 8KB
kanban.css 8KB
ng-grid-2.0.7.min.css 7KB
blueimp-gallery.min.css 7KB
zTreeStyle.css 6KB
sprite_list_icon.css 6KB
jquery.jqplot.css 5KB
richcombo.css 5KB
daterangepicker-bs3.css 5KB
fullcalendar.print.css 5KB
colorbox.css 5KB
richcombo.css 4KB
jquery.ui.datepicker.css 4KB
DT_bootstrap.css 4KB
jquery.jqplot.min.css 3KB
dashboard.css 3KB
jquery.Jcrop.css 3KB
jquery.ui.datepicker.min.css 3KB
editor.css 3KB
jquery.ui.button.css 2KB
phpcolors.css 2KB
style.css 2KB
docs.css 2KB
jasmine.css 2KB
jquery.Jcrop.min.css 2KB
jquery.ui.button.min.css 2KB
inputosaurus.css 2KB
jquery.orgchart.css 2KB
templates.css 2KB
templates.css 1KB
jquery.ui.core.css 1KB
jquery.ui.menu.css 1KB
templates.css 1KB
jquery.ui.tabs.css 1KB
jquery.ui.slider.css 1KB
jquery.ui.dialog.css 1KB
jquery.ui.resizable.css 1KB
jquery.ui.spinner.css 1KB
xform.css 1KB
共 4517 条
- 1
- 2
- 3
- 4
- 5
- 6
- 46
资源评论
- yangyang1222018-03-14试试,看看怎么样。。
- JAVA老刘2017-06-05你好,我运行的时候问题不少,能帮忙看看嘛?QQ2684231871
- wangxianzhenkevin2017-08-14没有数据库
__NewFound__
- 粉丝: 0
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功