package org.snmp4j.agent.request;

import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
import org.snmp4j.agent.request.SubRequest;
import org.snmp4j.smi.OID;

/* JADX INFO: loaded from: classes.dex */
public abstract class AbstractRequest<U extends SubRequest, S, R> implements Request<S, R, U> {
    protected int repeaterRowSize;
    protected int repeaterStartIndex;
    protected R response;
    protected S source;
    protected List<U> subrequests;
    protected int transactionID;
    protected int phase = -1;
    protected int errorStatus = 0;
    protected int reprocessCounter = 0;

    public AbstractRequest(S s) {
        this.source = s;
    }

    public boolean equals(Object obj) {
        return (obj instanceof Request) && this.transactionID == ((Request) obj).getTransactionID();
    }

    @Override // org.snmp4j.agent.request.Request
    public U find(OID oid) {
        for (U u : this) {
            if (u.getVariableBinding().getOid().startsWith(oid)) {
                return u;
            }
        }
        return null;
    }

    @Override // org.snmp4j.agent.request.Request
    public U get(int i2) {
        return this.subrequests.get(i2);
    }

    @Override // org.snmp4j.agent.request.Request
    public int getErrorIndex() {
        if (this.errorStatus == 0) {
            return 0;
        }
        initSubRequests();
        Iterator<U> it = this.subrequests.iterator();
        int i2 = 1;
        while (it.hasNext()) {
            if (it.next().getStatus().getErrorStatus() != 0) {
                return i2;
            }
            i2++;
        }
        return 0;
    }

    @Override // org.snmp4j.agent.request.Request
    public int getErrorStatus() {
        initSubRequests();
        if (this.errorStatus == 0) {
            for (U u : this.subrequests) {
                if (u.getStatus().getErrorStatus() != 0) {
                    return u.getStatus().getErrorStatus();
                }
            }
        }
        return this.errorStatus;
    }

    protected abstract int getMaxPhase();

    @Override // org.snmp4j.agent.request.Request
    public int getPhase() {
        return this.phase;
    }

    @Override // org.snmp4j.agent.request.Request
    public int getReprocessCounter() {
        return this.reprocessCounter;
    }

    @Override // org.snmp4j.agent.request.Request
    public R getResponse() {
        return this.response;
    }

    @Override // org.snmp4j.agent.request.Request
    public S getSource() {
        return this.source;
    }

    @Override // org.snmp4j.agent.request.Request
    public int getTransactionID() {
        return this.transactionID;
    }

    public int hashCode() {
        return this.transactionID;
    }

    @Override // org.snmp4j.agent.request.Request
    public void incReprocessCounter() {
        this.reprocessCounter++;
    }

    protected synchronized void initSubRequests() {
        if (this.subrequests == null) {
            setupSubRequests();
        }
    }

    public abstract boolean isBulkRequest();

    @Override // org.snmp4j.agent.request.Request
    public boolean isComplete() {
        return getErrorStatus() != 0 || (getPhase() >= getMaxPhase() && isPhaseComplete());
    }

    @Override // org.snmp4j.agent.request.Request
    public int nextPhase() {
        if (this.phase >= getMaxPhase()) {
            throw new NoSuchElementException("Requested phase does not exists");
        }
        resetCompletionStatus();
        int i2 = this.phase;
        if (i2 != 1) {
            if (i2 != 2) {
                if (i2 != 3) {
                    this.phase = 1;
                } else {
                    this.phase = 4;
                }
            } else if (getErrorStatus() != 0) {
                this.phase = 3;
            } else {
                this.phase = 4;
            }
        } else if (getErrorStatus() != 0) {
            this.phase = 4;
        } else {
            this.phase = 2;
        }
        return this.phase;
    }

    protected void resetCompletionStatus() {
        initSubRequests();
        for (U u : this.subrequests) {
            u.getStatus().setPhaseComplete(false);
            u.getStatus().setProcessed(false);
        }
    }

    @Override // org.snmp4j.agent.request.Request
    public synchronized void resetProcessedStatus() {
        for (U u : this.subrequests) {
            u.getStatus().setProcessed(u.getStatus().isPhaseComplete());
        }
    }

    @Override // org.snmp4j.agent.request.Request
    public void setErrorStatus(int i2) {
        this.errorStatus = i2;
    }

    @Override // org.snmp4j.agent.request.Request
    public void setPhase(int i2) throws NoSuchElementException {
        if (i2 < 0 || i2 > getMaxPhase()) {
            throw new NoSuchElementException("Illegal phase identifier: " + i2);
        }
        if (this.phase != i2) {
            resetCompletionStatus();
        }
        this.phase = i2;
    }

    protected abstract void setupSubRequests();

    public String toString() {
        return getClass().getName() + "[phase=" + this.phase + ",errorStatus=" + this.errorStatus + ",source=" + this.source + ",response=" + this.response + ",transactionID=" + this.transactionID + ",repeaterStartIndex=" + this.repeaterStartIndex + ",repeaterRowSize=" + this.repeaterRowSize + ",reprocessCounter=" + this.reprocessCounter + ",subrequests=" + this.subrequests + "]";
    }
}
