code: public static final FieldType getInstance(int fieldID)
     {
        FieldType result;
        int prefix = fieldID & 0xFFFF0000;
        int index = fieldID & 0x0000FFFF;
  
        switch (prefix)
        {
           case MPPTaskField.TASK_FIELD_BASE:
           {
              result = MPPTaskField.getInstance(index);
              if (result == null)
              {
                 result = getPlaceholder(TaskField.class, index);
              }
              break;
           }
  
           case MPPResourceField.RESOURCE_FIELD_BASE:
           {
              result = MPPResourceField.getInstance(index);
              if (result == null)
              {
                 result = getPlaceholder(ResourceField.class, index);
              }
              break;
           }
  
           case MPPAssignmentField.ASSIGNMENT_FIELD_BASE:
           {
              result = MPPAssignmentField.getInstance(index);
              if (result == null)
              {
                 result = getPlaceholder(AssignmentField.class, index);
              }
              break;
           }
  
           case MPPConstraintField.CONSTRAINT_FIELD_BASE:
           {
              result = MPPConstraintField.getInstance(index);
              if (result == null)
              {
                 result = getPlaceholder(ConstraintField.class, index);
              }
              break;
           }
  
           default:
           {
              result = getPlaceholder(null, index);
              break;
           }
        }
  
        return result;
     }
docs: Retrieve a FieldType instance based on an ID value from
  an MPP9 or MPP12 file.
  
  @param fieldID field ID
  @return FieldType instance