@Override public Optional<ImmutableColumn> findForeignColumn() { return foreignColumn.getOrCompute(() -> ForeignKeyColumn.super.findForeignColumn() .map(ImmutableColumn.class::cast) ); }
public static Optional<? extends ForeignKeyColumn> getForeignKey(Table table, Column column) { requireNonNulls(table, column); return table.foreignKeys() .filter(HasEnabled::test) .filter(fk -> fk.foreignKeyColumns().count() == 1) // We can only handle one column FKs... .flatMap(ForeignKey::foreignKeyColumns) .filter(fkc -> fkc.findForeignTable().map(Table::isEnabled).orElse(false)) // We can only handle FKs pointing to an enabled Table .filter(fkc -> fkc.findForeignColumn().map(Column::isEnabled).orElse(false)) // We can only handle FKs pointing to an enabled column .filter(fkc -> DocumentDbUtil.isSame(column, fkc.findColumn().orElse(null))) .findFirst(); }
public FkHolder(Injector injector, ForeignKey fk) { requireNonNull(fk); this.codeGenerationComponent = injector.getOrThrow(CodeGenerationComponent.class); this.fk = fk; this.fkc = fk.foreignKeyColumns().findFirst().orElseThrow(this::noEnabledForeignKeyException); this.column = fkc.findColumn().orElseThrow(this::couldNotFindLocalColumnException); this.table = ancestor(column, Table.class).orElseThrow(NoSuchElementException::new); this.foreignColumn = fkc.findForeignColumn().orElseThrow(this::foreignKeyWasNullException); this.foreignTable = fkc.findForeignTable().orElseThrow(this::foreignKeyWasNullException); }
public static Optional<? extends ForeignKeyColumn> getForeignKey(Table table, Column column) { requireNonNulls(table, column); return table.foreignKeys() .filter(HasEnabled::test) .filter(fk -> fk.foreignKeyColumns().count() == 1) // We can only handle one column FKs... .flatMap(ForeignKey::foreignKeyColumns) .filter(fkc -> fkc.findForeignTable().map(Table::isEnabled).orElse(false)) // We can only handle FKs pointing to an enabled Table .filter(fkc -> fkc.findForeignColumn().map(Column::isEnabled).orElse(false)) // We can only handle FKs pointing to an enabled column .filter(fkc -> DocumentDbUtil.isSame(column, fkc.findColumn().orElse(null))) .findFirst(); }
public FkHolder(Injector injector, ForeignKey fk) { requireNonNull(fk); this.codeGenerationComponent = injector.getOrThrow(CodeGenerationComponent.class); this.fk = fk; this.fkc = fk.foreignKeyColumns().findFirst().orElseThrow(this::noEnabledForeignKeyException); this.column = fkc.findColumn().orElseThrow(this::couldNotFindLocalColumnException); this.table = ancestor(column, Table.class).orElseThrow(NoSuchElementException::new); this.foreignColumn = fkc.findForeignColumn().orElseThrow(this::foreignKeyWasNullException); this.foreignTable = fkc.findForeignTable().orElseThrow(this::foreignKeyWasNullException); }
public final ObjectBinding<ColumnProperty> foreignColumnProperty() { return createObjectBinding( () -> ForeignKeyColumn.super.findForeignColumn() .map(ColumnProperty.class::cast) .orElse(null), foreignTableNameProperty(), foreignColumnNameProperty() ); }