package diskCacheV111.vehicles; import com.google.common.base.MoreObjects; import javax.security.auth.Subject; import dmg.cells.nucleus.CellAddressCore; import org.dcache.auth.Subjects; public class DoorRequestInfoMessage extends PnfsFileInfoMessage { private long _transactionTime; private String _client = "unknown"; private String _clientChain = "unknown"; private static final long serialVersionUID = 2469895982145157834L; private String _transferPath; public DoorRequestInfoMessage(CellAddressCore address) { this(address, "request"); } public DoorRequestInfoMessage(CellAddressCore address, String action) { super(action, "door", address, null); } public void setTransactionDuration(long duration) { _transactionTime = duration; } public long getTransactionDuration() { return _transactionTime; } @Override public String toString() { return "DoorRequestInfoMessage{" + "transactionTime=" + _transactionTime + ", client='" + _client + '\'' + ", clientChain='" + _clientChain + '\'' + ", transferPath='" + _transferPath + '\'' + "} " + super.toString(); } public String getClient() { return _client; } public void setClient(String client) { _client = client; } public void setClientChain(String chain) { _clientChain = chain; } public String getClientChain() { return _clientChain; } public String getOwner() { Subject subject = getSubject(); String owner = Subjects.getDn(subject); if (owner == null) { owner = Subjects.getUserName(subject); } return owner; } public int getGid() { long[] gids = Subjects.getGids(getSubject()); return (gids.length > 0) ? (int) gids[0] : -1; } public int getUid() { long[] uids = Subjects.getUids(getSubject()); return (uids.length > 0) ? (int) uids[0] : -1; } @Override public void accept(InfoMessageVisitor visitor) { visitor.visit(this); } public String getTransferPath() { return _transferPath != null ? _transferPath : getBillingPath(); } public void setTransferPath(String path) { _transferPath = path; } }