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