From c00791bc43e9b2a0d58807157d49756187707f1e Mon Sep 17 00:00:00 2001 From: Nikita Savchenko Date: Sun, 16 Jun 2019 15:34:15 +0300 Subject: [PATCH] Add support for 2019.* ISC products, fixes #24 --- .gitignore | 3 ++ import.bat | 2 +- package.json | 2 +- src/cls/ClassExplorer/ClassView.cls | 46 +++++++++++++++++++++++------ 4 files changed, 42 insertions(+), 11 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..53d398c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/node_modules/ +/build +/package-lock.json \ No newline at end of file diff --git a/import.bat b/import.bat index 1e36096..04d2e8a 100644 --- a/import.bat +++ b/import.bat @@ -6,7 +6,7 @@ @echo off :: CHANGE THIS PATH TO YOUR CACHÉ INSTALLATION PATH ON WINDOWS (folder that contains bin, CSP, mgr and other folders) -set CACHE_DIR=C:\Program Files\InterSystems\Ensemble +set CACHE_DIR=C:\Program Files\Ensemble-2017 :: NAMESPACE TO IMPORT PACKAGE TO set NAMESPACE=USER :: Other variables diff --git a/package.json b/package.json index 1ac3918..891446a 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "CacheClassExplorer", - "version": "1.21.0", + "version": "1.21.1", "description": "Class Explorer for InterSystems Caché", "directories": { "test": "test" diff --git a/src/cls/ClassExplorer/ClassView.cls b/src/cls/ClassExplorer/ClassView.cls index 24bc574..82f5c97 100644 --- a/src/cls/ClassExplorer/ClassView.cls +++ b/src/cls/ClassExplorer/ClassView.cls @@ -94,9 +94,13 @@ ClassMethod fillClassData(oData As %ZEN.proxyObject, className As %String, level set props = ##class(%Dictionary.ClassDefinition).%OpenId("%Dictionary.ClassDefinition") for j=1:1:props.Properties.Count() { set pname = props.Properties.GetAt(j).Name - set:((pname '= "parent") - && ('props.Properties.GetAt(j).Private) - && ('$IsObject($PROPERTY(classDefinition, pname)))) $PROPERTY(oClass, pname) = $PROPERTY(classDefinition, pname) + try { + set:((pname '= "parent") + && ('props.Properties.GetAt(j).Private) + && ('$IsObject($PROPERTY(classDefinition, pname)))) $PROPERTY(oClass, pname) = $PROPERTY(classDefinition, pname) + } catch (e) { + // Skip private properties that InterSystems may add in any future versions + } } if (oClass.TimeChanged) { set oClass.TimeChanged = $zdatetime(oClass.TimeChanged) } if (oClass.TimeCreated) { set oClass.TimeCreated = $zdatetime(oClass.TimeCreated) } @@ -117,7 +121,11 @@ ClassMethod fillClassData(oData As %ZEN.proxyObject, className As %String, level do oProperties.%DispatchSetProperty(p.Name, oProp) for j=1:1:props.Properties.Count() { set pname = props.Properties.GetAt(j).Name - set:(pname '= "parent") $PROPERTY(oProp, pname) = $PROPERTY(p, pname) + try { + set:(pname '= "parent") $PROPERTY(oProp, pname) = $PROPERTY(p, pname) + } catch (e) { + // Skip private properties that InterSystems may add in any future versions + } } if (..classExists(package _ "." _ p.Type)) { set oProp.Type = package _ "." _ p.Type @@ -140,7 +148,11 @@ ClassMethod fillClassData(oData As %ZEN.proxyObject, className As %String, level do oMethods.%DispatchSetProperty(met.Name, oMeth) for j=1:1:props.Properties.Count() { set pname = props.Properties.GetAt(j).Name - set:((pname '= "parent") && (pname '= "Implementation")) $PROPERTY(oMeth, pname) = $PROPERTY(met, pname) + try { + set:((pname '= "parent") && (pname '= "Implementation")) $PROPERTY(oMeth, pname) = $PROPERTY(met, pname) + } catch (e) { + // Skip private properties that InterSystems may add in any future versions + } } } @@ -153,7 +165,11 @@ ClassMethod fillClassData(oData As %ZEN.proxyObject, className As %String, level set p = classDefinition.Parameters.GetAt(i) for j=1:1:props.Properties.Count() { set pname = props.Properties.GetAt(j).Name - set:(pname '= "parent") $PROPERTY(oPar, pname) = $PROPERTY(p, pname) + try { + set:(pname '= "parent") $PROPERTY(oPar, pname) = $PROPERTY(p, pname) + } catch (e) { + // Skip private properties that InterSystems may add in any future versions + } } do oParameters.%DispatchSetProperty(p.Name, oPar) } @@ -166,7 +182,11 @@ ClassMethod fillClassData(oData As %ZEN.proxyObject, className As %String, level set q = classDefinition.Queries.GetAt(i) for j=1:1:props.Properties.Count() { set pname = props.Properties.GetAt(j).Name - set:(pname '= "parent") $PROPERTY(oProp, pname) = $PROPERTY(q, pname) + try { + set:(pname '= "parent") $PROPERTY(oProp, pname) = $PROPERTY(q, pname) + } catch (e) { + // Skip private properties that InterSystems may add in any future versions + } } do oQueries.%DispatchSetProperty(q.Name, oProp) } @@ -179,7 +199,11 @@ ClassMethod fillClassData(oData As %ZEN.proxyObject, className As %String, level set xd = classDefinition.XDatas.GetAt(i) for j=1:1:props.Properties.Count() { set pname = props.Properties.GetAt(j).Name - set:((pname '= "parent") && (pname '= "Object")) $PROPERTY(oProp, pname) = $PROPERTY(xd, pname) + try { + set:((pname '= "parent") && (pname '= "Object")) $PROPERTY(oProp, pname) = $PROPERTY(xd, pname) + } catch (e) { + // Skip private properties that InterSystems may add in any future versions + } } do oXDatas.%DispatchSetProperty(xd.Name, oProp) } @@ -192,7 +216,11 @@ ClassMethod fillClassData(oData As %ZEN.proxyObject, className As %String, level set ind = classDefinition.Indices.GetAt(i) for j=1:1:props.Properties.Count() { set pname = props.Properties.GetAt(j).Name - set:(pname '= "parent") $PROPERTY(oProp, pname) = $PROPERTY(ind, pname) + try { + set:(pname '= "parent") $PROPERTY(oProp, pname) = $PROPERTY(ind, pname) + } catch (e) { + // Skip private properties that InterSystems may add in any future versions + } } do oIndices.%DispatchSetProperty(ind.Name, oProp) }