- java.lang.Object
-
- org.refcodes.numerical.BaseConverterBuilder
-
- All Implemented Interfaces:
org.refcodes.mixin.CharSetAccessor
,org.refcodes.mixin.CharSetAccessor.CharSetBuilder<BaseConverterBuilder>
,org.refcodes.mixin.CharSetAccessor.CharSetMutator
,org.refcodes.mixin.CharSetAccessor.CharSetProperty
,NumberBaseAccessor
,NumberBaseAccessor.NumberBaseBuilder<BaseConverterBuilder>
,NumberBaseAccessor.NumberBaseMutator
,NumberBaseAccessor.NumberBaseProperty
public class BaseConverterBuilder extends Object implements org.refcodes.mixin.CharSetAccessor.CharSetProperty, org.refcodes.mixin.CharSetAccessor.CharSetBuilder<BaseConverterBuilder>, NumberBaseAccessor.NumberBaseProperty, NumberBaseAccessor.NumberBaseBuilder<BaseConverterBuilder>
A number base converter from and to long values and which may also convert to and from byte arrays. You set a number base viawithNumberBase(int)
orsetNumberBase(int)
and you can convert forth and back withtoNumberBaseValue(long)
ortoNumber(String)
.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.refcodes.mixin.CharSetAccessor
org.refcodes.mixin.CharSetAccessor.CharSetBuilder<B extends org.refcodes.mixin.CharSetAccessor.CharSetBuilder<B>>, org.refcodes.mixin.CharSetAccessor.CharSetMutator, org.refcodes.mixin.CharSetAccessor.CharSetProperty
-
Nested classes/interfaces inherited from interface org.refcodes.numerical.NumberBaseAccessor
NumberBaseAccessor.NumberBaseBuilder<B extends NumberBaseAccessor.NumberBaseBuilder<B>>, NumberBaseAccessor.NumberBaseMutator, NumberBaseAccessor.NumberBaseProperty
-
-
Constructor Summary
Constructors Constructor Description BaseConverterBuilder()
Instantiates a new base converter builder impl.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static byte[]
asDecoded(String aEncodedData, int aNumberBase, char... aCharSet)
Decodes the given (number base encoded) data to a byte array as of the given number base and the charset for the value's digits.static String
asEncoded(byte[] aData, int aNumberBase, char... aCharSet)
Encodes the given bytes to aString
as of the given number base and the charset for the value's digits.protected static String
asVerboseString(byte[] aBytes)
char[]
getCharSet()
long
getNumber()
Retrieves the number from the number property.int
getNumberBase()
Retrieves the value from the number base property.String
getNumberBaseValue()
Retrieves the number base value from the number base value property.byte[]
getNumberData()
Retrieves the number from the number property.void
setCharSet(char[] aCharSet)
void
setNumber(long aNumber)
Sets the number for the number property.void
setNumberBase(int aNumberBase)
Sets the value for the number base property.void
setNumberBaseValue(String aNumberBaseValue)
Sets the number base value for the number base value property.void
setNumberData(byte[] aNumberData)
Sets the number for the number property.long
toNumber(String aNumberBaseValue)
Retrieves the number calculated from the provided number base value.String
toNumberBaseValue(byte[] aNumberData)
Retrieves the number base value calculated from the number.String
toNumberBaseValue(long aNumber)
Retrieves the number base value calculated from the number.byte[]
toNumberData(String aNumberBaseValue)
Retrieves the number calculated from the provided number base value.BaseConverterBuilder
withCharSet(char[] aCharSet)
BaseConverterBuilder
withNumber(long aNumber)
Sets the number for the number property.BaseConverterBuilder
withNumberBase(int aNumberBase)
Sets the number base for the number base property.BaseConverterBuilder
withNumberBaseValue(String aNumberBaseValue)
Sets the number base value for the number base value property.BaseConverterBuilder
withNumberData(byte[] aNumberData)
Sets the number for the number property.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.refcodes.numerical.NumberBaseAccessor.NumberBaseProperty
letNumberBase
-
-
-
-
Method Detail
-
getCharSet
public char[] getCharSet()
- Specified by:
getCharSet
in interfaceorg.refcodes.mixin.CharSetAccessor
-
setCharSet
public void setCharSet(char[] aCharSet)
- Specified by:
setCharSet
in interfaceorg.refcodes.mixin.CharSetAccessor.CharSetMutator
-
withCharSet
public BaseConverterBuilder withCharSet(char[] aCharSet)
- Specified by:
withCharSet
in interfaceorg.refcodes.mixin.CharSetAccessor.CharSetBuilder<BaseConverterBuilder>
-
setNumberBase
public void setNumberBase(int aNumberBase)
Sets the value for the number base property.- Specified by:
setNumberBase
in interfaceNumberBaseAccessor.NumberBaseMutator
- Parameters:
aNumberBase
- The value to be stored by the number base property.
-
getNumberBase
public int getNumberBase()
Retrieves the value from the number base property.- Specified by:
getNumberBase
in interfaceNumberBaseAccessor
- Returns:
- The name stored by the number base property.
-
toNumberBaseValue
public String toNumberBaseValue(long aNumber)
Retrieves the number base value calculated from the number. This method is to be side effect free in terms of the number (and the encoded result) is not part of the state for this instance (from the point of view of this method). For avoiding thread race conditions / side effects regarding the decoded data (and the encoded result), use this method instead of the combination ofwithNumberData(byte[])
withgetNumberBaseValue()
- Parameters:
aNumber
- The number to be encoded.- Returns:
- The number base value calculated from the number.
-
getNumber
public long getNumber()
Retrieves the number from the number property.- Returns:
- The number stored by the number property.
-
toNumber
public long toNumber(String aNumberBaseValue) throws IllegalArgumentException
Retrieves the number calculated from the provided number base value. This method is to be side effect free in terms of the number base value (and the decoded result) is not part of the state for this instance (from the point of view of this method). For avoiding thread race conditions / side effects regarding the encoded text (and the decoded result), use this method instead of the combination ofwithNumberBaseValue(String)
withgetNumberData()
.- Parameters:
aNumberBaseValue
- The number base value to be decoded.- Returns:
- The number decoded from the number base value.
- Throws:
IllegalArgumentException
- the illegal argument exception
-
setNumber
public void setNumber(long aNumber)
Sets the number for the number property.- Parameters:
aNumber
- The number to be stored by the number property.
-
getNumberBaseValue
public String getNumberBaseValue()
Retrieves the number base value from the number base value property.- Returns:
- The number base value stored by the number base value property.
-
setNumberBaseValue
public void setNumberBaseValue(String aNumberBaseValue)
Sets the number base value for the number base value property.- Parameters:
aNumberBaseValue
- The number base value to be stored by the number base value property.
-
getNumberData
public byte[] getNumberData()
Retrieves the number from the number property.- Returns:
- The number stored by the number property.
-
setNumberData
public void setNumberData(byte[] aNumberData)
Sets the number for the number property.- Parameters:
aNumberData
- The number to be stored by the number property.
-
toNumberBaseValue
public String toNumberBaseValue(byte[] aNumberData)
Retrieves the number base value calculated from the number. This method is to be side effect free in terms of the number (and the encoded result) is not part of the state for this instance (from the point of view of this method). For avoiding thread race conditions / side effects regarding the decoded data (and the encoded result), use this method instead of the combination ofwithNumberData(byte[])
withgetNumberBaseValue()
- Parameters:
aNumberData
- The number to be encoded.- Returns:
- The number base value calculated from the number.
-
toNumberData
public byte[] toNumberData(String aNumberBaseValue)
Retrieves the number calculated from the provided number base value. This method is to be side effect free in terms of the number base value (and the decoded result) is not part of the state for this instance (from the point of view of this method). For avoiding thread race conditions / side effects regarding the encoded text (and the decoded result), use this method instead of the combination ofwithNumberBaseValue(String)
withgetNumberData()
.- Parameters:
aNumberBaseValue
- The number base value to be decoded.- Returns:
- The number decoded from the number base value.
- Throws:
NumberFormatException
- the number format exception
-
withNumberBase
public BaseConverterBuilder withNumberBase(int aNumberBase)
Sets the number base for the number base property.- Specified by:
withNumberBase
in interfaceNumberBaseAccessor.NumberBaseBuilder<BaseConverterBuilder>
- Parameters:
aNumberBase
- The number base to be stored by the number base property.- Returns:
- The builder for applying multiple build operations.
-
withNumberBaseValue
public BaseConverterBuilder withNumberBaseValue(String aNumberBaseValue)
Sets the number base value for the number base value property.- Parameters:
aNumberBaseValue
- The number base value to be stored by the number base value property.- Returns:
- The builder for applying multiple build operations.
-
withNumberData
public BaseConverterBuilder withNumberData(byte[] aNumberData)
Sets the number for the number property.- Parameters:
aNumberData
- The number to be stored by the number property.- Returns:
- The builder for applying multiple build operations.
-
withNumber
public BaseConverterBuilder withNumber(long aNumber)
Sets the number for the number property.- Parameters:
aNumber
- The number to be stored by the number property.- Returns:
- The builder for applying multiple build operations.
-
asEncoded
public static String asEncoded(byte[] aData, int aNumberBase, char... aCharSet)
Encodes the given bytes to aString
as of the given number base and the charset for the value's digits.- Parameters:
aData
- The data to be encoded.aNumberBase
- The number base to be used for encoding.aCharSet
- The charset to be used for the digits of the targeted number base.- Returns:
- Returns the accordingly encoded data as a
String
.
-
asDecoded
public static byte[] asDecoded(String aEncodedData, int aNumberBase, char... aCharSet)
Decodes the given (number base encoded) data to a byte array as of the given number base and the charset for the value's digits.- Parameters:
aEncodedData
- The (number base encoded) data to be decoded.aNumberBase
- The number base to be used for decoding.aCharSet
- The charset to be used for the digits of the used number base.- Returns:
- Returns the accordingly decoded data .
-
asVerboseString
protected static String asVerboseString(byte[] aBytes)
-
-