package com.fsck.k9.notification;
class RemoveNotificationResult {
private final NotificationHolder notificationHolder;
private final int notificationId;
private final boolean unknownNotification;
private RemoveNotificationResult(NotificationHolder notificationHolder, int notificationId,
boolean unknownNotification) {
this.notificationHolder = notificationHolder;
this.notificationId = notificationId;
this.unknownNotification = unknownNotification;
}
public static RemoveNotificationResult createNotification(NotificationHolder notificationHolder) {
return new RemoveNotificationResult(notificationHolder, notificationHolder.notificationId, false);
}
public static RemoveNotificationResult cancelNotification(int notificationId) {
return new RemoveNotificationResult(null, notificationId, false);
}
public static RemoveNotificationResult unknownNotification() {
return new RemoveNotificationResult(null, 0, true);
}
public boolean shouldCreateNotification() {
return notificationHolder != null;
}
public int getNotificationId() {
if (isUnknownNotification()) {
throw new IllegalStateException("getNotificationId() can only be called when " +
"isUnknownNotification() returns false");
}
return notificationId;
}
public boolean isUnknownNotification() {
return unknownNotification;
}
public NotificationHolder getNotificationHolder() {
if (!shouldCreateNotification()) {
throw new IllegalStateException("getNotificationHolder() can only be called when " +
"shouldCreateNotification() returns true");
}
return notificationHolder;
}
}