Propagate symbolic name through transformations 61/95861/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 20 Apr 2021 20:31:59 +0000 (22:31 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 20 Apr 2021 22:31:00 +0000 (00:31 +0200)
Transformation to IRSchemaSource ends up losing source symbolic name,
leading to anonymous sources. Make sure we propagate any source
symbolic name.

JIRA: YANGTOOLS-1275
Change-Id: I219d4bffa66c1262683db1b6af886a052c644cde
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 0e5d5323491caa4308d582bdb3d941c214146a22)

yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/ir/IRSchemaSource.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/repo/TextToIRTransformer.java

index 961c381ce3bc1430379bdc3f6219828e2502332a..ed6070f23fbbe390d4d14eb977c19e2b1c83f3bd 100644 (file)
@@ -25,7 +25,7 @@ public final class IRSchemaSource extends AbstractIdentifiable<SourceIdentifier>
     private final @Nullable String symbolicName;
 
     public IRSchemaSource(final @NonNull SourceIdentifier identifier, final @NonNull IRStatement rootStatement,
-            @Nullable final String symbolicName) {
+            final @Nullable String symbolicName) {
         super(identifier);
         this.rootStatement = requireNonNull(rootStatement);
         this.symbolicName = symbolicName;
@@ -44,6 +44,7 @@ public final class IRSchemaSource extends AbstractIdentifiable<SourceIdentifier>
         checkArgument(rootStatement.argument() != null, "Root statement does not have an argument");
     }
 
+    @Deprecated(forRemoval = true)
     public IRSchemaSource(final @NonNull SourceIdentifier identifier, final @NonNull IRStatement rootStatement) {
         this(identifier, rootStatement, null);
     }
index 6a7a189b44587ceb52708ea76c4efb4102264edb..3faf1f036e1eb970ee6427f6ccc215fc7f89ec5d 100644 (file)
@@ -42,6 +42,6 @@ public final class TextToIRTransformer extends SchemaSourceTransformer<YangTextS
         final RevisionSourceIdentifier sourceId = latestRevision == null ? RevisionSourceIdentifier.create(name)
                 : RevisionSourceIdentifier.create(name, Revision.of(latestRevision));
 
-        return new IRSchemaSource(sourceId, rootStatement);
+        return new IRSchemaSource(sourceId, rootStatement, text.getSymbolicName().orElse(null));
     }
 }