Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / chrome / android / java / src / org / chromium / chrome / browser / autofill / AutofillDialogResult.java
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.chrome.browser.autofill;
6
7 import org.chromium.base.CalledByNative;
8 import org.chromium.base.JNINamespace;
9
10 /**
11  * Java-side result of a non-cancelled AutofillDialog invocation, and
12  * JNI glue for C++ AutofillDialogResult used by AutofillDialogControllerAndroid.
13  */
14 @JNINamespace("autofill")
15 public class AutofillDialogResult {
16     /**
17      * Information about the credit card in the dialog result.
18      */
19     public static class ResultCard {
20         private final int mExpirationMonth;
21         private final int mExpirationYear;
22         private final String mPan;
23         private final String mCvn;
24
25         /**
26          * Creates a ResultCard.
27          * @param expirationMonth Expiration month
28          * @param expirationYear Expiration year
29          * @param pan Credit card number
30          * @param cvn Credit card verification number
31          */
32         public ResultCard(int expirationMonth, int expirationYear, String pan, String cvn) {
33             mExpirationMonth = expirationMonth;
34             mExpirationYear = expirationYear;
35             mPan = pan;
36             mCvn = cvn;
37         }
38
39         /**
40          * @return Expiration month
41          */
42         @CalledByNative("ResultCard")
43         public int getExpirationMonth() {
44             return mExpirationMonth;
45         }
46
47         /**
48          * @return Expiration year
49          */
50         @CalledByNative("ResultCard")
51         public int getExpirationYear() {
52             return mExpirationYear;
53         }
54
55         /**
56          * @return Credit card number
57          */
58         @CalledByNative("ResultCard")
59         public String getPan() {
60             return mPan;
61         }
62
63         /**
64          * @return Credit card verification number
65          */
66         @CalledByNative("ResultCard")
67         public String getCvn() {
68             return mCvn;
69         }
70     }
71
72     /**
73      * Information about an address in the dialog result.
74      */
75     public static class ResultAddress {
76         private final String mName;
77         private final String mPhoneNumber;
78         private final String mStreetAddress;
79         private final String mLocality;
80         private final String mDependentLocality;
81         private final String mAdministrativeArea;
82         private final String mPostalCode;
83         private final String mSortingCode;
84         private final String mCountryCode;
85         private final String mLanguageCode;
86
87         /**
88          * Creates a ResultAddress.
89          * Any parameter can be empty or null.
90          * @param name Full name
91          * @param phoneNumber Phone number
92          * @param streetAddress Street address
93          * @param locality Locality / City
94          * @param dependentLocality Inner-city district / Suburb / Dependent locality
95          * @param administrativeArea Region / State
96          * @param postalCode Postal code
97          * @param sortingCode Sorting code
98          * @param countryCode Country code
99          * @param languageCode Language code
100          */
101         public ResultAddress(
102                 String name, String phoneNumber,
103                 String streetAddress,
104                 String locality, String dependentLocality,
105                 String administrativeArea, String postalCode, String sortingCode,
106                 String countryCode, String languageCode) {
107             mName = name;
108             mPhoneNumber = phoneNumber;
109             mStreetAddress = streetAddress;
110             mLocality = locality;
111             mDependentLocality = dependentLocality;
112             mAdministrativeArea = administrativeArea;
113             mPostalCode = postalCode;
114             mSortingCode = sortingCode;
115             mCountryCode = countryCode;
116             mLanguageCode = languageCode;
117         }
118
119         /**
120          * @return Full name
121          */
122         @CalledByNative("ResultAddress")
123         public String getName() {
124             return mName;
125         }
126
127         /**
128          * @return Phone number
129          */
130         @CalledByNative("ResultAddress")
131         public String getPhoneNumber() {
132             return mPhoneNumber;
133         }
134
135         /**
136          * @return Street address
137          */
138         @CalledByNative("ResultAddress")
139         public String getStreetAddress() {
140             return mStreetAddress;
141         }
142
143         /**
144          * @return Locality (city)
145          */
146         @CalledByNative("ResultAddress")
147         public String getLocality() {
148             return mLocality;
149         }
150
151         /**
152          * @return Dependent locality (inner-city district / suburb)
153          */
154         @CalledByNative("ResultAddress")
155         public String getDependentLocality() {
156             return mDependentLocality;
157         }
158
159         /**
160          * @return Administrative area (region / state)
161          */
162         @CalledByNative("ResultAddress")
163         public String getAdministrativeArea() {
164             return mAdministrativeArea;
165         }
166
167         /**
168          * @return Postal code
169          */
170         @CalledByNative("ResultAddress")
171         public String getPostalCode() {
172             return mPostalCode;
173         }
174
175         /**
176          * @return Sorting code
177          */
178         @CalledByNative("ResultAddress")
179         public String getSortingCode() {
180             return mSortingCode;
181         }
182
183         /**
184          * @return Country code
185          */
186         @CalledByNative("ResultAddress")
187         public String getCountryCode() {
188             return mCountryCode;
189         }
190
191         /**
192          * @return Language code
193          */
194         @CalledByNative("ResultAddress")
195         public String getLanguageCode() {
196             return mLanguageCode;
197         }
198     }
199
200     /**
201      * A response from the dialog.
202      */
203     public static class ResultWallet {
204         private final String mEmail;
205         private final String mGoogleTransactionId;
206         private final ResultCard mCard;
207         private final ResultAddress mBillingAddress;
208         private final ResultAddress mShippingAddress;
209
210         /**
211          * Creates a ResultWallet.
212          * Any fields could be empty or null.
213          * @param email Email address
214          * @param googleTransactionId Google transaction ID if any
215          * @param card Information about the credit card
216          * @param billingAddress Information about the billing address
217          * @param shippingAddress Information about the shipping address
218          */
219         public ResultWallet(
220                 String email, String googleTransactionId,
221                 ResultCard card, ResultAddress billingAddress, ResultAddress shippingAddress) {
222             mEmail = email;
223             mGoogleTransactionId = googleTransactionId;
224             mCard = card;
225             mBillingAddress = billingAddress;
226             mShippingAddress = shippingAddress;
227         }
228
229         /**
230          * @return Email address
231          */
232         @CalledByNative("ResultWallet")
233         public String getEmail() {
234             return mEmail;
235         }
236
237         /**
238          * @return Google transaction ID if any
239          */
240         @CalledByNative("ResultWallet")
241         public String getGoogleTransactionId() {
242             return mGoogleTransactionId;
243         }
244
245         /**
246          * @return Credit card information, or null
247          */
248         @CalledByNative("ResultWallet")
249         public ResultCard getCard() {
250             return mCard;
251         }
252
253         /**
254          * @return Billing address information, or null
255          */
256         @CalledByNative("ResultWallet")
257         public ResultAddress getBillingAddress() {
258             return mBillingAddress;
259         }
260
261         /**
262          * @return Shipping address information, or null
263          */
264         @CalledByNative("ResultWallet")
265         public ResultAddress getShippingAddress() {
266             return mShippingAddress;
267         }
268     }
269 }