/* * Copyright (c) 2016 EMC Corporation * All Rights Reserved */ package com.emc.storageos.volumecontroller.impl.block.rollback; import com.emc.storageos.db.client.DbClient; import com.emc.storageos.db.client.model.BlockSnapshotSession; import java.util.List; import static com.google.common.collect.Lists.newArrayList; /** * Factory class to build a {@link ReplicaCleanupContext}. */ public class ReplicaCleanupFactory { private ReplicaCleanupFactory() { } /** * Build an instance of {@link ReplicaCleanupContext} for cleaning up * failed BlockSnapshots, failed BlockSnapshotSessions and stale entries * in any {@link BlockSnapshotSession#getLinkedTargets()} fields. * * @param dbClient The Database Client. * @return An initialized instance of ReplicaCleanupContext. */ public static ReplicaCleanupContext getContext(DbClient dbClient) { ReplicaCleanupContext ctx = new ReplicaCleanupContext(); ctx.setDbClient(dbClient); // List of ReplicaCleanup instances. List<ReplicaCleanup> replicaCleanups = newArrayList(); replicaCleanups.add(new BlockSnapshotCleanup()); replicaCleanups.add(new BlockSnapshotSessionCleanup()); // Add new classes here... for (ReplicaCleanup replicaCleanup : replicaCleanups) { replicaCleanup.setDbClient(dbClient); } ctx.setCleanups(replicaCleanups); return ctx; } }