public static Identifiable create(Deserializer buf) {
        int classId = buf.getInt(null);
        Identifiable obj = createFromId(classId);
        if (obj != null) {
            obj.deserialize(buf);
        } else {
            throw new IllegalArgumentException("Failed creating class for classId " + classId);
        }
        return obj;
    }
Deserializes a single {@link Identifiable} object from the given byte buffer. The object itself may perform
recursive deserialization of {@link Identifiable} objects, but there is no requirement that this method consumes
the whole content of the buffer.

@param buf The buffer to deserialize from.
@return The instantiated object.
@throws IllegalArgumentException Thrown if an unknown class is contained in the buffer.
vespajlib/src/main/java/com/yahoo/vespa/objects/Identifiable.java