This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
+
+
+
+
+
Overview
+
The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.
+
+
+
Package
+
Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:
+
+
Interfaces (italic)
+
Classes
+
Enums
+
Exceptions
+
Errors
+
Annotation Types
+
+
+
+
Class/Interface
+
Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:
+
+
Class inheritance diagram
+
Direct Subclasses
+
All Known Subinterfaces
+
All Known Implementing Classes
+
Class/interface declaration
+
Class/interface description
+
+
+
Nested Class Summary
+
Field Summary
+
Constructor Summary
+
Method Summary
+
+
+
Field Detail
+
Constructor Detail
+
Method Detail
+
+
Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+
+
+
Annotation Type
+
Each annotation type has its own separate page with the following sections:
+
+
Annotation Type declaration
+
Annotation Type description
+
Required Element Summary
+
Optional Element Summary
+
Element Detail
+
+
+
+
Enum
+
Each enum has its own separate page with the following sections:
+
+
Enum declaration
+
Enum description
+
Enum Constant Summary
+
Enum Constant Detail
+
+
+
+
Use
+
Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.
+
+
+
Tree (Class Hierarchy)
+
There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.
+
+
When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
+
When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
+
+
+
+
Deprecated API
+
The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
+
+
+
Index
+
The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
+
+
+
Prev/Next
+
These links take you to the next or previous class, interface, package, or related page.
+
+
+
Frames/No Frames
+
These links show and hide the HTML frames. All pages are available with or without frames.
+
+
+
All Classes
+
The All Classes link shows all classes and interfaces except non-static nested types.
+
+
+
Serialized Form
+
Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CPIFilterValue c : CPIFilterValue.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static CPIFilterValue valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CPIHeader c : CPIHeader.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static CPIHeader valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CPITagSize c : CPITagSize.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static CPITagSize valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (GDTIFilterValue c : GDTIFilterValue.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static GDTIFilterValue valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (GDTIHeader c : GDTIHeader.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static GDTIHeader valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (GDTITagSize c : GDTITagSize.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static GDTITagSize valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (GRAIFilterValue c : GRAIFilterValue.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static GRAIFilterValue valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (GRAIHeader c : GRAIHeader.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static GRAIHeader valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (GRAITagSize c : GRAITagSize.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static GRAITagSize valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (GSRNFilterValue c : GSRNFilterValue.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static GSRNFilterValue valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (GSRNHeader c : GSRNHeader.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static GSRNHeader valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (GSRNTagSize c : GSRNTagSize.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static GSRNTagSize valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (PrefixLength c : PrefixLength.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static PrefixLength valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (SGTINExtensionDigit c : SGTINExtensionDigit.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (SGTINFilterValue c : SGTINFilterValue.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (SGTINHeader c : SGTINHeader.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static SGTINHeader valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (SGTINTagSize c : SGTINTagSize.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static SGTINTagSize valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (SSCCExtensionDigit c : SSCCExtensionDigit.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (SSCCFilterValue c : SSCCFilterValue.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static SSCCFilterValue valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (SSCCHeader c : SSCCHeader.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static SSCCHeader valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (SSCCTagSize c : SSCCTagSize.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static SSCCTagSize valueOf(java.lang.String name)
+
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
+
+
+
diff --git a/epctagcoder/doc/package-list b/epctagcoder/doc/package-list
new file mode 100755
index 0000000..9e3d070
--- /dev/null
+++ b/epctagcoder/doc/package-list
@@ -0,0 +1,21 @@
+org.epctagcoder.option
+org.epctagcoder.option.CPI
+org.epctagcoder.option.CPI.partitionTable
+org.epctagcoder.option.GDTI
+org.epctagcoder.option.GDTI.partitionTable
+org.epctagcoder.option.GRAI
+org.epctagcoder.option.GRAI.partitionTable
+org.epctagcoder.option.GSRN
+org.epctagcoder.option.GSRN.partitionTable
+org.epctagcoder.option.SGTIN
+org.epctagcoder.option.SGTIN.partitionTable
+org.epctagcoder.option.SSCC
+org.epctagcoder.option.SSCC.partitionTable
+org.epctagcoder.parse.CPI
+org.epctagcoder.parse.GDTI
+org.epctagcoder.parse.GRAI
+org.epctagcoder.parse.GSRN
+org.epctagcoder.parse.SGTIN
+org.epctagcoder.parse.SSCC
+org.epctagcoder.result
+org.epctagcoder.util
diff --git a/epctagcoder/doc/script.js b/epctagcoder/doc/script.js
new file mode 100755
index 0000000..c3a1cae
--- /dev/null
+++ b/epctagcoder/doc/script.js
@@ -0,0 +1,30 @@
+function show(type)
+{
+ count = 0;
+ for (var key in methods) {
+ var row = document.getElementById(key);
+ if ((methods[key] & type) != 0) {
+ row.style.display = '';
+ row.className = (count++ % 2) ? rowColor : altColor;
+ }
+ else
+ row.style.display = 'none';
+ }
+ updateTabs(type);
+}
+
+function updateTabs(type)
+{
+ for (var value in tabs) {
+ var sNode = document.getElementById(tabs[value][0]);
+ var spanNode = sNode.firstChild;
+ if (value == type) {
+ sNode.className = activeTableTab;
+ spanNode.innerHTML = tabs[value][1];
+ }
+ else {
+ sNode.className = tableTab;
+ spanNode.innerHTML = "" + tabs[value][1] + "";
+ }
+ }
+}
diff --git a/epctagcoder/doc/stylesheet.css b/epctagcoder/doc/stylesheet.css
new file mode 100755
index 0000000..b8dad08
--- /dev/null
+++ b/epctagcoder/doc/stylesheet.css
@@ -0,0 +1,574 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+
+@import url('resources/fonts/dejavu.css');
+
+body {
+ background-color:#ffffff;
+ color:#353833;
+ font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+ font-size:14px;
+ margin:0;
+}
+a:link, a:visited {
+ text-decoration:none;
+ color:#4A6782;
+}
+a:hover, a:focus {
+ text-decoration:none;
+ color:#bb7a2a;
+}
+a:active {
+ text-decoration:none;
+ color:#4A6782;
+}
+a[name] {
+ color:#353833;
+}
+a[name]:hover {
+ text-decoration:none;
+ color:#353833;
+}
+pre {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+}
+h1 {
+ font-size:20px;
+}
+h2 {
+ font-size:18px;
+}
+h3 {
+ font-size:16px;
+ font-style:italic;
+}
+h4 {
+ font-size:13px;
+}
+h5 {
+ font-size:12px;
+}
+h6 {
+ font-size:11px;
+}
+ul {
+ list-style-type:disc;
+}
+code, tt {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ padding-top:4px;
+ margin-top:8px;
+ line-height:1.4em;
+}
+dt code {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ padding-top:4px;
+}
+table tr td dt code {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ vertical-align:top;
+ padding-top:4px;
+}
+sup {
+ font-size:8px;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+ clear:both;
+ height:0px;
+ overflow:hidden;
+}
+.aboutLanguage {
+ float:right;
+ padding:0px 21px;
+ font-size:11px;
+ z-index:200;
+ margin-top:-9px;
+}
+.legalCopy {
+ margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+ color:#FFFFFF;
+ text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+ color:#bb7a2a;
+}
+.tab {
+ background-color:#0066FF;
+ color:#ffffff;
+ padding:8px;
+ width:5em;
+ font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+ background-color:#4D7A97;
+ color:#FFFFFF;
+ padding:.8em .5em .4em .8em;
+ height:auto;/*height:1.8em;*/
+ font-size:11px;
+ margin:0;
+}
+.topNav {
+ background-color:#4D7A97;
+ color:#FFFFFF;
+ float:left;
+ padding:0;
+ width:100%;
+ clear:right;
+ height:2.8em;
+ padding-top:10px;
+ overflow:hidden;
+ font-size:12px;
+}
+.bottomNav {
+ margin-top:10px;
+ background-color:#4D7A97;
+ color:#FFFFFF;
+ float:left;
+ padding:0;
+ width:100%;
+ clear:right;
+ height:2.8em;
+ padding-top:10px;
+ overflow:hidden;
+ font-size:12px;
+}
+.subNav {
+ background-color:#dee3e9;
+ float:left;
+ width:100%;
+ overflow:hidden;
+ font-size:12px;
+}
+.subNav div {
+ clear:left;
+ float:left;
+ padding:0 0 5px 6px;
+ text-transform:uppercase;
+}
+ul.navList, ul.subNavList {
+ float:left;
+ margin:0 25px 0 0;
+ padding:0;
+}
+ul.navList li{
+ list-style:none;
+ float:left;
+ padding: 5px 6px;
+ text-transform:uppercase;
+}
+ul.subNavList li{
+ list-style:none;
+ float:left;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+ color:#FFFFFF;
+ text-decoration:none;
+ text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+ text-decoration:none;
+ color:#bb7a2a;
+ text-transform:uppercase;
+}
+.navBarCell1Rev {
+ background-color:#F8981D;
+ color:#253441;
+ margin: auto 5px;
+}
+.skipNav {
+ position:absolute;
+ top:auto;
+ left:-9999px;
+ overflow:hidden;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+ clear:both;
+ margin:0 20px;
+ padding:5px 0 0 0;
+}
+.indexHeader {
+ margin:10px;
+ position:relative;
+}
+.indexHeader span{
+ margin-right:15px;
+}
+.indexHeader h1 {
+ font-size:13px;
+}
+.title {
+ color:#2c4557;
+ margin:10px 0;
+}
+.subTitle {
+ margin:5px 0 0 0;
+}
+.header ul {
+ margin:0 0 15px 0;
+ padding:0;
+}
+.footer ul {
+ margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+ list-style:none;
+ font-size:13px;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+ background-color:#dee3e9;
+ border:1px solid #d0d9e0;
+ margin:0 0 6px -8px;
+ padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+ background-color:#dee3e9;
+ border:1px solid #d0d9e0;
+ margin:0 0 6px -8px;
+ padding:7px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+ padding:0;
+ margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+ padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+ clear:both;
+ padding:10px 20px;
+ position:relative;
+}
+.indexContainer {
+ margin:10px;
+ position:relative;
+ font-size:12px;
+}
+.indexContainer h2 {
+ font-size:13px;
+ padding:0 0 3px 0;
+}
+.indexContainer ul {
+ margin:0;
+ padding:0;
+}
+.indexContainer ul li {
+ list-style:none;
+ padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+ font-size:12px;
+ font-weight:bold;
+ margin:10px 0 0 0;
+ color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+ margin:5px 0 10px 0px;
+ font-size:14px;
+ font-family:'DejaVu Sans Mono',monospace;
+}
+.serializedFormContainer dl.nameValue dt {
+ margin-left:1px;
+ font-size:1.1em;
+ display:inline;
+ font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+ margin:0 0 0 1px;
+ font-size:1.1em;
+ display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+ display:inline;
+ font-size:0.9em;
+}
+ul.inheritance {
+ margin:0;
+ padding:0;
+}
+ul.inheritance li {
+ display:inline;
+ list-style:none;
+}
+ul.inheritance li ul.inheritance {
+ margin-left:15px;
+ padding-left:15px;
+ padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+ margin:10px 0 10px 0;
+ padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+ list-style:none;
+ margin-bottom:15px;
+ line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+ padding:0px 20px 5px 10px;
+ border:1px solid #ededed;
+ background-color:#f8f8f8;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+ padding:0 0 5px 8px;
+ background-color:#ffffff;
+ border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+ margin-left:0;
+ padding-left:0;
+ padding-bottom:15px;
+ border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+ list-style:none;
+ border-bottom:none;
+ padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+ margin-top:0;
+ margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
+ width:100%;
+ border-left:1px solid #EEE;
+ border-right:1px solid #EEE;
+ border-bottom:1px solid #EEE;
+}
+.overviewSummary, .memberSummary {
+ padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
+ position:relative;
+ text-align:left;
+ background-repeat:no-repeat;
+ color:#253441;
+ font-weight:bold;
+ clear:none;
+ overflow:hidden;
+ padding:0px;
+ padding-top:10px;
+ padding-left:1px;
+ margin:0px;
+ white-space:pre;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
+ color:#FFFFFF;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
+ white-space:nowrap;
+ padding-top:5px;
+ padding-left:12px;
+ padding-right:12px;
+ padding-bottom:7px;
+ display:inline-block;
+ float:left;
+ background-color:#F8981D;
+ border: none;
+ height:16px;
+}
+.memberSummary caption span.activeTableTab span {
+ white-space:nowrap;
+ padding-top:5px;
+ padding-left:12px;
+ padding-right:12px;
+ margin-right:3px;
+ display:inline-block;
+ float:left;
+ background-color:#F8981D;
+ height:16px;
+}
+.memberSummary caption span.tableTab span {
+ white-space:nowrap;
+ padding-top:5px;
+ padding-left:12px;
+ padding-right:12px;
+ margin-right:3px;
+ display:inline-block;
+ float:left;
+ background-color:#4D7A97;
+ height:16px;
+}
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
+ padding-top:0px;
+ padding-left:0px;
+ padding-right:0px;
+ background-image:none;
+ float:none;
+ display:inline;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
+ display:none;
+ width:5px;
+ position:relative;
+ float:left;
+ background-color:#F8981D;
+}
+.memberSummary .activeTableTab .tabEnd {
+ display:none;
+ width:5px;
+ margin-right:3px;
+ position:relative;
+ float:left;
+ background-color:#F8981D;
+}
+.memberSummary .tableTab .tabEnd {
+ display:none;
+ width:5px;
+ margin-right:3px;
+ position:relative;
+ background-color:#4D7A97;
+ float:left;
+
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td {
+ text-align:left;
+ padding:0px 0px 12px 10px;
+}
+th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
+td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+ vertical-align:top;
+ padding-right:0px;
+ padding-top:8px;
+ padding-bottom:3px;
+}
+th.colFirst, th.colLast, th.colOne, .constantsSummary th {
+ background:#dee3e9;
+ text-align:left;
+ padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+ white-space:nowrap;
+ font-size:13px;
+}
+td.colLast, th.colLast {
+ font-size:13px;
+}
+td.colOne, th.colOne {
+ font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.useSummary td.colFirst, .useSummary th.colFirst,
+.overviewSummary td.colOne, .overviewSummary th.colOne,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colOne, .memberSummary th.colOne,
+.typeSummary td.colFirst{
+ width:25%;
+ vertical-align:top;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+ font-weight:bold;
+}
+.tableSubHeadingColor {
+ background-color:#EEEEFF;
+}
+.altColor {
+ background-color:#FFFFFF;
+}
+.rowColor {
+ background-color:#EEEEEF;
+}
+/*
+Content styles
+*/
+.description pre {
+ margin-top:0;
+}
+.deprecatedContent {
+ margin:0;
+ padding:10px 0;
+}
+.docSummary {
+ padding:0;
+}
+
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+ font-style:normal;
+}
+
+div.block {
+ font-size:14px;
+ font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+
+td.colLast div {
+ padding-top:0px;
+}
+
+
+td.colLast a {
+ padding-bottom:3px;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+ color:green;
+ padding:0 30px 0 0;
+}
+h1.hidden {
+ visibility:hidden;
+ overflow:hidden;
+ font-size:10px;
+}
+.block {
+ display:block;
+ margin:3px 10px 2px 0px;
+ color:#474747;
+}
+.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
+.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
+.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
+ font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+ font-style:italic;
+}
+
+div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+ font-style:normal;
+}
+
+div.contentContainer ul.blockList li.blockList h2{
+ padding-bottom:0px;
+}
diff --git a/epctagcoder/reports/pmd-report.txt b/epctagcoder/reports/pmd-report.txt
new file mode 100755
index 0000000..9c85574
--- /dev/null
+++ b/epctagcoder/reports/pmd-report.txt
@@ -0,0 +1,1729 @@
+src/main/java/org/epctagcoder/option/CPI/CPIFilterValue.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/CPI/CPIFilterValue.java:6: Enum comments are required
+src/main/java/org/epctagcoder/option/CPI/CPIFilterValue.java:16: Field comments are required
+src/main/java/org/epctagcoder/option/CPI/CPIFilterValue.java:18: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/CPI/CPIFilterValue.java:26: Field comments are required
+src/main/java/org/epctagcoder/option/CPI/CPIFilterValue.java:26: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/CPI/CPIFilterValue.java:26: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/CPI/CPIFilterValue.java:28: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/CPI/CPIFilterValue.java:33: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/CPI/CPIFilterValue.java:33: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/CPIHeader.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/CPI/CPIHeader.java:8: Enum comments are required
+src/main/java/org/epctagcoder/option/CPI/CPIHeader.java:10: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/CPIHeader.java:15: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/CPIHeader.java:20: Field comments are required
+src/main/java/org/epctagcoder/option/CPI/CPIHeader.java:21: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/CPIHeader.java:24: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/CPI/CPIHeader.java:32: Field comments are required
+src/main/java/org/epctagcoder/option/CPI/CPIHeader.java:32: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/CPI/CPIHeader.java:32: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/CPI/CPIHeader.java:34: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/CPI/CPIHeader.java:39: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/CPI/CPIHeader.java:39: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/CPIHeader.java:40: Local variable 'header' could be declared final
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:6: Enum comments are required
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:8: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:11: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:14: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:17: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:22: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:25: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:28: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:31: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:36: Field comments are required
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:37: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:38: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:39: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:40: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:42: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:50: Field comments are required
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:50: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:50: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:52: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:57: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/CPI/CPITagSize.java:57: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:10: Header comments are required
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:11: Field comments are required
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:11: Variables that are final and static should be all capitals, 'list' is not all capitals.
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:15: Parameter 'tagSize' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:15: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:15: The constructor 'CPIPartitionTableList(CPITagSize)' has a NCSS line count of 19.
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:16: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:38: Found 'UR'-anomaly for variable 'item' (lines '38'-'41').
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:38: Parameter 'index' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:38: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:39: Found 'DD'-anomaly for variable 'tableItem' (lines '39'-'42').
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:40: Local variable 'item' could be declared final
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:49: Found 'UR'-anomaly for variable 'item' (lines '49'-'52').
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:49: Parameter 'index' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:49: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:50: Found 'DD'-anomaly for variable 'tableItem' (lines '50'-'53').
+src/main/java/org/epctagcoder/option/CPI/partitionTable/CPIPartitionTableList.java:51: Local variable 'item' could be declared final
+src/main/java/org/epctagcoder/option/GDTI/GDTIFilterValue.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/GDTI/GDTIFilterValue.java:6: Enum comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTIFilterValue.java:16: Field comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTIFilterValue.java:18: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GDTI/GDTIFilterValue.java:26: Field comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTIFilterValue.java:26: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/GDTI/GDTIFilterValue.java:26: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/GDTI/GDTIFilterValue.java:28: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/GDTI/GDTIFilterValue.java:33: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GDTI/GDTIFilterValue.java:33: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTIHeader.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/GDTI/GDTIHeader.java:7: Enum comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTIHeader.java:9: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTIHeader.java:14: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTIHeader.java:19: Field comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTIHeader.java:20: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTIHeader.java:23: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GDTI/GDTIHeader.java:31: Field comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTIHeader.java:31: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/GDTI/GDTIHeader.java:31: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/GDTI/GDTIHeader.java:33: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/GDTI/GDTIHeader.java:38: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GDTI/GDTIHeader.java:38: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTIHeader.java:39: Local variable 'header' could be declared final
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:6: Enum comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:8: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:11: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:14: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:17: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:23: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:26: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:29: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:32: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:37: Field comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:38: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:39: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:40: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:41: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:43: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:51: Field comments are required
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:51: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:51: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:53: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:58: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GDTI/GDTITagSize.java:58: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/partitionTable/GDTIPartitionTableList.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/GDTI/partitionTable/GDTIPartitionTableList.java:9: Header comments are required
+src/main/java/org/epctagcoder/option/GDTI/partitionTable/GDTIPartitionTableList.java:10: Field comments are required
+src/main/java/org/epctagcoder/option/GDTI/partitionTable/GDTIPartitionTableList.java:10: Variables that are final and static should be all capitals, 'list' is not all capitals.
+src/main/java/org/epctagcoder/option/GDTI/partitionTable/GDTIPartitionTableList.java:22: Avoid unnecessary constructors - the compiler will generate these for you
+src/main/java/org/epctagcoder/option/GDTI/partitionTable/GDTIPartitionTableList.java:22: Document empty constructor
+src/main/java/org/epctagcoder/option/GDTI/partitionTable/GDTIPartitionTableList.java:22: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/partitionTable/GDTIPartitionTableList.java:27: Found 'UR'-anomaly for variable 'item' (lines '27'-'30').
+src/main/java/org/epctagcoder/option/GDTI/partitionTable/GDTIPartitionTableList.java:27: Parameter 'index' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GDTI/partitionTable/GDTIPartitionTableList.java:27: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/partitionTable/GDTIPartitionTableList.java:28: Found 'DD'-anomaly for variable 'tableItem' (lines '28'-'31').
+src/main/java/org/epctagcoder/option/GDTI/partitionTable/GDTIPartitionTableList.java:29: Local variable 'item' could be declared final
+src/main/java/org/epctagcoder/option/GDTI/partitionTable/GDTIPartitionTableList.java:38: Found 'UR'-anomaly for variable 'item' (lines '38'-'41').
+src/main/java/org/epctagcoder/option/GDTI/partitionTable/GDTIPartitionTableList.java:38: Parameter 'index' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GDTI/partitionTable/GDTIPartitionTableList.java:38: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GDTI/partitionTable/GDTIPartitionTableList.java:39: Found 'DD'-anomaly for variable 'tableItem' (lines '39'-'42').
+src/main/java/org/epctagcoder/option/GDTI/partitionTable/GDTIPartitionTableList.java:40: Local variable 'item' could be declared final
+src/main/java/org/epctagcoder/option/GRAI/GRAIFilterValue.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/GRAI/GRAIFilterValue.java:6: Enum comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAIFilterValue.java:16: Field comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAIFilterValue.java:18: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GRAI/GRAIFilterValue.java:26: Field comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAIFilterValue.java:26: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/GRAI/GRAIFilterValue.java:26: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/GRAI/GRAIFilterValue.java:28: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/GRAI/GRAIFilterValue.java:33: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GRAI/GRAIFilterValue.java:33: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAIHeader.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/GRAI/GRAIHeader.java:7: Enum comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAIHeader.java:9: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAIHeader.java:14: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAIHeader.java:19: Field comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAIHeader.java:20: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAIHeader.java:23: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GRAI/GRAIHeader.java:31: Field comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAIHeader.java:31: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/GRAI/GRAIHeader.java:31: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/GRAI/GRAIHeader.java:33: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/GRAI/GRAIHeader.java:38: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GRAI/GRAIHeader.java:38: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAIHeader.java:39: Local variable 'header' could be declared final
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:6: Enum comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:8: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:11: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:14: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:17: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:22: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:25: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:28: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:31: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:36: Field comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:37: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:38: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:39: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:40: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:42: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:50: Field comments are required
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:50: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:50: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:52: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:57: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java:57: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java:9: Header comments are required
+src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java:10: Field comments are required
+src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java:10: Variables that are final and static should be all capitals, 'list' is not all capitals.
+src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java:22: Avoid unnecessary constructors - the compiler will generate these for you
+src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java:22: Document empty constructor
+src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java:22: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java:27: Found 'UR'-anomaly for variable 'item' (lines '27'-'30').
+src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java:27: Parameter 'index' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java:27: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java:28: Found 'DD'-anomaly for variable 'tableItem' (lines '28'-'31').
+src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java:29: Local variable 'item' could be declared final
+src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java:38: Found 'UR'-anomaly for variable 'item' (lines '38'-'41').
+src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java:38: Parameter 'index' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java:38: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java:39: Found 'DD'-anomaly for variable 'tableItem' (lines '39'-'42').
+src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java:40: Local variable 'item' could be declared final
+src/main/java/org/epctagcoder/option/GSRN/GSRNFilterValue.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/GSRN/GSRNFilterValue.java:6: Enum comments are required
+src/main/java/org/epctagcoder/option/GSRN/GSRNFilterValue.java:16: Field comments are required
+src/main/java/org/epctagcoder/option/GSRN/GSRNFilterValue.java:18: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GSRN/GSRNFilterValue.java:26: Field comments are required
+src/main/java/org/epctagcoder/option/GSRN/GSRNFilterValue.java:26: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/GSRN/GSRNFilterValue.java:26: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/GSRN/GSRNFilterValue.java:28: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/GSRN/GSRNFilterValue.java:33: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GSRN/GSRNFilterValue.java:33: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GSRN/GSRNHeader.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/GSRN/GSRNHeader.java:7: Enum comments are required
+src/main/java/org/epctagcoder/option/GSRN/GSRNHeader.java:9: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GSRN/GSRNHeader.java:14: Field comments are required
+src/main/java/org/epctagcoder/option/GSRN/GSRNHeader.java:15: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GSRN/GSRNHeader.java:18: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GSRN/GSRNHeader.java:26: Field comments are required
+src/main/java/org/epctagcoder/option/GSRN/GSRNHeader.java:26: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/GSRN/GSRNHeader.java:26: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/GSRN/GSRNHeader.java:28: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/GSRN/GSRNHeader.java:33: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GSRN/GSRNHeader.java:33: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GSRN/GSRNHeader.java:34: Local variable 'header' could be declared final
+src/main/java/org/epctagcoder/option/GSRN/GSRNTagSize.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/GSRN/GSRNTagSize.java:6: Enum comments are required
+src/main/java/org/epctagcoder/option/GSRN/GSRNTagSize.java:8: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GSRN/GSRNTagSize.java:13: Field comments are required
+src/main/java/org/epctagcoder/option/GSRN/GSRNTagSize.java:14: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GSRN/GSRNTagSize.java:16: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GSRN/GSRNTagSize.java:24: Field comments are required
+src/main/java/org/epctagcoder/option/GSRN/GSRNTagSize.java:24: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/GSRN/GSRNTagSize.java:24: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/GSRN/GSRNTagSize.java:26: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/GSRN/GSRNTagSize.java:31: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GSRN/GSRNTagSize.java:31: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GSRN/partitionTable/GSRNPartitionTableList.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/GSRN/partitionTable/GSRNPartitionTableList.java:9: Header comments are required
+src/main/java/org/epctagcoder/option/GSRN/partitionTable/GSRNPartitionTableList.java:10: Field comments are required
+src/main/java/org/epctagcoder/option/GSRN/partitionTable/GSRNPartitionTableList.java:10: Variables that are final and static should be all capitals, 'list' is not all capitals.
+src/main/java/org/epctagcoder/option/GSRN/partitionTable/GSRNPartitionTableList.java:22: Avoid unnecessary constructors - the compiler will generate these for you
+src/main/java/org/epctagcoder/option/GSRN/partitionTable/GSRNPartitionTableList.java:22: Document empty constructor
+src/main/java/org/epctagcoder/option/GSRN/partitionTable/GSRNPartitionTableList.java:22: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GSRN/partitionTable/GSRNPartitionTableList.java:26: Found 'UR'-anomaly for variable 'item' (lines '26'-'29').
+src/main/java/org/epctagcoder/option/GSRN/partitionTable/GSRNPartitionTableList.java:26: Parameter 'index' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GSRN/partitionTable/GSRNPartitionTableList.java:26: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GSRN/partitionTable/GSRNPartitionTableList.java:27: Found 'DD'-anomaly for variable 'tableItem' (lines '27'-'30').
+src/main/java/org/epctagcoder/option/GSRN/partitionTable/GSRNPartitionTableList.java:28: Local variable 'item' could be declared final
+src/main/java/org/epctagcoder/option/GSRN/partitionTable/GSRNPartitionTableList.java:37: Found 'UR'-anomaly for variable 'item' (lines '37'-'40').
+src/main/java/org/epctagcoder/option/GSRN/partitionTable/GSRNPartitionTableList.java:37: Parameter 'index' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/GSRN/partitionTable/GSRNPartitionTableList.java:37: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/GSRN/partitionTable/GSRNPartitionTableList.java:38: Found 'DD'-anomaly for variable 'tableItem' (lines '38'-'41').
+src/main/java/org/epctagcoder/option/GSRN/partitionTable/GSRNPartitionTableList.java:39: Local variable 'item' could be declared final
+src/main/java/org/epctagcoder/option/PrefixLength.java:6: Enum comments are required
+src/main/java/org/epctagcoder/option/PrefixLength.java:15: Field comments are required
+src/main/java/org/epctagcoder/option/PrefixLength.java:17: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/PrefixLength.java:26: Field comments are required
+src/main/java/org/epctagcoder/option/PrefixLength.java:26: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/PrefixLength.java:26: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/PrefixLength.java:28: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/PrefixLength.java:33: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/PrefixLength.java:33: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINExtensionDigit.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/SGTIN/SGTINExtensionDigit.java:6: Enum comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINExtensionDigit.java:18: Field comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINExtensionDigit.java:20: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SGTIN/SGTINExtensionDigit.java:28: Field comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINExtensionDigit.java:28: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/SGTIN/SGTINExtensionDigit.java:28: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/SGTIN/SGTINExtensionDigit.java:30: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/SGTIN/SGTINExtensionDigit.java:35: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SGTIN/SGTINExtensionDigit.java:35: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINFilterValue.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/SGTIN/SGTINFilterValue.java:6: Enum comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINFilterValue.java:16: Field comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINFilterValue.java:18: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SGTIN/SGTINFilterValue.java:26: Field comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINFilterValue.java:26: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/SGTIN/SGTINFilterValue.java:26: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/SGTIN/SGTINFilterValue.java:28: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/SGTIN/SGTINFilterValue.java:33: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SGTIN/SGTINFilterValue.java:33: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINHeader.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/SGTIN/SGTINHeader.java:6: Enum comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINHeader.java:8: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINHeader.java:13: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINHeader.java:18: Field comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINHeader.java:19: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINHeader.java:22: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SGTIN/SGTINHeader.java:30: Field comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINHeader.java:30: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/SGTIN/SGTINHeader.java:30: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/SGTIN/SGTINHeader.java:32: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/SGTIN/SGTINHeader.java:37: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SGTIN/SGTINHeader.java:37: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINHeader.java:38: Local variable 'header' could be declared final
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:6: Enum comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:8: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:11: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:14: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:17: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:22: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:25: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:28: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:31: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:36: Field comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:37: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:38: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:39: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:40: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:42: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:50: Field comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:50: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:50: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:52: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:57: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:57: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/SGTINTagSize.java:58: Local variable 'bits' could be declared final
+src/main/java/org/epctagcoder/option/SGTIN/partitionTable/SGTINPartitionTableList.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/SGTIN/partitionTable/SGTINPartitionTableList.java:9: Header comments are required
+src/main/java/org/epctagcoder/option/SGTIN/partitionTable/SGTINPartitionTableList.java:10: Field comments are required
+src/main/java/org/epctagcoder/option/SGTIN/partitionTable/SGTINPartitionTableList.java:10: Variables that are final and static should be all capitals, 'list' is not all capitals.
+src/main/java/org/epctagcoder/option/SGTIN/partitionTable/SGTINPartitionTableList.java:22: Avoid unnecessary constructors - the compiler will generate these for you
+src/main/java/org/epctagcoder/option/SGTIN/partitionTable/SGTINPartitionTableList.java:22: Document empty constructor
+src/main/java/org/epctagcoder/option/SGTIN/partitionTable/SGTINPartitionTableList.java:22: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/partitionTable/SGTINPartitionTableList.java:27: Found 'UR'-anomaly for variable 'item' (lines '27'-'30').
+src/main/java/org/epctagcoder/option/SGTIN/partitionTable/SGTINPartitionTableList.java:27: Parameter 'index' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SGTIN/partitionTable/SGTINPartitionTableList.java:27: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/partitionTable/SGTINPartitionTableList.java:28: Found 'DD'-anomaly for variable 'tableItem' (lines '28'-'31').
+src/main/java/org/epctagcoder/option/SGTIN/partitionTable/SGTINPartitionTableList.java:29: Local variable 'item' could be declared final
+src/main/java/org/epctagcoder/option/SGTIN/partitionTable/SGTINPartitionTableList.java:38: Found 'UR'-anomaly for variable 'item' (lines '38'-'41').
+src/main/java/org/epctagcoder/option/SGTIN/partitionTable/SGTINPartitionTableList.java:38: Parameter 'index' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SGTIN/partitionTable/SGTINPartitionTableList.java:38: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SGTIN/partitionTable/SGTINPartitionTableList.java:39: Found 'DD'-anomaly for variable 'tableItem' (lines '39'-'42').
+src/main/java/org/epctagcoder/option/SGTIN/partitionTable/SGTINPartitionTableList.java:40: Local variable 'item' could be declared final
+src/main/java/org/epctagcoder/option/SSCC/SSCCExtensionDigit.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/SSCC/SSCCExtensionDigit.java:6: Enum comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCExtensionDigit.java:18: Field comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCExtensionDigit.java:20: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SSCC/SSCCExtensionDigit.java:28: Field comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCExtensionDigit.java:28: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/SSCC/SSCCExtensionDigit.java:28: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/SSCC/SSCCExtensionDigit.java:30: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/SSCC/SSCCExtensionDigit.java:35: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SSCC/SSCCExtensionDigit.java:35: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCFilterValue.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/SSCC/SSCCFilterValue.java:6: Enum comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCFilterValue.java:16: Field comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCFilterValue.java:18: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SSCC/SSCCFilterValue.java:26: Field comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCFilterValue.java:26: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/SSCC/SSCCFilterValue.java:26: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/SSCC/SSCCFilterValue.java:28: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/SSCC/SSCCFilterValue.java:33: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SSCC/SSCCFilterValue.java:33: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCHeader.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/SSCC/SSCCHeader.java:6: Enum comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCHeader.java:8: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCHeader.java:13: Field comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCHeader.java:14: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCHeader.java:17: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SSCC/SSCCHeader.java:25: Field comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCHeader.java:25: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/SSCC/SSCCHeader.java:25: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/SSCC/SSCCHeader.java:27: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/SSCC/SSCCHeader.java:32: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SSCC/SSCCHeader.java:32: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCHeader.java:33: Local variable 'header' could be declared final
+src/main/java/org/epctagcoder/option/SSCC/SSCCTagSize.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/SSCC/SSCCTagSize.java:6: Enum comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCTagSize.java:8: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCTagSize.java:13: Field comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCTagSize.java:14: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCTagSize.java:16: Parameter 'value' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SSCC/SSCCTagSize.java:24: Field comments are required
+src/main/java/org/epctagcoder/option/SSCC/SSCCTagSize.java:24: Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.
+src/main/java/org/epctagcoder/option/SSCC/SSCCTagSize.java:24: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/option/SSCC/SSCCTagSize.java:26: Local variable 'rae' could be declared final
+src/main/java/org/epctagcoder/option/SSCC/SSCCTagSize.java:31: Parameter 'code' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SSCC/SSCCTagSize.java:31: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SSCC/partitionTable/SSCCPartitionTableList.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/option/SSCC/partitionTable/SSCCPartitionTableList.java:9: Header comments are required
+src/main/java/org/epctagcoder/option/SSCC/partitionTable/SSCCPartitionTableList.java:10: Field comments are required
+src/main/java/org/epctagcoder/option/SSCC/partitionTable/SSCCPartitionTableList.java:10: Variables that are final and static should be all capitals, 'list' is not all capitals.
+src/main/java/org/epctagcoder/option/SSCC/partitionTable/SSCCPartitionTableList.java:22: Avoid unnecessary constructors - the compiler will generate these for you
+src/main/java/org/epctagcoder/option/SSCC/partitionTable/SSCCPartitionTableList.java:22: Document empty constructor
+src/main/java/org/epctagcoder/option/SSCC/partitionTable/SSCCPartitionTableList.java:22: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SSCC/partitionTable/SSCCPartitionTableList.java:26: Found 'UR'-anomaly for variable 'item' (lines '26'-'29').
+src/main/java/org/epctagcoder/option/SSCC/partitionTable/SSCCPartitionTableList.java:26: Parameter 'index' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SSCC/partitionTable/SSCCPartitionTableList.java:26: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SSCC/partitionTable/SSCCPartitionTableList.java:27: Found 'DD'-anomaly for variable 'tableItem' (lines '27'-'30').
+src/main/java/org/epctagcoder/option/SSCC/partitionTable/SSCCPartitionTableList.java:28: Local variable 'item' could be declared final
+src/main/java/org/epctagcoder/option/SSCC/partitionTable/SSCCPartitionTableList.java:37: Found 'UR'-anomaly for variable 'item' (lines '37'-'40').
+src/main/java/org/epctagcoder/option/SSCC/partitionTable/SSCCPartitionTableList.java:37: Parameter 'index' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/SSCC/partitionTable/SSCCPartitionTableList.java:37: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/SSCC/partitionTable/SSCCPartitionTableList.java:38: Found 'DD'-anomaly for variable 'tableItem' (lines '38'-'41').
+src/main/java/org/epctagcoder/option/SSCC/partitionTable/SSCCPartitionTableList.java:39: Local variable 'item' could be declared final
+src/main/java/org/epctagcoder/option/TableItem.java:3: Header comments are required
+src/main/java/org/epctagcoder/option/TableItem.java:3: The class 'TableItem' is suspected to be a Data Class (WOC=0.000%, NOPA=0, NOAM=10, WMC=11)
+src/main/java/org/epctagcoder/option/TableItem.java:4: Field comments are required
+src/main/java/org/epctagcoder/option/TableItem.java:5: Avoid variables with short names like l
+src/main/java/org/epctagcoder/option/TableItem.java:5: Field comments are required
+src/main/java/org/epctagcoder/option/TableItem.java:6: Avoid variables with short names like m
+src/main/java/org/epctagcoder/option/TableItem.java:6: Field comments are required
+src/main/java/org/epctagcoder/option/TableItem.java:7: Avoid variables with short names like n
+src/main/java/org/epctagcoder/option/TableItem.java:7: Field comments are required
+src/main/java/org/epctagcoder/option/TableItem.java:8: Field comments are required
+src/main/java/org/epctagcoder/option/TableItem.java:11: Avoid variables with short names like l
+src/main/java/org/epctagcoder/option/TableItem.java:11: Avoid variables with short names like m
+src/main/java/org/epctagcoder/option/TableItem.java:11: Avoid variables with short names like n
+src/main/java/org/epctagcoder/option/TableItem.java:11: Parameter 'digits' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/TableItem.java:11: Parameter 'l' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/TableItem.java:11: Parameter 'm' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/TableItem.java:11: Parameter 'n' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/TableItem.java:11: Parameter 'partitionValue' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/TableItem.java:11: Public method and constructor comments are required
+src/main/java/org/epctagcoder/option/TableItem.java:25: Parameter 'partitionValue' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/TableItem.java:35: Avoid variables with short names like l
+src/main/java/org/epctagcoder/option/TableItem.java:35: Parameter 'l' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/TableItem.java:45: Avoid variables with short names like m
+src/main/java/org/epctagcoder/option/TableItem.java:45: Parameter 'm' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/TableItem.java:55: Avoid variables with short names like n
+src/main/java/org/epctagcoder/option/TableItem.java:55: Parameter 'n' is not assigned and could be declared final
+src/main/java/org/epctagcoder/option/TableItem.java:65: Parameter 'digits' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:19: Header comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:19: Possible God Class (WMC=47, ATFD=55, TCC=28.571%)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:19: The class 'ParseCPI' has a Modified Cyclomatic Complexity of 4 (Highest = 14).
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:19: The class 'ParseCPI' has a Standard Cyclomatic Complexity of 4 (Highest = 14).
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:20: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:20: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:20: Private field 'cpi' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:21: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:21: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:22: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:22: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:23: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:23: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:24: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:24: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:25: Avoid excessively long variable names like componentPartReference
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:25: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:25: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:26: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:26: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:27: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:27: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:27: Private field 'rfidTag' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:28: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:28: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:28: Private field 'epcTagURI' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:29: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:29: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:29: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:29: Private field 'epcPureIdentityURI' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:30: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:30: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:31: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:31: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:31: Perhaps 'remainder' could be replaced by a local variable.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:33: A method/constructor should not explicitly throw java.lang.Exception
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:33: Method names should not start with capital letters
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:33: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:37: Parameter 'steps' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:51: Avoid really long methods.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:51: Found 'UR'-anomaly for variable 'item' (lines '51'-'78').
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:51: The method 'parse' has a Modified Cyclomatic Complexity of 14.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:51: The method 'parse' has a Standard Cyclomatic Complexity of 14.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:51: The method 'parse()' has a NCSS line count of 94.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:51: The method 'parse()' has a cyclomatic complexity of 18.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:52: Avoid excessively long variable names like optionalCompanyPrefix
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:52: Found 'DU'-anomaly for variable 'optionalCompanyPrefix' (lines '52'-'175').
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:52: Local variable 'optionalCompanyPrefix' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:53: Local variable 'optionalRfidTag' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:54: Found 'DU'-anomaly for variable 'optionalEpcTagURI' (lines '54'-'175').
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:54: Local variable 'optionalEpcTagURI' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:55: Avoid excessively long variable names like optionalEpcPureIdentityURI
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:55: Found 'DU'-anomaly for variable 'optionalEpcPureIdentityURI' (lines '55'-'175').
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:55: Local variable 'optionalEpcPureIdentityURI' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:57: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:58: Local variable 'inputBin' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:59: Local variable 'headerBin' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:59: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:60: Local variable 'filterBin' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:60: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:61: Local variable 'partitionBin' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:61: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:63: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:63: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:64: Avoid excessively long variable names like cpiPartitionTableList
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:64: Local variable 'cpiPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:67: Local variable 'filterDec' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:68: Local variable 'companyPrefixBin' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:68: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:69: Avoid excessively long variable names like componentPartReferenceBin
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:69: Found 'DD'-anomaly for variable 'componentPartReferenceBin' (lines '69'-'84').
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:69: Found 'DD'-anomaly for variable 'componentPartReferenceBin' (lines '69'-'90').
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:69: Found 'DU'-anomaly for variable 'componentPartReferenceBin' (lines '69'-'175').
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:70: Found 'DD'-anomaly for variable 'serialBin' (lines '70'-'88').
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:70: Found 'DD'-anomaly for variable 'serialBin' (lines '70'-'92').
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:73: Avoid excessively long variable names like componentPartReferenceAndSerialBin
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:73: Local variable 'componentPartReferenceAndSerialBin' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:73: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:75: Avoid excessively long variable names like decodeComponentPartReference
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:75: Local variable 'decodeComponentPartReference' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:76: Local variable 'splitCPR' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:77: Local variable 'item' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:78: Position literals first in String comparisons
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:85: Local variable 'posSerial' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:85: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:88: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:89: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:90: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:92: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:96: Local variable 'companyPrefixDec' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:103: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:104: Avoid excessively long variable names like sgtinPartitionTableList
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:104: Local variable 'sgtinPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:116: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:117: Local variable 'pattern' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:119: Local variable 'matcher' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:119: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:121: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:122: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:122: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:125: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:128: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:129: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:130: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:130: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:130: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:131: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:132: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:137: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:138: Local variable 'pattern' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:139: Local variable 'matcher' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:139: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:141: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:142: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:143: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:143: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:143: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:144: An empty statement (semicolon) not part of a loop
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:144: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:145: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:153: Avoid excessively long variable names like sgtinPartitionTableList
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:153: Local variable 'sgtinPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:158: Local variable 'outputBin' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:159: Local variable 'outputHex' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:172: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:178: The method 'getBinary()' has a NCSS line count of 16.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:179: Local variable 'bin' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:181: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:182: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:183: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:189: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:194: Useless parentheses.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:213: Avoid excessively long variable names like optionalPefixLenght
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:213: Local variable 'optionalPefixLenght' could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:214: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:232: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:233: These nested if statements could be combined
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:233: This call to String.startsWith can be rewritten using String.charAt(0)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:241: The method 'validateSerial()' has a NCSS line count of 12.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:241: The method 'validateSerial()' has a cyclomatic complexity of 11.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:243: This call to String.startsWith can be rewritten using String.charAt(0)
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:252: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:268: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:268: Header comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:269: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:270: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:271: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:272: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:272: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:276: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:276: Header comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:277: Avoid excessively long variable names like componentPartReference
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:277: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:280: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:280: Header comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:281: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:284: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:284: Header comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:285: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:288: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:288: Header comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:289: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:292: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:292: Header comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:293: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:297: Header comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:298: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:298: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:299: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:299: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:300: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:300: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:301: Avoid excessively long variable names like componentPartReference
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:301: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:301: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:302: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:302: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:303: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:303: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:304: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:304: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:305: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:305: Field comments are required
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:305: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:309: Avoid instantiation through private constructors from outside of the constructors class.
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:313: Parameter 'filterValue' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:319: Parameter 'tagSize' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:325: Parameter 'serial' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:331: Avoid excessively long variable names like componentPartReference
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:331: Parameter 'componentPartReference' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:337: Parameter 'companyPrefix' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:343: Parameter 'rfidTag' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:349: Parameter 'epcTagURI' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:355: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/CPI/ParseCPI.java:355: Parameter 'epcPureIdentityURI' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:17: Header comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:18: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:18: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:18: Private field 'gdti' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:19: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:19: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:20: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:20: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:21: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:21: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:22: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:22: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:23: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:23: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:24: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:24: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:25: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:25: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:25: Private field 'rfidTag' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:26: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:26: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:26: Private field 'epcTagURI' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:27: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:27: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:27: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:27: Private field 'epcPureIdentityURI' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:28: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:28: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:29: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:29: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:31: A method/constructor should not explicitly throw java.lang.Exception
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:31: Method names should not start with capital letters
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:31: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:35: Parameter 'steps' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:49: Avoid really long methods.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:49: The method 'parse()' has a NCSS line count of 80.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:49: The method 'parse()' has a cyclomatic complexity of 11.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:50: Avoid excessively long variable names like optionalCompanyPrefix
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:50: Found 'DU'-anomaly for variable 'optionalCompanyPrefix' (lines '50'-'155').
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:50: Local variable 'optionalCompanyPrefix' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:51: Local variable 'optionalRfidTag' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:52: Found 'DU'-anomaly for variable 'optionalEpcTagURI' (lines '52'-'155').
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:52: Local variable 'optionalEpcTagURI' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:53: Avoid excessively long variable names like optionalEpcPureIdentityURI
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:53: Found 'DU'-anomaly for variable 'optionalEpcPureIdentityURI' (lines '53'-'155').
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:53: Local variable 'optionalEpcPureIdentityURI' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:55: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:56: Local variable 'inputBin' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:57: Local variable 'headerBin' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:57: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:58: Local variable 'filterBin' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:58: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:59: Local variable 'partitionBin' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:59: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:60: Avoid excessively long variable names like graiPartitionTableList
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:60: Local variable 'graiPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:62: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:62: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:65: Local variable 'filterDec' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:66: Local variable 'companyPrefixBin' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:66: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:67: Local variable 'docTypeBin' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:67: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:68: Found 'DD'-anomaly for variable 'serialBin' (lines '68'-'76').
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:68: Found 'DU'-anomaly for variable 'serialBin' (lines '68'-'155').
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:68: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:70: Local variable 'companyPrefixDec' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:71: Local variable 'docTypeDec' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:75: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:78: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:88: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:89: Avoid excessively long variable names like sgtinPartitionTableList
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:89: Local variable 'sgtinPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:101: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:102: Local variable 'pattern' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:103: Local variable 'matcher' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:103: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:105: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:106: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:107: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:108: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:109: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:109: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:109: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:110: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:111: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:116: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:117: Local variable 'pattern' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:118: Local variable 'matcher' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:118: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:120: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:121: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:122: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:122: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:122: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:123: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:124: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:132: Avoid excessively long variable names like sgtinPartitionTableList
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:132: Local variable 'sgtinPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:137: Local variable 'outputBin' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:138: Local variable 'outputHex' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:158: The method 'getBinary()' has a NCSS line count of 14.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:159: Local variable 'bin' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:161: Useless parentheses.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:163: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:164: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:165: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:166: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:169: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:171: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:181: Local variable 'value' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:186: Local variable 'd13' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:191: Useless parentheses.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:196: Consider simply returning the value vs storing it in local variable 'd13'
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:211: Avoid excessively long variable names like optionalPefixLenght
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:211: Local variable 'optionalPefixLenght' could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:212: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:225: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:230: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:235: This call to String.startsWith can be rewritten using String.charAt(0)
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:244: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:244: Header comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:245: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:246: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:247: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:248: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:248: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:252: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:252: Header comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:253: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:256: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:256: Header comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:257: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:260: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:260: Header comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:261: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:264: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:264: Header comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:265: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:268: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:268: Header comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:269: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:273: Header comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:274: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:274: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:275: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:275: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:276: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:276: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:277: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:277: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:278: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:278: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:279: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:279: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:280: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:280: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:281: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:281: Field comments are required
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:281: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:285: Avoid instantiation through private constructors from outside of the constructors class.
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:289: Parameter 'filterValue' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:295: Parameter 'tagSize' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:301: Parameter 'serial' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:307: Parameter 'docType' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:313: Parameter 'companyPrefix' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:319: Parameter 'rfidTag' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:325: Parameter 'epcTagURI' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:331: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/GDTI/ParseGDTI.java:331: Parameter 'epcPureIdentityURI' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:17: Header comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:18: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:18: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:18: Private field 'grai' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:19: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:19: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:20: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:20: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:21: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:21: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:22: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:22: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:23: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:23: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:24: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:24: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:25: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:25: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:25: Private field 'rfidTag' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:26: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:26: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:26: Private field 'epcTagURI' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:27: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:27: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:27: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:27: Private field 'epcPureIdentityURI' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:28: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:28: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:29: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:29: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:31: A method/constructor should not explicitly throw java.lang.Exception
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:31: Method names should not start with capital letters
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:31: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:35: Parameter 'steps' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:49: Avoid really long methods.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:49: The method 'parse()' has a NCSS line count of 80.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:49: The method 'parse()' has a cyclomatic complexity of 11.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:50: Avoid excessively long variable names like optionalCompanyPrefix
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:50: Found 'DU'-anomaly for variable 'optionalCompanyPrefix' (lines '50'-'155').
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:50: Local variable 'optionalCompanyPrefix' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:51: Local variable 'optionalRfidTag' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:52: Found 'DU'-anomaly for variable 'optionalEpcTagURI' (lines '52'-'155').
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:52: Local variable 'optionalEpcTagURI' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:53: Avoid excessively long variable names like optionalEpcPureIdentityURI
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:53: Found 'DU'-anomaly for variable 'optionalEpcPureIdentityURI' (lines '53'-'155').
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:53: Local variable 'optionalEpcPureIdentityURI' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:55: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:56: Local variable 'inputBin' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:57: Local variable 'headerBin' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:57: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:58: Local variable 'filterBin' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:58: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:59: Local variable 'partitionBin' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:59: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:60: Avoid excessively long variable names like graiPartitionTableList
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:60: Local variable 'graiPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:62: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:62: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:65: Local variable 'filterDec' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:66: Local variable 'companyPrefixBin' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:66: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:67: Local variable 'assetTypeBin' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:67: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:68: Found 'DD'-anomaly for variable 'serialBin' (lines '68'-'76').
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:68: Found 'DU'-anomaly for variable 'serialBin' (lines '68'-'155').
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:68: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:70: Local variable 'companyPrefixDec' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:71: Local variable 'assetTypeDec' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:75: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:78: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:88: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:89: Avoid excessively long variable names like sgtinPartitionTableList
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:89: Local variable 'sgtinPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:101: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:102: Local variable 'pattern' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:103: Local variable 'matcher' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:103: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:105: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:106: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:107: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:108: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:109: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:109: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:109: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:110: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:111: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:116: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:117: Local variable 'pattern' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:118: Local variable 'matcher' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:118: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:120: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:121: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:122: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:122: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:122: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:123: An empty statement (semicolon) not part of a loop
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:123: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:124: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:132: Avoid excessively long variable names like sgtinPartitionTableList
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:132: Local variable 'sgtinPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:137: Local variable 'outputBin' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:138: Local variable 'outputHex' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:158: The method 'getBinary()' has a NCSS line count of 14.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:159: Local variable 'bin' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:161: Useless parentheses.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:163: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:164: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:165: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:166: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:169: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:171: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:181: Local variable 'value' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:186: Local variable 'd13' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:191: Useless parentheses.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:196: Consider simply returning the value vs storing it in local variable 'd13'
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:211: Avoid excessively long variable names like optionalPefixLenght
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:211: Local variable 'optionalPefixLenght' could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:212: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:225: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:230: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:235: This call to String.startsWith can be rewritten using String.charAt(0)
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:244: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:244: Header comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:245: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:246: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:247: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:248: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:248: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:252: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:252: Header comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:253: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:256: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:256: Header comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:257: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:260: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:260: Header comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:261: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:264: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:264: Header comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:265: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:268: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:268: Header comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:269: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:273: Header comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:274: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:274: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:275: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:275: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:276: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:276: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:277: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:277: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:278: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:278: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:279: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:279: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:280: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:280: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:281: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:281: Field comments are required
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:281: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:285: Avoid instantiation through private constructors from outside of the constructors class.
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:289: Parameter 'filterValue' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:295: Parameter 'tagSize' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:301: Parameter 'serial' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:307: Parameter 'assetType' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:313: Parameter 'companyPrefix' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:319: Parameter 'rfidTag' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:325: Parameter 'epcTagURI' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:331: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java:331: Parameter 'epcPureIdentityURI' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:15: Header comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:16: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:17: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:17: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:17: Private field 'gsrn' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:18: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:18: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:19: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:19: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:20: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:20: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:21: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:21: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:22: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:22: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:23: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:23: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:23: Private field 'rfidTag' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:24: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:24: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:24: Private field 'epcTagURI' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:25: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:25: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:25: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:25: Private field 'epcPureIdentityURI' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:26: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:26: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:28: A method/constructor should not explicitly throw java.lang.Exception
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:28: Method names should not start with capital letters
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:28: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:32: Parameter 'steps' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:44: The method 'parse()' has a NCSS line count of 68.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:45: Avoid excessively long variable names like optionalCompanyPrefix
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:45: Found 'DU'-anomaly for variable 'optionalCompanyPrefix' (lines '45'-'141').
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:45: Local variable 'optionalCompanyPrefix' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:46: Local variable 'optionalRfidTag' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:47: Found 'DU'-anomaly for variable 'optionalEpcTagURI' (lines '47'-'141').
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:47: Local variable 'optionalEpcTagURI' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:48: Avoid excessively long variable names like optionalEpcPureIdentityURI
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:48: Found 'DU'-anomaly for variable 'optionalEpcPureIdentityURI' (lines '48'-'141').
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:48: Local variable 'optionalEpcPureIdentityURI' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:50: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:51: Local variable 'inputBin' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:52: Local variable 'headerBin' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:52: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:53: Local variable 'filterBin' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:53: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:54: Local variable 'partitionBin' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:54: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:55: Avoid excessively long variable names like GSRNPartitionTableList
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:55: Local variable 'GSRNPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:55: Variables should start with a lowercase character, 'GSRNPartitionTableList' starts with uppercase character.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:59: Local variable 'companyPrefixBin' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:59: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:60: Avoid excessively long variable names like serialWithExtensionBin
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:60: Local variable 'serialWithExtensionBin' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:60: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:61: Local variable 'filterDec' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:62: Local variable 'companyPrefixDec' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:67: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:67: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:72: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:73: Avoid excessively long variable names like GSRNPartitionTableList
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:73: Local variable 'GSRNPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:73: Variables should start with a lowercase character, 'GSRNPartitionTableList' starts with uppercase character.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:85: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:86: Local variable 'pattern' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:87: Local variable 'matcher' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:87: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:89: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:90: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:91: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:92: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:93: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:93: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:93: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:94: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:99: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:100: Local variable 'pattern' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:101: Local variable 'matcher' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:101: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:103: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:104: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:105: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:105: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:105: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:106: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:114: Avoid excessively long variable names like GSRNPartitionTableList
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:114: Local variable 'GSRNPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:114: Variables should start with a lowercase character, 'GSRNPartitionTableList' starts with uppercase character.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:122: Local variable 'outputBin' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:123: Local variable 'outputHex' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:144: Local variable 'value' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:149: Local variable 'd18' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:155: Useless parentheses.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:160: Consider simply returning the value vs storing it in local variable 'd18'
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:165: Local variable 'bin' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:167: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:168: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:169: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:170: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:171: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:189: Local variable 'value' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:200: Avoid excessively long variable names like optionalpPefixLenght
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:200: Local variable 'optionalpPefixLenght' could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:201: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:210: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:210: Header comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:211: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:212: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:213: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:214: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:214: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:218: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:218: Header comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:219: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:222: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:222: Header comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:223: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:226: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:226: Header comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:227: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:230: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:230: Header comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:231: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:236: Header comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:237: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:237: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:238: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:238: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:239: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:239: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:240: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:240: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:241: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:241: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:242: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:242: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:243: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:243: Field comments are required
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:243: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:247: Avoid instantiation through private constructors from outside of the constructors class.
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:251: Parameter 'filterValue' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:257: Parameter 'tagSize' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:263: Parameter 'serviceReference' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:269: Parameter 'companyPrefix' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:275: Parameter 'rfidTag' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:281: Parameter 'epcTagURI' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:287: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/GSRN/ParseGSRN.java:287: Parameter 'epcPureIdentityURI' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:1: Package name contains upper case characters
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:18: Header comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:19: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:19: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:19: Private field 'sgtin' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:20: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:20: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:21: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:21: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:22: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:22: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:23: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:23: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:24: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:24: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:25: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:25: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:26: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:26: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:27: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:27: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:27: Private field 'rfidTag' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:28: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:28: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:28: Private field 'epcTagURI' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:29: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:29: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:29: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:29: Private field 'epcPureIdentityURI' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:30: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:30: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:31: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:31: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:33: A method/constructor should not explicitly throw java.lang.Exception
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:33: Method names should not start with capital letters
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:33: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:37: Parameter 'steps' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:52: Avoid really long methods.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:52: The method 'parse()' has a NCSS line count of 85.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:52: The method 'parse()' has a cyclomatic complexity of 11.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:53: Avoid excessively long variable names like optionalCompanyPrefix
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:53: Found 'DU'-anomaly for variable 'optionalCompanyPrefix' (lines '53'-'165').
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:53: Local variable 'optionalCompanyPrefix' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:54: Local variable 'optionalRfidTag' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:55: Found 'DU'-anomaly for variable 'optionalEpcTagURI' (lines '55'-'165').
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:55: Local variable 'optionalEpcTagURI' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:56: Avoid excessively long variable names like optionalEpcPureIdentityURI
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:56: Found 'DU'-anomaly for variable 'optionalEpcPureIdentityURI' (lines '56'-'165').
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:56: Local variable 'optionalEpcPureIdentityURI' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:58: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:59: Local variable 'inputBin' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:60: Local variable 'headerBin' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:60: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:61: Local variable 'filterBin' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:61: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:62: Local variable 'partitionBin' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:62: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:63: Avoid excessively long variable names like sgtinPartitionTableList
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:63: Local variable 'sgtinPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:65: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:65: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:68: Local variable 'filterDec' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:69: Local variable 'companyPrefixBin' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:69: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:70: Avoid excessively long variable names like itemReferenceWithExtensionBin
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:70: Local variable 'itemReferenceWithExtensionBin' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:70: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:71: Found 'DD'-anomaly for variable 'serialBin' (lines '71'-'79').
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:71: Found 'DU'-anomaly for variable 'serialBin' (lines '71'-'165').
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:71: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:72: Local variable 'companyPrefixDec' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:73: Avoid excessively long variable names like itemReferenceWithExtensionDec
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:73: Local variable 'itemReferenceWithExtensionDec' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:74: Local variable 'extensionDec' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:74: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:76: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:78: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:81: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:92: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:93: Avoid excessively long variable names like sgtinPartitionTableList
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:93: Local variable 'sgtinPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:105: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:106: Local variable 'pattern' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:107: Local variable 'matcher' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:107: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:109: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:110: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:111: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:112: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:113: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:113: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:113: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:114: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:115: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:116: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:121: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:122: Local variable 'pattern' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:123: Local variable 'matcher' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:123: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:125: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:126: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:127: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:127: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:127: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:128: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:129: An empty statement (semicolon) not part of a loop
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:129: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:130: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:138: Avoid excessively long variable names like sgtinPartitionTableList
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:138: Local variable 'sgtinPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:145: Local variable 'outputBin' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:146: Local variable 'outputHex' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:168: The method 'getBinary()' has a NCSS line count of 14.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:169: Local variable 'bin' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:171: Useless parentheses.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:173: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:174: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:175: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:176: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:179: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:181: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:190: Local variable 'value' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:196: Local variable 'd14' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:201: Useless parentheses.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:206: Consider simply returning the value vs storing it in local variable 'd14'
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:222: Local variable 'value' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:233: Avoid excessively long variable names like optionalPefixLength
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:233: Local variable 'optionalPefixLength' could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:234: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:241: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:245: Avoid using Literals in Conditional Statements
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:249: This call to String.startsWith can be rewritten using String.charAt(0)
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:259: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:259: Header comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:260: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:261: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:262: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:263: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:263: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:266: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:266: Header comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:267: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:270: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:270: Header comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:271: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:274: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:274: Header comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:275: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:278: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:278: Header comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:279: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:282: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:282: Header comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:283: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:286: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:286: Header comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:287: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:291: Header comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:292: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:292: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:293: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:293: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:294: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:294: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:295: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:295: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:296: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:296: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:297: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:297: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:298: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:298: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:299: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:299: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:300: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:300: Field comments are required
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:300: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:304: Avoid instantiation through private constructors from outside of the constructors class.
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:308: Parameter 'extensionDigit' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:314: Parameter 'itemReference' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:320: Parameter 'serial' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:326: Parameter 'tagSize' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:332: Parameter 'filterValue' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:338: Parameter 'rfidTag' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:344: Parameter 'epcTagURI' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:350: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:350: Parameter 'epcPureIdentityURI' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SGTIN/ParseSGTIN.java:356: Parameter 'companyPrefix' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:3: Package name contains upper case characters
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:20: Header comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:21: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:22: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:22: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:22: Private field 'sscc' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:23: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:23: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:24: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:24: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:25: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:25: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:26: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:26: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:27: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:27: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:28: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:28: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:29: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:29: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:29: Private field 'rfidTag' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:30: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:30: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:30: Private field 'epcTagURI' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:31: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:31: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:31: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:31: Private field 'epcPureIdentityURI' could be made final; it is only initialized in the declaration or constructor.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:32: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:32: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:34: A method/constructor should not explicitly throw java.lang.Exception
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:34: Method names should not start with capital letters
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:34: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:38: Parameter 'steps' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:51: Avoid really long methods.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:51: The method 'parse()' has a NCSS line count of 74.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:52: Avoid excessively long variable names like optionalCompanyPrefix
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:52: Found 'DU'-anomaly for variable 'optionalCompanyPrefix' (lines '52'-'153').
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:52: Local variable 'optionalCompanyPrefix' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:53: Local variable 'optionalRfidTag' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:54: Found 'DU'-anomaly for variable 'optionalEpcTagURI' (lines '54'-'153').
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:54: Local variable 'optionalEpcTagURI' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:55: Avoid excessively long variable names like optionalEpcPureIdentityURI
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:55: Found 'DU'-anomaly for variable 'optionalEpcPureIdentityURI' (lines '55'-'153').
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:55: Local variable 'optionalEpcPureIdentityURI' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:57: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:58: Local variable 'inputBin' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:59: Local variable 'headerBin' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:59: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:60: Local variable 'filterBin' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:60: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:61: Local variable 'partitionBin' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:61: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:62: Avoid excessively long variable names like ssccPartitionTableList
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:62: Local variable 'ssccPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:66: Local variable 'companyPrefixBin' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:66: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:67: Avoid excessively long variable names like serialWithExtensionBin
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:67: Local variable 'serialWithExtensionBin' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:67: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:68: Local variable 'filterDec' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:69: Local variable 'companyPrefixDec' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:70: Avoid excessively long variable names like serialWithExtension
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:70: Local variable 'serialWithExtension' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:71: Local variable 'extensionDec' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:71: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:73: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:77: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:77: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:82: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:83: Avoid excessively long variable names like ssccPartitionTableList
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:83: Local variable 'ssccPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:94: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:95: Local variable 'pattern' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:96: Local variable 'matcher' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:96: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:98: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:99: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:100: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:101: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:102: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:102: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:102: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:103: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:104: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:109: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:110: Local variable 'pattern' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:111: Local variable 'matcher' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:111: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:113: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:114: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:115: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:115: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:115: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:116: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:117: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:125: Avoid excessively long variable names like ssccPartitionTableList
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:125: Local variable 'ssccPartitionTableList' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:133: Local variable 'outputBin' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:134: Local variable 'outputHex' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:157: Local variable 'value' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:163: Local variable 'd18' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:169: Useless parentheses.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:174: Consider simply returning the value vs storing it in local variable 'd18'
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:179: Local variable 'bin' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:181: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:182: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:183: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:184: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:185: StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:203: Local variable 'value' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:215: Avoid excessively long variable names like optionalpPefixLenght
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:215: Local variable 'optionalpPefixLenght' could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:216: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:225: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:225: Header comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:226: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:227: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:228: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:229: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:229: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:232: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:232: Header comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:233: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:236: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:236: Header comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:237: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:240: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:240: Header comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:241: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:244: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:244: Header comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:245: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:248: Avoid modifiers which are implied by the context
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:248: Header comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:249: Public method and constructor comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:254: Header comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:255: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:255: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:256: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:256: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:257: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:257: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:258: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:258: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:259: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:259: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:260: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:260: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:261: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:261: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:262: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:262: Field comments are required
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:262: Found non-transient, non-static member. Please mark as transient or provide accessors.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:266: Avoid instantiation through private constructors from outside of the constructors class.
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:271: Parameter 'extensionDigit' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:277: Parameter 'companyPrefix' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:283: Parameter 'serial' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:289: Parameter 'tagSize' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:295: Parameter 'filterValue' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:301: Parameter 'rfidTag' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:308: Parameter 'epcTagURI' is not assigned and could be declared final
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:315: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/parse/SSCC/ParseSSCC.java:315: Parameter 'epcPureIdentityURI' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/Base.java:3: Abstract classes should be named AbstractXXX
+src/main/java/org/epctagcoder/result/Base.java:3: Avoid short class names like Base
+src/main/java/org/epctagcoder/result/Base.java:3: Header comments are required
+src/main/java/org/epctagcoder/result/Base.java:3: The class 'Base' is suspected to be a Data Class (WOC=0.000%, NOPA=0, NOAM=24, WMC=25)
+src/main/java/org/epctagcoder/result/Base.java:3: This abstract class does not have any abstract methods
+src/main/java/org/epctagcoder/result/Base.java:4: Field comments are required
+src/main/java/org/epctagcoder/result/Base.java:5: Avoid excessively long variable names like applicationIdentifier
+src/main/java/org/epctagcoder/result/Base.java:5: Field comments are required
+src/main/java/org/epctagcoder/result/Base.java:6: Field comments are required
+src/main/java/org/epctagcoder/result/Base.java:7: Field comments are required
+src/main/java/org/epctagcoder/result/Base.java:8: Field comments are required
+src/main/java/org/epctagcoder/result/Base.java:9: Field comments are required
+src/main/java/org/epctagcoder/result/Base.java:10: Field comments are required
+src/main/java/org/epctagcoder/result/Base.java:11: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/result/Base.java:11: Field comments are required
+src/main/java/org/epctagcoder/result/Base.java:12: Field comments are required
+src/main/java/org/epctagcoder/result/Base.java:13: Field comments are required
+src/main/java/org/epctagcoder/result/Base.java:14: Field comments are required
+src/main/java/org/epctagcoder/result/Base.java:15: Field comments are required
+src/main/java/org/epctagcoder/result/Base.java:18: Avoid unnecessary constructors - the compiler will generate these for you
+src/main/java/org/epctagcoder/result/Base.java:18: Document empty constructor
+src/main/java/org/epctagcoder/result/Base.java:18: Public method and constructor comments are required
+src/main/java/org/epctagcoder/result/Base.java:28: Parameter 'epcScheme' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/Base.java:38: Avoid excessively long variable names like applicationIdentifier
+src/main/java/org/epctagcoder/result/Base.java:38: Parameter 'applicationIdentifier' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/Base.java:48: Parameter 'tagSize' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/Base.java:58: Parameter 'filterValue' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/Base.java:68: Parameter 'partitionValue' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/Base.java:78: Parameter 'prefixLength' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/Base.java:88: Parameter 'companyPrefix' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/Base.java:98: Avoid excessively long variable names like epcPureIdentityURI
+src/main/java/org/epctagcoder/result/Base.java:98: Parameter 'epcPureIdentityURI' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/Base.java:108: Parameter 'epcTagURI' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/Base.java:118: Parameter 'epcRawURI' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/Base.java:128: Parameter 'binary' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/Base.java:138: Parameter 'rfidTag' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/CPI.java:3: Avoid short class names like CPI
+src/main/java/org/epctagcoder/result/CPI.java:3: Header comments are required
+src/main/java/org/epctagcoder/result/CPI.java:3: The class 'CPI' is suspected to be a Data Class (WOC=0.000%, NOPA=0, NOAM=4, WMC=5)
+src/main/java/org/epctagcoder/result/CPI.java:4: Avoid excessively long variable names like componentPartReference
+src/main/java/org/epctagcoder/result/CPI.java:4: Field comments are required
+src/main/java/org/epctagcoder/result/CPI.java:5: Field comments are required
+src/main/java/org/epctagcoder/result/CPI.java:9: Avoid unnecessary constructors - the compiler will generate these for you
+src/main/java/org/epctagcoder/result/CPI.java:9: Document empty constructor
+src/main/java/org/epctagcoder/result/CPI.java:9: It is a good practice to call super() in a constructor
+src/main/java/org/epctagcoder/result/CPI.java:9: Public method and constructor comments are required
+src/main/java/org/epctagcoder/result/CPI.java:18: Local variable 'json' could be declared final
+src/main/java/org/epctagcoder/result/CPI.java:48: Avoid excessively long variable names like componentPartReference
+src/main/java/org/epctagcoder/result/CPI.java:48: Parameter 'componentPartReference' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/CPI.java:62: Parameter 'serial' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/GDTI.java:3: Avoid short class names like GDTI
+src/main/java/org/epctagcoder/result/GDTI.java:3: Header comments are required
+src/main/java/org/epctagcoder/result/GDTI.java:3: The class 'GDTI' is suspected to be a Data Class (WOC=0.000%, NOPA=0, NOAM=6, WMC=7)
+src/main/java/org/epctagcoder/result/GDTI.java:4: Field comments are required
+src/main/java/org/epctagcoder/result/GDTI.java:5: Field comments are required
+src/main/java/org/epctagcoder/result/GDTI.java:6: Field comments are required
+src/main/java/org/epctagcoder/result/GDTI.java:8: Avoid unnecessary constructors - the compiler will generate these for you
+src/main/java/org/epctagcoder/result/GDTI.java:8: Document empty constructor
+src/main/java/org/epctagcoder/result/GDTI.java:8: It is a good practice to call super() in a constructor
+src/main/java/org/epctagcoder/result/GDTI.java:8: Public method and constructor comments are required
+src/main/java/org/epctagcoder/result/GDTI.java:17: Parameter 'docType' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/GDTI.java:25: Parameter 'serial' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/GDTI.java:33: Parameter 'checkDigit' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/GDTI.java:41: Local variable 'json' could be declared final
+src/main/java/org/epctagcoder/result/GIAI.java:3: Avoid short class names like GIAI
+src/main/java/org/epctagcoder/result/GIAI.java:3: Header comments are required
+src/main/java/org/epctagcoder/result/GIAI.java:4: Avoid excessively long variable names like individualAssetReference
+src/main/java/org/epctagcoder/result/GIAI.java:4: Field comments are required
+src/main/java/org/epctagcoder/result/GIAI.java:6: Avoid unnecessary constructors - the compiler will generate these for you
+src/main/java/org/epctagcoder/result/GIAI.java:6: Document empty constructor
+src/main/java/org/epctagcoder/result/GIAI.java:6: It is a good practice to call super() in a constructor
+src/main/java/org/epctagcoder/result/GIAI.java:6: Public method and constructor comments are required
+src/main/java/org/epctagcoder/result/GIAI.java:14: Avoid excessively long variable names like individualAssetReference
+src/main/java/org/epctagcoder/result/GIAI.java:14: Parameter 'individualAssetReference' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/GIAI.java:21: Local variable 'json' could be declared final
+src/main/java/org/epctagcoder/result/GRAI.java:3: Avoid short class names like GRAI
+src/main/java/org/epctagcoder/result/GRAI.java:3: Header comments are required
+src/main/java/org/epctagcoder/result/GRAI.java:3: The class 'GRAI' is suspected to be a Data Class (WOC=0.000%, NOPA=0, NOAM=6, WMC=7)
+src/main/java/org/epctagcoder/result/GRAI.java:4: Field comments are required
+src/main/java/org/epctagcoder/result/GRAI.java:5: Field comments are required
+src/main/java/org/epctagcoder/result/GRAI.java:6: Field comments are required
+src/main/java/org/epctagcoder/result/GRAI.java:8: Avoid unnecessary constructors - the compiler will generate these for you
+src/main/java/org/epctagcoder/result/GRAI.java:8: Document empty constructor
+src/main/java/org/epctagcoder/result/GRAI.java:8: It is a good practice to call super() in a constructor
+src/main/java/org/epctagcoder/result/GRAI.java:8: Public method and constructor comments are required
+src/main/java/org/epctagcoder/result/GRAI.java:17: Parameter 'assetType' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/GRAI.java:25: Parameter 'serial' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/GRAI.java:33: Parameter 'checkDigit' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/GRAI.java:41: Local variable 'json' could be declared final
+src/main/java/org/epctagcoder/result/GSRN.java:3: Avoid short class names like GSRN
+src/main/java/org/epctagcoder/result/GSRN.java:3: Header comments are required
+src/main/java/org/epctagcoder/result/GSRN.java:3: The class 'GSRN' is suspected to be a Data Class (WOC=0.000%, NOPA=0, NOAM=4, WMC=5)
+src/main/java/org/epctagcoder/result/GSRN.java:4: Field comments are required
+src/main/java/org/epctagcoder/result/GSRN.java:5: Field comments are required
+src/main/java/org/epctagcoder/result/GSRN.java:7: Avoid unnecessary constructors - the compiler will generate these for you
+src/main/java/org/epctagcoder/result/GSRN.java:7: Document empty constructor
+src/main/java/org/epctagcoder/result/GSRN.java:7: It is a good practice to call super() in a constructor
+src/main/java/org/epctagcoder/result/GSRN.java:7: Public method and constructor comments are required
+src/main/java/org/epctagcoder/result/GSRN.java:16: Parameter 'serviceReference' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/GSRN.java:24: Parameter 'checkDigit' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/GSRN.java:31: Local variable 'json' could be declared final
+src/main/java/org/epctagcoder/result/GSRN.java:49: Comment is too large: Too many lines
+src/main/java/org/epctagcoder/result/GSRN.java:51: Comment is too large: Line too long
+src/main/java/org/epctagcoder/result/GSRN.java:59: Comment is too large: Line too long
+src/main/java/org/epctagcoder/result/GSRNP.java:3: Header comments are required
+src/main/java/org/epctagcoder/result/GSRNP.java:3: The class 'GSRNP' is suspected to be a Data Class (WOC=0.000%, NOPA=0, NOAM=4, WMC=5)
+src/main/java/org/epctagcoder/result/GSRNP.java:4: Field comments are required
+src/main/java/org/epctagcoder/result/GSRNP.java:5: Field comments are required
+src/main/java/org/epctagcoder/result/GSRNP.java:7: Avoid unnecessary constructors - the compiler will generate these for you
+src/main/java/org/epctagcoder/result/GSRNP.java:7: Document empty constructor
+src/main/java/org/epctagcoder/result/GSRNP.java:7: It is a good practice to call super() in a constructor
+src/main/java/org/epctagcoder/result/GSRNP.java:7: Public method and constructor comments are required
+src/main/java/org/epctagcoder/result/GSRNP.java:16: Parameter 'serviceReference' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/GSRNP.java:24: Parameter 'checkDigit' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/GSRNP.java:31: Local variable 'json' could be declared final
+src/main/java/org/epctagcoder/result/SGLN.java:3: Avoid short class names like SGLN
+src/main/java/org/epctagcoder/result/SGLN.java:3: Header comments are required
+src/main/java/org/epctagcoder/result/SGLN.java:3: The class 'SGLN' is suspected to be a Data Class (WOC=0.000%, NOPA=0, NOAM=6, WMC=7)
+src/main/java/org/epctagcoder/result/SGLN.java:4: Field comments are required
+src/main/java/org/epctagcoder/result/SGLN.java:5: Field comments are required
+src/main/java/org/epctagcoder/result/SGLN.java:6: Field comments are required
+src/main/java/org/epctagcoder/result/SGLN.java:10: Avoid unnecessary constructors - the compiler will generate these for you
+src/main/java/org/epctagcoder/result/SGLN.java:10: Document empty constructor
+src/main/java/org/epctagcoder/result/SGLN.java:10: It is a good practice to call super() in a constructor
+src/main/java/org/epctagcoder/result/SGLN.java:10: Public method and constructor comments are required
+src/main/java/org/epctagcoder/result/SGLN.java:19: Local variable 'json' could be declared final
+src/main/java/org/epctagcoder/result/SGLN.java:50: Parameter 'locationReference' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/SGLN.java:64: Parameter 'extension' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/SGLN.java:78: Parameter 'checkDigit' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/SGTIN.java:3: Header comments are required
+src/main/java/org/epctagcoder/result/SGTIN.java:3: The class 'SGTIN' is suspected to be a Data Class (WOC=0.000%, NOPA=0, NOAM=8, WMC=9)
+src/main/java/org/epctagcoder/result/SGTIN.java:4: Field comments are required
+src/main/java/org/epctagcoder/result/SGTIN.java:5: Field comments are required
+src/main/java/org/epctagcoder/result/SGTIN.java:6: Field comments are required
+src/main/java/org/epctagcoder/result/SGTIN.java:7: Field comments are required
+src/main/java/org/epctagcoder/result/SGTIN.java:9: Avoid unnecessary constructors - the compiler will generate these for you
+src/main/java/org/epctagcoder/result/SGTIN.java:9: Document empty constructor
+src/main/java/org/epctagcoder/result/SGTIN.java:9: It is a good practice to call super() in a constructor
+src/main/java/org/epctagcoder/result/SGTIN.java:9: Public method and constructor comments are required
+src/main/java/org/epctagcoder/result/SGTIN.java:17: Parameter 'extensionDigit' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/SGTIN.java:25: Parameter 'itemReference' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/SGTIN.java:33: Parameter 'serial' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/SGTIN.java:41: Parameter 'checkDigit' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/SGTIN.java:49: Local variable 'json' could be declared final
+src/main/java/org/epctagcoder/result/SSCC.java:3: Avoid short class names like SSCC
+src/main/java/org/epctagcoder/result/SSCC.java:3: Header comments are required
+src/main/java/org/epctagcoder/result/SSCC.java:3: The class 'SSCC' is suspected to be a Data Class (WOC=0.000%, NOPA=0, NOAM=6, WMC=7)
+src/main/java/org/epctagcoder/result/SSCC.java:4: Field comments are required
+src/main/java/org/epctagcoder/result/SSCC.java:5: Field comments are required
+src/main/java/org/epctagcoder/result/SSCC.java:6: Field comments are required
+src/main/java/org/epctagcoder/result/SSCC.java:8: Avoid unnecessary constructors - the compiler will generate these for you
+src/main/java/org/epctagcoder/result/SSCC.java:8: Document empty constructor
+src/main/java/org/epctagcoder/result/SSCC.java:8: It is a good practice to call super() in a constructor
+src/main/java/org/epctagcoder/result/SSCC.java:8: Public method and constructor comments are required
+src/main/java/org/epctagcoder/result/SSCC.java:16: Parameter 'extensionDigit' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/SSCC.java:24: Parameter 'serial' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/SSCC.java:32: Parameter 'checkDigit' is not assigned and could be declared final
+src/main/java/org/epctagcoder/result/SSCC.java:40: Local variable 'json' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:10: All methods are static. Consider using a utility class instead. Alternatively, you could add a private constructor or make the class abstract to silence this warning.
+src/main/java/org/epctagcoder/util/Converter.java:10: Header comments are required
+src/main/java/org/epctagcoder/util/Converter.java:10: This class has too many methods, consider refactoring it.
+src/main/java/org/epctagcoder/util/Converter.java:11: Field comments are required
+src/main/java/org/epctagcoder/util/Converter.java:11: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/util/Converter.java:11: To avoid mistakes add a comment at the beginning of the hexToBinMap field if you want a default access modifier
+src/main/java/org/epctagcoder/util/Converter.java:11: Use explicit scoping instead of the default package private level
+src/main/java/org/epctagcoder/util/Converter.java:11: Variables that are final and static should be all capitals, 'hexToBinMap' is not all capitals.
+src/main/java/org/epctagcoder/util/Converter.java:12: Field comments are required
+src/main/java/org/epctagcoder/util/Converter.java:12: If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation
+src/main/java/org/epctagcoder/util/Converter.java:12: To avoid mistakes add a comment at the beginning of the binToHexMap field if you want a default access modifier
+src/main/java/org/epctagcoder/util/Converter.java:12: Use explicit scoping instead of the default package private level
+src/main/java/org/epctagcoder/util/Converter.java:12: Variables that are final and static should be all capitals, 'binToHexMap' is not all capitals.
+src/main/java/org/epctagcoder/util/Converter.java:51: Avoid reassigning parameters such as 'hex'
+src/main/java/org/epctagcoder/util/Converter.java:51: Public method and constructor comments are required
+src/main/java/org/epctagcoder/util/Converter.java:52: Local variable 'len' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:53: Local variable 'bin' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:55: When doing a String.toLowerCase()/toUpperCase() call, use a Locale
+src/main/java/org/epctagcoder/util/Converter.java:65: Parameter 'bin' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:65: Public method and constructor comments are required
+src/main/java/org/epctagcoder/util/Converter.java:67: Local variable 'len' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:68: Found 'DU'-anomaly for variable 'startIndex' (lines '68'-'78').
+src/main/java/org/epctagcoder/util/Converter.java:70: Local variable 'hex' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:73: Found 'DU'-anomaly for variable 'startIndex' (lines '73'-'78').
+src/main/java/org/epctagcoder/util/Converter.java:81: Avoid variables with short names like s
+src/main/java/org/epctagcoder/util/Converter.java:81: Parameter 's' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:81: Public method and constructor comments are required
+src/main/java/org/epctagcoder/util/Converter.java:82: Local variable 'bin' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:85: Avoid variables with short names like k
+src/main/java/org/epctagcoder/util/Converter.java:85: Local variable 'k' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:93: Parameter 'bits' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:93: Parameter 'dec' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:93: Public method and constructor comments are required
+src/main/java/org/epctagcoder/util/Converter.java:96: Parameter 'bits' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:96: Parameter 'dec' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:96: Public method and constructor comments are required
+src/main/java/org/epctagcoder/util/Converter.java:97: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/util/Converter.java:97: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/util/Converter.java:97: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/util/Converter.java:97: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/util/Converter.java:102: Parameter 'bin' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:102: Public method and constructor comments are required
+src/main/java/org/epctagcoder/util/Converter.java:108: Parameter 'bin' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:108: Public method and constructor comments are required
+src/main/java/org/epctagcoder/util/Converter.java:109: Local variable 'len' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:110: Found 'DU'-anomaly for variable 'rev' (lines '110'-'121').
+src/main/java/org/epctagcoder/util/Converter.java:111: Avoid variables with short names like d
+src/main/java/org/epctagcoder/util/Converter.java:111: Dont create instances of already existing BigInteger and BigDecimal (ZERO, ONE, TEN)
+src/main/java/org/epctagcoder/util/Converter.java:111: Found 'DD'-anomaly for variable 'd' (lines '111'-'116').
+src/main/java/org/epctagcoder/util/Converter.java:113: Local variable 'dec' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:115: Local variable 'pos' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:116: Avoid instantiating new objects inside loops
+src/main/java/org/epctagcoder/util/Converter.java:116: Avoid instantiating new objects inside loops
+src/main/java/org/epctagcoder/util/Converter.java:117: Found 'DU'-anomaly for variable 'rev' (lines '117'-'121').
+src/main/java/org/epctagcoder/util/Converter.java:126: Comment is too large: Line too long
+src/main/java/org/epctagcoder/util/Converter.java:127: Avoid variables with short names like s
+src/main/java/org/epctagcoder/util/Converter.java:127: Found 'UR'-anomaly for variable 'a' (lines '127'-'133').
+src/main/java/org/epctagcoder/util/Converter.java:127: Parameter 'fromBit' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:127: Parameter 's' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:127: Parameter 'toBit' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:127: Public method and constructor comments are required
+src/main/java/org/epctagcoder/util/Converter.java:128: Local variable 'bin' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:129: Local variable 'regex' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:131: Local variable 'split' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:132: Local variable 'a' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:142: Parameter 'size' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:142: Parameter 'text' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:142: Public method and constructor comments are required
+src/main/java/org/epctagcoder/util/Converter.java:143: Local variable 'builder' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:153: Comment is too large: Line too long
+src/main/java/org/epctagcoder/util/Converter.java:154: Method names should not start with capital letters
+src/main/java/org/epctagcoder/util/Converter.java:154: Parameter 'bits' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:154: Parameter 'str' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:154: Public method and constructor comments are required
+src/main/java/org/epctagcoder/util/Converter.java:154: The method 'StringtoBinary(String, int)' has a NCSS line count of 22.
+src/main/java/org/epctagcoder/util/Converter.java:158: Local variable 'messChar' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:160: This for loop can be replaced by a foreach loop
+src/main/java/org/epctagcoder/util/Converter.java:161: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/util/Converter.java:162: Potential violation of Law of Demeter (object not created locally)
+src/main/java/org/epctagcoder/util/Converter.java:163: Avoid if (x != y) ..; else ..;
+src/main/java/org/epctagcoder/util/Converter.java:166: Prefer StringBuffer over += for concatenating strings
+src/main/java/org/epctagcoder/util/Converter.java:169: Prefer StringBuffer over += for concatenating strings
+src/main/java/org/epctagcoder/util/Converter.java:171: Prefer StringBuffer over += for concatenating strings
+src/main/java/org/epctagcoder/util/Converter.java:173: System.err.println is used
+src/main/java/org/epctagcoder/util/Converter.java:176: Prefer StringBuffer over += for concatenating strings
+src/main/java/org/epctagcoder/util/Converter.java:186: Avoid prefixing parameters by in, out or inOut. Uses Javadoc to document this behavior.
+src/main/java/org/epctagcoder/util/Converter.java:186: Avoid reassigning parameters such as 'in'
+src/main/java/org/epctagcoder/util/Converter.java:186: Avoid variables with short names like in
+src/main/java/org/epctagcoder/util/Converter.java:186: Parameter 'fill' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:186: Public method and constructor comments are required
+src/main/java/org/epctagcoder/util/Converter.java:186: The method 'lPadZero(int, int)' has a NCSS line count of 22.
+src/main/java/org/epctagcoder/util/Converter.java:188: Found 'DD'-anomaly for variable 'negative' (lines '188'-'194').
+src/main/java/org/epctagcoder/util/Converter.java:189: Found 'DD'-anomaly for variable 'len' (lines '189'-'197').
+src/main/java/org/epctagcoder/util/Converter.java:189: Found 'DD'-anomaly for variable 'len' (lines '189'-'201').
+src/main/java/org/epctagcoder/util/Converter.java:189: Found 'DD'-anomaly for variable 'len' (lines '189'-'203').
+src/main/java/org/epctagcoder/util/Converter.java:189: Found 'DD'-anomaly for variable 'value' (lines '189'-'192').
+src/main/java/org/epctagcoder/util/Converter.java:189: Found 'DD'-anomaly for variable 'value' (lines '189'-'195').
+src/main/java/org/epctagcoder/util/Converter.java:189: Use one line for each declaration, it enhances code readability.
+src/main/java/org/epctagcoder/util/Converter.java:197: Found 'DD'-anomaly for variable 'len' (lines '197'-'201').
+src/main/java/org/epctagcoder/util/Converter.java:197: Found 'DD'-anomaly for variable 'len' (lines '197'-'203').
+src/main/java/org/epctagcoder/util/Converter.java:208: Avoid variables with short names like sb
+src/main/java/org/epctagcoder/util/Converter.java:208: Local variable 'sb' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:226: Parameter 'len' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:226: Parameter 'str' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:226: Public method and constructor comments are required
+src/main/java/org/epctagcoder/util/Converter.java:228: Avoid variables with short names like sb
+src/main/java/org/epctagcoder/util/Converter.java:228: Local variable 'sb' could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:239: Parameter 'str' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:239: Public method and constructor comments are required
+src/main/java/org/epctagcoder/util/Converter.java:240: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/util/Converter.java:240: Potential violation of Law of Demeter (method chain calls)
+src/main/java/org/epctagcoder/util/Converter.java:244: Parameter 'size' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:244: Parameter 'text' is not assigned and could be declared final
+src/main/java/org/epctagcoder/util/Converter.java:244: Public method and constructor comments are required
+src/main/java/org/epctagcoder/util/Converter.java:245: Local variable 'ret' could be declared final
diff --git a/epctagcoder/src/main/java/org/epctagcoder/option/GIAI/GIAIFilterValue.java b/epctagcoder/src/main/java/org/epctagcoder/option/GIAI/GIAIFilterValue.java
new file mode 100644
index 0000000..eafe9b6
--- /dev/null
+++ b/epctagcoder/src/main/java/org/epctagcoder/option/GIAI/GIAIFilterValue.java
@@ -0,0 +1,38 @@
+package org.epctagcoder.option.GIAI;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+public enum GIAIFilterValue {
+ ALL_OTHERS_0(0),
+ RESERVED_1(1),
+ RESERVED_2(2),
+ RESERVED_3(3),
+ RESERVED_4(4),
+ RESERVED_5(5),
+ RESERVED_6(6),
+ RESERVED_7(7);
+
+ private int value;
+
+ private GIAIFilterValue(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ private static final Map BY_CODE_MAP = new LinkedHashMap<>();
+ static {
+ for (GIAIFilterValue rae : GIAIFilterValue.values()) {
+ BY_CODE_MAP.put(rae.value, rae);
+ }
+ }
+
+ public static GIAIFilterValue forCode(int code) {
+ return BY_CODE_MAP.get(code);
+ }
+
+
+}
diff --git a/epctagcoder/src/main/java/org/epctagcoder/option/GIAI/GIAIHeader.java b/epctagcoder/src/main/java/org/epctagcoder/option/GIAI/GIAIHeader.java
new file mode 100644
index 0000000..1ef9763
--- /dev/null
+++ b/epctagcoder/src/main/java/org/epctagcoder/option/GIAI/GIAIHeader.java
@@ -0,0 +1,42 @@
+package org.epctagcoder.option.GIAI;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+public enum GIAIHeader {
+ HEADER_00110100("00110100") {
+ public Integer getTagSize() {
+ return 96;
+ }
+ },
+ HEADER_00111000("00111000") {
+ public Integer getTagSize() {
+ return 202;
+ }
+ };
+
+ private String value;
+ public abstract Integer getTagSize();
+
+
+ private GIAIHeader(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ private static final Map BY_CODE_MAP = new LinkedHashMap<>();
+ static {
+ for (GIAIHeader rae : GIAIHeader.values()) {
+ BY_CODE_MAP.put(rae.value, rae);
+ }
+ }
+
+ public static GIAIHeader forCode(String code) {
+ return BY_CODE_MAP.get(code);
+ }
+
+
+}
diff --git a/epctagcoder/src/main/java/org/epctagcoder/option/GIAI/GIAITagSize.java b/epctagcoder/src/main/java/org/epctagcoder/option/GIAI/GIAITagSize.java
new file mode 100644
index 0000000..54c4a82
--- /dev/null
+++ b/epctagcoder/src/main/java/org/epctagcoder/option/GIAI/GIAITagSize.java
@@ -0,0 +1,55 @@
+package org.epctagcoder.option.GIAI;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+public enum GIAITagSize {
+ BITS_96(96) {
+ public Integer getHeader() {
+ return 52;
+ }
+ public Integer getSerialBitCount() {
+ return 38;
+ }
+ public Integer getSerialMaxLenght() {
+ return 13;
+ }
+ },
+ BITS_202(202) {
+ public Integer getHeader() {
+ return 56;
+ }
+ public Integer getSerialBitCount() {
+ return 112;
+ }
+ public Integer getSerialMaxLenght() {
+ return 20;
+ }
+ };
+
+ private int value;
+ public abstract Integer getHeader();
+ public abstract Integer getSerialBitCount();
+ public abstract Integer getSerialMaxLenght();
+
+ private GIAITagSize(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ private static final Map BY_CODE_MAP = new LinkedHashMap<>();
+ static {
+ for (GIAITagSize rae : GIAITagSize.values()) {
+ BY_CODE_MAP.put(rae.value, rae);
+ }
+ }
+
+ public static GIAITagSize forCode(int code) {
+ return BY_CODE_MAP.get(code);
+ }
+
+
+}
diff --git a/epctagcoder/src/main/java/org/epctagcoder/option/GIAI/partitionTable/GIAIPartitionTableList.java b/epctagcoder/src/main/java/org/epctagcoder/option/GIAI/partitionTable/GIAIPartitionTableList.java
new file mode 100644
index 0000000..24e8afa
--- /dev/null
+++ b/epctagcoder/src/main/java/org/epctagcoder/option/GIAI/partitionTable/GIAIPartitionTableList.java
@@ -0,0 +1,61 @@
+package org.epctagcoder.option.GIAI.partitionTable;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.epctagcoder.option.TableItem;
+import org.epctagcoder.option.GIAI.GIAITagSize;
+
+
+public class GIAIPartitionTableList {
+ static final private List list = new ArrayList();
+
+
+ public GIAIPartitionTableList(GIAITagSize tagSize) {
+ if ( tagSize.getValue()==96 ) {
+ list.clear();
+ list.add( new TableItem(0, 40, 12, 42, 13) );
+ list.add( new TableItem(1, 37, 11, 45, 14) );
+ list.add( new TableItem(2, 34, 10, 48, 15) );
+ list.add( new TableItem(3, 30, 9, 52, 16) );
+ list.add( new TableItem(4, 27, 8, 55, 17) );
+ list.add( new TableItem(5, 24, 7, 58, 18) );
+ list.add( new TableItem(6, 20, 6, 62, 19) );
+ } else if ( tagSize.getValue()==202 ) {
+ list.clear();
+ list.add( new TableItem(0, 40, 12, 148, 18) );
+ list.add( new TableItem(1, 37, 11, 151, 19) );
+ list.add( new TableItem(2, 34, 10, 154, 20) );
+ list.add( new TableItem(3, 30, 9, 158, 21) );
+ list.add( new TableItem(4, 27, 8, 161, 22) );
+ list.add( new TableItem(5, 24, 7, 164, 23) );
+ list.add( new TableItem(6, 20, 6, 168, 24) );
+ }
+
+
+ }
+
+ public TableItem getPartitionByL(Integer index) {
+ TableItem tableItem = null;
+ for (TableItem item : list) {
+ if (item.getL()==index) {
+ tableItem = item;
+ break;
+ }
+ }
+ return tableItem;
+ }
+
+ public TableItem getPartitionByValue(Integer index) {
+ TableItem tableItem = null;
+ for (TableItem item : list) {
+ if (item.getPartitionValue()==index) {
+ tableItem = item;
+ break;
+ }
+ }
+ return tableItem;
+ }
+
+
+}
diff --git a/epctagcoder/src/main/java/org/epctagcoder/option/GRAI/GRAIFilterValue.java b/epctagcoder/src/main/java/org/epctagcoder/option/GRAI/GRAIFilterValue.java
new file mode 100755
index 0000000..cb145c0
--- /dev/null
+++ b/epctagcoder/src/main/java/org/epctagcoder/option/GRAI/GRAIFilterValue.java
@@ -0,0 +1,38 @@
+package org.epctagcoder.option.GRAI;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+public enum GRAIFilterValue {
+ ALL_OTHERS_0(0),
+ RESERVED_1(1),
+ RESERVED_2(2),
+ RESERVED_3(3),
+ RESERVED_4(4),
+ RESERVED_5(5),
+ RESERVED_6(6),
+ RESERVED_7(7);
+
+ private int value;
+
+ private GRAIFilterValue(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ private static final Map BY_CODE_MAP = new LinkedHashMap<>();
+ static {
+ for (GRAIFilterValue rae : GRAIFilterValue.values()) {
+ BY_CODE_MAP.put(rae.value, rae);
+ }
+ }
+
+ public static GRAIFilterValue forCode(int code) {
+ return BY_CODE_MAP.get(code);
+ }
+
+
+}
diff --git a/epctagcoder/src/main/java/org/epctagcoder/option/GRAI/GRAIHeader.java b/epctagcoder/src/main/java/org/epctagcoder/option/GRAI/GRAIHeader.java
new file mode 100755
index 0000000..8e01903
--- /dev/null
+++ b/epctagcoder/src/main/java/org/epctagcoder/option/GRAI/GRAIHeader.java
@@ -0,0 +1,49 @@
+package org.epctagcoder.option.GRAI;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+
+public enum GRAIHeader {
+ HEADER_00110011("00110011") {
+ public Integer getTagSize() {
+ return 96;
+ }
+ },
+ HEADER_00110111("00110111") {
+ public Integer getTagSize() {
+ return 170;
+ }
+ };
+
+ private String value;
+ public abstract Integer getTagSize();
+
+
+ private GRAIHeader(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ private static final Map BY_CODE_MAP = new LinkedHashMap<>();
+ static {
+ for (GRAIHeader rae : GRAIHeader.values()) {
+ BY_CODE_MAP.put(rae.value, rae);
+ }
+ }
+
+ public static GRAIHeader forCode(String code) {
+ GRAIHeader header = BY_CODE_MAP.get(code);
+
+ if (header==null) {
+ throw new IllegalArgumentException(String.format("GRAI header [%s] is invalid. Allowed only 00110011 or 00110111", code));
+ }
+
+ return header;
+ }
+
+
+}
diff --git a/epctagcoder/src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java b/epctagcoder/src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java
new file mode 100755
index 0000000..9ca346c
--- /dev/null
+++ b/epctagcoder/src/main/java/org/epctagcoder/option/GRAI/GRAITagSize.java
@@ -0,0 +1,62 @@
+package org.epctagcoder.option.GRAI;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+public enum GRAITagSize {
+ BITS_96(96) {
+ public Integer getHeader() {
+ return 51;
+ }
+ public Integer getSerialBitCount() {
+ return 38;
+ }
+ public Integer getSerialMaxLenght() {
+ return 13;
+ }
+ public Long getSerialMaxValue() {
+ return 274_877_906_943L;
+ }
+ },
+ BITS_170(170) {
+ public Integer getHeader() {
+ return 55;
+ }
+ public Integer getSerialBitCount() {
+ return 112;
+ }
+ public Integer getSerialMaxLenght() {
+ return 16;
+ }
+ public Long getSerialMaxValue() {
+ return null; // not used
+ }
+ };
+
+ private int value;
+ public abstract Integer getHeader();
+ public abstract Integer getSerialBitCount();
+ public abstract Integer getSerialMaxLenght();
+ public abstract Long getSerialMaxValue();
+
+ private GRAITagSize(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ private static final Map BY_CODE_MAP = new LinkedHashMap<>();
+ static {
+ for (GRAITagSize rae : GRAITagSize.values()) {
+ BY_CODE_MAP.put(rae.value, rae);
+ }
+ }
+
+ public static GRAITagSize forCode(int code) {
+ return BY_CODE_MAP.get(code);
+ }
+
+
+}
diff --git a/epctagcoder/src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java b/epctagcoder/src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java
new file mode 100755
index 0000000..1c3d089
--- /dev/null
+++ b/epctagcoder/src/main/java/org/epctagcoder/option/GRAI/partitionTable/GRAIPartitionTableList.java
@@ -0,0 +1,50 @@
+package org.epctagcoder.option.GRAI.partitionTable;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.epctagcoder.option.TableItem;
+
+
+public class GRAIPartitionTableList {
+ static final private List list = new ArrayList();
+
+ static {
+ list.add( new TableItem(0, 40, 12, 4, 0) );
+ list.add( new TableItem(1, 37, 11, 7, 1) );
+ list.add( new TableItem(2, 34, 10, 10, 2) );
+ list.add( new TableItem(3, 30, 9, 14, 3) );
+ list.add( new TableItem(4, 27, 8, 17, 4) );
+ list.add( new TableItem(5, 24, 7, 20, 5) );
+ list.add( new TableItem(6, 20, 6, 24, 6) );
+ }
+
+ public GRAIPartitionTableList() {
+
+ }
+
+
+ public TableItem getPartitionByL(Integer index) {
+ TableItem tableItem = null;
+ for (TableItem item : list) {
+ if (item.getL()==index) {
+ tableItem = item;
+ break;
+ }
+ }
+ return tableItem;
+ }
+
+ public TableItem getPartitionByValue(Integer index) {
+ TableItem tableItem = null;
+ for (TableItem item : list) {
+ if (item.getPartitionValue()==index) {
+ tableItem = item;
+ break;
+ }
+ }
+ return tableItem;
+ }
+
+
+}
diff --git a/epctagcoder/src/main/java/org/epctagcoder/parse/GIAI/ParseGIAI.java b/epctagcoder/src/main/java/org/epctagcoder/parse/GIAI/ParseGIAI.java
new file mode 100644
index 0000000..c87e79f
--- /dev/null
+++ b/epctagcoder/src/main/java/org/epctagcoder/parse/GIAI/ParseGIAI.java
@@ -0,0 +1,294 @@
+package org.epctagcoder.parse.GIAI;
+
+import java.util.Optional;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+
+import org.epctagcoder.option.PrefixLength;
+import org.epctagcoder.option.TableItem;
+import org.epctagcoder.option.GIAI.GIAIFilterValue;
+import org.epctagcoder.option.GIAI.GIAIHeader;
+import org.epctagcoder.option.GIAI.GIAITagSize;
+import org.epctagcoder.option.GIAI.partitionTable.GIAIPartitionTableList;
+import org.epctagcoder.result.GIAI;
+import org.epctagcoder.util.Converter;
+
+
+public class ParseGIAI {
+ private GIAI giai = new GIAI();
+ private String companyPrefix;
+ private PrefixLength prefixLength;
+ private GIAITagSize tagSize;
+ private GIAIFilterValue filterValue;
+ private String individualAssetReference;
+ private String rfidTag;
+ private String epcTagURI;
+ private String epcPureIdentityURI;
+ private TableItem tableItem;
+ private int remainder;
+
+ public static ChoiceStep Builder() {
+ return new Steps();
+ }
+
+ private ParseGIAI(Steps steps) {
+ this.companyPrefix = steps.companyPrefix;
+ this.tagSize = steps.tagSize;
+ this.filterValue = steps.filterValue;
+ this.individualAssetReference = steps.individualAssetReference;
+ this.rfidTag = steps.rfidTag;
+ this.epcTagURI = steps.epcTagURI;
+ this.epcPureIdentityURI = steps.epcPureIdentityURI;
+ parse();
+ }
+
+
+
+ private void parse() {
+ Optional optionalCompanyPrefix = Optional.ofNullable(companyPrefix);
+ Optional optionalRfidTag = Optional.ofNullable(rfidTag);
+ Optional optionalEpcTagURI = Optional.ofNullable(epcTagURI);
+ Optional optionalEpcPureIdentityURI = Optional.ofNullable(epcPureIdentityURI);
+
+ if ( optionalRfidTag.isPresent() ) {
+ String inputBin = Converter.hexToBin(rfidTag);
+ String headerBin = inputBin.substring(0, 8);
+ String filterBin = inputBin.substring(8,11);
+ String partitionBin = inputBin.substring(11,14);
+
+ tagSize = GIAITagSize.forCode(GIAIHeader.forCode(headerBin).getTagSize());
+
+ GIAIPartitionTableList GIAIPartitionTableList = new GIAIPartitionTableList(tagSize);
+
+ tagSize = GIAITagSize.forCode(GIAIHeader.forCode(headerBin).getTagSize());
+ tableItem = GIAIPartitionTableList.getPartitionByValue( Integer.parseInt(partitionBin, 2) );
+
+ String filterDec = Long.toString( Long.parseLong(filterBin, 2) );
+ String companyPrefixBin = inputBin.substring(14,14+tableItem.getM());
+ String individualAssetReferenceBin = inputBin.substring(14+tableItem.getM(),14+tableItem.getM()+tableItem.getN());
+ String companyPrefixDec = Converter.binToDec(companyPrefixBin);
+
+ if (tagSize.getSerialBitCount()==112) {
+ individualAssetReferenceBin = Converter.convertBinToBit(individualAssetReferenceBin, 7, 8);
+ individualAssetReference = Converter.binToString(individualAssetReferenceBin);
+ } else if (tagSize.getSerialBitCount()==38) {
+ individualAssetReference = Converter.binToDec(individualAssetReferenceBin);
+ }
+
+ companyPrefix = Converter.strZero(companyPrefixDec, tableItem.getL());
+ filterValue = GIAIFilterValue.forCode( Integer.parseInt(filterDec) );
+ prefixLength = PrefixLength.forCode(tableItem.getL());
+
+ } else {
+
+ if ( optionalCompanyPrefix.isPresent() ) {
+ GIAIPartitionTableList giaiPartitionTableList = new GIAIPartitionTableList(tagSize);
+ prefixLength = PrefixLength.forCode( companyPrefix.length() );
+
+ validateCompanyPrefix();
+
+ tableItem = giaiPartitionTableList.getPartitionByL( prefixLength.getValue() );
+
+ validateIndividualAssetReference();
+ } else {
+
+ if ( optionalEpcTagURI.isPresent() ) {
+ Pattern pattern = Pattern.compile("(urn:epc:tag:giai-)(96|202)\\:([0-7])\\.(\\d+)\\.(\\w+)");
+ Matcher matcher = pattern.matcher(epcTagURI);
+
+ if ( matcher.matches() ) {
+ tagSize = GIAITagSize.forCode( Integer.parseInt(matcher.group(2)) );
+ filterValue = GIAIFilterValue.forCode( Integer.parseInt(matcher.group(3)) );
+ companyPrefix = matcher.group(4);
+ prefixLength = PrefixLength.forCode( matcher.group(4).length() );
+ individualAssetReference = matcher.group(5);
+ } else {
+ throw new IllegalArgumentException("EPC Tag URI is invalid");
+ }
+
+ } else if ( optionalEpcPureIdentityURI.isPresent() ) {
+ Pattern pattern = Pattern.compile("(urn:epc:id:giai)\\:(\\d+)\\.(\\w+)");
+
+ Matcher matcher = pattern.matcher(epcPureIdentityURI);
+
+ if ( matcher.matches() ) {
+ companyPrefix = matcher.group(2);
+ prefixLength = PrefixLength.forCode( matcher.group(2).length() );
+ individualAssetReference = matcher.group(3);;
+ } else {
+ throw new IllegalArgumentException("EPC Pure Identity is invalid");
+ }
+ }
+
+ }
+
+ GIAIPartitionTableList giaiPartitionTableList = new GIAIPartitionTableList(tagSize);
+ tableItem = giaiPartitionTableList.getPartitionByL( prefixLength.getValue() );
+
+ }
+
+ String outputBin = getBinary();
+ String outputHex = Converter.binToHex( outputBin );
+
+ giai.setEpcScheme("giai");
+ giai.setApplicationIdentifier("AI 8004");
+ giai.setTagSize(Integer.toString(tagSize.getValue()));
+ giai.setFilterValue(Integer.toString(filterValue.getValue()));
+ giai.setPartitionValue(Integer.toString(tableItem.getPartitionValue()));
+ giai.setPrefixLength(Integer.toString(prefixLength.getValue()));
+ giai.setCompanyPrefix(companyPrefix);
+ giai.setIndividualAssetReference(individualAssetReference);
+ giai.setEpcPureIdentityURI(String.format("urn:epc:id:giai:%s.%s", companyPrefix, individualAssetReference));
+ giai.setEpcTagURI(String.format("urn:epc:tag:giai-%s:%s.%s.%s", tagSize.getValue(), filterValue.getValue(), companyPrefix, individualAssetReference));
+ giai.setEpcRawURI(String.format("urn:epc:raw:%s.x%s", tagSize.getValue()+remainder, outputHex ));
+ giai.setBinary(outputBin);
+ giai.setRfidTag(outputHex);
+ }
+
+
+ private String getBinary() {
+ StringBuilder bin = new StringBuilder();
+
+ remainder = (int) (Math.ceil((tagSize.getValue()/16.0))*16)-tagSize.getValue();
+
+ bin.append( Converter.decToBin(tagSize.getHeader(), 8) );
+ bin.append( Converter.decToBin(filterValue.getValue(), 3) );
+ bin.append( Converter.decToBin(tableItem.getPartitionValue(), 3) );
+ bin.append( Converter.decToBin(Integer.parseInt(companyPrefix), tableItem.getM()) );
+
+ if (tagSize.getValue()==202) {
+ bin.append( Converter.fill(Converter.StringtoBinary(individualAssetReference, 7), tableItem.getN()+remainder) );
+ } else if (tagSize.getValue()==96) {
+ bin.append( Converter.decToBin(individualAssetReference, tableItem.getN()+remainder ) );
+ }
+
+ return bin.toString();
+ }
+
+
+
+ public GIAI getGIAI() {
+ return giai;
+ }
+
+ public String getRfidTag() {
+ return Converter.binToHex( getBinary() );
+ }
+
+
+ private void validateCompanyPrefix() {
+ Optional optionalPefixLenght = Optional.ofNullable(prefixLength);
+ if ( !optionalPefixLenght.isPresent() ) {
+ throw new IllegalArgumentException("Company Prefix is invalid. Length not found in the partition table");
+ }
+
+ }
+
+
+ private void validateIndividualAssetReference() {
+ if ( individualAssetReference.length() >tableItem.getDigits() ) {
+ throw new IllegalArgumentException( String.format("Individual Asset Reference value is out of range. The length should be %d",
+ tableItem.getDigits() ));
+ }
+
+ if (tagSize.getValue()==96 ) {
+ if ( individualAssetReference.startsWith("0") ) {
+ throw new IllegalArgumentException("Individual Asset Reference with leading zeros is not allowed");
+ }
+ }
+ }
+
+
+
+
+ public static interface ChoiceStep {
+ IndividualAssetReferenceStep withCompanyPrefix(String companyPrefix);
+ BuildStep withRFIDTag(String rfidTag);
+ BuildStep withEPCTagURI(String epcTagURI);
+ TagSizeStep withEPCPureIdentityURI(String epcPureIdentityURI);
+ }
+
+
+ public static interface IndividualAssetReferenceStep {
+ TagSizeStep withIndividualAssetReference(String individualAssetReference);
+ }
+
+
+ public static interface TagSizeStep {
+ FilterValueStep withTagSize( GIAITagSize tagSize );
+ }
+
+ public static interface FilterValueStep {
+ BuildStep withFilterValue( GIAIFilterValue filterValue );
+ }
+
+ public static interface BuildStep {
+ ParseGIAI build();
+ }
+
+
+ private static class Steps implements ChoiceStep, IndividualAssetReferenceStep, TagSizeStep, FilterValueStep, BuildStep {
+ private String companyPrefix;
+ private GIAITagSize tagSize;
+ private GIAIFilterValue filterValue;
+ private String individualAssetReference;
+ private String rfidTag;
+ private String epcTagURI;
+ private String epcPureIdentityURI;
+
+ @Override
+ public ParseGIAI build() {
+ return new ParseGIAI(this);
+ }
+
+ @Override
+ public BuildStep withFilterValue(GIAIFilterValue filterValue) {
+ this.filterValue = filterValue;
+ return this;
+ }
+
+ @Override
+ public FilterValueStep withTagSize(GIAITagSize tagSize) {
+ this.tagSize = tagSize;
+ return this;
+ }
+
+
+ @Override
+ public BuildStep withRFIDTag(String rfidTag) {
+ this.rfidTag = rfidTag;
+ return this;
+ }
+
+ @Override
+ public BuildStep withEPCTagURI(String epcTagURI) {
+ this.epcTagURI = epcTagURI;
+ return this;
+ }
+
+ @Override
+ public TagSizeStep withEPCPureIdentityURI(String epcPureIdentityURI) {
+ this.epcPureIdentityURI = epcPureIdentityURI;
+ return this;
+ }
+
+
+ @Override
+ public IndividualAssetReferenceStep withCompanyPrefix(String companyPrefix) {
+ this.companyPrefix = companyPrefix;
+ return this;
+ }
+
+ @Override
+ public TagSizeStep withIndividualAssetReference(String individualAssetReference) {
+ this.individualAssetReference = individualAssetReference;
+ return this;
+ }
+
+
+ }
+
+}
+
+
diff --git a/epctagcoder/src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java b/epctagcoder/src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java
new file mode 100755
index 0000000..c559d66
--- /dev/null
+++ b/epctagcoder/src/main/java/org/epctagcoder/parse/GRAI/ParseGRAI.java
@@ -0,0 +1,340 @@
+package org.epctagcoder.parse.GRAI;
+
+import java.util.Optional;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.epctagcoder.option.PrefixLength;
+import org.epctagcoder.option.TableItem;
+import org.epctagcoder.option.GRAI.GRAIFilterValue;
+import org.epctagcoder.option.GRAI.GRAIHeader;
+import org.epctagcoder.option.GRAI.GRAITagSize;
+import org.epctagcoder.option.GRAI.partitionTable.GRAIPartitionTableList;
+import org.epctagcoder.result.GRAI;
+import org.epctagcoder.util.Converter;
+
+
+public class ParseGRAI {
+ private GRAI grai = new GRAI();
+ private String companyPrefix;
+ private PrefixLength prefixLength;
+ private GRAITagSize tagSize;
+ private GRAIFilterValue filterValue;
+ private String assetType;
+ private String serial;
+ private String rfidTag;
+ private String epcTagURI;
+ private String epcPureIdentityURI;
+ private TableItem tableItem;
+ private int remainder;
+
+ public static ChoiceStep Builder() throws Exception {
+ return new Steps();
+ }
+
+ private ParseGRAI(Steps steps) {
+ this.companyPrefix = steps.companyPrefix;
+ this.tagSize = steps.tagSize;
+ this.filterValue = steps.filterValue;
+ this.assetType = steps.assetType;
+ this.serial = steps.serial;
+ this.rfidTag = steps.rfidTag;
+ this.epcTagURI = steps.epcTagURI;
+ this.epcPureIdentityURI = steps.epcPureIdentityURI;
+ parse();
+ }
+
+
+
+ private void parse() {
+ Optional optionalCompanyPrefix = Optional.ofNullable(companyPrefix);
+ Optional optionalRfidTag = Optional.ofNullable(rfidTag);
+ Optional optionalEpcTagURI = Optional.ofNullable(epcTagURI);
+ Optional optionalEpcPureIdentityURI = Optional.ofNullable(epcPureIdentityURI);
+
+ if ( optionalRfidTag.isPresent() ) {
+ String inputBin = Converter.hexToBin(rfidTag);
+ String headerBin = inputBin.substring(0, 8);
+ String filterBin = inputBin.substring(8,11);
+ String partitionBin = inputBin.substring(11,14);
+ GRAIPartitionTableList graiPartitionTableList = new GRAIPartitionTableList();
+
+ tagSize = GRAITagSize.forCode(GRAIHeader.forCode(headerBin).getTagSize());
+ tableItem = graiPartitionTableList.getPartitionByValue( Integer.parseInt(partitionBin, 2) );
+
+ String filterDec = Long.toString( Long.parseLong(filterBin, 2) );
+ String companyPrefixBin = inputBin.substring(14,14+tableItem.getM());
+ String assetTypeBin = inputBin.substring(14+tableItem.getM(),14+tableItem.getM()+tableItem.getN());
+ String serialBin = inputBin.substring(14+tableItem.getM()+tableItem.getN() );
+
+ String companyPrefixDec = Converter.binToDec(companyPrefixBin);
+ String assetTypeDec = Converter.binToDec(assetTypeBin);
+
+ assetType = Converter.strZero(assetTypeDec, tableItem.getDigits() ) ;
+
+ if (tagSize.getSerialBitCount()==112) {
+ serialBin = Converter.convertBinToBit(serialBin, 7, 8);
+ serial = Converter.binToString(serialBin);
+ } else if (tagSize.getSerialBitCount()==38) {
+ serial = Converter.binToDec(serialBin);
+ }
+
+ companyPrefix = Converter.strZero(companyPrefixDec, tableItem.getL()); // strzero aqui
+ filterValue = GRAIFilterValue.forCode( Integer.parseInt(filterDec) );
+ prefixLength = PrefixLength.forCode(tableItem.getL());
+
+ } else {
+
+ if ( optionalCompanyPrefix.isPresent() ) {
+ GRAIPartitionTableList sgtinPartitionTableList = new GRAIPartitionTableList();
+ prefixLength = PrefixLength.forCode( companyPrefix.length() );
+
+ validateCompanyPrefix();
+
+ tableItem = sgtinPartitionTableList.getPartitionByL( prefixLength.getValue() );
+
+ validateAssetType();
+ validateSerial();
+
+ } else {
+
+ if ( optionalEpcTagURI.isPresent() ) {
+ Pattern pattern = Pattern.compile("(urn:epc:tag:grai-)(96|170)\\:([0-7])\\.(\\d+)\\.(\\d+)\\.(\\w+)");
+ Matcher matcher = pattern.matcher(epcTagURI);
+
+ if ( matcher.matches() ) {
+ tagSize = GRAITagSize.forCode( Integer.parseInt(matcher.group(2)) );
+ filterValue = GRAIFilterValue.forCode( Integer.parseInt(matcher.group(3)) );
+ companyPrefix = matcher.group(4);
+ prefixLength = PrefixLength.forCode( matcher.group(4).length() );
+ assetType = matcher.group(5);
+ serial = matcher.group(6);
+ } else {
+ throw new IllegalArgumentException("EPC Tag URI is invalid");
+ }
+
+ } else if ( optionalEpcPureIdentityURI.isPresent() ) {
+ Pattern pattern = Pattern.compile("(urn:epc:id:grai)\\:(\\d+)\\.(\\d+)\\.(\\w+)");
+ Matcher matcher = pattern.matcher(epcPureIdentityURI);
+
+ if ( matcher.matches() ) {
+ companyPrefix = matcher.group(2);
+ prefixLength = PrefixLength.forCode( matcher.group(2).length() );
+ assetType = matcher.group(3);;
+ serial = matcher.group(4);
+ } else {
+ throw new IllegalArgumentException("EPC Pure Identity is invalid");
+ }
+ }
+
+ }
+
+ GRAIPartitionTableList sgtinPartitionTableList = new GRAIPartitionTableList();
+ tableItem = sgtinPartitionTableList.getPartitionByL( prefixLength.getValue() );
+
+ }
+
+ String outputBin = getBinary();
+ String outputHex = Converter.binToHex( outputBin );
+
+ grai.setEpcScheme("grai");
+ grai.setApplicationIdentifier("AI 8003");
+ grai.setTagSize(Integer.toString(tagSize.getValue()));
+ grai.setFilterValue(Integer.toString(filterValue.getValue()));
+ grai.setPartitionValue(Integer.toString(tableItem.getPartitionValue()));
+ grai.setPrefixLength(Integer.toString(prefixLength.getValue()));
+ grai.setCompanyPrefix(companyPrefix);
+ grai.setAssetType(assetType);
+ grai.setSerial(serial);
+ grai.setCheckDigit(Integer.toString(getCheckDigit()));
+ grai.setEpcPureIdentityURI(String.format("urn:epc:id:grai:%s.%s.%s", companyPrefix, assetType, serial));
+ grai.setEpcTagURI(String.format("urn:epc:tag:grai-%s:%s.%s.%s.%s", tagSize.getValue(), filterValue.getValue(), companyPrefix, assetType, serial));
+ grai.setEpcRawURI(String.format("urn:epc:raw:%s.x%s", tagSize.getValue()+remainder, outputHex ));
+ grai.setBinary(outputBin);
+ grai.setRfidTag(outputHex);
+ }
+
+
+ private String getBinary() {
+ StringBuilder bin = new StringBuilder();
+
+ remainder = (int) (Math.ceil((tagSize.getValue()/16.0))*16)-tagSize.getValue();
+
+ bin.append( Converter.decToBin(tagSize.getHeader(), 8) );
+ bin.append( Converter.decToBin(filterValue.getValue(), 3) );
+ bin.append( Converter.decToBin(tableItem.getPartitionValue(), 3) );
+ bin.append( Converter.decToBin(Integer.parseInt(companyPrefix), tableItem.getM()) );
+ bin.append( Converter.decToBin(Integer.parseInt(assetType), tableItem.getN()) );
+
+ if (tagSize.getValue()==170) {
+ bin.append( Converter.fill(Converter.StringtoBinary(serial, 7), tagSize.getSerialBitCount()+remainder) );
+ } else if (tagSize.getValue()==96) {
+ bin.append( Converter.decToBin(serial, tagSize.getSerialBitCount()+remainder ) );
+ }
+
+ return bin.toString();
+ }
+
+
+
+ private Integer getCheckDigit() {
+ String value = new StringBuilder()
+ .append(companyPrefix)
+ .append(assetType)
+ .toString();
+
+ Integer d13 = (10 - ((3
+ * (Character.getNumericValue(value.charAt(1)) + Character.getNumericValue(value.charAt(3))
+ + Character.getNumericValue(value.charAt(5))
+ + Character.getNumericValue(value.charAt(7)) + Character.getNumericValue(value.charAt(9))
+ + Character.getNumericValue(value.charAt(11)) )
+ + (Character.getNumericValue(value.charAt(0)) + Character.getNumericValue(value.charAt(2))
+ + Character.getNumericValue(value.charAt(4)) + Character.getNumericValue(value.charAt(6))
+ + Character.getNumericValue(value.charAt(8)) + Character.getNumericValue(value.charAt(10))))
+ % 10)) % 10;
+
+ return d13;
+ }
+
+
+ public GRAI getGRAI() {
+ return grai;
+ }
+
+ public String getRfidTag() {
+ return Converter.binToHex( getBinary() );
+ }
+
+
+
+ private void validateCompanyPrefix() {
+ Optional optionalPefixLenght = Optional.ofNullable(prefixLength);
+ if ( !optionalPefixLenght.isPresent() ) {
+ throw new IllegalArgumentException("Company Prefix is invalid. Length not found in the partition table");
+ }
+ }
+
+ private void validateAssetType() {
+ if ( assetType.length()!=tableItem.getDigits() ) {
+ throw new IllegalArgumentException(String.format("Asset Type \"%s\" has %d length and should have %d length",
+ assetType, assetType.length(), tableItem.getDigits()));
+ }
+ }
+
+ private void validateSerial() {
+ if (tagSize.getValue()==170 ) {
+ if ( serial.length()>tagSize.getSerialMaxLenght() ) {
+ throw new IllegalArgumentException( String.format("Serial value is out of range. Should be up to %d alphanumeric characters",
+ tagSize.getSerialMaxLenght() ));
+ }
+ } else if (tagSize.getValue()==96 ) {
+ if ( Long.parseLong(serial) >tagSize.getSerialMaxValue() ) {
+ throw new IllegalArgumentException( String.format("Serial value is out of range. Should be less than or equal %d",
+ tagSize.getSerialMaxValue() ));
+ }
+ if ( serial.startsWith("0") ) {
+ throw new IllegalArgumentException("Serial with leading zeros is not allowed");
+ }
+ }
+
+ }
+
+
+
+ public static interface ChoiceStep {
+ assetTypeStep withCompanyPrefix(String companyPrefix);
+ BuildStep withRFIDTag(String rfidTag);
+ BuildStep withEPCTagURI(String epcTagURI);
+ TagSizeStep withEPCPureIdentityURI(String epcPureIdentityURI);
+ }
+
+
+ public static interface assetTypeStep {
+ serialStep withAssetType(String assetType);
+ }
+
+ public static interface serialStep {
+ TagSizeStep withserial(String serial);
+ }
+
+ public static interface TagSizeStep {
+ FilterValueStep withTagSize( GRAITagSize tagSize );
+ }
+
+ public static interface FilterValueStep {
+ BuildStep withFilterValue( GRAIFilterValue filterValue );
+ }
+
+ public static interface BuildStep {
+ ParseGRAI build();
+ }
+
+
+ private static class Steps implements ChoiceStep, assetTypeStep, serialStep, TagSizeStep, FilterValueStep, BuildStep {
+ private String companyPrefix;
+ private GRAITagSize tagSize;
+ private GRAIFilterValue filterValue;
+ private String assetType;
+ private String serial;
+ private String rfidTag;
+ private String epcTagURI;
+ private String epcPureIdentityURI;
+
+ @Override
+ public ParseGRAI build() {
+ return new ParseGRAI(this);
+ }
+
+ @Override
+ public BuildStep withFilterValue(GRAIFilterValue filterValue) {
+ this.filterValue = filterValue;
+ return this;
+ }
+
+ @Override
+ public FilterValueStep withTagSize(GRAITagSize tagSize) {
+ this.tagSize = tagSize;
+ return this;
+ }
+
+ @Override
+ public TagSizeStep withserial(String serial) {
+ this.serial = serial;
+ return this;
+ }
+
+ @Override
+ public serialStep withAssetType(String assetType) {
+ this.assetType = assetType;
+ return this;
+ }
+
+ @Override
+ public assetTypeStep withCompanyPrefix(String companyPrefix) {
+ this.companyPrefix = companyPrefix;
+ return this;
+ }
+
+ @Override
+ public BuildStep withRFIDTag(String rfidTag) {
+ this.rfidTag = rfidTag;
+ return this;
+ }
+
+ @Override
+ public BuildStep withEPCTagURI(String epcTagURI) {
+ this.epcTagURI = epcTagURI;
+ return this;
+ }
+
+ @Override
+ public TagSizeStep withEPCPureIdentityURI(String epcPureIdentityURI) {
+ this.epcPureIdentityURI = epcPureIdentityURI;
+ return this;
+ }
+
+ }
+
+}
+
+