private int countTableRows(String tableName) { int tableRows = 0; if (isValidTable(tableName)) { ResultSet rs = null; try { rs = executeTableQuery(tableName); int rsRowCount = ResultSetTranslator.getRowCount(rs); if (rsRowCount > 0) { tableRows += rsRowCount; } rs.close(); } catch (SQLException e) { final String msg = "Error doing rowCount on table " + this.modelAndSchemaName + DELIM + tableName; //$NON-NLS-1$ MetamodelBuilderUtil.addStatus(status, IStatus.WARNING, msg, e); return tableRows; } return tableRows; } final String msg = "Table not found when counting rows: " + this.modelAndSchemaName + DELIM + tableName; //$NON-NLS-1$ MetamodelBuilderUtil.addStatus(status, IStatus.WARNING, msg); return tableRows; }
/* (non-Javadoc) * @see com.metamatrix.metamodels.builder.processor.Processor#getRecordCount(org.eclipse.core.runtime.IStatus) */ public int getRecordCount() { int totalRows = 0; // ---------------------------------------------- // Get the available Tables for this schema // ---------------------------------------------- List tableNames = null; try { tableNames = getSchemaTables(); } catch (SQLException e) { // Log the exception final String msg = "Error retrieving the tables for " + this.modelAndSchemaName; // $NON-NLS-1$ MetamodelBuilderUtil.addStatus(status, IStatus.ERROR, msg, e); return totalRows; } // ---------------------------------------------- // Count the table rows // ---------------------------------------------- if (tableNames != null) { for (int i = 0; i < processingOrder.length; i++) { if (tableNames.contains(processingOrder[i])) { int tableRows = countTableRows(processingOrder[i]); if (tableRows > 0) { totalRows += tableRows; } if (status.getSeverity() == IStatus.ERROR) { return totalRows; } } } } return totalRows; }
/* (non-Javadoc) * @see com.metamatrix.metamodels.builder.processor.Processor#process(org.eclipse.core.runtime.IProgressMonitor) */ public IStatus process(IProgressMonitor monitor) { if (monitor != null) { monitor.subTask("Processing Entities for " + this.modelAndSchemaName); // $NON-NLS-1$ } // ---------------------------------------------- // Get the available Tables for this schema // ---------------------------------------------- List tableNames = null; try { tableNames = getSchemaTables(); } catch (SQLException e) { // Log the exception final String msg = "Error retrieving the tables for " + this.modelAndSchemaName; // $NON-NLS-1$ MetamodelBuilderUtil.addStatus(status, IStatus.ERROR, msg, e); return status; } // ---------------------------------------------- // Process Tables in the specified order // ---------------------------------------------- if (tableNames != null) { for (int i = 0; i < processingOrder.length; i++) { if (tableNames.contains(processingOrder[i])) { processTable(processingOrder[i], monitor); if (status.getSeverity() == IStatus.ERROR) { return status; } } } } if (monitor != null && monitor.isCanceled()) { final String msg = "Entity Processing Cancelled"; // $NON-NLS-1$ MetamodelBuilderUtil.addStatus(status, IStatus.CANCEL, msg); return status; } return status; }
private void processTable(String tableName, IProgressMonitor monitor) { if (isValidTable(tableName)) { ResultSet rs = null; try { rs = executeTableQuery(tableName); List entityRecords = RecordGenerator.generateEntityRecords(rs, this.status, monitor); // Iterate for progress monitor Iterator iter = entityRecords.iterator(); while (iter.hasNext()) { this.entityBuilder.create((MetamodelEntityRecord) iter.next(), monitor); } rs.close(); } catch (SQLException e) { final String msg = "Error Processing Table " + this.modelAndSchemaName + DELIM + tableName; // $NON-NLS-1$ MetamodelBuilderUtil.addStatus(status, IStatus.ERROR, msg, e); return; } return; } final String msg = "Table not found: " + this.modelAndSchemaName + DELIM + tableName; // $NON-NLS-1$ MetamodelBuilderUtil.addStatus(status, IStatus.WARNING, msg); }