package com.poc_android.models; import android.os.Parcel; import android.os.Parcelable; import java.util.List; public class WeatherData implements Parcelable{ private Coord coord; private int cod; private String base; private String name; private Main main; private List<Weather> weather; private Sys sys; public WeatherData(Coord coord, int code, String base, String name, Main main) { this.coord = coord; this.cod = code; this.base = base; this.name = name; this.main = main; } public WeatherData(Parcel in) { this.coord =in.readParcelable(Coord.class.getClassLoader()); this.cod = in.readInt(); this.base = in.readString(); this.name = in.readString(); this.main = in.readParcelable(Coord.class.getClassLoader()); } public static final Creator<WeatherData> CREATOR = new Creator<WeatherData>() { @Override public WeatherData createFromParcel(Parcel in) { return new WeatherData(in); } @Override public WeatherData[] newArray(int size) { return new WeatherData[size]; } }; public int getCod() { return cod; } public void setCod(int code) { this.cod = code; } public String getBase() { return base; } public void setBase(String base) { this.base = base; } public Coord getCoord() { return coord; } public void setCoord(Coord coord) { this.coord = coord; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Main getMain() { return main; } public void setMain(Main main) { this.main = main; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(cod); dest.writeParcelable(coord,flags); dest.writeString(base); dest.writeString(name); dest.writeParcelable(main, flags); } class Main implements Parcelable{ double temp; double pressure; int humidity; public Main(double temp, int pressure, int humidity) { this.temp = temp; this.pressure = pressure; this.humidity = humidity; } protected Main(Parcel in) { temp = in.readDouble(); pressure = in.readDouble(); humidity = in.readInt(); } public final Creator<Main> CREATOR = new Creator<Main>() { @Override public Main createFromParcel(Parcel in) { return new Main(in); } @Override public Main[] newArray(int size) { return new Main[size]; } }; public double getTemp() { return temp; } public void setTemp(double temp) { this.temp = temp; } public double getPressure() { return pressure; } public void setPressure(double pressure) { this.pressure = pressure; } public int getHumidity() { return humidity; } public void setHumidity(int humidity) { this.humidity = humidity; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeDouble(temp); dest.writeDouble(pressure); dest.writeInt(humidity); } } class Coord implements Parcelable{ double lat; double lon; public Coord(double lat, double lon) { this.lat = lat; this.lon = lon; } protected Coord(Parcel in) { lat = in.readDouble(); lon = in.readDouble(); } public final Creator<Coord> CREATOR = new Creator<Coord>() { @Override public Coord createFromParcel(Parcel in) { return new Coord(in); } @Override public Coord[] newArray(int size) { return new Coord[size]; } }; public double getLat() { return lat; } public void setLat(double lat) { this.lat = lat; } public double getLon() { return lon; } public void setLon(double lon) { this.lon = lon; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeDouble(lat); dest.writeDouble(lon); } } class Weather implements Parcelable{ private int id; String main; String description; String icon; public Weather() { } public Weather(int id, String main, String description, String icon) { this.id = id; this.main = main; this.description = description; this.icon = icon; } protected Weather(Parcel in) { id = in.readInt(); main = in.readString(); description = in.readString(); icon = in.readString(); } public final Creator<Weather> CREATOR = new Creator<Weather>() { @Override public Weather createFromParcel(Parcel in) { return new Weather(in); } @Override public Weather[] newArray(int size) { return new Weather[size]; } }; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getMain() { return main; } public void setMain(String main) { this.main = main; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getIcon() { return icon; } public void setIcon(String icon) { this.icon = icon; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(id); dest.writeString(main); dest.writeString(description); dest.writeString(icon); } } class Sys { int type; int id; String country; long sunrise; long sunset; public Sys() { } public Sys(int type, int id, String country, long sunrise, long sunset) { this.type = type; this.id = id; this.country = country; this.sunrise = sunrise; this.sunset = sunset; } public int getType() { return type; } public void setType(int type) { this.type = type; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } public long getSunrise() { return sunrise; } public void setSunrise(long sunrise) { this.sunrise = sunrise; } public long getSunset() { return sunset; } public void setSunset(long sunset) { this.sunset = sunset; } } // Accesor methods public double getLat() { return coord.getLat(); } public double getLon() { return coord.getLon(); } public double getPressure() { return main.getPressure(); } public double getTemp() { return main.getTemp(); } public String getCountry() { return sys.getCountry(); } public long getSunrise() { return sys.getSunrise(); } public long getSunset() { return sys.getSunset(); } }