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..c1d7a0c --- /dev/null +++ b/src/main/java/com/silverpop/api/client/command/GetListMetaDataCommand.java @@ -0,0 +1,42 @@ +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.result.GetListMetaDataResult; +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/elements/Column.java b/src/main/java/com/silverpop/api/client/command/elements/Column.java index 71057ff..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 @@ -14,9 +14,9 @@ public class Column { private String value; public Column() { - + } - + public Column(String name, String value) { this.name = name; this.value = value; 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; + } + } +}