import org.opendaylight.yangtools.concepts.Immutable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.opendaylight.yangtools.yang.common.QName;
/**
* The QName from XML consists of local name of element and XML namespace, but
public String getFormattedRevision() {
return formattedRevision;
}
+
+ public QName withoutRevision() {
+ return QName.create(namespace, null, localName);
+ }
}
import java.util.Stack;
import org.antlr.v4.runtime.tree.ParseTree;
+import org.antlr.v4.runtime.tree.TerminalNode;
import org.opendaylight.yangtools.antlrv4.code.gen.*;
import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Argument_stmtContext;
import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Base_stmtContext;
if (treeNode.getChild(i) instanceof StringContext) {
final StringContext context = (StringContext) treeNode.getChild(i);
if (context != null) {
- result = context.getChild(0).getText();
- if (!(result.startsWith("\"")) && result.endsWith("\"")) {
- LOG.error("Syntax error in module {} at line {}: missing '\"'.", getParentModule(treeNode),
- context.getStart().getLine());
- }
- return result.replace("\"", "");
+ return stringFromStringContext(context,treeNode);
+
}
}
}
return result;
}
+ private static String stringFromStringContext(StringContext context, ParseTree treeNode) {
+ StringBuilder str = new StringBuilder();
+ for (TerminalNode stringNode : context.STRING()) {
+ String result = stringNode.getText();
+ if(!result.contains("\"")){
+ str.append(result);
+ } else if (!(result.startsWith("\"")) && result.endsWith("\"")) {
+ LOG.error("Syntax error in module {} at line {}: missing '\"'.", getParentModule(treeNode),
+ context.getStart().getLine());
+ } else {
+ str.append(result.replace("\"", ""));
+ }
+ }
+ return str.toString();
+ }
+
private static String getParentModule(final ParseTree ctx) {
ParseTree current = ctx;
while (current != null && !(current instanceof Module_stmtContext)) {
import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.tree.ParseTree;
+import org.antlr.v4.runtime.tree.TerminalNode;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Augment_stmtContext;
}
static void mockName(ParseTree stmt, String name) {
- StringContext nameCtx = mock(StringContext.class);
- ParseTree internalName = mock(ParseTree.class);
doReturn(1).when(stmt).getChildCount();
- doReturn(name).when(internalName).getText();
- doReturn(internalName).when(nameCtx).getChild(0);
+
+ TerminalNode terminalNode = mock(TerminalNode.class);
+ doReturn(name).when(terminalNode).getText();
+
+ StringContext nameCtx = mock(StringContext.class);
doReturn(nameCtx).when(stmt).getChild(0);
+ doReturn(terminalNode).when(nameCtx).getChild(0);
+ doReturn(name).when(terminalNode).getText();
+
+ doReturn(Collections.singletonList(terminalNode)).when(nameCtx).STRING();
}
static <T extends ParseTree> T mockStatement(Class<T> stmtType, String name) {
module simple-nodes {
yang-version 1;
- namespace "urn:opendaylight:simple-nodes";
+ namespace "urn:opendaylight:"+
+ "simple-nodes";
prefix "sn";
organization "opendaylight";