List of usage examples for org.hibernate.mapping ForeignKey containsColumn
public boolean containsColumn(Column column)
From source file:com.netspective.tool.hibernate.document.diagram.HibernateDiagramTableStructureNodeGenerator.java
License:Open Source License
public GraphvizDiagramNode generateTableNode(final HibernateDiagramGenerator generator, final HibernateDiagramGeneratorFilter filter, final PersistentClass pclass) { final Table table = pclass.getTable(); final StringBuffer primaryKeyRows = new StringBuffer(); final StringBuffer childKeyRows = new StringBuffer(); final StringBuffer columnRows = new StringBuffer(); final PrimaryKey primaryKeyColumns = table.getPrimaryKey(); final String indent = " "; int hidden = 0; for (final Iterator columns = table.getColumnIterator(); columns.hasNext();) { final Column column = (Column) columns.next(); if (filter.includeColumnInDiagram(generator, column)) { try { ForeignKey partOfForeignKey = null; for (Iterator fkIterator = table.getForeignKeyIterator(); fkIterator.hasNext();) { final ForeignKey fKey = (ForeignKey) fkIterator.next(); if (fKey.containsColumn(column)) { partOfForeignKey = fKey; break; }//from www . j ava 2s . co m } if (primaryKeyColumns.containsColumn(column)) primaryKeyRows.append(filter.getColumnDefinitionHtml(generator, column, primaryKeyColumns, partOfForeignKey, showDataTypes, showConstraints, indent) + "\n"); else if (partOfForeignKey != null && generator.isParentRelationship(partOfForeignKey)) childKeyRows.append(filter.getColumnDefinitionHtml(generator, column, null, partOfForeignKey, showDataTypes, showConstraints, indent) + "\n"); else columnRows.append(filter.getColumnDefinitionHtml(generator, column, null, partOfForeignKey, showDataTypes, showConstraints, indent) + "\n"); } catch (SQLException e) { throw new HibernateDiagramGeneratorException(e); } catch (NamingException e) { throw new HibernateDiagramGeneratorException(e); } } else hidden++; } int colSpan = 1; if (showDataTypes) colSpan++; if (showConstraints) colSpan++; StringBuffer tableNodeLabel = new StringBuffer( "<<TABLE " + filter.getEntityTableHtmlAttributes(generator, pclass) + ">\n"); tableNodeLabel.append(" <TR><TD COLSPAN=\"" + colSpan + "\" " + filter.getTableNameCellHtmlAttributes(generator, pclass) + ">" + table.getName() + "</TD></TR>\n"); if (primaryKeyRows.length() > 0) tableNodeLabel.append(primaryKeyRows); if (childKeyRows.length() > 0) tableNodeLabel.append(childKeyRows); tableNodeLabel.append(columnRows); if (hidden > 0) tableNodeLabel.append( " <TR><TD COLSPAN=\"" + colSpan + "\">(" + hidden + " columns not shown)</TD></TR>\n"); tableNodeLabel.append(" </TABLE>>"); GraphvizDiagramNode result = new GraphvizDiagramNode(generator.getGraphvizDiagramGenerator(), table.getName()); result.setLabel(tableNodeLabel.toString()); result.setShape("plaintext"); result.setFontName("Helvetica"); return result; }
From source file:org.jboss.tools.hibernate.ui.view.HibernateUtils.java
License:Open Source License
@SuppressWarnings("unchecked") public static boolean isForeignKey(Column column) { Table table = getTable(column);//from w ww . java2 s . c o m if (table != null) { Iterator<ForeignKey> iter = table.getForeignKeyIterator(); while (iter.hasNext()) { ForeignKey fk = iter.next(); if (fk.containsColumn(column)) { return true; } } } return false; }
From source file:org.sns.tool.hibernate.struct.impl.DefaultTableStructureNode.java
License:Open Source License
protected void createColumnDetail() { final TableStructureRules rules = owner.getRules(); final List allColumns = new ArrayList(); final Map columnDetailsByCategory = new HashMap(); final Table table = getTable(); final PrimaryKey primaryKeyColumns = table.getPrimaryKey(); for (final Iterator columns = table.getColumnIterator(); columns.hasNext();) { final Column column = (Column) columns.next(); ForeignKey partOfForeignKey = null; for (Iterator fkIterator = table.getForeignKeyIterator(); fkIterator.hasNext();) { final ForeignKey fKey = (ForeignKey) fkIterator.next(); if (fKey.containsColumn(column)) { partOfForeignKey = fKey; break; }//from www. j ava 2s . co m } final ColumnDetail detail; if (primaryKeyColumns.containsColumn(column)) detail = new DefaultColumnDetail(this, column, primaryKeyColumns, partOfForeignKey); else detail = new DefaultColumnDetail(this, column, null, partOfForeignKey); allColumns.add(detail); final ColumnCategory category = detail.getColumnCategory(); if (category != null) { List list = (List) columnDetailsByCategory.get(category); if (list == null) { list = new ArrayList(); columnDetailsByCategory.put(category, list); } list.add(detail); } } this.allColumns = (ColumnDetail[]) allColumns.toArray(new ColumnDetail[allColumns.size()]); this.columnDetailsByCategory = new HashMap(); for (final Iterator i = columnDetailsByCategory.entrySet().iterator(); i.hasNext();) { final Map.Entry entry = (Map.Entry) i.next(); final List list = (List) entry.getValue(); final ColumnDetail[] categoryColumns = (ColumnDetail[]) list.toArray(new ColumnDetail[list.size()]); this.columnDetailsByCategory.put(entry.getKey(), categoryColumns); } }