/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package com.github.geophile.erdo.consolidate;
import java.util.List;
public class AllNonDurableConsolidationPlanner extends ConsolidationPlanner
{
// ConsolidationPlanner interface
@Override
public boolean planConsolidation(Consolidation.Element newElement)
{
assert newElement == null : newElement;
consolidationElements = consolidationSet.nonDurable().availableForConsolidation();
long totalCount = 0;
for (Consolidation.Element element : consolidationElements) {
totalCount += element.count();
}
if (totalCount == 0) {
consolidationElements = null;
}
return consolidationElements != null;
}
@Override
public List<Consolidation.Element> elementsToConsolidate()
{
return consolidationElements;
}
@Override
public String type()
{
return "allNonDurable";
}
// AllNonDurableConsolidationPlanner interface
public static AllNonDurableConsolidationPlanner newPlanner(ConsolidationSet consolidationSet)
{
return new AllNonDurableConsolidationPlanner(consolidationSet);
}
// For use by this class
private AllNonDurableConsolidationPlanner(ConsolidationSet consolidationSet)
{
super(consolidationSet, false, true);
}
// Object state
private List<Consolidation.Element> consolidationElements;
}