yangtools.git
2 weeks agoBump versions to 4.0.1-SNAPSHOT
Robert Varga [Tue, 1 Oct 2019 19:27:08 +0000 (21:27 +0200)]
Bump versions to 4.0.1-SNAPSHOT

This starts the next development iteration.

Change-Id: I1cd1f5d811fd4ceab6b659d5a6aa27f11bd63e40
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump yangtools to 4.0.0
Robert Varga [Tue, 1 Oct 2019 12:17:43 +0000 (14:17 +0200)]
Bump yangtools to 4.0.0

yangtools-4.0.0 has been released, this patch adopts that version,
ending the period when we were snapshot-integrated.

Change-Id: I724f264c434ef2efd797ae56e61db9f3e374e425
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRemove unneeded javax.annotation suppressions
Robert Varga [Tue, 1 Oct 2019 11:06:12 +0000 (13:06 +0200)]
Remove unneeded javax.annotation suppressions

We do not have javax.annotation dependencies in these components,
remove supressions.

Change-Id: Ie08b1fffb923afb2f5579abc01577b9b786204df
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoTerminally deprecate yang.binding.RpcImplementation
Robert Varga [Tue, 1 Oct 2019 10:30:04 +0000 (12:30 +0200)]
Terminally deprecate yang.binding.RpcImplementation

We do not seem to have any use for this interface, let's just
schedule it for removal.

Change-Id: Iae2b36320411f89486d0f7def0b144b03ed015c1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRemove dom.codec.gen.spi remnants
Robert Varga [Tue, 1 Oct 2019 10:21:41 +0000 (12:21 +0200)]
Remove dom.codec.gen.spi remnants

This removes the last remnants of the binding-dom-codec SPI contract,
keeping all implementation details internal.

Change-Id: I7f5c71b3abb17737ef0fd8c580260c01bc777c9a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoAdjust for NormalizedNodeStreamWriter.startAnyxmlNode() changing
Robert Varga [Mon, 30 Sep 2019 15:29:13 +0000 (17:29 +0200)]
Adjust for NormalizedNodeStreamWriter.startAnyxmlNode() changing

The baseline interface now propagates the intended object model,
handle it accordingly.

Change-Id: I9b68801a2a1ee20d86599432fe6b593007836807
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoAdjust for AnydataExtension being integrated
Robert Varga [Mon, 30 Sep 2019 11:31:50 +0000 (13:31 +0200)]
Adjust for AnydataExtension being integrated

This updates serialization code to match changes made to
NormalizedNodeStreamWriter -- i.e. AnydataExtension being an
integral part of it.

Change-Id: Id09cec7ba7f7d4359379e9bd74baae4d008b1e63
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoFix references to Any{Data,Xml}SchemaNode
Robert Varga [Fri, 27 Sep 2019 14:09:20 +0000 (16:09 +0200)]
Fix references to Any{Data,Xml}SchemaNode

This is a follow-up for renames of AnyXmlSchemaNode and
AnyDataSchemaNode.

Change-Id: I63f9ae94b1bc3fc72385b4ad947a16803d959d0c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoAdjust for AnyXmlNode changing its name
Robert Varga [Fri, 27 Sep 2019 14:05:20 +0000 (16:05 +0200)]
Adjust for AnyXmlNode changing its name

This is a follow-up patch to adjust uses of AnyXmlNode to either
AnyxmlNode or DOMSourceAnyxmlNode.

Change-Id: I98be4147b6515ab939dc9113d4b80c0a589786d0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRevert "Do not emit empty lists to NormalizedNodes"
Robert Varga [Sun, 22 Sep 2019 02:12:42 +0000 (04:12 +0200)]
Revert "Do not emit empty lists to NormalizedNodes"

This reverts commit 672a3adc4378ec5228b15bcdafc4dec2ea066dbd,
as it is breaing DTO behavior applications explicitly depend on.

The issue cannot be fixed without touching templates, i.e. requires
complete implementation of MDSAL-449.

JIRA: MDSAL-456
Change-Id: I07baf3a7be3867c6bee1b66a05b013ee0ba5171f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoFix space stripping
Robert Varga [Tue, 6 Aug 2019 15:48:56 +0000 (17:48 +0200)]
Fix space stripping

This fixes the coded intended to strip leading/trailing spaces
from the line builder. This was ineffective due to how xtend
compares char-to-String and would not work anyway, as the stripping
was done in wrong order.

Change-Id: I119ed55492da17355e3f3137dcbb8862259dc44f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRemove superfluous @NonNull annotation
Robert Varga [Sun, 15 Sep 2019 10:11:14 +0000 (12:11 +0200)]
Remove superfluous @NonNull annotation

MoreObjects.toStringHelper() is not tagged properly, hence generated
toString() methods generate a ton of nullness warnings. Fix that up
by removing the annotation (to mirror what we are otherwise doing
in other methods).

Change-Id: Ib4fc3d3fdd3fab1e5fb257f3e85c344999d6eb1a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoForce BindingNormalizedNodeSerializers to deal with event instant
Robert Varga [Fri, 13 Sep 2019 15:56:18 +0000 (17:56 +0200)]
Force BindingNormalizedNodeSerializers to deal with event instant

This is a bit of public API, which was retrofitted. Now make the
eventInstant-aware method mandatory-to-implement.

Change-Id: I9b9287bd62dc2c1ca789e0bc112a92e499ffd246
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoMake BindingCodecTree.getIdentityCodec() non-default
Robert Varga [Fri, 13 Sep 2019 15:52:22 +0000 (17:52 +0200)]
Make BindingCodecTree.getIdentityCodec() non-default

We want this method implemented, hence make it non-default.

Change-Id: I5fbd6a0685eb508c42d63dce69d716e5efaa4912
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRemove yang.binding.annotations.(Module)QName
Robert Varga [Wed, 4 Sep 2019 20:03:17 +0000 (22:03 +0200)]
Remove yang.binding.annotations.(Module)QName

These annotations are scope=runtime and are not used anywhere.
Furthermore they require refection access to classses, so just don't
bother.

Change-Id: Icb23fd1ffbd6ebc18e722ba6f0bff9109db5f356
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoGenerate legacy value contructors for all classes
Robert Varga [Thu, 5 Sep 2019 13:11:38 +0000 (15:11 +0200)]
Generate legacy value contructors for all classes

This expands legacy constructor compatibility to also include
Key classes, not only value wrappers. The codegen parts is relatively
straightforward.

IdentitiableItemCodec is coded on the assumption there are only
two constructors -- one copy and one all-value, which is now violated.

Hence we update IdentifiableItemCodec to also ignore any constructors
which are marked as deprecated.

JIRA: MDSAL-330
Change-Id: Ie23ba8b3788b320b2d11e263c9af228b4c2e41a9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoMake BaseTemplate.asArguments() take a Collection
Robert Varga [Thu, 5 Sep 2019 12:25:28 +0000 (14:25 +0200)]
Make BaseTemplate.asArguments() take a Collection

This side-steps the need for IterableExtensions, make the code
a tad faster.

Change-Id: I210d4da343bdae82b81dbb0fd30c6d8ed7d6c13e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRemove use of new Integer(String)
Robert Varga [Thu, 5 Sep 2019 10:05:57 +0000 (12:05 +0200)]
Remove use of new Integer(String)

This constructor has been deprecated in Java 9, migrate to
Integer.valueOf(String) instead.

Change-Id: I5b6dfe27502408bab9ae2f2453dd1a713c00b6bd
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoMake BaseTemplate.fieldName() return String
Robert Varga [Thu, 5 Sep 2019 10:00:15 +0000 (12:00 +0200)]
Make BaseTemplate.fieldName() return String

Java 9+ has very efficient string concatenations, hence we can
use them. This allows us to better bind to to StringConcatenation,
as we'll end up wired to .append(String) rather than .append(Object),
as would be the case with CharSequences.

Change-Id: I2a93139c1b1af8b4c335aa4a4cb8a68bd76acb95
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoAdd migration setter @return javadoc
Robert Varga [Thu, 5 Sep 2019 09:38:22 +0000 (11:38 +0200)]
Add migration setter @return javadoc

This mitigates a warning emitted by javadoc.

JIRA: MDSAL-330
Change-Id: Ic3aa1cc517d7a5d0f3e460d9c1ca353450ae4c66
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoGenerate compatibility constructors for Uint wrapped types
Robert Varga [Wed, 4 Sep 2019 14:57:10 +0000 (16:57 +0200)]
Generate compatibility constructors for Uint wrapped types

We already are generating compatibility setters, this extends this
capability to wrapper classes (i.e. their constructors). As usual
the compatibility code is marked as deprecated for removal.

Also fixes some code formatting issues introduces in previous
patches.

JIRA: MDSAL-330
Change-Id: I0b2db136c27c26de33f8a756292dde4cdf53bebb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoSeparate all-values constructor from typedef constructor
Robert Varga [Wed, 4 Sep 2019 14:03:48 +0000 (16:03 +0200)]
Separate all-values constructor from typedef constructor

ClassTemplate.allValuesContructor() is actually two separate
templates, which is obfuscated by a number of checks. This patch
splits them out, eliminating the need for multiple checks for
the same thing.

JIRA: MDSAL-330
Change-Id: I298299ffe126fe5f51dc9c2776f46245eb0ce563
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoOptimize array checks
Robert Varga [Wed, 4 Sep 2019 14:24:01 +0000 (16:24 +0200)]
Optimize array checks

Rather than bouncing through .importedName().contains("[]"), we
can make this check through .name().endsWith("[]"), which prevents
a round-trip to import mechanics and is potentially faster.

Change-Id: I4a939333c294ffa94ac1c013a8e3cee466e32cb9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoCache computed fieldName in templates
Robert Varga [Wed, 4 Sep 2019 14:17:32 +0000 (16:17 +0200)]
Cache computed fieldName in templates

We end up using the same name multiple times, which really is an
invariant. Cache and reuse the constant, so that we end up with
more efficient code.

Change-Id: I6ee5cc162c43c542a08ba84250f42d9a30ba3f0d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoFix ClassTemplate.genConstructor() declaration
Robert Varga [Wed, 4 Sep 2019 12:44:47 +0000 (14:44 +0200)]
Fix ClassTemplate.genConstructor() declaration

Using an array here is forcing us to needlessly unwrap the arraylist
(a perfectly iterable thing) to an array, which is only iterater over.

Fix this by passing down an iterable, which means the list can be
passed down as is.

Change-Id: I1572729d554c3ce8ae6ab94c1ba3d5547399e7ab
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoAcquire first value manually in ClassTemplate
Robert Varga [Wed, 4 Sep 2019 12:40:35 +0000 (14:40 +0200)]
Acquire first value manually in ClassTemplate

xtend's get(0) extension ends up creating a temporary list
holding a copy of the (single) value. This is not entirely
efficient, as we can get the same result from plain iterator.

Change-Id: I0f4398a47cb771e8ab7a212a67c5e402d49ffbf2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoAcquire first entry of type constants in BuilderTemplate
Robert Varga [Wed, 4 Sep 2019 12:30:47 +0000 (14:30 +0200)]
Acquire first entry of type constants in BuilderTemplate

Current code is relying on xtend Conversions to get first entry
from keySet/values separately. That code ends up copying the entire
collection into an array before picking the first element, which
is ... far from optimal.

Peel the first entrySet item using iterator().next() and then
reference key/value from there, which removes a dependency on
Conversions and is way more efficient.

Change-Id: I9cf16c416e65e538697aab26ebb5b9a81965e871
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoOptimize allProperties sorting
Robert Varga [Wed, 4 Sep 2019 11:55:25 +0000 (13:55 +0200)]
Optimize allProperties sorting

Java 8 has list.sort(), which we can easily short-circuit to
ArrayList's implementation by using 'val' declaration. We can
also make the comparator a constant, so that it is widely reused.

Change-Id: Ib8ce132a806d4e1ab58746ce85e732d451d82845
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoOptimize ClassTemplate.allProperties
Robert Varga [Wed, 4 Sep 2019 11:46:14 +0000 (13:46 +0200)]
Optimize ClassTemplate.allProperties

This variable is guaranteed to be a List, declare it as such,
adding following benefits:
- eliminates ClassTemplate's reliance on IterableExtensions
- a few isEmpty() checks get be eliminated, as size() is now
  handled through List.size()

Change-Id: I14354dfef3a6b663c9a027353704127437d4344d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoOptimize BuilderTemplate string references
Robert Varga [Wed, 4 Sep 2019 11:34:38 +0000 (13:34 +0200)]
Optimize BuilderTemplate string references

AUGMENTATION_FIELD.toFirstUpper is a true constant, make sure we
compute it only once.

Also, in case of augmentable, the augmentable imported name is an
invariant, hence precompute the string and use it multiple times
in the template.

Change-Id: I9607ac2e18e587118659545205323037db176fda
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBackport code generation test
Robert Varga [Wed, 4 Sep 2019 11:15:12 +0000 (13:15 +0200)]
Backport code generation test

This backports the model used in binding2 testing.

JIRA: MDSAL-330
Change-Id: I8d2e3998523b78ceccf627134ed92496169a0ca8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoImprove generated builder documentation
Robert Varga [Tue, 3 Sep 2019 20:01:24 +0000 (22:01 +0200)]
Improve generated builder documentation

This adds some sorely-needed guidelines as to how to use generated
builders.

Change-Id: I786a7e2f249f336363d4ddc107919edb861e0422
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRemove BigIntegerRangeGenerator
Robert Varga [Mon, 2 Sep 2019 14:28:48 +0000 (16:28 +0200)]
Remove BigIntegerRangeGenerator

We do not generate BigIntegers anymore, this removes related
generator.

JIRA: MDSAL-330
Change-Id: I29be15b970e8392f474136c8dd6a948fcbd4054c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoFix Builder javadoc mis-reference
Robert Varga [Tue, 3 Sep 2019 19:24:17 +0000 (21:24 +0200)]
Fix Builder javadoc mis-reference

Builders should reference target type in their documentation.

Change-Id: I3ba9c31c77be9d86bc4e2d854360b6f8cf0fb86b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoChange mapping of uint{8,16,32,64}
Robert Varga [Mon, 2 Sep 2019 08:34:32 +0000 (10:34 +0200)]
Change mapping of uint{8,16,32,64}

This changes the mapping of uint types to non-widening yang.common
classes and deals with them being used by yang.{data,model}.api:

YANG type  Old Java type         New Java Type
uint8      java.lang.Short       org.opendaylight.yangtools.yang.common.Uint8
uint16     java.lang.Integer     org.opendaylight.yangtools.yang.common.Uint16
uint32     java.lang.Long        org.opendaylight.yangtools.yang.common.Uint32
uint64     java.math.BigInteger  org.opendaylight.yangtools.yang.common.Uint64

This affects all getters, setters and value wrapper classes. For
setters, code generator emits a deprecated setter, which performs
the conversion internally.

JIRA: MDSAL-330
JIRA: YANGTOOLS-1018
Change-Id: Ic3913adc4a5d707b01671a982c58221cb028f6d9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoImprove BindingMapping lookup
Robert Varga [Mon, 2 Sep 2019 15:57:36 +0000 (17:57 +0200)]
Improve BindingMapping lookup

Expose the fact that JAVA_RESERVED_WORDS is an ImmutableSet,
allowing callers to better bind to it.

Change-Id: I8131aa8d2be9a2b8b1e13f7c5d6231b9ccb5fd2d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoFixup leaf caching test in face of lazy leaf nodes
Robert Varga [Fri, 30 Aug 2019 11:18:02 +0000 (13:18 +0200)]
Fixup leaf caching test in face of lazy leaf nodes

In case we are doing lazy leaves, we end up not retaining them
and hence the test needs to do something different.

Change-Id: I68fded3a799d3c6c023eaa63336b7002ea4594c7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoAdd @ConstructorParameters to generated classes
Robert Varga [Wed, 28 Aug 2019 15:09:12 +0000 (17:09 +0200)]
Add @ConstructorParameters to generated classes

This allows generated classes to be used with both java.beans
and javax.management even either of java.desktop or java.management
module is missing.

JIRA: MDSAL-468
Change-Id: I9903558102d094efeb60201673980685e2b5a253
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoSwitch to using VarHandles
Robert Varga [Wed, 1 May 2019 12:23:15 +0000 (14:23 +0200)]
Switch to using VarHandles

VarHandles allow us to relax the memory ordering when accessing
cached CodecDataObject fields. Use them instead of
AtomicReferenceFieldUpdaters.

Change-Id: If95e4e058491cee4babfcbb49bb7cf47e62f9444
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoOptimize BindingNormalizedNodeCodecRegistry representation checks
Robert Varga [Fri, 16 Aug 2019 13:40:24 +0000 (15:40 +0200)]
Optimize BindingNormalizedNodeCodecRegistry representation checks

isBindingRepresentable() is a hot method, which performs a few
type checks. This patch folds those checks into a single return,
inverting the logic (which is negated anyway at the sole caller).
This cuts the amount of byte code to half, thus aiding inlining.

Futhermore we take advantage of ValueNode covering two cases we
explicitly test for, reducing the number of checks performed.

Finally we reorder the checks to improve their efficiency by
tackling most-common constructs first.

Change-Id: I556d1098a9d7dd043b2f8d756c2388f339f6b8ec
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoOptimize IdentifiableItemCodec a bit
Robert Varga [Mon, 26 Aug 2019 08:47:59 +0000 (10:47 +0200)]
Optimize IdentifiableItemCodec a bit

Do not force instantiation of the backing map, as for single-item
NodeIdentifierWithPredicates it is just wasteful.

Change-Id: I0cc13d0afe2f3329f4757e9da414500de132acf6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoTake advantage of singleton NodeIdentifierWithPredicates
Robert Varga [Tue, 27 Aug 2019 11:09:43 +0000 (13:09 +0200)]
Take advantage of singleton NodeIdentifierWithPredicates

NodeIdentifierWithPredicates now includes an efficient single-entry
implementation, which is rendering instantiation through
SharedSingletonMap superfluous. Take advantage of this new
constructor.

Change-Id: I9c724ceeef829ac5dc0cfded38410ab417ed4d47
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRemove BindingCodec and BindingSerializer
Robert Varga [Mon, 26 Aug 2019 09:38:38 +0000 (11:38 +0200)]
Remove BindingCodec and BindingSerializer

These interfaces are not used anywhere, remove them.

Change-Id: I7b302cd4f0e397cbe99f2fc1b3d85103ccd47739
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoMass-migrate binding-dom-codec to IllegalArgumentCodec
Robert Varga [Mon, 26 Aug 2019 08:51:52 +0000 (10:51 +0200)]
Mass-migrate binding-dom-codec to IllegalArgumentCodec

This new interface most closely resembles the old intent behind
concepts.Codec, except it does not quite match nullness guaratees.

JIRA: YANGTOOLS-1017
Change-Id: I7675743ac29834ffa4b15fa70b62d1a3dad2d18b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoMake IdentifiableItemCodec an IllegalArgumentCodec
Robert Varga [Mon, 26 Aug 2019 08:43:25 +0000 (10:43 +0200)]
Make IdentifiableItemCodec an IllegalArgumentCodec

The interface contract matches the expectations, hence we can
cleanly apply the pattern.

JIRA: YANGTOOLS-1017
Change-Id: I7b0efcfa0981646071c3715daa691559f923c285
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoMake IdentityCodec an AbstractIllegalArgumentCodec
Robert Varga [Mon, 26 Aug 2019 08:30:35 +0000 (10:30 +0200)]
Make IdentityCodec an AbstractIllegalArgumentCodec

The behaviour is pretty much the same, except for throwing IAE
on nulls -- this is made consistent to throw a NPE.

JIRA: YANGTOOLS-1017
Change-Id: I23fea88b2c32336400ab1120949507c7442d8076
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoMove Binding codec interfaces
Robert Varga [Mon, 26 Aug 2019 07:14:49 +0000 (09:14 +0200)]
Move Binding codec interfaces

This moves codec interfaces from yang-binding to binding-dom-codec,
as they are an implementation detail and should never have been
exposed here.

Change-Id: I90a24527d60398ea428eff12f4359501865d3b36
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoGuard generator lookup against nulls
Robert Varga [Sat, 24 Aug 2019 08:46:16 +0000 (10:46 +0200)]
Guard generator lookup against nulls

If we encounter an unsupported type we can end up throwing a NPE
without any details. This hardens the lookup to verify we have
a hit, and report the type if we have a miss.

Change-Id: I89cb988d8705772065d12b4074775ad9bc538499
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRemove unneeded checkstyle/spotbugs declarations
Robert Varga [Thu, 22 Aug 2019 11:05:03 +0000 (13:05 +0200)]
Remove unneeded checkstyle/spotbugs declarations

odlparent is forcing enforcement of both, there is no point
in us repeating the declarations.

Change-Id: I0896e446ab587cb9d5b5b746bae030d58497cf71
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoDisable SpotBugs on select artifacts
Robert Varga [Thu, 22 Aug 2019 11:13:15 +0000 (13:13 +0200)]
Disable SpotBugs on select artifacts

This marks specific artifacts to disable SpotBugs, as these are now
enforced by default.

Change-Id: I2e76979bddaec7c6db9f9460493f2c9f42d8e34f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRemove the ability to return mutable lists
Robert Varga [Wed, 29 May 2019 12:07:21 +0000 (14:07 +0200)]
Remove the ability to return mutable lists

This patch removes the legacy opt-in to return mutable lists instead
of immutable ones.

JIRA: MDSAL-446
Change-Id: I73c09e036f8c3f92d27e6706ef4133da2c4232a2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoMake wrapped class equals() final
Robert Varga [Mon, 19 Aug 2019 14:21:51 +0000 (16:21 +0200)]
Make wrapped class equals() final

This forbids overriding equals() for wrapper classes, meaning
the first class in hierarchy defines the proper equality
contract, which cannot be overridden.

This means that all objects within that hierarchy are considered
equal if they have the same representation (i.e. fields).

JIRA: MDSAL-440
Change-Id: I0c90ad9553071be8a8fc1109b663fe631b5599b9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump to yangtools-4.0.0-SNAPSHOT
Robert Varga [Mon, 5 Aug 2019 09:04:46 +0000 (11:04 +0200)]
Bump to yangtools-4.0.0-SNAPSHOT

For some of the integration work we'll need a preview of yangtools,
switch to using their snapshots.

Change-Id: I46914e83b96d47353f1512b63e42b51383600e02
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump to odlparent-6.0.0-SNAPSHOT
Robert Varga [Mon, 5 Aug 2019 09:01:48 +0000 (11:01 +0200)]
Bump to odlparent-6.0.0-SNAPSHOT

We will need settings from upstream to enable JDK11-specific work,
use odlparent snapshots for now.

Change-Id: If8f9d1118f0441a6b9df89745f2eef8d14c5e78c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoSwitch mutable lists into an opt-in
Robert Varga [Wed, 29 May 2019 12:04:25 +0000 (14:04 +0200)]
Switch mutable lists into an opt-in

This changes the default handling of lists the codec uses, when

org.opendaylight.mdsal.binding.dom.codec.impl.compat-mutable-lists

property is not set. The default is now to use immutable lists
unless the property is explicitly set to "true".

JIRA: MDSAL-446
Change-Id: Ie996be8098b44d109ede9fe78511ad9746cc8e78
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoDo not emit empty lists to NormalizedNodes
Robert Varga [Tue, 18 Jun 2019 19:26:20 +0000 (21:26 +0200)]
Do not emit empty lists to NormalizedNodes

This patch changes the representation of empty Binding lists in
DOM world. Empty lists are equivalent to being non-present, hence
they are not emitted.

This mirrors the getFoo()/nonnullFoo() accessor duality, i.e. empty
lists can be instantiated on-demand as placeholders for nulls.

In DOM world, list nodes are virtual containers, which do not hold
any semantics and are created on demand -- hence it does not make
sense to pass them down to DOM.

This does not create data tree operation changes, as lists are not
directly addressable, hence their WRITE/MERGE semantics are shared
by their parent. Empty merges have not semantic value, as empty
lists disappear on touch. Empty writes end up correctly observing
lifecycle -- empty lists end up disappearing, just as they would
be expected if they have undergone a lifecycle event (such as an
empty merge).

JIRA: MDSAL-456
Change-Id: I78efc4aa4c3b4100ff52490fefe94e2f65f43efc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRestructure LengthGenerator.createExpressions()
Robert Varga [Thu, 15 Aug 2019 11:36:49 +0000 (13:36 +0200)]
Restructure LengthGenerator.createExpressions()

SpotBugs is warning about INT_VACUOUS_COMPARISON at the head
of the 'min <= Integer.MAX_VALUE' comparison. This restructures
the logic to eliminate this check.

Change-Id: Ie465bb16443d9912a12a8b2f712851a24d339d78
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoAlign CodecDataObject augmentations toString()
Robert Varga [Wed, 19 Jun 2019 14:18:49 +0000 (16:18 +0200)]
Align CodecDataObject augmentations toString()

Compile-time generated codecs are using only values() from
augmentation in their toString() method. Make sure
AugmentableCodecDataObjects are following the same pattern.

Change-Id: I876dd3f2e8b6e42685198c9e1d4304592da87334
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoDo not include byte-buddy META-INF in shade
Robert Varga [Thu, 15 Aug 2019 12:23:33 +0000 (14:23 +0200)]
Do not include byte-buddy META-INF in shade

We do not want to leak module-info.class from byte-buddy, hence
filter all of its META-INF, as it does not provide anything of
value.

Change-Id: Ie74968147f281f58c5692affcfe6e087d7b3650f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoEliminate 'txt' temporary
Robert Varga [Thu, 15 Aug 2019 11:29:15 +0000 (13:29 +0200)]
Eliminate 'txt' temporary

This variable is not really needed and the way it is used SpotBugs
reports a (valid) dead local store. Eliminate the variable completely.

Change-Id: I4fec53be80a54bedfc7481063bf507c9f10990a8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoFix use of StringTokenizer methods
Robert Varga [Thu, 15 Aug 2019 11:21:56 +0000 (13:21 +0200)]
Fix use of StringTokenizer methods

Rather than using Enumeration-related methods (*Element()), use
the methods provided by StringTokenizer (*Token()), which have
the same functionality, but are not down-casted to Object.

Change-Id: I5c0c258db8e70cafef058d628c20bf9cbeb26cb0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoMake AlphabeticallyTypeMemberComparator Serializable
Robert Varga [Thu, 15 Aug 2019 11:07:20 +0000 (13:07 +0200)]
Make AlphabeticallyTypeMemberComparator Serializable

Comparators are recommended to be serializable, this fulfills
the need.

Change-Id: Id038ff9fb96c54ecee7cef22b881396d8302590f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoFix SpotBugs complaing around locale
Robert Varga [Thu, 15 Aug 2019 11:05:50 +0000 (13:05 +0200)]
Fix SpotBugs complaing around locale

We are using english locale, which should work across the platform.

Change-Id: I552d4212d976c5034b76fb27bce887014b5edb9e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoFix InterfaceTemplate documentation
Robert Varga [Thu, 15 Aug 2019 11:04:26 +0000 (13:04 +0200)]
Fix InterfaceTemplate documentation

InterfaceTemplate will fail to instantiate with a NPE if a null
type is ever passed in. Fix documentation and remove dead code.

Change-Id: Ief395cbf0d4d417e8041de39feee1e50d09157e0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBindingReflections.getQName() should return nonnull
Robert Varga [Fri, 26 Jul 2019 13:28:38 +0000 (15:28 +0200)]
BindingReflections.getQName() should return nonnull

It is a hard error if we cannot find the QName corresponding to
an BaseIdentity subclass. Fix getQName() to guarantee a non-null
return, throwing ISE if we should ever not find the QName.

Change-Id: I551499a8daec87e74669ba93177ad0e795367eae
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoOptimize whitespace replacement
Robert Varga [Tue, 6 Aug 2019 15:27:33 +0000 (17:27 +0200)]
Optimize whitespace replacement

Rather than doing two replacements, use a single two-character
matcher and a single replacement pass. While we're in the area,
also create a SPACE constant and use it where we mean ' ' as a
char (not a string).

Change-Id: I30d7c16074fe172a834ecf1bb0fe30a18fdc6bac
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoDo not lose newlines/tabs from javadoc
Robert Varga [Tue, 6 Aug 2019 14:24:44 +0000 (16:24 +0200)]
Do not lose newlines/tabs from javadoc

When we are formatting javadoc for a accessor method, we must treat
any newlines/tabs as whitespace and not lose them, otherwise we would
end up with concatenated words.

JIRA: MDSAL-416
Change-Id: I3c0fc296692a141d6787a5cba8b17738a108274e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoUse bulk-close for internal registrations
Robert Varga [Wed, 14 Aug 2019 14:49:59 +0000 (16:49 +0200)]
Use bulk-close for internal registrations

Rather than using wrapped registrations through the public API,
we really want to first remove all modules and then update the
context (if needed).

JIRA: MDSAL-466
Change-Id: Ib281fff7264b3dd11b222095f8286087cb488002
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoDisable updates when we are stopping
Robert Varga [Tue, 6 Aug 2019 17:48:05 +0000 (19:48 +0200)]
Disable updates when we are stopping

We should not be propagating bundle updates when we know we are
stopping. This patch marks that knowledge in the tracker.

JIRA: MDSAL-466
Change-Id: Ie4e8b96907a8909150b4080000888d1d10ce8e54
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoFix checkstyle in javadocs
Robert Varga [Tue, 6 Aug 2019 11:29:45 +0000 (13:29 +0200)]
Fix checkstyle in javadocs

Updated checkstyle is catching more violations, fix them up.

Change-Id: I1048fea86966113184fe49fe707d6d0d328c3508
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoReduce use of java.lang constructors
Robert Varga [Tue, 6 Aug 2019 12:12:19 +0000 (14:12 +0200)]
Reduce use of java.lang constructors

Long/Integer constructors have been deprecated, reduce their use.

Change-Id: I2ce4e63904694d3fe442622b85d831253b4a87fb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoFixup cast in BindingReflections
Robert Varga [Tue, 6 Aug 2019 11:37:54 +0000 (13:37 +0200)]
Fixup cast in BindingReflections

Use an explicit typed Class instead of raw class.

Change-Id: I613d81fc3162ee3bea4955aa2afacf728e2cfab6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRemove javassist-based code
Robert Varga [Thu, 1 Aug 2019 12:52:09 +0000 (14:52 +0200)]
Remove javassist-based code

This removes deprecated use of javassist.

Change-Id: Ia5686ce24052222cadb7465e66916b0db5b05ff3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump versions for mdsal-5.0.0
Robert Varga [Thu, 1 Aug 2019 12:34:39 +0000 (14:34 +0200)]
Bump versions for mdsal-5.0.0

This starts the next major version development.

Change-Id: I5b0de45da268a68d89eb2973b276a0a2d43dfbdc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump versions to 4.0.4-SNAPSHOT
Robert Varga [Mon, 29 Jul 2019 11:12:07 +0000 (13:12 +0200)]
Bump versions to 4.0.4-SNAPSHOT

This starts the next development iteration.

Change-Id: I168f77460463cc5a50521f60bdf79a1e802c0f4a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump yangtools to 3.0.4
Robert Varga [Mon, 29 Jul 2019 11:11:34 +0000 (13:11 +0200)]
Bump yangtools to 3.0.4

We have validated yangtools-3.0.4, bump to the release version.

Change-Id: Ib56bb6b87e8fd8609d86b310a74fde7f491449c3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoExpose IdentityCodec from BindingCodecTree
Robert Varga [Thu, 25 Jul 2019 19:37:14 +0000 (21:37 +0200)]
Expose IdentityCodec from BindingCodecTree

Transcoding identities is needed to make sense of yangtools
identifiers (such as DatastoreIdentifier) versus binding classes.

Expose this functionality as BindingIdentityCodec from
BindingCodecTree and make use of it.

JIRA: MDSAL-460
Change-Id: I8b4110dd711eb18a2586fd1bd036d09fab13871a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoAdd yanglib-rfc8525
Robert Varga [Thu, 25 Jul 2019 14:04:28 +0000 (16:04 +0200)]
Add yanglib-rfc8525

This adds the necessary support for constructing mount points
described through RFC8525 (NMDA) YANG Library.

JIRA: MDSAL-463
Change-Id: I22b4449f544e3d0225bac59fa3928ecb434f8f13
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump yangtools to 3.0.4-SNAPSHOT
Robert Varga [Thu, 25 Jul 2019 10:11:27 +0000 (12:11 +0200)]
Bump yangtools to 3.0.4-SNAPSHOT

This adopts yangtools-3.0.4 for the improvements made to rfc8528
support infrastructure.

Change-Id: Ic51134f1abdf8120a9071b4aeff7a054c707d941
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRemove trailing semicolons
Robert Varga [Mon, 22 Jul 2019 13:21:48 +0000 (15:21 +0200)]
Remove trailing semicolons

These are throwing off sonar, remove them to keep it happy

Change-Id: I2cd19e34825916721512f956bcfc678953ebfb6f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump yangtools to 3.0.3
Robert Varga [Fri, 21 Jun 2019 05:16:48 +0000 (07:16 +0200)]
Bump yangtools to 3.0.3

This picks up the latest yangtools release.

Change-Id: I5baeb81e3d947ba30f887ffd17ea437ec5f51fd3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump byte-buddy to 1.9.14
Robert Varga [Mon, 8 Jul 2019 19:04:06 +0000 (21:04 +0200)]
Bump byte-buddy to 1.9.14

https://github.com/raphw/byte-buddy/releases/tag/byte-buddy-1.9.13
https://github.com/raphw/byte-buddy/releases/tag/byte-buddy-1.9.14

Change-Id: Ibef83b93b914945f48902ad54df822a656d41df2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRemove use of getKeyValues()
Robert Varga [Mon, 24 Jun 2019 10:32:26 +0000 (12:32 +0200)]
Remove use of getKeyValues()

This adjusts callers of deprecated method, fixing warnings and
allowing better integration in future.

Change-Id: I6f5bb82af22cfa94e7c532f596c813058b3511d4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoModuleInfoBackedContext cache
Robert Varga [Mon, 24 Jun 2019 09:21:26 +0000 (11:21 +0200)]
ModuleInfoBackedContext cache

ModuleInfoBackedContext can be effectively cached based on
the set of class loading strategy and infos that go into it. This
patch adds such a cache.

JIRA: MDSAL-418
Change-Id: Icbb7ac5270c76c374a6e839010090a002b0ab176
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoMigrate ModuleInfo cache to BindingReflections
Robert Varga [Sun, 23 Jun 2019 21:54:34 +0000 (23:54 +0200)]
Migrate ModuleInfo cache to BindingReflections

Reflections are using a cache already, so adding another one does
not really hurt. This allows code reuse between our test suite
and downstreams.

JIRA: MDSAL-418
Change-Id: Id4474a0754f33b880afaff333279969f947df494
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoFlatten submodule hierarchy for YangModuleInfo
Anna Bencurova [Mon, 10 Jun 2019 12:55:49 +0000 (14:55 +0200)]
Flatten submodule hierarchy for YangModuleInfo

YANG inherently contains modules and submodules, where submodules
do not really have further submodules. While YANG 1.0 allowed
inclusion of submodules in other submodules, and that is modeled
in yang-model-api, this practice has been deprecated with YANG 1.1.

If we are faced with multiple such includes, for example both
module and submodule including a second submodule, we could end up
generating superfluous classes, just to represent the second
submodule twice (once for module's purposes and once for submodule's
purposes) -- hence when all of them are collected recursively, we
would end up with two distinct instances for the same source.

Since submodules are not directly visible outside of the main class,
this hierarchy is not public API and is a purely internal thing.

This patch re-organizes generation so that we present all submodules
as dependencies of the main module, which automatically solves the
problem, while also making for nicer class layout, as we do not get
multiply-nested classes.

JIRA: MDSAL-457
Change-Id: Ic78edaf852f3497f3c4c96fdca3a77de30b7f8c1
Signed-off-by: Anna Bencurova <Anna.Bencurova@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoFix superfluous warning
Robert Varga [Tue, 18 Jun 2019 20:07:54 +0000 (22:07 +0200)]
Fix superfluous warning

We can end up warning about choices which are not cached, just
because we have a miss. Fix this up so that we properly handle
rejected caching.

Change-Id: I90589e50a749c65226a1e174409e9fd744d7bc30
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump yangtools to 3.0.2
Robert Varga [Wed, 12 Jun 2019 00:44:37 +0000 (02:44 +0200)]
Bump yangtools to 3.0.2

The release brings a number of improvements, bring it in.

Change-Id: I1bbbb09cea86f1d73119ae3948dba4f9e362a485
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump versions to 4.0.3-SNAPSHOT
Robert Varga [Fri, 31 May 2019 14:06:54 +0000 (16:06 +0200)]
Bump versions to 4.0.3-SNAPSHOT

This starts the next development iteration.

Change-Id: I8220119b4898fbc8c6a49d13eac79f4080c729e4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoDo not use NodeIdentifierWithPredicates constructors
Robert Varga [Fri, 31 May 2019 10:02:14 +0000 (12:02 +0200)]
Do not use NodeIdentifierWithPredicates constructors

This migrates all callers to use the static factory methods.

Change-Id: I36f983fb14c9ee61ddcfc152b7f9e106b9178624
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump yangtools to 3.0.1
Robert Varga [Fri, 31 May 2019 08:18:36 +0000 (10:18 +0200)]
Bump yangtools to 3.0.1

Pull in the release yangtools version.

Change-Id: I00061f0f724472606489061a72dab61bcd0ad531
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoAllow using ImmutableLists when returning binding objects
Robert Varga [Thu, 2 May 2019 19:48:03 +0000 (21:48 +0200)]
Allow using ImmutableLists when returning binding objects

The general contract of MD-SAL is that we do not leak mutable
collections, as that leads to concurrency issues and provides
an avenue for inconsistencies leaking in.

Unfortunately we have had three offenders, which were using
plain ArrayLists to represent data -- and thus could be used
to subvert our efforts.

This patch adds the ability to use proper ImmutableLists, so that
the data they produce is truly immutable. This also helps footprint
of single-value lists, as those are squashed to a more efficient
implementation.

The default remains the use of mutable lists, but the immutable
versions can be activated through setting system property

org.opendaylight.mdsal.binding.dom.codec.impl.compat-mutable-lists

The property acts as an opt-out, i.e. it is in effect unless it is
specifically set to "false"

JIRA: MDSAL-446
Change-Id: I9d7ebab827314b66539534f8d8200a64ee9b4aff
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoAdd binding support for anydata nodes
Robert Varga [Fri, 24 May 2019 15:42:43 +0000 (17:42 +0200)]
Add binding support for anydata nodes

These nodes are following essentially the same blueprint as
anyxml nodes. Unlike anyxml nodes, we need specific implementation
support to allow streaming the nodes.

JIRA: MDSAL-438
Change-Id: I7ff081c58a9e5198762c67cbb908beec0bae144b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump yangtools to 3.0.1-SNAPSHOT
Robert Varga [Mon, 27 May 2019 19:04:05 +0000 (21:04 +0200)]
Bump yangtools to 3.0.1-SNAPSHOT

Preliminary bump of yangtools to 3.0.1, allowing us to take
advatage of incoming interfaces.

Change-Id: Ia3b16e1fd57bffc665c1527eb9153fd2cb87f042
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoFix two typos
Robert Varga [Sat, 11 May 2019 10:00:43 +0000 (12:00 +0200)]
Fix two typos

A simple comment typo and a mistakenly-private constructor.

Change-Id: Iea4d40c23c0a1141c90c7bdbc2ab70cafed689af
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoTake advantage of AbstractAugmentable
Robert Varga [Wed, 1 May 2019 14:34:35 +0000 (16:34 +0200)]
Take advantage of AbstractAugmentable

Rather than hand-rolling Augmentable implementations, take advantage
of AbstractAugmentable as the holder of augmentations -- reducing
the amount of generated code.

Since this leads to generated code not being exposed to augmentation(),
we can now rename the generic argument there to a full-compliant
name.

JIRA: MDSAL-445
Change-Id: I2459489074e9e50e82bd9d1c8eb051f9833b7a0b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump version for 4.0.2-SNAPSHOT
Robert Varga [Fri, 10 May 2019 05:12:33 +0000 (07:12 +0200)]
Bump version for 4.0.2-SNAPSHOT

This starts the next development cycle.

Change-Id: If2604811deaf39ce6258d278299b1b1804f39dc8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoDo not compare NormalizedNodes in CodecDataObject
Robert Varga [Tue, 7 May 2019 08:58:24 +0000 (10:58 +0200)]
Do not compare NormalizedNodes in CodecDataObject

Binding DTOs can be shared across instantiations -- for example
groupings. If we are comparing different instantiations, they
can have different namespaces and thus NormalizedNodes do not
compare as equal -- but Binding considers them equal.

JIRA: MDSAL-442
Change-Id: I9838692a046045b3a7e520bd363bfe54b94a6e66
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoMove common bridging code
Robert Varga [Sun, 5 May 2019 17:52:19 +0000 (19:52 +0200)]
Move common bridging code

Since we'll want to be bridging from multiple class generators,
move the common bridging code into a common interface.

JIRA: MDSAL-443
Change-Id: I1aa7d70ae302d737bb960c06629da5ffe0123fc0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoHide CodecDataObjectGenerator subclasses
Robert Varga [Sun, 5 May 2019 17:31:33 +0000 (19:31 +0200)]
Hide CodecDataObjectGenerator subclasses

These classes should not be visible, hide them.

JIRA: MDSAL-443
Change-Id: I598c50d5de6e700e76988052d3e6747de933deb0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>