void removeParent( InsertRow parent ) { ParentRowReference ref = parentToRef.get( parent ); // propagate values from parent (foreign key values) List<SQLIdentifier> fromColumns = ref.getKeyPropagation().getPrimaryKeyColumns(); List<SQLIdentifier> toColumns = ref.getKeyPropagation().getForeignKeyColumns(); for ( int i = 0; i < fromColumns.size(); i++ ) { SQLIdentifier fromColumn = fromColumns.get( i ); SQLIdentifier toColumn = toColumns.get( i ); Object key = parent.get( fromColumn ); if ( key == null ) { String msg = "Unable to create foreign key relation. Encountered NULL value for foreign key column '" + fromColumn + "'."; throw new IllegalArgumentException( msg ); } addPreparedArgument( toColumn, key ); } // if parent is a feature row, set value for href column if ( ref.isHrefed( this ) && parent instanceof FeatureRow ) { addPreparedArgument( ref.getHrefColum( this ), "#" + ( (FeatureRow) parent ).getNewId() ); } parentToRef.remove( parent ); }
fids.add( assignment.getNewId() );