KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > serversystem > User


1 package com.daffodilwoods.daffodildb.server.serversystem;
2
3 import java.util.*;
4
5 import com.daffodilwoods.daffodildb.server.datadictionarysystem.*;
6 import com.daffodilwoods.daffodildb.server.datadictionarysystem.information.*;
7 import com.daffodilwoods.database.resource.*;
8 import com.daffodilwoods.database.utility.*;
9 public class User implements _User {
10
11   String JavaDoc userName;
12   String JavaDoc password;
13   _ServerSystem serverSystem;
14   private TreeSet databases;
15   private TreeMap databaseInformationMap;
16
17   public User(String JavaDoc userName,_ServerSystem serverSystem,String JavaDoc password) {
18     this.userName = userName;
19     this.serverSystem = serverSystem;
20     this.password = password;
21     databaseInformationMap = new TreeMap(String.CASE_INSENSITIVE_ORDER);
22   }
23
24   public String JavaDoc getUserName() {
25     return userName;
26   }
27
28   /**
29    * use serverSystem to getAllDatabases;
30    * check if user exists in the database or not; if exists add the database to the result;
31    * cache the databases
32    * */

33
34   public ArrayList getAllDatabases() throws DException {
35     if(databases == null){
36       databases = new TreeSet(String.CASE_INSENSITIVE_ORDER);
37       ArrayList listOfDatabases = serverSystem.getAllDatabases(userName) ;
38       if(listOfDatabases != null)
39         databases.addAll(listOfDatabases );
40     }
41     return new ArrayList(databases);
42   }
43
44   public _Connection getConnection(String JavaDoc databaseName,Properties prop) throws DException{
45     prop.setProperty(_Server.USER,userName);
46     prop.setProperty(_Server.PASSWORD,password);
47     _Connection con = serverSystem.getConnection(databaseName,prop);
48     return con;
49   }
50
51   /**
52    * if database present in the databaseList, continue
53    * otherwise check for user existence in the database;
54    *
55    * */

56   public _DatabaseInformation getDatabaseInformation(String JavaDoc databaseName) throws DException {
57     if(databaseInformationMap.containsKey(databaseName))
58       return (_DatabaseInformation)databaseInformationMap.get(databaseName);
59     getAllDatabases();
60     if(!databases.contains(databaseName))
61       return null;
62     try{
63       _DataDictionary dic = serverSystem.getDataDictionary(databaseName);
64       DatabaseInformation databaseInformation = new DatabaseInformation(this,databaseName,dic);
65       databaseInformationMap.put(databaseName,databaseInformation);
66       return databaseInformation;
67     }catch(Exception JavaDoc ex){
68       P.pln(" problem in getting the database information ........ so returning null");
69       return null;
70     }
71   }
72
73   public ArrayList getAllSessions(String JavaDoc databaseName) throws DException {
74     return serverSystem.getAllSessions(databaseName);
75   }
76
77   public void createDatabase(String JavaDoc databaseName, Properties properties) throws DException{
78      serverSystem.createDatabase(databaseName,properties);
79   }
80
81   public void dropDatabase( String JavaDoc url ) throws DException {
82      _DatabaseInformation dbinf = (_DatabaseInformation)databaseInformationMap.remove(url);
83      if(dbinf != null){
84         dbinf.close();
85      }
86      serverSystem.dropDatabase(url, userName,password,url);
87   }
88
89   public void refersh(){
90     databases = null;
91     try {
92       Set set = databaseInformationMap.entrySet();
93       Iterator iter = set.iterator();
94       int i=1;
95       while (iter.hasNext()) {
96         ( (_DatabaseInformation) ( (Map.Entry) iter.next()).getValue()).close();
97       }
98     } catch (DException ex) {
99     }
100     databaseInformationMap = new TreeMap(String.CASE_INSENSITIVE_ORDER);
101 }
102
103   public void setUserName(String JavaDoc userName0){
104     userName = userName0;
105   }
106
107   public void setPassword(String JavaDoc passWord0){
108     password = passWord0;
109   }
110 }
111
Popular Tags