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 }