blob: 7e429e20af80a8399f70a2b5503233fca0469325 [file] [log] [blame]
package org.onosproject.incubator.net.resource.label;
import java.util.Collection;
import java.util.Objects;
import org.onosproject.net.DeviceId;
import com.google.common.base.MoreObjects;
import com.google.common.collect.ImmutableSet;
/**
* Represents for a label request.
*/
public class LabelResourceRequest {
private final DeviceId deviceId;
private final Type type;
private final long applyNum;
private ImmutableSet<LabelResource> releaseCollection;
/**
* Creates LabelResourceRequest object.
* @param deviceId device identifier
* @param type request type
* @param applyNum apply the number of labels
* @param releaseCollection Set of released label
*/
public LabelResourceRequest(DeviceId deviceId,
Type type,
long applyNum,
ImmutableSet<LabelResource> releaseCollection) {
this.deviceId = deviceId;
this.type = type;
this.applyNum = applyNum;
this.releaseCollection = releaseCollection;
}
/**
* Returns a device id.
* @return DeviceId
*/
public DeviceId deviceId() {
return deviceId;
}
/**
* Returns request type.
* @return Type
*/
public Type type() {
return type;
}
/**
* Returns apply label number.
* @return label number
*/
public long applyNum() {
return applyNum;
}
/**
* Returns the collection of release labels.
* @return Collection of DefaultLabelResource
*/
public Collection<LabelResource> releaseCollection() {
return releaseCollection;
}
/**
* Request type.
*/
public enum Type {
APPLY, //apple label request
RELEASE //release label request
}
@Override
public int hashCode() {
return Objects.hash(this.deviceId, this.applyNum, this.type,
this.releaseCollection);
}
@Override
public boolean equals(Object obj) {
if (obj instanceof LabelResourceRequest) {
LabelResourceRequest that = (LabelResourceRequest) obj;
return Objects.equals(this.deviceId, that.deviceId)
&& Objects.equals(this.applyNum, that.applyNum)
&& Objects.equals(this.type, that.type)
&& Objects.equals(this.releaseCollection,
that.releaseCollection);
}
return false;
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this).add("deviceId", this.deviceId)
.add("applyNum", this.applyNum).add("type", this.type)
.add("releaseCollection", this.releaseCollection).toString();
}
}