Interface IEncodingFactory
-
- All Known Implementing Classes:
EncodingFactory
public interface IEncodingFactory
Interface for the EncodingFactory.Note on naming convention: normally the prefix
I
for interfaces is avoided in Java, in this particular case I decided to use it as the concrete classEncodingFactory
is the actual factory and the main access for encoding related information. This interface is used for connection specific factories (eg so the defaultEncoding is the connection character set).- Since:
- 3.0
- Author:
- Mark Rotteveel
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description Encoding
getDefaultEncoding()
EncodingDefinition
getDefaultEncodingDefinition()
Returns theEncodingDefinition
for the default platform character set.EncodingDefinition
getEncodingDefinition(java.lang.String firebirdEncodingName, java.lang.String javaCharsetAlias)
Gets or creates anEncodingDefinition
for the supplied Firebird encoding and Java charset.EncodingDefinition
getEncodingDefinitionByCharacterSetId(int firebirdCharacterSetId)
Looks up theEncodingDefinition
for the specified Firebird character set id.EncodingDefinition
getEncodingDefinitionByCharset(java.nio.charset.Charset charset)
Looks up anEncodingDefinition
for the JavaCharset
.EncodingDefinition
getEncodingDefinitionByCharsetAlias(java.lang.String charsetAlias)
Looks up theEncodingDefinition
by the specified Java character set name or alias.EncodingDefinition
getEncodingDefinitionByFirebirdName(java.lang.String firebirdEncodingName)
Looks up theEncodingDefinition
for the specified Firebird encoding name.Encoding
getEncodingForCharacterSetId(int firebirdCharacterSetId)
Gets anEncoding
for the specified Firebird character set id.Encoding
getEncodingForCharset(java.nio.charset.Charset charset)
Gets anEncoding
for the specified Java character set.Encoding
getEncodingForCharset(java.nio.charset.Charset charset, Encoding fallbackEncoding)
Gets anEncoding
for the specified Java character set.Encoding
getEncodingForCharsetAlias(java.lang.String charsetAlias)
Gets anEncoding
for the specified Java character set name or alias.Encoding
getEncodingForFirebirdName(java.lang.String firebirdEncodingName)
Gets anEncoding
for the specified Firebird encoding.<T extends DatatypeCoder>
TgetOrCreateDatatypeCoder(java.lang.Class<T> datatypeCoderClass)
Deprecated.will be removed in Jaybird 6 and replaced by<T extends DatatypeCoder> T getOrCreateDatatypeCoder(Class<T>, Function<IEncodingFactory, T>)
Encoding
getOrCreateEncodingForCharset(java.nio.charset.Charset charset)
Creates anEncoding
for the specified Java character set.IEncodingFactory
withDefaultEncodingDefinition(java.nio.charset.Charset charset)
IEncodingFactory
withDefaultEncodingDefinition(EncodingDefinition encodingDefinition)
Returns anIEncodingFactory
that usesencodingDefinition
as the default.
-
-
-
Method Detail
-
getDefaultEncoding
Encoding getDefaultEncoding()
- Returns:
- The
Encoding
forCharset.defaultCharset()
.
-
getDefaultEncodingDefinition
EncodingDefinition getDefaultEncodingDefinition()
Returns theEncodingDefinition
for the default platform character set.If the default character set is not supported by Jaybird, an instance of EncodingDefinition should be returned with Firebird encoding name
"NONE"
.- Returns:
- The
EncodingDefinition
forCharset.defaultCharset()
.
-
getEncodingDefinitionByFirebirdName
EncodingDefinition getEncodingDefinitionByFirebirdName(java.lang.String firebirdEncodingName)
Looks up theEncodingDefinition
for the specified Firebird encoding name.- Parameters:
firebirdEncodingName
- The Firebird encoding name (case-insensitive)- Returns:
- EncodingDefinition instance or
null
if the encoding name is unknown
-
getEncodingForFirebirdName
Encoding getEncodingForFirebirdName(java.lang.String firebirdEncodingName)
Gets anEncoding
for the specified Firebird encoding. If there is no known encoding for this name, or the loaded EncodingDefinition is information-only, then the defaultEncoding is used.- Parameters:
firebirdEncodingName
- The Firebird encoding name (case-insensitive)- Returns:
- Encoding instance (never null)
-
getEncodingDefinitionByCharacterSetId
EncodingDefinition getEncodingDefinitionByCharacterSetId(int firebirdCharacterSetId)
Looks up theEncodingDefinition
for the specified Firebird character set id.Implementations that do not know the connection character set should return
null
for the valueISCConstants.CS_dynamic
(= 127), as that is the indicator to use the connection character set.- Parameters:
firebirdCharacterSetId
- Firebird character set id- Returns:
- EncodingDefinition instance or
null
if the character set id is unknown or127
and this implementation doesn't know the connection character set.
-
getEncodingForCharacterSetId
Encoding getEncodingForCharacterSetId(int firebirdCharacterSetId)
Gets anEncoding
for the specified Firebird character set id. If there is no known encoding for this character set id (or if it is 127, seegetEncodingDefinitionByCharacterSetId(int)
), or the loaded EncodingDefinition is information-only, then the defaultEncoding will be used.- Parameters:
firebirdCharacterSetId
- The Firebird character set id- Returns:
- Encoding instance (never null)
-
getEncodingDefinitionByCharset
EncodingDefinition getEncodingDefinitionByCharset(java.nio.charset.Charset charset)
Looks up anEncodingDefinition
for the JavaCharset
.- Parameters:
charset
- The Java character set- Returns:
- EncodingDefinition instance or
null
if the character set is not mapped
-
getEncodingForCharset
Encoding getEncodingForCharset(java.nio.charset.Charset charset, Encoding fallbackEncoding)
Gets anEncoding
for the specified Java character set. If there is no known encoding for thisCharset
, or the loaded EncodingDefinition is information-only, then the fallbackEncoding will be used.- Parameters:
charset
- The Java character setfallbackEncoding
- The Encoding to use as fallback if no encoding is found (usually the connection encoding). Ifnull
, the defaultEncoding for the JVM is used.- Returns:
- Encoding instance (never null)
- See Also:
getOrCreateEncodingForCharset(java.nio.charset.Charset)
-
getEncodingForCharset
Encoding getEncodingForCharset(java.nio.charset.Charset charset)
Gets anEncoding
for the specified Java character set. If there is no known encoding for thisCharset
, or the loaded EncodingDefinition is information-only, then the defaultEncoding will be used.- Parameters:
charset
- The Java character set- Returns:
- Encoding instance (never null)
-
getOrCreateEncodingForCharset
Encoding getOrCreateEncodingForCharset(java.nio.charset.Charset charset)
Creates anEncoding
for the specified Java character set. If there is no known encoding for this charset, then an Encoding instance based on the charset is returned.In general the method
getEncodingForCharset(java.nio.charset.Charset, Encoding)
should be used.Don't confuse this method with
getEncodingForCharset(Charset)
, which falls back to the default encoding.- Parameters:
charset
- The Java character set- Returns:
- Encoding instance (never null)
- See Also:
getEncodingForCharset(java.nio.charset.Charset, Encoding)
-
getEncodingDefinitionByCharsetAlias
EncodingDefinition getEncodingDefinitionByCharsetAlias(java.lang.String charsetAlias)
Looks up theEncodingDefinition
by the specified Java character set name or alias.- Parameters:
charsetAlias
- Name (or alias) of the Java character set (case-insensitive)- Returns:
- EncodingDefinition instance or
null
if the character set name is not mapped
-
getEncodingForCharsetAlias
Encoding getEncodingForCharsetAlias(java.lang.String charsetAlias)
Gets anEncoding
for the specified Java character set name or alias. If there is no known encoding for this name, or the loaded EncodingDefinition is information-only, then the defaultEncoding will be used.- Parameters:
charsetAlias
- The Java character set name or alias- Returns:
- Encoding instance (never null)
-
getEncodingDefinition
EncodingDefinition getEncodingDefinition(java.lang.String firebirdEncodingName, java.lang.String javaCharsetAlias)
Gets or creates anEncodingDefinition
for the supplied Firebird encoding and Java charset.When
firebirdEncodingName
is not null andjavaCharsetAlias
is null, then the encoding definition as returned bygetEncodingDefinitionByFirebirdName(String)
is returned. For the reverse (firebirdEncodingName
is null andjavaCharsetAlias
isn't), the encoding definition as returned bygetEncodingDefinitionByCharsetAlias(String)
is returned.When both parameters are set, the result of
getEncodingDefinitionByFirebirdName(String)
is returned if the character set matches, otherwise a newDefaultEncodingDefinition
is created based on its information, but with the specified character set. This can be useful for attempting to fix encoding issues in Firebird.If either of the parameters cannot be resolved, to an EncodingDefinition or
Charset
, or the EncodingDefinition is information-only - with the exception of Firebird encoding NONE - and no Java Charset is specified, then null is returned.- Parameters:
firebirdEncodingName
- Name of the Firebird encoding, or null to defer decision to the java Charset aliasjavaCharsetAlias
- Alias of the Java character set, or null to defer decision to the Firebird encoding- Returns:
- An EncodingDefinition or null if both parameters are null, no encoding was found or if an exception occurred.
-
withDefaultEncodingDefinition
IEncodingFactory withDefaultEncodingDefinition(EncodingDefinition encodingDefinition)
Returns anIEncodingFactory
that usesencodingDefinition
as the default.- Parameters:
encodingDefinition
- The default encoding to use (ornull
for the value ofgetDefaultEncoding()
- Returns:
- IEncodingFactory instance with the specified default.
-
withDefaultEncodingDefinition
IEncodingFactory withDefaultEncodingDefinition(java.nio.charset.Charset charset)
- Parameters:
charset
- The default charset to use.- Returns:
- IEncodingFactory instance with the specified default.
-
getOrCreateDatatypeCoder
@Deprecated <T extends DatatypeCoder> T getOrCreateDatatypeCoder(java.lang.Class<T> datatypeCoderClass)
Deprecated.will be removed in Jaybird 6 and replaced by<T extends DatatypeCoder> T getOrCreateDatatypeCoder(Class<T>, Function<IEncodingFactory, T>)
Gets or - if necessary - creates a datatype coder of the specified type.In general this method should only be called from a static factory method on the datatype coder itself.
- Type Parameters:
T
- Type parameter of typeDatatypeCoder
- Parameters:
datatypeCoderClass
- Type of datatype coder, needs to have a single-arg constructor accepting anIEncodingFactory
.- Returns:
- New or cached instance of datatype coder
-
-