blob: 673ce4b15170af8b4bd709b92346a3d74d615da5 [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package io.v.todos.persistence.syncbase;
import com.google.common.collect.Range;
public final class IdAlphabets {
private IdAlphabets() {
}
public static final IdAlphabet
COLLECTION_ID = fromDigitMappings(
DigitMappings.fromRangeSet(
Range.closed('0', '9'),
Range.closed('A', 'Z'),
Range.singleton('_'),
Range.closed('a', 'z')),
DigitMappings.fromRangeSet(
Range.closed('A', 'Z'),
Range.closed('a', 'z'))),
ROW_NAME = fromDigitMapping(DigitMappings.ALL);
public static IdAlphabet fromDigitMapping(final DigitMapping digitMapping) {
return fromDigitMappings(digitMapping, digitMapping);
}
public static IdAlphabet fromDigitMappings(final DigitMapping digitMapping,
final DigitMapping leadingDigitMapping) {
return new IdAlphabet() {
@Override
public char encodeDigit(int digit) {
return digitMapping.encode(digit);
}
@Override
public int decodeDigit(char encoded) {
return digitMapping.decode(encoded);
}
@Override
public char encodeLeadingDigit(int digit) {
return leadingDigitMapping.encode(digit);
}
@Override
public int decodeLeadingDigit(char encoded) {
return leadingDigitMapping.decode(encoded);
}
@Override
public int radix() {
return digitMapping.radix();
}
@Override
public int leadingRadix() {
return leadingDigitMapping.radix();
}
};
}
}