package org.wikipedia.notifications;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import com.google.gson.annotations.SerializedName;
import org.wikipedia.json.annotations.Required;
import org.wikipedia.wikidata.EntityClient;
import java.util.List;
public class Notification {
public static final String TYPE_EDIT_USER_TALK = "edit-user-talk";
public static final String TYPE_REVERTED = "reverted";
public static final String TYPE_EDIT_THANK = "edit-thank";
@SuppressWarnings("unused,NullableProblems") @Required @NonNull private String wiki;
@SuppressWarnings("unused") private int id;
@SuppressWarnings("unused,NullableProblems") @Required @NonNull private String type;
@SuppressWarnings("unused,NullableProblems") @Required @NonNull private String category;
@SuppressWarnings("unused") private int revid;
@SuppressWarnings("unused,NullableProblems") @Required @NonNull private Title title;
@SuppressWarnings("unused,NullableProblems") @Required @NonNull private Agent agent;
@NonNull public String wiki() {
return wiki;
}
public int id() {
return id;
}
@NonNull public String type() {
return type;
}
@NonNull public Agent agent() {
return agent;
}
@NonNull public Title title() {
return title;
}
public int revID() {
return revid;
}
public boolean isFromWikidata() {
return wiki.equals(EntityClient.WIKIDATA_WIKI);
}
@Override public String toString() {
return Integer.toString(id);
}
public static class Title {
@SuppressWarnings("unused,NullableProblems") @Required @NonNull private String full;
@SuppressWarnings("unused,NullableProblems") @Required @NonNull private String text;
@SuppressWarnings("unused") @Nullable private String namespace;
@SuppressWarnings("unused") @SerializedName("namespace-key") private int namespaceKey;
@NonNull public String text() {
return text;
}
@NonNull public String full() {
return full;
}
public boolean isMainNamespace() {
return namespaceKey == 0;
}
public void setFull(@NonNull String title) {
full = title;
}
}
public static class Agent {
@SuppressWarnings("unused,NullableProblems") @Required @NonNull private String id;
@SuppressWarnings("unused,NullableProblems") @Required @NonNull private String name;
@NonNull public String name() {
return name;
}
}
public static class NotificationList {
@SuppressWarnings("unused,NullableProblems") @Required @NonNull private List<Notification> list;
@NonNull public List<Notification> getNotifications() {
return list;
}
}
public static class QueryNotifications {
@SuppressWarnings("unused,NullableProblems") @Required @NonNull private NotificationList notifications;
@NonNull public List<Notification> get() {
return notifications.getNotifications();
}
}
}