* @return int
   */
  public static int getColumnCount(Stella_Object obj) {
    if (obj == null) {
      return (0);
    }
    { Surrogate testValue000 = Stella_Object.safePrimaryType(obj);

      if (Surrogate.subtypeOfP(testValue000, Logic.SGT_LOGIC_PROPOSITION)) {
        { Proposition obj000 = ((Proposition)(obj));

          return (obj000.arguments.length() + 1);
        }
      }
      else if (Surrogate.subtypeOfP(testValue000, PLI.SGT_PLI_PL_ITERATOR)) {
        { PlIterator obj000 = ((PlIterator)(obj));

          return (PLI.getColumnCount(obj000.value));
        }
      }
      else if (testValue000 == Logic.SGT_STELLA_CONS) {
        { Cons obj000 = ((Cons)(obj));

          return (obj000.length());
        }
      }
      else if (Surrogate.subtypeOfP(testValue000, Logic.SGT_STELLA_VECTOR)) {
        { Vector obj000 = ((Vector)(obj));

          return (obj000.length());
        }
      }
      else {
        return (1);
      }
    }
  }