Provides the SNMP MIB file loading and validation classes. A MIB file is loaded with the {@link net.percederberg.mibble.MibLoader MibLoader} class. The contents of the MIB file are hereafter accessed with the {@link net.percederberg.mibble.Mib Mib} class. Below follows a simple example of loading a MIB file:

    MibLoader  loader = new MibLoader();
    Mib        mib;

    try {
        mib = loader.load(<inputfile>);
    } catch (FileNotFoundException e) {
        System.err.println(e.getMessage());
    } catch (MibLoaderException e) {
        e.getLog().printTo(System.err);
    }
    

A {@link net.percederberg.mibble.Mib Mib} consists of a set of {@link net.percederberg.mibble.MibSymbol MibSymbol}s. There are two types of symbols, one representing a MIB value assignment ({@link net.percederberg.mibble.MibValueSymbol MibValueSymbol}) and one representing a MIB type assignment ({@link net.percederberg.mibble.MibTypeSymbol MibTypeSymbol}). In most normal usage (i.e. with SNMP), only the value symbols are of interest. Below follows a simple example printing all the value symbols in a loaded MIB file:

    Iterator   iter = mib.getAllSymbols().iterator();
    MibSymbol  symbol;

    while (iter.hasNext()) {
        symbol = (MibSymbol) iter.next();
        if (symbol instanceof MibValueSymbol) {
            System.out.println(symbol.toString());
        }
    }
    

A MIB value symbol contains a name, a {@link net.percederberg.mibble.MibType MibType}, and a {@link net.percederberg.mibble.MibValue MibValue}. The type symbols only contain a name and a type. There are several different types and value implementations, present in the {@link net.percederberg.mibble.snmp}, {@link net.percederberg.mibble.type}, and {@link net.percederberg.mibble.value} packages.

@since 2.0