/* * Copyright (c) 2010 Mysema Ltd. * All rights reserved. * */ package com.querydsl.sql.ddl; import java.util.List; import com.querydsl.sql.SQLTemplates; /** * ForeignKeyBuilder is part of the fluent interface of CreateTableClause * * @author tiwe * */ public class ForeignKeyBuilder { private final List<ForeignKeyData> foreignKeys; private final CreateTableClause clause; private final String name; private final String[] foreignColumns; private final SQLTemplates templates; public ForeignKeyBuilder(CreateTableClause clause, SQLTemplates templates, List<ForeignKeyData> foreignKeys, String name, String[] columns) { this.clause = clause; this.templates = templates; this.foreignKeys = foreignKeys; this.name = name; this.foreignColumns = columns.clone(); } public CreateTableClause references(String table, String... parentColumns) { ForeignKeyData foreignKey = new ForeignKeyData(name, templates.quoteIdentifier(table)); for (int i = 0; i < parentColumns.length; i++) { foreignKey.add( templates.quoteIdentifier(foreignColumns[i]), templates.quoteIdentifier(parentColumns[i])); } foreignKeys.add(foreignKey); return clause; } }