Project

General

Profile

Create Context » History » Version 67

Tomislav Pleše, 09/29/2025 04:50 PM

1 1 Tomislav Pleše
# Create Context
2 2 Tomislav Pleše
3
4
|- T-001: Shard-01 
5
|  |- T-004: Point
6
|  |- T-015: Point
7
|- T-001: Shard-02
8
|  |- T-016: Point
9 3 Tomislav Pleše
|  |- T-017: Point
10 2 Tomislav Pleše
|  |- T-005: Shard-01 
11
|  |  |- T-006: Point
12
|  |  |- T-014: Point
13
|  |  |- T-007: Shard-01 
14
|  |  |  |- T-010: Point
15
|  |  |  |- T-013: Point 
16
|  |  |- T-007: Shard-02 
17
|  |  |  |- T-011: Point
18
|  |  |  |- T-012: Point  <-- starting point
19
|  |  |- T-007: Shard-03 
20
|  |  |- T-008: Point
21
|  |- T-005: Shard-02 
22
|  |  |- T-018: Point
23
|  |- T-005: Shard-03 
24
|  |- T-009: Point
25
|- T-001: Shard-03 
26
|- T-002: Point
27 3 Tomislav Pleše
|- T-003: Point
28 2 Tomislav Pleše
29 1 Tomislav Pleše
30 2 Tomislav Pleše
31 3 Tomislav Pleše
Context: [012, 011, 007(S01+S02), 014, 006, 005(S01), 017, 016, 001(S01+S02) ]
32 2 Tomislav Pleše
33 1 Tomislav Pleše
34 2 Tomislav Pleše
35 3 Tomislav Pleše
36 2 Tomislav Pleše
|     PointId                                                                                                |     012                                                |     007                                                                          |     005                                                                          |     001                                                                                                            |
37
|------------------------------------------------------------------------------------------------------------|--------------------------------------------------------|----------------------------------------------------------------------------------|----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|
38
|     StartingPoint   [in code]                                                                              |     012                                                |     012                                                                          |     012                                                                          |     012                                                                                                            |
39
|     PreviousPoint   [in code]                                                                              |     ""                                                 |     012                                                                          |     007                                                                          |     005                                                                                                            |
40
|     ParentPoint                                                                                            |     007                                                |     005                                                                          |     001                                                                          |     001                                                                                                            |
41
|     PointChildren                                                                                          |     null                                               |     null                                                                         |     null                                                                         |     [002, 003]                                                                                                     |
42
|     ShardList                                                                                              |     null                                               |     [S01, S02,   S03]                                                            |     [S01, S02,   S03]                                                            |     [S01, S02,   S03]                                                                                              |
43
|     ParentShard                                                                                            |     007-S02                                            |     005-S01                                                                      |     001-S02                                                                      |     null                                                                                                           |
44
|     CurrentParentShard   [in code]                                                                         |     null                                               |     007-S02                                                                      |     005-S01                                                                      |     001-S02                                                                                                        |
45
|     ShardPointChildren                                                                                     |     null                                               |     S02[011,   012]                                                              |     S01[006,   014, 007]                                                         |     S02[016,   017, 005, 009]                                                                                      |
46
|                                                                                                            |                                                        |                                                                                  |                                                                                  |                                                                                                                    |
47
|     PRINT full:                                                                                            |     012                                                |     011, 007(S01+S02)                                                            |     014, 006, 005(S01)                                                           |     017, 016, 001(S01+S02)                                                                                         |
48
|                                                                                                            |                                                        |                                                                                  |                                                                                  |                                                                                                                    |
49
|     If   (ShardPointChildren == null && currentParentShard == null) Else   (PointChildren == null)         |     * True:   not a Shard                              |     * False:   It's a shard. Print ShardPointChildren preceding PreviousPoint    |     * False:   It's a shard. Print ShardPointChildren preceding PreviousPoint    |     * False:   It's a shard. Print ShardPointChildren preceding PreviousPoint     (else,   print PointChildren)    |
50
|                                                                                                            |                                                        |     * PRINT [011]                                                                |     * PRINT [014, 006]                                                           |     * PRINT [017, 016]                                                                                             |
51
|     Print   CurrentPoint:     If(Shard)   => Print from ShardList     Else If   (!Shard) => Print Point    |     * Not a   Shard: Print Point                       |     * Shard:   Print ShardList from CurrentParentShard and those preceding       |     * Shard:   Print ShardList from CurrentParentShard and those preceding       |     * Shard:   Print ShardList from CurrentParentShard and those preceding                                         |
52
|                                                                                                            |     * PRINT: 012                                       |     * PRINT: 007- [S01+S02]                                                      |     * PRINT: 005-[S01]                                                           |     * PRINT: 001-[S01+S02]                                                                                         |
53
|     If   (ParentShard == null)                                                                             |     * False:   Set CurrentParentShard = ParentShard    |     * False:   Set CurrentParentShard = ParentShard                              |     * False:   Set CurrentParentShard = ParentShard                              |     True:                                                                                                          |
54 1 Tomislav Pleše
|     If   (ParentPoint == PointId)                                                                          |     * False:   Set PreviousPoint = currentPoint        |     * False:   Set PreviousPoint = currentPoint                                  |     * False:   Set PreviousPoint = currentPoint                                  |     * True:   This is Root ParentPoint - END                                                                       |
55
|                                                                                                            |     * Go to   ParentPoint: 007                         |     Go to   ParentPoint: 005                                                     |     Go to   ParentPoint: 001                                                     |                                                                                                                    |
56 3 Tomislav Pleše
57
58
59
FLOW
60
61 40 Tomislav Pleše
ContextArgs
62 48 Tomislav Pleše
  * String currentPoint = newPoint;
63
  * String? parentPoint = newPoint.parentPoint;
64
  * String? parentShard = newPoint.parentShard;
65 4 Tomislav Pleše
66 26 Tomislav Pleše
67 30 Tomislav Pleše
Decision points in the flow:
68
69 26 Tomislav Pleše
* Is previousPoint = null - new Root Point?
70
* Is previousPoint = Root - directly under Root - root.pointChildren[] -> previousPoint = Root
71 27 Tomislav Pleše
* Is previousPoint = rootChild - under Regular Point - root.pointChildren[] -> previousPoint = Child Point
72 28 Tomislav Pleše
* Is previousPoint = Shard - directly under Shard
73 1 Tomislav Pleše
* Is previousPoint = shardChild - under  
74
* Is it a child of a Point /w Shard?
75
  * If yes: 
76
  * If no:  print currentPoint
77
* 
78
79
80 42 Tomislav Pleše
Main questions: 
81 1 Tomislav Pleše
* What I need to addTo.messages[] in currentPoint?
82
* What's the nextPoint?
83
84 42 Tomislav Pleše
85
86
Pseudo-Code 
87 41 Tomislav Pleše
88 47 Tomislav Pleše
* INITIAL SETUP 
89
90 48 Tomislav Pleše
  * If Root -> (currentPoint.id == currentPoint.parentPointId)
91 56 Tomislav Pleše
    * add currentPoint: addTo.messages[].currentPoint
92 57 Tomislav Pleše
  * Else if Child Point -> (currentPoint.parentPoint != null)
93 56 Tomislav Pleše
    * add currentPoint: addTo.messages[].currentPoint
94 60 Tomislav Pleše
    * childPoint = currentPoint 
95
    * currentPoint = parentPoint
96 1 Tomislav Pleše
    
97 58 Tomislav Pleše
  * isRootAddedToMessages = false
98 1 Tomislav Pleše
99 58 Tomislav Pleše
* WHILE (!isRootAddedToMessages)
100
101 47 Tomislav Pleše
  * WHAT TO ADD TO MESSAGES?
102 49 Tomislav Pleše
103 54 Tomislav Pleše
    * Is childPoint existing? (childPoint != null) 
104 1 Tomislav Pleše
      * True: 
105 64 Tomislav Pleše
        * Is childPoint part of currentPoint.shardsList.shardChildren? (childPoint.parentShard != null)
106 54 Tomislav Pleše
          * True: 
107
            * Find currentShard: currentShard = currentPoint.shardsList.find.childPoint.parentShardId; 
108 62 Tomislav Pleše
            * Find shardChildren index of childPoint: currentShard.shardChildren.find.childPoint
109 54 Tomislav Pleše
            * add shardChildren: addTo.messages[].from.currentShard.shardChildren.from.childPointIndex-1
110
            * add Shards: addTo.messages[].from.shardsList.from.currentShardIndex.from.anchorEndPoisition
111
        * Is childPoint part of currentPoint.pointChildren? (currentPoint.pointChildren[].contains.childPoint)
112
          * True: 
113
            * Find childPoint in pointChildren: currentPoint.pointChildren.find.childPoint
114
            * add pointChildren: addTo.messages[].from.pointChildren.from.childPointIndex-1    
115 1 Tomislav Pleše
116
  * WHAT'S THE PARENT POINT?
117
118 59 Tomislav Pleše
    * if (currentPoint.id == currentPoint.parentPointId)
119 1 Tomislav Pleše
      * True:
120
        * isRootAddedToMessages = true (FINISH)
121 65 Tomislav Pleše
        * is childPoint a shardChild? (childPoint.parentShard == null) 
122 63 Tomislav Pleše
          * True: 
123
            * add currentPoint: addTo.messages[].currentPoint
124 59 Tomislav Pleše
      * False:
125 1 Tomislav Pleše
        * childPoint = currentPoint 
126 58 Tomislav Pleše
        * currentPoint = parentPoint
127 59 Tomislav Pleše
128
129 45 Tomislav Pleše