orisai / object-mapper

Raw data mapping to validated objects

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ensure inheritance and dependencies invalidation is properly supported

mabar opened this issue · comments

  • annotations/attributes should define source class, if it is a parent and not the current class (prerequirement of #35)
  • each mapped object metadata should define list of dependencies to check for metadata invalidation (any classes used in rules, used traits, implemented interfaces and extended classes) - continues in #47
  • referenced constants from other classes should ideally result in checking their class, but that may be not possible) - same as previous, #47
  • cache in variable for performance in development mode (in production metadata are cached permanently) (already works partially, continues in #48)
  • each (mapped object) class and trait in hierarchy should allow mapped properties
  • each (mapped object) class and trait in hierarchy should allow callbacks - continues in #52
  • each (mapped object) class in hierarchy should allow docs annotations (traits probably not, some doc annotations are unique, some are not) - same as previous, #52
  • Rules, callbacks, docs and modifiers should also check scope in which are defined - while attributes and annotations validate if they are above class/property, custom sources should not be expected to do so - continues in #53
  • Traits may define Skipped and FieldName modifiers, modifier CreateWithoutConstructor should be exclusive to real class - BS
  • CreateWithoutConstructor should be allowed only by first inheritor of MappedObject, child of a mapped object implementation should not be allowed to change something, what parent class does not support - continues in #54, bit modified
  • Interfaces should not define anyting - it is fine, interfaces can define e.g. callbacks and docs

New issues opened for individual tasks (links added to relevant tasks)

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.