@@ -9,7 +9,7 @@ const $visitedUp = Symbol('@cap-js/audit-logging:visitedUp')
99const $visitedDown = Symbol ( '@cap-js/audit-logging:visitedDown' )
1010
1111const hasPersonalData = entity => {
12- if ( ! entity . own ( $hasPersonalData ) ) {
12+ if ( entity . own ( $hasPersonalData ) == null ) {
1313 if ( ! entity [ '@PersonalData.EntitySemantics' ] ) entity . set ( $hasPersonalData , false )
1414 else {
1515 // default role to entity name
@@ -147,22 +147,24 @@ const _getDataSubjectIdQuery = ({ dataSubjectEntity, subs }, row, model) => {
147147}
148148
149149const _getUps = ( entity , model ) => {
150- if ( entity . own ( $parents ) ) return entity [ $parents ]
151- const ups = [ ]
152- for ( const def of Object . values ( model . definitions ) ) {
153- if ( def . kind !== 'entity' || ! def . associations ) continue
154- for ( const element of Object . values ( def . associations ) ) {
155- if ( element . target !== entity . name || element . _isBacklink || element . name === 'SiblingEntity' ) continue
156- ups . push ( element )
150+ if ( entity . own ( $parents ) == null ) {
151+ const ups = [ ]
152+ for ( const def of Object . values ( model . definitions ) ) {
153+ if ( def . kind !== 'entity' || ! def . associations ) continue
154+ for ( const element of Object . values ( def . associations ) ) {
155+ if ( element . target !== entity . name || element . _isBacklink || element . name === 'SiblingEntity' ) continue
156+ ups . push ( element )
157+ }
157158 }
159+ entity . set ( $parents , ups )
158160 }
159- return entity . set ( $parents , ups )
161+ return entity . own ( $parents )
160162}
161163
162164const _getDataSubjectUp = ( root , model , entity , prev , next , result ) => {
163165 for ( const element of _getUps ( entity , model ) ) {
164166 // cycle detection
165- if ( ! element . own ( $visitedUp ) ) element . set ( $visitedUp , new Set ( ) )
167+ if ( element . own ( $visitedUp ) == null ) element . set ( $visitedUp , new Set ( ) )
166168 if ( element . own ( $visitedUp ) . has ( root ) ) continue
167169 element . own ( $visitedUp ) . add ( root )
168170
@@ -192,7 +194,7 @@ const _getDataSubjectDown = (root, entity, prev, next) => {
192194 }
193195 for ( const element of associations ) {
194196 // cycle detection
195- if ( ! element . own ( $visitedDown ) ) element . set ( $visitedDown , new Set ( ) )
197+ if ( element . own ( $visitedDown ) == null ) element . set ( $visitedDown , new Set ( ) )
196198 if ( element . own ( $visitedDown ) . has ( root ) ) continue
197199 element . own ( $visitedDown ) . add ( root )
198200
@@ -204,12 +206,14 @@ const _getDataSubjectDown = (root, entity, prev, next) => {
204206}
205207
206208const getDataSubject = ( entity , model ) => {
207- if ( entity . own ( $dataSubject ) ) return entity [ $dataSubject ]
208- // entities with EntitySemantics 'DataSubjectDetails' or 'Other' must not necessarily
209- // be always below or always above 'DataSubject' entity in CSN tree
210- let dataSubjectInfo = _getDataSubjectUp ( entity . name , model , entity )
211- if ( ! dataSubjectInfo ) dataSubjectInfo = _getDataSubjectDown ( entity . name , entity )
212- return entity . set ( $dataSubject , dataSubjectInfo )
209+ if ( entity . own ( $dataSubject ) == null ) {
210+ // entities with EntitySemantics 'DataSubjectDetails' or 'Other' must not necessarily
211+ // be always below or always above 'DataSubject' entity in CSN tree
212+ let dataSubjectInfo = _getDataSubjectUp ( entity . name , model , entity )
213+ if ( ! dataSubjectInfo ) dataSubjectInfo = _getDataSubjectDown ( entity . name , entity )
214+ entity . set ( $dataSubject , dataSubjectInfo )
215+ }
216+ return entity . own ( $dataSubject )
213217}
214218
215219const _getDataSubjectsMap = req => {
0 commit comments