/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
* Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
*
* This file is available and licensed under the following license:
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of Sun Microsystems nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package stockquote;
import java.lang.Exception;
import javafx.io.http.HttpRequest;
import stockquote.DataParser;
public class StockQuoteUtil {
public var httpRequestError: Boolean = false;
var QuoteData:String[];
var ShowFrameData: Boolean = false;
public function ShowQuoteData(symbol:String, showFrame:Boolean): Void{
ShowFrameData = showFrame;
getQuote(symbol);
}
function getQuote(symbol:String): Void {
var data:String;
var request: HttpRequest = HttpRequest {
location: "http:;
onException: function(exception: Exception) {
exception.printStackTrace();
httpRequestError = true;
}
onResponseCode: function(responseCode:Integer) {
if (responseCode != 200)
println("failed, response: {responseCode} {request.responseMessage}");
}
onInput: function(input: java.io.InputStream) {
try {
httpRequestError = false;
var parser = new DataParser();
data= parser.getData(input);
} finally {
input.close();
}
}
onDone: function() {
if(not httpRequestError) {
QuoteData = parseQuoteData(data);
if(ShowFrameData) {
Main.setFrameData(QuoteData);
}
else {
Main.showTicker(QuoteData,symbol);
}
}
}
}
request.start();
}
public function parseQuoteData(data:String): String[]{
var result:String[];
var StartIndex = 0;
var fromIndex=0;
for(i in [0..15]) {
fromIndex = data.indexOf(",", StartIndex);
if ((i == 15)) {
if(fromIndex == - 1){
insert data.substring(StartIndex,data.length()) into result;
}
else {
insert data.substring(StartIndex,fromIndex) into result;
}
}
else {
insert data.substring(StartIndex,fromIndex) into result;
}
StartIndex = fromIndex + 1;
if("{result[i]}".indexOf("\"") == 0)
result[i] = "{result[i]}".substring(1);
var lastIndexOfDComma = "{result[i]}".indexOf("\"",1);
if(lastIndexOfDComma > 0)
result[i] = "{result[i]}".substring(0,lastIndexOfDComma);
}
return result;
}
}