/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package models.datatable;
import java.net.URI;
import java.util.List;
import com.emc.storageos.model.NamedRelatedResourceRep;
import com.emc.storageos.model.block.BlockSnapshotRestRep;
import com.emc.storageos.model.block.VolumeRestRep;
import com.google.common.collect.Lists;
import util.BourneUtil;
import util.datatable.DataTable;
public class ApplicationSnapshotSetDataTable extends DataTable {
public ApplicationSnapshotSetDataTable() {
addColumn("snapshotGroups").setRenderFunction("renderSnapshots");
addColumn("createdTime").setRenderFunction("render.localDate");
addColumn("subGroup");
sortAll();
}
//Suppressing sonar violation for need of accessor methods. Accessor methods are not needed and we use public variables
@SuppressWarnings("ClassVariableVisibilityCheck")
public static class ApplicationSnapshotSets {
public String snapshotGroups;
public long createdTime;
public String groups;
public List<String> subGroup = Lists.newArrayList();
public URI sourceVolumeId;
private VolumeRestRep sourceVolume;
public ApplicationSnapshotSets(String sets, List<NamedRelatedResourceRep> snapshotDetails) {
snapshotGroups = sets;
for (NamedRelatedResourceRep snap : snapshotDetails) {
BlockSnapshotRestRep snapshots = BourneUtil.getViprClient()
.blockSnapshots().get((snap.getId()));
if (snapshots.getParent() != null) {
sourceVolumeId = snapshots.getParent().getId();
sourceVolume = BourneUtil.getViprClient().blockVolumes()
.get(sourceVolumeId);
if (sourceVolume != null) {
groups = sourceVolume.getReplicationGroupInstance();
}
} else {
groups = snapshots.getReplicationGroupInstance();
}
if (!subGroup.contains(groups)) {
subGroup.add(groups);
}
createdTime = snapshots.getCreationTime().getTime().getTime();
}
}
}
}