| 27 | The assign() method should take care about property types and annotations to decide what to do when trying to copy data. Here are all the cases: |
| 28 | ||property types||relation/annotation||value class||value action||comment|| |
| 29 | |
| 30 | ||!ValueProperty ||@own ||immutable ||error |||| |
| 31 | || || ||pro-obj ||pro.clone |||| |
| 32 | || || ||else ||error |||| |
| 33 | || ||@shared||all ||copy ref |||| |
| 34 | || ||none ||immutable ||copy ref ||This includes !FinalProperty obects|| |
| 35 | || || ||else ||error |||| |
| 36 | |||||||||||| |
| 37 | ||!ParentProperty || ||all ||set null ||Better decide whether to keep the same parent in each case.|| |
| 38 | |||||||||||| |
| 39 | ||!FinalProperty || --> || --> || --> ||Same as !ValueProperty. Should the assign operation be possible? Probably not because it should be immutable|| |
| 40 | |||||||||||| |
| 41 | ||!ResourceProperty || --> || --> ||none ||do nothing|| |
| 42 | ||!AutoProperty || --> || --> ||none ||do nothing|| |
| 43 | |||||||||||| |
| 44 | ||!ValueListProperty|| --> || --> || --> ||Create a new list and apply the rules for !ValueProperty to the elements of the list as if they are single values|| |
| 45 | ||!AutoListProperty || --> || --> ||none ||do nothing|| |
| 46 | |
| 47 | Implementation should just add these cases to the assign() method in the !ProUtil class. |