// returns true if change // DUPLICATED in convertToField AND DefaultValueConverterForField... sbool _cSmartSetField(Concept c, S field, O value) ctex { Field f = setOpt_findField(c.getClass(), field); if (f != null && value != null) { Class actualType = f.getType(); Class type = primitiveToBoxedTypeOpt(actualType); // int magic if (type == Int.class && !value instanceof Int) { if (!setField_trueIfChanged(f, c, toInt(trimIfString(value)))) false; if (!isTransient(f)) c.change(); true; } // bool magic if (type == Bool.class && value instanceof S) if (actualType == Bool.class && eq(value, "")) ret _csetField(c, field, null); else ret _csetField(c, field, eqicOneOf((S) value, "1", "true", "yes")); // GlobalID magic ifclass GlobalID if (type == GlobalID.class && value instanceof S) ret _csetField(c, field, GlobalID((S) value)); endif } ret _csetField(c, field, value); }