From de1786a2d954d6fe529414f9aa7cab45eb9fb3da Mon Sep 17 00:00:00 2001 From: Ashutosh Kumar Singh Date: Sat, 10 Aug 2013 23:52:09 +0530 Subject: [PATCH] 2.5.0.1 is ready! --- LICENSE.txt | 9 + README.pdf | Bin 0 -> 76842 bytes javadoc/allclasses-frame.html | 54 ++ javadoc/allclasses-noframe.html | 54 ++ javadoc/constant-values.html | 835 +++++++++++++++++ javadoc/deprecated-list.html | 114 +++ javadoc/help-doc.html | 215 +++++ javadoc/index-files/index-1.html | 202 ++++ javadoc/index-files/index-10.html | 394 ++++++++ javadoc/index-files/index-11.html | 125 +++ javadoc/index-files/index-12.html | 141 +++ javadoc/index-files/index-13.html | 127 +++ javadoc/index-files/index-14.html | 146 +++ javadoc/index-files/index-15.html | 141 +++ javadoc/index-files/index-16.html | 151 +++ javadoc/index-files/index-17.html | 142 +++ javadoc/index-files/index-18.html | 152 +++ javadoc/index-files/index-19.html | 128 +++ javadoc/index-files/index-2.html | 121 +++ javadoc/index-files/index-20.html | 153 +++ javadoc/index-files/index-3.html | 308 ++++++ javadoc/index-files/index-4.html | 245 +++++ javadoc/index-files/index-5.html | 121 +++ javadoc/index-files/index-6.html | 282 ++++++ javadoc/index-files/index-7.html | 317 +++++++ javadoc/index-files/index-8.html | 274 ++++++ javadoc/index-files/index-9.html | 125 +++ javadoc/index.html | 31 + .../api/owm/AbstractWeatherData.Clouds.html | 382 ++++++++ .../api/owm/AbstractWeatherData.Coord.html | 446 +++++++++ .../api/owm/AbstractWeatherData.Main.html | 653 +++++++++++++ .../api/owm/AbstractWeatherData.Weather.html | 584 ++++++++++++ .../api/owm/AbstractWeatherData.Wind.html | 450 +++++++++ .../java/api/owm/AbstractWeatherData.html | 508 ++++++++++ .../api/owm/CurrentWeatherData.Clouds.html | 294 ++++++ .../api/owm/CurrentWeatherData.Coord.html | 294 ++++++ .../java/api/owm/CurrentWeatherData.Main.html | 295 ++++++ .../java/api/owm/CurrentWeatherData.Rain.html | 379 ++++++++ .../java/api/owm/CurrentWeatherData.Sys.html | 498 ++++++++++ .../api/owm/CurrentWeatherData.Weather.html | 294 ++++++ .../java/api/owm/CurrentWeatherData.Wind.html | 391 ++++++++ .../java/api/owm/CurrentWeatherData.html | 874 ++++++++++++++++++ .../api/owm/DailyForecastData.City.Coord.html | 294 ++++++ .../java/api/owm/DailyForecastData.City.html | 622 +++++++++++++ ...ailyForecastData.Forecast.Temperature.html | 675 ++++++++++++++ .../DailyForecastData.Forecast.Weather.html | 295 ++++++ .../api/owm/DailyForecastData.Forecast.html | 784 ++++++++++++++++ .../java/api/owm/DailyForecastData.html | 633 +++++++++++++ .../owm/ForecastWeatherData.City.Coord.html | 294 ++++++ .../api/owm/ForecastWeatherData.City.html | 622 +++++++++++++ .../ForecastWeatherData.Forecast.Clouds.html | 294 ++++++ .../ForecastWeatherData.Forecast.Main.html | 511 ++++++++++ .../owm/ForecastWeatherData.Forecast.Sys.html | 381 ++++++++ .../ForecastWeatherData.Forecast.Weather.html | 296 ++++++ .../ForecastWeatherData.Forecast.Wind.html | 294 ++++++ .../api/owm/ForecastWeatherData.Forecast.html | 647 +++++++++++++ .../java/api/owm/ForecastWeatherData.html | 633 +++++++++++++ .../api/owm/OpenWeatherMap.OWM_Response.html | 558 +++++++++++ .../java/api/owm/OpenWeatherMap.OWM_URL.html | 545 +++++++++++ .../aksingh/java/api/owm/OpenWeatherMap.html | 646 +++++++++++++ .../aksingh/java/api/owm/Tools.Convertor.html | 274 ++++++ .../java/api/owm/Tools.Downloader.html | 282 ++++++ .../net/aksingh/java/api/owm/Tools.HTML.html | 278 ++++++ javadoc/net/aksingh/java/api/owm/Tools.html | 275 ++++++ .../class-use/AbstractWeatherData.Clouds.html | 149 +++ .../class-use/AbstractWeatherData.Coord.html | 156 ++++ .../class-use/AbstractWeatherData.Main.html | 149 +++ .../AbstractWeatherData.Weather.html | 155 ++++ .../class-use/AbstractWeatherData.Wind.html | 149 +++ .../owm/class-use/AbstractWeatherData.html | 156 ++++ .../class-use/CurrentWeatherData.Clouds.html | 152 +++ .../class-use/CurrentWeatherData.Coord.html | 152 +++ .../class-use/CurrentWeatherData.Main.html | 152 +++ .../class-use/CurrentWeatherData.Rain.html | 152 +++ .../owm/class-use/CurrentWeatherData.Sys.html | 152 +++ .../class-use/CurrentWeatherData.Weather.html | 154 +++ .../class-use/CurrentWeatherData.Wind.html | 152 +++ .../api/owm/class-use/CurrentWeatherData.html | 157 ++++ .../DailyForecastData.City.Coord.html | 152 +++ .../owm/class-use/DailyForecastData.City.html | 152 +++ ...ailyForecastData.Forecast.Temperature.html | 152 +++ .../DailyForecastData.Forecast.Weather.html | 154 +++ .../class-use/DailyForecastData.Forecast.html | 154 +++ .../api/owm/class-use/DailyForecastData.html | 161 ++++ .../ForecastWeatherData.City.Coord.html | 152 +++ .../class-use/ForecastWeatherData.City.html | 152 +++ .../ForecastWeatherData.Forecast.Clouds.html | 152 +++ .../ForecastWeatherData.Forecast.Main.html | 152 +++ .../ForecastWeatherData.Forecast.Sys.html | 152 +++ .../ForecastWeatherData.Forecast.Weather.html | 154 +++ .../ForecastWeatherData.Forecast.Wind.html | 152 +++ .../ForecastWeatherData.Forecast.html | 154 +++ .../owm/class-use/ForecastWeatherData.html | 157 ++++ .../OpenWeatherMap.OWM_Response.html | 141 +++ .../owm/class-use/OpenWeatherMap.OWM_URL.html | 164 ++++ .../api/owm/class-use/OpenWeatherMap.html | 114 +++ .../api/owm/class-use/Tools.Convertor.html | 114 +++ .../api/owm/class-use/Tools.Downloader.html | 114 +++ .../java/api/owm/class-use/Tools.HTML.html | 114 +++ .../aksingh/java/api/owm/class-use/Tools.html | 114 +++ .../aksingh/java/api/owm/package-frame.html | 58 ++ .../aksingh/java/api/owm/package-summary.html | 376 ++++++++ .../aksingh/java/api/owm/package-tree.html | 187 ++++ .../net/aksingh/java/api/owm/package-use.html | 303 ++++++ javadoc/overview-tree.html | 191 ++++ javadoc/package-list | 1 + javadoc/resources/background.gif | Bin 0 -> 2313 bytes javadoc/resources/tab.gif | Bin 0 -> 291 bytes javadoc/resources/titlebar.gif | Bin 0 -> 10701 bytes javadoc/resources/titlebar_end.gif | Bin 0 -> 849 bytes javadoc/stylesheet.css | 474 ++++++++++ lib/JSON.jar | Bin 0 -> 41821 bytes .../java/api/owm/AbstractWeatherData.java | 633 +++++++++++++ .../java/api/owm/CurrentWeatherData.java | 656 +++++++++++++ .../java/api/owm/DailyForecastData.java | 707 ++++++++++++++ .../java/api/owm/ForecastWeatherData.java | 803 ++++++++++++++++ .../aksingh/java/api/owm/OpenWeatherMap.java | 551 +++++++++++ src/net/aksingh/java/api/owm/Tools.java | 209 +++++ 118 files changed, 32045 insertions(+) create mode 100644 LICENSE.txt create mode 100644 README.pdf create mode 100644 javadoc/allclasses-frame.html create mode 100644 javadoc/allclasses-noframe.html create mode 100644 javadoc/constant-values.html create mode 100644 javadoc/deprecated-list.html create mode 100644 javadoc/help-doc.html create mode 100644 javadoc/index-files/index-1.html create mode 100644 javadoc/index-files/index-10.html create mode 100644 javadoc/index-files/index-11.html create mode 100644 javadoc/index-files/index-12.html create mode 100644 javadoc/index-files/index-13.html create mode 100644 javadoc/index-files/index-14.html create mode 100644 javadoc/index-files/index-15.html create mode 100644 javadoc/index-files/index-16.html create mode 100644 javadoc/index-files/index-17.html create mode 100644 javadoc/index-files/index-18.html create mode 100644 javadoc/index-files/index-19.html create mode 100644 javadoc/index-files/index-2.html create mode 100644 javadoc/index-files/index-20.html create mode 100644 javadoc/index-files/index-3.html create mode 100644 javadoc/index-files/index-4.html create mode 100644 javadoc/index-files/index-5.html create mode 100644 javadoc/index-files/index-6.html create mode 100644 javadoc/index-files/index-7.html create mode 100644 javadoc/index-files/index-8.html create mode 100644 javadoc/index-files/index-9.html create mode 100644 javadoc/index.html create mode 100644 javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Clouds.html create mode 100644 javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Coord.html create mode 100644 javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Main.html create mode 100644 javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Weather.html create mode 100644 javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Wind.html create mode 100644 javadoc/net/aksingh/java/api/owm/AbstractWeatherData.html create mode 100644 javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Clouds.html create mode 100644 javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Coord.html create mode 100644 javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Main.html create mode 100644 javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Rain.html create mode 100644 javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Sys.html create mode 100644 javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Weather.html create mode 100644 javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Wind.html create mode 100644 javadoc/net/aksingh/java/api/owm/CurrentWeatherData.html create mode 100644 javadoc/net/aksingh/java/api/owm/DailyForecastData.City.Coord.html create mode 100644 javadoc/net/aksingh/java/api/owm/DailyForecastData.City.html create mode 100644 javadoc/net/aksingh/java/api/owm/DailyForecastData.Forecast.Temperature.html create mode 100644 javadoc/net/aksingh/java/api/owm/DailyForecastData.Forecast.Weather.html create mode 100644 javadoc/net/aksingh/java/api/owm/DailyForecastData.Forecast.html create mode 100644 javadoc/net/aksingh/java/api/owm/DailyForecastData.html create mode 100644 javadoc/net/aksingh/java/api/owm/ForecastWeatherData.City.Coord.html create mode 100644 javadoc/net/aksingh/java/api/owm/ForecastWeatherData.City.html create mode 100644 javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Clouds.html create mode 100644 javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Main.html create mode 100644 javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Sys.html create mode 100644 javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Weather.html create mode 100644 javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Wind.html create mode 100644 javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.html create mode 100644 javadoc/net/aksingh/java/api/owm/ForecastWeatherData.html create mode 100644 javadoc/net/aksingh/java/api/owm/OpenWeatherMap.OWM_Response.html create mode 100644 javadoc/net/aksingh/java/api/owm/OpenWeatherMap.OWM_URL.html create mode 100644 javadoc/net/aksingh/java/api/owm/OpenWeatherMap.html create mode 100644 javadoc/net/aksingh/java/api/owm/Tools.Convertor.html create mode 100644 javadoc/net/aksingh/java/api/owm/Tools.Downloader.html create mode 100644 javadoc/net/aksingh/java/api/owm/Tools.HTML.html create mode 100644 javadoc/net/aksingh/java/api/owm/Tools.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Clouds.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Coord.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Main.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Weather.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Wind.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Clouds.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Coord.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Main.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Rain.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Sys.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Weather.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Wind.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.City.Coord.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.City.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.Forecast.Temperature.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.Forecast.Weather.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.Forecast.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.City.Coord.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.City.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Clouds.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Main.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Sys.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Weather.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Wind.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/OpenWeatherMap.OWM_Response.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/OpenWeatherMap.OWM_URL.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/OpenWeatherMap.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/Tools.Convertor.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/Tools.Downloader.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/Tools.HTML.html create mode 100644 javadoc/net/aksingh/java/api/owm/class-use/Tools.html create mode 100644 javadoc/net/aksingh/java/api/owm/package-frame.html create mode 100644 javadoc/net/aksingh/java/api/owm/package-summary.html create mode 100644 javadoc/net/aksingh/java/api/owm/package-tree.html create mode 100644 javadoc/net/aksingh/java/api/owm/package-use.html create mode 100644 javadoc/overview-tree.html create mode 100644 javadoc/package-list create mode 100644 javadoc/resources/background.gif create mode 100644 javadoc/resources/tab.gif create mode 100644 javadoc/resources/titlebar.gif create mode 100644 javadoc/resources/titlebar_end.gif create mode 100644 javadoc/stylesheet.css create mode 100644 lib/JSON.jar create mode 100644 src/net/aksingh/java/api/owm/AbstractWeatherData.java create mode 100644 src/net/aksingh/java/api/owm/CurrentWeatherData.java create mode 100644 src/net/aksingh/java/api/owm/DailyForecastData.java create mode 100644 src/net/aksingh/java/api/owm/ForecastWeatherData.java create mode 100644 src/net/aksingh/java/api/owm/OpenWeatherMap.java create mode 100644 src/net/aksingh/java/api/owm/Tools.java diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..74c5741 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,9 @@ +Copyright (C)2013 Ashutosh Kumar Singh [me@AKSingh.net] + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +The Software shall be used for Good, not Evil. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.pdf b/README.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e70f7b20a262dc489ac14129641e133b221bd4b7 GIT binary patch literal 76842 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 QSAd@%i-}2ESqAI>0464HcmMzZ literal 0 HcmV?d00001 diff --git a/javadoc/allclasses-frame.html b/javadoc/allclasses-frame.html new file mode 100644 index 0000000..9e6f1f3 --- /dev/null +++ b/javadoc/allclasses-frame.html @@ -0,0 +1,54 @@ + + + + + + +All Classes (OpenWeatherMap.org JAPIs) + + + + +

All Classes

+ + + diff --git a/javadoc/allclasses-noframe.html b/javadoc/allclasses-noframe.html new file mode 100644 index 0000000..bf640e7 --- /dev/null +++ b/javadoc/allclasses-noframe.html @@ -0,0 +1,54 @@ + + + + + + +All Classes (OpenWeatherMap.org JAPIs) + + + + +

All Classes

+ + + diff --git a/javadoc/constant-values.html b/javadoc/constant-values.html new file mode 100644 index 0000000..cf1237a --- /dev/null +++ b/javadoc/constant-values.html @@ -0,0 +1,835 @@ + + + + + + +Constant Field Values (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
+

Constant Field Values

+

Contents

+ +
+
+ + +

net.aksingh.*

+ +
+ +
+ + + + + +
+ + + + diff --git a/javadoc/deprecated-list.html b/javadoc/deprecated-list.html new file mode 100644 index 0000000..27e4a84 --- /dev/null +++ b/javadoc/deprecated-list.html @@ -0,0 +1,114 @@ + + + + + + +Deprecated List (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
+

Deprecated API

+

Contents

+
+ +
+ + + + + +
+ + + + diff --git a/javadoc/help-doc.html b/javadoc/help-doc.html new file mode 100644 index 0000000..c74fab7 --- /dev/null +++ b/javadoc/help-doc.html @@ -0,0 +1,215 @@ + + + + + + +API Help (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
+

How This API Document Is Organized

+
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
+
+
+
    +
  • +

    Package

    +

    Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:

    +
      +
    • Interfaces (italic)
    • +
    • Classes
    • +
    • Enums
    • +
    • Exceptions
    • +
    • Errors
    • +
    • Annotation Types
    • +
    +
  • +
  • +

    Class/Interface

    +

    Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

    +
      +
    • Class inheritance diagram
    • +
    • Direct Subclasses
    • +
    • All Known Subinterfaces
    • +
    • All Known Implementing Classes
    • +
    • Class/interface declaration
    • +
    • Class/interface description
    • +
    +
      +
    • Nested Class Summary
    • +
    • Field Summary
    • +
    • Constructor Summary
    • +
    • Method Summary
    • +
    +
      +
    • Field Detail
    • +
    • Constructor Detail
    • +
    • Method Detail
    • +
    +

    Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

    +
  • +
  • +

    Annotation Type

    +

    Each annotation type has its own separate page with the following sections:

    +
      +
    • Annotation Type declaration
    • +
    • Annotation Type description
    • +
    • Required Element Summary
    • +
    • Optional Element Summary
    • +
    • Element Detail
    • +
    +
  • +
  • +

    Enum

    +

    Each enum has its own separate page with the following sections:

    +
      +
    • Enum declaration
    • +
    • Enum description
    • +
    • Enum Constant Summary
    • +
    • Enum Constant Detail
    • +
    +
  • +
  • +

    Use

    +

    Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

    +
  • +
  • +

    Tree (Class Hierarchy)

    +

    There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.

    +
      +
    • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
    • +
    • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
    • +
    +
  • +
  • +

    Deprecated API

    +

    The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

    +
  • +
  • +

    Index

    +

    The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.

    +
  • +
  • +

    Prev/Next

    +

    These links take you to the next or previous class, interface, package, or related page.

    +
  • +
  • +

    Frames/No Frames

    +

    These links show and hide the HTML frames. All pages are available with or without frames.

    +
  • +
  • +

    All Classes

    +

    The All Classes link shows all classes and interfaces except non-static nested types.

    +
  • +
  • +

    Serialized Form

    +

    Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

    +
  • +
  • +

    Constant Field Values

    +

    The Constant Field Values page lists the static final fields and their values.

    +
  • +
+This help file applies to API documentation generated using the standard doclet.
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-1.html b/javadoc/index-files/index-1.html new file mode 100644 index 0000000..85f6f21 --- /dev/null +++ b/javadoc/index-files/index-1.html @@ -0,0 +1,202 @@ + + + + + + +A-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

A

+
+
AbstractWeatherData - Class in net.aksingh.java.api.owm
+
+
This class provides default implementations for CurrentWeatherData + and ForecastWeatherData classes.
+
+
AbstractWeatherData() - Constructor for class net.aksingh.java.api.owm.AbstractWeatherData
+
+
Non-parameterized constructor
+
+
AbstractWeatherData(JSONObject) - Constructor for class net.aksingh.java.api.owm.AbstractWeatherData
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
AbstractWeatherData.Clouds - Class in net.aksingh.java.api.owm
+
+
This class provides default implementations for Clouds.
+
+
AbstractWeatherData.Clouds() - Constructor for class net.aksingh.java.api.owm.AbstractWeatherData.Clouds
+
+
Non-parameterized constructor
+
+
AbstractWeatherData.Clouds(JSONObject) - Constructor for class net.aksingh.java.api.owm.AbstractWeatherData.Clouds
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
AbstractWeatherData.Coord - Class in net.aksingh.java.api.owm
+
+
This class provides default implementations for Coord.
+
+
AbstractWeatherData.Coord() - Constructor for class net.aksingh.java.api.owm.AbstractWeatherData.Coord
+
+
Non-parameterized constructor
+
+
AbstractWeatherData.Coord(JSONObject) - Constructor for class net.aksingh.java.api.owm.AbstractWeatherData.Coord
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
AbstractWeatherData.Main - Class in net.aksingh.java.api.owm
+
+
This class provides default implementations for Main.
+
+
AbstractWeatherData.Main() - Constructor for class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Non-parameterized constructor
+
+
AbstractWeatherData.Main(JSONObject) - Constructor for class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
AbstractWeatherData.Weather - Class in net.aksingh.java.api.owm
+
+
This class provides default implementations for Weather.
+
+
AbstractWeatherData.Weather() - Constructor for class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Non-parameterized constructor
+
+
AbstractWeatherData.Weather(JSONObject) - Constructor for class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
AbstractWeatherData.Wind - Class in net.aksingh.java.api.owm
+
+
This class provides default implementations for Wind.
+
+
AbstractWeatherData.Wind() - Constructor for class net.aksingh.java.api.owm.AbstractWeatherData.Wind
+
+
Non-parameterized constructor
+
+
AbstractWeatherData.Wind(JSONObject) - Constructor for class net.aksingh.java.api.owm.AbstractWeatherData.Wind
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-10.html b/javadoc/index-files/index-10.html new file mode 100644 index 0000000..35335a4 --- /dev/null +++ b/javadoc/index-files/index-10.html @@ -0,0 +1,394 @@ + + + + + + +J-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

J

+
+
JSON_BASE - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
+
Key for JSON variable Base
+
+
JSON_CITY - Variable in class net.aksingh.java.api.owm.DailyForecastData
+
+
Key for JSON object - City
+
+
JSON_CITY - Variable in class net.aksingh.java.api.owm.ForecastWeatherData
+
+
Key for JSON object - City
+
+
JSON_CITY_COORD - Variable in class net.aksingh.java.api.owm.DailyForecastData.City
+
+
Key for JSON object - Coordinates
+
+
JSON_CITY_COORD - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
+
Key for JSON object - Coordinates
+
+
JSON_CITY_COUNTRY_CODE - Variable in class net.aksingh.java.api.owm.DailyForecastData.City
+
+
Key for JSON variable Country code of city
+
+
JSON_CITY_COUNTRY_CODE - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
+
Key for JSON variable Country code of city
+
+
JSON_CITY_ID - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
+
Key for JSON variable City code (ID)
+
+
JSON_CITY_ID - Variable in class net.aksingh.java.api.owm.DailyForecastData.City
+
+
Key for JSON variable City code (ID)
+
+
JSON_CITY_ID - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
+
Key for JSON variable City code (ID)
+
+
JSON_CITY_NAME - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
+
Key for JSON variable City name
+
+
JSON_CITY_NAME - Variable in class net.aksingh.java.api.owm.DailyForecastData.City
+
+
Key for JSON variable City name
+
+
JSON_CITY_NAME - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
+
Key for JSON variable City name
+
+
JSON_CITY_POPULATION - Variable in class net.aksingh.java.api.owm.DailyForecastData.City
+
+
Key for JSON variable Population of city
+
+
JSON_CITY_POPULATION - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
+
Key for JSON variable Population of city
+
+
JSON_CLOUDS - Variable in class net.aksingh.java.api.owm.AbstractWeatherData
+
+
Key for JSON object - Clouds
+
+
JSON_CLOUDS_ALL - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Clouds
+
+
Key for JSON variable Clouds -> All + (percentage of all clouds)
+
+
JSON_COORD - Variable in class net.aksingh.java.api.owm.AbstractWeatherData
+
+
Key for JSON object - Coordinates (Geographic coordinates)
+
+
JSON_COORD_LATITUDE - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Coord
+
+
Key for JSON variable Coord -> Latitude
+
+
JSON_COORD_LONGITUDE - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Coord
+
+
Key for JSON variable Coord -> Longitude
+
+
JSON_DATE_TIME - Variable in class net.aksingh.java.api.owm.AbstractWeatherData
+
+
Key for JSON variable Date-Time (date & time of the weather)
+
+
JSON_DATE_TIME_TEXT - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
+
Key for JSON variable Date time text
+
+
JSON_FORECAST_CLOUDS - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
+
Key for JSON variable Percentage of clouds
+
+
JSON_FORECAST_HUMIDITY - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
+
Key for JSON variable Humidity
+
+
JSON_FORECAST_LIST - Variable in class net.aksingh.java.api.owm.DailyForecastData
+
+
Key for JSON object - List of forecasts
+
+
JSON_FORECAST_LIST - Variable in class net.aksingh.java.api.owm.ForecastWeatherData
+
+
Key for JSON object - List of forecasts
+
+
JSON_FORECAST_PRESSURE - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
+
Key for JSON variable Pressure
+
+
JSON_FORECAST_WIND_DEGREE - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
+
Key for JSON variable Wind degree
+
+
JSON_FORECAST_WIND_SPEED - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
+
Key for JSON variable Wind speed
+
+
JSON_MAIN - Variable in class net.aksingh.java.api.owm.AbstractWeatherData
+
+
Key for JSON object - Main (Temperature, pressure, etc.)
+
+
JSON_MAIN_GRND_LEVEL - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Main
+
+
Key for JSON variable Main -> Ground level
+
+
JSON_MAIN_HUMIDITY - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Key for JSON variable Main -> Humidity
+
+
JSON_MAIN_PRESSURE - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Key for JSON variable Main -> Pressure
+
+
JSON_MAIN_SEA_LEVEL - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Main
+
+
Key for JSON variable Main -> Sea level
+
+
JSON_MAIN_TEMP - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Key for JSON variable Main -> Temperature
+
+
JSON_MAIN_TEMP_MAX - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Key for JSON variable Main -> Maximum temperature
+
+
JSON_MAIN_TEMP_MIN - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Key for JSON variable Main -> Minimum temperature
+
+
JSON_MAIN_TMP_KF - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Main
+
+
Key for JSON variable Main -> Temperature KF
+
+
JSON_RAIN - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
+
Key for JSON object - Rain
+
+
JSON_RAIN_3HOURS - Variable in class net.aksingh.java.api.owm.CurrentWeatherData.Rain
+
+
Key for JSON variable Rain -> Rain per 3 hours
+
+
JSON_RESPONSE_CODE - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
+
Key for JSON variable Response code
+
+
JSON_RESPONSE_CODE - Variable in class net.aksingh.java.api.owm.DailyForecastData
+
+
Key for JSON variable Response code
+
+
JSON_RESPONSE_CODE - Variable in class net.aksingh.java.api.owm.ForecastWeatherData
+
+
Key for JSON variable Response code
+
+
JSON_RESPONSE_FORECAST_COUNT - Variable in class net.aksingh.java.api.owm.DailyForecastData
+
+
Key for JSON variable Forecast count
+
+
JSON_RESPONSE_FORECAST_COUNT - Variable in class net.aksingh.java.api.owm.ForecastWeatherData
+
+
Key for JSON variable Forecast count
+
+
JSON_RESPONSE_TIME - Variable in class net.aksingh.java.api.owm.DailyForecastData
+
+
Key for JSON variable Response time
+
+
JSON_RESPONSE_TIME - Variable in class net.aksingh.java.api.owm.ForecastWeatherData
+
+
Key for JSON variable Response time
+
+
JSON_SYS - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
+
Key for JSON object - Sys
+
+
JSON_SYS - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
+
Key for JSON object - Sys (pod, etc.)
+
+
JSON_SYS_COUNTRY_CODE - Variable in class net.aksingh.java.api.owm.CurrentWeatherData.Sys
+
+
Key for JSON variable Sys -> Country
+
+
JSON_SYS_POD - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Sys
+
+
Key for JSON variable Sys -> Pod
+
+
JSON_SYS_SUNRISE - Variable in class net.aksingh.java.api.owm.CurrentWeatherData.Sys
+
+
Key for JSON variable Sys -> Sunrise
+
+
JSON_SYS_SUNSET - Variable in class net.aksingh.java.api.owm.CurrentWeatherData.Sys
+
+
Key for JSON variable Sys -> Sunset
+
+
JSON_TEMP - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
+
Key for JSON object - Temperature
+
+
JSON_TEMP_DAY - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
+
Key for JSON variable Temp -> Day
+
+
JSON_TEMP_EVENING - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
+
Key for JSON variable Temp -> Evening
+
+
JSON_TEMP_MAX - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
+
Key for JSON variable Temp -> Maximum
+
+
JSON_TEMP_MIN - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
+
Key for JSON variable Temp -> Minimum
+
+
JSON_TEMP_MORNING - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
+
Key for JSON variable Temp -> Morning
+
+
JSON_TEMP_NIGHT - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
+
Key for JSON variable Temp -> Night
+
+
JSON_WEATHER - Variable in class net.aksingh.java.api.owm.AbstractWeatherData
+
+
Key for JSON array - Weather (Weather name, description, etc.)
+
+
JSON_WEATHER_DESCRIPTION - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Key for JSON variable Weather -> Description
+
+
JSON_WEATHER_ICON - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Key for JSON variable in array Weather -> Icon
+
+
JSON_WEATHER_ID - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Key for JSON variable in array Weather -> ID
+
+
JSON_WEATHER_MAIN - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Key for JSON variable in array Weather -> Main (name of weather)
+
+
JSON_WIND - Variable in class net.aksingh.java.api.owm.AbstractWeatherData
+
+
Key for JSON object - Wind
+
+
JSON_WIND_DEGREE - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Wind
+
+
Key for JSON variable Wind -> Degree
+
+
JSON_WIND_GUST - Variable in class net.aksingh.java.api.owm.CurrentWeatherData.Wind
+
+
Key for JSON variable Wind -> Gust
+
+
JSON_WIND_SPEED - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Wind
+
+
Key for JSON variable Wind -> Speed
+
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-11.html b/javadoc/index-files/index-11.html new file mode 100644 index 0000000..be83700 --- /dev/null +++ b/javadoc/index-files/index-11.html @@ -0,0 +1,125 @@ + + + + + + +L-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

L

+
+
lat - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Coord
+
+
Latitude
+
+
lon - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Coord
+
+
Longitude
+
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-12.html b/javadoc/index-files/index-12.html new file mode 100644 index 0000000..30725f1 --- /dev/null +++ b/javadoc/index-files/index-12.html @@ -0,0 +1,141 @@ + + + + + + +M-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

M

+
+
main - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
main - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
 
+
maxTemp - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Maximum temperature
+
+
maxTemp - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
+
Maximum temperature
+
+
minTemp - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Minimum temperature
+
+
minTemp - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
+
Minimum temperature
+
+
mornTemp - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
+
Morning temperature
+
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-13.html b/javadoc/index-files/index-13.html new file mode 100644 index 0000000..bfc002c --- /dev/null +++ b/javadoc/index-files/index-13.html @@ -0,0 +1,127 @@ + + + + + + +N-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

N

+
+
name - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Weather name
+
+
net.aksingh.java.api.owm - package net.aksingh.java.api.owm
+
 
+
nightTemp - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
+
Night temperature
+
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-14.html b/javadoc/index-files/index-14.html new file mode 100644 index 0000000..0ef1ec8 --- /dev/null +++ b/javadoc/index-files/index-14.html @@ -0,0 +1,146 @@ + + + + + + +O-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

O

+
+
OpenWeatherMap - Class in net.aksingh.java.api.owm
+
+
Provides methods to get weather, forecast, and other data from + OpenWeatherMap.org
+
+
OpenWeatherMap(String) - Constructor for class net.aksingh.java.api.owm.OpenWeatherMap
+
 
+
OpenWeatherMap(OpenWeatherMap.OWM_URL, String) - Constructor for class net.aksingh.java.api.owm.OpenWeatherMap
+
 
+
OpenWeatherMap.OWM_Response - Class in net.aksingh.java.api.owm
+
 
+
OpenWeatherMap.OWM_Response(String) - Constructor for class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
+
 
+
OpenWeatherMap.OWM_Response(OpenWeatherMap.OWM_URL, String) - Constructor for class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
+
 
+
OpenWeatherMap.OWM_URL - Enum in net.aksingh.java.api.owm
+
 
+
OpenWeatherMap.OWM_URL(String) - Constructor for enum net.aksingh.java.api.owm.OpenWeatherMap.OWM_URL
+
 
+
OWM_APPID_VALUE - Variable in class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
+
 
+
OWM_MODE_VALUE - Variable in class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
+
 
+
OWM_UNITS_VALUE - Variable in class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
+
 
+
owmResponse - Variable in class net.aksingh.java.api.owm.OpenWeatherMap
+
+
Declaring this class
+
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-15.html b/javadoc/index-files/index-15.html new file mode 100644 index 0000000..65b1970 --- /dev/null +++ b/javadoc/index-files/index-15.html @@ -0,0 +1,141 @@ + + + + + + +P-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

P

+
+
percentOfClouds - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Clouds
+
+
Percentage of all clouds
+
+
pod - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Sys
+
+
Pod
+
+
population - Variable in class net.aksingh.java.api.owm.DailyForecastData.City
+
+
Population of city
+
+
population - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
+
Population of city
+
+
pressure - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Pressure
+
+
pressure - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
+
Pressure
+
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-16.html b/javadoc/index-files/index-16.html new file mode 100644 index 0000000..e006140 --- /dev/null +++ b/javadoc/index-files/index-16.html @@ -0,0 +1,151 @@ + + + + + + +R-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

R

+
+
rain - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
rain3h - Variable in class net.aksingh.java.api.owm.CurrentWeatherData.Rain
+
+
Rain per 3 hours
+
+
responseCode - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
+
Response code
+
+
responseCode - Variable in class net.aksingh.java.api.owm.DailyForecastData
+
+
Response code
+
+
responseCode - Variable in class net.aksingh.java.api.owm.ForecastWeatherData
+
+
Response code
+
+
responseForecastCount - Variable in class net.aksingh.java.api.owm.DailyForecastData
+
+
Forecast count
+
+
responseForecastCount - Variable in class net.aksingh.java.api.owm.ForecastWeatherData
+
+
Forecast count
+
+
responseTime - Variable in class net.aksingh.java.api.owm.DailyForecastData
+
+
Response time
+
+
responseTime - Variable in class net.aksingh.java.api.owm.ForecastWeatherData
+
+
Response time
+
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-17.html b/javadoc/index-files/index-17.html new file mode 100644 index 0000000..aacf383 --- /dev/null +++ b/javadoc/index-files/index-17.html @@ -0,0 +1,142 @@ + + + + + + +S-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

S

+
+
seaLevel - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Main
+
+
Sea level
+
+
speed - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Wind
+
+
Wind speed
+
+
strictAddress(String) - Static method in class net.aksingh.java.api.owm.Tools.HTML
+
+
Stricts a non-strict or non-compliant web address + to a proper URL.
+
+
sunrise - Variable in class net.aksingh.java.api.owm.CurrentWeatherData.Sys
+
+
Sunrise time
+
+
sunset - Variable in class net.aksingh.java.api.owm.CurrentWeatherData.Sys
+
+
Sunset time
+
+
sys - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
sys - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
 
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-18.html b/javadoc/index-files/index-18.html new file mode 100644 index 0000000..b1bf241 --- /dev/null +++ b/javadoc/index-files/index-18.html @@ -0,0 +1,152 @@ + + + + + + +T-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

T

+
+
temp - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Temperature
+
+
temp - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
 
+
tempKF - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Main
+
+
Temperature KF
+
+
Tools - Class in net.aksingh.java.api.owm
+
+
Provides various tools, which help doing tasks in this application.
+
+
Tools() - Constructor for class net.aksingh.java.api.owm.Tools
+
 
+
Tools.Convertor - Class in net.aksingh.java.api.owm
+
+
Provides methods to do conversions.
+
+
Tools.Convertor() - Constructor for class net.aksingh.java.api.owm.Tools.Convertor
+
 
+
Tools.Downloader - Class in net.aksingh.java.api.owm
+
+
Provides methods to download data or files from the Internet.
+
+
Tools.Downloader() - Constructor for class net.aksingh.java.api.owm.Tools.Downloader
+
 
+
Tools.HTML - Class in net.aksingh.java.api.owm
+
+
Provides functions to handle HTML, e.g., correcting + non-compliant or non-strict web addresses, etc.
+
+
Tools.HTML() - Constructor for class net.aksingh.java.api.owm.Tools.HTML
+
 
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-19.html b/javadoc/index-files/index-19.html new file mode 100644 index 0000000..2dab80d --- /dev/null +++ b/javadoc/index-files/index-19.html @@ -0,0 +1,128 @@ + + + + + + +V-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

V

+
+
value - Variable in enum net.aksingh.java.api.owm.OpenWeatherMap.OWM_URL
+
 
+
valueOf(String) - Static method in enum net.aksingh.java.api.owm.OpenWeatherMap.OWM_URL
+
+
Returns the enum constant of this type with the specified name.
+
+
values() - Static method in enum net.aksingh.java.api.owm.OpenWeatherMap.OWM_URL
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-2.html b/javadoc/index-files/index-2.html new file mode 100644 index 0000000..06e2b6f --- /dev/null +++ b/javadoc/index-files/index-2.html @@ -0,0 +1,121 @@ + + + + + + +B-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

B

+
+
base - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
+
Base
+
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-20.html b/javadoc/index-files/index-20.html new file mode 100644 index 0000000..2dff3c2 --- /dev/null +++ b/javadoc/index-files/index-20.html @@ -0,0 +1,153 @@ + + + + + + +W-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

W

+
+
weatherList - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
+
List of weather information (code, name, etc.)
+
+
weatherList - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
+
List of weather information (code, name, etc.)
+
+
weatherList - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
+
List of weather information (code, name, etc.)
+
+
weatherListCount - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
+
Count (number) of elements in list of weather information
+
+
weatherListCount - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
+
Count (number) of elements in list of weather information
+
+
weatherListCount - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
+
Count (number) of elements in list of weather information
+
+
wind - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
wind - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
 
+
windDegree - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
+
Wind degree
+
+
windSpeed - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
+
Wind speed
+
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-3.html b/javadoc/index-files/index-3.html new file mode 100644 index 0000000..6264871 --- /dev/null +++ b/javadoc/index-files/index-3.html @@ -0,0 +1,308 @@ + + + + + + +C-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

C

+
+
city - Variable in class net.aksingh.java.api.owm.DailyForecastData
+
 
+
city - Variable in class net.aksingh.java.api.owm.ForecastWeatherData
+
 
+
cityID - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
+
City code (ID)
+
+
cityID - Variable in class net.aksingh.java.api.owm.DailyForecastData.City
+
+
City code (ID)
+
+
cityID - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
+
City code (ID)
+
+
cityName - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
+
City name
+
+
cityName - Variable in class net.aksingh.java.api.owm.DailyForecastData.City
+
+
City name
+
+
cityName - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
+
City name
+
+
clouds - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
clouds - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
 
+
cloudsPercent - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
+
Percentage of clouds
+
+
convertDegree2Direction(float) - Method in class net.aksingh.java.api.owm.Tools.Convertor
+
+
Converts degree to direction.
+
+
coord - Variable in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
coord - Variable in class net.aksingh.java.api.owm.DailyForecastData.City
+
 
+
coord - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
 
+
countryCode - Variable in class net.aksingh.java.api.owm.CurrentWeatherData.Sys
+
+
Country code for the city
+
+
countryCode - Variable in class net.aksingh.java.api.owm.DailyForecastData.City
+
+
Country code of city
+
+
countryCode - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
+
Country code of city
+
+
currentWeatherByCityCode(long) - Method in class net.aksingh.java.api.owm.OpenWeatherMap
+
 
+
currentWeatherByCityCode(long) - Method in class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
+
 
+
currentWeatherByCityName(String) - Method in class net.aksingh.java.api.owm.OpenWeatherMap
+
 
+
currentWeatherByCityName(String, String) - Method in class net.aksingh.java.api.owm.OpenWeatherMap
+
 
+
currentWeatherByCityName(String) - Method in class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
+
 
+
currentWeatherByCityName(String, String) - Method in class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
+
 
+
currentWeatherByCoordinates(float, float) - Method in class net.aksingh.java.api.owm.OpenWeatherMap
+
 
+
currentWeatherByCoordinates(float, float) - Method in class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
+
 
+
CurrentWeatherData - Class in net.aksingh.java.api.owm
+
+
Parses current weather data (from the JSON data) and provides methods + to get/access the information about current weather.
+
+
CurrentWeatherData(JSONObject) - Constructor for class net.aksingh.java.api.owm.CurrentWeatherData
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
CurrentWeatherData.Clouds - Class in net.aksingh.java.api.owm
+
+
Parses data about clouds (from the JSON data) and provides methods + to get/access the information.
+
+
CurrentWeatherData.Clouds() - Constructor for class net.aksingh.java.api.owm.CurrentWeatherData.Clouds
+
+
Non-parameterized constructor
+
+
CurrentWeatherData.Clouds(JSONObject) - Constructor for class net.aksingh.java.api.owm.CurrentWeatherData.Clouds
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
CurrentWeatherData.Coord - Class in net.aksingh.java.api.owm
+
+
Parses data about geographic coordinates (from the JSON data) + and provides methods to get/access the information.
+
+
CurrentWeatherData.Coord() - Constructor for class net.aksingh.java.api.owm.CurrentWeatherData.Coord
+
+
Non-parameterized constructor
+
+
CurrentWeatherData.Coord(JSONObject) - Constructor for class net.aksingh.java.api.owm.CurrentWeatherData.Coord
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
CurrentWeatherData.Main - Class in net.aksingh.java.api.owm
+
+
Parses data about main weather elements (from the JSON data) and + provides methods to get/access the information.
+
+
CurrentWeatherData.Main() - Constructor for class net.aksingh.java.api.owm.CurrentWeatherData.Main
+
+
Non-parameterized constructor
+
+
CurrentWeatherData.Main(JSONObject) - Constructor for class net.aksingh.java.api.owm.CurrentWeatherData.Main
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
CurrentWeatherData.Rain - Class in net.aksingh.java.api.owm
+
+
Parses data about rain (from the JSON data) and provides methods + to get/access the information.
+
+
CurrentWeatherData.Rain() - Constructor for class net.aksingh.java.api.owm.CurrentWeatherData.Rain
+
+
Non-parameterized constructor
+
+
CurrentWeatherData.Rain(JSONObject) - Constructor for class net.aksingh.java.api.owm.CurrentWeatherData.Rain
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
CurrentWeatherData.Sys - Class in net.aksingh.java.api.owm
+
+
Parses data about country, sunrise, and sunset (from the JSON data) + and provides methods to get/access the information.
+
+
CurrentWeatherData.Sys() - Constructor for class net.aksingh.java.api.owm.CurrentWeatherData.Sys
+
+
Non-parameterized constructor
+
+
CurrentWeatherData.Sys(JSONObject) - Constructor for class net.aksingh.java.api.owm.CurrentWeatherData.Sys
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
CurrentWeatherData.Weather - Class in net.aksingh.java.api.owm
+
+
Parses data about weather code, name, etc.
+
+
CurrentWeatherData.Weather() - Constructor for class net.aksingh.java.api.owm.CurrentWeatherData.Weather
+
+
Non-parameterized constructor
+
+
CurrentWeatherData.Weather(JSONObject) - Constructor for class net.aksingh.java.api.owm.CurrentWeatherData.Weather
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
CurrentWeatherData.Wind - Class in net.aksingh.java.api.owm
+
+
Parses data about winds (from the JSON data) and provides methods + to get/access the information.
+
+
CurrentWeatherData.Wind() - Constructor for class net.aksingh.java.api.owm.CurrentWeatherData.Wind
+
+
Non-parameterized constructor
+
+
CurrentWeatherData.Wind(JSONObject) - Constructor for class net.aksingh.java.api.owm.CurrentWeatherData.Wind
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
currentWeatherFromResponse(String) - Method in class net.aksingh.java.api.owm.OpenWeatherMap
+
 
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-4.html b/javadoc/index-files/index-4.html new file mode 100644 index 0000000..ee92aed --- /dev/null +++ b/javadoc/index-files/index-4.html @@ -0,0 +1,245 @@ + + + + + + +D-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

D

+
+
dailyForecastByCityCode(long, byte) - Method in class net.aksingh.java.api.owm.OpenWeatherMap
+
 
+
dailyForecastByCityCode(long, byte) - Method in class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
+
 
+
dailyForecastByCityName(String, byte) - Method in class net.aksingh.java.api.owm.OpenWeatherMap
+
 
+
dailyForecastByCityName(String, String, byte) - Method in class net.aksingh.java.api.owm.OpenWeatherMap
+
 
+
dailyForecastByCityName(String, byte) - Method in class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
+
 
+
dailyForecastByCityName(String, String, byte) - Method in class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
+
 
+
dailyForecastByCoordinates(float, float, byte) - Method in class net.aksingh.java.api.owm.OpenWeatherMap
+
 
+
dailyForecastByCoordinates(float, float, byte) - Method in class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
+
 
+
DailyForecastData - Class in net.aksingh.java.api.owm
+
+
Parses daily forecast data (from the JSON data) and provides methods + to get/access the information about daily forecasted weather.
+
+
DailyForecastData(JSONObject) - Constructor for class net.aksingh.java.api.owm.DailyForecastData
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
DailyForecastData.City - Class in net.aksingh.java.api.owm
+
+
Parses data about city (from the JSON data) + and provides methods to get/access the information.
+
+
DailyForecastData.City() - Constructor for class net.aksingh.java.api.owm.DailyForecastData.City
+
+
Non-parameterized constructor
+
+
DailyForecastData.City(JSONObject) - Constructor for class net.aksingh.java.api.owm.DailyForecastData.City
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
DailyForecastData.City.Coord - Class in net.aksingh.java.api.owm
+
+
Parses data about geographic coordinates (from the JSON data) + and provides methods to get/access the information.
+
+
DailyForecastData.City.Coord() - Constructor for class net.aksingh.java.api.owm.DailyForecastData.City.Coord
+
+
Non-parameterized constructor
+
+
DailyForecastData.City.Coord(JSONObject) - Constructor for class net.aksingh.java.api.owm.DailyForecastData.City.Coord
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
DailyForecastData.Forecast - Class in net.aksingh.java.api.owm
+
+
Parses data about forecasts (from the JSON data) + and provides methods to get/access the information.
+
+
DailyForecastData.Forecast() - Constructor for class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
+
Non-parameterized constructor
+
+
DailyForecastData.Forecast(JSONObject) - Constructor for class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
DailyForecastData.Forecast.Temperature - Class in net.aksingh.java.api.owm
+
+
Parses data about temperature (from the JSON data) + and provides methods to get/access the information.
+
+
DailyForecastData.Forecast.Temperature() - Constructor for class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
+
Non-parameterized constructor
+
+
DailyForecastData.Forecast.Temperature(JSONObject) - Constructor for class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
DailyForecastData.Forecast.Weather - Class in net.aksingh.java.api.owm
+
+
Parses data about weather (from the JSON data) + and provides methods to get/access the information.
+
+
DailyForecastData.Forecast.Weather() - Constructor for class net.aksingh.java.api.owm.DailyForecastData.Forecast.Weather
+
+
Non-parameterized constructor
+
+
DailyForecastData.Forecast.Weather(JSONObject) - Constructor for class net.aksingh.java.api.owm.DailyForecastData.Forecast.Weather
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
dailyForecastFromResponse(String) - Method in class net.aksingh.java.api.owm.OpenWeatherMap
+
 
+
dateTime - Variable in class net.aksingh.java.api.owm.AbstractWeatherData
+
+
Date and time of the weather.
+
+
dateTimeText - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
+
Date time text
+
+
dayTemp - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
+
Day temperature
+
+
degree - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Wind
+
+
Wind degree (direction of wind)
+
+
description - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Weather description
+
+
downloadPage(String) - Static method in class net.aksingh.java.api.owm.Tools.Downloader
+
+
Downloads a page/content from the Internet.
+
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-5.html b/javadoc/index-files/index-5.html new file mode 100644 index 0000000..b7657a5 --- /dev/null +++ b/javadoc/index-files/index-5.html @@ -0,0 +1,121 @@ + + + + + + +E-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

E

+
+
eveTemp - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
+
Evening temperature
+
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-6.html b/javadoc/index-files/index-6.html new file mode 100644 index 0000000..92a70b3 --- /dev/null +++ b/javadoc/index-files/index-6.html @@ -0,0 +1,282 @@ + + + + + + +F-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

F

+
+
forecastList - Variable in class net.aksingh.java.api.owm.DailyForecastData
+
+
List of forecast information
+
+
forecastList - Variable in class net.aksingh.java.api.owm.ForecastWeatherData
+
+
List of forecast information
+
+
forecastListCount - Variable in class net.aksingh.java.api.owm.DailyForecastData
+
+
Count (number) of elements in list of forecast information
+
+
forecastListCount - Variable in class net.aksingh.java.api.owm.ForecastWeatherData
+
+
Count (number) of elements in list of forecast information
+
+
forecastWeatherByCityCode(long) - Method in class net.aksingh.java.api.owm.OpenWeatherMap
+
 
+
forecastWeatherByCityCode(long) - Method in class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
+
 
+
forecastWeatherByCityName(String) - Method in class net.aksingh.java.api.owm.OpenWeatherMap
+
 
+
forecastWeatherByCityName(String, String) - Method in class net.aksingh.java.api.owm.OpenWeatherMap
+
 
+
forecastWeatherByCityName(String) - Method in class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
+
 
+
forecastWeatherByCityName(String, String) - Method in class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
+
 
+
forecastWeatherByCoordinates(float, float) - Method in class net.aksingh.java.api.owm.OpenWeatherMap
+
 
+
forecastWeatherByCoordinates(float, float) - Method in class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
+
 
+
ForecastWeatherData - Class in net.aksingh.java.api.owm
+
+
Parses forecast weather data (from the JSON data) and provides methods + to get/access the information about forecasted weather.
+
+
ForecastWeatherData(JSONObject) - Constructor for class net.aksingh.java.api.owm.ForecastWeatherData
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
ForecastWeatherData.City - Class in net.aksingh.java.api.owm
+
+
Parses data about city (from the JSON data) + and provides methods to get/access the information.
+
+
ForecastWeatherData.City() - Constructor for class net.aksingh.java.api.owm.ForecastWeatherData.City
+
+
Non-parameterized constructor
+
+
ForecastWeatherData.City(JSONObject) - Constructor for class net.aksingh.java.api.owm.ForecastWeatherData.City
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
ForecastWeatherData.City.Coord - Class in net.aksingh.java.api.owm
+
+
Parses data about geographic coordinates (from the JSON data) + and provides methods to get/access the information.
+
+
ForecastWeatherData.City.Coord() - Constructor for class net.aksingh.java.api.owm.ForecastWeatherData.City.Coord
+
+
Non-parameterized constructor
+
+
ForecastWeatherData.City.Coord(JSONObject) - Constructor for class net.aksingh.java.api.owm.ForecastWeatherData.City.Coord
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
ForecastWeatherData.Forecast - Class in net.aksingh.java.api.owm
+
+
Parses data about forecasts (from the JSON data) + and provides methods to get/access the information.
+
+
ForecastWeatherData.Forecast() - Constructor for class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
+
Non-parameterized constructor
+
+
ForecastWeatherData.Forecast(JSONObject) - Constructor for class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
ForecastWeatherData.Forecast.Clouds - Class in net.aksingh.java.api.owm
+
+
Parses data about clouds (from the JSON data) + and provides methods to get/access the information.
+
+
ForecastWeatherData.Forecast.Clouds() - Constructor for class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Clouds
+
+
Non-parameterized constructor
+
+
ForecastWeatherData.Forecast.Clouds(JSONObject) - Constructor for class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Clouds
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
ForecastWeatherData.Forecast.Main - Class in net.aksingh.java.api.owm
+
+
Parses data about main weather elements (from the JSON data) + and provides methods to get/access the information.
+
+
ForecastWeatherData.Forecast.Main() - Constructor for class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Main
+
+
Non-parameterized constructor
+
+
ForecastWeatherData.Forecast.Main(JSONObject) - Constructor for class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Main
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
ForecastWeatherData.Forecast.Sys - Class in net.aksingh.java.api.owm
+
+
Parses data about main weather elements (from the JSON data) + and provides methods to get/access the information.
+
+
ForecastWeatherData.Forecast.Sys() - Constructor for class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Sys
+
+
Non-parameterized constructor
+
+
ForecastWeatherData.Forecast.Sys(JSONObject) - Constructor for class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Sys
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
ForecastWeatherData.Forecast.Weather - Class in net.aksingh.java.api.owm
+
+
Parses data about weather (from the JSON data) + and provides methods to get/access the information.
+
+
ForecastWeatherData.Forecast.Weather() - Constructor for class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Weather
+
+
Non-parameterized constructor
+
+
ForecastWeatherData.Forecast.Weather(JSONObject) - Constructor for class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Weather
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
ForecastWeatherData.Forecast.Wind - Class in net.aksingh.java.api.owm
+
+
Parses data about wind (from the JSON data) + and provides methods to get/access the information.
+
+
ForecastWeatherData.Forecast.Wind() - Constructor for class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Wind
+
+
Non-parameterized constructor
+
+
ForecastWeatherData.Forecast.Wind(JSONObject) - Constructor for class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Wind
+
+
Parameterized constructor + + Initializes variables from values from the given JSON object.
+
+
forecastWeatherFromResponse(String) - Method in class net.aksingh.java.api.owm.OpenWeatherMap
+
 
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-7.html b/javadoc/index-files/index-7.html new file mode 100644 index 0000000..e185ecf --- /dev/null +++ b/javadoc/index-files/index-7.html @@ -0,0 +1,317 @@ + + + + + + +G-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

G

+
+
getBaseStation() - Method in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
getCity_Object() - Method in class net.aksingh.java.api.owm.DailyForecastData
+
 
+
getCity_Object() - Method in class net.aksingh.java.api.owm.ForecastWeatherData
+
 
+
getCityCode() - Method in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
getCityCode() - Method in class net.aksingh.java.api.owm.DailyForecastData.City
+
 
+
getCityCode() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
 
+
getCityName() - Method in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
getCityName() - Method in class net.aksingh.java.api.owm.DailyForecastData.City
+
 
+
getCityName() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
 
+
getCityPopulation() - Method in class net.aksingh.java.api.owm.DailyForecastData.City
+
 
+
getCityPopulation() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
 
+
getClouds_Object() - Method in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
getClouds_Object() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
 
+
getCoordinates_Object() - Method in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
getCoordinates_Object() - Method in class net.aksingh.java.api.owm.DailyForecastData.City
+
 
+
getCoordinates_Object() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
 
+
getCountryCode() - Method in class net.aksingh.java.api.owm.CurrentWeatherData.Sys
+
 
+
getCountryCode() - Method in class net.aksingh.java.api.owm.DailyForecastData.City
+
 
+
getCountryCode() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
 
+
getDateTime() - Method in class net.aksingh.java.api.owm.AbstractWeatherData
+
+
Returns data for date and time of this weather.
+
+
getDateTimeText() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
 
+
getDayTemperature() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
 
+
getEveningTemperature() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
 
+
getForecast_List() - Method in class net.aksingh.java.api.owm.DailyForecastData
+
 
+
getForecast_List() - Method in class net.aksingh.java.api.owm.ForecastWeatherData
+
 
+
getForecast_List_Count() - Method in class net.aksingh.java.api.owm.DailyForecastData
+
 
+
getForecast_List_Count() - Method in class net.aksingh.java.api.owm.ForecastWeatherData
+
 
+
getGroundLevel() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Main
+
 
+
getHumidity() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Returns data for humidity of the city.
+
+
getHumidity() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
 
+
getLatitude() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Coord
+
+
Returns data for latitude of the city.
+
+
getLongitude() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Coord
+
+
Returns data for longitude of the city.
+
+
getMainData_Object() - Method in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
getMainData_Object() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
 
+
getMaximumTemperature() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
 
+
getMaxTemperature() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Returns data for maximum temperature of the city.
+
+
getMinimumTemperature() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
 
+
getMinTemperature() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Returns data for minimum temperature of the city.
+
+
getMorningTemperature() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
 
+
getNightTemperature() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
 
+
getParameter() - Method in enum net.aksingh.java.api.owm.OpenWeatherMap.OWM_URL
+
+
Returns the parameter.
+
+
getPercentageOfClouds() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Clouds
+
+
Returns data for percentage of all clouds.
+
+
getPercentageOfClouds() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
 
+
getPod() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Sys
+
 
+
getPressure() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Returns data for pressure of the city.
+
+
getPressure() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
 
+
getRain3Hours() - Method in class net.aksingh.java.api.owm.CurrentWeatherData.Rain
+
 
+
getRain_Object() - Method in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
getResponseCode() - Method in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
getResponseCode() - Method in class net.aksingh.java.api.owm.DailyForecastData
+
 
+
getResponseCode() - Method in class net.aksingh.java.api.owm.ForecastWeatherData
+
 
+
getResponseForecastCount() - Method in class net.aksingh.java.api.owm.DailyForecastData
+
 
+
getResponseForecastCount() - Method in class net.aksingh.java.api.owm.ForecastWeatherData
+
 
+
getResponseTime() - Method in class net.aksingh.java.api.owm.DailyForecastData
+
 
+
getResponseTime() - Method in class net.aksingh.java.api.owm.ForecastWeatherData
+
 
+
getSeaLevel() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Main
+
 
+
getSunriseTime() - Method in class net.aksingh.java.api.owm.CurrentWeatherData.Sys
+
 
+
getSunsetTime() - Method in class net.aksingh.java.api.owm.CurrentWeatherData.Sys
+
 
+
getSysData_Object() - Method in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
getSysData_Object() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
 
+
getTemperature() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Returns data for temperature of the city.
+
+
getTemperature_Object() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
 
+
getTempKF() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Main
+
 
+
getWeather_List() - Method in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
getWeather_List() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
 
+
getWeather_List() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
 
+
getWeather_List_Count() - Method in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
getWeather_List_Count() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
 
+
getWeather_List_Count() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
 
+
getWeatherCode() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Returns data for code for weather of the city.
+
+
getWeatherDescription() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Returns data for description for weather of the city.
+
+
getWeatherIconName() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Returns data for name of icon for weather of the city.
+
+
getWeatherName() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Returns data for name for weather of the city.
+
+
getWind_Object() - Method in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
getWind_Object() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
 
+
getWindDegree() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Wind
+
+
Returns data for degree of wind in the city.
+
+
getWindDegree() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
 
+
getWindGust() - Method in class net.aksingh.java.api.owm.CurrentWeatherData.Wind
+
 
+
getWindSpeed() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Wind
+
+
Returns data for speed of wind in the city.
+
+
getWindSpeed() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
 
+
groundLevel - Variable in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Main
+
+
Ground level
+
+
gust - Variable in class net.aksingh.java.api.owm.CurrentWeatherData.Wind
+
+
Wind gust
+
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-8.html b/javadoc/index-files/index-8.html new file mode 100644 index 0000000..f0c38a8 --- /dev/null +++ b/javadoc/index-files/index-8.html @@ -0,0 +1,274 @@ + + + + + + +H-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

H

+
+
hasBaseStation() - Method in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
hasCityCode() - Method in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
hasCityCode() - Method in class net.aksingh.java.api.owm.DailyForecastData.City
+
 
+
hasCityCode() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
 
+
hasCityName() - Method in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
hasCityName() - Method in class net.aksingh.java.api.owm.DailyForecastData.City
+
 
+
hasCityName() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
 
+
hasCityPopulation() - Method in class net.aksingh.java.api.owm.DailyForecastData.City
+
 
+
hasCityPopulation() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
 
+
hasCountryCode() - Method in class net.aksingh.java.api.owm.CurrentWeatherData.Sys
+
 
+
hasCountryCode() - Method in class net.aksingh.java.api.owm.DailyForecastData.City
+
 
+
hasCountryCode() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.City
+
 
+
hasDateTime() - Method in class net.aksingh.java.api.owm.AbstractWeatherData
+
+
Tells if the data for date and time of this weather is available or not.
+
+
hasDateTimeText() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
 
+
hasDayTemperature() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
 
+
hasEveningTemperature() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
 
+
hasForecast_List() - Method in class net.aksingh.java.api.owm.DailyForecastData
+
 
+
hasForecast_List() - Method in class net.aksingh.java.api.owm.ForecastWeatherData
+
 
+
hasGroundLevel() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Main
+
 
+
hasHumidity() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Tells if the data for humidity of the city is available or not.
+
+
hasHumidity() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
 
+
hasLatitude() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Coord
+
+
Tells if the data for latitude of the city is available or not.
+
+
hasLongitude() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Coord
+
+
Tells if the data for longitude of the city is available or not.
+
+
hasMaximumTemperature() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
 
+
hasMaxTemperature() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Tells if the data for maximum temperature of the city is available or not.
+
+
hasMinimumTemperature() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
 
+
hasMinTemperature() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Tells if the data for minimum temperature of the city is available or not.
+
+
hasMorningTemperature() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
 
+
hasNightTemperature() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
+
 
+
hasPercentageOfClouds() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Clouds
+
+
Tells if the data for percentage of all clouds is available or not.
+
+
hasPercentageOfClouds() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
 
+
hasPod() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Sys
+
 
+
hasPressure() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Tells if the data for pressure of the city is available or not.
+
+
hasPressure() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
 
+
hasRain3Hours() - Method in class net.aksingh.java.api.owm.CurrentWeatherData.Rain
+
 
+
hasResponseCode() - Method in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
hasResponseCode() - Method in class net.aksingh.java.api.owm.DailyForecastData
+
 
+
hasResponseCode() - Method in class net.aksingh.java.api.owm.ForecastWeatherData
+
 
+
hasResponseForecastCount() - Method in class net.aksingh.java.api.owm.DailyForecastData
+
 
+
hasResponseForecastCount() - Method in class net.aksingh.java.api.owm.ForecastWeatherData
+
 
+
hasResponseTime() - Method in class net.aksingh.java.api.owm.DailyForecastData
+
 
+
hasResponseTime() - Method in class net.aksingh.java.api.owm.ForecastWeatherData
+
 
+
hasSeaLevel() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Main
+
 
+
hasSunriseTime() - Method in class net.aksingh.java.api.owm.CurrentWeatherData.Sys
+
 
+
hasSunsetTime() - Method in class net.aksingh.java.api.owm.CurrentWeatherData.Sys
+
 
+
hasTemperature() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Tells if the data for temperature of the city is available or not.
+
+
hasTempKF() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Main
+
 
+
hasWeather_List() - Method in class net.aksingh.java.api.owm.CurrentWeatherData
+
 
+
hasWeather_List() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
 
+
hasWeather_List() - Method in class net.aksingh.java.api.owm.ForecastWeatherData.Forecast
+
 
+
hasWeatherCode() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Tells if the data for weather's code is available or not.
+
+
hasWeatherDescription() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Tells if the data for weather's description is available or not.
+
+
hasWeatherIconName() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Tells if the data for name of weather's icon is available or not.
+
+
hasWeatherName() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Tells if the data for weather's name is available or not.
+
+
hasWindDegree() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Wind
+
+
Tells if the data for degree (degree gives direction) of wind + in the city is available or not.
+
+
hasWindDegree() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
 
+
hasWindGust() - Method in class net.aksingh.java.api.owm.CurrentWeatherData.Wind
+
 
+
hasWindSpeed() - Method in class net.aksingh.java.api.owm.AbstractWeatherData.Wind
+
+
Tells if the data for speed of wind in the city is available or not.
+
+
hasWindSpeed() - Method in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
 
+
humidity - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Main
+
+
Humidity
+
+
humidity - Variable in class net.aksingh.java.api.owm.DailyForecastData.Forecast
+
+
Humidity
+
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index-files/index-9.html b/javadoc/index-files/index-9.html new file mode 100644 index 0000000..db16e71 --- /dev/null +++ b/javadoc/index-files/index-9.html @@ -0,0 +1,125 @@ + + + + + + +I-Index (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I J L M N O P R S T V W  + + +

I

+
+
icon - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Weather icon
+
+
id - Variable in class net.aksingh.java.api.owm.AbstractWeatherData.Weather
+
+
Weather ID
+
+
+A B C D E F G H I J L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/javadoc/index.html b/javadoc/index.html new file mode 100644 index 0000000..77fec28 --- /dev/null +++ b/javadoc/index.html @@ -0,0 +1,31 @@ + + + + + + +OpenWeatherMap.org JAPIs + + + + + + +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<h2>Frame Alert</h2> +<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="net/aksingh/java/api/owm/package-summary.html">Non-frame version</a>.</p> + + + diff --git a/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Clouds.html b/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Clouds.html new file mode 100644 index 0000000..c099cfc --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Clouds.html @@ -0,0 +1,382 @@ + + + + + + +AbstractWeatherData.Clouds (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class AbstractWeatherData.Clouds

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.AbstractWeatherData.Clouds
    • +
    +
  • +
+
+
    +
  • +
    +
    Direct Known Subclasses:
    +
    CurrentWeatherData.Clouds, ForecastWeatherData.Forecast.Clouds
    +
    +
    +
    Enclosing class:
    +
    AbstractWeatherData
    +
    +
    +
    +
    public abstract static class AbstractWeatherData.Clouds
    +extends java.lang.Object
    +
    This class provides default implementations for Clouds. + Standard behaviors like the has and the get + methods for information about clouds (for example, percentage of + clouds, etc.) are defined here.
    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/07/27
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + + + +
      Fields 
      Modifier and TypeField and Description
      private java.lang.StringJSON_CLOUDS_ALL +
      Key for JSON variable Clouds -> All + (percentage of all clouds)
      +
      private floatpercentOfClouds +
      Percentage of all clouds
      +
      +
    • +
    + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + + +
      Constructors 
      Constructor and Description
      AbstractWeatherData.Clouds() +
      Non-parameterized constructor
      +
      AbstractWeatherData.Clouds(org.json.JSONObject jsonObj) +
      Parameterized constructor + + Initializes variables from values from the given JSON object.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      floatgetPercentageOfClouds() +
      Returns data for percentage of all clouds.
      +
      booleanhasPercentageOfClouds() +
      Tells if the data for percentage of all clouds is available or not.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        JSON_CLOUDS_ALL

        +
        private final java.lang.String JSON_CLOUDS_ALL
        +
        Key for JSON variable Clouds -> All + (percentage of all clouds)
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        percentOfClouds

        +
        private final float percentOfClouds
        +
        Percentage of all clouds
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        AbstractWeatherData.Clouds

        +
        public AbstractWeatherData.Clouds()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        AbstractWeatherData.Clouds

        +
        public AbstractWeatherData.Clouds(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about clouds
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasPercentageOfClouds

        +
        public boolean hasPercentageOfClouds()
        +
        Tells if the data for percentage of all clouds is available or not.
        +
        Returns:
        true if data available, otherwise false
        +
      • +
      + + + +
        +
      • +

        getPercentageOfClouds

        +
        public float getPercentageOfClouds()
        +
        Returns data for percentage of all clouds.
        +
        Returns:
        Percentage of all clouds if available, + otherwise Float.NaN, i.e., Not a Number.
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Coord.html b/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Coord.html new file mode 100644 index 0000000..ed7e74b --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Coord.html @@ -0,0 +1,446 @@ + + + + + + +AbstractWeatherData.Coord (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class AbstractWeatherData.Coord

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.AbstractWeatherData.Coord
    • +
    +
  • +
+
+
    +
  • +
    +
    Direct Known Subclasses:
    +
    CurrentWeatherData.Coord, DailyForecastData.City.Coord, ForecastWeatherData.City.Coord
    +
    +
    +
    Enclosing class:
    +
    AbstractWeatherData
    +
    +
    +
    +
    public abstract static class AbstractWeatherData.Coord
    +extends java.lang.Object
    +
    This class provides default implementations for Coord. + Standard behaviors like the has and the get + methods for information about geographic coordinates (latitude + and longitude) are defined here.
    +
    Version:
    +
    2013/07/28
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + + + + + + + + + + + +
      Fields 
      Modifier and TypeField and Description
      private java.lang.StringJSON_COORD_LATITUDE +
      Key for JSON variable Coord -> Latitude
      +
      private java.lang.StringJSON_COORD_LONGITUDE +
      Key for JSON variable Coord -> Longitude
      +
      private floatlat +
      Latitude
      +
      private floatlon +
      Longitude
      +
      +
    • +
    + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + + +
      Constructors 
      Constructor and Description
      AbstractWeatherData.Coord() +
      Non-parameterized constructor
      +
      AbstractWeatherData.Coord(org.json.JSONObject jsonObj) +
      Parameterized constructor + + Initializes variables from values from the given JSON object.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      floatgetLatitude() +
      Returns data for latitude of the city.
      +
      floatgetLongitude() +
      Returns data for longitude of the city.
      +
      booleanhasLatitude() +
      Tells if the data for latitude of the city is available or not.
      +
      booleanhasLongitude() +
      Tells if the data for longitude of the city is available or not.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        JSON_COORD_LATITUDE

        +
        private final java.lang.String JSON_COORD_LATITUDE
        +
        Key for JSON variable Coord -> Latitude
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_COORD_LONGITUDE

        +
        private final java.lang.String JSON_COORD_LONGITUDE
        +
        Key for JSON variable Coord -> Longitude
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        lat

        +
        private final float lat
        +
        Latitude
        +
      • +
      + + + +
        +
      • +

        lon

        +
        private final float lon
        +
        Longitude
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        AbstractWeatherData.Coord

        +
        public AbstractWeatherData.Coord()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        AbstractWeatherData.Coord

        +
        public AbstractWeatherData.Coord(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about coordinates
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasLatitude

        +
        public boolean hasLatitude()
        +
        Tells if the data for latitude of the city is available or not.
        +
        Returns:
        true if data available, otherwise false
        +
      • +
      + + + +
        +
      • +

        hasLongitude

        +
        public boolean hasLongitude()
        +
        Tells if the data for longitude of the city is available or not.
        +
        Returns:
        true if data available, otherwise false
        +
      • +
      + + + +
        +
      • +

        getLatitude

        +
        public float getLatitude()
        +
        Returns data for latitude of the city.
        +
        Returns:
        Latitude of the city if available, + otherwise Float.NaN, i.e., Not a Number.
        +
      • +
      + + + +
        +
      • +

        getLongitude

        +
        public float getLongitude()
        +
        Returns data for longitude of the city.
        +
        Returns:
        Longitude of the city if available, + otherwise Float.NaN, i.e., Not a Number.
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Main.html b/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Main.html new file mode 100644 index 0000000..0706ad8 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Main.html @@ -0,0 +1,653 @@ + + + + + + +AbstractWeatherData.Main (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class AbstractWeatherData.Main

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.AbstractWeatherData.Main
    • +
    +
  • +
+
+
    +
  • +
    +
    Direct Known Subclasses:
    +
    CurrentWeatherData.Main, ForecastWeatherData.Forecast.Main
    +
    +
    +
    Enclosing class:
    +
    AbstractWeatherData
    +
    +
    +
    +
    public abstract static class AbstractWeatherData.Main
    +extends java.lang.Object
    +
    This class provides default implementations for Main. + Standard behaviors like the has and the get + methods for information about main weather elements (for example, + temperature, pressure, humidity, etc.) are defined here.
    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/07/28
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Fields 
      Modifier and TypeField and Description
      private floathumidity +
      Humidity
      +
      private java.lang.StringJSON_MAIN_HUMIDITY +
      Key for JSON variable Main -> Humidity
      +
      private java.lang.StringJSON_MAIN_PRESSURE +
      Key for JSON variable Main -> Pressure
      +
      private java.lang.StringJSON_MAIN_TEMP +
      Key for JSON variable Main -> Temperature
      +
      private java.lang.StringJSON_MAIN_TEMP_MAX +
      Key for JSON variable Main -> Maximum temperature
      +
      private java.lang.StringJSON_MAIN_TEMP_MIN +
      Key for JSON variable Main -> Minimum temperature
      +
      private floatmaxTemp +
      Maximum temperature
      +
      private floatminTemp +
      Minimum temperature
      +
      private floatpressure +
      Pressure
      +
      private floattemp +
      Temperature
      +
      +
    • +
    + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + + +
      Constructors 
      Constructor and Description
      AbstractWeatherData.Main() +
      Non-parameterized constructor
      +
      AbstractWeatherData.Main(org.json.JSONObject jsonObj) +
      Parameterized constructor + + Initializes variables from values from the given JSON object.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      floatgetHumidity() +
      Returns data for humidity of the city.
      +
      floatgetMaxTemperature() +
      Returns data for maximum temperature of the city.
      +
      floatgetMinTemperature() +
      Returns data for minimum temperature of the city.
      +
      floatgetPressure() +
      Returns data for pressure of the city.
      +
      floatgetTemperature() +
      Returns data for temperature of the city.
      +
      booleanhasHumidity() +
      Tells if the data for humidity of the city is available or not.
      +
      booleanhasMaxTemperature() +
      Tells if the data for maximum temperature of the city is available or not.
      +
      booleanhasMinTemperature() +
      Tells if the data for minimum temperature of the city is available or not.
      +
      booleanhasPressure() +
      Tells if the data for pressure of the city is available or not.
      +
      booleanhasTemperature() +
      Tells if the data for temperature of the city is available or not.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        JSON_MAIN_TEMP

        +
        private final java.lang.String JSON_MAIN_TEMP
        +
        Key for JSON variable Main -> Temperature
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_MAIN_TEMP_MIN

        +
        private final java.lang.String JSON_MAIN_TEMP_MIN
        +
        Key for JSON variable Main -> Minimum temperature
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_MAIN_TEMP_MAX

        +
        private final java.lang.String JSON_MAIN_TEMP_MAX
        +
        Key for JSON variable Main -> Maximum temperature
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_MAIN_PRESSURE

        +
        private final java.lang.String JSON_MAIN_PRESSURE
        +
        Key for JSON variable Main -> Pressure
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_MAIN_HUMIDITY

        +
        private final java.lang.String JSON_MAIN_HUMIDITY
        +
        Key for JSON variable Main -> Humidity
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        temp

        +
        private final float temp
        +
        Temperature
        +
      • +
      + + + +
        +
      • +

        minTemp

        +
        private final float minTemp
        +
        Minimum temperature
        +
      • +
      + + + +
        +
      • +

        maxTemp

        +
        private final float maxTemp
        +
        Maximum temperature
        +
      • +
      + + + +
        +
      • +

        pressure

        +
        private final float pressure
        +
        Pressure
        +
      • +
      + + + +
        +
      • +

        humidity

        +
        private final float humidity
        +
        Humidity
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        AbstractWeatherData.Main

        +
        public AbstractWeatherData.Main()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        AbstractWeatherData.Main

        +
        public AbstractWeatherData.Main(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about main weather + elements. For example, temperature, pressure, etc.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasTemperature

        +
        public boolean hasTemperature()
        +
        Tells if the data for temperature of the city is available or not.
        +
        Returns:
        true if data available, otherwise false
        +
      • +
      + + + +
        +
      • +

        hasMinTemperature

        +
        public boolean hasMinTemperature()
        +
        Tells if the data for minimum temperature of the city is available or not.
        +
        Returns:
        true if data available, otherwise false
        +
      • +
      + + + +
        +
      • +

        hasMaxTemperature

        +
        public boolean hasMaxTemperature()
        +
        Tells if the data for maximum temperature of the city is available or not.
        +
        Returns:
        true if data available, otherwise false
        +
      • +
      + + + +
        +
      • +

        hasPressure

        +
        public boolean hasPressure()
        +
        Tells if the data for pressure of the city is available or not.
        +
        Returns:
        true if data available, otherwise false
        +
      • +
      + + + +
        +
      • +

        hasHumidity

        +
        public boolean hasHumidity()
        +
        Tells if the data for humidity of the city is available or not.
        +
        Returns:
        true if data available, otherwise false
        +
      • +
      + + + +
        +
      • +

        getTemperature

        +
        public float getTemperature()
        +
        Returns data for temperature of the city.
        +
        Returns:
        Temperature of the city if available, + otherwise Float.NaN, i.e., Not a Number.
        +
      • +
      + + + +
        +
      • +

        getMinTemperature

        +
        public float getMinTemperature()
        +
        Returns data for minimum temperature of the city.
        +
        Returns:
        Minimum temperature of the city if available, + otherwise Float.NaN, i.e., Not a Number.
        +
      • +
      + + + +
        +
      • +

        getMaxTemperature

        +
        public float getMaxTemperature()
        +
        Returns data for maximum temperature of the city.
        +
        Returns:
        Maximum temperature of the city if available, + otherwise Float.NaN, i.e., Not a Number.
        +
      • +
      + + + +
        +
      • +

        getPressure

        +
        public float getPressure()
        +
        Returns data for pressure of the city.
        +
        Returns:
        Pressure of the city if available, + otherwise Float.NaN, i.e., Not a Number.
        +
      • +
      + + + +
        +
      • +

        getHumidity

        +
        public float getHumidity()
        +
        Returns data for humidity of the city.
        +
        Returns:
        Humidity of the city if available, + otherwise Float.NaN, i.e., Not a Number.
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Weather.html b/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Weather.html new file mode 100644 index 0000000..e418063 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Weather.html @@ -0,0 +1,584 @@ + + + + + + +AbstractWeatherData.Weather (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class AbstractWeatherData.Weather

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.AbstractWeatherData.Weather
    • +
    +
  • +
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Fields 
      Modifier and TypeField and Description
      private java.lang.Stringdescription +
      Weather description
      +
      private java.lang.Stringicon +
      Weather icon
      +
      private intid +
      Weather ID
      +
      private java.lang.StringJSON_WEATHER_DESCRIPTION +
      Key for JSON variable Weather -> Description
      +
      private java.lang.StringJSON_WEATHER_ICON +
      Key for JSON variable in array Weather -> Icon
      +
      private java.lang.StringJSON_WEATHER_ID +
      Key for JSON variable in array Weather -> ID
      +
      private java.lang.StringJSON_WEATHER_MAIN +
      Key for JSON variable in array Weather -> Main (name of weather)
      +
      private java.lang.Stringname +
      Weather name
      +
      +
    • +
    + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + + +
      Constructors 
      Constructor and Description
      AbstractWeatherData.Weather() +
      Non-parameterized constructor
      +
      AbstractWeatherData.Weather(org.json.JSONObject jsonObj) +
      Parameterized constructor + + Initializes variables from values from the given JSON object.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      intgetWeatherCode() +
      Returns data for code for weather of the city.
      +
      java.lang.StringgetWeatherDescription() +
      Returns data for description for weather of the city.
      +
      java.lang.StringgetWeatherIconName() +
      Returns data for name of icon for weather of the city.
      +
      java.lang.StringgetWeatherName() +
      Returns data for name for weather of the city.
      +
      booleanhasWeatherCode() +
      Tells if the data for weather's code is available or not.
      +
      booleanhasWeatherDescription() +
      Tells if the data for weather's description is available or not.
      +
      booleanhasWeatherIconName() +
      Tells if the data for name of weather's icon is available or not.
      +
      booleanhasWeatherName() +
      Tells if the data for weather's name is available or not.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        JSON_WEATHER_ID

        +
        private final java.lang.String JSON_WEATHER_ID
        +
        Key for JSON variable in array Weather -> ID
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_WEATHER_MAIN

        +
        private final java.lang.String JSON_WEATHER_MAIN
        +
        Key for JSON variable in array Weather -> Main (name of weather)
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_WEATHER_DESCRIPTION

        +
        private final java.lang.String JSON_WEATHER_DESCRIPTION
        +
        Key for JSON variable Weather -> Description
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_WEATHER_ICON

        +
        private final java.lang.String JSON_WEATHER_ICON
        +
        Key for JSON variable in array Weather -> Icon
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        id

        +
        private final int id
        +
        Weather ID
        +
      • +
      + + + +
        +
      • +

        name

        +
        private final java.lang.String name
        +
        Weather name
        +
      • +
      + + + +
        +
      • +

        description

        +
        private final java.lang.String description
        +
        Weather description
        +
      • +
      + + + +
        +
      • +

        icon

        +
        private final java.lang.String icon
        +
        Weather icon
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        AbstractWeatherData.Weather

        +
        public AbstractWeatherData.Weather()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        AbstractWeatherData.Weather

        +
        public AbstractWeatherData.Weather(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about weather id, name, etc.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasWeatherCode

        +
        public boolean hasWeatherCode()
        +
        Tells if the data for weather's code is available or not.
        +
        Returns:
        true if data available, otherwise false
        +
      • +
      + + + +
        +
      • +

        hasWeatherName

        +
        public boolean hasWeatherName()
        +
        Tells if the data for weather's name is available or not.
        +
        Returns:
        true if data available, otherwise false
        +
      • +
      + + + +
        +
      • +

        hasWeatherDescription

        +
        public boolean hasWeatherDescription()
        +
        Tells if the data for weather's description is available or not.
        +
        Returns:
        true if data available, otherwise false
        +
      • +
      + + + +
        +
      • +

        hasWeatherIconName

        +
        public boolean hasWeatherIconName()
        +
        Tells if the data for name of weather's icon is available or not.
        +
        Returns:
        true if data available, otherwise false
        +
      • +
      + + + +
        +
      • +

        getWeatherCode

        +
        public int getWeatherCode()
        +
        Returns data for code for weather of the city.
        +
        Returns:
        Code for weather of the city if available, + otherwise Integer.MIN_VALUE
        +
      • +
      + + + +
        +
      • +

        getWeatherName

        +
        public java.lang.String getWeatherName()
        +
        Returns data for name for weather of the city.
        +
        Returns:
        Name for weather of the city if available, + otherwise null
        +
      • +
      + + + +
        +
      • +

        getWeatherDescription

        +
        public java.lang.String getWeatherDescription()
        +
        Returns data for description for weather of the city.
        +
        Returns:
        Description for weather of the city if available, + otherwise null
        +
      • +
      + + + +
        +
      • +

        getWeatherIconName

        +
        public java.lang.String getWeatherIconName()
        +
        Returns data for name of icon for weather of the city.
        +
        Returns:
        Name of icon for weather of the city if available, + otherwise null
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Wind.html b/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Wind.html new file mode 100644 index 0000000..0c9a434 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.Wind.html @@ -0,0 +1,450 @@ + + + + + + +AbstractWeatherData.Wind (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class AbstractWeatherData.Wind

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.AbstractWeatherData.Wind
    • +
    +
  • +
+
+
    +
  • +
    +
    Direct Known Subclasses:
    +
    CurrentWeatherData.Wind, ForecastWeatherData.Forecast.Wind
    +
    +
    +
    Enclosing class:
    +
    AbstractWeatherData
    +
    +
    +
    +
    public abstract static class AbstractWeatherData.Wind
    +extends java.lang.Object
    +
    This class provides default implementations for Wind. + Standard behaviors like the has and the get + methods for information about wind (for example, speed, degree, + etc.) are defined here.
    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/07/28
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + + + + + + + + + + + +
      Fields 
      Modifier and TypeField and Description
      private floatdegree +
      Wind degree (direction of wind)
      +
      private java.lang.StringJSON_WIND_DEGREE +
      Key for JSON variable Wind -> Degree
      +
      private java.lang.StringJSON_WIND_SPEED +
      Key for JSON variable Wind -> Speed
      +
      private floatspeed +
      Wind speed
      +
      +
    • +
    + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + + +
      Constructors 
      Constructor and Description
      AbstractWeatherData.Wind() +
      Non-parameterized constructor
      +
      AbstractWeatherData.Wind(org.json.JSONObject jsonObj) +
      Parameterized constructor + + Initializes variables from values from the given JSON object.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      floatgetWindDegree() +
      Returns data for degree of wind in the city.
      +
      floatgetWindSpeed() +
      Returns data for speed of wind in the city.
      +
      booleanhasWindDegree() +
      Tells if the data for degree (degree gives direction) of wind + in the city is available or not.
      +
      booleanhasWindSpeed() +
      Tells if the data for speed of wind in the city is available or not.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        JSON_WIND_SPEED

        +
        private final java.lang.String JSON_WIND_SPEED
        +
        Key for JSON variable Wind -> Speed
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_WIND_DEGREE

        +
        private final java.lang.String JSON_WIND_DEGREE
        +
        Key for JSON variable Wind -> Degree
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        speed

        +
        private final float speed
        +
        Wind speed
        +
      • +
      + + + +
        +
      • +

        degree

        +
        private final float degree
        +
        Wind degree (direction of wind)
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        AbstractWeatherData.Wind

        +
        public AbstractWeatherData.Wind()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        AbstractWeatherData.Wind

        +
        public AbstractWeatherData.Wind(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about wind
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasWindSpeed

        +
        public boolean hasWindSpeed()
        +
        Tells if the data for speed of wind in the city is available or not.
        +
        Returns:
        true if data available, otherwise false
        +
      • +
      + + + +
        +
      • +

        hasWindDegree

        +
        public boolean hasWindDegree()
        +
        Tells if the data for degree (degree gives direction) of wind + in the city is available or not.
        +
        Returns:
        true if data available, otherwise false
        +
      • +
      + + + +
        +
      • +

        getWindSpeed

        +
        public float getWindSpeed()
        +
        Returns data for speed of wind in the city.
        +
        Returns:
        Speed of wind in the city if available, + otherwise Float.NaN, i.e., Not a Number.
        +
      • +
      + + + +
        +
      • +

        getWindDegree

        +
        public float getWindDegree()
        +
        Returns data for degree of wind in the city.
        +
        Returns:
        Degree of wind in the city if available, + otherwise Float.NaN, i.e., Not a Number.
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.html b/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.html new file mode 100644 index 0000000..fd035f7 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/AbstractWeatherData.html @@ -0,0 +1,508 @@ + + + + + + +AbstractWeatherData (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class AbstractWeatherData

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.AbstractWeatherData
    • +
    +
  • +
+
+
    +
  • +
    +
    Direct Known Subclasses:
    +
    CurrentWeatherData, DailyForecastData.Forecast, ForecastWeatherData.Forecast
    +
    +
    +
    +
    public abstract class AbstractWeatherData
    +extends java.lang.Object
    +
    This class provides default implementations for CurrentWeatherData + and ForecastWeatherData classes. + Standard behaviors like the has and the get + methods for information about weather or forecast (for example, + temperature, pressure, weather, clouds, wind, etc.) are defined here.
    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/07/26
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+
    +
  • + + + +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Fields 
      Modifier and TypeField and Description
      private java.util.DatedateTime +
      Date and time of the weather.
      +
      protected java.lang.StringJSON_CLOUDS +
      Key for JSON object - Clouds
      +
      protected java.lang.StringJSON_COORD +
      Key for JSON object - Coordinates (Geographic coordinates)
      +
      private java.lang.StringJSON_DATE_TIME +
      Key for JSON variable Date-Time (date & time of the weather)
      +
      protected java.lang.StringJSON_MAIN +
      Key for JSON object - Main (Temperature, pressure, etc.)
      +
      protected java.lang.StringJSON_WEATHER +
      Key for JSON array - Weather (Weather name, description, etc.)
      +
      protected java.lang.StringJSON_WIND +
      Key for JSON object - Wind
      +
      +
    • +
    + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + + +
      Constructors 
      Constructor and Description
      AbstractWeatherData() +
      Non-parameterized constructor
      +
      AbstractWeatherData(org.json.JSONObject jsonObj) +
      Parameterized constructor + + Initializes variables from values from the given JSON object.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      java.util.DategetDateTime() +
      Returns data for date and time of this weather.
      +
      booleanhasDateTime() +
      Tells if the data for date and time of this weather is available or not.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        JSON_CLOUDS

        +
        protected final java.lang.String JSON_CLOUDS
        +
        Key for JSON object - Clouds
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_COORD

        +
        protected final java.lang.String JSON_COORD
        +
        Key for JSON object - Coordinates (Geographic coordinates)
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_MAIN

        +
        protected final java.lang.String JSON_MAIN
        +
        Key for JSON object - Main (Temperature, pressure, etc.)
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_WEATHER

        +
        protected final java.lang.String JSON_WEATHER
        +
        Key for JSON array - Weather (Weather name, description, etc.)
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_WIND

        +
        protected final java.lang.String JSON_WIND
        +
        Key for JSON object - Wind
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_DATE_TIME

        +
        private final java.lang.String JSON_DATE_TIME
        +
        Key for JSON variable Date-Time (date & time of the weather)
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        dateTime

        +
        private final java.util.Date dateTime
        +
        Date and time of the weather. This is answer for the question that + when is/will be this weather.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        AbstractWeatherData

        +
        public AbstractWeatherData()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        AbstractWeatherData

        +
        public AbstractWeatherData(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing weather data
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasDateTime

        +
        public boolean hasDateTime()
        +
        Tells if the data for date and time of this weather is available or not.
        +
        Returns:
        true if data available, otherwise false
        +
      • +
      + + + +
        +
      • +

        getDateTime

        +
        public java.util.Date getDateTime()
        +
        Returns data for date and time of this weather.
        +
        Returns:
        Date and time (in object of Date) if available, + otherwise null
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Clouds.html b/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Clouds.html new file mode 100644 index 0000000..dcd7fe1 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Clouds.html @@ -0,0 +1,294 @@ + + + + + + +CurrentWeatherData.Clouds (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class CurrentWeatherData.Clouds

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    CurrentWeatherData
    +
    +
    +
    +
    public static class CurrentWeatherData.Clouds
    +extends AbstractWeatherData.Clouds
    +
    Parses data about clouds (from the JSON data) and provides methods + to get/access the information. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        CurrentWeatherData.Clouds

        +
        public CurrentWeatherData.Clouds()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        CurrentWeatherData.Clouds

        +
        public CurrentWeatherData.Clouds(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about clouds
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Coord.html b/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Coord.html new file mode 100644 index 0000000..8d91a32 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Coord.html @@ -0,0 +1,294 @@ + + + + + + +CurrentWeatherData.Coord (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class CurrentWeatherData.Coord

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    CurrentWeatherData
    +
    +
    +
    +
    public static class CurrentWeatherData.Coord
    +extends AbstractWeatherData.Coord
    +
    Parses data about geographic coordinates (from the JSON data) + and provides methods to get/access the information. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        CurrentWeatherData.Coord

        +
        public CurrentWeatherData.Coord()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        CurrentWeatherData.Coord

        +
        public CurrentWeatherData.Coord(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about coordinates
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Main.html b/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Main.html new file mode 100644 index 0000000..416f838 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Main.html @@ -0,0 +1,295 @@ + + + + + + +CurrentWeatherData.Main (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class CurrentWeatherData.Main

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    CurrentWeatherData
    +
    +
    +
    +
    public static class CurrentWeatherData.Main
    +extends AbstractWeatherData.Main
    +
    Parses data about main weather elements (from the JSON data) and + provides methods to get/access the information. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        CurrentWeatherData.Main

        +
        public CurrentWeatherData.Main()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        CurrentWeatherData.Main

        +
        public CurrentWeatherData.Main(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about main + weather elements (temperature, pressure, etc.)
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Rain.html b/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Rain.html new file mode 100644 index 0000000..0531bef --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Rain.html @@ -0,0 +1,379 @@ + + + + + + +CurrentWeatherData.Rain (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class CurrentWeatherData.Rain

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.CurrentWeatherData.Rain
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    CurrentWeatherData
    +
    +
    +
    +
    public static class CurrentWeatherData.Rain
    +extends java.lang.Object
    +
    Parses data about rain (from the JSON data) and provides methods + to get/access the information. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + + + +
      Fields 
      Modifier and TypeField and Description
      private java.lang.StringJSON_RAIN_3HOURS +
      Key for JSON variable Rain -> Rain per 3 hours
      +
      private floatrain3h +
      Rain per 3 hours
      +
      +
    • +
    + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + + +
      Constructors 
      Constructor and Description
      CurrentWeatherData.Rain() +
      Non-parameterized constructor
      +
      CurrentWeatherData.Rain(org.json.JSONObject jsonObj) +
      Parameterized constructor + + Initializes variables from values from the given JSON object.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      floatgetRain3Hours() 
      booleanhasRain3Hours() 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        JSON_RAIN_3HOURS

        +
        private final java.lang.String JSON_RAIN_3HOURS
        +
        Key for JSON variable Rain -> Rain per 3 hours
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        rain3h

        +
        private final float rain3h
        +
        Rain per 3 hours
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        CurrentWeatherData.Rain

        +
        public CurrentWeatherData.Rain()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        CurrentWeatherData.Rain

        +
        public CurrentWeatherData.Rain(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about rain
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasRain3Hours

        +
        public boolean hasRain3Hours()
        +
      • +
      + + + +
        +
      • +

        getRain3Hours

        +
        public float getRain3Hours()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Sys.html b/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Sys.html new file mode 100644 index 0000000..f62688b --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Sys.html @@ -0,0 +1,498 @@ + + + + + + +CurrentWeatherData.Sys (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class CurrentWeatherData.Sys

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.CurrentWeatherData.Sys
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    CurrentWeatherData
    +
    +
    +
    +
    public static class CurrentWeatherData.Sys
    +extends java.lang.Object
    +
    Parses data about country, sunrise, and sunset (from the JSON data) + and provides methods to get/access the information. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Fields 
      Modifier and TypeField and Description
      private java.lang.StringcountryCode +
      Country code for the city
      +
      private java.lang.StringJSON_SYS_COUNTRY_CODE +
      Key for JSON variable Sys -> Country
      +
      private java.lang.StringJSON_SYS_SUNRISE +
      Key for JSON variable Sys -> Sunrise
      +
      private java.lang.StringJSON_SYS_SUNSET +
      Key for JSON variable Sys -> Sunset
      +
      private java.util.Datesunrise +
      Sunrise time
      +
      private java.util.Datesunset +
      Sunset time
      +
      +
    • +
    + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + + +
      Constructors 
      Constructor and Description
      CurrentWeatherData.Sys() +
      Non-parameterized constructor
      +
      CurrentWeatherData.Sys(org.json.JSONObject jsonObj) +
      Parameterized constructor + + Initializes variables from values from the given JSON object.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      java.lang.StringgetCountryCode() 
      java.util.DategetSunriseTime() 
      java.util.DategetSunsetTime() 
      booleanhasCountryCode() 
      booleanhasSunriseTime() 
      booleanhasSunsetTime() 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        JSON_SYS_COUNTRY_CODE

        +
        private final java.lang.String JSON_SYS_COUNTRY_CODE
        +
        Key for JSON variable Sys -> Country
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_SYS_SUNRISE

        +
        private final java.lang.String JSON_SYS_SUNRISE
        +
        Key for JSON variable Sys -> Sunrise
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_SYS_SUNSET

        +
        private final java.lang.String JSON_SYS_SUNSET
        +
        Key for JSON variable Sys -> Sunset
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        countryCode

        +
        private final java.lang.String countryCode
        +
        Country code for the city
        +
      • +
      + + + +
        +
      • +

        sunrise

        +
        private final java.util.Date sunrise
        +
        Sunrise time
        +
      • +
      + + + +
        +
      • +

        sunset

        +
        private final java.util.Date sunset
        +
        Sunset time
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        CurrentWeatherData.Sys

        +
        public CurrentWeatherData.Sys()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        CurrentWeatherData.Sys

        +
        public CurrentWeatherData.Sys(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about country, sunrise, + and sunset.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasCountryCode

        +
        public boolean hasCountryCode()
        +
      • +
      + + + +
        +
      • +

        hasSunriseTime

        +
        public boolean hasSunriseTime()
        +
      • +
      + + + +
        +
      • +

        hasSunsetTime

        +
        public boolean hasSunsetTime()
        +
      • +
      + + + +
        +
      • +

        getCountryCode

        +
        public java.lang.String getCountryCode()
        +
      • +
      + + + +
        +
      • +

        getSunriseTime

        +
        public java.util.Date getSunriseTime()
        +
      • +
      + + + +
        +
      • +

        getSunsetTime

        +
        public java.util.Date getSunsetTime()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Weather.html b/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Weather.html new file mode 100644 index 0000000..6b9d44b --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Weather.html @@ -0,0 +1,294 @@ + + + + + + +CurrentWeatherData.Weather (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class CurrentWeatherData.Weather

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    CurrentWeatherData
    +
    +
    +
    +
    public static class CurrentWeatherData.Weather
    +extends AbstractWeatherData.Weather
    +
    Parses data about weather code, name, etc. (from the JSON data) + and provides methods to get/access the information. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        CurrentWeatherData.Weather

        +
        public CurrentWeatherData.Weather()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        CurrentWeatherData.Weather

        +
        public CurrentWeatherData.Weather(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about weather id, name, etc.
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Wind.html b/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Wind.html new file mode 100644 index 0000000..0554ce8 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.Wind.html @@ -0,0 +1,391 @@ + + + + + + +CurrentWeatherData.Wind (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class CurrentWeatherData.Wind

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    CurrentWeatherData
    +
    +
    +
    +
    public static class CurrentWeatherData.Wind
    +extends AbstractWeatherData.Wind
    +
    Parses data about winds (from the JSON data) and provides methods + to get/access the information. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + + + +
      Fields 
      Modifier and TypeField and Description
      private floatgust +
      Wind gust
      +
      private java.lang.StringJSON_WIND_GUST +
      Key for JSON variable Wind -> Gust
      +
      +
    • +
    + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + + +
      Constructors 
      Constructor and Description
      CurrentWeatherData.Wind() +
      Non-parameterized constructor
      +
      CurrentWeatherData.Wind(org.json.JSONObject jsonObj) +
      Parameterized constructor + + Initializes variables from values from the given JSON object.
      +
      +
    • +
    + + +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        JSON_WIND_GUST

        +
        private final java.lang.String JSON_WIND_GUST
        +
        Key for JSON variable Wind -> Gust
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        gust

        +
        private final float gust
        +
        Wind gust
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        CurrentWeatherData.Wind

        +
        public CurrentWeatherData.Wind()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        CurrentWeatherData.Wind

        +
        public CurrentWeatherData.Wind(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about wind
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasWindGust

        +
        public boolean hasWindGust()
        +
      • +
      + + + +
        +
      • +

        getWindGust

        +
        public float getWindGust()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.html b/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.html new file mode 100644 index 0000000..cc62158 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/CurrentWeatherData.html @@ -0,0 +1,874 @@ + + + + + + +CurrentWeatherData (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class CurrentWeatherData

+
+
+ +
+
    +
  • +
    +
    +
    public class CurrentWeatherData
    +extends AbstractWeatherData
    +
    Parses current weather data (from the JSON data) and provides methods + to get/access the information about current weather. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + + + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        CurrentWeatherData

        +
        public CurrentWeatherData(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing current weather data
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasBaseStation

        +
        public boolean hasBaseStation()
        +
      • +
      + + + +
        +
      • +

        hasCityCode

        +
        public boolean hasCityCode()
        +
      • +
      + + + +
        +
      • +

        hasCityName

        +
        public boolean hasCityName()
        +
      • +
      + + + +
        +
      • +

        hasResponseCode

        +
        public boolean hasResponseCode()
        +
      • +
      + + + +
        +
      • +

        getBaseStation

        +
        public java.lang.String getBaseStation()
        +
      • +
      + + + +
        +
      • +

        getCityCode

        +
        public long getCityCode()
        +
      • +
      + + + +
        +
      • +

        getCityName

        +
        public java.lang.String getCityName()
        +
      • +
      + + + +
        +
      • +

        getResponseCode

        +
        public int getResponseCode()
        +
      • +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
      • +

        hasWeather_List

        +
        public boolean hasWeather_List()
        +
      • +
      + + + +
        +
      • +

        getWeather_List_Count

        +
        public int getWeather_List_Count()
        +
      • +
      + + + + +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/DailyForecastData.City.Coord.html b/javadoc/net/aksingh/java/api/owm/DailyForecastData.City.Coord.html new file mode 100644 index 0000000..f1652eb --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/DailyForecastData.City.Coord.html @@ -0,0 +1,294 @@ + + + + + + +DailyForecastData.City.Coord (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class DailyForecastData.City.Coord

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    DailyForecastData.City
    +
    +
    +
    +
    public static class DailyForecastData.City.Coord
    +extends AbstractWeatherData.Coord
    +
    Parses data about geographic coordinates (from the JSON data) + and provides methods to get/access the information. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        DailyForecastData.City.Coord

        +
        public DailyForecastData.City.Coord()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        DailyForecastData.City.Coord

        +
        public DailyForecastData.City.Coord(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about clouds
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/DailyForecastData.City.html b/javadoc/net/aksingh/java/api/owm/DailyForecastData.City.html new file mode 100644 index 0000000..747432d --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/DailyForecastData.City.html @@ -0,0 +1,622 @@ + + + + + + +DailyForecastData.City (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class DailyForecastData.City

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.DailyForecastData.City
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    DailyForecastData
    +
    +
    +
    +
    public static class DailyForecastData.City
    +extends java.lang.Object
    +
    Parses data about city (from the JSON data) + and provides methods to get/access the information. + For example, city name, coordinates, country name, population, etc. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        JSON_CITY_COORD

        +
        private final java.lang.String JSON_CITY_COORD
        +
        Key for JSON object - Coordinates
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_CITY_ID

        +
        private final java.lang.String JSON_CITY_ID
        +
        Key for JSON variable City code (ID)
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_CITY_NAME

        +
        private final java.lang.String JSON_CITY_NAME
        +
        Key for JSON variable City name
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_CITY_COUNTRY_CODE

        +
        private final java.lang.String JSON_CITY_COUNTRY_CODE
        +
        Key for JSON variable Country code of city
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_CITY_POPULATION

        +
        private final java.lang.String JSON_CITY_POPULATION
        +
        Key for JSON variable Population of city
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        cityID

        +
        private final long cityID
        +
        City code (ID)
        +
      • +
      + + + +
        +
      • +

        cityName

        +
        private final java.lang.String cityName
        +
        City name
        +
      • +
      + + + +
        +
      • +

        countryCode

        +
        private final java.lang.String countryCode
        +
        Country code of city
        +
      • +
      + + + +
        +
      • +

        population

        +
        private final long population
        +
        Population of city
        +
      • +
      + + + + +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        DailyForecastData.City

        +
        public DailyForecastData.City()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        DailyForecastData.City

        +
        public DailyForecastData.City(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about city
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasCityCode

        +
        public boolean hasCityCode()
        +
      • +
      + + + +
        +
      • +

        hasCityName

        +
        public boolean hasCityName()
        +
      • +
      + + + +
        +
      • +

        hasCountryCode

        +
        public boolean hasCountryCode()
        +
      • +
      + + + +
        +
      • +

        hasCityPopulation

        +
        public boolean hasCityPopulation()
        +
      • +
      + + + +
        +
      • +

        getCityCode

        +
        public long getCityCode()
        +
      • +
      + + + +
        +
      • +

        getCityName

        +
        public java.lang.String getCityName()
        +
      • +
      + + + +
        +
      • +

        getCountryCode

        +
        public java.lang.String getCountryCode()
        +
      • +
      + + + +
        +
      • +

        getCityPopulation

        +
        public long getCityPopulation()
        +
      • +
      + + + + +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/DailyForecastData.Forecast.Temperature.html b/javadoc/net/aksingh/java/api/owm/DailyForecastData.Forecast.Temperature.html new file mode 100644 index 0000000..0423900 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/DailyForecastData.Forecast.Temperature.html @@ -0,0 +1,675 @@ + + + + + + +DailyForecastData.Forecast.Temperature (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class DailyForecastData.Forecast.Temperature

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    DailyForecastData.Forecast
    +
    +
    +
    +
    public static class DailyForecastData.Forecast.Temperature
    +extends java.lang.Object
    +
    Parses data about temperature (from the JSON data) + and provides methods to get/access the information. + For example, weather id, name, etc. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        JSON_TEMP_DAY

        +
        public final java.lang.String JSON_TEMP_DAY
        +
        Key for JSON variable Temp -> Day
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_TEMP_MIN

        +
        public final java.lang.String JSON_TEMP_MIN
        +
        Key for JSON variable Temp -> Minimum
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_TEMP_MAX

        +
        public final java.lang.String JSON_TEMP_MAX
        +
        Key for JSON variable Temp -> Maximum
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_TEMP_NIGHT

        +
        public final java.lang.String JSON_TEMP_NIGHT
        +
        Key for JSON variable Temp -> Night
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_TEMP_EVENING

        +
        public final java.lang.String JSON_TEMP_EVENING
        +
        Key for JSON variable Temp -> Evening
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_TEMP_MORNING

        +
        public final java.lang.String JSON_TEMP_MORNING
        +
        Key for JSON variable Temp -> Morning
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        dayTemp

        +
        private final float dayTemp
        +
        Day temperature
        +
      • +
      + + + +
        +
      • +

        minTemp

        +
        private final float minTemp
        +
        Minimum temperature
        +
      • +
      + + + +
        +
      • +

        maxTemp

        +
        private final float maxTemp
        +
        Maximum temperature
        +
      • +
      + + + +
        +
      • +

        nightTemp

        +
        private final float nightTemp
        +
        Night temperature
        +
      • +
      + + + +
        +
      • +

        eveTemp

        +
        private final float eveTemp
        +
        Evening temperature
        +
      • +
      + + + +
        +
      • +

        mornTemp

        +
        private final float mornTemp
        +
        Morning temperature
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        DailyForecastData.Forecast.Temperature

        +
        public DailyForecastData.Forecast.Temperature()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        DailyForecastData.Forecast.Temperature

        +
        public DailyForecastData.Forecast.Temperature(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about temperature
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasDayTemperature

        +
        public boolean hasDayTemperature()
        +
      • +
      + + + +
        +
      • +

        hasMinimumTemperature

        +
        public boolean hasMinimumTemperature()
        +
      • +
      + + + +
        +
      • +

        hasMaximumTemperature

        +
        public boolean hasMaximumTemperature()
        +
      • +
      + + + +
        +
      • +

        hasNightTemperature

        +
        public boolean hasNightTemperature()
        +
      • +
      + + + +
        +
      • +

        hasEveningTemperature

        +
        public boolean hasEveningTemperature()
        +
      • +
      + + + +
        +
      • +

        hasMorningTemperature

        +
        public boolean hasMorningTemperature()
        +
      • +
      + + + +
        +
      • +

        getDayTemperature

        +
        public float getDayTemperature()
        +
      • +
      + + + +
        +
      • +

        getMinimumTemperature

        +
        public float getMinimumTemperature()
        +
      • +
      + + + +
        +
      • +

        getMaximumTemperature

        +
        public float getMaximumTemperature()
        +
      • +
      + + + +
        +
      • +

        getNightTemperature

        +
        public float getNightTemperature()
        +
      • +
      + + + +
        +
      • +

        getEveningTemperature

        +
        public float getEveningTemperature()
        +
      • +
      + + + +
        +
      • +

        getMorningTemperature

        +
        public float getMorningTemperature()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/DailyForecastData.Forecast.Weather.html b/javadoc/net/aksingh/java/api/owm/DailyForecastData.Forecast.Weather.html new file mode 100644 index 0000000..01d2d30 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/DailyForecastData.Forecast.Weather.html @@ -0,0 +1,295 @@ + + + + + + +DailyForecastData.Forecast.Weather (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class DailyForecastData.Forecast.Weather

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    DailyForecastData.Forecast
    +
    +
    +
    +
    public static class DailyForecastData.Forecast.Weather
    +extends AbstractWeatherData.Weather
    +
    Parses data about weather (from the JSON data) + and provides methods to get/access the information. + For example, weather id, name, etc. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        DailyForecastData.Forecast.Weather

        +
        public DailyForecastData.Forecast.Weather()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        DailyForecastData.Forecast.Weather

        +
        public DailyForecastData.Forecast.Weather(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about weather
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/DailyForecastData.Forecast.html b/javadoc/net/aksingh/java/api/owm/DailyForecastData.Forecast.html new file mode 100644 index 0000000..b384b81 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/DailyForecastData.Forecast.html @@ -0,0 +1,784 @@ + + + + + + +DailyForecastData.Forecast (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class DailyForecastData.Forecast

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    DailyForecastData
    +
    +
    +
    +
    public static class DailyForecastData.Forecast
    +extends AbstractWeatherData
    +
    Parses data about forecasts (from the JSON data) + and provides methods to get/access the information. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        JSON_TEMP

        +
        public final java.lang.String JSON_TEMP
        +
        Key for JSON object - Temperature
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_FORECAST_PRESSURE

        +
        private final java.lang.String JSON_FORECAST_PRESSURE
        +
        Key for JSON variable Pressure
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_FORECAST_HUMIDITY

        +
        private final java.lang.String JSON_FORECAST_HUMIDITY
        +
        Key for JSON variable Humidity
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_FORECAST_WIND_SPEED

        +
        private final java.lang.String JSON_FORECAST_WIND_SPEED
        +
        Key for JSON variable Wind speed
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_FORECAST_WIND_DEGREE

        +
        private final java.lang.String JSON_FORECAST_WIND_DEGREE
        +
        Key for JSON variable Wind degree
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_FORECAST_CLOUDS

        +
        private final java.lang.String JSON_FORECAST_CLOUDS
        +
        Key for JSON variable Percentage of clouds
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        pressure

        +
        private final float pressure
        +
        Pressure
        +
      • +
      + + + +
        +
      • +

        humidity

        +
        private final float humidity
        +
        Humidity
        +
      • +
      + + + +
        +
      • +

        windSpeed

        +
        private final float windSpeed
        +
        Wind speed
        +
      • +
      + + + +
        +
      • +

        windDegree

        +
        private final float windDegree
        +
        Wind degree
        +
      • +
      + + + +
        +
      • +

        cloudsPercent

        +
        private final float cloudsPercent
        +
        Percentage of clouds
        +
      • +
      + + + + + + + + + + + +
        +
      • +

        weatherListCount

        +
        private final int weatherListCount
        +
        Count (number) of elements in list of weather information
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        DailyForecastData.Forecast

        +
        public DailyForecastData.Forecast()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        DailyForecastData.Forecast

        +
        public DailyForecastData.Forecast(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about forecasts
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasHumidity

        +
        public boolean hasHumidity()
        +
      • +
      + + + +
        +
      • +

        hasPressure

        +
        public boolean hasPressure()
        +
      • +
      + + + +
        +
      • +

        hasWindSpeed

        +
        public boolean hasWindSpeed()
        +
      • +
      + + + +
        +
      • +

        hasWindDegree

        +
        public boolean hasWindDegree()
        +
      • +
      + + + +
        +
      • +

        hasPercentageOfClouds

        +
        public boolean hasPercentageOfClouds()
        +
      • +
      + + + +
        +
      • +

        getHumidity

        +
        public float getHumidity()
        +
      • +
      + + + +
        +
      • +

        getPressure

        +
        public float getPressure()
        +
      • +
      + + + +
        +
      • +

        getWindSpeed

        +
        public float getWindSpeed()
        +
      • +
      + + + +
        +
      • +

        getWindDegree

        +
        public float getWindDegree()
        +
      • +
      + + + +
        +
      • +

        getPercentageOfClouds

        +
        public float getPercentageOfClouds()
        +
      • +
      + + + + + + + +
        +
      • +

        hasWeather_List

        +
        public boolean hasWeather_List()
        +
      • +
      + + + +
        +
      • +

        getWeather_List_Count

        +
        public int getWeather_List_Count()
        +
      • +
      + + + + +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/DailyForecastData.html b/javadoc/net/aksingh/java/api/owm/DailyForecastData.html new file mode 100644 index 0000000..7228912 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/DailyForecastData.html @@ -0,0 +1,633 @@ + + + + + + +DailyForecastData (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class DailyForecastData

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.DailyForecastData
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public class DailyForecastData
    +extends java.lang.Object
    +
    Parses daily forecast data (from the JSON data) and provides methods + to get/access the information about daily forecasted weather. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Objects: Data initialized with default/non-parameterized constructor
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        JSON_CITY

        +
        private final java.lang.String JSON_CITY
        +
        Key for JSON object - City
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_FORECAST_LIST

        +
        private final java.lang.String JSON_FORECAST_LIST
        +
        Key for JSON object - List of forecasts
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_RESPONSE_CODE

        +
        private final java.lang.String JSON_RESPONSE_CODE
        +
        Key for JSON variable Response code
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_RESPONSE_TIME

        +
        private final java.lang.String JSON_RESPONSE_TIME
        +
        Key for JSON variable Response time
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_RESPONSE_FORECAST_COUNT

        +
        private final java.lang.String JSON_RESPONSE_FORECAST_COUNT
        +
        Key for JSON variable Forecast count
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        responseCode

        +
        private final java.lang.String responseCode
        +
        Response code
        +
      • +
      + + + +
        +
      • +

        responseTime

        +
        private final float responseTime
        +
        Response time
        +
      • +
      + + + +
        +
      • +

        responseForecastCount

        +
        private final int responseForecastCount
        +
        Forecast count
        +
      • +
      + + + + + + + + + + + +
        +
      • +

        forecastListCount

        +
        private final int forecastListCount
        +
        Count (number) of elements in list of forecast information
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        DailyForecastData

        +
        public DailyForecastData(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about daily forecasts
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasResponseCode

        +
        public boolean hasResponseCode()
        +
      • +
      + + + +
        +
      • +

        hasResponseTime

        +
        public boolean hasResponseTime()
        +
      • +
      + + + +
        +
      • +

        hasResponseForecastCount

        +
        public boolean hasResponseForecastCount()
        +
      • +
      + + + +
        +
      • +

        getResponseCode

        +
        public java.lang.String getResponseCode()
        +
      • +
      + + + +
        +
      • +

        getResponseTime

        +
        public float getResponseTime()
        +
      • +
      + + + +
        +
      • +

        getResponseForecastCount

        +
        public int getResponseForecastCount()
        +
      • +
      + + + + + + + +
        +
      • +

        hasForecast_List

        +
        public boolean hasForecast_List()
        +
      • +
      + + + +
        +
      • +

        getForecast_List_Count

        +
        public int getForecast_List_Count()
        +
      • +
      + + + + +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.City.Coord.html b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.City.Coord.html new file mode 100644 index 0000000..e09d23f --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.City.Coord.html @@ -0,0 +1,294 @@ + + + + + + +ForecastWeatherData.City.Coord (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class ForecastWeatherData.City.Coord

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    ForecastWeatherData.City
    +
    +
    +
    +
    public static class ForecastWeatherData.City.Coord
    +extends AbstractWeatherData.Coord
    +
    Parses data about geographic coordinates (from the JSON data) + and provides methods to get/access the information. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ForecastWeatherData.City.Coord

        +
        public ForecastWeatherData.City.Coord()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        ForecastWeatherData.City.Coord

        +
        public ForecastWeatherData.City.Coord(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about clouds
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.City.html b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.City.html new file mode 100644 index 0000000..c07cb6c --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.City.html @@ -0,0 +1,622 @@ + + + + + + +ForecastWeatherData.City (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class ForecastWeatherData.City

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.ForecastWeatherData.City
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    ForecastWeatherData
    +
    +
    +
    +
    public static class ForecastWeatherData.City
    +extends java.lang.Object
    +
    Parses data about city (from the JSON data) + and provides methods to get/access the information. + For example, city name, coordinates, country name, population, etc. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        JSON_CITY_COORD

        +
        private final java.lang.String JSON_CITY_COORD
        +
        Key for JSON object - Coordinates
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_CITY_ID

        +
        private final java.lang.String JSON_CITY_ID
        +
        Key for JSON variable City code (ID)
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_CITY_NAME

        +
        private final java.lang.String JSON_CITY_NAME
        +
        Key for JSON variable City name
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_CITY_COUNTRY_CODE

        +
        private final java.lang.String JSON_CITY_COUNTRY_CODE
        +
        Key for JSON variable Country code of city
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_CITY_POPULATION

        +
        private final java.lang.String JSON_CITY_POPULATION
        +
        Key for JSON variable Population of city
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        cityID

        +
        private final long cityID
        +
        City code (ID)
        +
      • +
      + + + +
        +
      • +

        cityName

        +
        private final java.lang.String cityName
        +
        City name
        +
      • +
      + + + +
        +
      • +

        countryCode

        +
        private final java.lang.String countryCode
        +
        Country code of city
        +
      • +
      + + + +
        +
      • +

        population

        +
        private final long population
        +
        Population of city
        +
      • +
      + + + + +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ForecastWeatherData.City

        +
        public ForecastWeatherData.City()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        ForecastWeatherData.City

        +
        public ForecastWeatherData.City(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about city
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasCityCode

        +
        public boolean hasCityCode()
        +
      • +
      + + + +
        +
      • +

        hasCityName

        +
        public boolean hasCityName()
        +
      • +
      + + + +
        +
      • +

        hasCountryCode

        +
        public boolean hasCountryCode()
        +
      • +
      + + + +
        +
      • +

        hasCityPopulation

        +
        public boolean hasCityPopulation()
        +
      • +
      + + + +
        +
      • +

        getCityCode

        +
        public long getCityCode()
        +
      • +
      + + + +
        +
      • +

        getCityName

        +
        public java.lang.String getCityName()
        +
      • +
      + + + +
        +
      • +

        getCountryCode

        +
        public java.lang.String getCountryCode()
        +
      • +
      + + + +
        +
      • +

        getCityPopulation

        +
        public long getCityPopulation()
        +
      • +
      + + + + +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Clouds.html b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Clouds.html new file mode 100644 index 0000000..b240382 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Clouds.html @@ -0,0 +1,294 @@ + + + + + + +ForecastWeatherData.Forecast.Clouds (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class ForecastWeatherData.Forecast.Clouds

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    ForecastWeatherData.Forecast
    +
    +
    +
    +
    public static class ForecastWeatherData.Forecast.Clouds
    +extends AbstractWeatherData.Clouds
    +
    Parses data about clouds (from the JSON data) + and provides methods to get/access the information. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ForecastWeatherData.Forecast.Clouds

        +
        public ForecastWeatherData.Forecast.Clouds()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        ForecastWeatherData.Forecast.Clouds

        +
        public ForecastWeatherData.Forecast.Clouds(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about clouds
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Main.html b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Main.html new file mode 100644 index 0000000..0701ba6 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Main.html @@ -0,0 +1,511 @@ + + + + + + +ForecastWeatherData.Forecast.Main (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class ForecastWeatherData.Forecast.Main

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    ForecastWeatherData.Forecast
    +
    +
    +
    +
    public static class ForecastWeatherData.Forecast.Main
    +extends AbstractWeatherData.Main
    +
    Parses data about main weather elements (from the JSON data) + and provides methods to get/access the information. + For example, temperature, pressure, sea level, etc. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        JSON_MAIN_SEA_LEVEL

        +
        private final java.lang.String JSON_MAIN_SEA_LEVEL
        +
        Key for JSON variable Main -> Sea level
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_MAIN_GRND_LEVEL

        +
        private final java.lang.String JSON_MAIN_GRND_LEVEL
        +
        Key for JSON variable Main -> Ground level
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_MAIN_TMP_KF

        +
        private final java.lang.String JSON_MAIN_TMP_KF
        +
        Key for JSON variable Main -> Temperature KF
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        seaLevel

        +
        private final float seaLevel
        +
        Sea level
        +
      • +
      + + + +
        +
      • +

        groundLevel

        +
        private final float groundLevel
        +
        Ground level
        +
      • +
      + + + +
        +
      • +

        tempKF

        +
        private final float tempKF
        +
        Temperature KF
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ForecastWeatherData.Forecast.Main

        +
        public ForecastWeatherData.Forecast.Main()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        ForecastWeatherData.Forecast.Main

        +
        public ForecastWeatherData.Forecast.Main(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about main + weather elements
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasSeaLevel

        +
        public boolean hasSeaLevel()
        +
      • +
      + + + +
        +
      • +

        hasGroundLevel

        +
        public boolean hasGroundLevel()
        +
      • +
      + + + +
        +
      • +

        hasTempKF

        +
        public boolean hasTempKF()
        +
      • +
      + + + +
        +
      • +

        getSeaLevel

        +
        public float getSeaLevel()
        +
      • +
      + + + +
        +
      • +

        getGroundLevel

        +
        public float getGroundLevel()
        +
      • +
      + + + +
        +
      • +

        getTempKF

        +
        public float getTempKF()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Sys.html b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Sys.html new file mode 100644 index 0000000..58b8fb4 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Sys.html @@ -0,0 +1,381 @@ + + + + + + +ForecastWeatherData.Forecast.Sys (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class ForecastWeatherData.Forecast.Sys

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Sys
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    ForecastWeatherData.Forecast
    +
    +
    +
    +
    public static class ForecastWeatherData.Forecast.Sys
    +extends java.lang.Object
    +
    Parses data about main weather elements (from the JSON data) + and provides methods to get/access the information. + For example, temperature, pressure, sea level, etc. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + + + +
      Fields 
      Modifier and TypeField and Description
      private java.lang.StringJSON_SYS_POD +
      Key for JSON variable Sys -> Pod
      +
      private java.lang.Stringpod +
      Pod
      +
      +
    • +
    + + + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      java.lang.StringgetPod() 
      booleanhasPod() 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        JSON_SYS_POD

        +
        private final java.lang.String JSON_SYS_POD
        +
        Key for JSON variable Sys -> Pod
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        pod

        +
        private final java.lang.String pod
        +
        Pod
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ForecastWeatherData.Forecast.Sys

        +
        public ForecastWeatherData.Forecast.Sys()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        ForecastWeatherData.Forecast.Sys

        +
        public ForecastWeatherData.Forecast.Sys(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about sys. + For example, pod, etc.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasPod

        +
        public boolean hasPod()
        +
      • +
      + + + +
        +
      • +

        getPod

        +
        public java.lang.String getPod()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Weather.html b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Weather.html new file mode 100644 index 0000000..f3d36a3 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Weather.html @@ -0,0 +1,296 @@ + + + + + + +ForecastWeatherData.Forecast.Weather (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class ForecastWeatherData.Forecast.Weather

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    ForecastWeatherData.Forecast
    +
    +
    +
    +
    public static class ForecastWeatherData.Forecast.Weather
    +extends AbstractWeatherData.Weather
    +
    Parses data about weather (from the JSON data) + and provides methods to get/access the information. + For example, weather id, name, etc. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ForecastWeatherData.Forecast.Weather

        +
        public ForecastWeatherData.Forecast.Weather()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        ForecastWeatherData.Forecast.Weather

        +
        public ForecastWeatherData.Forecast.Weather(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about weather + code, name, etc.
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Wind.html b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Wind.html new file mode 100644 index 0000000..ebaecf3 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.Wind.html @@ -0,0 +1,294 @@ + + + + + + +ForecastWeatherData.Forecast.Wind (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class ForecastWeatherData.Forecast.Wind

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    ForecastWeatherData.Forecast
    +
    +
    +
    +
    public static class ForecastWeatherData.Forecast.Wind
    +extends AbstractWeatherData.Wind
    +
    Parses data about wind (from the JSON data) + and provides methods to get/access the information. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ForecastWeatherData.Forecast.Wind

        +
        public ForecastWeatherData.Forecast.Wind()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        ForecastWeatherData.Forecast.Wind

        +
        public ForecastWeatherData.Forecast.Wind(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about wind
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.html b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.html new file mode 100644 index 0000000..4bb7a01 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.Forecast.html @@ -0,0 +1,647 @@ + + + + + + +ForecastWeatherData.Forecast (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class ForecastWeatherData.Forecast

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    ForecastWeatherData
    +
    +
    +
    +
    public static class ForecastWeatherData.Forecast
    +extends AbstractWeatherData
    +
    Parses data about forecasts (from the JSON data) + and provides methods to get/access the information. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + + + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ForecastWeatherData.Forecast

        +
        public ForecastWeatherData.Forecast()
        +
        Non-parameterized constructor + +

        Initializes variables as per following basis:
        + Boolean: false
        + Integral: Minimum value (MIN_VALUE)
        + Floating point: Not a number (NaN)
        + Others: null

        +
      • +
      + + + +
        +
      • +

        ForecastWeatherData.Forecast

        +
        public ForecastWeatherData.Forecast(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about forecasts
        +
      • +
      +
    • +
    + + +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.html b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.html new file mode 100644 index 0000000..a45dc10 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/ForecastWeatherData.html @@ -0,0 +1,633 @@ + + + + + + +ForecastWeatherData (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class ForecastWeatherData

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.ForecastWeatherData
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public class ForecastWeatherData
    +extends java.lang.Object
    +
    Parses forecast weather data (from the JSON data) and provides methods + to get/access the information about forecasted weather. + This class provides has and get methods + to access the information. + +

    has methods can be used to check + if the data exists, i.e., if the data was available (successfully + downloaded) and was parsed correctly. + +

    get methods can be used to access the data, if the data + exists, otherwise get methods will give value as per + following basis:
    + Boolean: false
    + Integral: Minimum value (MIN_VALUE)
    + Floating point: Not a number (NaN)
    + Objects: Data initialized with default/non-parameterized constructor
    + Others: null

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/07
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        JSON_CITY

        +
        private final java.lang.String JSON_CITY
        +
        Key for JSON object - City
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_FORECAST_LIST

        +
        private final java.lang.String JSON_FORECAST_LIST
        +
        Key for JSON object - List of forecasts
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_RESPONSE_CODE

        +
        private final java.lang.String JSON_RESPONSE_CODE
        +
        Key for JSON variable Response code
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_RESPONSE_TIME

        +
        private final java.lang.String JSON_RESPONSE_TIME
        +
        Key for JSON variable Response time
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        JSON_RESPONSE_FORECAST_COUNT

        +
        private final java.lang.String JSON_RESPONSE_FORECAST_COUNT
        +
        Key for JSON variable Forecast count
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        responseCode

        +
        private final java.lang.String responseCode
        +
        Response code
        +
      • +
      + + + +
        +
      • +

        responseTime

        +
        private final float responseTime
        +
        Response time
        +
      • +
      + + + +
        +
      • +

        responseForecastCount

        +
        private final int responseForecastCount
        +
        Forecast count
        +
      • +
      + + + + + + + + + + + +
        +
      • +

        forecastListCount

        +
        private final int forecastListCount
        +
        Count (number) of elements in list of forecast information
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ForecastWeatherData

        +
        public ForecastWeatherData(org.json.JSONObject jsonObj)
        +
        Parameterized constructor + + Initializes variables from values from the given JSON object.
        +
        Parameters:
        jsonObj - JSON object containing data about clouds
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasResponseCode

        +
        public boolean hasResponseCode()
        +
      • +
      + + + +
        +
      • +

        hasResponseTime

        +
        public boolean hasResponseTime()
        +
      • +
      + + + +
        +
      • +

        hasResponseForecastCount

        +
        public boolean hasResponseForecastCount()
        +
      • +
      + + + +
        +
      • +

        getResponseCode

        +
        public java.lang.String getResponseCode()
        +
      • +
      + + + +
        +
      • +

        getResponseTime

        +
        public float getResponseTime()
        +
      • +
      + + + +
        +
      • +

        getResponseForecastCount

        +
        public int getResponseForecastCount()
        +
      • +
      + + + + + + + +
        +
      • +

        hasForecast_List

        +
        public boolean hasForecast_List()
        +
      • +
      + + + +
        +
      • +

        getForecast_List_Count

        +
        public int getForecast_List_Count()
        +
      • +
      + + + + +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/OpenWeatherMap.OWM_Response.html b/javadoc/net/aksingh/java/api/owm/OpenWeatherMap.OWM_Response.html new file mode 100644 index 0000000..6ff51e9 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/OpenWeatherMap.OWM_Response.html @@ -0,0 +1,558 @@ + + + + + + +OpenWeatherMap.OWM_Response (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class OpenWeatherMap.OWM_Response

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    OpenWeatherMap
    +
    +
    +
    +
    public static class OpenWeatherMap.OWM_Response
    +extends java.lang.Object
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        OWM_MODE_VALUE

        +
        private final java.lang.String OWM_MODE_VALUE
        +
      • +
      + + + +
        +
      • +

        OWM_UNITS_VALUE

        +
        private final java.lang.String OWM_UNITS_VALUE
        +
      • +
      + + + +
        +
      • +

        OWM_APPID_VALUE

        +
        private final java.lang.String OWM_APPID_VALUE
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        OpenWeatherMap.OWM_Response

        +
        public OpenWeatherMap.OWM_Response(java.lang.String apiKey)
        +
      • +
      + + + +
        +
      • +

        OpenWeatherMap.OWM_Response

        +
        public OpenWeatherMap.OWM_Response(OpenWeatherMap.OWM_URL unit,
        +                           java.lang.String apiKey)
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        currentWeatherByCityName

        +
        public java.lang.String currentWeatherByCityName(java.lang.String cityName)
        +                                          throws java.net.MalformedURLException,
        +                                                 java.io.IOException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
      • +
      + + + +
        +
      • +

        currentWeatherByCityName

        +
        public java.lang.String currentWeatherByCityName(java.lang.String cityName,
        +                                        java.lang.String countryCode)
        +                                          throws java.net.MalformedURLException,
        +                                                 java.io.IOException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
      • +
      + + + +
        +
      • +

        currentWeatherByCityCode

        +
        public java.lang.String currentWeatherByCityCode(long cityCode)
        +                                          throws java.net.MalformedURLException,
        +                                                 java.io.IOException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
      • +
      + + + +
        +
      • +

        currentWeatherByCoordinates

        +
        public java.lang.String currentWeatherByCoordinates(float latitude,
        +                                           float longitude)
        +                                             throws java.net.MalformedURLException,
        +                                                    java.io.IOException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
      • +
      + + + +
        +
      • +

        forecastWeatherByCityName

        +
        public java.lang.String forecastWeatherByCityName(java.lang.String cityName)
        +                                           throws java.net.MalformedURLException,
        +                                                  java.io.IOException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
      • +
      + + + +
        +
      • +

        forecastWeatherByCityName

        +
        public java.lang.String forecastWeatherByCityName(java.lang.String cityName,
        +                                         java.lang.String countryCode)
        +                                           throws java.net.MalformedURLException,
        +                                                  java.io.IOException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
      • +
      + + + +
        +
      • +

        forecastWeatherByCityCode

        +
        public java.lang.String forecastWeatherByCityCode(long cityCode)
        +                                           throws java.net.MalformedURLException,
        +                                                  java.io.IOException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
      • +
      + + + +
        +
      • +

        forecastWeatherByCoordinates

        +
        public java.lang.String forecastWeatherByCoordinates(float latitude,
        +                                            float longitude)
        +                                              throws java.net.MalformedURLException,
        +                                                     java.io.IOException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
      • +
      + + + +
        +
      • +

        dailyForecastByCityName

        +
        public java.lang.String dailyForecastByCityName(java.lang.String cityName,
        +                                       byte count)
        +                                         throws java.net.MalformedURLException,
        +                                                java.io.IOException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
      • +
      + + + +
        +
      • +

        dailyForecastByCityName

        +
        public java.lang.String dailyForecastByCityName(java.lang.String cityName,
        +                                       java.lang.String countryCode,
        +                                       byte count)
        +                                         throws java.net.MalformedURLException,
        +                                                java.io.IOException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
      • +
      + + + +
        +
      • +

        dailyForecastByCityCode

        +
        public java.lang.String dailyForecastByCityCode(long cityCode,
        +                                       byte count)
        +                                         throws java.net.MalformedURLException,
        +                                                java.io.IOException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
      • +
      + + + +
        +
      • +

        dailyForecastByCoordinates

        +
        public java.lang.String dailyForecastByCoordinates(float latitude,
        +                                          float longitude,
        +                                          byte count)
        +                                            throws java.net.MalformedURLException,
        +                                                   java.io.IOException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/OpenWeatherMap.OWM_URL.html b/javadoc/net/aksingh/java/api/owm/OpenWeatherMap.OWM_URL.html new file mode 100644 index 0000000..4802863 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/OpenWeatherMap.OWM_URL.html @@ -0,0 +1,545 @@ + + + + + + +OpenWeatherMap.OWM_URL (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Enum OpenWeatherMap.OWM_URL

+
+
+
    +
  • java.lang.Object
  • +
  • + +
  • +
+
+ +
+
+ +
+
+
    +
  • + + + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        value

        +
        private final java.lang.String value
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static OpenWeatherMap.OWM_URL[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (OpenWeatherMap.OWM_URL c : OpenWeatherMap.OWM_URL.values())
        +    System.out.println(c);
        +
        +
        Returns:
        an array containing the constants of this enum type, in +the order they are declared
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static OpenWeatherMap.OWM_URL valueOf(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        Parameters:
        name - the name of the enum constant to be returned.
        +
        Returns:
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant +with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
      • +
      + + + +
        +
      • +

        getParameter

        +
        public java.lang.String getParameter()
        +
        Returns the parameter.
        +
        Returns:
        Parameter
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/OpenWeatherMap.html b/javadoc/net/aksingh/java/api/owm/OpenWeatherMap.html new file mode 100644 index 0000000..12dba28 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/OpenWeatherMap.html @@ -0,0 +1,646 @@ + + + + + + +OpenWeatherMap (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class OpenWeatherMap

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.OpenWeatherMap
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public class OpenWeatherMap
    +extends java.lang.Object
    +
    Provides methods to get weather, forecast, and other data from + OpenWeatherMap.org
    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/05
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+ +
+
+
    +
  • + + + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        OpenWeatherMap

        +
        public OpenWeatherMap(java.lang.String apiKey)
        +
      • +
      + + + + +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        currentWeatherByCityName

        +
        public CurrentWeatherData currentWeatherByCityName(java.lang.String cityName)
        +                                            throws java.net.MalformedURLException,
        +                                                   java.io.IOException,
        +                                                   org.json.JSONException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
        org.json.JSONException
        +
      • +
      + + + +
        +
      • +

        currentWeatherByCityName

        +
        public CurrentWeatherData currentWeatherByCityName(java.lang.String cityName,
        +                                          java.lang.String countryCode)
        +                                            throws java.net.MalformedURLException,
        +                                                   java.io.IOException,
        +                                                   org.json.JSONException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
        org.json.JSONException
        +
      • +
      + + + +
        +
      • +

        currentWeatherByCityCode

        +
        public CurrentWeatherData currentWeatherByCityCode(long cityCode)
        +                                            throws java.net.MalformedURLException,
        +                                                   java.io.IOException,
        +                                                   org.json.JSONException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
        org.json.JSONException
        +
      • +
      + + + +
        +
      • +

        currentWeatherByCoordinates

        +
        public CurrentWeatherData currentWeatherByCoordinates(float latitude,
        +                                             float longitude)
        +                                               throws java.net.MalformedURLException,
        +                                                      java.io.IOException,
        +                                                      org.json.JSONException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
        org.json.JSONException
        +
      • +
      + + + +
        +
      • +

        currentWeatherFromResponse

        +
        public CurrentWeatherData currentWeatherFromResponse(java.lang.String jsonResponse)
        +                                              throws java.net.MalformedURLException,
        +                                                     java.io.IOException,
        +                                                     org.json.JSONException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
        org.json.JSONException
        +
      • +
      + + + +
        +
      • +

        forecastWeatherByCityName

        +
        public ForecastWeatherData forecastWeatherByCityName(java.lang.String cityName)
        +                                              throws java.net.MalformedURLException,
        +                                                     java.io.IOException,
        +                                                     org.json.JSONException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
        org.json.JSONException
        +
      • +
      + + + +
        +
      • +

        forecastWeatherByCityName

        +
        public ForecastWeatherData forecastWeatherByCityName(java.lang.String cityName,
        +                                            java.lang.String countryCode)
        +                                              throws java.net.MalformedURLException,
        +                                                     java.io.IOException,
        +                                                     org.json.JSONException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
        org.json.JSONException
        +
      • +
      + + + +
        +
      • +

        forecastWeatherByCityCode

        +
        public ForecastWeatherData forecastWeatherByCityCode(long cityCode)
        +                                              throws java.net.MalformedURLException,
        +                                                     java.io.IOException,
        +                                                     org.json.JSONException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
        org.json.JSONException
        +
      • +
      + + + +
        +
      • +

        forecastWeatherByCoordinates

        +
        public ForecastWeatherData forecastWeatherByCoordinates(float latitude,
        +                                               float longitude)
        +                                                 throws java.net.MalformedURLException,
        +                                                        java.io.IOException,
        +                                                        org.json.JSONException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
        org.json.JSONException
        +
      • +
      + + + +
        +
      • +

        forecastWeatherFromResponse

        +
        public ForecastWeatherData forecastWeatherFromResponse(java.lang.String jsonResponse)
        +                                                throws java.net.MalformedURLException,
        +                                                       java.io.IOException,
        +                                                       org.json.JSONException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
        org.json.JSONException
        +
      • +
      + + + +
        +
      • +

        dailyForecastByCityName

        +
        public DailyForecastData dailyForecastByCityName(java.lang.String cityName,
        +                                        byte count)
        +                                          throws java.net.MalformedURLException,
        +                                                 java.io.IOException,
        +                                                 org.json.JSONException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
        org.json.JSONException
        +
      • +
      + + + +
        +
      • +

        dailyForecastByCityName

        +
        public DailyForecastData dailyForecastByCityName(java.lang.String cityName,
        +                                        java.lang.String countryCode,
        +                                        byte count)
        +                                          throws java.net.MalformedURLException,
        +                                                 java.io.IOException,
        +                                                 org.json.JSONException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
        org.json.JSONException
        +
      • +
      + + + +
        +
      • +

        dailyForecastByCityCode

        +
        public DailyForecastData dailyForecastByCityCode(long cityCode,
        +                                        byte count)
        +                                          throws java.net.MalformedURLException,
        +                                                 java.io.IOException,
        +                                                 org.json.JSONException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
        org.json.JSONException
        +
      • +
      + + + +
        +
      • +

        dailyForecastByCoordinates

        +
        public DailyForecastData dailyForecastByCoordinates(float latitude,
        +                                           float longitude,
        +                                           byte count)
        +                                             throws java.net.MalformedURLException,
        +                                                    java.io.IOException,
        +                                                    org.json.JSONException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
        org.json.JSONException
        +
      • +
      + + + +
        +
      • +

        dailyForecastFromResponse

        +
        public DailyForecastData dailyForecastFromResponse(java.lang.String jsonResponse)
        +                                            throws java.net.MalformedURLException,
        +                                                   java.io.IOException,
        +                                                   org.json.JSONException
        +
        Throws:
        +
        java.net.MalformedURLException
        +
        java.io.IOException
        +
        org.json.JSONException
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/Tools.Convertor.html b/javadoc/net/aksingh/java/api/owm/Tools.Convertor.html new file mode 100644 index 0000000..202649f --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/Tools.Convertor.html @@ -0,0 +1,274 @@ + + + + + + +Tools.Convertor (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class Tools.Convertor

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.Tools.Convertor
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    Tools
    +
    +
    +
    +
    public static class Tools.Convertor
    +extends java.lang.Object
    +
    Provides methods to do conversions. + For example, converting degree to direction, etc.
    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/05
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + +
      Constructors 
      Constructor and Description
      Tools.Convertor() 
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      java.lang.StringconvertDegree2Direction(float degree) +
      Converts degree to direction.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Tools.Convertor

        +
        public Tools.Convertor()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        convertDegree2Direction

        +
        public java.lang.String convertDegree2Direction(float degree)
        +                                         throws java.lang.IllegalArgumentException
        +
        Converts degree to direction.
        +
        Returns:
        Direction
        +
        Throws:
        +
        java.lang.IllegalArgumentException - Degree should be between 0 and 360.
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/Tools.Downloader.html b/javadoc/net/aksingh/java/api/owm/Tools.Downloader.html new file mode 100644 index 0000000..d97be95 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/Tools.Downloader.html @@ -0,0 +1,282 @@ + + + + + + +Tools.Downloader (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class Tools.Downloader

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.Tools.Downloader
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    Tools
    +
    +
    +
    +
    public static class Tools.Downloader
    +extends java.lang.Object
    +
    Provides methods to download data or files from the Internet.
    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013-07-24
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + +
      Constructors 
      Constructor and Description
      Tools.Downloader() 
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      static java.lang.StringdownloadPage(java.lang.String pageAddress) +
      Downloads a page/content from the Internet.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Tools.Downloader

        +
        public Tools.Downloader()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        downloadPage

        +
        public static java.lang.String downloadPage(java.lang.String pageAddress)
        +                                     throws java.net.MalformedURLException,
        +                                            java.io.IOException
        +
        Downloads a page/content from the Internet. + This method gets the content of the web page, whose URL is given by + the pageAddress. + +

        NOTE: pageAddress should be a correct URL, else + this method will throw MalformedURLException.

        +
        Parameters:
        pageAddress - Address of the web page to get from the Internet.
        +
        Returns:
        Content of the web page
        +
        Throws:
        +
        java.net.MalformedURLException - Address of the web page is not correct.
        +
        java.io.IOException - Error while loading the page from the Internet or connection + got disconnected.
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/Tools.HTML.html b/javadoc/net/aksingh/java/api/owm/Tools.HTML.html new file mode 100644 index 0000000..b225645 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/Tools.HTML.html @@ -0,0 +1,278 @@ + + + + + + +Tools.HTML (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class Tools.HTML

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.Tools.HTML
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    Tools
    +
    +
    +
    +
    public static class Tools.HTML
    +extends java.lang.Object
    +
    Provides functions to handle HTML, e.g., correcting + non-compliant or non-strict web addresses, etc.
    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013/08/05
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + +
      Constructors 
      Constructor and Description
      Tools.HTML() 
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      static java.lang.StringstrictAddress(java.lang.String inputString) +
      Stricts a non-strict or non-compliant web address + to a proper URL.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Tools.HTML

        +
        public Tools.HTML()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        strictAddress

        +
        public static java.lang.String strictAddress(java.lang.String inputString)
        +
        Stricts a non-strict or non-compliant web address + to a proper URL. + +

        Note: This function checks and stricts only some parts of the + URL, which are necessary to be corrected for accessing data from + the OpenWeatherMap.org

        +
        Parameters:
        inputString - String to be converted to strict HTML address
        +
        Returns:
        HTML standards-followed and stricted URL
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/Tools.html b/javadoc/net/aksingh/java/api/owm/Tools.html new file mode 100644 index 0000000..e197a1e --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/Tools.html @@ -0,0 +1,275 @@ + + + + + + +Tools (OpenWeatherMap.org JAPIs) + + + + + + + + + + + +
+
net.aksingh.java.api.owm
+

Class Tools

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • net.aksingh.java.api.owm.Tools
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public class Tools
    +extends java.lang.Object
    +
    Provides various tools, which help doing tasks in this application. + For example, tool for downloading content from the Internet, tool for + correcting and stricting web addresses, etc. + +

    Note: This class directly do not provide any functions, but has + static sub-classes which provide various + related tools, i.e., this class only behaves as the container for those + classes.

    +
    Since:
    +
    2.5.0.1
    +
    Version:
    +
    2013-08-05
    +
    Author:
    +
    Ashutosh Kumar Singh
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Nested Class Summary

      + + + + + + + + + + + + + + + + + + +
      Nested Classes 
      Modifier and TypeClass and Description
      static class Tools.Convertor +
      Provides methods to do conversions.
      +
      static class Tools.Downloader +
      Provides methods to download data or files from the Internet.
      +
      static class Tools.HTML +
      Provides functions to handle HTML, e.g., correcting + non-compliant or non-strict web addresses, etc.
      +
      +
    • +
    + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + +
      Constructors 
      Constructor and Description
      Tools() 
      +
    • +
    + +
      +
    • + + +

      Method Summary

      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Tools

        +
        public Tools()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Clouds.html b/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Clouds.html new file mode 100644 index 0000000..fb461a9 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Clouds.html @@ -0,0 +1,149 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.AbstractWeatherData.Clouds (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.AbstractWeatherData.Clouds

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Coord.html b/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Coord.html new file mode 100644 index 0000000..43c8ed8 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Coord.html @@ -0,0 +1,156 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.AbstractWeatherData.Coord (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.AbstractWeatherData.Coord

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Main.html b/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Main.html new file mode 100644 index 0000000..62037a9 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Main.html @@ -0,0 +1,149 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.AbstractWeatherData.Main (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.AbstractWeatherData.Main

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Weather.html b/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Weather.html new file mode 100644 index 0000000..f6da4c7 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Weather.html @@ -0,0 +1,155 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.AbstractWeatherData.Weather (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.AbstractWeatherData.Weather

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Wind.html b/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Wind.html new file mode 100644 index 0000000..bf598db --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.Wind.html @@ -0,0 +1,149 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.AbstractWeatherData.Wind (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.AbstractWeatherData.Wind

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.html b/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.html new file mode 100644 index 0000000..5839d98 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/AbstractWeatherData.html @@ -0,0 +1,156 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.AbstractWeatherData (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.AbstractWeatherData

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Clouds.html b/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Clouds.html new file mode 100644 index 0000000..1a0634a --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Clouds.html @@ -0,0 +1,152 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.CurrentWeatherData.Clouds (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.CurrentWeatherData.Clouds

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Coord.html b/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Coord.html new file mode 100644 index 0000000..ef174cf --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Coord.html @@ -0,0 +1,152 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.CurrentWeatherData.Coord (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.CurrentWeatherData.Coord

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Main.html b/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Main.html new file mode 100644 index 0000000..4a8ed56 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Main.html @@ -0,0 +1,152 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.CurrentWeatherData.Main (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.CurrentWeatherData.Main

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Rain.html b/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Rain.html new file mode 100644 index 0000000..ed1c63a --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Rain.html @@ -0,0 +1,152 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.CurrentWeatherData.Rain (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.CurrentWeatherData.Rain

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Sys.html b/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Sys.html new file mode 100644 index 0000000..d662b72 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Sys.html @@ -0,0 +1,152 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.CurrentWeatherData.Sys (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.CurrentWeatherData.Sys

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Weather.html b/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Weather.html new file mode 100644 index 0000000..147caac --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Weather.html @@ -0,0 +1,154 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.CurrentWeatherData.Weather (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.CurrentWeatherData.Weather

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Wind.html b/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Wind.html new file mode 100644 index 0000000..a2e6e13 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.Wind.html @@ -0,0 +1,152 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.CurrentWeatherData.Wind (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.CurrentWeatherData.Wind

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.html b/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.html new file mode 100644 index 0000000..571a3ee --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/CurrentWeatherData.html @@ -0,0 +1,157 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.CurrentWeatherData (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.CurrentWeatherData

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.City.Coord.html b/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.City.Coord.html new file mode 100644 index 0000000..7d60d17 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.City.Coord.html @@ -0,0 +1,152 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.DailyForecastData.City.Coord (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.DailyForecastData.City.Coord

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.City.html b/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.City.html new file mode 100644 index 0000000..a6b41a5 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.City.html @@ -0,0 +1,152 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.DailyForecastData.City (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.DailyForecastData.City

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.Forecast.Temperature.html b/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.Forecast.Temperature.html new file mode 100644 index 0000000..1560fff --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.Forecast.Temperature.html @@ -0,0 +1,152 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.DailyForecastData.Forecast.Temperature

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.Forecast.Weather.html b/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.Forecast.Weather.html new file mode 100644 index 0000000..fec4dcf --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.Forecast.Weather.html @@ -0,0 +1,154 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.DailyForecastData.Forecast.Weather (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.DailyForecastData.Forecast.Weather

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.Forecast.html b/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.Forecast.html new file mode 100644 index 0000000..2ed7396 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.Forecast.html @@ -0,0 +1,154 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.DailyForecastData.Forecast (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.DailyForecastData.Forecast

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.html b/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.html new file mode 100644 index 0000000..d196950 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/DailyForecastData.html @@ -0,0 +1,161 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.DailyForecastData (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.DailyForecastData

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.City.Coord.html b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.City.Coord.html new file mode 100644 index 0000000..0d0ba34 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.City.Coord.html @@ -0,0 +1,152 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.ForecastWeatherData.City.Coord (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.ForecastWeatherData.City.Coord

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.City.html b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.City.html new file mode 100644 index 0000000..84c179f --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.City.html @@ -0,0 +1,152 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.ForecastWeatherData.City (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.ForecastWeatherData.City

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Clouds.html b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Clouds.html new file mode 100644 index 0000000..9a8fdac --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Clouds.html @@ -0,0 +1,152 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Clouds (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Clouds

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Main.html b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Main.html new file mode 100644 index 0000000..bec95e3 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Main.html @@ -0,0 +1,152 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Main (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Main

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Sys.html b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Sys.html new file mode 100644 index 0000000..2104b3b --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Sys.html @@ -0,0 +1,152 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Sys (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Sys

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Weather.html b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Weather.html new file mode 100644 index 0000000..5498569 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Weather.html @@ -0,0 +1,154 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Weather (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Weather

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Wind.html b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Wind.html new file mode 100644 index 0000000..1599b42 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.Wind.html @@ -0,0 +1,152 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Wind (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.ForecastWeatherData.Forecast.Wind

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.html b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.html new file mode 100644 index 0000000..3a6c7cd --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.Forecast.html @@ -0,0 +1,154 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.ForecastWeatherData.Forecast (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.ForecastWeatherData.Forecast

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.html b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.html new file mode 100644 index 0000000..58aaf12 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/ForecastWeatherData.html @@ -0,0 +1,157 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.ForecastWeatherData (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.ForecastWeatherData

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/OpenWeatherMap.OWM_Response.html b/javadoc/net/aksingh/java/api/owm/class-use/OpenWeatherMap.OWM_Response.html new file mode 100644 index 0000000..b208be5 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/OpenWeatherMap.OWM_Response.html @@ -0,0 +1,141 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.OpenWeatherMap.OWM_Response

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/OpenWeatherMap.OWM_URL.html b/javadoc/net/aksingh/java/api/owm/class-use/OpenWeatherMap.OWM_URL.html new file mode 100644 index 0000000..b1bbfbe --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/OpenWeatherMap.OWM_URL.html @@ -0,0 +1,164 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.OpenWeatherMap.OWM_URL (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.OpenWeatherMap.OWM_URL

+
+
+ +
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/OpenWeatherMap.html b/javadoc/net/aksingh/java/api/owm/class-use/OpenWeatherMap.html new file mode 100644 index 0000000..a8fe557 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/OpenWeatherMap.html @@ -0,0 +1,114 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.OpenWeatherMap (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.OpenWeatherMap

+
+
No usage of net.aksingh.java.api.owm.OpenWeatherMap
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/Tools.Convertor.html b/javadoc/net/aksingh/java/api/owm/class-use/Tools.Convertor.html new file mode 100644 index 0000000..cb5e751 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/Tools.Convertor.html @@ -0,0 +1,114 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.Tools.Convertor (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.Tools.Convertor

+
+
No usage of net.aksingh.java.api.owm.Tools.Convertor
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/Tools.Downloader.html b/javadoc/net/aksingh/java/api/owm/class-use/Tools.Downloader.html new file mode 100644 index 0000000..681ddfe --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/Tools.Downloader.html @@ -0,0 +1,114 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.Tools.Downloader (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.Tools.Downloader

+
+
No usage of net.aksingh.java.api.owm.Tools.Downloader
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/Tools.HTML.html b/javadoc/net/aksingh/java/api/owm/class-use/Tools.HTML.html new file mode 100644 index 0000000..91492ae --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/Tools.HTML.html @@ -0,0 +1,114 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.Tools.HTML (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.Tools.HTML

+
+
No usage of net.aksingh.java.api.owm.Tools.HTML
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/class-use/Tools.html b/javadoc/net/aksingh/java/api/owm/class-use/Tools.html new file mode 100644 index 0000000..c861c46 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/class-use/Tools.html @@ -0,0 +1,114 @@ + + + + + + +Uses of Class net.aksingh.java.api.owm.Tools (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Uses of Class
net.aksingh.java.api.owm.Tools

+
+
No usage of net.aksingh.java.api.owm.Tools
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/package-frame.html b/javadoc/net/aksingh/java/api/owm/package-frame.html new file mode 100644 index 0000000..02b0c9f --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/package-frame.html @@ -0,0 +1,58 @@ + + + + + + +net.aksingh.java.api.owm (OpenWeatherMap.org JAPIs) + + + + +

net.aksingh.java.api.owm

+ + + diff --git a/javadoc/net/aksingh/java/api/owm/package-summary.html b/javadoc/net/aksingh/java/api/owm/package-summary.html new file mode 100644 index 0000000..1d23993 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/package-summary.html @@ -0,0 +1,376 @@ + + + + + + +net.aksingh.java.api.owm (OpenWeatherMap.org JAPIs) + + + + + + + + + + +
+

Package net.aksingh.java.api.owm

+
+
+
    +
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Class Summary 
    ClassDescription
    AbstractWeatherData +
    This class provides default implementations for CurrentWeatherData + and ForecastWeatherData classes.
    +
    AbstractWeatherData.Clouds +
    This class provides default implementations for Clouds.
    +
    AbstractWeatherData.Coord +
    This class provides default implementations for Coord.
    +
    AbstractWeatherData.Main +
    This class provides default implementations for Main.
    +
    AbstractWeatherData.Weather +
    This class provides default implementations for Weather.
    +
    AbstractWeatherData.Wind +
    This class provides default implementations for Wind.
    +
    CurrentWeatherData +
    Parses current weather data (from the JSON data) and provides methods + to get/access the information about current weather.
    +
    CurrentWeatherData.Clouds +
    Parses data about clouds (from the JSON data) and provides methods + to get/access the information.
    +
    CurrentWeatherData.Coord +
    Parses data about geographic coordinates (from the JSON data) + and provides methods to get/access the information.
    +
    CurrentWeatherData.Main +
    Parses data about main weather elements (from the JSON data) and + provides methods to get/access the information.
    +
    CurrentWeatherData.Rain +
    Parses data about rain (from the JSON data) and provides methods + to get/access the information.
    +
    CurrentWeatherData.Sys +
    Parses data about country, sunrise, and sunset (from the JSON data) + and provides methods to get/access the information.
    +
    CurrentWeatherData.Weather +
    Parses data about weather code, name, etc.
    +
    CurrentWeatherData.Wind +
    Parses data about winds (from the JSON data) and provides methods + to get/access the information.
    +
    DailyForecastData +
    Parses daily forecast data (from the JSON data) and provides methods + to get/access the information about daily forecasted weather.
    +
    DailyForecastData.City +
    Parses data about city (from the JSON data) + and provides methods to get/access the information.
    +
    DailyForecastData.City.Coord +
    Parses data about geographic coordinates (from the JSON data) + and provides methods to get/access the information.
    +
    DailyForecastData.Forecast +
    Parses data about forecasts (from the JSON data) + and provides methods to get/access the information.
    +
    DailyForecastData.Forecast.Temperature +
    Parses data about temperature (from the JSON data) + and provides methods to get/access the information.
    +
    DailyForecastData.Forecast.Weather +
    Parses data about weather (from the JSON data) + and provides methods to get/access the information.
    +
    ForecastWeatherData +
    Parses forecast weather data (from the JSON data) and provides methods + to get/access the information about forecasted weather.
    +
    ForecastWeatherData.City +
    Parses data about city (from the JSON data) + and provides methods to get/access the information.
    +
    ForecastWeatherData.City.Coord +
    Parses data about geographic coordinates (from the JSON data) + and provides methods to get/access the information.
    +
    ForecastWeatherData.Forecast +
    Parses data about forecasts (from the JSON data) + and provides methods to get/access the information.
    +
    ForecastWeatherData.Forecast.Clouds +
    Parses data about clouds (from the JSON data) + and provides methods to get/access the information.
    +
    ForecastWeatherData.Forecast.Main +
    Parses data about main weather elements (from the JSON data) + and provides methods to get/access the information.
    +
    ForecastWeatherData.Forecast.Sys +
    Parses data about main weather elements (from the JSON data) + and provides methods to get/access the information.
    +
    ForecastWeatherData.Forecast.Weather +
    Parses data about weather (from the JSON data) + and provides methods to get/access the information.
    +
    ForecastWeatherData.Forecast.Wind +
    Parses data about wind (from the JSON data) + and provides methods to get/access the information.
    +
    OpenWeatherMap +
    Provides methods to get weather, forecast, and other data from + OpenWeatherMap.org
    +
    OpenWeatherMap.OWM_Response 
    Tools +
    Provides various tools, which help doing tasks in this application.
    +
    Tools.Convertor +
    Provides methods to do conversions.
    +
    Tools.Downloader +
    Provides methods to download data or files from the Internet.
    +
    Tools.HTML +
    Provides functions to handle HTML, e.g., correcting + non-compliant or non-strict web addresses, etc.
    +
    +
  • +
  • + + + + + + + + + + + + +
    Enum Summary 
    EnumDescription
    OpenWeatherMap.OWM_URL 
    +
  • +
+
+ + + + + + diff --git a/javadoc/net/aksingh/java/api/owm/package-tree.html b/javadoc/net/aksingh/java/api/owm/package-tree.html new file mode 100644 index 0000000..1b97798 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/package-tree.html @@ -0,0 +1,187 @@ + + + + + + +net.aksingh.java.api.owm Class Hierarchy (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
+

Hierarchy For Package net.aksingh.java.api.owm

+
+
+

Class Hierarchy

+ +

Enum Hierarchy

+
    +
  • java.lang.Object +
      +
    • java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable) + +
    • +
    +
  • +
+
+ +
+ + + + + +
+ + + + diff --git a/javadoc/net/aksingh/java/api/owm/package-use.html b/javadoc/net/aksingh/java/api/owm/package-use.html new file mode 100644 index 0000000..bc0fb77 --- /dev/null +++ b/javadoc/net/aksingh/java/api/owm/package-use.html @@ -0,0 +1,303 @@ + + + + + + +Uses of Package net.aksingh.java.api.owm (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
+

Uses of Package
net.aksingh.java.api.owm

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/javadoc/overview-tree.html b/javadoc/overview-tree.html new file mode 100644 index 0000000..62e266e --- /dev/null +++ b/javadoc/overview-tree.html @@ -0,0 +1,191 @@ + + + + + + +Class Hierarchy (OpenWeatherMap.org JAPIs) + + + + + + + +
+ + + + + +
+ + +
+

Hierarchy For All Packages

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Enum Hierarchy

+
    +
  • java.lang.Object +
      +
    • java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable) + +
    • +
    +
  • +
+
+ +
+ + + + + +
+ + + + diff --git a/javadoc/package-list b/javadoc/package-list new file mode 100644 index 0000000..ad480da --- /dev/null +++ b/javadoc/package-list @@ -0,0 +1 @@ +net.aksingh.java.api.owm diff --git a/javadoc/resources/background.gif b/javadoc/resources/background.gif new file mode 100644 index 0000000000000000000000000000000000000000..f471940fde2f39ef8943a6af9569bcf986b1579b GIT binary patch literal 2313 zcmV+k3HJ6!Nk%w1VKM-40OkMy00030|NlK(aXwsfKV5S}VtGJbbVOr%L0@%CZH88Q zl{{NzcR^uxNo<2iYk@pjY)*5FJz8x~bc{)B zfk z+1T6M-s9WdW8dcJ-wO*3@9+W*5AY543-j^$^!EPz_4eHZ2#>)41`h@dc!2OAgN6$a zCS2I?;lqgx6IR4nkpTe;1RN0f=zxMq2O=q`94V5d$&e>Unta)^<;;^G3>e7yp=ZvW z6DIW3xpSvaogXF?_4%`@(V;s}NR^5J!3hrtJV@1QRV&r5S*L!zYE|rss${iFkg&!? zTN5V#)~=bmMorwgZsEpdOE)iExo+FO-8;8Kga{=HbSQCnF=E6W3?o*|ID%uwi5**> zJXy127Y9m+=HQ|PhXWi+xNwoWv}n_%Pq%(e+H~mGqhq5kv4Mo|-n~g|7!F*xZ{xv< zCpXS~dGg^IGK?4@J-T%b(XnUHFul6n<@2&4)zzyO2) z3Q8`i0+UKY*`$}e9mmp;tg*))`|PsK1|hAo%u0K$vDwm4gaSkm0j{`26k#qAKmbuhxZ#cquDR>B zD{s8+&TH-uNg$C#68QG}1HMBHfrP&L@@w$F_!itRzXdCN@V|LDAu%3!IDtq1#1UV7 z#1RxvT=B(DWbCoU5l=ia$Pp`Hgb_?Mp@hmtxZDI2N-)v#$}PXVvdm1d>@v(v`0TUJ zF)Pu89(q`zv=w^nVTIF3@3BYIPA}c`(@ZCAwbNBEt@PDUKe5CTR8aB66IE1!w%Amt zy+jpcn~k>GZpVFg+H6x{_uOksvBlq0OyT$6TyQZ37k(cOxZr|JEx1sGm<(M9gH z-~PMqyn|tT=))UN`|-FFFUA#KToK0fUOaz=7}Z~KeHhVC&%O27cTfHQ^WBU8z4p&T zp#>D|V}XShTD;Hx745Iz{`>K-Z$A|7!*Boo{mY;G21vjH8t{M!OrQc6$iN0V@PQDF zpadsK!3tXNf*8!81~qnXWuHZ)kytd=_y+ADWvw31ouV;CdZ#ya*(l7-A-C-Y^+iit8O zBy3*`Ls$|5Hn4m_^I^|C7{m7EFn|5vTk;|oywIgCc9Bb*=L+Y$)M>9GC<|HGs@6NB zHLY%03!dDf=eDRt2O6lVSFRcsuWZEwU?=z$CZ0W?#VJfdN>HG(l%oKpyiftJc|Y)xkjSJYCrQal-0PC~()T9xwF!Jf zVi1UA#3BBbh(i8r5&v#Pz!cF41KjbCc?4u2@@Q~oKLirt2TM30;y6b+zyX2`Yl9u; z`0$3;v0-YUp&7NdPT#q`cZlbij$jvbRk6R>8g*>}*b9E+WDwmpHAAxYzyT aU_pX{M6b8i>#Dq3onfZy}_nli%!Q$ZV%e&!tN2 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 YpWXKgmku8Vj|K)Vje`mzEKCg608Q#dYybcN literal 0 HcmV?d00001 diff --git a/javadoc/stylesheet.css b/javadoc/stylesheet.css new file mode 100644 index 0000000..0aeaa97 --- /dev/null +++ b/javadoc/stylesheet.css @@ -0,0 +1,474 @@ +/* Javadoc style sheet */ +/* +Overall document style +*/ +body { + background-color:#ffffff; + color:#353833; + font-family:Arial, Helvetica, sans-serif; + font-size:76%; + margin:0; +} +a:link, a:visited { + text-decoration:none; + color:#4c6b87; +} +a:hover, a:focus { + text-decoration:none; + color:#bb7a2a; +} +a:active { + text-decoration:none; + color:#4c6b87; +} +a[name] { + color:#353833; +} +a[name]:hover { + text-decoration:none; + color:#353833; +} +pre { + font-size:1.3em; +} +h1 { + font-size:1.8em; +} +h2 { + font-size:1.5em; +} +h3 { + font-size:1.4em; +} +h4 { + font-size:1.3em; +} +h5 { + font-size:1.2em; +} +h6 { + font-size:1.1em; +} +ul { + list-style-type:disc; +} +code, tt { + font-size:1.2em; +} +dt code { + font-size:1.2em; +} +table tr td dt code { + font-size:1.2em; + vertical-align:top; +} +sup { + font-size:.6em; +} +/* +Document title and Copyright styles +*/ +.clear { + clear:both; + height:0px; + overflow:hidden; +} +.aboutLanguage { + float:right; + padding:0px 21px; + font-size:.8em; + z-index:200; + margin-top:-7px; +} +.legalCopy { + margin-left:.5em; +} +.bar a, .bar a:link, .bar a:visited, .bar a:active { + color:#FFFFFF; + text-decoration:none; +} +.bar a:hover, .bar a:focus { + color:#bb7a2a; +} +.tab { + background-color:#0066FF; + background-image:url(resources/titlebar.gif); + background-position:left top; + background-repeat:no-repeat; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* +Navigation bar styles +*/ +.bar { + background-image:url(resources/background.gif); + background-repeat:repeat-x; + color:#FFFFFF; + padding:.8em .5em .4em .8em; + height:auto;/*height:1.8em;*/ + font-size:1em; + margin:0; +} +.topNav { + background-image:url(resources/background.gif); + background-repeat:repeat-x; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; +} +.bottomNav { + margin-top:10px; + background-image:url(resources/background.gif); + background-repeat:repeat-x; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; +} +.subNav { + background-color:#dee3e9; + border-bottom:1px solid #9eadc0; + float:left; + width:100%; + overflow:hidden; +} +.subNav div { + clear:left; + float:left; + padding:0 0 5px 6px; +} +ul.navList, ul.subNavList { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.navList li{ + list-style:none; + float:left; + padding:3px 6px; +} +ul.subNavList li{ + list-style:none; + float:left; + font-size:90%; +} +.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { + color:#FFFFFF; + text-decoration:none; +} +.topNav a:hover, .bottomNav a:hover { + text-decoration:none; + color:#bb7a2a; +} +.navBarCell1Rev { + background-image:url(resources/tab.gif); + background-color:#a88834; + color:#FFFFFF; + margin: auto 5px; + border:1px solid #c9aa44; +} +/* +Page header and footer styles +*/ +.header, .footer { + clear:both; + margin:0 20px; + padding:5px 0 0 0; +} +.indexHeader { + margin:10px; + position:relative; +} +.indexHeader h1 { + font-size:1.3em; +} +.title { + color:#2c4557; + margin:10px 0; +} +.subTitle { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 25px 0; + padding:0; +} +.footer ul { + margin:20px 0 5px 0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:1.2em; +} +/* +Heading styles +*/ +div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { + background-color:#dee3e9; + border-top:1px solid #9eadc0; + border-bottom:1px solid #9eadc0; + margin:0 0 6px -8px; + padding:2px 5px; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + background-color:#dee3e9; + border-top:1px solid #9eadc0; + border-bottom:1px solid #9eadc0; + margin:0 0 6px -8px; + padding:2px 5px; +} +ul.blockList ul.blockList li.blockList h3 { + padding:0; + margin:15px 0; +} +ul.blockList li.blockList h2 { + padding:0px 0 20px 0; +} +/* +Page layout container styles +*/ +.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { + clear:both; + padding:10px 20px; + position:relative; +} +.indexContainer { + margin:10px; + position:relative; + font-size:1.0em; +} +.indexContainer h2 { + font-size:1.1em; + padding:0 0 3px 0; +} +.indexContainer ul { + margin:0; + padding:0; +} +.indexContainer ul li { + list-style:none; +} +.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { + font-size:1.1em; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { + margin:10px 0 10px 20px; +} +.serializedFormContainer dl.nameValue dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +.serializedFormContainer dl.nameValue dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* +List styles +*/ +ul.horizontal li { + display:inline; + font-size:0.9em; +} +ul.inheritance { + margin:0; + padding:0; +} +ul.inheritance li { + display:inline; + list-style:none; +} +ul.inheritance li ul.inheritance { + margin-left:15px; + padding-left:15px; + padding-top:1px; +} +ul.blockList, ul.blockListLast { + margin:10px 0 10px 0; + padding:0; +} +ul.blockList li.blockList, ul.blockListLast li.blockList { + list-style:none; + margin-bottom:25px; +} +ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { + padding:0px 20px 5px 10px; + border:1px solid #9eadc0; + background-color:#f9f9f9; +} +ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { + padding:0 0 5px 8px; + background-color:#ffffff; + border:1px solid #9eadc0; + border-top:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { + margin-left:0; + padding-left:0; + padding-bottom:15px; + border:none; + border-bottom:1px solid #9eadc0; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { + list-style:none; + border-bottom:none; + padding-bottom:0; +} +table tr td dl, table tr td dl dt, table tr td dl dd { + margin-top:0; + margin-bottom:1px; +} +/* +Table styles +*/ +.contentContainer table, .classUseContainer table, .constantValuesContainer table { + border-bottom:1px solid #9eadc0; + width:100%; +} +.contentContainer ul li table, .classUseContainer ul li table, .constantValuesContainer ul li table { + width:100%; +} +.contentContainer .description table, .contentContainer .details table { + border-bottom:none; +} +.contentContainer ul li table th.colOne, .contentContainer ul li table th.colFirst, .contentContainer ul li table th.colLast, .classUseContainer ul li table th, .constantValuesContainer ul li table th, .contentContainer ul li table td.colOne, .contentContainer ul li table td.colFirst, .contentContainer ul li table td.colLast, .classUseContainer ul li table td, .constantValuesContainer ul li table td{ + vertical-align:top; + padding-right:20px; +} +.contentContainer ul li table th.colLast, .classUseContainer ul li table th.colLast,.constantValuesContainer ul li table th.colLast, +.contentContainer ul li table td.colLast, .classUseContainer ul li table td.colLast,.constantValuesContainer ul li table td.colLast, +.contentContainer ul li table th.colOne, .classUseContainer ul li table th.colOne, +.contentContainer ul li table td.colOne, .classUseContainer ul li table td.colOne { + padding-right:3px; +} +.overviewSummary caption, .packageSummary caption, .contentContainer ul.blockList li.blockList caption, .summary caption, .classUseContainer caption, .constantValuesContainer caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#FFFFFF; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0px; + margin:0px; +} +caption a:link, caption a:hover, caption a:active, caption a:visited { + color:#FFFFFF; +} +.overviewSummary caption span, .packageSummary caption span, .contentContainer ul.blockList li.blockList caption span, .summary caption span, .classUseContainer caption span, .constantValuesContainer caption span { + white-space:nowrap; + padding-top:8px; + padding-left:8px; + display:block; + float:left; + background-image:url(resources/titlebar.gif); + height:18px; +} +.overviewSummary .tabEnd, .packageSummary .tabEnd, .contentContainer ul.blockList li.blockList .tabEnd, .summary .tabEnd, .classUseContainer .tabEnd, .constantValuesContainer .tabEnd { + width:10px; + background-image:url(resources/titlebar_end.gif); + background-repeat:no-repeat; + background-position:top right; + position:relative; + float:left; +} +ul.blockList ul.blockList li.blockList table { + margin:0 0 12px 0px; + width:100%; +} +.tableSubHeadingColor { + background-color: #EEEEFF; +} +.altColor { + background-color:#eeeeef; +} +.rowColor { + background-color:#ffffff; +} +.overviewSummary td, .packageSummary td, .contentContainer ul.blockList li.blockList td, .summary td, .classUseContainer td, .constantValuesContainer td { + text-align:left; + padding:3px 3px 3px 7px; +} +th.colFirst, th.colLast, th.colOne, .constantValuesContainer th { + background:#dee3e9; + border-top:1px solid #9eadc0; + border-bottom:1px solid #9eadc0; + text-align:left; + padding:3px 3px 3px 7px; +} +td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { + font-weight:bold; +} +td.colFirst, th.colFirst { + border-left:1px solid #9eadc0; + white-space:nowrap; +} +td.colLast, th.colLast { + border-right:1px solid #9eadc0; +} +td.colOne, th.colOne { + border-right:1px solid #9eadc0; + border-left:1px solid #9eadc0; +} +table.overviewSummary { + padding:0px; + margin-left:0px; +} +table.overviewSummary td.colFirst, table.overviewSummary th.colFirst, +table.overviewSummary td.colOne, table.overviewSummary th.colOne { + width:25%; + vertical-align:middle; +} +table.packageSummary td.colFirst, table.overviewSummary th.colFirst { + width:25%; + vertical-align:middle; +} +/* +Content styles +*/ +.description pre { + margin-top:0; +} +.deprecatedContent { + margin:0; + padding:10px 0; +} +.docSummary { + padding:0; +} +/* +Formatting effect styles +*/ +.sourceLineNo { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:.9em; +} +.block { + display:block; + margin:3px 0 0 0; +} +.strong { + font-weight:bold; +} diff --git a/lib/JSON.jar b/lib/JSON.jar new file mode 100644 index 0000000000000000000000000000000000000000..f51e9de732f267fe45b89017982fd8f347b6bd6f GIT binary patch literal 41821 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 literal 0 HcmV?d00001 diff --git a/src/net/aksingh/java/api/owm/AbstractWeatherData.java b/src/net/aksingh/java/api/owm/AbstractWeatherData.java new file mode 100644 index 0000000..b9c029b --- /dev/null +++ b/src/net/aksingh/java/api/owm/AbstractWeatherData.java @@ -0,0 +1,633 @@ +/* + * Copyright (C)2013 Ashutosh Kumar Singh [me@AKSingh.net] + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * The Software shall be used for Good, not Evil. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ +package net.aksingh.java.api.owm; + +import java.util.Date; +import org.json.JSONObject; + +/** + * This class provides default implementations for {@link net.aksingh.java.api.owm.CurrentWeatherData} + * and {@link net.aksingh.java.api.owm.ForecastWeatherData} classes. + * Standard behaviors like the has and the get + * methods for information about weather or forecast (for example, + * temperature, pressure, weather, clouds, wind, etc.) are defined here. + * + * @author Ashutosh Kumar Singh + * @version 2013/07/26 + * @since 2.5.0.1 + */ +abstract public class AbstractWeatherData { + /** Key for JSON object - Clouds */ + protected final String JSON_CLOUDS = "clouds"; + /** Key for JSON object - Coordinates (Geographic coordinates) */ + protected final String JSON_COORD = "coord"; + /** Key for JSON object - Main (Temperature, pressure, etc.) */ + protected final String JSON_MAIN = "main"; + /** Key for JSON array - Weather (Weather name, description, etc.) */ + protected final String JSON_WEATHER = "weather"; + /** Key for JSON object - Wind */ + protected final String JSON_WIND = "wind"; + + + /* + ************************ + * Defining sub-classes + ************************ + */ + + /** + * This class provides default implementations for Clouds. + * Standard behaviors like the has and the get + * methods for information about clouds (for example, percentage of + * clouds, etc.) are defined here. + * + * @author Ashutosh Kumar Singh + * @version 2013/07/27 + * @since 2.5.0.1 + */ + abstract public static class Clouds { + /** + * Key for JSON variable Clouds -> All + * (percentage of all clouds) + */ + private final String JSON_CLOUDS_ALL = "all"; + + /** Percentage of all clouds */ + private final float percentOfClouds; + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Clouds() { + this.percentOfClouds = Float.NaN; + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about clouds + */ + public Clouds(JSONObject jsonObj) { + this.percentOfClouds = (float) jsonObj.optDouble(this.JSON_CLOUDS_ALL, Double.NaN); + } + + /** + * Tells if the data for percentage of all clouds is available or not. + * @return true if data available, otherwise false + */ + public boolean hasPercentageOfClouds() { + return (this.percentOfClouds != Float.NaN); + } + + /** + * Returns data for percentage of all clouds. + * @return Percentage of all clouds if available, + * otherwise Float.NaN, i.e., Not a Number. + */ + public float getPercentageOfClouds() { + return this.percentOfClouds; + } + } + + + /** + * This class provides default implementations for Coord. + * Standard behaviors like the has and the get + * methods for information about geographic coordinates (latitude + * and longitude) are defined here. + * + * @author Ashutosh Kumar Singh + * @version 2013/07/28 + */ + abstract public static class Coord { + /** Key for JSON variable Coord -> Latitude */ + private final String JSON_COORD_LATITUDE = "lat"; + /** Key for JSON variable Coord -> Longitude */ + private final String JSON_COORD_LONGITUDE = "lon"; + + /** Latitude */ + private final float lat; + /** Longitude */ + private final float lon; + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Coord() { + this.lat = Float.NaN; + this.lon = Float.NaN; + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about coordinates + */ + public Coord(JSONObject jsonObj) { + this.lat = (float) jsonObj.optDouble(this.JSON_COORD_LATITUDE, Double.NaN); + this.lon = (float) jsonObj.optDouble(this.JSON_COORD_LONGITUDE, Double.NaN); + } + + /** + * Tells if the data for latitude of the city is available or not. + * @return true if data available, otherwise false + */ + public boolean hasLatitude() { + return (this.lat != Float.NaN); + } + + /** + * Tells if the data for longitude of the city is available or not. + * @return true if data available, otherwise false + */ + public boolean hasLongitude() { + return (this.lon != Float.NaN); + } + + /** + * Returns data for latitude of the city. + * @return Latitude of the city if available, + * otherwise Float.NaN, i.e., Not a Number. + */ + public float getLatitude() { + return this.lat; + } + + /** + * Returns data for longitude of the city. + * @return Longitude of the city if available, + * otherwise Float.NaN, i.e., Not a Number. + */ + public float getLongitude() { + return this.lon; + } + } + + + /** + * This class provides default implementations for Main. + * Standard behaviors like the has and the get + * methods for information about main weather elements (for example, + * temperature, pressure, humidity, etc.) are defined here. + * + * @author Ashutosh Kumar Singh + * @version 2013/07/28 + * @since 2.5.0.1 + */ + abstract public static class Main { + /** Key for JSON variable Main -> Temperature */ + private final String JSON_MAIN_TEMP = "temp"; + /** Key for JSON variable Main -> Minimum temperature */ + private final String JSON_MAIN_TEMP_MIN = "temp_min"; + /** Key for JSON variable Main -> Maximum temperature */ + private final String JSON_MAIN_TEMP_MAX = "temp_max"; + /** Key for JSON variable Main -> Pressure */ + private final String JSON_MAIN_PRESSURE = "pressure"; + /** Key for JSON variable Main -> Humidity */ + private final String JSON_MAIN_HUMIDITY = "humidity"; + + /** Temperature */ + private final float temp; + /** Minimum temperature */ + private final float minTemp; + /** Maximum temperature */ + private final float maxTemp; + /** Pressure */ + private final float pressure; + /** Humidity */ + private final float humidity; + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Main() { + this.temp = Float.NaN; + this.minTemp = Float.NaN; + this.maxTemp = Float.NaN; + this.pressure = Float.NaN; + this.humidity = Float.NaN; + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about main weather + * elements. For example, temperature, pressure, etc. + */ + public Main(JSONObject jsonObj) { + this.temp = (float) jsonObj.optDouble(this.JSON_MAIN_TEMP, Double.NaN); + this.minTemp = (float) jsonObj.optDouble(this.JSON_MAIN_TEMP_MIN, Double.NaN); + this.maxTemp = (float) jsonObj.optDouble(this.JSON_MAIN_TEMP_MAX, Double.NaN); + this.pressure = (float) jsonObj.optDouble(this.JSON_MAIN_PRESSURE, Double.NaN); + this.humidity = (float) jsonObj.optDouble(this.JSON_MAIN_HUMIDITY, Double.NaN); + } + + /** + * Tells if the data for temperature of the city is available or not. + * @return true if data available, otherwise false + */ + public boolean hasTemperature() { + return (this.temp != Float.NaN); + } + + /** + * Tells if the data for minimum temperature of the city is available or not. + * @return true if data available, otherwise false + */ + public boolean hasMinTemperature() { + return (this.minTemp != Float.NaN); + } + + /** + * Tells if the data for maximum temperature of the city is available or not. + * @return true if data available, otherwise false + */ + public boolean hasMaxTemperature() { + return (this.maxTemp != Float.NaN); + } + + /** + * Tells if the data for pressure of the city is available or not. + * @return true if data available, otherwise false + */ + public boolean hasPressure() { + return (this.pressure != Float.NaN); + } + + /** + * Tells if the data for humidity of the city is available or not. + * @return true if data available, otherwise false + */ + public boolean hasHumidity() { + return (this.humidity != Float.NaN); + } + + /** + * Returns data for temperature of the city. + * @return Temperature of the city if available, + * otherwise Float.NaN, i.e., Not a Number. + */ + public float getTemperature() { + return this.temp; + } + + /** + * Returns data for minimum temperature of the city. + * @return Minimum temperature of the city if available, + * otherwise Float.NaN, i.e., Not a Number. + */ + public float getMinTemperature() { + return this.minTemp; + } + + /** + * Returns data for maximum temperature of the city. + * @return Maximum temperature of the city if available, + * otherwise Float.NaN, i.e., Not a Number. + */ + public float getMaxTemperature() { + return this.maxTemp; + } + + /** + * Returns data for pressure of the city. + * @return Pressure of the city if available, + * otherwise Float.NaN, i.e., Not a Number. + */ + public float getPressure() { + return this.pressure; + } + + /** + * Returns data for humidity of the city. + * @return Humidity of the city if available, + * otherwise Float.NaN, i.e., Not a Number. + */ + public float getHumidity() { + return this.humidity; + } + } + + + /** + * This class provides default implementations for Weather. + * Standard behaviors like the has and the get + * methods for information about weather (for example, id, name, + * description, icon, etc.) are defined here. + * + * @author Ashutosh Kumar Singh + * @version 2013/07/28 + * @since 2.5.0.1 + */ + abstract public static class Weather { + /** Key for JSON variable in array Weather -> ID */ + private final String JSON_WEATHER_ID = "id"; + /** Key for JSON variable in array Weather -> Main (name of weather) */ + private final String JSON_WEATHER_MAIN = "main"; + /** Key for JSON variable Weather -> Description */ + private final String JSON_WEATHER_DESCRIPTION = "description"; + /** Key for JSON variable in array Weather -> Icon */ + private final String JSON_WEATHER_ICON = "icon"; + + /** Weather ID */ + private final int id; + /** Weather name */ + private final String name; + /** Weather description */ + private final String description; + /** Weather icon */ + private final String icon; + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Weather() { + this.id = Integer.MIN_VALUE; + this.name = null; + this.description = null; + this.icon = null; + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about weather id, name, etc. + */ + public Weather(JSONObject jsonObj) { + this.id = jsonObj.optInt(this.JSON_WEATHER_ID, Integer.MIN_VALUE); + this.name = jsonObj.optString(this.JSON_WEATHER_MAIN, null); + this.description = jsonObj.optString(this.JSON_WEATHER_DESCRIPTION, null); + this.icon = jsonObj.optString(this.JSON_WEATHER_ICON, null); + } + + /** + * Tells if the data for weather's code is available or not. + * @return true if data available, otherwise false + */ + public boolean hasWeatherCode() { + return (this.id != Integer.MIN_VALUE); + } + + /** + * Tells if the data for weather's name is available or not. + * @return true if data available, otherwise false + */ + public boolean hasWeatherName() { + return (this.name != null); + } + + /** + * Tells if the data for weather's description is available or not. + * @return true if data available, otherwise false + */ + public boolean hasWeatherDescription() { + return (this.description != null); + } + + /** + * Tells if the data for name of weather's icon is available or not. + * @return true if data available, otherwise false + */ + public boolean hasWeatherIconName() { + return (this.icon != null); + } + + /** + * Returns data for code for weather of the city. + * @return Code for weather of the city if available, + * otherwise Integer.MIN_VALUE + */ + public int getWeatherCode() { + return this.id; + } + + /** + * Returns data for name for weather of the city. + * @return Name for weather of the city if available, + * otherwise null + */ + public String getWeatherName() { + return this.name; + } + + /** + * Returns data for description for weather of the city. + * @return Description for weather of the city if available, + * otherwise null + */ + public String getWeatherDescription() { + return this.description; + } + + /** + * Returns data for name of icon for weather of the city. + * @return Name of icon for weather of the city if available, + * otherwise null + */ + public String getWeatherIconName() { + return this.icon; + } + } + + + /** + * This class provides default implementations for Wind. + * Standard behaviors like the has and the get + * methods for information about wind (for example, speed, degree, + * etc.) are defined here. + * + * @author Ashutosh Kumar Singh + * @version 2013/07/28 + * @since 2.5.0.1 + */ + abstract public static class Wind { + /** Key for JSON variable Wind -> Speed */ + private final String JSON_WIND_SPEED = "speed"; + /** Key for JSON variable Wind -> Degree */ + private final String JSON_WIND_DEGREE = "deg"; + + /** Wind speed */ + private final float speed; + /** Wind degree (direction of wind) */ + private final float degree; + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Wind() { + this.speed = Float.NaN; + this.degree = Float.NaN; + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about wind + */ + public Wind(JSONObject jsonObj) { + this.speed = (float) jsonObj.optDouble(this.JSON_WIND_SPEED, Double.NaN); + this.degree = (float) jsonObj.optDouble(this.JSON_WIND_DEGREE, Double.NaN); + } + + /** + * Tells if the data for speed of wind in the city is available or not. + * @return true if data available, otherwise false + */ + public boolean hasWindSpeed() { + return (this.speed != Float.NaN); + } + + /** + * Tells if the data for degree (degree gives direction) of wind + * in the city is available or not. + * @return true if data available, otherwise false + */ + public boolean hasWindDegree() { + return (this.hasWindSpeed() && (this.degree != Float.NaN)); + } + + /** + * Returns data for speed of wind in the city. + * @return Speed of wind in the city if available, + * otherwise Float.NaN, i.e., Not a Number. + */ + public float getWindSpeed() { + return this.speed; + } + + /** + * Returns data for degree of wind in the city. + * @return Degree of wind in the city if available, + * otherwise Float.NaN, i.e., Not a Number. + */ + public float getWindDegree() { + return this.degree; + } + } + + + /* + *********************** + * Declaring this class + *********************** + */ + + /** Key for JSON variable Date-Time (date & time of the weather) */ + private final String JSON_DATE_TIME = "dt"; + + /** + * Date and time of the weather. This is answer for the question that + * when is/will be this weather. + */ + private final Date dateTime; + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public AbstractWeatherData() { + this.dateTime = null; + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing weather data + */ + public AbstractWeatherData(JSONObject jsonObj) { + // getting seconds from the data + long sec = (jsonObj != null) ? jsonObj.optLong(this.JSON_DATE_TIME, Long.MIN_VALUE) : Long.MIN_VALUE; + + // converting seconds to Date object + if (sec != Long.MIN_VALUE) { + this.dateTime = new Date(sec); + } else { + this.dateTime = null; + } + } + + /** + * Tells if the data for date and time of this weather is available or not. + * @return true if data available, otherwise false + */ + public boolean hasDateTime() { + return (this.dateTime != null); + } + + /** + * Returns data for date and time of this weather. + * @return Date and time (in object of {@link java.util.Date}) if available, + * otherwise null + */ + public Date getDateTime() { + return this.dateTime; + } +} diff --git a/src/net/aksingh/java/api/owm/CurrentWeatherData.java b/src/net/aksingh/java/api/owm/CurrentWeatherData.java new file mode 100644 index 0000000..3caa8ca --- /dev/null +++ b/src/net/aksingh/java/api/owm/CurrentWeatherData.java @@ -0,0 +1,656 @@ +/* + * Copyright (C)2013 Ashutosh Kumar Singh [me@AKSingh.net] + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * The Software shall be used for Good, not Evil. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ +package net.aksingh.java.api.owm; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import org.json.JSONArray; +import org.json.JSONObject; + +/** + * Parses current weather data (from the JSON data) and provides methods + * to get/access the information about current weather. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ +public class CurrentWeatherData extends AbstractWeatherData { + /** Key for JSON object - Rain */ + private final String JSON_RAIN = "rain"; + /** Key for JSON object - Sys */ + private final String JSON_SYS = "sys"; + + + /* + ************************ + * Declaring sub-classes + ************************ + */ + + /** + * Parses data about clouds (from the JSON data) and provides methods + * to get/access the information. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Clouds extends AbstractWeatherData.Clouds { + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Clouds() { + super(); + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about clouds + */ + public Clouds(JSONObject jsonObj) { + super(jsonObj); + } + } + + + /** + * Parses data about geographic coordinates (from the JSON data) + * and provides methods to get/access the information. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Coord extends AbstractWeatherData.Coord { + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Coord() { + super(); + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about coordinates + */ + public Coord(JSONObject jsonObj) { + super(jsonObj); + } + } + + + /** + * Parses data about main weather elements (from the JSON data) and + * provides methods to get/access the information. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Main extends AbstractWeatherData.Main { + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Main() { + super(); + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about main + * weather elements (temperature, pressure, etc.) + */ + public Main(JSONObject jsonObj) { + super(jsonObj); + } + } + + + /** + * Parses data about rain (from the JSON data) and provides methods + * to get/access the information. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Rain { + /** Key for JSON variable Rain -> Rain per 3 hours */ + private final String JSON_RAIN_3HOURS = "3h"; + + /** Rain per 3 hours */ + private final float rain3h; + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Rain() { + this.rain3h = Float.NaN; + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about rain + */ + public Rain(JSONObject jsonObj) { + this.rain3h = (float) jsonObj.optDouble(this.JSON_RAIN_3HOURS, Double.NaN); + } + + public boolean hasRain3Hours() { + return (this.rain3h != Float.NaN); + } + + public float getRain3Hours() { + return this.rain3h; + } + } + + + /** + * Parses data about country, sunrise, and sunset (from the JSON data) + * and provides methods to get/access the information. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Sys { + /** Key for JSON variable Sys -> Country */ + private final String JSON_SYS_COUNTRY_CODE = "country"; + /** Key for JSON variable Sys -> Sunrise */ + private final String JSON_SYS_SUNRISE = "sunrise"; + /** Key for JSON variable Sys -> Sunset */ + private final String JSON_SYS_SUNSET = "sunset"; + + /** Country code for the city */ + private final String countryCode; + /** Sunrise time */ + private final Date sunrise; + /** Sunset time */ + private final Date sunset; + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Sys() { + this.countryCode = null; + this.sunrise = null; + this.sunset = null; + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about country, sunrise, + * and sunset. + */ + public Sys(JSONObject jsonObj) { + this.countryCode = jsonObj.optString(this.JSON_SYS_COUNTRY_CODE, null); + + long sr_secs = jsonObj.optLong(this.JSON_SYS_SUNRISE, Long.MIN_VALUE); + if (sr_secs != Long.MIN_VALUE) { + this.sunrise = new Date(sr_secs); + } else { + this.sunrise = null; + } + + long ss_secs = jsonObj.optLong(this.JSON_SYS_SUNSET, Long.MIN_VALUE); + if (ss_secs != Long.MIN_VALUE) { + this.sunset = new Date(ss_secs); + } else { + this.sunset = null; + } + } + + public boolean hasCountryCode() { + return (this.countryCode != null); + } + + public boolean hasSunriseTime() { + return (this.sunrise != null); + } + + public boolean hasSunsetTime() { + return (this.sunset != null); + } + + public String getCountryCode() { + return this.countryCode; + } + + public Date getSunriseTime() { + return this.sunrise; + } + + public Date getSunsetTime() { + return this.sunset; + } + } + + + /** + * Parses data about weather code, name, etc. (from the JSON data) + * and provides methods to get/access the information. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Weather extends AbstractWeatherData.Weather { + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Weather () { + super(); + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about weather id, name, etc. + */ + public Weather (JSONObject jsonObj) { + super(jsonObj); + } + } + + + /** + * Parses data about winds (from the JSON data) and provides methods + * to get/access the information. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Wind extends AbstractWeatherData.Wind { + /** Key for JSON variable Wind -> Gust */ + private final String JSON_WIND_GUST = "gust"; + + /** Wind gust */ + private final float gust; + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Wind () { + super (); + + this.gust = Float.NaN; + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about wind + */ + public Wind (JSONObject jsonObj) { + super (jsonObj); + + this.gust = (float) jsonObj.optDouble(this.JSON_WIND_GUST, Double.NaN); + } + + public boolean hasWindGust() { + return (this.gust != Float.NaN); + } + + public float getWindGust() { + return this.gust; + } + } + + + /* + *********************** + * Declaring this class + *********************** + */ + + /** Key for JSON variable Base */ + private final String JSON_BASE = "base"; + /** Key for JSON variable City code (ID) */ + private final String JSON_CITY_ID = "id"; + /** Key for JSON variable City name */ + private final String JSON_CITY_NAME = "name"; + /** Key for JSON variable Response code */ + private final String JSON_RESPONSE_CODE = "cod"; + + /** Base */ + private final String base; + /** City code (ID) */ + private final long cityID; + /** City name */ + private final String cityName; + /** Response code */ + private final int responseCode; + + private final Clouds clouds; + private final Coord coord; + private final Main main; + private final Rain rain; + private final Sys sys; + private final Wind wind; + + /** List of weather information (code, name, etc.) */ + private final List weatherList; + /** Count (number) of elements in list of weather information */ + private final int weatherListCount; + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing current weather data + */ + public CurrentWeatherData(JSONObject jsonObj) { + super(jsonObj); + + this.base = (jsonObj != null) ? jsonObj.optString(this.JSON_BASE, null) : null; + this.cityID = (jsonObj != null) ? jsonObj.optLong(this.JSON_CITY_ID, Long.MIN_VALUE) : Long.MIN_VALUE; + this.cityName = (jsonObj != null) ? jsonObj.optString(this.JSON_CITY_NAME, null) : null; + this.responseCode = (jsonObj != null) ? jsonObj.optInt(this.JSON_RESPONSE_CODE, Integer.MIN_VALUE) : Integer.MIN_VALUE; + + JSONObject jsonObjClouds = (jsonObj != null) ? jsonObj.optJSONObject(this.JSON_CLOUDS) : null; + this.clouds = (jsonObjClouds != null) ? new Clouds(jsonObjClouds) : new Clouds(); + + JSONObject jsonObjCoord = (jsonObj != null) ? jsonObj.optJSONObject(this.JSON_COORD) : null; + this.coord = (jsonObjCoord != null) ? new Coord(jsonObjCoord) : new Coord(); + + JSONObject jsonObjMain = (jsonObj != null) ? jsonObj.optJSONObject(this.JSON_MAIN) : null; + this.main = (jsonObjMain != null) ? new Main(jsonObjMain) : new Main(); + + JSONObject jsonObjRain = (jsonObj != null) ? jsonObj.optJSONObject(this.JSON_RAIN) : null; + this.rain = (jsonObjRain != null) ? new Rain(jsonObjRain) : new Rain(); + + JSONObject jsonObjSys = (jsonObj != null) ? jsonObj.optJSONObject(this.JSON_SYS) : null; + this.sys = (jsonObjSys != null) ? new Sys(jsonObjSys) : new Sys(); + + JSONArray jsonArrWeather = (jsonObj != null) ? jsonObj.optJSONArray(this.JSON_WEATHER) : null; + this.weatherList = (jsonArrWeather != null) ? new ArrayList(jsonArrWeather.length()) : Collections.EMPTY_LIST; + if (this.weatherList != Collections.EMPTY_LIST) { + for (int i = 0; i < jsonArrWeather.length(); i++) { + JSONObject jsonObjWeather = jsonArrWeather.optJSONObject (i); + if (jsonObjWeather != null) { + this.weatherList.add(new Weather(jsonObjWeather)); + } + } + } + this.weatherListCount = this.weatherList.size(); + + JSONObject jsonObjWind = (jsonObj != null) ? jsonObj.optJSONObject(this.JSON_WIND) : null; + this.wind = (jsonObjWind != null) ? new Wind(jsonObjWind) : new Wind(); + } + + public boolean hasBaseStation() { + return (this.base != null); + } + + public boolean hasCityCode() { + return (this.cityID != Long.MIN_VALUE); + } + + public boolean hasCityName() { + return (this.cityName != null); + } + + public boolean hasResponseCode() { + return (this.responseCode != Integer.MIN_VALUE); + } + + public String getBaseStation() { + return this.base; + } + + public long getCityCode() { + return this.cityID; + } + + public String getCityName() { + return this.cityName; + } + + public int getResponseCode() { + return this.responseCode; + } + + // Objects + + public Clouds getClouds_Object() { + return this.clouds; + } + + public Coord getCoordinates_Object() { + return this.coord; + } + + public Main getMainData_Object() { + return this.main; + } + + public Rain getRain_Object() { + return this.rain; + } + + public Sys getSysData_Object() { + return this.sys; + } + + public Wind getWind_Object() { + return this.wind; + } + + // Lists + + public boolean hasWeather_List() { + return (this.weatherListCount != 0); + } + + public int getWeather_List_Count() { + return this.weatherListCount; + } + + public List getWeather_List() { + return this.weatherList; + } +} diff --git a/src/net/aksingh/java/api/owm/DailyForecastData.java b/src/net/aksingh/java/api/owm/DailyForecastData.java new file mode 100644 index 0000000..7d8a049 --- /dev/null +++ b/src/net/aksingh/java/api/owm/DailyForecastData.java @@ -0,0 +1,707 @@ +/* + * Copyright (C)2013 Ashutosh Kumar Singh [me@AKSingh.net] + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * The Software shall be used for Good, not Evil. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ +package net.aksingh.java.api.owm; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import org.json.JSONArray; +import org.json.JSONObject; + +/** + * Parses daily forecast data (from the JSON data) and provides methods + * to get/access the information about daily forecasted weather. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Objects: Data initialized with default/non-parameterized constructor
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ +public class DailyForecastData { + /** Key for JSON object - City */ + private final String JSON_CITY = "city"; + /** Key for JSON object - List of forecasts */ + private final String JSON_FORECAST_LIST = "list"; + + + /* + ************************ + * Declaring sub-classes + ************************ + */ + + /** + * Parses data about city (from the JSON data) + * and provides methods to get/access the information. + * For example, city name, coordinates, country name, population, etc. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class City { + /** Key for JSON object - Coordinates */ + private final String JSON_CITY_COORD = "coord"; + + + /** + * Parses data about geographic coordinates (from the JSON data) + * and provides methods to get/access the information. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Coord extends AbstractWeatherData.Coord { + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Coord() { + super(); + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about clouds + */ + public Coord(JSONObject jsonObj) { + super(jsonObj); + } + } + + + /** Key for JSON variable City code (ID) */ + private final String JSON_CITY_ID = "id"; + /** Key for JSON variable City name */ + private final String JSON_CITY_NAME = "name"; + /** Key for JSON variable Country code of city */ + private final String JSON_CITY_COUNTRY_CODE = "country"; + /** Key for JSON variable Population of city */ + private final String JSON_CITY_POPULATION = "population"; + + /** City code (ID) */ + private final long cityID; + /** City name */ + private final String cityName; + /** Country code of city */ + private final String countryCode; + /** Population of city */ + private final long population; + + private final Coord coord; + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public City() { + this.cityID = Long.MIN_VALUE; + this.cityName = null; + this.countryCode = null; + this.population = Long.MIN_VALUE; + + this.coord = new Coord(); + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about city + */ + public City(JSONObject jsonObj) { + this.cityID = (jsonObj != null) ? jsonObj.optLong(this.JSON_CITY_ID, Long.MIN_VALUE) : Long.MIN_VALUE; + this.cityName = (jsonObj != null) ? jsonObj.optString(this.JSON_CITY_NAME, null) : null; + this.countryCode = (jsonObj != null) ? jsonObj.optString(this.JSON_CITY_COUNTRY_CODE, null) : null; + this.population = (jsonObj != null) ? jsonObj.optLong(this.JSON_CITY_POPULATION, Long.MIN_VALUE) : Long.MIN_VALUE; + + JSONObject jsonObjCoord = (jsonObj != null) ? jsonObj.optJSONObject(this.JSON_CITY_COORD) : null; + this.coord = (jsonObjCoord != null) ? new Coord(jsonObjCoord) : new Coord(); + } + + public boolean hasCityCode() { + return (this.cityID != Long.MIN_VALUE); + } + + public boolean hasCityName() { + return (this.cityName != null); + } + + public boolean hasCountryCode() { + return (this.countryCode != null); + } + + public boolean hasCityPopulation() { + return (this.population != Long.MIN_VALUE); + } + + public long getCityCode() { + return this.cityID; + } + + public String getCityName() { + return this.cityName; + } + + public String getCountryCode() { + return this.countryCode; + } + + public long getCityPopulation() { + return this.population; + } + + // Objects + + public Coord getCoordinates_Object() { + return this.coord; + } + } + + + /** + * Parses data about forecasts (from the JSON data) + * and provides methods to get/access the information. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Forecast extends AbstractWeatherData { + /** Key for JSON object - Temperature */ + public final String JSON_TEMP = "temp"; + + /* + *************************** + * Declaring sub-sub-classes + *************************** + */ + + /** + * Parses data about weather (from the JSON data) + * and provides methods to get/access the information. + * For example, weather id, name, etc. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Weather extends AbstractWeatherData.Weather { + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Weather () { + super(); + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about weather + */ + public Weather (JSONObject jsonObj) { + super(jsonObj); + } + } + + /** + * Parses data about temperature (from the JSON data) + * and provides methods to get/access the information. + * For example, weather id, name, etc. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Temperature { + /** Key for JSON variable Temp -> Day */ + public final String JSON_TEMP_DAY = "day"; + /** Key for JSON variable Temp -> Minimum */ + public final String JSON_TEMP_MIN = "min"; + /** Key for JSON variable Temp -> Maximum */ + public final String JSON_TEMP_MAX = "max"; + /** Key for JSON variable Temp -> Night */ + public final String JSON_TEMP_NIGHT = "night"; + /** Key for JSON variable Temp -> Evening */ + public final String JSON_TEMP_EVENING = "eve"; + /** Key for JSON variable Temp -> Morning */ + public final String JSON_TEMP_MORNING = "morn"; + + /** Day temperature */ + private final float dayTemp; + /** Minimum temperature */ + private final float minTemp; + /** Maximum temperature */ + private final float maxTemp; + /** Night temperature */ + private final float nightTemp; + /** Evening temperature */ + private final float eveTemp; + /** Morning temperature */ + private final float mornTemp; + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Temperature() { + this.dayTemp = Float.NaN; + this.minTemp = Float.NaN; + this.maxTemp = Float.NaN; + this.nightTemp = Float.NaN; + this.eveTemp = Float.NaN; + this.mornTemp = Float.NaN; + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about temperature + */ + public Temperature(JSONObject jsonObj) { + this.dayTemp = (jsonObj != null) ? (float) jsonObj.optDouble(this.JSON_TEMP_DAY, Double.NaN) : Float.NaN; + this.minTemp = (jsonObj != null) ? (float) jsonObj.optDouble(this.JSON_TEMP_MIN, Double.NaN) : Float.NaN; + this.maxTemp = (jsonObj != null) ? (float) jsonObj.optDouble(this.JSON_TEMP_MAX, Double.NaN) : Float.NaN; + this.nightTemp = (jsonObj != null) ? (float) jsonObj.optDouble(this.JSON_TEMP_NIGHT, Double.NaN) : Float.NaN; + this.eveTemp = (jsonObj != null) ? (float) jsonObj.optDouble(this.JSON_TEMP_EVENING, Double.NaN) : Float.NaN; + this.mornTemp = (jsonObj != null) ? (float) jsonObj.optDouble(this.JSON_TEMP_MORNING, Double.NaN) : Float.NaN; + } + + public boolean hasDayTemperature() { + return (this.dayTemp != Float.NaN); + } + + public boolean hasMinimumTemperature() { + return (this.minTemp != Float.NaN); + } + + public boolean hasMaximumTemperature() { + return (this.maxTemp != Float.NaN); + } + + public boolean hasNightTemperature() { + return (this.nightTemp != Float.NaN); + } + + public boolean hasEveningTemperature() { + return (this.eveTemp != Float.NaN); + } + + public boolean hasMorningTemperature() { + return (this.mornTemp != Float.NaN); + } + + public float getDayTemperature() { + return this.dayTemp; + } + + public float getMinimumTemperature() { + return this.minTemp; + } + + public float getMaximumTemperature() { + return this.maxTemp; + } + + public float getNightTemperature() { + return this.nightTemp; + } + + public float getEveningTemperature() { + return this.eveTemp; + } + + public float getMorningTemperature() { + return this.mornTemp; + } + } + + /* + ************************ + * Declaring this sub-class + ************************ + */ + + /** Key for JSON variable Pressure */ + private final String JSON_FORECAST_PRESSURE = "pressure"; + /** Key for JSON variable Humidity */ + private final String JSON_FORECAST_HUMIDITY = "humidity"; + /** Key for JSON variable Wind speed */ + private final String JSON_FORECAST_WIND_SPEED = "speed"; + /** Key for JSON variable Wind degree */ + private final String JSON_FORECAST_WIND_DEGREE = "deg"; + /** Key for JSON variable Percentage of clouds */ + private final String JSON_FORECAST_CLOUDS = "clouds"; + + /** Pressure */ + private final float pressure; + /** Humidity */ + private final float humidity; + /** Wind speed */ + private final float windSpeed; + /** Wind degree */ + private final float windDegree; + /** Percentage of clouds */ + private final float cloudsPercent; + + private final Temperature temp; + + /** List of weather information (code, name, etc.) */ + private final List weatherList; + /** Count (number) of elements in list of weather information */ + private final int weatherListCount; + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Forecast() { + super(); + + this.pressure = Float.NaN; + this.humidity = Float.NaN; + this.windSpeed = Float.NaN; + this.windDegree = Float.NaN; + this.cloudsPercent = Float.NaN; + + this.temp = new Temperature(); + + this.weatherList = Collections.EMPTY_LIST; + this.weatherListCount = this.weatherList.size(); + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about forecasts + */ + public Forecast(JSONObject jsonObj) { + super(jsonObj); + + JSONObject jsonObjTemp = (jsonObj != null) ? jsonObj.optJSONObject(this.JSON_TEMP) : null; + this.temp = (jsonObjTemp != null) ? new Temperature(jsonObjTemp) : new Temperature(); + + this.humidity = (jsonObj != null) ? (float) jsonObj.optDouble(this.JSON_FORECAST_HUMIDITY, Double.NaN) : Float.NaN; + this.pressure = (jsonObj != null) ? (float) jsonObj.optDouble(this.JSON_FORECAST_PRESSURE, Double.NaN) : Float.NaN; + this.windSpeed = (jsonObj != null) ? (float) jsonObj.optDouble(this.JSON_FORECAST_WIND_SPEED, Double.NaN) : Float.NaN; + this.windDegree = (jsonObj != null) ? (float) jsonObj.optDouble(this.JSON_FORECAST_WIND_DEGREE, Double.NaN) : Float.NaN; + this.cloudsPercent = (jsonObj != null) ? (float) jsonObj.optDouble(this.JSON_FORECAST_CLOUDS, Double.NaN) : Float.NaN; + + JSONArray jsonArrWeather = (jsonObj != null) ? jsonObj.optJSONArray(this.JSON_WEATHER) : null; + this.weatherList = (jsonArrWeather != null) ? new ArrayList(jsonArrWeather.length()) : Collections.EMPTY_LIST; + if (this.weatherList != Collections.EMPTY_LIST) { + for (int i = 0; i < jsonArrWeather.length (); i++) { + JSONObject jsonObjWeather = jsonArrWeather.optJSONObject (i); + if (jsonObjWeather != null) { + this.weatherList.add(new Weather(jsonObjWeather)); + } + } + } + this.weatherListCount = this.weatherList.size(); + } + + public boolean hasHumidity() { + return (this.humidity != Float.NaN); + } + + public boolean hasPressure() { + return (this.pressure != Float.NaN); + } + + public boolean hasWindSpeed() { + return (this.windSpeed != Float.NaN); + } + + public boolean hasWindDegree() { + return (this.windDegree != Float.NaN); + } + + public boolean hasPercentageOfClouds() { + return (this.cloudsPercent != Float.NaN); + } + + public float getHumidity() { + return this.humidity; + } + + public float getPressure() { + return this.pressure; + } + + public float getWindSpeed() { + return this.windSpeed; + } + + public float getWindDegree() { + return this.windDegree; + } + + public float getPercentageOfClouds() { + return this.cloudsPercent; + } + + // Objects + + public Temperature getTemperature_Object() { + return this.temp; + } + + // Lists + + public boolean hasWeather_List() { + return (this.weatherListCount != 0); + } + + public int getWeather_List_Count() { + return this.weatherListCount; + } + + public List getWeather_List() { + return this.weatherList; + } + } + + + /* + *********************** + * Declaring this class + *********************** + */ + + /** Key for JSON variable Response code */ + private final String JSON_RESPONSE_CODE = "cod"; + /** Key for JSON variable Response time */ + private final String JSON_RESPONSE_TIME = "message"; + /** Key for JSON variable Forecast count */ + private final String JSON_RESPONSE_FORECAST_COUNT = "cnt"; + + /** Response code */ + private final String responseCode; + /** Response time */ + private final float responseTime; + /** Forecast count */ + private final int responseForecastCount; + + private final City city; + + /** List of forecast information */ + private final List forecastList; + /** Count (number) of elements in list of forecast information */ + private final int forecastListCount; + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about daily forecasts + */ + public DailyForecastData(JSONObject jsonObj) { + this.responseCode = (jsonObj != null) ? jsonObj.optString(this.JSON_RESPONSE_CODE, null) : null; + this.responseTime = (jsonObj != null) ? (float) jsonObj.optDouble(this.JSON_RESPONSE_TIME, Double.NaN) : Float.NaN; + this.responseForecastCount = (jsonObj != null) ? jsonObj.optInt(this.JSON_RESPONSE_FORECAST_COUNT, Integer.MIN_VALUE) : Integer.MIN_VALUE; + + JSONObject jsonObjCity = (jsonObj != null) ? jsonObj.optJSONObject(this.JSON_CITY) : null; + this.city = (jsonObjCity != null) ? new City(jsonObjCity) : new City(); + + JSONArray jsonArrForecast = (jsonObj != null) ? jsonObj.optJSONArray(this.JSON_FORECAST_LIST) : null; + this.forecastList = (jsonArrForecast != null) ? new ArrayList(jsonArrForecast.length()) : Collections.EMPTY_LIST; + if (this.forecastList != Collections.EMPTY_LIST) { + for (int i = 0; i < jsonArrForecast.length(); i++) { + JSONObject jsonObjWeather = jsonArrForecast.optJSONObject(i); + if (jsonObjWeather != null) { + this.forecastList.add(new Forecast(jsonObjWeather)); + } + } + } + this.forecastListCount = this.forecastList.size(); + } + + public boolean hasResponseCode() { + return (this.responseCode != null); + } + + public boolean hasResponseTime() { + return (this.responseTime != Float.NaN); + } + + public boolean hasResponseForecastCount() { + return (this.responseForecastCount != Integer.MIN_VALUE); + } + + public String getResponseCode() { + return this.responseCode; + } + + public float getResponseTime() { + return this.responseTime; + } + + public int getResponseForecastCount() { + return this.responseForecastCount; + } + + // Objects + + public City getCity_Object() { + return this.city; + } + + // Lists + + public boolean hasForecast_List() { + return (this.forecastListCount != 0); + } + + public int getForecast_List_Count() { + return this.forecastListCount; + } + + public List getForecast_List() { + return this.forecastList; + } +} diff --git a/src/net/aksingh/java/api/owm/ForecastWeatherData.java b/src/net/aksingh/java/api/owm/ForecastWeatherData.java new file mode 100644 index 0000000..53dfeb6 --- /dev/null +++ b/src/net/aksingh/java/api/owm/ForecastWeatherData.java @@ -0,0 +1,803 @@ +/* + * Copyright (C)2013 Ashutosh Kumar Singh [me@AKSingh.net] + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * The Software shall be used for Good, not Evil. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ +package net.aksingh.java.api.owm; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import org.json.JSONArray; +import org.json.JSONObject; + +/** + * Parses forecast weather data (from the JSON data) and provides methods + * to get/access the information about forecasted weather. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Objects: Data initialized with default/non-parameterized constructor
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ +public class ForecastWeatherData { + /** Key for JSON object - City */ + private final String JSON_CITY = "city"; + /** Key for JSON object - List of forecasts */ + private final String JSON_FORECAST_LIST = "list"; + + + /* + ************************ + * Declaring sub-classes + ************************ + */ + + /** + * Parses data about city (from the JSON data) + * and provides methods to get/access the information. + * For example, city name, coordinates, country name, population, etc. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class City { + /** Key for JSON object - Coordinates */ + private final String JSON_CITY_COORD = "coord"; + + /** + * Parses data about geographic coordinates (from the JSON data) + * and provides methods to get/access the information. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Coord extends AbstractWeatherData.Coord { + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Coord() { + super(); + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about clouds + */ + public Coord(JSONObject jsonObj) { + super(jsonObj); + } + } + + + /** Key for JSON variable City code (ID) */ + private final String JSON_CITY_ID = "id"; + /** Key for JSON variable City name */ + private final String JSON_CITY_NAME = "name"; + /** Key for JSON variable Country code of city */ + private final String JSON_CITY_COUNTRY_CODE = "country"; + /** Key for JSON variable Population of city */ + private final String JSON_CITY_POPULATION = "population"; + + /** City code (ID) */ + private final long cityID; + /** City name */ + private final String cityName; + /** Country code of city */ + private final String countryCode; + /** Population of city */ + private final long population; + + private final Coord coord; + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public City() { + this.cityID = Long.MIN_VALUE; + this.cityName = null; + this.countryCode = null; + this.population = Long.MIN_VALUE; + + this.coord = new Coord(); + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about city + */ + public City(JSONObject jsonObj) { + this.cityID = (jsonObj != null) ? jsonObj.optLong(this.JSON_CITY_ID, Long.MIN_VALUE) : Long.MIN_VALUE; + this.cityName = (jsonObj != null) ? jsonObj.optString(this.JSON_CITY_NAME, null) : null; + this.countryCode = (jsonObj != null) ? jsonObj.optString(this.JSON_CITY_COUNTRY_CODE, null) : null; + this.population = (jsonObj != null) ? jsonObj.optLong(this.JSON_CITY_POPULATION, Long.MIN_VALUE) : Long.MIN_VALUE; + + JSONObject jsonObjCoord = (jsonObj != null) ? jsonObj.optJSONObject(this.JSON_CITY_COORD) : null; + this.coord = (jsonObjCoord != null) ? new Coord(jsonObjCoord) : new Coord(); + } + + public boolean hasCityCode() { + return (this.cityID != Long.MIN_VALUE); + } + + public boolean hasCityName() { + return (this.cityName != null); + } + + public boolean hasCountryCode() { + return (this.countryCode != null); + } + + public boolean hasCityPopulation() { + return (this.population != Long.MIN_VALUE); + } + + public long getCityCode() { + return this.cityID; + } + + public String getCityName() { + return this.cityName; + } + + public String getCountryCode() { + return this.countryCode; + } + + public long getCityPopulation() { + return this.population; + } + + // Objects + + public Coord getCoordinates_Object() { + return this.coord; + } + } + + + /** + * Parses data about forecasts (from the JSON data) + * and provides methods to get/access the information. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Forecast extends AbstractWeatherData { + /** Key for JSON object - Sys (pod, etc.) */ + private final String JSON_SYS = "sys"; + + /* + *************************** + * Declaring sub-sub-classes + *************************** + */ + + /** + * Parses data about clouds (from the JSON data) + * and provides methods to get/access the information. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Clouds extends AbstractWeatherData.Clouds { + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Clouds() { + super(); + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about clouds + */ + public Clouds(JSONObject jsonObj) { + super(jsonObj); + } + } + + /** + * Parses data about main weather elements (from the JSON data) + * and provides methods to get/access the information. + * For example, temperature, pressure, sea level, etc. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Main extends AbstractWeatherData.Main { + /** Key for JSON variable Main -> Sea level */ + private final String JSON_MAIN_SEA_LEVEL = "sea_level"; + /** Key for JSON variable Main -> Ground level */ + private final String JSON_MAIN_GRND_LEVEL = "grnd_level"; + /** Key for JSON variable Main -> Temperature KF */ + private final String JSON_MAIN_TMP_KF = "temp_kf"; + + /** Sea level */ + private final float seaLevel; + /** Ground level */ + private final float groundLevel; + /** Temperature KF */ + private final float tempKF; + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Main() { + super(); + + this.seaLevel = Float.NaN; + this.groundLevel = Float.NaN; + this.tempKF = Float.NaN; + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about main + * weather elements + */ + public Main(JSONObject jsonObj) { + super(jsonObj); + + this.seaLevel = (jsonObj != null) ? (float) jsonObj.optDouble(this.JSON_MAIN_SEA_LEVEL, Float.NaN) : Float.NaN; + this.groundLevel = (jsonObj != null) ? (float) jsonObj.optDouble(this.JSON_MAIN_GRND_LEVEL, Float.NaN) : Float.NaN; + this.tempKF = (jsonObj != null) ? (float) jsonObj.optDouble(this.JSON_MAIN_TMP_KF, Float.NaN) : Float.NaN; + } + + public boolean hasSeaLevel() { + return (this.seaLevel != Float.NaN); + } + + public boolean hasGroundLevel() { + return (this.groundLevel != Float.NaN); + } + + public boolean hasTempKF() { + return (this.tempKF != Float.NaN); + } + + public float getSeaLevel() { + return this.seaLevel; + } + + public float getGroundLevel() { + return this.groundLevel; + } + + public float getTempKF() { + return this.tempKF; + } + } + + /** + * Parses data about main weather elements (from the JSON data) + * and provides methods to get/access the information. + * For example, temperature, pressure, sea level, etc. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Sys { + /** Key for JSON variable Sys -> Pod */ + private final String JSON_SYS_POD = "pod"; + + /** Pod */ + private final String pod; + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Sys() { + this.pod = null; + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about sys. + * For example, pod, etc. + */ + public Sys(JSONObject jsonObj) { + this.pod = (jsonObj != null) ? jsonObj.optString(this.JSON_SYS_POD, null) : null; + } + + public boolean hasPod() { + return (this.pod != null); + } + + public String getPod() { + return this.pod; + } + } + + /** + * Parses data about weather (from the JSON data) + * and provides methods to get/access the information. + * For example, weather id, name, etc. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Weather extends AbstractWeatherData.Weather { + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Weather () { + super(); + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about weather + * code, name, etc. + */ + public Weather (JSONObject jsonObj) { + super(jsonObj); + } + } + + /** + * Parses data about wind (from the JSON data) + * and provides methods to get/access the information. + * This class provides has and get methods + * to access the information. + * + *

has methods can be used to check + * if the data exists, i.e., if the data was available (successfully + * downloaded) and was parsed correctly. + * + *

get methods can be used to access the data, if the data + * exists, otherwise get methods will give value as per + * following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ * + * @author Ashutosh Kumar Singh + * @version 2013/08/07 + * @since 2.5.0.1 + */ + public static class Wind extends AbstractWeatherData.Wind { + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Wind () { + super (); + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about wind + */ + public Wind (JSONObject jsonObj) { + super (jsonObj); + } + } + + /* + ************************ + * Declaring this sub-class + ************************ + */ + + + /** Key for JSON variable Date time text */ + private final String JSON_DATE_TIME_TEXT = "dt_txt"; + + /** Date time text */ + private final String dateTimeText; + + private final Clouds clouds; + private final Main main; + private final Sys sys; + private final Wind wind; + + /** List of weather information (code, name, etc.) */ + private final List weatherList; + /** Count (number) of elements in list of weather information */ + private final int weatherListCount; + + /** + * Non-parameterized constructor + * + *

Initializes variables as per following basis:
+ * Boolean: false
+ * Integral: Minimum value (MIN_VALUE)
+ * Floating point: Not a number (NaN)
+ * Others: null
+ */ + public Forecast() { + super(); + + this.dateTimeText = null; + + this.clouds = new Clouds(); + this.main = new Main(); + this.sys = new Sys(); + this.weatherList = Collections.EMPTY_LIST; + this.weatherListCount = this.weatherList.size(); + this.wind = new Wind(); + } + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about forecasts + */ + public Forecast(JSONObject jsonObj) { + super(jsonObj); + + this.dateTimeText = (jsonObj != null) ? jsonObj.optString(this.JSON_DATE_TIME_TEXT, null) : null; + + JSONObject jsonObjClouds = (jsonObj != null) ? jsonObj.optJSONObject(this.JSON_CLOUDS) : null; + this.clouds = (jsonObjClouds != null) ? new Clouds(jsonObjClouds) : new Clouds(); + + JSONObject jsonObjMain = (jsonObj != null) ? jsonObj.optJSONObject(this.JSON_MAIN) : null; + this.main = (jsonObjMain != null) ? new Main(jsonObjMain) : new Main(); + + JSONObject jsonObjSys = (jsonObj != null) ? jsonObj.optJSONObject(this.JSON_SYS) : null; + this.sys = (jsonObjSys != null) ? new Sys(jsonObjSys) : new Sys(); + + JSONArray jsonArrWeather = (jsonObj != null) ? jsonObj.optJSONArray(this.JSON_WEATHER) : null; + this.weatherList = (jsonArrWeather != null) ? new ArrayList(jsonArrWeather.length()) : Collections.EMPTY_LIST; + if (this.weatherList != Collections.EMPTY_LIST) { + for (int i = 0; i < jsonArrWeather.length (); i++) { + JSONObject jsonObjWeather = jsonArrWeather.optJSONObject (i); + if (jsonObjWeather != null) { + this.weatherList.add(new Weather(jsonObjWeather)); + } + } + } + this.weatherListCount = this.weatherList.size(); + + JSONObject jsonObjWind = (jsonObj != null) ? jsonObj.optJSONObject(this.JSON_WIND) : null; + this.wind = (jsonObjWind != null) ? new Wind(jsonObjWind) : new Wind(); + } + + public boolean hasDateTimeText() { + return (this.dateTimeText != null); + } + + public String getDateTimeText() { + return this.dateTimeText; + } + + // Objects + + public Clouds getClouds_Object() { + return this.clouds; + } + + public Main getMainData_Object() { + return this.main; + } + + public Sys getSysData_Object() { + return this.sys; + } + + public Wind getWind_Object() { + return this.wind; + } + + // Lists + + public boolean hasWeather_List() { + return (this.weatherListCount != 0); + } + + public int getWeather_List_Count() { + return this.weatherListCount; + } + + public List getWeather_List() { + return this.weatherList; + } + } + + + /* + *********************** + * Declaring this class + *********************** + */ + + /** Key for JSON variable Response code */ + private final String JSON_RESPONSE_CODE = "cod"; + /** Key for JSON variable Response time */ + private final String JSON_RESPONSE_TIME = "message"; + /** Key for JSON variable Forecast count */ + private final String JSON_RESPONSE_FORECAST_COUNT = "cnt"; + + /** Response code */ + private final String responseCode; + /** Response time */ + private final float responseTime; + /** Forecast count */ + private final int responseForecastCount; + + private final City city; + + /** List of forecast information */ + private final List forecastList; + /** Count (number) of elements in list of forecast information */ + private final int forecastListCount; + + /** + * Parameterized constructor + * + * Initializes variables from values from the given JSON object. + * + * @param jsonObj JSON object containing data about clouds + */ + public ForecastWeatherData(JSONObject jsonObj) { + this.responseCode = (jsonObj != null) ? jsonObj.optString(this.JSON_RESPONSE_CODE, null) : null; + this.responseTime = (jsonObj != null) ? (float) jsonObj.optDouble(this.JSON_RESPONSE_TIME, Double.NaN) : Float.NaN; + this.responseForecastCount = (jsonObj != null) ? jsonObj.optInt(this.JSON_RESPONSE_FORECAST_COUNT, Integer.MIN_VALUE) : Integer.MIN_VALUE; + + JSONObject jsonObjCity = (jsonObj != null) ? jsonObj.optJSONObject(this.JSON_CITY) : null; + this.city = (jsonObjCity != null) ? new City(jsonObjCity) : new City(); + + JSONArray jsonArrForecast = (jsonObj != null) ? jsonObj.optJSONArray(this.JSON_FORECAST_LIST) : null; + this.forecastList = (jsonArrForecast != null) ? new ArrayList(jsonArrForecast.length()) : Collections.EMPTY_LIST; + if (this.forecastList != Collections.EMPTY_LIST) { + for (int i = 0; i < jsonArrForecast.length(); i++) { + JSONObject jsonObjWeather = jsonArrForecast.optJSONObject(i); + if (jsonObjWeather != null) { + this.forecastList.add(new Forecast(jsonObjWeather)); + } + } + } + this.forecastListCount = this.forecastList.size(); + } + + public boolean hasResponseCode() { + return (this.responseCode != null); + } + + public boolean hasResponseTime() { + return (this.responseTime != Float.NaN); + } + + public boolean hasResponseForecastCount() { + return (this.responseForecastCount != Integer.MIN_VALUE); + } + + public String getResponseCode() { + return this.responseCode; + } + + public float getResponseTime() { + return this.responseTime; + } + + public int getResponseForecastCount() { + return this.responseForecastCount; + } + + // Objects + + public City getCity_Object() { + return this.city; + } + + // Lists + + public boolean hasForecast_List() { + return (this.forecastListCount != 0); + } + + public int getForecast_List_Count() { + return this.forecastListCount; + } + + public List getForecast_List() { + return this.forecastList; + } +} diff --git a/src/net/aksingh/java/api/owm/OpenWeatherMap.java b/src/net/aksingh/java/api/owm/OpenWeatherMap.java new file mode 100644 index 0000000..a2d7f4c --- /dev/null +++ b/src/net/aksingh/java/api/owm/OpenWeatherMap.java @@ -0,0 +1,551 @@ +/* + * Copyright (C)2013 Ashutosh Kumar Singh [me@AKSingh.net] + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * The Software shall be used for Good, not Evil. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ +package net.aksingh.java.api.owm; + +import java.io.IOException; +import java.net.MalformedURLException; +import org.json.JSONException; +import org.json.JSONObject; + +/** + * Provides methods to get weather, forecast, and other data from + * OpenWeatherMap.org + * + * @author Ashutosh Kumar Singh + * @version 2013/08/05 + * @since 2.5.0.1 + */ +public class OpenWeatherMap { + + public static enum OWM_URL { + // Base URL for OpenWeatherMap.org API 2.5 + + BASE_URL ("http://api.openweathermap.org/data/2.5/"), + + // Parameters + + PARAMETER_CURRENT_WEATHER ("weather?"), + PARAMETER_FORECAST_WEATHER ("forecast?"), + PARAMETER_DAILY_FORECAST ("forecast/daily?"), + PARAMETER_SEARCH_CITY ("find?"), + + PARAMETER_COUNT ("cnt="), + + PARAMETER_CITY_NAME ("q="), + PARAMETER_CITY_ID ("id="), + PARAMETER_LATITUDE ("lat="), + PARAMETER_LONGITUDE ("lon="), + + PARAMETER_MODE ("mode="), + PARAMETER_UNITS ("units="), + PARAMETER_APPID ("APPID="), + + // Possible values of parameters + + PARAMETER_MODE_VALUE_JSON ("json"), + PARAMETER_UNITS_VALUE_IMPERIAL ("imperial"), + PARAMETER_UNITS_VALUE_METRIC ("metric"); + + + private final String value; + + private OWM_URL(String val) { + this.value = val; + } + + /** + * Returns the parameter. + * @return Parameter + */ + public String getParameter() { + return this.value; + } + } + + + public static class OWM_Response { + private final String OWM_MODE_VALUE; + private final String OWM_UNITS_VALUE; + private final String OWM_APPID_VALUE; + + public OWM_Response(String apiKey) { + this(OWM_URL.PARAMETER_UNITS_VALUE_IMPERIAL, apiKey); + } + + public OWM_Response(OWM_URL unit, String apiKey) { + this.OWM_MODE_VALUE = OWM_URL.PARAMETER_MODE_VALUE_JSON.getParameter(); + this.OWM_UNITS_VALUE = unit.getParameter(); + this.OWM_APPID_VALUE = apiKey; + } + + public String currentWeatherByCityName(String cityName) + throws MalformedURLException, IOException { + String url; + String response; + + url = OWM_URL.BASE_URL.getParameter() + + OWM_URL.PARAMETER_CURRENT_WEATHER.getParameter() + + OWM_URL.PARAMETER_CITY_NAME.getParameter() + + Tools.HTML.strictAddress(cityName) + "&" + + OWM_URL.PARAMETER_MODE.getParameter() + + this.OWM_MODE_VALUE + "&" + + OWM_URL.PARAMETER_UNITS.getParameter() + + this.OWM_UNITS_VALUE + "&" + + OWM_URL.PARAMETER_APPID.getParameter() + + this.OWM_APPID_VALUE; + + response = Tools.Downloader.downloadPage(url); + + return response; + } + + public String currentWeatherByCityName(String cityName, String countryCode) + throws MalformedURLException, IOException { + String url; + String response; + + url = OWM_URL.BASE_URL.getParameter() + + OWM_URL.PARAMETER_CURRENT_WEATHER.getParameter() + + OWM_URL.PARAMETER_CITY_NAME.getParameter() + + Tools.HTML.strictAddress(cityName) + + "," + countryCode + "&" + + OWM_URL.PARAMETER_MODE.getParameter() + + this.OWM_MODE_VALUE + "&" + + OWM_URL.PARAMETER_UNITS.getParameter() + + this.OWM_UNITS_VALUE + "&" + + OWM_URL.PARAMETER_APPID.getParameter() + + this.OWM_APPID_VALUE; + + response = Tools.Downloader.downloadPage(url); + + return response; + } + + public String currentWeatherByCityCode(long cityCode) + throws MalformedURLException, IOException { + String url; + String response; + + url = OWM_URL.BASE_URL.getParameter() + + OWM_URL.PARAMETER_CURRENT_WEATHER.getParameter() + + OWM_URL.PARAMETER_CITY_ID.getParameter() + + Long.toString(cityCode) + "&" + + OWM_URL.PARAMETER_MODE.getParameter() + + this.OWM_MODE_VALUE + "&" + + OWM_URL.PARAMETER_UNITS.getParameter() + + this.OWM_UNITS_VALUE + "&" + + OWM_URL.PARAMETER_APPID.getParameter() + + this.OWM_APPID_VALUE; + + response = Tools.Downloader.downloadPage(url); + + return response; + } + + public String currentWeatherByCoordinates(float latitude, float longitude) + throws MalformedURLException, IOException { + String url; + String response; + + url = OWM_URL.BASE_URL.getParameter() + + OWM_URL.PARAMETER_CURRENT_WEATHER.getParameter() + + OWM_URL.PARAMETER_LATITUDE.getParameter() + + Float.toString(latitude) + "&" + + OWM_URL.PARAMETER_LONGITUDE.getParameter() + + Float.toString(longitude) + "&" + + OWM_URL.PARAMETER_MODE.getParameter() + + this.OWM_MODE_VALUE + "&" + + OWM_URL.PARAMETER_UNITS.getParameter() + + this.OWM_UNITS_VALUE + "&" + + OWM_URL.PARAMETER_APPID.getParameter() + + this.OWM_APPID_VALUE; + + response = Tools.Downloader.downloadPage(url); + + return response; + } + + public String forecastWeatherByCityName(String cityName) + throws MalformedURLException, IOException { + String url; + String response; + + url = OWM_URL.BASE_URL.getParameter() + + OWM_URL.PARAMETER_FORECAST_WEATHER.getParameter() + + OWM_URL.PARAMETER_CITY_NAME.getParameter() + + Tools.HTML.strictAddress(cityName) + "&" + + OWM_URL.PARAMETER_MODE.getParameter() + + this.OWM_MODE_VALUE + "&" + + OWM_URL.PARAMETER_UNITS.getParameter() + + this.OWM_UNITS_VALUE + "&" + + OWM_URL.PARAMETER_APPID.getParameter() + + this.OWM_APPID_VALUE; + + response = Tools.Downloader.downloadPage(url); + + return response; + } + + public String forecastWeatherByCityName(String cityName, String countryCode) + throws MalformedURLException, IOException { + String url; + String response; + + url = OWM_URL.BASE_URL.getParameter() + + OWM_URL.PARAMETER_FORECAST_WEATHER.getParameter() + + OWM_URL.PARAMETER_CITY_NAME.getParameter() + + Tools.HTML.strictAddress(cityName) + + "," + countryCode + "&" + + OWM_URL.PARAMETER_MODE.getParameter() + + this.OWM_MODE_VALUE + "&" + + OWM_URL.PARAMETER_UNITS.getParameter() + + this.OWM_UNITS_VALUE + "&" + + OWM_URL.PARAMETER_APPID.getParameter() + + this.OWM_APPID_VALUE; + + response = Tools.Downloader.downloadPage(url); + + return response; + } + + public String forecastWeatherByCityCode(long cityCode) + throws MalformedURLException, IOException { + String url; + String response; + + url = OWM_URL.BASE_URL.getParameter() + + OWM_URL.PARAMETER_FORECAST_WEATHER.getParameter() + + OWM_URL.PARAMETER_CITY_ID.getParameter() + + Long.toString(cityCode) + "&" + + OWM_URL.PARAMETER_MODE.getParameter() + + this.OWM_MODE_VALUE + "&" + + OWM_URL.PARAMETER_UNITS.getParameter() + + this.OWM_UNITS_VALUE + "&" + + OWM_URL.PARAMETER_APPID.getParameter() + + this.OWM_APPID_VALUE; + + response = Tools.Downloader.downloadPage(url); + + return response; + } + + public String forecastWeatherByCoordinates(float latitude, float longitude) + throws MalformedURLException, IOException { + String url; + String response; + + url = OWM_URL.BASE_URL.getParameter() + + OWM_URL.PARAMETER_FORECAST_WEATHER.getParameter() + + OWM_URL.PARAMETER_LATITUDE.getParameter() + + Float.toString(latitude) + "&" + + OWM_URL.PARAMETER_LONGITUDE.getParameter() + + Float.toString(longitude) + "&" + + OWM_URL.PARAMETER_MODE.getParameter() + + this.OWM_MODE_VALUE + "&" + + OWM_URL.PARAMETER_UNITS.getParameter() + + this.OWM_UNITS_VALUE + "&" + + OWM_URL.PARAMETER_APPID.getParameter() + + this.OWM_APPID_VALUE; + + response = Tools.Downloader.downloadPage(url); + + return response; + } + + public String dailyForecastByCityName(String cityName, byte count) + throws MalformedURLException, IOException { + String url; + String response; + + url = OWM_URL.BASE_URL.getParameter() + + OWM_URL.PARAMETER_DAILY_FORECAST.getParameter() + + OWM_URL.PARAMETER_CITY_NAME.getParameter() + + Tools.HTML.strictAddress(cityName) + "&" + + OWM_URL.PARAMETER_COUNT.getParameter() + + Byte.toString(count) + "&" + + OWM_URL.PARAMETER_MODE.getParameter() + + this.OWM_MODE_VALUE + "&" + + OWM_URL.PARAMETER_UNITS.getParameter() + + this.OWM_UNITS_VALUE + "&" + + OWM_URL.PARAMETER_APPID.getParameter() + + this.OWM_APPID_VALUE; + + response = Tools.Downloader.downloadPage(url); + + return response; + } + + public String dailyForecastByCityName(String cityName, String countryCode, byte count) + throws MalformedURLException, IOException { + String url; + String response; + + url = OWM_URL.BASE_URL.getParameter() + + OWM_URL.PARAMETER_DAILY_FORECAST.getParameter() + + OWM_URL.PARAMETER_CITY_NAME.getParameter() + + Tools.HTML.strictAddress(cityName) + + "," + countryCode + "&" + + OWM_URL.PARAMETER_COUNT.getParameter() + + Byte.toString(count) + "&" + + OWM_URL.PARAMETER_MODE.getParameter() + + this.OWM_MODE_VALUE + "&" + + OWM_URL.PARAMETER_UNITS.getParameter() + + this.OWM_UNITS_VALUE + "&" + + OWM_URL.PARAMETER_APPID.getParameter() + + this.OWM_APPID_VALUE; + + response = Tools.Downloader.downloadPage(url); + + return response; + } + + public String dailyForecastByCityCode(long cityCode, byte count) + throws MalformedURLException, IOException { + String url; + String response; + + url = OWM_URL.BASE_URL.getParameter() + + OWM_URL.PARAMETER_DAILY_FORECAST.getParameter() + + OWM_URL.PARAMETER_CITY_ID.getParameter() + + Long.toString(cityCode) + "&" + + OWM_URL.PARAMETER_COUNT.getParameter() + + Byte.toString(count) + "&" + + OWM_URL.PARAMETER_MODE.getParameter() + + this.OWM_MODE_VALUE + "&" + + OWM_URL.PARAMETER_UNITS.getParameter() + + this.OWM_UNITS_VALUE + "&" + + OWM_URL.PARAMETER_APPID.getParameter() + + this.OWM_APPID_VALUE; + + response = Tools.Downloader.downloadPage(url); + + return response; + } + + public String dailyForecastByCoordinates(float latitude, float longitude, byte count) + throws MalformedURLException, IOException { + String url; + String response; + + url = OWM_URL.BASE_URL.getParameter() + + OWM_URL.PARAMETER_DAILY_FORECAST.getParameter() + + OWM_URL.PARAMETER_LATITUDE.getParameter() + + Float.toString(latitude) + "&" + + OWM_URL.PARAMETER_COUNT.getParameter() + + Byte.toString(count) + "&" + + OWM_URL.PARAMETER_LONGITUDE.getParameter() + + Float.toString(longitude) + "&" + + OWM_URL.PARAMETER_MODE.getParameter() + + this.OWM_MODE_VALUE + "&" + + OWM_URL.PARAMETER_UNITS.getParameter() + + this.OWM_UNITS_VALUE + "&" + + OWM_URL.PARAMETER_APPID.getParameter() + + this.OWM_APPID_VALUE; + + response = Tools.Downloader.downloadPage(url); + + return response; + } + } + + + /*********************** + * Declaring this class + ***********************/ + + private final OWM_Response owmResponse; + + public OpenWeatherMap(String apiKey) { + this(OWM_URL.PARAMETER_UNITS_VALUE_IMPERIAL, apiKey); + } + + public OpenWeatherMap(OWM_URL unit, String apiKey) { + this.owmResponse = new OWM_Response(unit, apiKey); + } + + public CurrentWeatherData currentWeatherByCityName(String cityName) + throws MalformedURLException, IOException, JSONException { + String jsonResponse; + CurrentWeatherData cwd; + + jsonResponse = owmResponse.currentWeatherByCityName(cityName); + cwd = this.currentWeatherFromResponse(jsonResponse); + + return cwd; + } + + public CurrentWeatherData currentWeatherByCityName(String cityName, String countryCode) + throws MalformedURLException, IOException, JSONException { + String jsonResponse; + CurrentWeatherData cwd; + + jsonResponse = owmResponse.currentWeatherByCityName(cityName, countryCode); + cwd = this.currentWeatherFromResponse(jsonResponse); + + return cwd; + } + + public CurrentWeatherData currentWeatherByCityCode(long cityCode) + throws MalformedURLException, IOException, JSONException { + String jsonResponse; + CurrentWeatherData cwd; + + jsonResponse = owmResponse.currentWeatherByCityCode(cityCode); + cwd = this.currentWeatherFromResponse(jsonResponse); + + return cwd; + } + + public CurrentWeatherData currentWeatherByCoordinates(float latitude, float longitude) + throws MalformedURLException, IOException, JSONException { + String jsonResponse; + CurrentWeatherData cwd; + + jsonResponse = owmResponse.currentWeatherByCoordinates(latitude, longitude); + cwd = this.currentWeatherFromResponse(jsonResponse); + + return cwd; + } + + public CurrentWeatherData currentWeatherFromResponse(String jsonResponse) + throws MalformedURLException, IOException, JSONException { + JSONObject jsonObj; + CurrentWeatherData cwd; + + jsonObj = (jsonResponse != null) ? new JSONObject(jsonResponse) : null; + cwd = new CurrentWeatherData(jsonObj); + + return cwd; + } + + public ForecastWeatherData forecastWeatherByCityName(String cityName) + throws MalformedURLException, IOException, JSONException { + String jsonResponse; + ForecastWeatherData fwd; + + jsonResponse = owmResponse.forecastWeatherByCityName(cityName); + fwd = this.forecastWeatherFromResponse(jsonResponse); + + return fwd; + } + + public ForecastWeatherData forecastWeatherByCityName(String cityName, String countryCode) + throws MalformedURLException, IOException, JSONException { + String jsonResponse; + ForecastWeatherData fwd; + + jsonResponse = owmResponse.forecastWeatherByCityName(cityName, countryCode); + fwd = this.forecastWeatherFromResponse(jsonResponse); + + return fwd; + } + + public ForecastWeatherData forecastWeatherByCityCode(long cityCode) + throws MalformedURLException, IOException, JSONException { + String jsonResponse; + ForecastWeatherData fwd; + + jsonResponse = owmResponse.forecastWeatherByCityCode(cityCode); + fwd = this.forecastWeatherFromResponse(jsonResponse); + + return fwd; + } + + public ForecastWeatherData forecastWeatherByCoordinates(float latitude, float longitude) + throws MalformedURLException, IOException, JSONException { + String jsonResponse; + ForecastWeatherData fwd; + + jsonResponse = owmResponse.forecastWeatherByCoordinates(latitude, longitude); + fwd = this.forecastWeatherFromResponse(jsonResponse); + + return fwd; + } + + public ForecastWeatherData forecastWeatherFromResponse(String jsonResponse) + throws MalformedURLException, IOException, JSONException { + JSONObject jsonObj; + ForecastWeatherData fwd; + + jsonObj = (jsonResponse != null) ? new JSONObject(jsonResponse) : null; + fwd = new ForecastWeatherData(jsonObj); + + return fwd; + } + + public DailyForecastData dailyForecastByCityName(String cityName, byte count) + throws MalformedURLException, IOException, JSONException { + String jsonResponse; + DailyForecastData dfd; + + jsonResponse = owmResponse.dailyForecastByCityName(cityName, count); + dfd = this.dailyForecastFromResponse(jsonResponse); + + return dfd; + } + + public DailyForecastData dailyForecastByCityName(String cityName, String countryCode, byte count) + throws MalformedURLException, IOException, JSONException { + String jsonResponse; + DailyForecastData dfd; + + jsonResponse = owmResponse.dailyForecastByCityName(cityName, countryCode, count); + dfd = this.dailyForecastFromResponse(jsonResponse); + + return dfd; + } + + public DailyForecastData dailyForecastByCityCode(long cityCode, byte count) + throws MalformedURLException, IOException, JSONException { + String jsonResponse; + DailyForecastData dfd; + + jsonResponse = owmResponse.dailyForecastByCityCode(cityCode, count); + dfd = this.dailyForecastFromResponse(jsonResponse); + + return dfd; + } + + public DailyForecastData dailyForecastByCoordinates(float latitude, float longitude, byte count) + throws MalformedURLException, IOException, JSONException { + String jsonResponse; + DailyForecastData dfd; + + jsonResponse = owmResponse.dailyForecastByCoordinates(latitude, longitude, count); + dfd = this.dailyForecastFromResponse(jsonResponse); + + return dfd; + } + + public DailyForecastData dailyForecastFromResponse(String jsonResponse) + throws MalformedURLException, IOException, JSONException { + JSONObject jsonObj; + DailyForecastData dfd; + + jsonObj = (jsonResponse != null) ? new JSONObject(jsonResponse) : null; + dfd = new DailyForecastData(jsonObj); + + return dfd; + } +} diff --git a/src/net/aksingh/java/api/owm/Tools.java b/src/net/aksingh/java/api/owm/Tools.java new file mode 100644 index 0000000..cd9464a --- /dev/null +++ b/src/net/aksingh/java/api/owm/Tools.java @@ -0,0 +1,209 @@ +/* + * Copyright (C)2013 Ashutosh Kumar Singh [me@AKSingh.net] + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * The Software shall be used for Good, not Evil. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ +package net.aksingh.java.api.owm; + +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Scanner; + +/** + * Provides various tools, which help doing tasks in this application. + * For example, tool for downloading content from the Internet, tool for + * correcting and stricting web addresses, etc. + * + *

Note: This class directly do not provide any functions, but has + * static sub-classes which provide various + * related tools, i.e., this class only behaves as the container for those + * classes. + * + * @author Ashutosh Kumar Singh + * @version 2013-08-05 + * @since 2.5.0.1 + */ +public class Tools { + + /** + * Provides methods to download data or files from the Internet. + * + * @author Ashutosh Kumar Singh + * @version 2013-07-24 + * @since 2.5.0.1 + */ + public static class Downloader { + + /** + * Downloads a page/content from the Internet. + * This method gets the content of the web page, whose URL is given by + * the pageAddress. + * + *

NOTE: pageAddress should be a correct URL, else + * this method will throw {@link MalformedURLException}. + * + * @param pageAddress + * Address of the web page to get from the Internet. + * + * @return Content of the web page + * + * @throws MalformedURLException + * Address of the web page is not correct. + * + * @throws IOException + * Error while loading the page from the Internet or connection + * got disconnected. + */ + public static String downloadPage(String pageAddress) + throws MalformedURLException, IOException { + String webPage = null; + + URL url = new URL(pageAddress); + InputStream iStream = url.openStream(); + + if (iStream != null) { + // converting InputStream to String (as we require String) + webPage = (new Scanner(iStream)).useDelimiter("\\A").next(); + } + iStream.close(); + + return webPage; + } + } + + + /** + * Provides functions to handle HTML, e.g., correcting + * non-compliant or non-strict web addresses, etc. + * + * @author Ashutosh Kumar Singh + * @version 2013/08/05 + * @since 2.5.0.1 + */ + public static class HTML { + + /** + * Stricts a non-strict or non-compliant web address + * to a proper URL. + * + *

Note: This function checks and stricts only some parts of the + * URL, which are necessary to be corrected for accessing data from + * the OpenWeatherMap.org + * + * @param inputString String to be converted to strict HTML address + * @return HTML standards-followed and stricted URL + */ + public static String strictAddress(String inputString) { + String outputString = ""; + + if (inputString != null) { + outputString = inputString.replace(" ", "%20").replace(".", "%2E"); + } + + return outputString; + } + } + + + /** + * Provides methods to do conversions. + * For example, converting degree to direction, etc. + * + * @author Ashutosh Kumar Singh + * @version 2013/08/05 + * @since 2.5.0.1 + */ + public static class Convertor { + + /** + * Converts degree to direction. + * @return Direction + * + * @throws IllegalArgumentException + * Degree should be between 0 and 360. + */ + public String convertDegree2Direction(float degree) + throws IllegalArgumentException{ + String direction; + + // degree should be between 0 and 360 + if ((degree < 0.0f) || (degree > 360.0f)) { + throw new IllegalArgumentException("Degree cannot be less than 0 or more than 360."); + } + + if (degree <= 11.25f) { + direction = "N"; + } + else if (degree <= 33.75f) { + direction = "NNE"; + } + else if (degree <= 56.25f) { + direction = "NE"; + } + else if (degree <= 78.75f) { + direction = "ENE"; + } + else if (degree <= 101.25f) { + direction = "E"; + } + else if (degree <= 123.75f) { + direction = "ESE"; + } + else if (degree <= 146.25f) { + direction = "SE"; + } + else if (degree <= 168.75f) { + direction = "SSE"; + } + else if (degree <= 191.25f) { + direction = "S"; + } + else if (degree <= 213.75f) { + direction = "SSW"; + } + else if (degree <= 236.25f) { + direction = "SW"; + } + else if (degree <= 258.75f) { + direction = "WSW"; + } + else if (degree <= 281.25f) { + direction = "W"; + } + else if (degree <= 303.75f) { + direction = "WNW"; + } + else if (degree <= 326.25f) { + direction = "NW"; + } + else if (degree <= 348.75f) { + direction = "NNW"; + } + else { + direction = "N"; + } + + return direction; + } + } +} \ No newline at end of file