Skip to content

Commit 5a7309b

Browse files
author
James Robert Somers
committed
Add warnings and deprecate ackWarningsList and warningsList
1 parent 2e0a3ed commit 5a7309b

File tree

6 files changed

+299
-9
lines changed

6 files changed

+299
-9
lines changed

tradeit-android-sdk/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ dependencies {
5252
compile fileTree(dir: 'libs', include: ['*.jar'])
5353
compile 'com.android.support:multidex:1.0.1'
5454
compile 'com.android.support:appcompat-v7:23.4.0'
55-
compile 'it.trade:tradeit-java-api:1.1.10'
55+
compile 'it.trade:tradeit-java-api:1.1.11'
5656
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
5757
// Because RxAndroid releases are few and far between, it is recommended you also
5858
// explicitly depend on RxJava's latest version for bug fixes and new features.

tradeit-android-sdk/src/androidTest/java/it/trade/android/sdk/model/TradeItPreviewStockOrEtfOrderResponseParcelableTest.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
import java.util.Arrays;
1212
import java.util.List;
1313

14+
import it.trade.model.reponse.Warning;
15+
import it.trade.model.reponse.WarningLink;
16+
1417
import static org.hamcrest.Matchers.is;
1518
import static org.junit.Assert.assertThat;
1619

@@ -26,13 +29,25 @@ public void createTradeItPreviewStockOrEtfOrder() {
2629

2730
@Test
2831
public void tradeItPreviewStockOrEtfOrder_ParcelableWriteRead() {
32+
WarningLink link = new WarningLink();
33+
link.label = "Label";
34+
link.url = "URL";
35+
36+
Warning warning = new Warning();
37+
warning.message = "Warning";
38+
warning.requiresAcknowledgement = true;
39+
warning.links = Arrays.asList(link);
40+
41+
TradeItWarningParcelable warningParcelable = new TradeItWarningParcelable(warning);
42+
2943
// Set up the Parcelable object to send and receive.
3044
previewOrderResponse.orderId = "MyOrderId";
3145
previewOrderResponse.ackWarningsList = Arrays.asList("MyAckWarning");
3246
previewOrderResponse.warningsList = Arrays.asList("MyWarningList");
3347
previewOrderResponse.orderDetails = new TradeItOrderDetailsParcelable();
3448
previewOrderResponse.orderDetails.orderSymbol = "GE";
3549
previewOrderResponse.orderDetails.orderCommissionLabel = "MyOrderCommissionLabel";
50+
previewOrderResponse.orderDetails.warnings = Arrays.asList(warningParcelable);
3651
// Write the data.
3752
Parcel parcel = Parcel.obtain();
3853
previewOrderResponse.writeToParcel(parcel, previewOrderResponse.describeContents());
@@ -45,13 +60,16 @@ public void tradeItPreviewStockOrEtfOrder_ParcelableWriteRead() {
4560
TradeItOrderDetailsParcelable orderDetailsParcelable = createdFromParcel.getOrderDetails();
4661
List<String> ackWarningsList = createdFromParcel.ackWarningsList;
4762
List<String> warningsList = createdFromParcel.warningsList;
63+
List<TradeItWarningParcelable> warnings = createdFromParcel.orderDetails.warnings;
64+
4865
String orderId = createdFromParcel.orderId;
4966

5067
// Verify that the received data is correct.
5168
assertThat(orderId, is(previewOrderResponse.orderId));
5269
assertThat(ackWarningsList, is(previewOrderResponse.ackWarningsList));
5370
assertThat(warningsList, is(previewOrderResponse.warningsList));
54-
assertThat(orderDetailsParcelable.orderSymbol, is(previewOrderResponse.orderDetails.orderSymbol));
55-
assertThat(orderDetailsParcelable.orderCommissionLabel, is(previewOrderResponse.orderDetails.orderCommissionLabel));
71+
assertThat(orderDetailsParcelable.orderSymbol, is(previewOrderResponse.orderDetails.getOrderSymbol()));
72+
assertThat(orderDetailsParcelable.orderCommissionLabel, is(previewOrderResponse.orderDetails.getOrderCommissionLabel()));
73+
assertThat(warnings, is(previewOrderResponse.orderDetails.getWarnings()));
5674
}
5775
}

tradeit-android-sdk/src/main/java/it/trade/android/sdk/model/TradeItOrderDetailsParcelable.java

Lines changed: 121 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,36 @@
33
import android.os.Parcel;
44
import android.os.Parcelable;
55

6+
import java.util.ArrayList;
7+
import java.util.List;
8+
69
import it.trade.model.reponse.OrderDetails;
10+
import it.trade.model.reponse.Warning;
11+
12+
public class TradeItOrderDetailsParcelable implements Parcelable {
13+
protected String orderSymbol;
14+
protected String orderAction;
15+
protected Double orderQuantity;
16+
protected String orderExpiration;
17+
protected String orderPrice;
18+
protected String orderValueLabel;
19+
protected String orderCommissionLabel;
20+
protected String orderMessage;
21+
protected String lastPrice;
22+
protected String bidPrice;
23+
protected String askPrice;
24+
protected String timestamp;
25+
protected Double buyingPower;
26+
protected Double availableCash;
27+
protected Double estimatedOrderCommission;
28+
protected Double longHoldings;
29+
protected Double shortHoldings;
30+
protected Double estimatedOrderValue;
31+
protected Double estimatedTotalValue;
32+
protected List<TradeItWarningParcelable> warnings = new ArrayList<>();
733

8-
public class TradeItOrderDetailsParcelable extends OrderDetails implements Parcelable {
34+
TradeItOrderDetailsParcelable() {
35+
}
936

1037
TradeItOrderDetailsParcelable(OrderDetails orderDetails) {
1138
this.askPrice = orderDetails.askPrice;
@@ -27,6 +54,17 @@ public class TradeItOrderDetailsParcelable extends OrderDetails implements Parce
2754
this.timestamp = orderDetails.timestamp;
2855
this.longHoldings = orderDetails.longHoldings;
2956
this.shortHoldings = orderDetails.shortHoldings;
57+
this.warnings = mapWarnings(orderDetails.warnings);
58+
}
59+
60+
private static List<TradeItWarningParcelable> mapWarnings(List<Warning> warnings) {
61+
List<TradeItWarningParcelable> mappedValues = new ArrayList<>();
62+
if (warnings != null) {
63+
for (Warning warning: warnings) {
64+
mappedValues.add(new TradeItWarningParcelable(warning));
65+
}
66+
}
67+
return mappedValues;
3068
}
3169

3270
@Override
@@ -55,9 +93,7 @@ public void writeToParcel(Parcel dest, int flags) {
5593
dest.writeValue(this.shortHoldings);
5694
dest.writeValue(this.estimatedOrderValue);
5795
dest.writeValue(this.estimatedTotalValue);
58-
}
59-
60-
public TradeItOrderDetailsParcelable() {
96+
dest.writeTypedList(this.warnings);
6197
}
6298

6399
protected TradeItOrderDetailsParcelable(Parcel in) {
@@ -80,6 +116,7 @@ protected TradeItOrderDetailsParcelable(Parcel in) {
80116
this.shortHoldings = (Double) in.readValue(Double.class.getClassLoader());
81117
this.estimatedOrderValue = (Double) in.readValue(Double.class.getClassLoader());
82118
this.estimatedTotalValue = (Double) in.readValue(Double.class.getClassLoader());
119+
this.warnings = in.createTypedArrayList(TradeItWarningParcelable.CREATOR);
83120
}
84121

85122
public static final Parcelable.Creator<TradeItOrderDetailsParcelable> CREATOR = new Parcelable.Creator<TradeItOrderDetailsParcelable>() {
@@ -93,4 +130,84 @@ public TradeItOrderDetailsParcelable[] newArray(int size) {
93130
return new TradeItOrderDetailsParcelable[size];
94131
}
95132
};
133+
134+
public String getOrderSymbol() {
135+
return orderSymbol;
136+
}
137+
138+
public String getOrderAction() {
139+
return orderAction;
140+
}
141+
142+
public Double getOrderQuantity() {
143+
return orderQuantity;
144+
}
145+
146+
public String getOrderExpiration() {
147+
return orderExpiration;
148+
}
149+
150+
public String getOrderPrice() {
151+
return orderPrice;
152+
}
153+
154+
public String getOrderValueLabel() {
155+
return orderValueLabel;
156+
}
157+
158+
public String getOrderCommissionLabel() {
159+
return orderCommissionLabel;
160+
}
161+
162+
public String getOrderMessage() {
163+
return orderMessage;
164+
}
165+
166+
public String getLastPrice() {
167+
return lastPrice;
168+
}
169+
170+
public String getBidPrice() {
171+
return bidPrice;
172+
}
173+
174+
public String getAskPrice() {
175+
return askPrice;
176+
}
177+
178+
public String getTimestamp() {
179+
return timestamp;
180+
}
181+
182+
public Double getBuyingPower() {
183+
return buyingPower;
184+
}
185+
186+
public Double getAvailableCash() {
187+
return availableCash;
188+
}
189+
190+
public Double getEstimatedOrderCommission() {
191+
return estimatedOrderCommission;
192+
}
193+
194+
public Double getLongHoldings() {
195+
return longHoldings;
196+
}
197+
198+
public Double getShortHoldings() {
199+
return shortHoldings;
200+
}
201+
202+
public Double getEstimatedOrderValue() {
203+
return estimatedOrderValue;
204+
}
205+
206+
public Double getEstimatedTotalValue() {
207+
return estimatedTotalValue;
208+
}
209+
210+
public List<TradeItWarningParcelable> getWarnings() {
211+
return warnings;
212+
}
96213
}

tradeit-android-sdk/src/main/java/it/trade/android/sdk/model/TradeItPreviewStockOrEtfOrderResponseParcelable.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
import android.os.Parcel;
44
import android.os.Parcelable;
55

6+
import java.util.ArrayList;
67
import java.util.List;
78

89
import it.trade.model.reponse.OrderDetails;
910
import it.trade.model.reponse.TradeItPreviewStockOrEtfOrderResponse;
11+
import it.trade.model.reponse.Warning;
1012

1113
public class TradeItPreviewStockOrEtfOrderResponseParcelable implements Parcelable {
1214

@@ -26,8 +28,6 @@ public class TradeItPreviewStockOrEtfOrderResponseParcelable implements Parcelab
2628
public String toString() {
2729
return "TradeItPreviewStockOrEtfOrderResponseParcelable{" +
2830
"orderId='" + orderId + '\'' +
29-
", ackWarningsList=" + ackWarningsList +
30-
", warningsList=" + warningsList +
3131
", orderDetails=" + orderDetails +
3232
'}';
3333
}
@@ -36,10 +36,20 @@ public String getOrderId() {
3636
return orderId;
3737
}
3838

39+
/**
40+
*
41+
* @deprecated Use orderDetails.warnings
42+
*/
43+
@Deprecated
3944
public List<String> getAckWarningsList() {
4045
return ackWarningsList;
4146
}
4247

48+
/**
49+
*
50+
* @deprecated Use orderDetails.warnings
51+
*/
52+
@Deprecated
4353
public List<String> getWarningsList() {
4454
return warningsList;
4555
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package it.trade.android.sdk.model;
2+
3+
import android.os.Parcel;
4+
import android.os.Parcelable;
5+
6+
import it.trade.model.reponse.WarningLink;
7+
8+
public class TradeItWarningLinkParcelable implements Parcelable {
9+
protected String label;
10+
protected String url;
11+
12+
TradeItWarningLinkParcelable(WarningLink link) {
13+
this.label = link.label;
14+
this.url = link.url;
15+
}
16+
17+
@Override
18+
public boolean equals(Object o) {
19+
if (this == o) return true;
20+
if (o == null || getClass() != o.getClass()) return false;
21+
22+
TradeItWarningLinkParcelable that = (TradeItWarningLinkParcelable) o;
23+
24+
if (label != null ? !label.equals(that.label) : that.label != null) return false;
25+
return url != null ? url.equals(that.url) : that.url == null;
26+
}
27+
28+
@Override
29+
public int hashCode() {
30+
int result = label != null ? label.hashCode() : 0;
31+
result = 31 * result + (url != null ? url.hashCode() : 0);
32+
return result;
33+
}
34+
35+
@Override
36+
public int describeContents() {
37+
return 0;
38+
}
39+
40+
@Override
41+
public void writeToParcel(Parcel dest, int flags) {
42+
dest.writeString(this.label);
43+
dest.writeString(this.url);
44+
}
45+
46+
protected TradeItWarningLinkParcelable(Parcel in) {
47+
this.label = in.readString();
48+
this.url = in.readString();
49+
}
50+
51+
public static final Parcelable.Creator<TradeItWarningLinkParcelable> CREATOR = new Parcelable.Creator<TradeItWarningLinkParcelable>() {
52+
@Override
53+
public TradeItWarningLinkParcelable createFromParcel(Parcel source) {
54+
return new TradeItWarningLinkParcelable(source);
55+
}
56+
57+
@Override
58+
public TradeItWarningLinkParcelable[] newArray(int size) {
59+
return new TradeItWarningLinkParcelable[size];
60+
}
61+
};
62+
}

0 commit comments

Comments
 (0)