pull/1/head
Ivan Olexyn 5 years ago
parent cfa62d0179
commit 49afc9327d

@ -1,4 +1,4 @@
### Table of Contents #### Table of Contents
1. [Demo](#demo) 1. [Demo](#demo)
1. [About](#about) 1. [About](#about)
4. [Package Contents](#package-contents) 4. [Package Contents](#package-contents)
@ -7,19 +7,19 @@
<br> <br>
<br> <br>
### Demo<a name="demo"></a> #### Demo<a name="demo"></a>
[![IMAGE ALT TEXT](http://img.youtube.com/vi/cjoVE7d1JXY/0.jpg)](https://youtu.be/cjoVE7d1JXY "ensync WIP Demo") [![IMAGE ALT TEXT](http://img.youtube.com/vi/znR3jyM_4Ss/0.jpg)](https://youtu.be/znR3jyM_4Ss "ensync WIP Demo")
<br> <br>
### About <a name="about"></a> #### About <a name="about"></a>
Sync files across directories. Sync files across directories.
![alt text](https://raw.githubusercontent.com/IO42630/ensync/master/doc/flow-n-instances.png "Hello!") ![alt text](https://raw.githubusercontent.com/IO42630/ensync/master/doc/flow-n-instances.png "Hello!")
<br> <br>
<br> <br>
### Package Contents <a name="package-contents"></a> #### Package Contents <a name="package-contents"></a>
| Path | Comment | | Path | Comment |
|---------------|-------------| |---------------|-------------|
@ -35,18 +35,12 @@ src.com.olexyn.ensync. | Low level helper methods.
<br> <br>
<br> <br>
### Issues <a name="issues"></a> #### Issues <a name="issues"></a>
##### High Prio - Add tests.
- Remove Map entries, once file ops is performed.
- Have Map entries be remove, once file ops is performed.
- Create a parallel Thread for each SyncEnity.
- Add support for modification dates.
- And thereby eventually support 10 out of 10 file operation types.
- Reduce disk access. - Reduce disk access.
- Have some error handling. (i.e. if a web-directory is not available) - Add error handling. (i.e. if a web-directory is not available)
- Create a UI.
- Start the program at system start.
- Track files that were modified during the loop. - Track files that were modified during the loop.
- currently `writeStateFile` just takes from `find` - currently `writeStateFile` just takes from `find`
- this means any changes made during the loop will be written to the `StateFile` - this means any changes made during the loop will be written to the `StateFile`
@ -54,23 +48,10 @@ src.com.olexyn.ensync. | Low level helper methods.
- because of this it will appear as if the file created while the loop was running - because of this it will appear as if the file created while the loop was running
was already there. was already there.
- thus the creation of said file will not be replicated to the other directories. - thus the creation of said file will not be replicated to the other directories.
- to solve this `writeStateFile` should take the old `State` and manually add every operation that was performed by the loop (!= user created file while the loop was running). - to solve this `writeStateFile` should take the old `State`
- however this will be done later . . maybe. and manually add every operation that was performed by the loop (!= user created file while the loop was running).
##### Medium Prio
- If file is deleted in DirA and DirB, then two delete commands will be issued.
- They will both return errors and effectively do nothing.
- However this is a dirty solution.
- Fix this by checking if deleted file of DirA exists in DirB.listDeleted
- To do so .listDeleted would need to be a field of Dir
- And the .lists of every dir would need to be calculated before any deletion took place.
- Check if the reduced reobustness is worth the prettier solution.
- File is created in DirB - File is created in DirB
- Sync creates the file in DirA - Sync creates the file in DirA
- Sync creates the file in DirB - Sync creates the file in DirB
- this means the file in DirB is overwritten with `cp` for no reason. - this means the file in DirB is overwritten with `cp` for no reason.
- implement a check to prevent this. - implement a check to prevent this.
##### Low Prio

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 67 KiB

@ -4,152 +4,163 @@
<element> <element>
<id>UMLState</id> <id>UMLState</id>
<coordinates> <coordinates>
<x>790</x> <x>1070</x>
<y>570</y> <y>500</y>
<w>120</w> <w>120</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>make <panel_attributes>make
ListCreated ListCreated
halign=left</panel_attributes> halign=left
transparency=0</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>UMLState</id> <id>UMLState</id>
<coordinates> <coordinates>
<x>790</x> <x>1070</x>
<y>610</y> <y>540</y>
<w>120</w> <w>120</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>make <panel_attributes>make
ListDeleted ListDeleted
halign=left</panel_attributes> halign=left
transparency=0</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>UMLState</id> <id>UMLState</id>
<coordinates> <coordinates>
<x>790</x> <x>760</x>
<y>720</y> <y>650</y>
<w>120</w> <w>120</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>doCreate <panel_attributes>doCreate
halign=left halign=left
style=wordwrap</panel_attributes> style=wordwrap
transparency=0
transparency=0</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>UMLState</id> <id>UMLState</id>
<coordinates> <coordinates>
<x>540</x> <x>1270</x>
<y>380</y> <y>310</y>
<w>120</w> <w>120</w>
<h>50</h> <h>50</h>
</coordinates> </coordinates>
<panel_attributes>read StateFile <panel_attributes>read StateFile
bg=yellow bg=#FFF59D
halign=left halign=left
style=wordwrap</panel_attributes> style=wordwrap
transparency=0</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>UMLState</id> <id>UMLState</id>
<coordinates> <coordinates>
<x>790</x> <x>1070</x>
<y>650</y> <y>580</y>
<w>120</w> <w>120</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>make <panel_attributes>make
ListModified ListModified
halign=left</panel_attributes> halign=left
transparency=0</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>UMLState</id> <id>UMLState</id>
<coordinates> <coordinates>
<x>790</x> <x>1070</x>
<y>480</y> <y>410</y>
<w>120</w> <w>120</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>readState <panel_attributes>readState
bg=green bg=#A5D6A7
halign=left halign=left
style=wordwrap</panel_attributes> style=wordwrap
transparency=0</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>UMLState</id> <id>UMLState</id>
<coordinates> <coordinates>
<x>790</x> <x>750</x>
<y>320</y> <y>260</y>
<w>120</w> <w>120</w>
<h>30</h> <h>30</h>
</coordinates> </coordinates>
<panel_attributes>START <panel_attributes>START
bg=gray bg=#B0BEC5
style=wordwrap</panel_attributes> style=wordwrap</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>UMLState</id> <id>UMLState</id>
<coordinates> <coordinates>
<x>790</x> <x>1070</x>
<y>880</y> <y>800</y>
<w>120</w> <w>120</w>
<h>50</h> <h>50</h>
</coordinates> </coordinates>
<panel_attributes>write StateFile <panel_attributes>write StateFile
bg=yellow bg=#FFF59D
halign=left halign=left
style=wordwrap</panel_attributes> style=wordwrap
transparency=0</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>UMLState</id> <id>UMLState</id>
<coordinates> <coordinates>
<x>790</x> <x>760</x>
<y>760</y> <y>690</y>
<w>120</w> <w>120</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>doDelete <panel_attributes>doDelete
halign=left halign=left
style=wordwrap</panel_attributes> style=wordwrap
transparency=0</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>UMLState</id> <id>UMLState</id>
<coordinates> <coordinates>
<x>790</x> <x>760</x>
<y>800</y> <y>730</y>
<w>120</w> <w>120</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>doModify <panel_attributes>doModify
halign=left halign=left
style=wordwrap</panel_attributes> style=wordwrap
transparency=0</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>UMLSpecialState</id> <id>UMLSpecialState</id>
<coordinates> <coordinates>
<x>580</x> <x>1310</x>
<y>480</y> <y>410</y>
<w>40</w> <w>40</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>type=decision</panel_attributes> <panel_attributes>type=decision
transparency=0</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>590</x> <x>1320</x>
<y>420</y> <y>350</y>
<w>30</w> <w>30</w>
<h>80</h> <h>80</h>
</coordinates> </coordinates>
@ -159,111 +170,114 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>590</x> <x>1180</x>
<y>510</y> <y>440</y>
<w>220</w> <w>170</w>
<h>410</h> <h>400</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;-</panel_attributes> <panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>200.0;390.0;10.0;390.0;10.0;10.0</additional_attributes> <additional_attributes>10.0;380.0;150.0;380.0;150.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>610</x> <x>1180</x>
<y>480</y> <y>410</y>
<w>200</w> <w>150</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
</panel_attributes> </panel_attributes>
<additional_attributes>180.0;20.0;10.0;20.0</additional_attributes> <additional_attributes>10.0;20.0;130.0;20.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>900</x> <x>600</x>
<y>320</y> <y>260</y>
<w>110</w> <w>180</w>
<h>690</h> <h>680</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;-</panel_attributes> <panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;90.0;10.0;90.0;670.0;10.0;670.0</additional_attributes> <additional_attributes>150.0;10.0;10.0;10.0;10.0;660.0;160.0;660.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>840</x> <x>870</x>
<y>830</y> <y>740</y>
<w>30</w> <w>280</w>
<h>70</h> <h>80</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
</panel_attributes> </panel_attributes>
<additional_attributes>10.0;50.0;10.0;10.0</additional_attributes> <additional_attributes>260.0;60.0;260.0;10.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>UMLState</id> <id>UMLState</id>
<coordinates> <coordinates>
<x>790</x> <x>760</x>
<y>970</y> <y>900</y>
<w>120</w> <w>120</w>
<h>50</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>Sleep <panel_attributes>Sleep
style=wordwrap</panel_attributes> style=wordwrap
transparency=0</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>840</x> <x>870</x>
<y>920</y> <y>840</y>
<w>30</w> <w>280</w>
<h>70</h> <h>100</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
</panel_attributes> </panel_attributes>
<additional_attributes>10.0;50.0;10.0;10.0</additional_attributes> <additional_attributes>10.0;80.0;260.0;80.0;260.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>650</x> <x>1140</x>
<y>390</y> <y>320</y>
<w>200</w> <w>150</w>
<h>30</h> <h>30</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;-</panel_attributes> <panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;180.0;10.0</additional_attributes> <additional_attributes>130.0;10.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>UMLSpecialState</id> <id>UMLSpecialState</id>
<coordinates> <coordinates>
<x>830</x> <x>1110</x>
<y>380</y> <y>310</y>
<w>40</w> <w>40</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>type=decision</panel_attributes> <panel_attributes>type=decision
transparency=0</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>Text</id> <id>Text</id>
<coordinates> <coordinates>
<x>600</x> <x>1240</x>
<y>550</y> <y>470</y>
<w>160</w> <w>110</w>
<h>30</h> <h>50</h>
</coordinates> </coordinates>
<panel_attributes>[No State File]</panel_attributes> <panel_attributes>[No
StateFile]</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>840</x> <x>1120</x>
<y>410</y> <y>340</y>
<w>30</w> <w>30</w>
<h>90</h> <h>90</h>
</coordinates> </coordinates>
@ -273,8 +287,8 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Text</id> <id>Text</id>
<coordinates> <coordinates>
<x>860</x> <x>1030</x>
<y>420</y> <y>360</y>
<w>110</w> <w>110</w>
<h>30</h> <h>30</h>
</coordinates> </coordinates>
@ -284,20 +298,20 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>840</x> <x>860</x>
<y>340</y> <y>260</y>
<w>30</w> <w>290</w>
<h>60</h> <h>70</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
</panel_attributes> </panel_attributes>
<additional_attributes>10.0;40.0;10.0;10.0</additional_attributes> <additional_attributes>270.0;50.0;270.0;10.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>Text</id> <id>Text</id>
<coordinates> <coordinates>
<x>690</x> <x>1150</x>
<y>370</y> <y>300</y>
<w>130</w> <w>130</w>
<h>30</h> <h>30</h>
</coordinates> </coordinates>
@ -307,31 +321,32 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Text</id> <id>Text</id>
<coordinates> <coordinates>
<x>610</x> <x>1200</x>
<y>470</y> <y>390</y>
<w>190</w> <w>100</w>
<h>30</h> <h>50</h>
</coordinates> </coordinates>
<panel_attributes>[State File exists]</panel_attributes> <panel_attributes>[StateFile
exists]</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>840</x> <x>870</x>
<y>680</y> <y>610</y>
<w>30</w> <w>280</w>
<h>60</h> <h>80</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
</panel_attributes> </panel_attributes>
<additional_attributes>10.0;40.0;10.0;10.0</additional_attributes> <additional_attributes>10.0;60.0;260.0;60.0;260.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>840</x> <x>1120</x>
<y>510</y> <y>440</y>
<w>30</w> <w>30</w>
<h>80</h> <h>80</h>
</coordinates> </coordinates>
@ -342,12 +357,12 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>UMLState</id> <id>UMLState</id>
<coordinates> <coordinates>
<x>900</x> <x>870</x>
<y>1090</y> <y>1040</y>
<w>140</w> <w>250</w>
<h>50</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>addDirectory <panel_attributes>add/remove Collection (Map)
halign=left halign=left
style=wordwrap style=wordwrap
bg=#B39DDB</panel_attributes> bg=#B39DDB</panel_attributes>
@ -356,8 +371,8 @@ bg=#B39DDB</panel_attributes>
<element> <element>
<id>UMLSpecialState</id> <id>UMLSpecialState</id>
<coordinates> <coordinates>
<x>830</x> <x>800</x>
<y>1090</y> <y>1040</y>
<w>40</w> <w>40</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
@ -367,20 +382,20 @@ bg=#B39DDB</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>840</x> <x>810</x>
<y>1010</y> <y>930</y>
<w>30</w> <w>30</w>
<h>100</h> <h>130</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
</panel_attributes> </panel_attributes>
<additional_attributes>10.0;80.0;10.0;10.0</additional_attributes> <additional_attributes>10.0;110.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>860</x> <x>830</x>
<y>1090</y> <y>1040</y>
<w>60</w> <w>60</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
@ -391,20 +406,20 @@ bg=#B39DDB</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>840</x> <x>800</x>
<y>270</y> <y>220</y>
<w>270</w> <w>680</w>
<h>840</h> <h>840</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
</panel_attributes> </panel_attributes>
<additional_attributes>10.0;50.0;10.0;20.0;250.0;20.0;250.0;820.0</additional_attributes> <additional_attributes>10.0;40.0;10.0;20.0;660.0;20.0;660.0;820.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>840</x> <x>810</x>
<y>1120</y> <y>1070</y>
<w>80</w> <w>80</w>
<h>70</h> <h>70</h>
</coordinates> </coordinates>
@ -415,12 +430,12 @@ bg=#B39DDB</panel_attributes>
<element> <element>
<id>UMLState</id> <id>UMLState</id>
<coordinates> <coordinates>
<x>900</x> <x>870</x>
<y>1150</y> <y>1100</y>
<w>140</w> <w>250</w>
<h>50</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>removeDirectory <panel_attributes>add/remove Directory
halign=left halign=left
style=wordwrap style=wordwrap
bg=#B39DDB</panel_attributes> bg=#B39DDB</panel_attributes>
@ -429,20 +444,20 @@ bg=#B39DDB</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>1030</x> <x>1110</x>
<y>1090</y> <y>1040</y>
<w>60</w> <w>350</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
</panel_attributes> </panel_attributes>
<additional_attributes>40.0;20.0;10.0;20.0</additional_attributes> <additional_attributes>330.0;20.0;10.0;20.0</additional_attributes>
</element> </element>
<element> <element>
<id>UMLSpecialState</id> <id>UMLSpecialState</id>
<coordinates> <coordinates>
<x>1070</x> <x>1440</x>
<y>1090</y> <y>1040</y>
<w>40</w> <w>40</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
@ -452,62 +467,20 @@ bg=#B39DDB</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>1030</x> <x>1110</x>
<y>1120</y> <y>1070</y>
<w>80</w> <w>370</w>
<h>70</h> <h>70</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
</panel_attributes> </panel_attributes>
<additional_attributes>60.0;10.0;60.0;50.0;10.0;50.0</additional_attributes> <additional_attributes>350.0;10.0;350.0;50.0;10.0;50.0</additional_attributes>
</element>
<element>
<id>UMLState</id>
<coordinates>
<x>890</x>
<y>480</y>
<w>20</w>
<h>20</h>
</coordinates>
<panel_attributes>
bg=green
halign=left
style=wordwrap</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLState</id>
<coordinates>
<x>640</x>
<y>380</y>
<w>20</w>
<h>20</h>
</coordinates>
<panel_attributes>
bg=yellow
halign=left
style=wordwrap</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLState</id>
<coordinates>
<x>890</x>
<y>880</y>
<w>20</w>
<h>20</h>
</coordinates>
<panel_attributes>
bg=yellow
halign=left
style=wordwrap</panel_attributes>
<additional_attributes/>
</element> </element>
<element> <element>
<id>Text</id> <id>Text</id>
<coordinates> <coordinates>
<x>900</x> <x>870</x>
<y>1060</y> <y>1010</y>
<w>160</w> <w>160</w>
<h>30</h> <h>30</h>
</coordinates> </coordinates>
@ -517,131 +490,102 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>UMLState</id> <id>UMLState</id>
<coordinates> <coordinates>
<x>890</x> <x>440</x>
<y>570</y> <y>160</y>
<w>20</w> <w>1060</w>
<h>20</h> <h>820</h>
</coordinates> </coordinates>
<panel_attributes> <panel_attributes>
halign=left</panel_attributes> * Logic-Thread*
<additional_attributes/>
</element>
<element>
<id>UMLState</id>
<coordinates>
<x>470</x>
<y>260</y>
<w>660</w>
<h>780</h>
</coordinates>
<panel_attributes>*Logic-Thread*
halign=left halign=left
valign=top valign=top
layer=-1</panel_attributes> layer=-1
lt=.</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>UMLState</id> <id>UMLState</id>
<coordinates> <coordinates>
<x>890</x> <x>440</x>
<y>610</y> <y>990</y>
<w>20</w> <w>1060</w>
<h>20</h>
</coordinates>
<panel_attributes>
halign=left</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLState</id>
<coordinates>
<x>890</x>
<y>650</y>
<w>20</w>
<h>20</h>
</coordinates>
<panel_attributes>
halign=left</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLState</id>
<coordinates>
<x>470</x>
<y>1040</y>
<w>660</w>
<h>180</h> <h>180</h>
</coordinates> </coordinates>
<panel_attributes>*UI-Thread* <panel_attributes>
* UI-Thread*
valign=top valign=top
halign=left halign=left
layer=-1</panel_attributes> layer=-1
lt=.</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>UMLNote</id> <id>UMLNote</id>
<coordinates> <coordinates>
<x>680</x> <x>630</x>
<y>730</y> <y>660</y>
<w>90</w> <w>110</w>
<h>100</h> <h>90</h>
</coordinates> </coordinates>
<panel_attributes>Compare the Lists of the different instances</panel_attributes> <panel_attributes>Compare the Lists of the different Directories
transparency=0</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>UMLNote</id> <id>Relation</id>
<coordinates> <coordinates>
<x>540</x> <x>730</x>
<y>320</y> <y>660</y>
<w>90</w> <w>50</w>
<h>50</h> <h>50</h>
</coordinates> </coordinates>
<panel_attributes>1 per instance</panel_attributes> <panel_attributes>lt=.</panel_attributes>
<additional_attributes/> <additional_attributes>30.0;10.0;10.0;30.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>620</x> <x>730</x>
<y>330</y> <y>700</y>
<w>50</w> <w>50</w>
<h>80</h> <h>30</h>
</coordinates> </coordinates>
<panel_attributes>lt=.</panel_attributes> <panel_attributes>lt=.</panel_attributes>
<additional_attributes>10.0;10.0;30.0;10.0;30.0;60.0</additional_attributes> <additional_attributes>30.0;10.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>760</x> <x>730</x>
<y>730</y> <y>720</y>
<w>50</w> <w>50</w>
<h>50</h> <h>50</h>
</coordinates> </coordinates>
<panel_attributes>lt=.</panel_attributes> <panel_attributes>lt=.</panel_attributes>
<additional_attributes>30.0;10.0;10.0;30.0</additional_attributes> <additional_attributes>30.0;30.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>760</x> <x>1010</x>
<y>770</y> <y>190</y>
<w>50</w> <w>420</w>
<h>30</h> <h>770</h>
</coordinates> </coordinates>
<panel_attributes>lt=.</panel_attributes> <panel_attributes>SyncDirectory
<additional_attributes>30.0;10.0;10.0;10.0</additional_attributes> bg=#F6F6F6</panel_attributes>
<additional_attributes/>
</element> </element>
<element> <element>
<id>Relation</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>760</x> <x>700</x>
<y>790</y> <y>190</y>
<w>50</w> <w>230</w>
<h>50</h> <h>770</h>
</coordinates> </coordinates>
<panel_attributes>lt=.</panel_attributes> <panel_attributes>SyncMap
<additional_attributes>30.0;30.0;10.0;10.0</additional_attributes> bg=#F6F6F6</panel_attributes>
<additional_attributes/>
</element> </element>
</diagram> </diagram>

@ -0,0 +1,100 @@
@startuml
title __ENSYNC's Class Diagram__\n
namespace com.olexyn.ensync {
class com.olexyn.ensync.Execute {
}
}
namespace com.olexyn.ensync {
class com.olexyn.ensync.Flow {
}
}
namespace com.olexyn.ensync {
class com.olexyn.ensync.Main {
}
}
namespace com.olexyn.ensync {
class com.olexyn.ensync.Tools {
}
}
namespace com.olexyn.ensync {
namespace artifacts {
class com.olexyn.ensync.artifacts.SyncDirectory {
}
}
}
namespace com.olexyn.ensync {
namespace artifacts {
class com.olexyn.ensync.artifacts.SyncFile {
}
}
}
namespace com.olexyn.ensync {
namespace artifacts {
class com.olexyn.ensync.artifacts.SyncMap {
}
}
}
namespace com.olexyn.ensync {
namespace ui {
class com.olexyn.ensync.ui.Bridge {
}
}
}
namespace com.olexyn.ensync {
namespace ui {
class com.olexyn.ensync.ui.Controller {
}
}
}
namespace com.olexyn.ensync {
namespace ui {
class com.olexyn.ensync.ui.UI {
}
}
}
com.olexyn.ensync.Flow .up.|> java.lang.Runnable
com.olexyn.ensync.Flow o-- com.olexyn.ensync.Tools : tools
com.olexyn.ensync.Tools o-- com.olexyn.ensync.Execute : x
com.olexyn.ensync.artifacts.SyncDirectory o-- com.olexyn.ensync.Tools : tools
com.olexyn.ensync.artifacts.SyncDirectory o-- com.olexyn.ensync.Execute : x
com.olexyn.ensync.artifacts.SyncDirectory o-- com.olexyn.ensync.artifacts.SyncMap : syncMap
com.olexyn.ensync.artifacts.SyncDirectory o-- com.olexyn.ensync.artifacts.SyncDirectory : thisSD
com.olexyn.ensync.artifacts.SyncFile -up-|> java.io.File
com.olexyn.ensync.artifacts.SyncFile o-- com.olexyn.ensync.artifacts.SyncDirectory : sd
com.olexyn.ensync.artifacts.SyncMap o-- com.olexyn.ensync.Tools : tools
com.olexyn.ensync.ui.Controller .up.|> javafx.fxml.Initializable
com.olexyn.ensync.ui.Controller o-- com.olexyn.ensync.ui.Bridge : bridge
com.olexyn.ensync.ui.UI .up.|> java.lang.Runnable
com.olexyn.ensync.ui.UI -up-|> javafx.application.Application
right footer
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
For more information about this tool, please contact philippe.mesmeur@gmail.com
endfooter
@enduml

@ -0,0 +1,89 @@
@startuml
title __ARTIFACTS's Class Diagram__\n
namespace com.olexyn.ensync {
namespace artifacts {
class com.olexyn.ensync.artifacts.SyncDirectory {
+ listCreated : Map<String, SyncFile>
+ listDeleted : Map<String, SyncFile>
+ listModified : Map<String, SyncFile>
+ path : String
- flowState : String
+ SyncDirectory()
+ doCreate()
+ doDelete()
+ doModify()
+ makeListCreated()
+ makeListDeleted()
+ makeListModified()
+ readFreshState()
+ readStateFile()
+ writeStateFile()
- copyModifDate()
- deleteFile()
- makeParentChain()
- writeFile()
}
}
}
namespace com.olexyn.ensync {
namespace artifacts {
class com.olexyn.ensync.artifacts.SyncDirectory.Info {
- otherFilePath : String
- otherParentFile : File
- otherParentPath : String
- thisFilePath : String
- Info()
}
}
}
namespace com.olexyn.ensync {
namespace artifacts {
class com.olexyn.ensync.artifacts.SyncFile {
+ relativePath : String
+ timeModifiedFromStateFile : long
+ SyncFile()
+ getTimeModified()
+ getTimeModifiedFromStateFile()
+ setTimeModifiedFromStateFile()
}
}
}
namespace com.olexyn.ensync {
namespace artifacts {
class com.olexyn.ensync.artifacts.SyncMap {
+ name : String
+ syncDirectories : Map<String, SyncDirectory>
+ SyncMap()
+ addDirectory()
+ removeDirectory()
}
}
}
com.olexyn.ensync.artifacts.SyncDirectory o-- com.olexyn.ensync.Tools : tools
com.olexyn.ensync.artifacts.SyncDirectory o-- com.olexyn.ensync.Execute : x
com.olexyn.ensync.artifacts.SyncDirectory o-- com.olexyn.ensync.artifacts.SyncMap : syncMap
com.olexyn.ensync.artifacts.SyncDirectory o-- com.olexyn.ensync.artifacts.SyncDirectory : thisSD
com.olexyn.ensync.artifacts.SyncDirectory +-down- com.olexyn.ensync.artifacts.SyncDirectory.Info
com.olexyn.ensync.artifacts.SyncFile -up-|> java.io.File
com.olexyn.ensync.artifacts.SyncFile o-- com.olexyn.ensync.artifacts.SyncDirectory : sd
com.olexyn.ensync.artifacts.SyncMap o-- com.olexyn.ensync.Tools : tools
right footer
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
For more information about this tool, please contact philippe.mesmeur@gmail.com
endfooter
@enduml

@ -0,0 +1,70 @@
@startuml
title __ENSYNC's Class Diagram__\n
namespace com.olexyn.ensync {
class com.olexyn.ensync.Execute {
+ execute()
+ execute()
+ executeBatch()
}
}
namespace com.olexyn.ensync {
class com.olexyn.ensync.Execute.TwoBr {
+ error : BufferedReader
+ output : BufferedReader
}
}
namespace com.olexyn.ensync {
class com.olexyn.ensync.Flow {
- state : String
+ getState()
+ run()
- readOrMakeStateFile()
}
}
namespace com.olexyn.ensync {
class com.olexyn.ensync.Main {
{static} + FLOW_THREAD : Thread
{static} + MAP_OF_SYNCMAPS : HashMap<String, SyncMap>
{static} + UI_THREAD : Thread
{static} + main()
}
}
namespace com.olexyn.ensync {
class com.olexyn.ensync.Tools {
+ Tools()
+ brToListString()
+ brToString()
+ fileToLines()
+ mapMinus()
+ stateFilePath()
+ stringListToSb()
+ writeSbToFile()
+ writeStringListToFile()
}
}
com.olexyn.ensync.Execute +-down- com.olexyn.ensync.Execute.TwoBr
com.olexyn.ensync.Flow .up.|> java.lang.Runnable
com.olexyn.ensync.Flow o-- com.olexyn.ensync.Tools : tools
com.olexyn.ensync.Tools o-- com.olexyn.ensync.Execute : x
right footer
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
For more information about this tool, please contact philippe.mesmeur@gmail.com
endfooter
@enduml

@ -0,0 +1,59 @@
@startuml
title __UI's Class Diagram__\n
namespace com.olexyn.ensync {
namespace ui {
class com.olexyn.ensync.ui.Bridge {
~ addDirectory()
~ newCollection()
~ removeCollection()
~ removeDirectory()
}
}
}
namespace com.olexyn.ensync {
namespace ui {
class com.olexyn.ensync.ui.Controller {
# gridPane : GridPane
{static} ~ COLUMN_COUNT : int
{static} ~ SPACE : Text
~ collection_count : int
+ initialize()
- addDirectory()
- insertPayload()
- newCollection()
- redraw()
- removeCollection()
- removeDirectory()
}
}
}
namespace com.olexyn.ensync {
namespace ui {
class com.olexyn.ensync.ui.UI {
+ run()
+ start()
}
}
}
com.olexyn.ensync.ui.Controller .up.|> javafx.fxml.Initializable
com.olexyn.ensync.ui.Controller o-- com.olexyn.ensync.ui.Bridge : bridge
com.olexyn.ensync.ui.UI .up.|> java.lang.Runnable
com.olexyn.ensync.ui.UI -up-|> javafx.application.Application
right footer
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
For more information about this tool, please contact philippe.mesmeur@gmail.com
endfooter
@enduml

@ -0,0 +1,14 @@
@startuml
title __FILES's Class Diagram__\n
right footer
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
For more information about this tool, please contact philippe.mesmeur@gmail.com
endfooter
@enduml
Loading…
Cancel
Save