Project

General

Profile

1
package eu.dnetlib.enabling.database;
2

    
3
import java.util.Date;
4
import java.util.List;
5

    
6
import javax.xml.ws.wsaddressing.W3CEndpointReference;
7

    
8
import org.apache.commons.logging.Log;
9
import org.apache.commons.logging.LogFactory;
10
import org.springframework.beans.factory.annotation.Required;
11

    
12
import eu.dnetlib.enabling.database.objects.DnetDatabase;
13
import eu.dnetlib.enabling.database.resultset.SQLResultSetListenerFactory;
14
import eu.dnetlib.enabling.database.rmi.DatabaseException;
15
import eu.dnetlib.enabling.database.utils.DatabaseUtils;
16
import eu.dnetlib.enabling.is.registry.rmi.ISRegistryException;
17
import eu.dnetlib.enabling.is.sn.rmi.ISSNException;
18
import eu.dnetlib.enabling.resultset.ResultSetFactory;
19
import eu.dnetlib.enabling.resultset.client.ResultSetClientFactory;
20

    
21

    
22
public class DatabaseServiceCore {
23
	private DatabaseUtils dbUtils;
24
	private ResultSetFactory resultSetFactory;
25
	private SQLResultSetListenerFactory resultSetListenerFactory;
26
	private ResultSetClientFactory clientResultSetFactory;
27
	
28
	private static final Log log = LogFactory.getLog(DatabaseServiceImpl.class); // NOPMD by marko on 11/24/08 5:02 PM
29

    
30
	public List<DnetDatabase> listDatabases() throws DatabaseException {
31
		return dbUtils.listAllDatabases();
32
	}
33

    
34

    
35
	public void changeDatabaseStatus(String dbName, boolean managed) throws DatabaseException, ISRegistryException, ISSNException {
36
		log.info("Changing management status of db " + dbName + ", new value: " + managed);
37
			
38
		for (String tname : dbUtils.listCommonDBTables(dbName)) {
39
			if (managed) {
40
				dbUtils.prepareManagementOfTable(dbName, tname);
41
			} else {
42
				dbUtils.removeManagementOfTable(dbName, tname);
43
			}
44
		}
45
		
46
		dbUtils.setManaged(dbName, managed);
47
	}
48
	
49

    
50
	public void importFromResultset(String db, W3CEndpointReference epr) throws DatabaseException {
51
		importFromIterable(db, clientResultSetFactory.getClient(epr));
52
	}
53

    
54
	public void importFromIterable(String db, Iterable<String> iter) throws DatabaseException {
55
		dbUtils.importFromIterable(db, iter);
56
	}
57

    
58
		
59
	public W3CEndpointReference generateResultSet(String db, String t, String where) {
60
		return resultSetFactory.createResultSet(resultSetListenerFactory.createCondTableListener(db, t, where));
61
	}
62
	
63
	public W3CEndpointReference generateResultSet(String db, String t, Date from, Date until) {
64
		return resultSetFactory.createResultSet(resultSetListenerFactory.createLoggedTableListener(db, t, from, until));
65
	}
66
	
67
	public W3CEndpointReference generateResultSet(String db, String sql) {
68
		return resultSetFactory.createResultSet(resultSetListenerFactory.createSQLListener(db, sql));
69
	}
70

    
71
	public W3CEndpointReference generateResultsetWithSize(String db, String sql, String sqlForSize) {
72
		return resultSetFactory.createResultSet(resultSetListenerFactory.createSQLListenerWithSize(db, sql, sqlForSize));
73
	}
74
	
75
	@Required
76
	public void setDbUtils(DatabaseUtils dbUtils) {
77
		this.dbUtils = dbUtils;
78
	}
79

    
80
	public DatabaseUtils getDbUtils() {
81
		return dbUtils;
82
	}
83
	
84
	@Required
85
	public void setResultSetFactory(ResultSetFactory resultSetFactory) {
86
		this.resultSetFactory = resultSetFactory;
87
	}
88
	
89
	public ResultSetFactory getResultSetFactory() {
90
		return resultSetFactory;
91
	}
92

    
93
	@Required
94
	public void setClientResultSetFactory(ResultSetClientFactory clientResultSetFactory) {
95
		this.clientResultSetFactory = clientResultSetFactory;
96
	}
97

    
98
	public ResultSetClientFactory getClientResultSetFactory() {
99
		return clientResultSetFactory;
100
	}
101

    
102
	@Required
103
	public void setResultSetListenerFactory(SQLResultSetListenerFactory resultSetListenerFactory) {
104
		this.resultSetListenerFactory = resultSetListenerFactory;
105
	}
106

    
107
	public SQLResultSetListenerFactory getResultSetListenerFactory() {
108
		return resultSetListenerFactory;
109
	}
110

    
111
}
(4-4/7)