package org.snmp4j.agent.mo.util;

import java.util.Map;
import java.util.Properties;
import java.util.SortedMap;
import java.util.TreeMap;
import org.snmp4j.agent.mo.MOTableRow;
import org.snmp4j.agent.mo.MOTableRowEvent;
import org.snmp4j.agent.mo.MOTableRowListener;
import org.snmp4j.smi.OID;

/* JADX INFO: loaded from: classes.dex */
public class MOTableSizeLimit<R extends MOTableRow> implements MOTableRowListener<R> {
    public static final String PROPERTY_PREFIX = "snmp4j.tableSizeLimit.";
    private SortedMap<OID, Integer> limits;
    private int maxNumRows;

    public MOTableSizeLimit(int i2) {
        this.maxNumRows = 0;
        this.maxNumRows = i2;
    }

    private boolean checkLimits(MOTableRowEvent<R> mOTableRowEvent) {
        int rowCount;
        int iIntValue = this.maxNumRows;
        SortedMap<OID, Integer> sortedMap = this.limits;
        if (sortedMap != null && !sortedMap.isEmpty()) {
            OID oid = new OID(mOTableRowEvent.getTable().getOID());
            while (true) {
                if (oid.size() <= 0) {
                    break;
                }
                Integer num = this.limits.get(oid);
                if (num != null) {
                    iIntValue = num.intValue();
                    break;
                }
                oid.trim(1);
            }
        }
        if (iIntValue > 0) {
            rowCount = mOTableRowEvent.getTable().getModel().getRowCount();
            if (rowCount >= iIntValue) {
                return removeEldest(mOTableRowEvent, (rowCount - iIntValue) + 1);
            }
        } else {
            rowCount = 0;
        }
        return iIntValue <= 0 || rowCount < iIntValue;
    }

    public SortedMap<OID, Integer> getLimits() {
        return this.limits;
    }

    public int getMaxNumRows() {
        return this.maxNumRows;
    }

    protected boolean removeEldest(MOTableRowEvent<R> mOTableRowEvent, int i2) {
        return false;
    }

    @Override // org.snmp4j.agent.mo.MOTableRowListener
    public void rowChanged(MOTableRowEvent<R> mOTableRowEvent) {
        if (mOTableRowEvent.getType() != 2 || checkLimits(mOTableRowEvent)) {
            return;
        }
        mOTableRowEvent.setVetoStatus(13);
    }

    public void setLimits(Properties properties) {
        this.limits = new TreeMap();
        for (Map.Entry entry : properties.entrySet()) {
            String str = (String) entry.getKey();
            if (str.startsWith(PROPERTY_PREFIX)) {
                this.limits.put(new OID(str.substring(22)), new Integer(entry.getValue().toString()));
            }
        }
    }

    public void setMaxNumRows(int i2) {
        this.maxNumRows = i2;
    }

    public MOTableSizeLimit(Properties properties) {
        this.maxNumRows = 0;
        setLimits(properties);
    }
}
