/*
* Copyright (C) 2010-2012 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;
import java.util.List;
public final class ObaSituationElement implements ObaSituation {
public static final ObaSituationElement EMPTY_OBJECT = new ObaSituationElement();
public static final ObaSituationElement[] EMPTY_ARRAY = new ObaSituationElement[]{};
public static final class Text {
private final String value;
//private final String lang;
Text() {
value = "";
//lang = "";
}
public String getValue() {
return value;
}
}
public static final class AllAffectsElement implements AllAffects {
public static final AllAffectsElement EMPTY_OBJECT = new AllAffectsElement();
public static final AllAffectsElement[] EMPTY_ARRAY = new AllAffectsElement[]{};
private final String directionId;
private final String stopId;
private final String tripId;
private final String applicationId;
private final String routeId;
private final String agencyId;
AllAffectsElement() {
directionId = "";
stopId = "";
tripId = "";
applicationId = "";
routeId = "";
agencyId = "";
}
@Override
public String getDirectionId() {
return directionId;
}
@Override
public String getStopId() {
return stopId;
}
@Override
public String getTripId() {
return tripId;
}
@Override
public String getApplicationId() {
return applicationId;
}
@Override
public String getRouteId() {
return routeId;
}
@Override
public String getAgencyId() {
return agencyId;
}
}
public static final class ConditionDetailsElement
implements ConditionDetails {
private final String[] diversionStopIds;
private final ObaShapeElement diversionPath;
ConditionDetailsElement() {
diversionStopIds = null;
diversionPath = null;
}
@Override
public ObaShape getDiversionPath() {
return diversionPath;
}
@Override
public List<String> getDiversionStopIds() {
return Arrays.asList(diversionStopIds);
}
}
public static final class ConsequenceElement implements Consequence {
public static final ConsequenceElement[] EMPTY_ARRAY = new ConsequenceElement[]{};
private final String condition;
private final ConditionDetailsElement conditionDetails;
ConsequenceElement() {
condition = "";
conditionDetails = null;
}
@Override
public String getCondition() {
return condition;
}
@Override
public ConditionDetails getDetails() {
return conditionDetails;
}
}
public static final class ActiveWindowElement implements ActiveWindow {
public static final ActiveWindowElement[] EMPTY_ARRAY = new ActiveWindowElement[]{};
private long to, from;
ActiveWindowElement() {
to = 0;
from = 0;
}
public long getTo() {return to;}
public long getFrom() {return from;}
}
private final String id;
private final Text summary;
private final Text description;
private final Text advice;
private final String reason;
//private final String securityAlert;
private final long creationTime;
private final AllAffectsElement[] allAffects;
private final ConsequenceElement[] consequences;
private final String severity;
private final ActiveWindowElement[] activeWindows;
private final Text url;
ObaSituationElement() {
id = "";
summary = null;
description = null;
advice = null;
reason = null;
//securityAlert = null;
creationTime = 0;
allAffects = AllAffectsElement.EMPTY_ARRAY;
consequences = ConsequenceElement.EMPTY_ARRAY;
activeWindows = ActiveWindowElement.EMPTY_ARRAY;
severity = "";
url = null;
}
@Override
public String getId() {
return id;
}
@Override
public String getSummary() {
return (summary != null) ? summary.getValue() : null;
}
@Override
public String getDescription() {
return (description != null) ? description.getValue() : null;
}
@Override
public String getAdvice() {
return (advice != null) ? advice.getValue() : null;
}
@Override
public String getReason() {
return reason;
}
@Override
public long getCreationTime() {
return creationTime;
}
@Override
public AllAffects[] getAllAffects() {
return allAffects;
}
@Override
public Consequence[] getConsequences() {
return consequences;
}
@Override
public String getSeverity() {
return severity;
}
@Override
public ActiveWindow[] getActiveWindows() { return activeWindows; }
@Override
public String getUrl() {
return (url != null) ? url.getValue() : null;
}
}