@Override public org.restlet.data.Range getRange() { return getWrappedRepresentation().getRange(); }
/** * Constructor. * * @param wrappedRepresentation * The wrapped representation with a complete content. * @param range * The range to expose. */ public RangeRepresentation(Representation wrappedRepresentation, Range range) { super(wrappedRepresentation); if (wrappedRepresentation.getRange() != null) { throw new IllegalArgumentException( "The wrapped representation must not have a range set."); } setRange(range); }
/** * Returns the size effectively available. This returns the same value as {@link Representation#getSize()} if no * range is defined, otherwise it * returns the size of the range using {@link Range#getSize()}. * * @param representation * The representation to evaluate. * @return The available size. */ public static long getAvailableSize(Representation representation) { Range range = representation.getRange(); if (range == null || !isBytesRange(range)) { return representation.getSize(); } else if (range.getSize() != Range.SIZE_MAX) { if (representation.hasKnownSize()) { return Math.min(range.getIndex() + range.getSize(), representation.getSize()) - range.getIndex(); } else { return Representation.UNKNOWN_SIZE; } } else if (representation.hasKnownSize()) { if (range.getIndex() != Range.INDEX_LAST) { return representation.getSize() - range.getIndex(); } return representation.getSize(); } return Representation.UNKNOWN_SIZE; }
Range responseRange = response.getEntity().getRange(); boolean rangedEntity = responseRange != null && isBytesRange(responseRange);