/*
* Copyright (c) 2013 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.services.util;
import java.util.concurrent.Delayed;
import java.util.concurrent.RunnableScheduledFuture;
import java.util.concurrent.TimeUnit;
/**
* Implementation of RunnableScheduledFuture which supports a name
*
*/
class NamedScheduledTask<V> extends NamedTask<V> implements RunnableScheduledFuture<V> {
public NamedScheduledTask(String name, RunnableScheduledFuture<V> future) {
super(name, future);
}
@Override
public long getDelay(TimeUnit unit) {
return getRunnableScheduledFuture().getDelay(unit);
}
@Override
public int compareTo(Delayed o) {
return getRunnableScheduledFuture().compareTo(o);
}
@Override
public boolean isPeriodic() {
return getRunnableScheduledFuture().isPeriodic();
}
private RunnableScheduledFuture<V> getRunnableScheduledFuture() {
return (RunnableScheduledFuture<V>) super.future;
}
}