/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.portal.kernel.servlet;
import com.liferay.portal.kernel.util.StringBundler;
import com.liferay.portal.kernel.util.StringPool;
/**
* @author Juan González
*/
public class Range {
public Range(long start, long end, long total) {
_start = start;
_end = end;
_length = end - start + 1;
_total = total;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof Range)) {
return false;
}
Range range = (Range)obj;
if ((_end == range._end) && (_length == range._length) &&
(_start == range._start) && (_total == range._total)) {
return true;
}
return false;
}
public String getContentRange() {
StringBundler sb = new StringBundler(6);
sb.append("bytes ");
sb.append(getStart());
sb.append(StringPool.DASH);
sb.append(getEnd());
sb.append(StringPool.SLASH);
sb.append(getTotal());
return sb.toString();
}
public long getEnd() {
return _end;
}
public long getLength() {
return _length;
}
public long getStart() {
return _start;
}
public long getTotal() {
return _total;
}
@Override
public int hashCode() {
int result = 1;
result = _PRIME * result + (int)(_end ^ (_end >>> 32));
result = _PRIME * result + (int)(_length ^ (_length >>> 32));
result = _PRIME * result + (int)(_start ^ (_start >>> 32));
result = _PRIME * result + (int)(_total ^ (_total >>> 32));
return result;
}
public void setEnd(long end) {
_end = end;
}
public void setLength(long length) {
_length = length;
}
public void setStart(long start) {
_start = start;
}
public void setTotal(long total) {
_total = total;
}
private static final int _PRIME = 31;
private long _end;
private long _length;
private long _start;
private long _total;
}