Class EncodingFactory
- java.lang.Object
- 
- org.firebirdsql.encodings.EncodingFactory
 
- 
- All Implemented Interfaces:
- IEncodingFactory
 
 public final class EncodingFactory extends java.lang.Object implements IEncodingFactory Factory forEncodingDefinitionandEncoding.- Author:
- Mark Rotteveel
 
- 
- 
Field SummaryFields Modifier and Type Field Description static java.lang.StringENCODING_NAME_NONEstatic java.lang.StringENCODING_NAME_OCTETS
 - 
Method SummaryAll Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static IEncodingFactorycreateInstance(java.nio.charset.Charset charset)static IEncodingFactorycreateInstance(EncodingDefinition encodingDefinition)Returns anIEncodingFactorythat usesencodingDefinitionas the default.static EncodingFactorycreateInstance(EncodingSet... encodingSets)Creates a new EncodingFactory based on the supplied encodingSets.protected static <T extends DatatypeCoder>
 TcreateNewDatatypeCoder(java.lang.Class<T> datatypeCoderClass, IEncodingFactory encodingFactory)static intgetCharacterSetSize(int characterSetId)Deprecated.Use the information provided by theEncodingDefinitionreturned bygetEncodingDefinitionByCharacterSetId(int)EncodinggetDefaultEncoding()EncodingDefinitiongetDefaultEncodingDefinition()Returns theEncodingDefinitionfor the default platform character set.static EncodinggetEncoding(java.lang.String javaCharsetAlias)Deprecated.static EncodinggetEncoding(java.nio.charset.Charset charset)EncodingDefinitiongetEncodingDefinition(java.lang.String firebirdEncodingName, java.lang.String javaCharsetAlias)Gets or creates anEncodingDefinitionfor the supplied Firebird encoding and Java charset.EncodingDefinitiongetEncodingDefinitionByCharacterSetId(int firebirdCharacterSetId)Looks up theEncodingDefinitionfor the specified Firebird character set id.EncodingDefinitiongetEncodingDefinitionByCharset(java.nio.charset.Charset charset)Looks up anEncodingDefinitionfor the JavaCharset.EncodingDefinitiongetEncodingDefinitionByCharsetAlias(java.lang.String charsetAlias)Looks up theEncodingDefinitionby the specified Java character set name or alias.EncodingDefinitiongetEncodingDefinitionByFirebirdName(java.lang.String firebirdEncodingName)Looks up theEncodingDefinitionfor the specified Firebird encoding name.EncodinggetEncodingForCharacterSetId(int firebirdCharacterSetId)Gets anEncodingfor the specified Firebird character set id.EncodinggetEncodingForCharacterSetId(int firebirdCharacterSetId, Encoding fallbackEncoding)Gets anEncodingfor the specified Firebird character set id.EncodinggetEncodingForCharset(java.nio.charset.Charset charset)Gets anEncodingfor the specified Java character set.EncodinggetEncodingForCharset(java.nio.charset.Charset charset, Encoding fallbackEncoding)Gets anEncodingfor the specified Java character set.EncodinggetEncodingForCharsetAlias(java.lang.String charsetAlias)Gets anEncodingfor the specified Java character set name or alias.EncodinggetEncodingForCharsetAlias(java.lang.String charsetAlias, Encoding fallbackEncoding)Gets anEncodingfor the specified Java character set name or alias.EncodinggetEncodingForFirebirdName(java.lang.String firebirdEncodingName)Gets anEncodingfor the specified Firebird encoding.EncodinggetEncodingForFirebirdName(java.lang.String firebirdEncodingName, Encoding fallbackEncoding)Gets anEncodingfor the specified Firebird encoding.static java.lang.StringgetIscEncoding(java.lang.String javaCharsetAlias)Deprecated.static java.lang.StringgetIscEncoding(java.nio.charset.Charset javaCharset)Deprecated.static intgetIscEncodingSize(java.lang.String iscEncoding)Deprecated.static java.lang.StringgetJavaEncoding(java.lang.String iscEncoding)Deprecated.static java.lang.StringgetJavaEncodingForAlias(java.lang.String javaAlias)Deprecated.<T extends DatatypeCoder>
 TgetOrCreateDatatypeCoder(java.lang.Class<T> datatypeCoderClass)Gets or - if necessary - creates a datatype coder of the specified type.EncodinggetOrCreateEncodingForCharset(java.nio.charset.Charset charset)Creates anEncodingfor the specified Java character set.static IEncodingFactorygetPlatformDefault()Returns an instance ofIEncodingFactorywith the default encoding set to the platform encoding.static EncodinggetPlatformEncoding()IEncodingFactorywithDefaultEncodingDefinition()Returns anConnectionEncodingFactorythat usesgetDefaultEncodingDefinition()as the default.IEncodingFactorywithDefaultEncodingDefinition(java.nio.charset.Charset charset)IEncodingFactorywithDefaultEncodingDefinition(EncodingDefinition encodingDefinition)Returns anIEncodingFactorythat usesencodingDefinitionas the default.
 
- 
- 
- 
Field Detail- 
ENCODING_NAME_NONEpublic static final java.lang.String ENCODING_NAME_NONE - See Also:
- Constant Field Values
 
 - 
ENCODING_NAME_OCTETSpublic static final java.lang.String ENCODING_NAME_OCTETS - See Also:
- Constant Field Values
 
 
- 
 - 
Method Detail- 
getDefaultEncodingpublic Encoding getDefaultEncoding() - Specified by:
- getDefaultEncodingin interface- IEncodingFactory
- Returns:
- The EncodingforCharset.defaultCharset().
 
 - 
getPlatformEncodingpublic static Encoding getPlatformEncoding() - Returns:
- The default encoding of the platform.
 
 - 
getDefaultEncodingDefinitionpublic EncodingDefinition getDefaultEncodingDefinition() Description copied from interface:IEncodingFactoryReturns theEncodingDefinitionfor 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".- Specified by:
- getDefaultEncodingDefinitionin interface- IEncodingFactory
- Returns:
- The EncodingDefinitionforCharset.defaultCharset().
 
 - 
getEncodingDefinitionByFirebirdNamepublic EncodingDefinition getEncodingDefinitionByFirebirdName(java.lang.String firebirdEncodingName) Description copied from interface:IEncodingFactoryLooks up theEncodingDefinitionfor the specified Firebird encoding name.- Specified by:
- getEncodingDefinitionByFirebirdNamein interface- IEncodingFactory
- Parameters:
- firebirdEncodingName- The Firebird encoding name (case insensitive)
- Returns:
- EncodingDefinition instance or nullif the encoding name is unknown
 
 - 
getEncodingForFirebirdNamepublic Encoding getEncodingForFirebirdName(java.lang.String firebirdEncodingName, Encoding fallbackEncoding) Gets anEncodingfor the specified Firebird encoding. If there is no known encoding for this name, or the loaded EncodingDefinition is information-only, then the fallbackEncoding.- Parameters:
- firebirdEncodingName- The Firebird encoding name (case insensitive)
- fallbackEncoding- The Encoding to use as fallback if no encoding is found (usually the connection encoding). If- null, the defaultEncoding for the JVM is used.
- Returns:
- Encoding instance (never null)
 
 - 
getEncodingForFirebirdNamepublic Encoding getEncodingForFirebirdName(java.lang.String firebirdEncodingName) Description copied from interface:IEncodingFactoryGets anEncodingfor 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.- Specified by:
- getEncodingForFirebirdNamein interface- IEncodingFactory
- Parameters:
- firebirdEncodingName- The Firebird encoding name (case insensitive)
- Returns:
- Encoding instance (never null)
 
 - 
getEncodingDefinitionByCharacterSetIdpublic EncodingDefinition getEncodingDefinitionByCharacterSetId(int firebirdCharacterSetId) Description copied from interface:IEncodingFactoryLooks up theEncodingDefinitionfor the specified Firebird character set id.Implementations that do not know the connection character set should return nullfor the valueISCConstants.CS_dynamic(= 127), as that is the indicator to use the connection character set.- Specified by:
- getEncodingDefinitionByCharacterSetIdin interface- IEncodingFactory
- Parameters:
- firebirdCharacterSetId- Firebird character set id
- Returns:
- EncodingDefinition instance or nullif the character set id is unknown or127and this implementation doesn't know the connection character set.
 
 - 
getEncodingForCharacterSetIdpublic Encoding getEncodingForCharacterSetId(int firebirdCharacterSetId, Encoding fallbackEncoding) Gets anEncodingfor 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 fallbackEncoding will be used.- Parameters:
- firebirdCharacterSetId- The Firebird character set id
- fallbackEncoding- The Encoding to use as fallback if no encoding is found (usually the connection encoding). If- null, the defaultEncoding for the JVM is used.
- Returns:
- Encoding instance (never null)
 
 - 
getEncodingForCharacterSetIdpublic Encoding getEncodingForCharacterSetId(int firebirdCharacterSetId) Description copied from interface:IEncodingFactoryGets anEncodingfor the specified Firebird character set id. If there is no known encoding for this character set id (or if it is 127, seeIEncodingFactory.getEncodingDefinitionByCharacterSetId(int)), or the loaded EncodingDefinition is information-only, then the defaultEncoding will be used.- Specified by:
- getEncodingForCharacterSetIdin interface- IEncodingFactory
- Parameters:
- firebirdCharacterSetId- The Firebird character set id
- Returns:
- Encoding instance (never null)
 
 - 
getEncodingDefinitionByCharsetpublic EncodingDefinition getEncodingDefinitionByCharset(java.nio.charset.Charset charset) Description copied from interface:IEncodingFactoryLooks up anEncodingDefinitionfor the JavaCharset.- Specified by:
- getEncodingDefinitionByCharsetin interface- IEncodingFactory
- Parameters:
- charset- The Java character set
- Returns:
- EncodingDefinition instance or nullif the character set is not mapped
 
 - 
getEncodingForCharsetpublic Encoding getEncodingForCharset(java.nio.charset.Charset charset, Encoding fallbackEncoding) Description copied from interface:IEncodingFactoryGets anEncodingfor 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.- Specified by:
- getEncodingForCharsetin interface- IEncodingFactory
- Parameters:
- charset- The Java character set
- fallbackEncoding- The Encoding to use as fallback if no encoding is found (usually the connection encoding). If- null, the defaultEncoding for the JVM is used.
- Returns:
- Encoding instance (never null)
- See Also:
- IEncodingFactory.getOrCreateEncodingForCharset(java.nio.charset.Charset)
 
 - 
getEncodingForCharsetpublic Encoding getEncodingForCharset(java.nio.charset.Charset charset) Description copied from interface:IEncodingFactoryGets anEncodingfor 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.- Specified by:
- getEncodingForCharsetin interface- IEncodingFactory
- Parameters:
- charset- The Java character set
- Returns:
- Encoding instance (never null)
 
 - 
getOrCreateEncodingForCharsetpublic Encoding getOrCreateEncodingForCharset(java.nio.charset.Charset charset) Description copied from interface:IEncodingFactoryCreates anEncodingfor 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 IEncodingFactory.getEncodingForCharset(java.nio.charset.Charset, Encoding)should be used.Don't confuse this method with IEncodingFactory.getEncodingForCharset(Charset), which falls back to the default encoding.- Specified by:
- getOrCreateEncodingForCharsetin interface- IEncodingFactory
- Parameters:
- charset- The Java character set
- Returns:
- Encoding instance (never null)
- See Also:
- IEncodingFactory.getEncodingForCharset(java.nio.charset.Charset, Encoding)
 
 - 
getEncodingDefinitionByCharsetAliaspublic EncodingDefinition getEncodingDefinitionByCharsetAlias(java.lang.String charsetAlias) Description copied from interface:IEncodingFactoryLooks up theEncodingDefinitionby the specified Java character set name or alias.- Specified by:
- getEncodingDefinitionByCharsetAliasin interface- IEncodingFactory
- Parameters:
- charsetAlias- Name (or alias) of the Java character set (case insensitive)
- Returns:
- EncodingDefinition instance or nullif the character set name is not mapped
 
 - 
getEncodingForCharsetAliaspublic Encoding getEncodingForCharsetAlias(java.lang.String charsetAlias, Encoding fallbackEncoding) Gets anEncodingfor 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 fallbackEncoding will be used.- Parameters:
- charsetAlias- The Java character set name or alias
- fallbackEncoding- The Encoding to use as fallback if no encoding is found (usually the connection encoding). If- null, the defaultEncoding for the JVM is used.
- Returns:
- Encoding instance (never null)
 
 - 
getEncodingForCharsetAliaspublic Encoding getEncodingForCharsetAlias(java.lang.String charsetAlias) Description copied from interface:IEncodingFactoryGets anEncodingfor 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.- Specified by:
- getEncodingForCharsetAliasin interface- IEncodingFactory
- Parameters:
- charsetAlias- The Java character set name or alias
- Returns:
- Encoding instance (never null)
 
 - 
getEncodingDefinitionpublic EncodingDefinition getEncodingDefinition(java.lang.String firebirdEncodingName, java.lang.String javaCharsetAlias) Description copied from interface:IEncodingFactoryGets or creates anEncodingDefinitionfor the supplied Firebird encoding and Java charset.When firebirdEncodingNameis not null andjavaCharsetAliasis null, then the encoding definition as returned byIEncodingFactory.getEncodingDefinitionByFirebirdName(String)is returned. For the reverse (firebirdEncodingNameis null andjavaCharsetAliasisn't), the encoding definition as returned byIEncodingFactory.getEncodingDefinitionByCharsetAlias(String)is returned.When both parameters are set, the result of IEncodingFactory.getEncodingDefinitionByFirebirdName(String)is returned if the character set matches, otherwise a newDefaultEncodingDefinitionis 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.- Specified by:
- getEncodingDefinitionin interface- IEncodingFactory
- Parameters:
- firebirdEncodingName- Name of the Firebird encoding, or null to defer decision to the java Charset alias
- javaCharsetAlias- 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.
 
 - 
withDefaultEncodingDefinitionpublic IEncodingFactory withDefaultEncodingDefinition(EncodingDefinition encodingDefinition) Returns anIEncodingFactorythat usesencodingDefinitionas the default.This implementation returns an instance of ConnectionEncodingFactory.- Specified by:
- withDefaultEncodingDefinitionin interface- IEncodingFactory
- Parameters:
- encodingDefinition- The default encoding to use (or- nullfor the value of- IEncodingFactory.getDefaultEncoding()
- Returns:
- IEncodingFactory instance with the specified default.
 
 - 
withDefaultEncodingDefinitionpublic IEncodingFactory withDefaultEncodingDefinition(java.nio.charset.Charset charset) Returns anIEncodingFactorythat uses anEncodingDefinitionidentified bycharSetas the default.This implementation returns an instance of ConnectionEncodingFactory.- Specified by:
- withDefaultEncodingDefinitionin interface- IEncodingFactory
- Parameters:
- charset- The default charset to use.
- Returns:
- IEncodingFactory instance with the specified default.
 
 - 
getOrCreateDatatypeCoderpublic <T extends DatatypeCoder> T getOrCreateDatatypeCoder(java.lang.Class<T> datatypeCoderClass) Description copied from interface:IEncodingFactoryGets 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. - Specified by:
- getOrCreateDatatypeCoderin interface- IEncodingFactory
- Type Parameters:
- T- Type parameter of type- DatatypeCoder
- Parameters:
- datatypeCoderClass- Type of datatype coder, needs to have a single-arg constructor accepting an- IEncodingFactory.
- Returns:
- New or cached instance of datatype coder
 
 - 
createNewDatatypeCoderprotected static <T extends DatatypeCoder> T createNewDatatypeCoder(java.lang.Class<T> datatypeCoderClass, IEncodingFactory encodingFactory) 
 - 
withDefaultEncodingDefinitionpublic IEncodingFactory withDefaultEncodingDefinition() Returns anConnectionEncodingFactorythat usesgetDefaultEncodingDefinition()as the default.- Returns:
- IEncodingFactory instance with the specified default.
 
 - 
getPlatformDefaultpublic static IEncodingFactory getPlatformDefault() Returns an instance ofIEncodingFactorywith the default encoding set to the platform encoding.- Returns:
- Instance of IEncodingFactory.
 
 - 
createInstancepublic static IEncodingFactory createInstance(EncodingDefinition encodingDefinition) Returns anIEncodingFactorythat usesencodingDefinitionas the default.If encodingDefinitionisnullor an information-only encoding, the implementation will return the cached instance returned bygetPlatformDefault().- Parameters:
- encodingDefinition- The default encoding to use (or- nullto get- getPlatformDefault()
- Returns:
- IEncodingFactory instance with the specified default.
 
 - 
createInstancepublic static IEncodingFactory createInstance(java.nio.charset.Charset charset) Returns anIEncodingFactorythat uses anEncodingDefinitionidentified bycharSetas the default.If charsetisnull, the implementation will return the cached instance return bygetPlatformDefault().- Parameters:
- charset- The default charset to use, or- nullfor- getPlatformDefault().
- Returns:
- IEncodingFactory instance with the specified default.
 
 - 
createInstancepublic static EncodingFactory createInstance(EncodingSet... encodingSets) Creates a new EncodingFactory based on the supplied encodingSets. The suppliedEncodingSetinstances are processed highest preferenceWeight first.- Parameters:
- encodingSets- The EncodingSet definitions to use for the EncodingFactory instance
- Returns:
- EncodingFactory instance based on the supplied encodingSets.
 
 - 
getCharacterSetSize@Deprecated public static int getCharacterSetSize(int characterSetId) Deprecated.Use the information provided by theEncodingDefinitionreturned bygetEncodingDefinitionByCharacterSetId(int)Get size of a character for the specified character set.- Parameters:
- characterSetId- of the character set.
- Returns:
- maximum size of the character in bytes or 1 if charset was not found.
 
 - 
getEncoding@Deprecated public static Encoding getEncoding(java.lang.String javaCharsetAlias) Deprecated.Gets anEncodinginstance for the supplied java Charset name.- Parameters:
- javaCharsetAlias- Java Charset name
- Returns:
- Instance of Encoding
 
 - 
getEncoding@Deprecated public static Encoding getEncoding(java.nio.charset.Charset charset) Deprecated.Gets anEncodinginstance for the supplied java Charset.- Parameters:
- charset- Java Charset
- Returns:
- Instance of Encoding
 
 - 
getIscEncoding@Deprecated public static java.lang.String getIscEncoding(java.lang.String javaCharsetAlias) Deprecated.Get Firebird encoding for given Java language encoding.- Parameters:
- javaCharsetAlias- Java language encoding.
- Returns:
- corresponding Firebird encoding or nullif none found.
 
 - 
getIscEncoding@Deprecated public static java.lang.String getIscEncoding(java.nio.charset.Charset javaCharset) Deprecated.Get Firebird encoding for given Java Charset.- Parameters:
- javaCharset- Java Charset
- Returns:
- corresponding Firebird encoding or nullif none found.
 
 - 
getIscEncodingSize@Deprecated public static int getIscEncodingSize(java.lang.String iscEncoding) Deprecated.Get size of a character for the specified Firebird encoding.- Parameters:
- iscEncoding- Firebird encoding.
- Returns:
- maximum size of the character in bytes or 1 if encoding was not found.
 
 - 
getJavaEncoding@Deprecated public static java.lang.String getJavaEncoding(java.lang.String iscEncoding) Deprecated.Get Java language encoding for given Firebird encoding.- Parameters:
- iscEncoding- Firebird encoding
- Returns:
- corresponding Java encoding or nullif none found. UsegetEncodingDefinitionByFirebirdName(String)andEncodingDefinition.getJavaEncodingName()
 
 - 
getJavaEncodingForAlias@Deprecated public static java.lang.String getJavaEncodingForAlias(java.lang.String javaAlias) Deprecated.Get Java language encoding for a given Java encoding alias.Ensures that naming is consistent even if a different alias was used. - Parameters:
- javaAlias- Java alias for the encoding
- Returns:
- Java Charset name
 
 
- 
 
-