return noOfRecords;
     }
-    /**
-     * Helps to print the result based on the type.
-     *
-     * @return string
-     * @throws OnapCommandOutputFormatNotsupported
-     *             excpetion
-     * @throws OnapCommandOutputPrintingFailed
-     *             exception
-     */
-    public String print() throws OnapCommandException {
-        if (this.getType().equals(OnapCommandResultType.TEXT)) {
-             return this.getOutput().toString();
-        }
 
+    public OnapCommandPrint createAndLoadPrint() {
         OnapCommandPrint print = new OnapCommandPrint();
         print.setPrintTitle(this.isIncludeTitle());
         print.setDirection(this.printDirection);
                 print.addColumn(val.getName(), val.getValues());
             }
         }
+        return print;
+    }
+
+    /**
+     * Helps to print the result based on the type.
+     *
+     * @return string
+     * @throws OnapCommandOutputFormatNotsupported
+     *             excpetion
+     * @throws OnapCommandOutputPrintingFailed
+     *             exception
+     */
+    public String print() throws OnapCommandException {
+        if (this.getType().equals(OnapCommandResultType.TEXT)) {
+             return this.getOutput().toString();
+        }
+
+        OnapCommandPrint print = createAndLoadPrint();
 
         if (this.getType().equals(OnapCommandResultType.JSON)) {
             return print.printJson();
 
         return max;
     }
 
+    public List<List<Object>>  addTitle(List<List<Object>> rows, boolean isNormalize){
+        if (this.isPrintTitle()) {
+            List<Object> list = new ArrayList<>();
+            for (String key : this.data.keySet()) {
+                if (isNormalize && key != null && key.length() > MAX_COLUMN_LENGTH) {
+                    list.add(splitIntoList(key, MAX_COLUMN_LENGTH));
+                } else {
+                    list.add(key);
+                }
+            }
+            rows.add(list);
+        }
+        return  rows;
+    }
+
     /**
      * Helps to form the rows from columns.
      *
         List<List<Object>> rows = new ArrayList<>();
 
         // add title
-        if (this.isPrintTitle()) {
-            List<Object> list = new ArrayList<>();
-            for (String key : this.data.keySet()) {
-                if (isNormalize && key != null && key.length() > MAX_COLUMN_LENGTH) {
-                    list.add(splitIntoList(key, MAX_COLUMN_LENGTH));
-                } else {
-                    list.add(key);
-                }
-            }
-            rows.add(list);
-        }
+        rows = addTitle(rows, isNormalize);
 
         // form row
         for (int i = 0; i < this.findMaxRows(); i++) {
         }
         // new line is converted to space char
         if (inp.contains("\n")) {
-            inp = inp.replaceAll("\n", "");
+            inp = inp.replace("\n", "");
         }
 
         StringTokenizer tok = new StringTokenizer(inp, " ");
         }
     }
 
+    public JSONObject printPortrait(List<List<Object>> rows){
+        JSONObject result = new JSONObject();
+        for (int i=1; i<rows.size(); i++) {
+            if (rows.get(i).get(1) != null)
+                result.put(rows.get(i).get(0).toString(), this.getJsonNodeOrString(rows.get(i).get(1).toString()));
+        }
+        return result;
+    }
+
     public String printJson() {
         List<List<Object>> rows = this.formRows(false);
 
         if (this.direction.equals(OnapCommandPrintDirection.PORTRAIT)) {
-            JSONObject result = new JSONObject();
-            for (int i=1; i<rows.size(); i++) {
-                if (rows.get(i).get(1) != null)
-                    result.put(rows.get(i).get(0).toString(), this.getJsonNodeOrString(rows.get(i).get(1).toString()));
-            }
+            JSONObject result = printPortrait(rows);
             return result.toJSONString();
         } else {
             JSONArray array = new JSONArray();