/*
* Copyright LGPL3
* YES Technology Association
* http://yestech.org
*
* http://www.opensource.org/licenses/lgpl-3.0.html
*/
package org.yestech.notify.objectmodel;
import static com.google.common.collect.Lists.newArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.UUID;
/**
* An LigthWeight Class that just contains {@link #getIdentifier()}.
*
*/
public class LightWeightNotificationJob implements INotificationJob
{
static final long serialVersionUID = 8897680828148707131L;
protected UUID identifier;
public LightWeightNotificationJob(UUID identifier) {
this.identifier = identifier;
}
/**
* Return the Immutable Identifier of the Job.
* @return
*/
public UUID getIdentifier() {
return identifier;
}
/**
* Add a {@link org.yestech.notify.objectmodel.INotification} to the Job. Message is only added if it is not null.
*
* @param message Message to add
*/
public void addNotification(INotification message) {
}
/**
* Add a Collection of {@link org.yestech.notify.objectmodel.INotification}s to the Job. Message is only added if
* it is not null.
*
* @param messages Messages to add
*/
public void addNotifications(Collection<INotification> messages) {
}
/**
* Removes a {@link org.yestech.notify.objectmodel.INotification} from the Job
*
* @param message Message tp remove
*/
public void removeNotification(INotification message) {
}
/**
* Removes a {@link java.util.Collection} of {@link org.yestech.notify.objectmodel.INotification} from the Job
*
* @param messages Message tp remove
*/
public void removeNotifications(Collection<INotification> messages) {
}
/**
* Returns an Immutable collection of {@link org.yestech.notify.objectmodel.INotification}s.
*
* @return Immutable collection
*/
public Iterator<INotification> getNotifications() {
throw new UnsupportedOperationException("Not implemented in LightWeight");
}
/**
* Clears all the contained messages from the Job
*/
public void clearNotifications() {
throw new UnsupportedOperationException("Not implemented in LightWeight");
}
/**
* Return the number of {@link org.yestech.notify.objectmodel.INotification}s contained.
*
* @return the count
*/
public int size() {
throw new UnsupportedOperationException("Not implemented in LightWeight");
}
/**
* Return whether or not there are no {@link org.yestech.notify.objectmodel.INotification} in the job.
*
* @return true if no message are contained, else false
*/
public boolean isEmpty() {
throw new UnsupportedOperationException("Not implemented in LightWeight");
}
@Override
public boolean equals(Object o)
{
if (this == o) return true;
if (!(o instanceof INotificationJob)) return false;
LightWeightNotificationJob that = (LightWeightNotificationJob) o;
if (identifier != null ? !identifier.equals(that.identifier) : that.identifier != null) return false;
return true;
}
@Override
public int hashCode()
{
int result = identifier != null ? identifier.hashCode() : 0;
return result;
}
public int compareTo(INotificationJob o)
{
return identifier.compareTo(o.getIdentifier());
}
}