me.vertretungsplan.objects.AdditionalInfo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of parser Show documentation
Show all versions of parser Show documentation
Java library for parsing schools' substitution schedules. Supports multiple different systems mainly used in the German-speaking countries.
/*
* substitution-schedule-parser - Java library for parsing schools' substitution schedules
* Copyright (c) 2016 Johan v. Forstner
*
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
* If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package me.vertretungsplan.objects;
import org.jetbrains.annotations.NotNull;
/**
* Represents an additional information on the substitution schedule. AdditionalInfos are not related to a
* specific day on the schedule (such as miscellaneous news the school might provide in DSBmobile and similar
* systems) and/or come from an independent source (such as information about cancellation of classes caused by snow
* or other extreme weather conditions provided by the Ministry of Education). For messages that don't satisfy one of
* these conditions, using {@link SubstitutionScheduleDay#addMessage(String)} might be more appropriate.
*/
public class AdditionalInfo {
private String title;
private String text;
private boolean hasInformation;
private boolean fromSchedule;
/**
* Get the title of this additional info
*
* @return the title
*/
@NotNull
public String getTitle() {
return title;
}
/**
* Set the title of this additional info. Required.
*
* @param title the title to set
*/
public void setTitle(@NotNull String title) {
this.title = title;
}
/**
* Get the content text of this additional info. May include simple HTML markup (only a subset of the tags is
* supported, such as {@code bold} and {@code italic}.
*
* @return the text
*/
@NotNull
public String getText() {
return text;
}
/**
* Set the content text of this additional info. May include simple HTML markup (only a subset of the tags is
* supported, such as {@code bold} and {@code italic}. Required.
*
* @param text the text to set
*/
public void setText(@NotNull String text) {
this.text = text;
}
/**
* Find out if this AdditionalInfo contains urgent information the user of an app should be notified about.
*
* @return boolean indicating if this AdditionalInfo contains urgent information
*/
public boolean hasInformation() {
return hasInformation;
}
/**
* Set if this AdditionalInfo contains urgent information the user of an app should be notified about.
*
* @param hasInformation boolean indicating if this AdditionalInfo contains urgent information
*/
@SuppressWarnings("SameParameterValue")
public void setHasInformation(boolean hasInformation) {
this.hasInformation = hasInformation;
}
@SuppressWarnings("NegatedConditionalExpression")
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
AdditionalInfo that = (AdditionalInfo) o;
if (hasInformation != that.hasInformation) return false;
if (title != null ? !title.equals(that.title) : that.title != null) return false;
return !(text != null ? !text.equals(that.text) : that.text != null);
}
@Override
public int hashCode() {
int result = title != null ? title.hashCode() : 0;
result = 31 * result + (text != null ? text.hashCode() : 0);
result = 31 * result + (hasInformation ? 1 : 0);
return result;
}
/**
* @return Whether this AdditionalInfo was parsed from the school's own schedule (true) or from a separate
* AdditionalInfoParser (false).
*/
public boolean isFromSchedule() {
return fromSchedule;
}
/**
* Set whether this AdditionalInfo was parsed from the school's own schedule (true) or from a separate
* AdditionalInfoParser (false).
*
* @param fromSchedule whether this AdditionalInfo was parsed from the school's own schedule
*/
public void setFromSchedule(boolean fromSchedule) {
this.fromSchedule = fromSchedule;
}
}