// 
// Decompiled by Procyon v0.6.0
// 

package org.bouncycastle.tsp.ers;

import java.util.Collection;
import java.util.ArrayList;
import java.util.List;
import java.util.LinkedList;
import java.util.Comparator;

public class SortedIndexedHashList
{
    private static final Comparator<byte[]> hashComp;
    private final LinkedList<IndexedHash> baseList;
    
    public SortedIndexedHashList() {
        this.baseList = new LinkedList<IndexedHash>();
    }
    
    public IndexedHash getFirst() {
        return this.baseList.getFirst();
    }
    
    public void add(final IndexedHash indexedHash) {
        if (this.baseList.size() == 0) {
            this.baseList.addFirst(indexedHash);
        }
        else if (SortedIndexedHashList.hashComp.compare(indexedHash.digest, this.baseList.get(0).digest) < 0) {
            this.baseList.addFirst(indexedHash);
        }
        else {
            int n;
            for (n = 1; n < this.baseList.size() && SortedIndexedHashList.hashComp.compare(this.baseList.get(n).digest, indexedHash.digest) <= 0; ++n) {}
            if (n == this.baseList.size()) {
                this.baseList.add(indexedHash);
            }
            else {
                this.baseList.add(n, indexedHash);
            }
        }
    }
    
    public int size() {
        return this.baseList.size();
    }
    
    public List<IndexedHash> toList() {
        return new ArrayList<IndexedHash>(this.baseList);
    }
    
    static {
        hashComp = new ByteArrayComparator();
    }
}
