private static String getClassDeclaration(String jrfColumnClassName, boolean usePrimitives) {
   String result = CodeGenUtil.getClassDeclarationValue(jrfColumnClassName);
   if (usePrimitives) { // Translate things like java.util.Long to long, if required.
     return JRFGeneratorUtil.translateWrapper(result);
   }
   return result;
 }
 public String getGetterSetterImpl(String dbObjClassName) throws CodeGenException {
   return JRFGeneratorUtil.getGetterSetterImplCode(
       getterSetter,
       dbObjClassName,
       (String) super.transientKeys.get("objectName"),
       jrfColumnClassName,
       usePrimitives);
 }
 public String getEncodedKeyCode() {
   if (type == T_DATE) {
     return "("
         + fieldName
         + " == null ? \"null\":new java.sql.Timestamp("
         + fieldName
         + ".getTime()).toString())";
   }
   if (usePrimitives) {
     return JRFGeneratorUtil.getPrimitiveWrapperCode(jrfColumnClassName, fieldName)
         + ".toString()";
   }
   return fieldName + ".toString()";
 }
  public void resolveImpliedKeys() {
    String util = (String) super.transientKeys.get("jrfImpl");
    if (util == null) {
      util = (String) super.transientKeys.get("dbType");
      if (util == null)
        throw new IllegalArgumentException(this + ": neither jrfImpl or dbType is specified.");
      String t = (String) dbTypeToJrfImplMap.getProperty(util);
      if (t == null) {
        throw new IllegalArgumentException(
            this + ": no JRF column impl translation found for " + util);
      }
      util = t;
    }
    // fill out if required.
    if (util.indexOf(".") == -1) {
      util = "net.sf.jrf.column.columnspecs." + util;
    }
    super.transientKeys.put("jrfImpl", util);
    try {
      ColumnSpec spec = (ColumnSpec) Class.forName(util).newInstance();
      if (spec instanceof DayOfWeekColumnSpec) type = T_DOW;
      else if (spec instanceof TextColumnSpec) type = T_TEXT;
      else if (spec instanceof NumericColumnSpec) type = T_NUMERIC;
      else if (spec instanceof DateColumnSpec) type = T_DATE;
      else type = T_OTHER;
      jrfColumnClassName = spec.getColumnClass().getName();
    } catch (Exception ne) {
      throw new IllegalArgumentException(this + ": No such class: " + util);
    }
    if (nullable && type != T_DOW) {
      // If is nullable -- CANNOT be a primitive -- override default.
      usePrimitives = false;
    }
    util = (String) super.transientKeys.get("objectName");
    if (util == null) {
      if (initCapNameOnly) {
        util = (String) super.transientKeys.get("name");
        super.transientKeys.put(
            "objectName", java.lang.Character.toUpperCase(util.charAt(0)) + util.substring(1));
      } else
        super.transientKeys.put(
            "objectName",
            JRFGeneratorUtil.databaseNameToFieldName((String) super.transientKeys.get("name")));
      util = (String) super.transientKeys.get("objectName");
    }
    super.transientKeys.put("propertyName", generatePropertyName(util));
    getterSetter = super.transientKeys.get("objectName") + "GetterSetter";
    fieldName = "f_" + ((String) super.transientKeys.get("objectName"));
    util = (String) transientKeys.get("maxValue");
    if (util == null) {
      super.transientKeys.put("maxValue", "null");
    }
    util = (String) super.transientKeys.get("minValue");
    if (util == null) {
      super.transientKeys.put("minValue", "null");
    }
    util = (String) super.transientKeys.get("default");
    if (util == null || type == T_DOW) {
      super.transientKeys.put("default", "null");
    }
    if (type == T_DOW) {
      if (util == null) {
        defaultBeanValue = "net.sf.jrf.column.columnspecs.DayOfWeekColumnSpec.NULLDAYOFWEEK";
      } else {
        defaultBeanValue = util;
      }
    }
    if (util != null) {
      if (!util.startsWith("new")) {
        super.transientKeys.put(
            "default", JRFGeneratorUtil.getLiteralValueCode(jrfColumnClassName, util));
      }
    }

    util = (String) super.transientKeys.get("size");
    if (util == null) {
      super.transientKeys.put("size", "255");
    }
    super.transientKeys.put("listOfValues", "null");
    super.transientKeys.put("listOfValuesAdd", "");
    setDescriptionColor(primaryKey ? defaultPKColor : defaultColor);
    util = (String) super.transientKeys.get("writeOnce");
    if (util.equals("true") && !primaryKey) {
      super.transientKeys.put("writeOnceAdd", "    colVar.setWriteOnce(true);");
    } else {
      super.transientKeys.put("writeOnceAdd", "");
    }
  }