summaryrefslogtreecommitdiffstats
path: root/openstack-console/src/main/java/com/woorea/openstack/console/utils
diff options
context:
space:
mode:
authorChrisC <cc697w@intl.att.com>2017-01-31 13:57:24 +0100
committerChrisC <cc697w@intl.att.com>2017-01-31 14:55:11 +0100
commit2e984294ac28c6f2ede290c38164c5d536ccaf4a (patch)
tree5eba5a929b7a961c98749fa69e03cfea58e1a724 /openstack-console/src/main/java/com/woorea/openstack/console/utils
parent86c0f28c8ed469486b64d6422dc53e3a7bcc8adb (diff)
Initial OpenECOMP MSO OpenStack SDK lib commit
Change-Id: Ieaacb2b2c0dcc469669880e73f0cda9fa59a6c5a Signed-off-by: ChrisC <cc697w@intl.att.com>
Diffstat (limited to 'openstack-console/src/main/java/com/woorea/openstack/console/utils')
-rw-r--r--openstack-console/src/main/java/com/woorea/openstack/console/utils/Column.java65
-rw-r--r--openstack-console/src/main/java/com/woorea/openstack/console/utils/ConsoleUtils.java47
-rw-r--r--openstack-console/src/main/java/com/woorea/openstack/console/utils/Table.java81
-rw-r--r--openstack-console/src/main/java/com/woorea/openstack/console/utils/TableModel.java25
4 files changed, 218 insertions, 0 deletions
diff --git a/openstack-console/src/main/java/com/woorea/openstack/console/utils/Column.java b/openstack-console/src/main/java/com/woorea/openstack/console/utils/Column.java
new file mode 100644
index 0000000..08ffa19
--- /dev/null
+++ b/openstack-console/src/main/java/com/woorea/openstack/console/utils/Column.java
@@ -0,0 +1,65 @@
+package com.woorea.openstack.console.utils;
+
+public class Column {
+
+ public static final int ALIGN_LEFT = -1;
+ public static final int ALIGN_RIGHT = 1;
+
+ private String name;
+
+ private int size;
+
+ private int align;
+
+ public Column(String name, int size, int align) {
+ super();
+ this.name = name;
+ this.size = size;
+ this.align = align;
+ }
+
+ /**
+ * @return the name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @param name the name to set
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * @return the size
+ */
+ public int getSize() {
+ return size;
+ }
+
+ /**
+ * @param size the size to set
+ */
+ public void setSize(int size) {
+ this.size = size;
+ }
+
+ /**
+ * @return the align
+ */
+ public int getAlign() {
+ return align;
+ }
+
+ /**
+ * @param align the align to set
+ */
+ public void setAlign(int align) {
+ this.align = align;
+ }
+
+
+
+}
diff --git a/openstack-console/src/main/java/com/woorea/openstack/console/utils/ConsoleUtils.java b/openstack-console/src/main/java/com/woorea/openstack/console/utils/ConsoleUtils.java
new file mode 100644
index 0000000..8212db6
--- /dev/null
+++ b/openstack-console/src/main/java/com/woorea/openstack/console/utils/ConsoleUtils.java
@@ -0,0 +1,47 @@
+package com.woorea.openstack.console.utils;
+
+public class ConsoleUtils {
+
+ public static final String RED = "\u001B[31m";
+
+ public static final String GREEN = "\u001B[32m";
+
+ public static final String YELLOW = "\u001B[33m";
+
+ public static final String END = "\u001B[0m";
+
+ private StringBuilder sb = new StringBuilder();
+
+ public ConsoleUtils append(String text) {
+ sb.append(text);
+ return this;
+ }
+
+ public ConsoleUtils red(String text) {
+ sb.append(ConsoleUtils.RED).append(text).append(END);
+ return this;
+ }
+
+ public ConsoleUtils green(String text) {
+ sb.append(ConsoleUtils.GREEN).append(text).append(END);
+ return this;
+ }
+
+ public ConsoleUtils yellow(String text) {
+ sb.append(ConsoleUtils.YELLOW).append(text).append(END);
+ return this;
+ }
+
+ public static void log(String text) {
+ System.out.println(new ConsoleUtils().yellow("| ").append(text));
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#toString()
+ */
+ @Override
+ public String toString() {
+ return sb.toString();
+ }
+
+}
diff --git a/openstack-console/src/main/java/com/woorea/openstack/console/utils/Table.java b/openstack-console/src/main/java/com/woorea/openstack/console/utils/Table.java
new file mode 100644
index 0000000..b49ede5
--- /dev/null
+++ b/openstack-console/src/main/java/com/woorea/openstack/console/utils/Table.java
@@ -0,0 +1,81 @@
+package com.woorea.openstack.console.utils;
+
+
+public class Table {
+
+ private StringBuilder sb = new StringBuilder();
+
+ private TableModel<?> model;
+
+ public Table(TableModel<?> model) {
+ this.model = model;
+ }
+
+ public StringBuilder render() {
+ header();
+ for(String[] row : model.getRows()) {
+ int i = 0;
+ for(String column : row) {
+ Column columnModel = model.getHeaders()[i];
+ sb.append("| ");
+ if(column != null) {
+ if(Column.ALIGN_RIGHT == columnModel.getAlign()) {
+ for(int j = 0; j < columnModel.getSize() - column.length(); j++) {
+ sb.append(" ");
+ }
+ }
+ sb.append(column.length() <= columnModel.getSize() ? column : column.substring(0, columnModel.getSize()));
+ if(Column.ALIGN_LEFT == columnModel.getAlign()) {
+ for(int j = 0; j < columnModel.getSize() - column.length(); j++) {
+ sb.append(" ");
+ }
+ }
+ } else {
+ for(int k = 0; k < columnModel.getSize(); k++) {
+ sb.append(" ");
+ }
+ }
+ sb.append(" ");
+ i++;
+ }
+ sb.append("|\n");
+ }
+ for(Column c : model.getHeaders()) {
+ sb.append("+");
+ for(int i = 0; i < c.getSize() + 2; i++) {
+ sb.append("-");
+ }
+ }
+ sb.append("+\n");
+ return sb;
+ }
+
+ public void header() {
+ for(Column c : model.getHeaders()) {
+ sb.append("+");
+ for(int i = 0; i < c.getSize() + 2; i++) {
+ sb.append("-");
+ }
+ }
+ sb.append("+\n");
+
+ for(Column c : model.getHeaders()) {
+ sb.append("| ");
+ sb.append(c.getName());
+ for(int i = 0; i < c.getSize() - c.getName().length(); i++) {
+ sb.append(" ");
+ }
+ sb.append(" ");
+ }
+ sb.append("|\n");
+
+ for(Column c : model.getHeaders()) {
+ sb.append("+");
+ for(int i = 0; i < c.getSize() + 2; i++) {
+ sb.append("-");
+ }
+ }
+ sb.append("+\n");
+ }
+
+}
diff --git a/openstack-console/src/main/java/com/woorea/openstack/console/utils/TableModel.java b/openstack-console/src/main/java/com/woorea/openstack/console/utils/TableModel.java
new file mode 100644
index 0000000..f1ae84a
--- /dev/null
+++ b/openstack-console/src/main/java/com/woorea/openstack/console/utils/TableModel.java
@@ -0,0 +1,25 @@
+package com.woorea.openstack.console.utils;
+
+import java.util.List;
+
+public abstract class TableModel<T> {
+
+ protected List<T> data;
+
+ public TableModel(List<T> data) {
+ this.data = data;
+ }
+
+ public abstract Column[] getHeaders();
+
+ public final String[][] getRows() {
+ String[][] rows = new String[data.size()][];
+ for(int i = 0; i < data.size(); i++) {
+ rows[i] = getRow(data.get(i));
+ }
+ return rows;
+ }
+
+ public abstract String[] getRow(T data);
+
+}