package org.bouncycastle.cert.path;
import java.util.ArrayList;
import java.util.List;
import org.bouncycastle.util.Integers;
class CertPathValidationResultBuilder
{
private final CertPathValidationContext context;
private final List<Integer> certIndexes = new ArrayList<Integer>();
private final List<Integer> ruleIndexes = new ArrayList<Integer>();
private final List<CertPathValidationException> exceptions = new ArrayList<CertPathValidationException>();
CertPathValidationResultBuilder(CertPathValidationContext context)
{
this.context = context;
}
public CertPathValidationResult build()
{
if (exceptions.isEmpty())
{
return new CertPathValidationResult(context);
}
else
{
return new CertPathValidationResult(context,
toInts(certIndexes), toInts(ruleIndexes), (CertPathValidationException[])exceptions.toArray(new CertPathValidationException[exceptions.size()]));
}
}
public void addException(int certIndex, int ruleIndex, CertPathValidationException exception)
{
this.certIndexes.add(Integers.valueOf(certIndex));
this.ruleIndexes.add(Integers.valueOf(ruleIndex));
this.exceptions.add(exception);
}
private int[] toInts(List<Integer> values)
{
int[] rv = new int[values.size()];
for (int i = 0; i != rv.length; i++)
{
rv[i] = ((Integer)values.get(i)).intValue();
}
return rv;
}
}