1 package org.vectomatic.file.impl;
2
3 import org.vectomatic.file.Blob;
4
5 public abstract class SliceImpl {
6 public abstract Blob slice(Blob blob);
7
8 public Blob slice(Blob blob, long start) {
9 return slice_(blob, toString(start));
10 }
11
12 public Blob slice(Blob blob, long start, long end) {
13 return slice_(blob, toString(start), toString(end));
14 }
15
16 public Blob slice(Blob blob, long start, long end, String contentType) {
17 return slice_(blob, toString(start), toString(end), contentType);
18 }
19
20 static String toString(long l) {
21 if (l > 9007199254740992L) {
22 throw new NumberFormatException();
23 }
24 return Long.toString(l);
25 }
26
27 abstract Blob slice_(Blob blob, String start);
28 abstract Blob slice_(Blob blob, String start, String end);
29 abstract Blob slice_(Blob blob, String start, String end, String contentType);
30 }