@Override public BaseEncoding omitPadding() { return delegate.omitPadding().withSeparator(separator, afterEveryChars); }
@Override protected String getEncodedValue(String value, boolean omitPadding) { BaseEncoding encoding = BaseEncoding.base16(); encoding = omitPadding ? encoding.omitPadding() : encoding; return encoding.encode(value.getBytes(StandardCharsets.UTF_8)); }
@Override protected String getEncodedValue(String value, boolean omitPadding) { BaseEncoding encoding = BaseEncoding.base16(); encoding = omitPadding ? encoding.omitPadding() : encoding; return new String(encoding.decode(value), StandardCharsets.UTF_8); }
@Override protected String getEncodedValue(String value, boolean omitPadding) { BaseEncoding encoding = BaseEncoding.base64(); encoding = omitPadding ? encoding.omitPadding() : encoding; return encoding.encode(value.getBytes(StandardCharsets.UTF_8)); }
@Override protected String getEncodedValue(String value, boolean omitPadding) { BaseEncoding encoding = BaseEncoding.base64(); encoding = omitPadding ? encoding.omitPadding() : encoding; return new String(encoding.decode(value), StandardCharsets.UTF_8); }
@Override protected String getEncodedValue(String value, boolean omitPadding) { BaseEncoding encoding = BaseEncoding.base64Url(); encoding = omitPadding ? encoding.omitPadding() : encoding; return new String(encoding.decode(value), StandardCharsets.UTF_8); }
@Override protected String getEncodedValue(String value, boolean omitPadding) { BaseEncoding encoding = BaseEncoding.base32(); encoding = omitPadding ? encoding.omitPadding() : encoding; return new String(encoding.decode(value), StandardCharsets.UTF_8); }
@Override protected String getEncodedValue(String value, boolean omitPadding) { BaseEncoding encoding = BaseEncoding.base32(); encoding = omitPadding ? encoding.omitPadding() : encoding; return encoding.encode(value.getBytes(StandardCharsets.UTF_8)); }
@Override protected String getEncodedValue(String value, boolean omitPadding) { BaseEncoding encoding = BaseEncoding.base64Url(); encoding = omitPadding ? encoding.omitPadding() : encoding; return encoding.encode(value.getBytes(StandardCharsets.UTF_8)); }
@Override protected String getEncodedValue(String value, boolean omitPadding) { BaseEncoding encoding = BaseEncoding.base32Hex(); encoding = omitPadding ? encoding.omitPadding() : encoding; return new String(encoding.decode(value), StandardCharsets.UTF_8); }
@Override public BaseEncoding omitPadding() { return delegate.omitPadding().withSeparator(separator, afterEveryChars); }
@Override protected String getEncodedValue(String value, boolean omitPadding) { BaseEncoding encoding = BaseEncoding.base32Hex(); encoding = omitPadding ? encoding.omitPadding() : encoding; return encoding.encode(value.getBytes(StandardCharsets.UTF_8)); }
@Override public BaseEncoding omitPadding() { return delegate.omitPadding().withSeparator(separator, afterEveryChars); }
/** * In most cases we want to use identity equality for Trips. * However, in some cases we want a way to consistently identify trips across versions of a GTFS feed, when the * feed publisher cannot ensure stable trip IDs. Therefore we define some additional hash functions. * Hash collisions are theoretically possible, so these identifiers should only be used to detect when two * trips are the same with a high degree of probability. * An example application is avoiding double-booking of a particular bus trip for school field trips. * Using Murmur hash function. see http://programmers.stackexchange.com/a/145633 for comparison. * * @param trip a trip object within this pattern, or null to hash the pattern itself independent any specific trip. * @return the semantic hash of a Trip in this pattern as a printable String. * * TODO deal with frequency-based trips */ public String semanticHashString(Trip trip) { HashFunction murmur = Hashing.murmur3_32(); BaseEncoding encoder = BaseEncoding.base64Url().omitPadding(); StringBuilder sb = new StringBuilder(50); sb.append(encoder.encode(stopPattern.semanticHash(murmur).asBytes())); if (trip != null) { TripTimes tripTimes = scheduledTimetable.getTripTimes(trip); if (tripTimes == null) return null; sb.append(':'); sb.append(encoder.encode(tripTimes.semanticHash(murmur).asBytes())); } return sb.toString(); }
public void testToString() { assertEquals("BaseEncoding.base64().withPadChar('=')", base64().toString()); assertEquals("BaseEncoding.base32Hex().omitPadding()", base32Hex().omitPadding().toString()); assertEquals( "BaseEncoding.base32().lowerCase().withPadChar('$')", base32().lowerCase().withPadChar('$').toString()); assertEquals( "BaseEncoding.base16().withSeparator(\"\n\", 10)", base16().withSeparator("\n", 10).toString()); } }
public void testBase64OmitPadding() { BaseEncoding enc = base64().omitPadding(); testEncodingWithSeparators(enc, "", ""); testEncodingWithSeparators(enc, "f", "Zg"); testEncodingWithSeparators(enc, "fo", "Zm8"); testEncodingWithSeparators(enc, "foo", "Zm9v"); testEncodingWithSeparators(enc, "foob", "Zm9vYg"); testEncodingWithSeparators(enc, "fooba", "Zm9vYmE"); testEncodingWithSeparators(enc, "foobar", "Zm9vYmFy"); }
@GwtIncompatible // Reader/Writer public void testBase64StreamingOmitPadding() throws IOException { BaseEncoding enc = base64().omitPadding(); testStreamingEncodingWithSeparators(enc, "", ""); testStreamingEncodingWithSeparators(enc, "f", "Zg"); testStreamingEncodingWithSeparators(enc, "fo", "Zm8"); testStreamingEncodingWithSeparators(enc, "foo", "Zm9v"); testStreamingEncodingWithSeparators(enc, "foob", "Zm9vYg"); testStreamingEncodingWithSeparators(enc, "fooba", "Zm9vYmE"); testStreamingEncodingWithSeparators(enc, "foobar", "Zm9vYmFy"); }
String hashTableName(String rawName) { // Take 40 bits from the raw name byte[] bytes = Hashing.murmur3_128().hashString(rawName, StandardCharsets.UTF_8).asBytes(); return BaseEncoding.base32().omitPadding().encode(bytes); }
/** Generate a base64 URL-safe string from a given UUID. * * @param uuid The UUID to convert. * @return A base64 URL-safe string for the UUID. */ public static String asBase64(@Nonnull UUID uuid) { ByteBuffer bb = ByteBuffer.wrap(new byte[16]); bb.putLong(uuid.getMostSignificantBits()); bb.putLong(uuid.getLeastSignificantBits()); return BaseEncoding.base64Url().omitPadding().encode(bb.array()); }
private static String toId(String type, UUID uuid) { Writer idWriter = new StringWriter(); try (OutputStream buildStream = BaseEncoding.base32().omitPadding().encodingStream(idWriter)) { buildStream.write(Longs.toByteArray(uuid.getMostSignificantBits())); buildStream.write(Longs.toByteArray(uuid.getLeastSignificantBits())); buildStream.write(type.getBytes(Charsets.UTF_8)); } catch (IOException e) { throw Throwables.propagate(e); // Won't happen, StringWriter won't throw IOException } return idWriter.toString(); }