Skip to content

Commit 1642f1b

Browse files
authored
Add apiMaturity for attributes (#1169)
1 parent 38d711c commit 1642f1b

15 files changed

Lines changed: 2527 additions & 2309 deletions

File tree

docs/make-schema-diagram

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@
1010
# It also has only ever been tested on Linux.
1111
#
1212

13-
SC_HOME=~/schemacrawler/latest
13+
# You can set env variables such as:
14+
# SC_HOME=/opt/schemacrawler
15+
if [ -z "$SC_HOME" ]; then
16+
SC_HOME=~/schemacrawler/latest
17+
fi
1418
SC_BIN=${SC_HOME}/_schemacrawler/bin/schemacrawler.sh
1519

1620
SQLITE=~/.zap/self-check.sqlite

docs/zap-schema.svg

Lines changed: 2384 additions & 2278 deletions
Loading

src-electron/db/db-mapping.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ exports.map = {
124124
entryType: x.ARRAY_TYPE,
125125
isArray: x.ARRAY_TYPE ? 1 : 0,
126126
mustUseTimedWrite: dbApi.fromDbBool(x.MUST_USE_TIMED_WRITE),
127+
apiMaturity: x.API_MATURITY,
127128
}
128129
},
129130

@@ -519,6 +520,7 @@ exports.map = {
519520
minInterval: x.MIN_INTERVAL,
520521
maxInterval: x.MAX_INTERVAL,
521522
reportableChange: x.REPORTABLE_CHANGE,
523+
apiMaturity: x.API_MATURITY,
522524
}
523525
},
524526

@@ -580,6 +582,7 @@ exports.map = {
580582
storageOption: x.STORAGE_OPTION,
581583
tokenId: x.TOKEN_ID, // Endpoint type attribute's token id
582584
type: x.TYPE != 'array' ? x.TYPE : x.ARRAY_TYPE, // Attribute type
585+
apiMaturity: x.API_MATURITY,
583586
}
584587
},
585588

src-electron/db/query-attribute.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ async function selectEndpointTypeAttributesByEndpointTypeRefAndClusterRef(
5454
INCLUDED_REPORTABLE,
5555
MIN_INTERVAL,
5656
MAX_INTERVAL,
57-
REPORTABLE_CHANGE
57+
REPORTABLE_CHANGE,
58+
API_MATURITY
5859
from
5960
ENDPOINT_TYPE_ATTRIBUTE
6061
where
@@ -197,7 +198,8 @@ async function selectAllAttributeDetailsFromEnabledClusters(
197198
ENDPOINT_TYPE_ATTRIBUTE.DEFAULT_VALUE,
198199
ENDPOINT_TYPE_ATTRIBUTE.MIN_INTERVAL,
199200
ENDPOINT_TYPE_ATTRIBUTE.MAX_INTERVAL,
200-
ENDPOINT_TYPE_ATTRIBUTE.REPORTABLE_CHANGE
201+
ENDPOINT_TYPE_ATTRIBUTE.REPORTABLE_CHANGE,
202+
ATTRIBUTE.API_MATURITY
201203
FROM ATTRIBUTE
202204
INNER JOIN ENDPOINT_TYPE_ATTRIBUTE
203205
ON ATTRIBUTE.ATTRIBUTE_ID = ENDPOINT_TYPE_ATTRIBUTE.ATTRIBUTE_REF
@@ -254,7 +256,8 @@ async function selectAttributeDetailsFromAllEndpointTypesAndClustersUtil(
254256
ATTRIBUTE.MANUFACTURER_CODE,
255257
ENDPOINT_TYPE_CLUSTER.SIDE,
256258
CLUSTER.NAME AS CLUSTER_NAME,
257-
ENDPOINT_TYPE_CLUSTER.ENABLED
259+
ENDPOINT_TYPE_CLUSTER.ENABLED,
260+
ATTRIBUTE.API_MATURITY
258261
FROM
259262
ATTRIBUTE
260263
INNER JOIN
@@ -857,7 +860,8 @@ SELECT
857860
A.IS_NULLABLE,
858861
A.IS_SCENE_REQUIRED,
859862
A.ARRAY_TYPE,
860-
A.MUST_USE_TIMED_WRITE
863+
A.MUST_USE_TIMED_WRITE,
864+
A.API_MATURITY
861865
FROM ATTRIBUTE AS A
862866
INNER JOIN CLUSTER AS C
863867
ON C.CLUSTER_ID = A.CLUSTER_REF
@@ -913,7 +917,8 @@ SELECT
913917
A.IS_NULLABLE,
914918
A.IS_SCENE_REQUIRED,
915919
A.ARRAY_TYPE,
916-
A.MUST_USE_TIMED_WRITE
920+
A.MUST_USE_TIMED_WRITE,
921+
A.API_MATURITY
917922
FROM ATTRIBUTE AS A
918923
WHERE A.PACKAGE_REF IN (${dbApi.toInClause(packageIds)})
919924
AND A.CODE = ?
@@ -1005,7 +1010,8 @@ async function selectTokenAttributesForEndpoint(
10051010
CLUSTER.NAME AS CLUSTER_NAME,
10061011
CLUSTER.DEFINE AS CLUSTER_DEFINE,
10071012
ENDPOINT_TYPE_ATTRIBUTE.SINGLETON,
1008-
ENDPOINT_TYPE_ATTRIBUTE.STORAGE_OPTION
1013+
ENDPOINT_TYPE_ATTRIBUTE.STORAGE_OPTION,
1014+
ATTRIBUTE.API_MATURITY
10091015
FROM
10101016
ATTRIBUTE
10111017
INNER JOIN

src-electron/db/query-endpoint.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ SELECT
135135
A.IS_SCENE_REQUIRED,
136136
A.IS_OPTIONAL,
137137
A.DEFINE,
138+
A.API_MATURITY,
138139
EA.STORAGE_OPTION,
139140
EA.SINGLETON,
140141
EA.BOUNDED,
@@ -192,6 +193,7 @@ ORDER BY A.MANUFACTURER_CODE, A.CODE
192193
maxInterval: row.MAX_INTERVAL,
193194
reportableChange: row.REPORTABLE_CHANGE,
194195
define: row.DEFINE,
196+
apiMaturity: row.API_MATURITY,
195197
}
196198
})
197199
}

src-electron/db/query-impexp.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -566,7 +566,7 @@ async function exportAttributesFromEndpointTypeCluster(
566566
endpointClusterId
567567
) {
568568
let mapFunction = (x) => {
569-
return {
569+
let result = {
570570
name: x.NAME,
571571
code: x.CODE,
572572
mfgCode: x.MANUFACTURER_CODE,
@@ -582,6 +582,11 @@ async function exportAttributesFromEndpointTypeCluster(
582582
maxInterval: x.MAX_INTERVAL,
583583
reportableChange: x.REPORTABLE_CHANGE,
584584
}
585+
if (x.API_MATURITY) {
586+
result.apiMaturity = x.API_MATURITY
587+
}
588+
589+
return result
585590
}
586591
return dbApi
587592
.dbAll(

src-electron/db/query-loader.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,11 +159,13 @@ INSERT INTO ATTRIBUTE (
159159
MUST_USE_TIMED_WRITE,
160160
MANUFACTURER_CODE,
161161
INTRODUCED_IN_REF,
162-
REMOVED_IN_REF
162+
REMOVED_IN_REF,
163+
API_MATURITY
163164
) VALUES (
164165
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
165166
(SELECT SPEC_ID FROM SPEC WHERE CODE = ? AND PACKAGE_REF = ?),
166-
(SELECT SPEC_ID FROM SPEC WHERE CODE = ? AND PACKAGE_REF = ?)
167+
(SELECT SPEC_ID FROM SPEC WHERE CODE = ? AND PACKAGE_REF = ?),
168+
?
167169
)`
168170

169171
const SELECT_CLUSTER_SPECIFIC_DATA_TYPE = `
@@ -224,6 +226,7 @@ function attributeMap(clusterId, packageId, attributes) {
224226
packageId,
225227
attribute.removedIn,
226228
packageId,
229+
attribute.apiMaturity,
227230
])
228231
}
229232

src-electron/db/query-zcl.js

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -670,7 +670,8 @@ SELECT
670670
IS_NULLABLE,
671671
IS_SCENE_REQUIRED,
672672
ARRAY_TYPE,
673-
MUST_USE_TIMED_WRITE
673+
MUST_USE_TIMED_WRITE,
674+
API_MATURITY
674675
FROM ATTRIBUTE
675676
WHERE (CLUSTER_REF = ? OR CLUSTER_REF IS NULL)
676677
AND PACKAGE_REF IN (${dbApi.toInClause(packageIds)})
@@ -715,7 +716,8 @@ SELECT
715716
IS_NULLABLE,
716717
IS_SCENE_REQUIRED,
717718
ARRAY_TYPE,
718-
MUST_USE_TIMED_WRITE
719+
MUST_USE_TIMED_WRITE,
720+
API_MATURITY
719721
FROM ATTRIBUTE
720722
WHERE
721723
SIDE = ?
@@ -779,7 +781,8 @@ SELECT
779781
A.IS_NULLABLE,
780782
A.IS_SCENE_REQUIRED,
781783
A.ARRAY_TYPE,
782-
A.MUST_USE_TIMED_WRITE
784+
A.MUST_USE_TIMED_WRITE,
785+
A.API_MATURITY
783786
FROM
784787
ATTRIBUTE AS A,
785788
CLUSTER AS C
@@ -823,7 +826,8 @@ SELECT
823826
IS_NULLABLE,
824827
IS_SCENE_REQUIRED,
825828
ARRAY_TYPE,
826-
MUST_USE_TIMED_WRITE
829+
MUST_USE_TIMED_WRITE,
830+
API_MATURITY
827831
FROM ATTRIBUTE
828832
WHERE ATTRIBUTE_ID = ?`,
829833
[id]
@@ -886,7 +890,8 @@ SELECT
886890
A.IS_NULLABLE,
887891
A.IS_SCENE_REQUIRED,
888892
A.ARRAY_TYPE,
889-
A.MUST_USE_TIMED_WRITE
893+
A.MUST_USE_TIMED_WRITE,
894+
A.API_MATURITY
890895
FROM ATTRIBUTE AS A
891896
WHERE ATTRIBUTE_ID = ?`,
892897
[clusterRef, clusterRef, attributeId]
@@ -925,6 +930,7 @@ SELECT
925930
A.IS_SCENE_REQUIRED,
926931
A.ARRAY_TYPE,
927932
A.MUST_USE_TIMED_WRITE,
933+
A.API_MATURITY,
928934
C.CODE AS CLUSTER_CODE
929935
FROM
930936
ATTRIBUTE AS A
@@ -978,7 +984,8 @@ SELECT
978984
IS_NULLABLE,
979985
IS_SCENE_REQUIRED,
980986
ARRAY_TYPE,
981-
MUST_USE_TIMED_WRITE
987+
MUST_USE_TIMED_WRITE,
988+
API_MATURITY
982989
FROM ATTRIBUTE
983990
WHERE SIDE = ?
984991
AND PACKAGE_REF IN (${dbApi.toInClause(packageIds)})

src-electron/db/zap-schema.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ CREATE TABLE IF NOT EXISTS "ATTRIBUTE" (
279279
"MUST_USE_TIMED_WRITE" integer,
280280
"INTRODUCED_IN_REF" integer,
281281
"REMOVED_IN_REF" integer,
282+
"API_MATURITY" text,
282283
foreign key (INTRODUCED_IN_REF) references SPEC(SPEC_ID),
283284
foreign key (REMOVED_IN_REF) references SPEC(SPEC_ID),
284285
foreign key (CLUSTER_REF) references CLUSTER(CLUSTER_ID),

src-electron/zcl/zcl-loader-silabs.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -598,6 +598,7 @@ function prepareCluster(cluster, context, isExtension = false) {
598598
isNullable: attribute.$.isNullable == 'true' ? true : false,
599599
entryType: attribute.$.entryType,
600600
mustUseTimedWrite: attribute.$.mustUseTimedWrite == 'true',
601+
apiMaturity: attribute.$.apiMaturity,
601602
}
602603
att.access = extractAccessIntoArray(attribute)
603604
if (att.manufacturerCode == null) {

0 commit comments

Comments
 (0)