public class ArchiveUtils extends Object
| Modifier and Type | Field and Description |
|---|---|
static String |
GZIP_SUFFIX
suffix to recognize gzipped files
|
protected static String |
LAST_TIMESTAMP14 |
protected static String |
LAST_TIMESTAMP17 |
protected static long |
LAST_UNIQUE_NOW14 |
protected static long |
LAST_UNIQUE_NOW17 |
static int |
MAX_INT_CHAR_WIDTH |
static Set<String> |
TLDS |
static String |
VERSION |
| Constructor and Description |
|---|
ArchiveUtils() |
| Modifier and Type | Method and Description |
|---|---|
static String |
addImpliedHttpIfNecessary(String u)
Given a string that may be a plain host or host/path (without
URI scheme), add an implied http:// if necessary.
|
static boolean |
byteArrayEquals(byte[] lhs,
byte[] rhs)
check that two byte arrays are equal.
|
static long |
byteArrayIntoLong(byte[] bytearray) |
static long |
byteArrayIntoLong(byte[] bytearray,
int offset)
Byte array into long.
|
static void |
closeQuietly(Object input) |
static void |
continueCheck()
Perform checks as to whether normal execution should proceed.
|
static String |
dateToTimestamp(String input)
Convert a user-entered date into a timestamp
|
static String |
doubleToString(double val,
int maxFractionDigits)
Converts a double to a string.
|
static String |
doubleToString(double val,
int maxFractionDigits,
int minFractionDigits) |
static String |
formatBytesForDisplay(long amount)
Takes a byte size and formats it for display with 'friendly' units.
|
static String |
formatMillisecondsToConventional(long time)
Convert milliseconds value to a human-readable duration
|
static String |
formatMillisecondsToConventional(long duration,
int unitCount)
Convert milliseconds value to a human-readable duration of
mixed units, using units no larger than days.
|
static String |
get12DigitDate()
Utility function for creating arc-style date stamps
in the format yyyyMMddHHmm.
|
static String |
get12DigitDate(Date d) |
static String |
get12DigitDate(long date)
Utility function for creating arc-style date stamps
in the format yyyyMMddHHmm.
|
static String |
get14DigitDate()
Utility function for creating arc-style date stamps
in the format yyyyMMddHHmmss.
|
static String |
get14DigitDate(Date d) |
static String |
get14DigitDate(long date)
Utility function for creating arc-style date stamps
in the format yyyyMMddHHmmss.
|
static String |
get17DigitDate()
Utility function for creating arc-style date stamps
in the format yyyMMddHHmmssSSS.
|
static String |
get17DigitDate(Date date) |
static String |
get17DigitDate(long date)
Utility function for creating arc-style date stamps
in the format yyyyMMddHHmmssSSS.
|
static BufferedReader |
getBufferedReader(File source)
Get a BufferedReader on the crawler journal given
TODO: move to a general utils class
|
static BufferedReader |
getBufferedReader(URL source)
Get a BufferedReader on the crawler journal given.
|
static Date |
getDate(String d)
Parses an ARC-style date.
|
static Date |
getDate(String d,
Date defaultDate)
A version of getDate which returns the default instead of throwing an exception if parsing fails
|
static String |
getLog14Date()
Utility function for creating log timestamps, in
W3C/ISO8601 format, assuming UTC.
|
static String |
getLog14Date(Date date)
Utility function for creating log timestamps, in
W3C/ISO8601 format, assuming UTC.
|
static String |
getLog14Date(long date)
Utility function for creating log timestamps, in
W3C/ISO8601 format, assuming UTC.
|
static String |
getLog17Date()
Utility function for creating log timestamps, in
W3C/ISO8601 format, assuming UTC.
|
static String |
getLog17Date(long date)
Utility function for creating log timestamps, in
W3C/ISO8601 format, assuming UTC.
|
static Date |
getSecondsSinceEpoch(String timestamp) |
static String |
getUnique14DigitDate()
Utility function for creating UNIQUE-from-this-class
arc-style date stamps in the format yyyMMddHHmmss.
|
static String |
getUnique17DigitDate()
Utility function for creating UNIQUE-from-this-class
arc-style date stamps in the format yyyMMddHHmmssSSS.
|
static byte[] |
gzip(byte[] bytes)
Gzip passed bytes.
|
static boolean |
isGzipped(InputStream is)
Tests passed stream is gzip stream by reading in the HEAD.
|
static boolean |
isTld(String dom)
Return whether the given string represents a known
top-level-domain (like "com", "org", etc.) per IANA
as of 20100419
|
static void |
longIntoByteArray(long l,
byte[] array,
int offset)
Copy the raw bytes of a long into a byte array, starting at
the specified offset.
|
static String |
padTo(int i,
int pad)
Convert an
int to a String, and pad it to
pad spaces. |
static String |
padTo(String s,
int pad)
Pad the given
String to pad characters wide
by pre-pending spaces. |
static String |
padTo(String s,
int pad,
char padChar)
Pad the given
String to pad characters wide
by pre-pending padChar. |
static Date |
parse12DigitDate(String date)
Utility function for parsing arc-style date stamps
in the format yyyMMddHHmm.
|
static Date |
parse14DigitDate(String date)
Utility function for parsing arc-style date stamps
in the format yyyMMddHHmmss.
|
static Date |
parse14DigitISODate(String datetime,
Date defaultVal) |
static Date |
parse17DigitDate(String date)
Utility function for parsing arc-style date stamps
in the format yyyMMddHHmmssSSS.
|
static String |
prettyString(Map<?,?> map)
Provide a improved String of a Map's entries
|
static String |
prettyString(Object obj)
Enhance given object's default String display for appearing
nested in a pretty Map String.
|
static String |
prettyString(Object[] array)
Provide a slightly-improved String of Object[]
|
static int |
readFully(InputStream input,
byte[] buf)
Read stream into buf until EOF or buf full.
|
static String |
secondsSinceEpoch(String timestamp) |
static boolean |
startsWith(byte[] array,
byte[] prefix)
Verify that the array begins with the prefix.
|
static String |
zeroPadInteger(int i) |
public static final String VERSION
public static int MAX_INT_CHAR_WIDTH
protected static long LAST_UNIQUE_NOW17
protected static String LAST_TIMESTAMP17
protected static long LAST_UNIQUE_NOW14
protected static String LAST_TIMESTAMP14
public static final String GZIP_SUFFIX
public static String get17DigitDate()
public static String getUnique17DigitDate()
public static String get14DigitDate()
public static String getUnique14DigitDate()
public static String get12DigitDate()
public static String getLog17Date()
public static String getLog17Date(long date)
date - Date to format.public static String getLog14Date()
public static String getLog14Date(long date)
date - long timestamp to format.public static String getLog14Date(Date date)
date - Date to format.public static String get17DigitDate(long date)
date - milliseconds since epocpublic static String get14DigitDate(long date)
date - milliseconds since epocpublic static String get12DigitDate(long date)
date - milliseconds since epocpublic static Date getDate(String d, Date defaultDate)
d - defaultDate - ParseExceptionpublic static Date getDate(String d) throws ParseException
A - 4-17 digit date in ARC style (yyyy to
yyyyMMddHHmmssSSS) formatting.ParseExceptionpublic static String dateToTimestamp(String input)
input - public static Date parse17DigitDate(String date) throws ParseException
date - an arc-style formatted date stampParseException - if the inputstring was malformedpublic static Date parse14DigitDate(String date) throws ParseException
date - an arc-style formatted date stampParseException - if the inputstring was malformedpublic static Date parse12DigitDate(String date) throws ParseException
date - an arc-style formatted date stampParseException - if the inputstring was malformedpublic static String secondsSinceEpoch(String timestamp) throws ParseException
timestamp - A 14-digit timestamp or the suffix for a 14-digit
timestamp: E.g. '20010909014640' or '20010101' or '1970'.ParseExceptionpublic static Date getSecondsSinceEpoch(String timestamp) throws ParseException
timestamp - A 14-digit timestamp or the suffix for a 14-digit
timestamp: E.g. '20010909014640' or '20010101' or '1970'.ParseExceptionsecondsSinceEpoch(String)public static String zeroPadInteger(int i)
i - Integer to add prefix of zeros too. If passed
2005, will return the String 0000002005. String
width is the width of Integer.MAX_VALUE as a string (10
digits).i.public static String padTo(int i, int pad)
int to a String, and pad it to
pad spaces.i - the intpad - the width to pad to.public static String padTo(String s, int pad)
String to pad characters wide
by pre-pending spaces. s should not be null.
If s is already wider than pad no change is
done.s - the String to padpad - the width to pad to.public static String padTo(String s, int pad, char padChar)
String to pad characters wide
by pre-pending padChar.
s should not be null. If s is
already wider than pad no change is done.s - the String to padpad - the width to pad to.padChar - The pad character to use.public static boolean byteArrayEquals(byte[] lhs,
byte[] rhs)
null.lhs - a byte arrayrhs - another byte array.true if they are both equal (or both
null)public static String doubleToString(double val, int maxFractionDigits)
val - The double to convertprecision - How many characters to include after '.'public static String doubleToString(double val, int maxFractionDigits, int minFractionDigits)
public static String formatBytesForDisplay(long amount)
This involves converting it to the largest unit (of B, KiB, MiB, GiB, TiB) for which the amount will be > 1.
Additionally, at least 2 significant digits are always displayed.
Negative numbers will be returned as '0 B'.
amount - the amount of bytespublic static String formatMillisecondsToConventional(long time)
time - timepublic static String formatMillisecondsToConventional(long duration, int unitCount)
duration - unitCount - how many significant units to show, at most
for example, a value of 2 would show days+hours or hours+seconds
but not hours+second+millisecondstimepublic static void longIntoByteArray(long l,
byte[] array,
int offset)
l - array - offset - public static long byteArrayIntoLong(byte[] bytearray)
public static long byteArrayIntoLong(byte[] bytearray,
int offset)
bytearray - Array to convert to a long.offset - Offset into array at which we start decoding the long.array beginning at
offset offset.longIntoByteArray(long, byte[], int)public static String addImpliedHttpIfNecessary(String u)
u - string to evaluatepublic static boolean startsWith(byte[] array,
byte[] prefix)
array - prefix - public static String prettyString(Object obj)
obj - Object to prettifypublic static String prettyString(Map<?,?> map)
Map - public static String prettyString(Object[] array)
Object[] - public static boolean isTld(String dom)
dom - candidate stringpublic static void closeQuietly(Object input)
public static void continueCheck()
throws InterruptedException
InterruptedExceptionpublic static int readFully(InputStream input, byte[] buf) throws IOException
input - buf - IOExceptionpublic static BufferedReader getBufferedReader(File source) throws IOException
source - File journalIOExceptionpublic static BufferedReader getBufferedReader(URL source) throws IOException
source - URL journalIOExceptionpublic static byte[] gzip(byte[] bytes)
throws IOException
bytes - What to gzip.IOExceptionpublic static boolean isGzipped(InputStream is) throws IOException
is - An InputStream.IOExceptionCopyright © 2015 The International Internet Preservation Consortium. All Rights Reserved.