package org.araqne.logstorage;
import java.util.ArrayList;
import java.util.Collection;
import org.araqne.logstorage.TableLock.Purpose;
public class LockStatus {
boolean locked;
String owner;
int availableShared;
int reentrantCount;
Collection<Purpose> purposes;
public LockStatus(String owner, int availableShared, int reentrantCount, Collection<Purpose> purposes) {
this.locked = true;
this.owner = owner;
this.availableShared = availableShared;
this.reentrantCount = reentrantCount;
this.purposes = purposes;
}
public LockStatus(int availabledShared) {
this.locked = false;
this.owner = null;
this.availableShared = availabledShared;
this.reentrantCount = 0;
}
@Override
public String toString() {
return "LockStatus [locked=" + locked + ", owner=" + owner + ", availableShared="
+ availableShared + ", reentrantCount=" + reentrantCount + ", purposes=" + purposes
+ "]";
}
public boolean isLocked() {
return locked;
}
public Object getOwner() {
return owner;
}
public int getAvailableShared() {
return availableShared;
}
public int getReentrantCount() {
return reentrantCount;
}
public Collection<String> getPurposes() {
ArrayList<String> purposeList = new ArrayList<String>();
if (purposes == null)
return purposeList;
for (Purpose p: purposes) {
purposeList.add(p.toString());
}
return purposeList;
}
}