[ONOS-5096][ONOS-5104] Checkstyle issues fixed for generated code.
Change-Id: I6a0984c2b397dbeda912e75138d5ad9e7adf33d5
diff --git a/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangNode.java b/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangNode.java
index 9aaf61b..e40f81d 100644
--- a/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangNode.java
+++ b/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangNode.java
@@ -17,6 +17,7 @@
import java.io.Serializable;
import java.util.Map;
+
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.datamodel.utils.Parsable;
@@ -141,7 +142,8 @@
/**
* Creates a specific type of node.
*
- * @param type of YANG node
+ * @param type of YANG node
+ * @param ysnContextInfoMap YSN context info map
*/
protected YangNode(YangNodeType type, Map<YangSchemaNodeIdentifier, YangSchemaNodeContextInfo> ysnContextInfoMap) {
setNodeType(type);
diff --git a/plugin/pom.xml b/plugin/pom.xml
index 13eed0c..ee692f2 100644
--- a/plugin/pom.xml
+++ b/plugin/pom.xml
@@ -115,6 +115,12 @@
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.10</version>
</dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.21</version>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
<build>
diff --git a/plugin/src/main/java/org/onosproject/yangutils/linker/impl/YangXpathLinker.java b/plugin/src/main/java/org/onosproject/yangutils/linker/impl/YangXpathLinker.java
index 25635e5..5369a67 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/linker/impl/YangXpathLinker.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/linker/impl/YangXpathLinker.java
@@ -22,6 +22,7 @@
import java.util.List;
import java.util.Map;
import java.util.Stack;
+
import org.onosproject.yangutils.datamodel.YangAtomicPath;
import org.onosproject.yangutils.datamodel.YangAugment;
import org.onosproject.yangutils.datamodel.YangCase;
@@ -184,8 +185,8 @@
* Process absolute node path for target leaf.
*
* @param atomicPaths atomic path node list
- * @param root root node
- * @param leafref instance of YANG leafref
+ * @param root root node
+ * @param leafref instance of YANG leafref
* @return linked target node
*/
T processLeafRefXpathLinking(List<YangAtomicPath> atomicPaths, YangNode root, YangLeafRef leafref) {
@@ -501,6 +502,9 @@
* @return true if found
*/
private boolean searchForAugmentInImportedNode(YangNodeIdentifier nodeId, int index) {
+ if (index == getAbsPaths().size()) {
+ return false;
+ }
YangNodeIdentifier tempNodeId = getAbsPaths().get(index).getNodeIdentifier();
return nodeId.getName().equals(tempNodeId.getName());
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/parser/exceptions/ParserException.java b/plugin/src/main/java/org/onosproject/yangutils/parser/exceptions/ParserException.java
index 6a18b54..e030f6c 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/parser/exceptions/ParserException.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/parser/exceptions/ParserException.java
@@ -46,7 +46,7 @@
* Creates a new parser exception from given message and cause.
*
* @param message the detail of exception in string
- * @param cause underlying cause of the error
+ * @param cause underlying cause of the error
*/
public ParserException(final String message, final Throwable cause) {
super(message, cause);
@@ -114,4 +114,5 @@
public void setFileName(String fileName) {
this.fileName = fileName;
}
+
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/parser/impl/TreeWalkListener.java b/plugin/src/main/java/org/onosproject/yangutils/parser/impl/TreeWalkListener.java
index 116f06d..9c5745d 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/parser/impl/TreeWalkListener.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/parser/impl/TreeWalkListener.java
@@ -16,6 +16,8 @@
package org.onosproject.yangutils.parser.impl;
+import java.util.Stack;
+
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.tree.ErrorNode;
import org.antlr.v4.runtime.tree.TerminalNode;
@@ -96,8 +98,6 @@
import org.onosproject.yangutils.parser.impl.listeners.VersionListener;
import org.onosproject.yangutils.parser.impl.listeners.WhenListener;
-import java.util.Stack;
-
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.handleUnsupportedYangConstruct;
import static org.onosproject.yangutils.utils.UtilConstants.CURRENTLY_UNSUPPORTED;
import static org.onosproject.yangutils.utils.UtilConstants.UNSUPPORTED_YANG_CONSTRUCT;
@@ -116,6 +116,9 @@
// Parse tree root node
private YangNode rootNode;
+ // YANG file name.
+ private String fileName;
+
/**
* Parent depth of grouping count for any node.
*/
@@ -163,6 +166,24 @@
}
/**
+ * Returns YANG file name.
+ *
+ * @return YANG file name
+ */
+ public String getFileName() {
+ return fileName;
+ }
+
+ /**
+ * Sets YANG file name.
+ *
+ * @param fileName YANG file name
+ */
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ /**
* Set parsed data stack.
*
* @param parsedDataStack stack of parsable data objects
@@ -862,7 +883,7 @@
@Override
public void enterOrderedByStatement(GeneratedYangParser.OrderedByStatementContext ctx) {
- handleUnsupportedYangConstruct(YangConstructType.ORDERED_BY_DATA, ctx, CURRENTLY_UNSUPPORTED);
+ handleUnsupportedYangConstruct(YangConstructType.ORDERED_BY_DATA, ctx, CURRENTLY_UNSUPPORTED, getFileName());
}
@Override
@@ -1032,7 +1053,7 @@
@Override
public void enterAnyxmlStatement(GeneratedYangParser.AnyxmlStatementContext ctx) {
- handleUnsupportedYangConstruct(YangConstructType.ANYXML_DATA, ctx, UNSUPPORTED_YANG_CONSTRUCT);
+ handleUnsupportedYangConstruct(YangConstructType.ANYXML_DATA, ctx, UNSUPPORTED_YANG_CONSTRUCT, getFileName());
}
@Override
@@ -1052,7 +1073,7 @@
@Override
public void enterRefineStatement(GeneratedYangParser.RefineStatementContext ctx) {
- handleUnsupportedYangConstruct(YangConstructType.REFINE_DATA, ctx, UNSUPPORTED_YANG_CONSTRUCT);
+ handleUnsupportedYangConstruct(YangConstructType.REFINE_DATA, ctx, UNSUPPORTED_YANG_CONSTRUCT, getFileName());
}
@Override
@@ -1192,7 +1213,8 @@
@Override
public void enterDeviationStatement(GeneratedYangParser.DeviationStatementContext ctx) {
- handleUnsupportedYangConstruct(YangConstructType.DEVIATION_DATA, ctx, UNSUPPORTED_YANG_CONSTRUCT);
+ handleUnsupportedYangConstruct(YangConstructType.DEVIATION_DATA, ctx, UNSUPPORTED_YANG_CONSTRUCT,
+ getFileName());
}
@Override
diff --git a/plugin/src/main/java/org/onosproject/yangutils/parser/impl/YangUtilsParserManager.java b/plugin/src/main/java/org/onosproject/yangutils/parser/impl/YangUtilsParserManager.java
index b04f617..c8b7804 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/parser/impl/YangUtilsParserManager.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/parser/impl/YangUtilsParserManager.java
@@ -83,7 +83,7 @@
// Create a listener implementation class object.
TreeWalkListener treeWalker = new TreeWalkListener();
-
+ treeWalker.setFileName(yangFile);
/**
* Walk parse tree, provide call backs to methods in listener and build
* data model tree.
diff --git a/plugin/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerUtil.java b/plugin/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerUtil.java
index 5fe0970..f580da9 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerUtil.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerUtil.java
@@ -16,7 +16,19 @@
package org.onosproject.yangutils.parser.impl.parserutils;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.regex.Pattern;
+
import org.antlr.v4.runtime.ParserRuleContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.onosproject.yangutils.datamodel.YangAtomicPath;
import org.onosproject.yangutils.datamodel.YangImport;
import org.onosproject.yangutils.datamodel.YangLeaf;
@@ -34,19 +46,10 @@
import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser;
import org.onosproject.yangutils.parser.exceptions.ParserException;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.regex.Pattern;
-
import static org.onosproject.yangutils.datamodel.YangPathArgType.ABSOLUTE_PATH;
import static org.onosproject.yangutils.datamodel.YangPathArgType.RELATIVE_PATH;
import static org.onosproject.yangutils.datamodel.YangPathOperator.EQUALTO;
+import static org.onosproject.yangutils.datamodel.utils.YangConstructType.getYangConstructType;
import static org.onosproject.yangutils.utils.UtilConstants.ADD;
import static org.onosproject.yangutils.utils.UtilConstants.ANCESTOR_ACCESSOR;
import static org.onosproject.yangutils.utils.UtilConstants.ANCESTOR_ACCESSOR_IN_PATH;
@@ -80,6 +83,7 @@
private static final String ONE = "1";
private static final int IDENTIFIER_LENGTH = 64;
private static final String DATE_FORMAT = "yyyy-MM-dd";
+ private static final Log log = LogFactory.getLog(ListenerUtil.class);
/**
* Creates a new listener util.
@@ -119,15 +123,15 @@
if (identifierString.length() > IDENTIFIER_LENGTH) {
parserException = new ParserException("YANG file error : " +
- YangConstructType.getYangConstructType(yangConstruct) + " name " + identifierString + " is " +
+ getYangConstructType(yangConstruct) + " name " + identifierString + " is " +
"greater than 64 characters.");
} else if (!IDENTIFIER_PATTERN.matcher(identifierString).matches()) {
parserException = new ParserException("YANG file error : " +
- YangConstructType.getYangConstructType(yangConstruct) + " name " + identifierString + " is not " +
+ getYangConstructType(yangConstruct) + " name " + identifierString + " is not " +
"valid.");
} else if (identifierString.toLowerCase().startsWith(XML)) {
parserException = new ParserException("YANG file error : " +
- YangConstructType.getYangConstructType(yangConstruct) + " identifier " + identifierString +
+ getYangConstructType(yangConstruct) + " identifier " + identifierString +
" must not start with (('X'|'x') ('M'|'m') ('L'|'l')).");
} else {
return identifierString;
@@ -155,15 +159,15 @@
if (identifierString.length() > IDENTIFIER_LENGTH) {
parserException = new ParserException("YANG file error : " + " identifier " + identifierString + " in " +
- YangConstructType.getYangConstructType(yangConstruct) + " " + yangLeafRef.getPath() + " is " +
+ getYangConstructType(yangConstruct) + " " + yangLeafRef.getPath() + " is " +
"greater than 64 characters.");
} else if (!IDENTIFIER_PATTERN.matcher(identifierString).matches()) {
parserException = new ParserException("YANG file error : " + " identifier " + identifierString + " in " +
- YangConstructType.getYangConstructType(yangConstruct) + " " + yangLeafRef.getPath() + " is not " +
+ getYangConstructType(yangConstruct) + " " + yangLeafRef.getPath() + " is not " +
"valid.");
} else if (identifierString.toLowerCase().startsWith(XML)) {
parserException = new ParserException("YANG file error : " + " identifier " + identifierString + " in " +
- YangConstructType.getYangConstructType(yangConstruct) + " " + yangLeafRef.getPath() +
+ getYangConstructType(yangConstruct) + " " + yangLeafRef.getPath() +
" must not start with (('X'|'x') ('M'|'m') ('L'|'l')).");
} else {
return identifierString;
@@ -231,7 +235,7 @@
String value = removeQuotesAndHandleConcat(integerValue);
if (!value.matches(NON_NEGATIVE_INTEGER_PATTERN)) {
ParserException parserException = new ParserException("YANG file error : " +
- YangConstructType.getYangConstructType(yangConstruct) + " value " + value + " is not " +
+ getYangConstructType(yangConstruct) + " value " + value + " is not " +
"valid.");
parserException.setLine(ctx.getStart().getLine());
parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
@@ -243,7 +247,7 @@
valueInInteger = Integer.parseInt(value);
} catch (NumberFormatException e) {
ParserException parserException = new ParserException("YANG file error : " +
- YangConstructType.getYangConstructType(yangConstruct) + " value " + value + " is not " +
+ getYangConstructType(yangConstruct) + " value " + value + " is not " +
"valid.");
parserException.setLine(ctx.getStart().getLine());
parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
@@ -266,7 +270,7 @@
String value = removeQuotesAndHandleConcat(integerValue);
if (!INTEGER_PATTERN.matcher(value).matches()) {
ParserException parserException = new ParserException("YANG file error : " +
- YangConstructType.getYangConstructType(yangConstruct) + " value " + value + " is not " +
+ getYangConstructType(yangConstruct) + " value " + value + " is not " +
"valid.");
parserException.setLine(ctx.getStart().getLine());
parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
@@ -278,7 +282,7 @@
valueInInteger = Integer.parseInt(value);
} catch (NumberFormatException e) {
ParserException parserException = new ParserException("YANG file error : " +
- YangConstructType.getYangConstructType(yangConstruct) + " value " + value + " is not " +
+ getYangConstructType(yangConstruct) + " value " + value + " is not " +
"valid.");
parserException.setLine(ctx.getStart().getLine());
parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
@@ -305,7 +309,7 @@
return false;
} else {
ParserException parserException = new ParserException("YANG file error : " +
- YangConstructType.getYangConstructType(yangConstruct) + " value " + value + " is not " +
+ getYangConstructType(yangConstruct) + " value " + value + " is not " +
"valid.");
parserException.setLine(ctx.getStart().getLine());
parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
@@ -357,7 +361,7 @@
return nodeIdentifier;
} else {
ParserException parserException = new ParserException("YANG file error : " +
- YangConstructType.getYangConstructType(yangConstruct) + " name " + nodeIdentifierString +
+ getYangConstructType(yangConstruct) + " name " + nodeIdentifierString +
" is not valid.");
parserException.setLine(ctx.getStart().getLine());
parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
@@ -391,7 +395,7 @@
return nodeIdentifier;
} else {
ParserException parserException = new ParserException("YANG file error : " +
- YangConstructType.getYangConstructType(yangConstruct) + yangLeafRef.getPath() +
+ getYangConstructType(yangConstruct) + yangLeafRef.getPath() +
" is not valid.");
parserException.setLine(ctx.getStart().getLine());
parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
@@ -423,7 +427,7 @@
validateRelativePath(completePathString, yangConstruct, ctx, yangLeafRef);
} else {
ParserException parserException = new ParserException("YANG file error : " +
- YangConstructType.getYangConstructType(yangConstruct) + yangLeafRef.getPath() +
+ getYangConstructType(yangConstruct) + yangLeafRef.getPath() +
" does not follow valid path syntax");
parserException.setLine(ctx.getStart().getLine());
parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
@@ -435,7 +439,7 @@
* Validates the prefixes in the leafref and assigns them to the respective imported name in map.
*
* @param yangAtomicPathList list of atomic poth
- * @param yangLeafRef instance YANG leafref
+ * @param yangLeafRef instance YANG leafref
*/
private static void validatePrefixAndYangNode(List<YangAtomicPath> yangAtomicPathList, YangLeafRef yangLeafRef) {
Iterator<YangAtomicPath> yangAtomicPathIterator = yangAtomicPathList.listIterator();
@@ -508,7 +512,7 @@
* @return list of absolute path
*/
private static List<YangAtomicPath> validateUniqueValues(String uniquePath, String prefixOfFile,
- ParserRuleContext ctx) {
+ ParserRuleContext ctx) {
List<YangAtomicPath> atomicPath = new LinkedList<>();
String[] pathInUnique = uniquePath.split(SLASH_FOR_STRING);
for (String uniqueValue : pathInUnique) {
@@ -674,7 +678,7 @@
}
if (completePathString == null || completePathString.length() == 0) {
ParserException parserException = new ParserException("YANG file error : "
- + YangConstructType.getYangConstructType(yangConstruct) + yangLeafRef.getPath() +
+ + getYangConstructType(yangConstruct) + yangLeafRef.getPath() +
" does not follow valid path syntax");
parserException.setLine(ctx.getStart().getLine());
parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
@@ -699,8 +703,8 @@
* @return list of object of node in absolute path
*/
private static List<YangAtomicPath> validateAbsolutePath(String completePathString,
- YangConstructType yangConstruct, ParserRuleContext
- ctx, YangLeafRef yangLeafRef) {
+ YangConstructType yangConstruct, ParserRuleContext
+ ctx, YangLeafRef yangLeafRef) {
List<YangAtomicPath> absolutePathList = new LinkedList<>();
YangPathPredicate yangPathPredicate = new YangPathPredicate();
@@ -710,7 +714,7 @@
String path = completePathString.replaceFirst(SLASH_FOR_STRING, EMPTY_STRING);
if (path == null || path.length() == 0) {
ParserException parserException = new ParserException("YANG file error : "
- + YangConstructType.getYangConstructType(yangConstruct) + " " + yangLeafRef.getPath() +
+ + getYangConstructType(yangConstruct) + " " + yangLeafRef.getPath() +
" does not follow valid path syntax");
parserException.setLine(ctx.getStart().getLine());
parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
@@ -729,7 +733,7 @@
if (matchedPathPredicate == null || matchedPathPredicate.length() == 0) {
ParserException parserException = new ParserException("YANG file error : "
- + YangConstructType.getYangConstructType(yangConstruct) + " " + yangLeafRef.getPath() +
+ + getYangConstructType(yangConstruct) + " " + yangLeafRef.getPath() +
" does not follow valid path syntax");
parserException.setLine(ctx.getStart().getLine());
parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
@@ -746,7 +750,7 @@
matchedPathPredicate = matchForPathPredicate(differentiate[1]);
if (matchedPathPredicate == null || matchedPathPredicate.length() == 0) {
ParserException parserException = new ParserException(
- "YANG file error : " + YangConstructType.getYangConstructType(yangConstruct) + " "
+ "YANG file error : " + getYangConstructType(yangConstruct) + " "
+ yangLeafRef.getPath() +
" does not follow valid path syntax");
parserException.setLine(ctx.getStart().getLine());
@@ -897,9 +901,9 @@
* @return list of object of absolute path nodes present in the relative path
*/
private static List<YangAtomicPath> validateRelativePathKeyExpression(List<String> rightAbsolutePath,
- YangConstructType yangConstruct,
- ParserRuleContext ctx, YangLeafRef
- yangLeafRef) {
+ YangConstructType yangConstruct,
+ ParserRuleContext ctx, YangLeafRef
+ yangLeafRef) {
List<YangAtomicPath> atomicPathList = new ArrayList<>();
YangNodeIdentifier yangNodeIdentifier;
@@ -911,7 +915,7 @@
if (!(currentFunction[0].trim().equals(CURRENT)) || !(currentFunction[1].trim().equals(CLOSE_PARENTHESIS))) {
ParserException parserException = new ParserException("YANG file error : "
- + YangConstructType.getYangConstructType(yangConstruct) + " " + yangLeafRef.getPath() +
+ + getYangConstructType(yangConstruct) + " " + yangLeafRef.getPath() +
" does not follow valid path syntax");
parserException.setLine(ctx.getStart().getLine());
parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
@@ -953,8 +957,8 @@
* @return target nodes list of absolute schema node id
*/
public static List<YangAtomicPath> getValidAbsoluteSchemaNodeId(String argumentString,
- YangConstructType yangConstructType,
- ParserRuleContext ctx) {
+ YangConstructType yangConstructType,
+ ParserRuleContext ctx) {
List<YangAtomicPath> targetNodes = new ArrayList<>();
YangNodeIdentifier yangNodeIdentifier;
@@ -963,7 +967,7 @@
// absolute-schema-nodeid = 1*("/" node-identifier)
if (!tmpSchemaNodeId.startsWith(SLASH)) {
ParserException parserException = new ParserException("YANG file error : " +
- YangConstructType.getYangConstructType(yangConstructType) + " name " + argumentString +
+ getYangConstructType(yangConstructType) + " name " + argumentString +
"is not valid");
parserException.setLine(ctx.getStart().getLine());
parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
@@ -985,15 +989,17 @@
* @param yangConstructType yang construct for creating error message
* @param ctx yang construct's context to get the line number and character position
* @param errorInfo error information
+ * @param fileName YANG file name
*/
public static void handleUnsupportedYangConstruct(YangConstructType yangConstructType,
- ParserRuleContext ctx, String errorInfo) {
+ ParserRuleContext ctx, String errorInfo, String fileName) {
ParserException parserException = new ParserException(YANG_FILE_ERROR
- + QUOTES + YangConstructType.getYangConstructType(yangConstructType) + QUOTES
+ + QUOTES + getYangConstructType(yangConstructType) + QUOTES
+ errorInfo);
parserException.setLine(ctx.getStart().getLine());
parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
- throw parserException;
+ log.info(parserException.getMessage() + " at position " + parserException.getCharPositionInLine() +
+ " in line " + parserException.getLineNumber() + " of yang file " + fileName);
}
/**
@@ -1043,7 +1049,7 @@
return tmpData[0];
} else {
ParserException parserException = new ParserException("YANG file error : " +
- YangConstructType.getYangConstructType(yangConstruct) + " name " + inputString +
+ getYangConstructType(yangConstruct) + " name " + inputString +
" is not valid.");
parserException.setLine(ctx.getStart().getLine());
parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
diff --git a/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java b/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
index 1d03496..af4deb9 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
@@ -32,14 +32,14 @@
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
import org.onosproject.yangutils.datamodel.YangNode;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
-import org.onosproject.yangutils.utils.io.YangToJavaNamingConflictUtil;
import org.onosproject.yangutils.linker.YangLinker;
import org.onosproject.yangutils.linker.exceptions.LinkerException;
import org.onosproject.yangutils.linker.impl.YangLinkerManager;
import org.onosproject.yangutils.parser.YangUtilsParser;
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.YangUtilsParserManager;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.YangToJavaNamingConflictUtil;
import org.onosproject.yangutils.utils.io.impl.YangFileScanner;
import org.sonatype.plexus.build.incremental.BuildContext;
@@ -214,6 +214,7 @@
if (getCurYangFileInfo() != null) {
fileName = getCurYangFileInfo().getYangFileName();
}
+
try {
translatorErrorHandler(getRootNode(), yangPlugin);
deleteDirectory(getDirectory(baseDir, classFileDir) + DEFAULT_PKG);
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
index f9a95bd..671635e 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
@@ -19,6 +19,9 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.onosproject.yangutils.datamodel.TraversalType;
import org.onosproject.yangutils.datamodel.YangAugment;
import org.onosproject.yangutils.datamodel.YangCase;
@@ -50,6 +53,7 @@
*/
public final class JavaCodeGeneratorUtil {
+ private static final Log log = LogFactory.getLog(JavaCodeGeneratorUtil.class);
/**
* Current YANG node.
*/
@@ -125,6 +129,9 @@
}
continue;
} catch (Exception e) {
+ if (log.isDebugEnabled()) {
+ e.printStackTrace();
+ }
close(codeGenNode, yangPlugin);
throw new TranslatorException(e.getMessage());
}
@@ -137,6 +144,9 @@
try {
generateCodeExit(codeGenNode, yangPlugin);
} catch (Exception e) {
+ if (log.isDebugEnabled()) {
+ e.printStackTrace();
+ }
close(codeGenNode, yangPlugin);
throw new TranslatorException(e.getMessage());
}
@@ -146,6 +156,9 @@
try {
generateCodeExit(codeGenNode, yangPlugin);
} catch (Exception e) {
+ if (log.isDebugEnabled()) {
+ e.printStackTrace();
+ }
close(codeGenNode, yangPlugin);
throw new TranslatorException(e.getMessage());
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java
index 18913d4..dd4c616 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java
@@ -18,6 +18,7 @@
import java.io.File;
import java.io.IOException;
import java.util.List;
+
import org.onosproject.yangutils.datamodel.YangAugment;
import org.onosproject.yangutils.datamodel.YangAugmentableNode;
import org.onosproject.yangutils.datamodel.YangCase;
@@ -109,6 +110,7 @@
import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.readAppendFile;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.ADD_TO_LIST;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.GETTER_METHOD;
+import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.SETTER_METHOD;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getAbsolutePackagePath;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
@@ -1106,15 +1108,17 @@
/**
* Adds setter's implementation for class.
*
- * @param attr attribute info
+ * @param attr attribute info
+ * @param pluginConfig
* @throws IOException when fails to append to temporary file
*/
- private void addSetterImpl(JavaAttributeInfo attr)
+ private void addSetterImpl(JavaAttributeInfo attr, YangPluginConfig pluginConfig)
throws IOException {
if (isRooNode()) {
- appendToFile(getSetterImplTempFileHandle(),
+ appendToFile(getSetterImplTempFileHandle(), getJavaDoc(SETTER_METHOD, attr.getAttributeName(),
+ attr.isListAttr(), pluginConfig, null) +
getSetterForClass(attr, getGeneratedJavaClassName(), getGeneratedJavaFiles())
- + NEW_LINE);
+ + NEW_LINE);
} else {
appendToFile(getSetterImplTempFileHandle(), getOverRideString() +
getSetterForClass(attr, getGeneratedJavaClassName(), getGeneratedJavaFiles())
@@ -1531,7 +1535,7 @@
addSetterForInterface(newAttrInfo, pluginConfig);
}
if ((getGeneratedTempFiles() & SETTER_FOR_CLASS_MASK) != 0) {
- addSetterImpl(newAttrInfo);
+ addSetterImpl(newAttrInfo, pluginConfig);
}
if ((getGeneratedTempFiles() & HASH_CODE_IMPL_MASK) != 0) {
addHashCodeMethod(newAttrInfo);
@@ -1659,10 +1663,10 @@
//Append builder interface file to interface file and close it.
mergeJavaFiles(getBuilderInterfaceJavaFileHandle(), getInterfaceJavaFileHandle());
- validateLineLength(getInterfaceJavaFileHandle());
}
}
insertDataIntoJavaFile(getInterfaceJavaFileHandle(), getJavaClassDefClose());
+ validateLineLength(getInterfaceJavaFileHandle());
if (curNode instanceof YangAugmentableNode) {
addImportsForAugmentableClass(imports, false, true, curNode);
}
@@ -1702,9 +1706,9 @@
//Append impl class to builder class and close it.
mergeJavaFiles(getBuilderClassJavaFileHandle(), getImplClassJavaFileHandle());
- validateLineLength(getImplClassJavaFileHandle());
}
insertDataIntoJavaFile(getImplClassJavaFileHandle(), getJavaClassDefClose());
+ validateLineLength(getImplClassJavaFileHandle());
}
//Close all the file handles.
freeTemporaryResources(false);
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java
index 412409a..45cb014 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java
@@ -20,6 +20,7 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+
import org.onosproject.yangutils.datamodel.YangAugmentableNode;
import org.onosproject.yangutils.datamodel.YangCase;
import org.onosproject.yangutils.datamodel.YangChoice;
@@ -269,7 +270,7 @@
for (String method : methods) {
insertDataIntoJavaFile(file, method);
}
- return validateLineLength(file);
+ return file;
}
@@ -342,7 +343,7 @@
}
insertDataIntoJavaFile(file, CLOSE_CURLY_BRACKET + NEW_LINE);
- return validateLineLength(file);
+ return file;
}
/**
@@ -441,7 +442,7 @@
}
insertDataIntoJavaFile(file, CLOSE_CURLY_BRACKET);
- return validateLineLength(file);
+ return file;
}
/**
@@ -604,7 +605,7 @@
insertDataIntoJavaFile(file, method);
}
- return validateLineLength(file);
+ return file;
}
/**
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
index 431eecf..20cb3e8 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
@@ -18,6 +18,7 @@
import java.util.List;
import java.util.Map;
+
import org.onosproject.yangutils.datamodel.YangAtomicPath;
import org.onosproject.yangutils.datamodel.YangAugment;
import org.onosproject.yangutils.datamodel.YangAugmentableNode;
@@ -1939,7 +1940,7 @@
" */\n" +
" public " + name + BUILDER + " setOperationType(OperationType operationType) {\n" +
" this.operationType = operationType;\n" +
- " return this;\n" +
+ " return this;\n" +
" }\n";
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java b/plugin/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java
index 31e454f..251523b 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java
@@ -91,15 +91,15 @@
/**
* Returns java docs.
*
- * @param type java doc type
- * @param name name of the YangNode
- * @param isList is list attribute
- * @param pluginConfig plugin configurations
+ * @param type java doc type
+ * @param name name of the YangNode
+ * @param isList is list attribute
+ * @param pluginConfig plugin configurations
* @param compilerAnnotation compiler annotations for user defined data type
* @return javadocs.
*/
public static String getJavaDoc(JavaDocType type, String name, boolean isList, YangPluginConfig pluginConfig,
- String compilerAnnotation) {
+ String compilerAnnotation) {
name = YangIoUtils.getSmallCase(getCamelCase(name, pluginConfig.getConflictResolver()));
switch (type) {
@@ -279,13 +279,13 @@
/**
* Generates javaDocs for getter method.
*
- * @param attribute attribute
- * @param isList is list attribute
+ * @param attribute attribute
+ * @param isList is list attribute
* @param compilerAnnotation compiler annotation
* @return javaDocs
*/
private static String generateForGetters(String attribute, boolean isList,
- String compilerAnnotation) {
+ String compilerAnnotation) {
String getter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
+ JAVA_DOC_GETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
@@ -325,13 +325,13 @@
/**
* Generates javaDocs for setter method.
*
- * @param attribute attribute
- * @param isList is list attribute
+ * @param attribute attribute
+ * @param isList is list attribute
* @param compilerAnnotation compiler annotation
* @return javaDocs
*/
private static String generateForSetters(String attribute, boolean isList,
- String compilerAnnotation) {
+ String compilerAnnotation) {
String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
+ JAVA_DOC_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
@@ -374,13 +374,13 @@
/**
* Generates javaDocs for setter method.
*
- * @param attribute attribute
- * @param isList is list attribute
+ * @param attribute attribute
+ * @param isList is list attribute
* @param compilerAnnotation compiler annotation
* @return javaDocs
*/
private static String generateForManagerSetters(String attribute, boolean isList,
- String compilerAnnotation) {
+ String compilerAnnotation) {
String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
+ JAVA_DOC_MANAGER_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
@@ -646,7 +646,7 @@
public static String generateForGetMethodWithAttribute(String attribute) {
return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_GETTERS
+ attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
- + JAVA_DOC_PARAM + attribute + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
+ + JAVA_DOC_PARAM + getSmallCase(attribute) + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
+ FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
+ FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java b/plugin/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
index be6db1f..fe2d382 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
@@ -28,6 +28,7 @@
import java.util.List;
import java.util.Stack;
import java.util.regex.Pattern;
+
import org.apache.commons.io.FileUtils;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.utils.io.YangPluginConfig;
@@ -76,8 +77,8 @@
*/
public final class YangIoUtils {
- private static final int LINE_SIZE = 118;
- private static final int SUB_LINE_SIZE = 112;
+ private static final int LINE_SIZE = 116;
+ private static final int SUB_LINE_SIZE = 114;
private static final int ZERO = 0;
/**
@@ -402,7 +403,7 @@
}
/* When spaces are present in the given line. */
- private static String whenSpaceIsPresent(String line, int lineSize) {
+ public static String whenSpaceIsPresent(String line, int lineSize) {
StringBuilder stringBuilder = new StringBuilder();
String append;
if (line.length() > lineSize) {
@@ -416,7 +417,7 @@
String[] strArray = stringBuilder.toString().split(NEW_LINE);
StringBuilder tempBuilder = new StringBuilder();
for (String str : strArray) {
- if (str.length() > SUB_LINE_SIZE) {
+ if (str.length() > LINE_SIZE) {
if (str.contains(SPACE)) {
String[] strArr = str.split(SPACE);
tempBuilder = updateString(strArr, tempBuilder, SPACE, SUB_LINE_SIZE);
@@ -445,15 +446,13 @@
stringBuilder.append(tempString);
if (string.equals(PERIOD)) {
append = NEW_LINE + TWELVE_SPACE_INDENTATION + PERIOD + str + string;
- stringBuilder.append(append);
} else {
append = NEW_LINE + TWELVE_SPACE_INDENTATION + str + string;
- stringBuilder.append(append);
}
+ stringBuilder.append(append);
tempBuilder.delete(ZERO, tempBuilder.length());
tempBuilder.append(TWELVE_SPACE_INDENTATION);
} else {
- append = str + string;
stringBuilder.append(append);
}
}
diff --git a/plugin/src/test/java/org/onosproject/yangutils/parser/impl/TreeWalkListenerTest.java b/plugin/src/test/java/org/onosproject/yangutils/parser/impl/TreeWalkListenerTest.java
index 1056d98..1688d2d 100644
--- a/plugin/src/test/java/org/onosproject/yangutils/parser/impl/TreeWalkListenerTest.java
+++ b/plugin/src/test/java/org/onosproject/yangutils/parser/impl/TreeWalkListenerTest.java
@@ -38,9 +38,7 @@
*/
@Test
public void processOrderedByStatement() throws IOException, ParserException {
- thrown.expect(ParserException.class);
- thrown.expectMessage("YANG file error : \"ordered-by\" is not supported in current version, please check wiki" +
- " for YANG utils road map.");
+ // Now no exception should be thrown. logs should come.
manager.getDataModel("src/test/resources/OrderedByStatement.yang");
}
@@ -49,8 +47,7 @@
*/
@Test
public void processAnyXmlStatement() throws IOException, ParserException {
- thrown.expect(ParserException.class);
- thrown.expectMessage("YANG file error : \"anyxml\" is not supported.");
+ // Now no exception should be thrown. logs should come.
manager.getDataModel("src/test/resources/AnyxmlStatement.yang");
}
diff --git a/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/AugmentTranslatorTest.java b/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/AugmentTranslatorTest.java
index 1fab8e6..d913828 100644
--- a/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/AugmentTranslatorTest.java
+++ b/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/AugmentTranslatorTest.java
@@ -20,8 +20,8 @@
import org.apache.maven.plugin.MojoExecutionException;
import org.junit.Test;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.parser.exceptions.ParserException;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.utils.io.impl.YangFileScanner;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.deleteDirectory;
diff --git a/plugin/src/test/java/org/onosproject/yangutils/utils/io/impl/YangIoUtilsTest.java b/plugin/src/test/java/org/onosproject/yangutils/utils/io/impl/YangIoUtilsTest.java
index a3506a0..6766aec 100644
--- a/plugin/src/test/java/org/onosproject/yangutils/utils/io/impl/YangIoUtilsTest.java
+++ b/plugin/src/test/java/org/onosproject/yangutils/utils/io/impl/YangIoUtilsTest.java
@@ -20,12 +20,13 @@
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
+
import org.apache.commons.io.FileUtils;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.utils.UtilConstants;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsNot.not;
@@ -124,11 +125,11 @@
/**
* A private constructor is tested.
*
- * @throws SecurityException if any security violation is observed
- * @throws NoSuchMethodException if when the method is not found
- * @throws IllegalArgumentException if there is illegal argument found
- * @throws InstantiationException if instantiation is provoked for the private constructor
- * @throws IllegalAccessException if instance is provoked or a method is provoked
+ * @throws SecurityException if any security violation is observed
+ * @throws NoSuchMethodException if when the method is not found
+ * @throws IllegalArgumentException if there is illegal argument found
+ * @throws InstantiationException if instantiation is provoked for the private constructor
+ * @throws IllegalAccessException if instance is provoked or a method is provoked
* @throws InvocationTargetException when an exception occurs by the method or constructor
*/
@Test
@@ -136,7 +137,7 @@
throws SecurityException, NoSuchMethodException, IllegalArgumentException,
InstantiationException, IllegalAccessException, InvocationTargetException {
- Class<?>[] classesToConstruct = {YangIoUtils.class };
+ Class<?>[] classesToConstruct = {YangIoUtils.class};
for (Class<?> clazz : classesToConstruct) {
Constructor<?> constructor = clazz.getDeclaredConstructor();
constructor.setAccessible(true);
@@ -205,4 +206,5 @@
pluginConfig.setConflictResolver(null);
return pluginConfig;
}
+
}
diff --git a/pom.xml b/pom.xml
index 4a4fae9..5d1d355 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,13 +14,13 @@
~ limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onosproject</groupId>
- <artifactId>onos-dependencies</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <artifactId>onos-base</artifactId>
+ <version>1</version>
</parent>
<artifactId>onos-yangutils</artifactId>
@@ -41,20 +41,35 @@
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
+ <version>19.0</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.compendium</artifactId>
+ <version>5.0.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- </plugin>
- </plugins>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.5.1</version>
+ <configuration>
+ <source>1.8</source>
+ <target>1.8</target>
+ </configuration>
+
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>2.3.7</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
</build>
</project>