1 package org.sourceforge.jemm.database.persistent.berkeley;
2
3 import com.sleepycat.persist.model.Entity;
4 import com.sleepycat.persist.model.PrimaryKey;
5 import com.sleepycat.persist.model.Relationship;
6 import com.sleepycat.persist.model.SecondaryKey;
7
8 import org.sourceforge.jemm.database.ClientId;
9 import org.sourceforge.jemm.database.ClientThreadId;
10 import org.sourceforge.jemm.types.ID;
11
12 @Entity
13 public class ClientLockEntry {
14
15 @PrimaryKey
16 ClientLockKey key;
17
18 @SecondaryKey(relate=Relationship.MANY_TO_ONE)
19 String clientId;
20
21 String threadId;
22 long objectId;
23
24 public ClientLockEntry() {}
25
26 public ClientLockEntry(ClientThreadId clientThreadId,ID objectId) {
27 key = new ClientLockKey(clientThreadId,objectId);
28 this.clientId = clientThreadId.getClientId().getInternalRep();
29 this.threadId = clientThreadId.getThreadId();
30 this.objectId = objectId.getIDValue();
31 }
32
33 public ClientId getClientId() {
34 return new ClientId(clientId);
35 }
36
37 public ID getObjectId() {
38 return new ID(objectId);
39 }
40
41 public ClientThreadId getClientThreadId() {
42 return new ClientThreadId(getClientId(),threadId);
43 }
44 }