Changed Attriutes#aggregate() to return StatListGetter instead of StatList

Changed Attriutes#aggregate() to return StatListGetter instead of StatList
Unsure if this will change, but all calls require #first()
Attribute returns are all asserted to be StatLists of numLists = 1
This commit is contained in:
Collin Smith
2020-09-03 17:32:58 -07:00
parent eddd0e9b0a
commit e26b22c1ba
3 changed files with 15 additions and 9 deletions

View File

@ -16,8 +16,8 @@ public class AggregateAttributes extends Attributes {
}
@Override
public StatList aggregate() {
return agg;
public StatListGetter aggregate() {
return agg.first();
}
@Override

View File

@ -2,7 +2,6 @@ package com.riiablo.attributes;
import android.support.annotation.CallSuper;
import java.util.Iterator;
import org.apache.commons.collections4.IteratorUtils;
public abstract class Attributes implements Iterable<StatGetter> {
/**
@ -69,8 +68,8 @@ public abstract class Attributes implements Iterable<StatGetter> {
* @see #remaining()
* @see #list()
*/
public StatList aggregate() {
return list();
public StatListGetter aggregate() {
return list().first();
}
/**
@ -130,9 +129,6 @@ public abstract class Attributes implements Iterable<StatGetter> {
*/
@Override
public Iterator<StatGetter> iterator() {
final StatList agg = aggregate();
final int numLists = agg.numLists();
if (numLists < 1) return IteratorUtils.emptyIterator();
return agg.statIterator(0);
return aggregate().statIterator();
}
}

View File

@ -32,6 +32,16 @@ public final class StatListGetter implements Iterable<StatGetter> {
return stats.indexOf(list, stat);
}
/** @see StatList#size(int) */
public int size() {
return stats.size(list);
}
/** @see StatList#isEmpty(int) */
public boolean isEmpty() {
return stats.isEmpty(list);
}
/** @see StatList#contains(int, short) */
public boolean contains(short stat) {
return stats.contains(list, stat);