From ed2f1495ec0e26d5cb1f040ca7a8a79b339b3bd4 Mon Sep 17 00:00:00 2001 From: rkovarik Date: Mon, 7 Sep 2015 10:22:00 +0200 Subject: [PATCH 1/2] #21 Implement GetListMetaData, add type and defaultValue to Column --- .../command/GetListMetaDataCommand.java | 56 +++++++++++++++++++ .../client/command/GetListMetaDataResult.java | 50 +++++++++++++++++ .../api/client/command/elements/Column.java | 22 ++++++++ 3 files changed, 128 insertions(+) create mode 100644 src/main/java/com/silverpop/api/client/command/GetListMetaDataCommand.java create mode 100644 src/main/java/com/silverpop/api/client/command/GetListMetaDataResult.java diff --git a/src/main/java/com/silverpop/api/client/command/GetListMetaDataCommand.java b/src/main/java/com/silverpop/api/client/command/GetListMetaDataCommand.java new file mode 100644 index 0000000..c119afd --- /dev/null +++ b/src/main/java/com/silverpop/api/client/command/GetListMetaDataCommand.java @@ -0,0 +1,56 @@ +/** + * This file Copyright (c) 2015 Magnolia International + * Ltd. (http://www.magnolia-cms.com). All rights reserved. + * + * + * This program and the accompanying materials are made + * available under the terms of the Magnolia Network Agreement + * which accompanies this distribution, and is available at + * http://www.magnolia-cms.com/mna.html + * + * Any modifications to this file must keep this entire header + * intact. + * + */ +package com.silverpop.api.client.command; + +import java.util.Collection; + +import com.silverpop.api.client.ApiCommand; +import com.silverpop.api.client.XmlApiProperties; +import com.silverpop.api.client.command.elements.Column; +import com.thoughtworks.xstream.annotations.XStreamAlias; + +/** + * {@link com.silverpop.api.client.ApiCommand} to retrieve metadata of a Silverpop database. + */ +@XmlApiProperties("GetListMetaData") +public class GetListMetaDataCommand implements ApiCommand { + + @XStreamAlias("LIST_ID") + private Integer listId; + + @XStreamAlias("COLUMNS") + private Collection columns; + + @Override + public Class getResultType() { + return GetListMetaDataResult.class; + } + + public Integer getListId() { + return listId; + } + + public void setListId(Integer listId) { + this.listId = listId; + } + + public Collection getColumns() { + return columns; + } + + public void setColumns(Collection columns) { + this.columns = columns; + } +} diff --git a/src/main/java/com/silverpop/api/client/command/GetListMetaDataResult.java b/src/main/java/com/silverpop/api/client/command/GetListMetaDataResult.java new file mode 100644 index 0000000..368d492 --- /dev/null +++ b/src/main/java/com/silverpop/api/client/command/GetListMetaDataResult.java @@ -0,0 +1,50 @@ +/** + * This file Copyright (c) 2015 Magnolia International + * Ltd. (http://www.magnolia-cms.com). All rights reserved. + * + * + * This program and the accompanying materials are made + * available under the terms of the Magnolia Network Agreement + * which accompanies this distribution, and is available at + * http://www.magnolia-cms.com/mna.html + * + * Any modifications to this file must keep this entire header + * intact. + * + */ +package com.silverpop.api.client.command; + +import java.util.ArrayList; +import java.util.List; + +import com.silverpop.api.client.ApiResult; +import com.silverpop.api.client.command.elements.Column; +import com.thoughtworks.xstream.annotations.XStreamAlias; + +/** + * {@link com.silverpop.api.client.ApiResult} describing database fields. + */ +public class GetListMetaDataResult implements ApiResult { + + @XStreamAlias("COLUMNS") + private List columns = new ArrayList(); + + @XStreamAlias("ID") + private String id; + + public List getColumns() { + return columns; + } + + public void setColumns(List columns) { + this.columns = columns; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } +} diff --git a/src/main/java/com/silverpop/api/client/command/elements/Column.java b/src/main/java/com/silverpop/api/client/command/elements/Column.java index 71057ff..d7ed2d8 100644 --- a/src/main/java/com/silverpop/api/client/command/elements/Column.java +++ b/src/main/java/com/silverpop/api/client/command/elements/Column.java @@ -13,6 +13,12 @@ public class Column { @XStreamAlias("VALUE") private String value; + @XStreamAlias("DEFAULT_VALUE") + private String defaultValue; + + @XStreamAlias("TYPE") + private Integer type; + public Column() { } @@ -37,4 +43,20 @@ public String getValue() { public void setValue(String value) { this.value = value; } + + public String getDefaultValue() { + return defaultValue; + } + + public void setDefaultValue(String defaultValue) { + this.defaultValue = defaultValue; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } } From c893a00ba3efd6dcf7946ce93915617aa1403c2d Mon Sep 17 00:00:00 2001 From: rkovarik Date: Fri, 11 Sep 2015 10:18:51 +0200 Subject: [PATCH 2/2] - remove accidentallt commited copyrights - move result class to the correct package - add support for selection values for checkboxes and radio fields - remove new fields from Column element, use custom column instead --- .../command/GetListMetaDataCommand.java | 22 +--- .../client/command/GetListMetaDataResult.java | 50 -------- .../api/client/command/elements/Column.java | 26 +--- .../client/result/GetListMetaDataResult.java | 111 ++++++++++++++++++ 4 files changed, 117 insertions(+), 92 deletions(-) delete mode 100644 src/main/java/com/silverpop/api/client/command/GetListMetaDataResult.java create mode 100644 src/main/java/com/silverpop/api/client/result/GetListMetaDataResult.java diff --git a/src/main/java/com/silverpop/api/client/command/GetListMetaDataCommand.java b/src/main/java/com/silverpop/api/client/command/GetListMetaDataCommand.java index c119afd..c1d7a0c 100644 --- a/src/main/java/com/silverpop/api/client/command/GetListMetaDataCommand.java +++ b/src/main/java/com/silverpop/api/client/command/GetListMetaDataCommand.java @@ -1,24 +1,10 @@ -/** - * This file Copyright (c) 2015 Magnolia International - * Ltd. (http://www.magnolia-cms.com). All rights reserved. - * - * - * This program and the accompanying materials are made - * available under the terms of the Magnolia Network Agreement - * which accompanies this distribution, and is available at - * http://www.magnolia-cms.com/mna.html - * - * Any modifications to this file must keep this entire header - * intact. - * - */ package com.silverpop.api.client.command; import java.util.Collection; import com.silverpop.api.client.ApiCommand; import com.silverpop.api.client.XmlApiProperties; -import com.silverpop.api.client.command.elements.Column; +import com.silverpop.api.client.result.GetListMetaDataResult; import com.thoughtworks.xstream.annotations.XStreamAlias; /** @@ -31,7 +17,7 @@ public class GetListMetaDataCommand implements ApiCommand { private Integer listId; @XStreamAlias("COLUMNS") - private Collection columns; + private Collection columns; @Override public Class getResultType() { @@ -46,11 +32,11 @@ public void setListId(Integer listId) { this.listId = listId; } - public Collection getColumns() { + public Collection getColumns() { return columns; } - public void setColumns(Collection columns) { + public void setColumns(Collection columns) { this.columns = columns; } } diff --git a/src/main/java/com/silverpop/api/client/command/GetListMetaDataResult.java b/src/main/java/com/silverpop/api/client/command/GetListMetaDataResult.java deleted file mode 100644 index 368d492..0000000 --- a/src/main/java/com/silverpop/api/client/command/GetListMetaDataResult.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * This file Copyright (c) 2015 Magnolia International - * Ltd. (http://www.magnolia-cms.com). All rights reserved. - * - * - * This program and the accompanying materials are made - * available under the terms of the Magnolia Network Agreement - * which accompanies this distribution, and is available at - * http://www.magnolia-cms.com/mna.html - * - * Any modifications to this file must keep this entire header - * intact. - * - */ -package com.silverpop.api.client.command; - -import java.util.ArrayList; -import java.util.List; - -import com.silverpop.api.client.ApiResult; -import com.silverpop.api.client.command.elements.Column; -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * {@link com.silverpop.api.client.ApiResult} describing database fields. - */ -public class GetListMetaDataResult implements ApiResult { - - @XStreamAlias("COLUMNS") - private List columns = new ArrayList(); - - @XStreamAlias("ID") - private String id; - - public List getColumns() { - return columns; - } - - public void setColumns(List columns) { - this.columns = columns; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } -} diff --git a/src/main/java/com/silverpop/api/client/command/elements/Column.java b/src/main/java/com/silverpop/api/client/command/elements/Column.java index d7ed2d8..ced63fb 100644 --- a/src/main/java/com/silverpop/api/client/command/elements/Column.java +++ b/src/main/java/com/silverpop/api/client/command/elements/Column.java @@ -13,16 +13,10 @@ public class Column { @XStreamAlias("VALUE") private String value; - @XStreamAlias("DEFAULT_VALUE") - private String defaultValue; - - @XStreamAlias("TYPE") - private Integer type; - public Column() { - + } - + public Column(String name, String value) { this.name = name; this.value = value; @@ -43,20 +37,4 @@ public String getValue() { public void setValue(String value) { this.value = value; } - - public String getDefaultValue() { - return defaultValue; - } - - public void setDefaultValue(String defaultValue) { - this.defaultValue = defaultValue; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } } diff --git a/src/main/java/com/silverpop/api/client/result/GetListMetaDataResult.java b/src/main/java/com/silverpop/api/client/result/GetListMetaDataResult.java new file mode 100644 index 0000000..4f52052 --- /dev/null +++ b/src/main/java/com/silverpop/api/client/result/GetListMetaDataResult.java @@ -0,0 +1,111 @@ +package com.silverpop.api.client.result; + +import java.util.ArrayList; +import java.util.List; + +import com.silverpop.api.client.ApiResult; +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamImplicit; + +/** + * {@link com.silverpop.api.client.ApiResult} describing database fields. + */ +public class GetListMetaDataResult implements ApiResult { + + @XStreamAlias("COLUMNS") + private List columns = new ArrayList(); + + @XStreamAlias("ID") + private String id; + + public List getColumns() { + return columns; + } + + public void setColumns(List columns) { + this.columns = columns; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + /** + */ + @XStreamAlias("COLUMN") + public static class GetListMetaDataColumn { + + @XStreamAlias("NAME") + private String name; + + @XStreamAlias("DEFAULT_VALUE") + private String defaultValue; + + @XStreamAlias("TYPE") + private Integer type; + + @XStreamAlias("SELECTION_VALUES") + private GetListMetaDataColumnSelectionValues selectionValues; + + public GetListMetaDataColumn() { + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDefaultValue() { + return defaultValue; + } + + public void setDefaultValue(String defaultValue) { + this.defaultValue = defaultValue; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public GetListMetaDataColumnSelectionValues getSelectionValues() { + return selectionValues; + } + + public void setSelectionValues(GetListMetaDataColumnSelectionValues selectionValues) { + this.selectionValues = selectionValues; + } + } + + /** + */ + @XStreamAlias("SELECTION_VALUES") + public static class GetListMetaDataColumnSelectionValues { + + + @XStreamImplicit(itemFieldName="VALUE") + public List values; + + public String get(int index) { + return values.get(index); + } + + public List getValues() { + return values; + } + + public void setValues(List values) { + this.values = values; + } + } +}