/* * Copyright (C) 2012-2013 Paul Watts (paulcwatts@gmail.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.onebusaway.android.io.elements; import java.util.Arrays; public class ObaRegionElement implements ObaRegion { public static final ObaRegionElement[] EMPTY_ARRAY = new ObaRegionElement[]{}; public static class Bounds implements ObaRegion.Bounds { public static final Bounds[] EMPTY_ARRAY = new Bounds[]{}; private final double lat; private final double lon; private final double latSpan; private final double lonSpan; Bounds() { lat = 0; lon = 0; latSpan = 0; lonSpan = 0; } public Bounds(double lat, double lon, double latSpan, double lonSpan) { this.lat = lat; this.lon = lon; this.latSpan = latSpan; this.lonSpan = lonSpan; } @Override public double getLat() { return lat; } @Override public double getLon() { return lon; } @Override public double getLatSpan() { return latSpan; } @Override public double getLonSpan() { return lonSpan; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("["); sb.append("lat=").append(lat).append(","); sb.append("lon=").append(lon).append(","); sb.append("latSpan=").append(latSpan).append(","); sb.append("lonSpan=").append(lonSpan); sb.append("]"); return sb.toString(); } } public static class Open311Server implements ObaRegion.Open311Server { public static final Open311Server[] EMPTY_ARRAY = new Open311Server[]{}; private final String jurisdictionId; private final String apiKey; private final String baseUrl; public Open311Server() { jurisdictionId = ""; apiKey = ""; baseUrl = ""; } public Open311Server(String jurisdictionId, String apiKey, String baseUrl) { this.jurisdictionId = jurisdictionId; this.apiKey = apiKey; this.baseUrl = baseUrl; } @Override public String getJuridisctionId() { return jurisdictionId; } @Override public String getApiKey() { return apiKey; } @Override public String getBaseUrl() { return baseUrl; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("["); sb.append("jurisdictionId=").append(jurisdictionId).append(","); sb.append("apiKey=").append(apiKey).append(","); sb.append("baseUrl=").append(baseUrl); sb.append("]"); return sb.toString(); } } private final long id; private final String regionName; private final boolean active; private final String obaBaseUrl; private final String siriBaseUrl; private final Bounds[] bounds; private final Open311Server[] open311Servers; private final String language; private final String contactEmail; private final boolean supportsObaDiscoveryApis; private final boolean supportsObaRealtimeApis; private final boolean supportsSiriRealtimeApis; private final String twitterUrl; private final boolean experimental; private final String stopInfoUrl; private final String otpBaseUrl; private final String otpContactEmail; ObaRegionElement() { id = 0; regionName = ""; obaBaseUrl = null; siriBaseUrl = null; active = false; bounds = Bounds.EMPTY_ARRAY; open311Servers = Open311Server.EMPTY_ARRAY; language = ""; contactEmail = ""; supportsObaDiscoveryApis = false; supportsObaRealtimeApis = false; supportsSiriRealtimeApis = false; twitterUrl = ""; experimental = true; stopInfoUrl = ""; otpBaseUrl = ""; otpContactEmail = ""; } public ObaRegionElement(long id, String name, boolean active, String obaBaseUrl, String siriBaseUrl, Bounds[] bounds, Open311Server[] open311Servers, String lang, String contactEmail, boolean supportsObaDiscoveryApis, boolean supportsObaRealtimeApis, boolean supportsSiriRealtimeApis, String twitterUrl, boolean experimental, String stopInfoUrl, String otpBaseUrl, String otpContactEmail) { this.id = id; this.regionName = name; this.active = active; this.obaBaseUrl = obaBaseUrl; this.siriBaseUrl = siriBaseUrl; this.bounds = bounds; this.open311Servers = open311Servers; this.language = lang; this.contactEmail = contactEmail; this.supportsObaDiscoveryApis = supportsObaDiscoveryApis; this.supportsObaRealtimeApis = supportsObaRealtimeApis; this.supportsSiriRealtimeApis = supportsSiriRealtimeApis; this.twitterUrl = twitterUrl; this.experimental = experimental; this.stopInfoUrl = stopInfoUrl; this.otpBaseUrl = otpBaseUrl; this.otpContactEmail = otpContactEmail; } @Override public long getId() { return id; } @Override public String getName() { return regionName; } @Override public boolean getActive() { return active; } @Override public String getObaBaseUrl() { return obaBaseUrl; } @Override public String getSiriBaseUrl() { return siriBaseUrl; } @Override public Bounds[] getBounds() { return bounds; } @Override public Open311Server[] getOpen311Servers() { return open311Servers; } @Override public String getLanguage() { return language; } @Override public String getContactEmail() { return contactEmail; } @Override public boolean getSupportsObaDiscoveryApis() { return supportsObaDiscoveryApis; } @Override public boolean getSupportsObaRealtimeApis() { return supportsObaRealtimeApis; } @Override public boolean getSupportsSiriRealtimeApis() { return supportsSiriRealtimeApis; } @Override public String getTwitterUrl() { return twitterUrl; } @Override public boolean getExperimental() { return experimental; } @Override public String getStopInfoUrl() { return stopInfoUrl; } @Override public String getOtpBaseUrl() { return otpBaseUrl; } @Override public String getOtpContactEmail() { return otpContactEmail; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((id == 0) ? 0 : Long.valueOf(id).hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof ObaRegionElement)) { return false; } ObaRegionElement other = (ObaRegionElement) obj; if (id == 0) { if (other.getId() != 0) { return false; } } else if (id != other.getId()) { return false; } return true; } @Override public String toString() { return "ObaRegionElement{" + "id=" + id + ", regionName='" + regionName + '\'' + ", active=" + active + ", obaBaseUrl='" + obaBaseUrl + '\'' + ", siriBaseUrl='" + siriBaseUrl + '\'' + ", bounds=" + Arrays.toString(bounds) + ", open311Servers=" + Arrays.toString(open311Servers) + ", language='" + language + '\'' + ", contactEmail='" + contactEmail + '\'' + ", supportsObaDiscoveryApis=" + supportsObaDiscoveryApis + ", supportsObaRealtimeApis=" + supportsObaRealtimeApis + ", supportsSiriRealtimeApis=" + supportsSiriRealtimeApis + ", twitterUrl='" + twitterUrl + '\'' + ", experimental=" + experimental + ", stopInfoUrl='" + stopInfoUrl + '\'' + ", otpBaseUrl='" + otpBaseUrl + '\'' + ", otpContactEmail='" + otpContactEmail + '\'' + '}'; } }