import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
-import org.onap.cli.fw.conf.OnapCommandConstants;
import org.onap.cli.fw.error.OnapCommandOutputPrintingFailed;
import org.onap.cli.fw.output.OnapCommandPrintDirection;
+import com.google.gson.JsonParser;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
*/
public class OnapCommandPrint {
+
public static final int MAX_COLUMN_LENGTH = 50;
private OnapCommandPrintDirection direction;
* @return list
*/
public List<String> getColumn(String header) {
- if (this.data.get(header) == null) {
- this.data.put(header, new ArrayList<String>());
- }
- return this.data.get(header);
+ return this.data.computeIfAbsent(header, k -> new ArrayList<String>());
}
public boolean isPrintTitle() {
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 Object getJsonNodeOrString(String value) {
try {
- return (JSONObject) JSONValue.parse(value);
+ return JSONValue.parse(value);
} catch (Exception e) {
return value;
}
}
+ 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();
array.add(rowO);
}
try {
- return new ObjectMapper().readTree(array.toJSONString()).toString();
- } catch (IOException e) {
- // TODO Auto-generated catch block
+ return JsonParser.parseString(array.toJSONString()).toString();
+ } catch (Exception e) { // NOSONAR
return array.toJSONString();
}
}
}
-
+
public String printYaml() throws OnapCommandOutputPrintingFailed {
try {
return new YAMLMapper().writeValueAsString(new ObjectMapper().readTree(this.printJson()));
} catch (IOException e) {
throw new OnapCommandOutputPrintingFailed(e); // NOSONAR
}
+
}
}