4
4
<Description >
5
5
Cache UML Explorer vX.X.X/*build.replace:pkg.version*/
6
6
Class contains methods that return structured classes/packages data.</Description >
7
- <TimeChanged >63843,54972.140109 </TimeChanged >
7
+ <TimeChanged >63843,83200.096917 </TimeChanged >
8
8
<TimeCreated >63653,67019.989197</TimeCreated >
9
9
10
10
<Method name =" getAllNamespacesList" >
@@ -45,33 +45,34 @@ Returns structured class tree with all classes available in current namespace</D
45
45
set level = 1
46
46
do objects.SetAt(resp, level)
47
47
48
-
49
48
do classes.Execute()
50
49
while (classes.Next()) {
51
50
set name = classes.Data("Name")
52
51
if ($EXTRACT(name, 1, 1) = "%") && ($NAMESPACE '= "%SYS") { continue }
53
52
set parts = $LISTFROMSTRING(name, ".")
54
- set i = 0
55
- while (i < $LISTLENGTH(parts)) && ($LISTGET(lastParts, i + 1 ) = $LISTGET(parts, i + 1 )) {
56
- set i = i + 1
53
+ set level = 1
54
+ while ((level < $LISTLENGTH(parts)) && ($LISTGET(lastParts, level ) = ("/"_ $LISTGET(parts, level)) )) {
55
+ set level = level + 1
57
56
}
58
- set level = i + 1
59
57
set resp = objects.GetAt(level)
60
58
if (resp="") {
61
59
set resp = ##class(%ZEN.proxyObject).%New()
62
- do objects.GetAt(level - 1).%DispatchSetProperty($LISTGET(parts, level - 1), resp)
60
+ do objects.GetAt(level - 1).%DispatchSetProperty("/" _ $LISTGET(parts, level - 1), resp)
63
61
do objects.SetAt(resp, level)
64
62
}
65
63
while ($LISTLENGTH(parts) > level) {
66
64
set level = level + 1
67
65
set resp = ##class(%ZEN.proxyObject).%New()
68
- do objects.GetAt(level - 1).%DispatchSetProperty($LISTGET(parts, level - 1), resp)
66
+ do objects.GetAt(level - 1).%DispatchSetProperty("/" _ $LISTGET(parts, level - 1), resp)
69
67
do objects.SetAt(resp, level)
70
68
}
71
69
if ($LISTLENGTH(parts) = level) {
72
70
do resp.%DispatchSetProperty($LISTGET(parts, level), classes.Data("Hidden"))
73
71
}
74
72
set lastParts = parts
73
+ for i=1:1:$LISTLENGTH(lastParts)-1 {
74
+ set $LIST(lastParts, i) = "/"_$LISTGET(lastParts, i)
75
+ }
75
76
}
76
77
77
78
quit objects.GetAt(1)
@@ -96,18 +97,25 @@ Return structured data about class.</Description>
96
97
set oQueries = ##class(%ZEN.proxyObject).%New()
97
98
set oIndices = ##class(%ZEN.proxyObject).%New()
98
99
99
- set oClass.NAMESPACE = $NAMESPACE
100
- set oClass.SYSTEM = classDefinition.System
101
- set oClass.PROCEDUREBLOCK = classDefinition.ProcedureBlock
102
- set oClass.ABSTRACT = classDefinition.Abstract
103
- set oClass.FINAL = classDefinition.Final
104
- set oClass.HIDDEN = classDefinition.Hidden
105
- set oClass.classType = classDefinition.ClassType
106
- set oClass.serverOnly = classDefinition.ServerOnly // -
107
100
set oClass.isDataType = classDefinition.ClientDataTypeIsDefined()
101
+ set oClass.isOdbcType = classDefinition.OdbcTypeIsDefined()
102
+ set oClass.isSoapBindingStyle = classDefinition.SoapBindingStyleIsDefined()
103
+ set oClass.isSoapBodyUse = classDefinition.SoapBodyUseIsDefined()
104
+ set oClass.isSqlCategory = classDefinition.SqlCategoryIsDefined()
105
+
106
+ set props = ##class(%Dictionary.ClassDefinition).%OpenId("%Dictionary.ClassDefinition")
107
+ for j=1:1:props.Properties.Count() {
108
+ set pname = props.Properties.GetAt(j).Name
109
+ set:((pname '= "parent")
110
+ && ('props.Properties.GetAt(j).Private)
111
+ && ('$IsObject($PROPERTY(classDefinition, pname)))) $PROPERTY(oClass, pname) = $PROPERTY(classDefinition, pname)
112
+ }
113
+ if (oClass.TimeChanged) { set oClass.TimeChanged = $zdatetime(oClass.TimeChanged) }
114
+ if (oClass.TimeCreated) { set oClass.TimeCreated = $zdatetime(oClass.TimeCreated) }
108
115
116
+ set oClass.Super = "" // do not quit with super at this moment
109
117
if (oData.restrictPackage) && ('..inPackage(oData.basePackageName, package)) quit oClass
110
- set oClass.super = ..correctInheritance(oData, classDefinition, package)
118
+ set oClass.Super = ..correctInheritance(oData, classDefinition, package) // now expand super names
111
119
112
120
set oClass.properties = oProperties
113
121
set count = classDefinition.Properties.Count()
@@ -185,7 +193,7 @@ Return structured data about class.</Description>
185
193
do oIndices.%DispatchSetProperty(ind.Name, oProp)
186
194
}
187
195
188
- do ..collectInheritance(oData, oClass.super )
196
+ do ..collectInheritance(oData, oClass.Super )
189
197
190
198
quit oClass
191
199
]]> </Implementation >
0 commit comments