blob: 01df840d278bba641b9028f958eafa1830d38bb7 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
/*******************************************************************************
* Copyright (c) 2004, 2007 Boeing.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Boeing - initial API and implementation
*******************************************************************************/
package org.eclipse.osee.database.schema.internal.callable;
import java.io.Writer;
import java.util.Map;
import java.util.Set;
import org.eclipse.osee.database.schema.DatabaseCallable;
import org.eclipse.osee.database.schema.internal.data.SchemaData;
import org.eclipse.osee.framework.database.IOseeDatabaseService;
import org.eclipse.osee.framework.database.core.IOseeStatement;
import org.eclipse.osee.logger.Log;
/**
* @author Roberto E. Escobar
*/
public class PrintTablesCallable extends DatabaseCallable<Object> {
private final Map<String, SchemaData> userConfig;
private final Writer writer;
public PrintTablesCallable(Log logger, IOseeDatabaseService dbService, Map<String, SchemaData> userConfig, Writer writer) {
super(logger, dbService);
this.userConfig = userConfig;
this.writer = writer;
}
@Override
public Object call() throws Exception {
Set<String> keys = userConfig.keySet();
for (String key : keys) {
SchemaData schemaData = userConfig.get(key);
Set<String> tables = schemaData.getTableMap().keySet();
for (String tableName : tables) {
printTable(tableName);
}
}
return null;
}
private void printTable(String tableName) throws Exception {
IOseeStatement chStmt = getDatabaseService().getStatement();
try {
chStmt.runPreparedQuery("select * from " + tableName);
int numberOfColumns = chStmt.getColumnCount();
StringBuilder builder = new StringBuilder();
builder.append("\nTable:\t");
builder.append(tableName);
builder.append("\n");
builder.append("Columns:\t");
for (int index = 1; index <= numberOfColumns; index++) {
builder.append(chStmt.getColumnName(index));
if (index + 1 <= numberOfColumns) {
builder.append(", ");
}
}
builder.append("\n");
writer.write(builder.toString());
builder.delete(0, builder.length());
while (chStmt.next()) {
builder.append("Data:\t");
for (int index = 1; index <= numberOfColumns; index++) {
builder.append(chStmt.getObject(index).toString());
if (index + 1 <= numberOfColumns) {
builder.append(", ");
}
}
builder.append("\n");
writer.write(builder.toString());
builder.delete(0, builder.length());
}
} finally {
chStmt.close();
}
}
}
|