First ,thanks to this post http://blog.caplin.com/2011/01/06/simple-currency-conversion-using-google-calculator-and-java/ .
I was looking for any API, webservice for retrieving live currency fluctuation, finally i came to this solution that integrates Google Calculator with Java to calculate currenct currency rates and i have integrated this with my Oracle ADF Application
I have created an application using bounded taskflow -
As 1 USD searched in UK-
See in code i have passed currency notation from page (INR,USD ) to bean and passed it in url of google calculator and this url returns results
Download Complete Application -Sample ADF Application
I was looking for any API, webservice for retrieving live currency fluctuation, finally i came to this solution that integrates Google Calculator with Java to calculate currenct currency rates and i have integrated this with my Oracle ADF Application
I have created an application using bounded taskflow -
- Created a .jsff page with two input text , to get value of Base and Term currency and a button, on which rate is calculated
- In order to use Goolge Calculator, we have to use GSON (open source java library (API) to convert JSON objects in POJO (pure java object))
- To access GSON library we have to add google-gson-stream-2.2.1.jar in our project library - Download Gson Jar
- this trick uses google calculator for calculating converion rate, as we all know Google Calculator is very smart, whenever we search like 1 USD ,it always shows results according to locale
As 1 USD searched in UK-
- this is also hidden benefit for our application , we can pass locale to get changed values also- now see what is the code that get values from Google Calculator
public void calculateFluctuationButton(ActionEvent actionEvent) throws Exception {
String google = "http://www.google.com/ig/calculator?en=hi&q=";
/**Get values from page component binding*/
String baseCurrency = baseCurrencyBind.getValue().toString();
String termCurrency = termCurrencyBind.getValue().toString();
String charset = "UTF-8";
/**Replace url using your values-*/
URL url = new URL(google + baseCurrency + "%3D%3F" + termCurrency);
/**Go to url directly to see you result*/
System.out.println(url);
Reader reader = new InputStreamReader(url.openStream(), charset);
Result result = new Gson().fromJson(reader, Result.class);
System.out.println(result);
// Get the value without the term currency.
String amount = result.getRhs().split("\\s+")[0];
System.out.println(amount);
resultBind.setValue(amount);
}