Introduce InMemoryDataTreeModification.Noop
The set of operations in a modification is defined as set when user
calls DataTreeModification.ready() and therefore we can check for
LogicalOperation.NONE before we complete the Open -> Ready transition.
This allows us to split out a singleton Noop state to represent a empty
modification and recognize it in newModification()/validate()/prepare()
so these run completely concurrently.
Since this is the second singleton State object, introduce
abstract SingletonState with a common toString().
JIRA: YANGTOOLS-1651
Change-Id: Ieb2700aa3673a5d305f618aae4cf8249e05d4133
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
6f8c9a73fc968ba7d4dc706a07b5a8629ad23285)