Example usage for org.hibernate.mapping PrimaryKey containsColumn

List of usage examples for org.hibernate.mapping PrimaryKey containsColumn

Introduction

In this page you can find the example usage for org.hibernate.mapping PrimaryKey containsColumn.

Prototype

public boolean containsColumn(Column column) 

Source Link

Usage

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;
                    }// ww w. ja v  a  2  s.c om
                }

                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.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;
            }//  w  w w.j a  v a 2s  .c o 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);
    }
}