Add ability to get yang sources from SchemaContext. 79/5579/4
authorTomas Olvecky <tolvecky@cisco.com>
Mon, 10 Mar 2014 12:17:05 +0000 (13:17 +0100)
committerTony Tkacik <ttkacik@cisco.com>
Wed, 12 Mar 2014 10:18:42 +0000 (10:18 +0000)
commit8a22fe9a9294bf02c4c2829a547dfae02b434aea
tree24c42414d9cf51796b2897bc744eb6d3a3c9ec63
parenta3dec43333e3b5006b6191cc07128b72d182dcea
Add ability to get yang sources from SchemaContext.

SchemaContext should provide yang source code of parsed module files.
To identify modules, move YANGModuleIdentifier from binding-generator-spi
to yang-model-api: ModuleIdentifier. This interface can represent
both modules and submodules in SchemaContext. Add methods to SchemaContext
to iterate ove ModuleIdentifiers and get their source.
In order to maintain backwards compatibility no new parsing method was created,
so submodules cannot be supported now in new methods.
Adding this functionality removes need for most methods defined in
org.opendaylight.yangtools.yang.model.parser.api.YangModelParser .
It is advised that after this change parser api would be refactored to
have a method taking collection of input streams as input
and returning SchemaContext.
Other small changes:
Externalize SimpleDateFormat wrapped in ThreadLocal
Add toString to AbstractObjectRegistration
Add guava dependency to yang-model-api for Optional goodness
Add ModuleIdentifierImpl convenience class allowing users to seach source by
 module name.

Change-Id: I8a46fa699bbd829e5d4a488ebc99012a66fc196d
Signed-off-by: Tomas Olvecky <tolvecky@cisco.com>
26 files changed:
code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/BindingGeneratorImpl.xtend
code-generator/binding-generator-spi/src/main/java/org/opendaylight/yangtools/sal/binding/generator/spi/TypeProviderFactory.java
code-generator/binding-generator-spi/src/main/java/org/opendaylight/yangtools/sal/binding/generator/spi/YANGModuleIdentifier.java [deleted file]
concepts/pom.xml
concepts/src/main/java/org/opendaylight/yangtools/concepts/AbstractObjectRegistration.java
pom.xml
restconf/pom.xml
yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java
yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/SimpleDateFormatUtil.java [new file with mode: 0644]
yang/yang-maven-plugin/pom.xml
yang/yang-maven-plugin/src/main/java/org/opendaylight/yangtools/yang2sources/plugin/YangToSourcesProcessor.java
yang/yang-model-api/pom.xml
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/Module.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/ModuleIdentifier.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaContext.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SourceStreamAware.java
yang/yang-parser-api/src/main/java/org/opendaylight/yangtools/yang/model/parser/api/YangModelParser.java
yang/yang-parser-impl/pom.xml
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleIdentifierImpl.java [new file with mode: 0644]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/SchemaContextImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/YangParserImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/NamedByteArrayInputStream.java [new file with mode: 0644]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/NamedFileInputStream.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/NamedInputStream.java [new file with mode: 0644]
yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/impl/YangParserTest.java