I don't think this class is necessary.  Within a single resolveDeltas() invocation there can be only one type.  So make type a local variable of resolveDeltas() which is assigned in the part of the switch that does the 4 base types (OBJ_COMMIT, OBJ_TREE, OBJ_BLOB, OBJ_TAG) and pass it to anyone who needs the type... which is only the digestUsing routine.  But that can be put back inline into the resolveDeltas() routine.

That drops 1 object allocation per object processed during resolveDeltas(), which should help memory usage and decrease GC activity.  Its significant enough, and the code is probably actually shorter this way too, so I think it makes sense to drop this type.