-
Notifications
You must be signed in to change notification settings - Fork 92
/
Copy pathdelete_rules_ea.js
49 lines (39 loc) · 957 Bytes
/
delete_rules_ea.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
!INC Local Scripts.EAConstants-JScript
/*
* Script Name:
* Author:
* Purpose:
* Date:
*/
var constraints_to_delete = ["correcttypeassigned", "correctstyleassigned", "correctpredefinedtype"];
function processElement(e) {
var E as EA.Element;
var C as EA.Constraint;
E = e;
for (var i = E.Constraints.Count - 1; i >= 0; --i) {
C = E.Constraints.GetAt(i);
let shouldDelete = constraints_to_delete.map(s => C.Name.toLowerCase().indexOf(s) !== -1).some(x => x);
if (shouldDelete) {
Session.Output(`Deleting ${E.Name}.${C.Name}`);
E.Constraints.DeleteAt(i, true);
E.Constraints.Refresh();
}
}
}
function visitPackage(p) {
var P as EA.Package;
P = p;
for (var i = 0; i < P.Elements.Count; ++i) {
var E = P.Elements.GetAt(i);
processElement(E);
}
for (var i = 0; i < P.Packages.Count; ++i) {
var sub = P.Packages.GetAt(i);
visitPackage(sub);
}
}
function main()
{
visitPackage(Models.GetAt(0));
}
main();