/**
* Copyright 2010 Neuroph Project http://neuroph.sourceforge.net
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.neuroph.samples.stockmarket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
/**
* Provides method to reads stock data from the socket.
* See http://neuroph.sourceforge.net/tutorials/StockMarketPredictionTutorial.html
* @author Dr.V.Steinhauer
*/
public class StockSocketReader implements Runnable {
private int maxCounter;
private long tsleep = 5000;
private String[] valuesRow;
public String[] getValuesRow() {
return valuesRow;
}
public void setValuesRow(String[] valuesRow) {
this.valuesRow = valuesRow;
}
public int getMaxCounter() {
return maxCounter;
}
public void setMaxCounter(int maxCounter) {
this.maxCounter = maxCounter;
}
public long getTsleep() {
return tsleep;
}
public void setTsleep(long tsleep) {
this.tsleep = tsleep;
}
public StockSocketReader() {
//this.setTsleep(10000);
this.setMaxCounter(100);
}
public StockSocketReader(int maxCounter) {
//this.setTsleep(10000);
this.setMaxCounter(maxCounter);
}
@SuppressWarnings("static-access")
public void run() {
valuesRow = new String[this.getMaxCounter()];
for (int i = 0; i < this.getMaxCounter(); i++) {
InputStream is = null;
try {
String surl = "http://download.finance.yahoo.com/d/quotes.csv?s=^GDAXI&f=sl1d1t1c1ohgv&e=.csv";
URL url = new URL(surl);
is = url.openStream();
BufferedReader dis = new BufferedReader(new InputStreamReader(is));
String s = dis.readLine();
System.out.println(s);
valuesRow[i] = s;
is.close();
} catch (MalformedURLException mue) {
System.out.println("Ouch - a MalformedURLException happened.");
mue.printStackTrace();
System.exit(1);
} catch (IOException ioe) {
System.out.println("Oops- an IOException happened.");
ioe.printStackTrace();
System.exit(1);
}
try {
Thread.currentThread().sleep(this.getTsleep());
} catch (InterruptedException e) {
}
}//end of for
System.out.println("valuesRow.length=" + valuesRow.length);
}
}