All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nl.tweeenveertig.openstack.client.mock.scheduled.ObjectDeleter Maven / Gradle / Ivy

There is a newer version: 0.7.0
Show newest version
package nl.tweeenveertig.openstack.client.mock.scheduled;

import nl.tweeenveertig.openstack.model.StoredObject;

import java.util.*;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class ObjectDeleter implements Runnable {

    private List objectsToDelete = new ArrayList();

    public ObjectDeleter(int startAfter, int intervalInSeconds) {
        ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
        scheduler.scheduleAtFixedRate(this, startAfter, intervalInSeconds, TimeUnit.SECONDS);
    }

    public void scheduleForDeletion(StoredObject storedObject, Date deleteAt) {
        objectsToDelete.add(new ScheduledForDeletion(storedObject, deleteAt));
    }

    @Override
    public void run() {
        Date now = new Date();
        List objectsToDeleteNow = new ArrayList();
        for (ScheduledForDeletion scheduledForDeletion : objectsToDelete) {
            if (scheduledForDeletion.deleteIf(now)) {
                objectsToDeleteNow.add(scheduledForDeletion);
            }
        }
        objectsToDelete.removeAll(objectsToDeleteNow);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy