public void doParseWeather( int timeTester) {
if ( this .weatherTries != 0 || this .weatherTries != 1 || this .weatherTries != 2 || this .weatherTries != 3 || this .weatherTries != 4 ) {
this .weatherTries = 0 ;
}
getOverrides( ) ;
try {
if ( timeTester >= 5 ) {
DefaultHttpClient httpclient = new DefaultHttpClient( ) ;
HttpGet get = new HttpGet( "http://a...content-available-to-author-only...d.com/api/Key Here/conditions/q/" + getZIP( ) + ".xml" ) ; // Pulls zip from child object
HttpResponse response = httpclient.execute ( get) ;
//System.out.println("Http Status Code: " + response.getStatusLine().getStatusCode()); //HTTP status returned off request
// Create an XML reader
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance ( ) ;
DocumentBuilder builder = domFactory.newDocumentBuilder ( ) ;
//Parse the Xml.
XPathFactory factory = XPathFactory.newInstance ( ) ;
XPath xpath = factory.newXPath ( ) ;
XPathExpression expr = xpath.compile ( "//response/current_observation/display_location/full/text()" ) ;
result
= ( String ) expr.
evaluate ( doc, XPathConstants.
STRING ) ; setWeatherZoneName( result) ;
expr = xpath.compile ( "//response/current_observation/temp_f/text()" ) ;
result
= ( String ) expr.
evaluate ( doc, XPathConstants.
STRING ) ; setTemp
( Double .
parseDouble ( result
) ) ;
expr = xpath.compile ( "//response/current_observation/relative_humidity/text()" ) ;
result
= ( String ) expr.
evaluate ( doc, XPathConstants.
STRING ) ; result = handleHumidity( result) ;
setHumidity
( Double .
parseDouble ( result
) ) ;
expr = xpath.compile ( "//response/current_observation/weather/text()" ) ;
result
= ( String ) expr.
evaluate ( doc, XPathConstants.
STRING ) ; setCurrentConditions( result) ;
precipCheck( result) ;
expr = xpath.compile ( "//response/current_observation/dewpoint_f/text()" ) ;
result
= ( String ) expr.
evaluate ( doc, XPathConstants.
STRING ) ; setDewpoint
( Double .
parseDouble ( result
) ) ;
dayAhead( ) ;
DateTime now
= DateTime.
now ( TimeZone .
getTimeZone ( "UTC" ) ) ; setwTimeStamp( now) ;
didWeather = true ;
} else {
didWeather = false ;
}
System .
err .
println ( "Weather " + getZIP
( ) + " :" + e.
getMessage ( ) ) ; e.printStackTrace ( ) ;
if ( this .weatherTries < 3 ) {
this .weatherTries ++;
try {
doParseWeather( currentTime) ;
System .
err .
println ( "Thread Error: " + getPID
( ) + " - " + f.
getMessage ( ) ) ; }
}
}
}
cHVibGljIHZvaWQgZG9QYXJzZVdlYXRoZXIoaW50IHRpbWVUZXN0ZXIpIHsKICAgICAgICBpZiAodGhpcy53ZWF0aGVyVHJpZXMgIT0gMCB8fCB0aGlzLndlYXRoZXJUcmllcyAhPSAxIHx8IHRoaXMud2VhdGhlclRyaWVzICE9IDIgfHwgdGhpcy53ZWF0aGVyVHJpZXMgIT0gMyB8fCB0aGlzLndlYXRoZXJUcmllcyAhPSA0KSB7CiAgICAgICAgICAgIHRoaXMud2VhdGhlclRyaWVzID0gMDsKICAgICAgICB9CgogICAgICAgIFN0cmluZyByZXN1bHQgPSAiIjsKICAgICAgICBnZXRPdmVycmlkZXMoKTsKICAgICAgICB0cnkgewogICAgICAgICAgICBpZiAodGltZVRlc3RlciA+PSA1KSB7CiAgICAgICAgICAgICAgICBEZWZhdWx0SHR0cENsaWVudCBodHRwY2xpZW50ID0gbmV3IERlZmF1bHRIdHRwQ2xpZW50KCk7CgogICAgICAgICAgICAgICAgSHR0cEdldCBnZXQgPSBuZXcgSHR0cEdldCgiaHR0cDovL2EuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmQuY29tL2FwaS9LZXkgSGVyZS9jb25kaXRpb25zL3EvIiArIGdldFpJUCgpICsgIi54bWwiKTsgLy8gUHVsbHMgemlwIGZyb20gY2hpbGQgb2JqZWN0CgogICAgICAgICAgICAgICAgSHR0cFJlc3BvbnNlIHJlc3BvbnNlID0gaHR0cGNsaWVudC5leGVjdXRlKGdldCk7CiAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiSHR0cCBTdGF0dXMgQ29kZTogICIgKyByZXNwb25zZS5nZXRTdGF0dXNMaW5lKCkuZ2V0U3RhdHVzQ29kZSgpKTsgIC8vSFRUUCBzdGF0dXMgcmV0dXJuZWQgb2ZmIHJlcXVlc3QgCiAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbSBpbiA9IHJlc3BvbnNlLmdldEVudGl0eSgpLmdldENvbnRlbnQoKTsKCiAgICAgICAgICAgICAgICAvLyBDcmVhdGUgYW4gWE1MIHJlYWRlcgogICAgICAgICAgICAgICAgRG9jdW1lbnRCdWlsZGVyRmFjdG9yeSBkb21GYWN0b3J5ID0gRG9jdW1lbnRCdWlsZGVyRmFjdG9yeS5uZXdJbnN0YW5jZSgpOwogICAgICAgICAgICAgICAgRG9jdW1lbnRCdWlsZGVyIGJ1aWxkZXIgPSBkb21GYWN0b3J5Lm5ld0RvY3VtZW50QnVpbGRlcigpOwogICAgICAgICAgICAgICAgRG9jdW1lbnQgZG9jID0gYnVpbGRlci5wYXJzZShpbik7CgogICAgICAgICAgICAgICAgLy9QYXJzZSB0aGUgWG1sLgogICAgICAgICAgICAgICAgWFBhdGhGYWN0b3J5IGZhY3RvcnkgPSBYUGF0aEZhY3RvcnkubmV3SW5zdGFuY2UoKTsKICAgICAgICAgICAgICAgIFhQYXRoIHhwYXRoID0gZmFjdG9yeS5uZXdYUGF0aCgpOwogICAgICAgICAgICAgICAgWFBhdGhFeHByZXNzaW9uIGV4cHIgPSB4cGF0aC5jb21waWxlKCIvL3Jlc3BvbnNlL2N1cnJlbnRfb2JzZXJ2YXRpb24vZGlzcGxheV9sb2NhdGlvbi9mdWxsL3RleHQoKSIpOwoKICAgICAgICAgICAgICAgIHJlc3VsdCA9IChTdHJpbmcpIGV4cHIuZXZhbHVhdGUoZG9jLCBYUGF0aENvbnN0YW50cy5TVFJJTkcpOwogICAgICAgICAgICAgICAgc2V0V2VhdGhlclpvbmVOYW1lKHJlc3VsdCk7CgogICAgICAgICAgICAgICAgZXhwciA9IHhwYXRoLmNvbXBpbGUoIi8vcmVzcG9uc2UvY3VycmVudF9vYnNlcnZhdGlvbi90ZW1wX2YvdGV4dCgpIik7CgogICAgICAgICAgICAgICAgcmVzdWx0ID0gKFN0cmluZykgZXhwci5ldmFsdWF0ZShkb2MsIFhQYXRoQ29uc3RhbnRzLlNUUklORyk7CiAgICAgICAgICAgICAgICBzZXRUZW1wKERvdWJsZS5wYXJzZURvdWJsZShyZXN1bHQpKTsKCiAgICAgICAgICAgICAgICBleHByID0geHBhdGguY29tcGlsZSgiLy9yZXNwb25zZS9jdXJyZW50X29ic2VydmF0aW9uL3JlbGF0aXZlX2h1bWlkaXR5L3RleHQoKSIpOwoKICAgICAgICAgICAgICAgIHJlc3VsdCA9IChTdHJpbmcpIGV4cHIuZXZhbHVhdGUoZG9jLCBYUGF0aENvbnN0YW50cy5TVFJJTkcpOwogICAgICAgICAgICAgICAgcmVzdWx0ID0gaGFuZGxlSHVtaWRpdHkocmVzdWx0KTsKICAgICAgICAgICAgICAgIHNldEh1bWlkaXR5KERvdWJsZS5wYXJzZURvdWJsZShyZXN1bHQpKTsKCiAgICAgICAgICAgICAgICBleHByID0geHBhdGguY29tcGlsZSgiLy9yZXNwb25zZS9jdXJyZW50X29ic2VydmF0aW9uL3dlYXRoZXIvdGV4dCgpIik7CgogICAgICAgICAgICAgICAgcmVzdWx0ID0gKFN0cmluZykgZXhwci5ldmFsdWF0ZShkb2MsIFhQYXRoQ29uc3RhbnRzLlNUUklORyk7CiAgICAgICAgICAgICAgICBzZXRDdXJyZW50Q29uZGl0aW9ucyhyZXN1bHQpOwogICAgICAgICAgICAgICAgcHJlY2lwQ2hlY2socmVzdWx0KTsKCiAgICAgICAgICAgICAgICBleHByID0geHBhdGguY29tcGlsZSgiLy9yZXNwb25zZS9jdXJyZW50X29ic2VydmF0aW9uL2Rld3BvaW50X2YvdGV4dCgpIik7CgogICAgICAgICAgICAgICAgcmVzdWx0ID0gKFN0cmluZykgZXhwci5ldmFsdWF0ZShkb2MsIFhQYXRoQ29uc3RhbnRzLlNUUklORyk7CiAgICAgICAgICAgICAgICBzZXREZXdwb2ludChEb3VibGUucGFyc2VEb3VibGUocmVzdWx0KSk7CgogICAgICAgICAgICAgICAgZGF5QWhlYWQoKTsKICAgICAgICAgICAgICAgIERhdGVUaW1lIG5vdyA9IERhdGVUaW1lLm5vdyhUaW1lWm9uZS5nZXRUaW1lWm9uZSgiVVRDIikpOwogICAgICAgICAgICAgICAgc2V0d1RpbWVTdGFtcChub3cpOwogICAgICAgICAgICAgICAgZGlkV2VhdGhlciA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBkaWRXZWF0aGVyID0gZmFsc2U7CiAgICAgICAgICAgIH0KCgogICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CiAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiV2VhdGhlciAiICsgZ2V0WklQKCkgKyAiIDoiICsgZS5nZXRNZXNzYWdlKCkpOwogICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOwogICAgICAgICAgICBpZiAodGhpcy53ZWF0aGVyVHJpZXMgPCAzKSB7CiAgICAgICAgICAgICAgICB0aGlzLndlYXRoZXJUcmllcysrOwogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMTAwMCk7CiAgICAgICAgICAgICAgICAgICAgZG9QYXJzZVdlYXRoZXIoY3VycmVudFRpbWUpOwogICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGYpIHsKICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlRocmVhZCBFcnJvcjogIiArIGdldFBJRCgpICsgIiAtICIgKyBmLmdldE1lc3NhZ2UoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9