Since we're mucking about with this, lets just define:

  public enum ObjectType {
    COMMIT(Constants.OBJ_COMMIT, Constants.TYPE_COMMIT),
    TREE(...),
    BLOB(...),
    TAG(...)

    public int getPackType() {
      return packType;
    }

    public String getTypeString() {
      return typeName;
    }

    public static ObjectType forPackType(int type) {...}
    public static ObjectType forTypeString(String type) {...}
  }

and declare this as part of our public API.  While we are at it we can add getObjectType() to ObjectLoader, ObjectStream, and RevObject should an application prefer to use the type-safe enum variant.  We should also implement overload forms of the open(ObjectId,int) method to be open(ObjectId,ObjectType).  Our current typing code was before we supported Java 5 and had  access to enums.  The enums are a bit cleaner to work with, so we might as well just start supporting it.  IMHO that should all be in its own change, before you add CatFile.

Then you can just use ObjectType here for your parameter.