@Override public IAMIndex decode(final IAMCodec codec) throws IOException, IllegalArgumentException { try { final MMFArray array = MMFArray.from(codec.getSourceData()); final ByteOrder order = IAMIndexLoader.HEADER.orderOf(array); codec.useByteOrder(IAMByteOrder.from(order)); return new IAMIndexLoader(array.withOrder(order)); } catch (IOException | IllegalArgumentException cause) { throw cause; } catch (final Exception cause) { throw new IllegalArgumentException(cause); } }