package org.dcache.pinmanager; import java.util.Date; import java.util.EnumSet; import diskCacheV111.util.PnfsId; import diskCacheV111.vehicles.Message; import diskCacheV111.vehicles.PoolMgrSelectReadPoolMsg; import diskCacheV111.vehicles.ProtocolInfo; import org.dcache.namespace.FileAttribute; import org.dcache.pinmanager.model.Pin; import org.dcache.vehicles.FileAttributes; import static com.google.common.base.Preconditions.checkNotNull; import static org.dcache.namespace.FileAttribute.PNFSID; public class PinManagerPinMessage extends Message { private static final long serialVersionUID = -146552359952271936L; private FileAttributes _fileAttributes; private final ProtocolInfo _protocolInfo; private long _lifetime; private long _pinId; private String _pool; private final String _requestId; private Date _expirationTime; public PinManagerPinMessage(FileAttributes fileAttributes, ProtocolInfo protocolInfo, String requestId, long lifetime) { _fileAttributes = checkNotNull(fileAttributes); _protocolInfo = checkNotNull(protocolInfo); _requestId = requestId; _lifetime = lifetime; } public String getRequestId() { return _requestId; } public void setLifetime(long lifetime) { _lifetime = lifetime; } public long getLifetime() { return _lifetime; } public PnfsId getPnfsId() { return _fileAttributes.getPnfsId(); } public FileAttributes getFileAttributes() { return _fileAttributes; } public void setFileAttributes(FileAttributes attributes) { _fileAttributes = checkNotNull(attributes); } public ProtocolInfo getProtocolInfo() { return _protocolInfo; } public String getPool() { return _pool; } public void setPool(String pool) { _pool = pool; } public long getPinId() { return _pinId; } public void setPinId(long pinId) { _pinId = pinId; } public void setExpirationTime(Date expirationTime) { _expirationTime = expirationTime; } public Date getExpirationTime() { return _expirationTime; } public void setPin(Pin pin) { setPool(pin.getPool()); setPinId(pin.getPinId()); setExpirationTime(pin.getExpirationTime()); } @Override public String toString() { return "PinManagerPinMessage["+_fileAttributes + "," + _protocolInfo + "," + _lifetime + "]"; } public static EnumSet<FileAttribute> getRequiredAttributes() { EnumSet<FileAttribute> attributes = EnumSet.of(PNFSID); attributes.addAll(PoolMgrSelectReadPoolMsg.getRequiredAttributes()); return attributes; } }