public void setValueInternal(CmpEntityBeanContext ctx, Object value, boolean makeDirty) {
    PersistentContext pctx = (PersistentContext) ctx.getPersistenceContext();

    // todo this is weird
    if (cmpFieldIAmMappedTo != null && cmpFieldIAmMappedTo.isPrimaryKeyMember) {
      Object curValue = pctx.getFieldValue(rowIndex);
      if (value != null && !value.equals(curValue)) {
        throw CmpMessages.MESSAGES.attemptToModifyPkThroughFk(
            entity.getEntityName(),
            cmpFieldIAmMappedTo.getFieldName(),
            entity.getQualifiedTableName(),
            cmpFieldIAmMappedTo.getColumnName(),
            curValue,
            value);
      }

      makeDirty = false;
    } else {
      pctx.setFieldValue(rowIndex, value);
    }

    if (makeDirty) {
      pctx.setDirty();
    }
  }
  public JDBCCMPFieldBridge2(JDBCCMPFieldBridge2 cmpField, JDBCCMPFieldBridge2 relatedPKField) {
    entity = cmpField.entity;
    rowIndex = cmpField.rowIndex;
    jdbcType = cmpField.jdbcType;
    columnName = cmpField.columnName;

    fieldName = relatedPKField.fieldName;
    fieldType = relatedPKField.fieldType;
    pkClass = relatedPKField.pkClass;
    pkField = relatedPKField.pkField;

    isPrimaryKeyMember = false;

    cmpFieldIAmMappedTo = cmpField;

    log =
        Logger.getLogger(
            this.getClass().getName() + "." + entity.getEntityName() + "#" + getFieldName());
  }
  public JDBCCMPFieldBridge2(
      JDBCStoreManager2 manager,
      JDBCEntityBridge2 entity,
      JDBCCMPFieldMetaData metadata,
      int rowIndex) {
    this.rowIndex = rowIndex;
    this.entity = entity;
    jdbcType = manager.getJDBCTypeFactory().getJDBCType(metadata);
    pkClass = metadata.getEntity().getPrimaryKeyClass();
    pkField = metadata.getPrimaryKeyField();
    isPrimaryKeyMember = metadata.isPrimaryKeyMember();
    fieldName = metadata.getFieldName();
    fieldType = metadata.getFieldType();
    cmpFieldIAmMappedTo = null;
    columnName = metadata.getColumnName();

    log =
        Logger.getLogger(
            this.getClass().getName() + "." + entity.getEntityName() + "#" + getFieldName());
  }
 public JDBCEntityPersistenceStore getManager() {
   return entity.getManager();
 }
 public void initVersion() {
   versionIndex = entity.getTable().addVersionField();
 }