*) adding some functions to userDB.Entry

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@823 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
theli 2005-09-30 14:56:50 +00:00
parent ff1d3d0680
commit af7829df25

View File

@ -66,20 +66,20 @@ public class userDB {
private File userTableFile;
private int bufferkb;
public userDB(File robotsTableFile, int bufferkb) throws IOException {
this.userTableFile = robotsTableFile;
public userDB(File userTableFile, int bufferkb) throws IOException {
this.userTableFile = userTableFile;
this.bufferkb = bufferkb;
if (robotsTableFile.exists()) {
if (userTableFile.exists()) {
try {
this.userTable = new kelondroMap(new kelondroDyn(robotsTableFile, bufferkb * 1024));
this.userTable = new kelondroMap(new kelondroDyn(userTableFile, bufferkb * 1024));
} catch (kelondroException e) {
robotsTableFile.delete();
robotsTableFile.getParentFile().mkdirs();
this.userTable = new kelondroMap(new kelondroDyn(robotsTableFile, bufferkb * 1024, 128, 256));
userTableFile.delete();
userTableFile.getParentFile().mkdirs();
this.userTable = new kelondroMap(new kelondroDyn(userTableFile, bufferkb * 1024, 128, 256));
}
} else {
robotsTableFile.getParentFile().mkdirs();
this.userTable = new kelondroMap(new kelondroDyn(robotsTableFile, bufferkb * 1024, 128, 256));
userTableFile.getParentFile().mkdirs();
this.userTable = new kelondroMap(new kelondroDyn(userTableFile, bufferkb * 1024, 128, 256));
}
}
@ -131,9 +131,8 @@ public class userDB {
}
}
public Entry addEntry(String userName, HashMap userProps) {
public Entry createEntry(String userName, HashMap userProps) {
Entry entry = new Entry(userName,userProps);
addEntry(entry);
return entry;
}
@ -152,6 +151,9 @@ public class userDB {
public static final String USER_FIRSTNAME = "firstName";
public static final String USER_LASTNAME = "lastName";
public static final String USER_ADDRESS = "address";
public static final String LAST_ACCESS = "lastAccess";
public static final String TIME_USED = "timeUsed";
public static final String TIME_LIMIT = "timeLimit";
// this is a simple record structure that hold all properties of a user
private Map mem;
@ -187,6 +189,45 @@ public class userDB {
return (this.mem.containsKey(USER_ADDRESS)?(String)this.mem.get(USER_ADDRESS):null);
}
public Long getLastAccess() {
return (this.mem.containsKey(LAST_ACCESS)?Long.valueOf((String)this.mem.get(LAST_ACCESS)):null);
}
public long getTimeUsed() {
if (this.mem.containsKey(TIME_USED)) {
return Long.valueOf((String)this.mem.get(TIME_USED)).longValue();
}
try {
this.setProperty(TIME_USED,"0");
} catch (IOException e) {
e.printStackTrace();
}
return 0;
}
public long updateLastAccess(long timeStamp, boolean decrementTimeUsed) {
if (timeStamp < 0) throw new IllegalArgumentException();
Long lastAccess = this.getLastAccess();
long oldTimeUsed = getTimeUsed();
long newTimeUsed = oldTimeUsed;
if (decrementTimeUsed) {
if ((lastAccess == null)||((lastAccess != null)||(lastAccess.longValue()-timeStamp>1000))) {
this.mem.put(TIME_USED,new Long(newTimeUsed = ++oldTimeUsed));
}
}
this.mem.put(LAST_ACCESS,Long.toString(timeStamp));
try {
userDB.this.userTable.set(getUserName(), this.mem);
} catch(Exception e){
e.printStackTrace();
}
return newTimeUsed;
}
public String getMD5EncodedUserPwd() {
return (this.mem.containsKey(MD5ENCODED_USERPWD_STRING)?(String)this.mem.get(MD5ENCODED_USERPWD_STRING):null);
}
@ -195,6 +236,15 @@ public class userDB {
return this.mem;
}
public void setProperty(String propName, String newValue) throws IOException {
this.mem.put(propName, newValue);
userDB.this.userTable.set(getUserName(), this.mem);
}
public String getProperty(String propName, String defaultValue) {
return (this.mem.containsKey(propName)?(String)this.mem.get(propName):defaultValue);
}
public String toString() {
StringBuffer str = new StringBuffer();
str.append((this.userName==null)?"null":this.userName)