1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct BpmnMappingBlocker {
17 #[serde(rename = "rule")]
18 pub rule: Rule,
19 #[serde(rename = "rule_number")]
20 pub rule_number: i32,
21 #[serde(rename = "message")]
23 pub message: String,
24 #[serde(rename = "element_id", skip_serializing_if = "Option::is_none")]
25 pub element_id: Option<String>,
26 #[serde(rename = "flow_id", skip_serializing_if = "Option::is_none")]
27 pub flow_id: Option<String>,
28 #[serde(rename = "message_name", skip_serializing_if = "Option::is_none")]
29 pub message_name: Option<String>,
30 #[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
31 pub kind: Option<String>,
32 #[serde(rename = "from", skip_serializing_if = "Option::is_none")]
33 pub from: Option<String>,
34 #[serde(rename = "to", skip_serializing_if = "Option::is_none")]
35 pub to: Option<String>,
36 #[serde(rename = "target", skip_serializing_if = "Option::is_none")]
37 pub target: Option<String>,
38 #[serde(rename = "target_flow", skip_serializing_if = "Option::is_none")]
39 pub target_flow: Option<String>,
40 #[serde(rename = "from_kind", skip_serializing_if = "Option::is_none")]
41 pub from_kind: Option<String>,
42 #[serde(rename = "to_kind", skip_serializing_if = "Option::is_none")]
43 pub to_kind: Option<String>,
44 #[serde(rename = "from_message", skip_serializing_if = "Option::is_none")]
45 pub from_message: Option<String>,
46 #[serde(rename = "to_message", skip_serializing_if = "Option::is_none")]
47 pub to_message: Option<String>,
48 #[serde(rename = "expected_scope", skip_serializing_if = "Option::is_none")]
49 pub expected_scope: Option<String>,
50 #[serde(rename = "actual_scope", skip_serializing_if = "Option::is_none")]
51 pub actual_scope: Option<String>,
52 #[serde(rename = "mapped_source", skip_serializing_if = "Option::is_none")]
53 pub mapped_source: Option<String>,
54 #[serde(rename = "mapped_target", skip_serializing_if = "Option::is_none")]
55 pub mapped_target: Option<String>,
56 #[serde(rename = "sources", skip_serializing_if = "Option::is_none")]
57 pub sources: Option<Vec<String>>,
58 #[serde(rename = "targets", skip_serializing_if = "Option::is_none")]
59 pub targets: Option<Vec<String>>,
60 #[serde(rename = "candidates", skip_serializing_if = "Option::is_none")]
61 pub candidates: Option<Vec<String>>,
62 #[serde(rename = "missing", skip_serializing_if = "Option::is_none")]
63 pub missing: Option<Vec<String>>,
64 #[serde(rename = "unexpected", skip_serializing_if = "Option::is_none")]
65 pub unexpected: Option<Vec<String>>,
66}
67
68impl BpmnMappingBlocker {
69 pub fn new(rule: Rule, rule_number: i32, message: String) -> BpmnMappingBlocker {
71 BpmnMappingBlocker {
72 rule,
73 rule_number,
74 message,
75 element_id: None,
76 flow_id: None,
77 message_name: None,
78 kind: None,
79 from: None,
80 to: None,
81 target: None,
82 target_flow: None,
83 from_kind: None,
84 to_kind: None,
85 from_message: None,
86 to_message: None,
87 expected_scope: None,
88 actual_scope: None,
89 mapped_source: None,
90 mapped_target: None,
91 sources: None,
92 targets: None,
93 candidates: None,
94 missing: None,
95 unexpected: None,
96 }
97 }
98}
99#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
101pub enum Rule {
102 #[serde(rename = "unknown_source")]
103 UnknownSource,
104 #[serde(rename = "unknown_target")]
105 UnknownTarget,
106 #[serde(rename = "duplicate_source")]
107 DuplicateSource,
108 #[serde(rename = "activity_deleted")]
109 ActivityDeleted,
110 #[serde(rename = "mapped_kind_changed")]
111 MappedKindChanged,
112 #[serde(rename = "mapped_message_binding_changed")]
113 MappedMessageBindingChanged,
114 #[serde(rename = "message_name_removed")]
115 MessageNameRemoved,
116 #[serde(rename = "activities_merged")]
117 ActivitiesMerged,
118 #[serde(rename = "sequence_flows_merged")]
119 SequenceFlowsMerged,
120 #[serde(rename = "mapped_scope_incoherent")]
121 MappedScopeIncoherent,
122 #[serde(rename = "sequence_flow_unmapped")]
123 SequenceFlowUnmapped,
124 #[serde(rename = "sequence_flow_ambiguous")]
125 SequenceFlowAmbiguous,
126 #[serde(rename = "mapped_incoming_flows_changed")]
127 MappedIncomingFlowsChanged,
128 #[serde(rename = "boundary_events_changed")]
129 BoundaryEventsChanged,
130}
131
132impl Default for Rule {
133 fn default() -> Rule {
134 Self::UnknownSource
135 }
136}
137