Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * $Id$
   * Firebird Open Source J2ee connector - jdbc driver
   *
   * Distributable under LGPL license.
   * You may obtain a copy of the License at http://www.gnu.org/copyleft/lgpl.html
   *
   * This program is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * LGPL License for more details.
  *
  * This file was created by members of the firebird development team.
  * All individual contributions remain the Copyright (C) of those
  * individuals.  Contributors to this file are either listed here or
  * can be obtained from a CVS history command.
  *
  * All rights reserved.
  */
 package org.firebirdsql.jdbc;
 
 import java.util.Map;
 
 
 
     private static final long serialVersionUID = 611228437520889118L;
     
     public static final String DATABASE_PROPERTY = "database";
     public static final String TYPE_PROPERTY = "type";
     public static final String ISOLATION_PROPERTY = "isolation";
     public static final String DEFAULT_ISOLATION_PROPERTY = "defaultIsolation";
 
     public static final String BLOB_BUFFER_SIZE_PROPERTY = "blobBufferSize";
     public static final String LOCAL_ENCODING_PROPERTY = "localEncoding";
     public static final String ENCODING_PROPERTY = "encoding";
     public static final String ROLE_NAME_PROPERTY = "roleName";
     public static final String SQL_DIALECT_PROPERTY = "sqlDialect";
     public static final String USE_TRANSLATION_PROPERTY = "useTranslation";
     public static final String USE_STREAM_BLOBS_PROPERTY = "useStreamBlobs";
     public static final String USE_STANDARD_UDF_PROPERTY = "useStandardUdf";
     public static final String SOCKET_BUFFER_SIZE_PROPERTY = "socketBufferSize";
     public static final String TIMESTAMP_USES_LOCAL_TIMEZONE_PROPERTY = "timestampUsesLocalTimezone";
     public static final String USER_NAME_PROPERTY = "userName";
     public static final String PASSWORD_PROPERTY = "password";
     public static final String BUFFERS_NUMBER_PROPERTY = "buffersNumber";
     public static final String DEFAULT_HOLDABLE_RS_PROPERTY = "defaultHoldable";
     public static final String SO_TIMEOUT = "soTimeout";
     public static final String CONNECT_TIMEOUT = "connectTimeout";
 
     private HashMap properties = new HashMap();
     private String type;
     private String database;
 
     private String tpbMapping;
     private HashMap customMapping = new HashMap();
     private FBTpbMapper mapper;
 
     private int getIntProperty(String name) {
         Integer value = (Integer.get(getCanonicalName(name));
 
         if (value == null)
             return 0;
 
         return value.intValue();
     }
 
     private String getCanonicalName(String propertyName) {
         return FBDriverPropertyManager.getCanonicalName(propertyName);
     }
 
     private String getStringProperty(String name) {
         Object value = .get(getCanonicalName(name));
 
         if (value != null) {
             return value.toString();
         }
         return null;
     }
 
     private boolean getBooleanProperty(String name) {
         return .containsKey(getCanonicalName(name));
     }
 
     private void setIntProperty(String nameint value) {
         .put(getCanonicalName(name), Integer.valueOf(value));
    }
    private void setStringProperty(String nameString value) {
        if (.equals(name))
            setDatabase(value);
        else if (.equals(name))
            setType(value);
        name = getCanonicalName(name);
        Object objValue = FBConnectionHelper.parseDpbString(namevalue);
        .put(nameobjValue);
    }
    private void setBooleanProperty(String name) {
        .put(getCanonicalName(name), null);
    }
    private void removeProperty(String name) {
        .remove(name);
    }
    public int hashCode() {
        int result = 17;
        
        // Hash is built only from fields that are least likely to change (see JDBC-249)
        result = result * 151 + ( != null ? .hashCode() : 0);
        result = result * 151 + ( != null ? .hashCode() : 0);
        return result;
    }
    public boolean equals(Object obj) {
        if (obj == this)
            return true;
        if (!(obj instanceof FBConnectionProperties))
            return false;
        FBConnectionProperties that = (FBConnectionPropertiesobj;
        boolean result = true;
        result &= this..equals(that.properties);
        result &= this. != null ? this..equals(that.type) : that.type == null;
        result &= this. != null ? this..equals(that.database) : that.database == null;
        result &= this. != null ? this..equals(that.tpbMapping) : that.tpbMapping == null;
        result &= this. == that.defaultTransactionIsolation;
        result &= this..equals(that.customMapping);
        // If one or both are null we are identical (see also JDBC-249)
        result &= (this. == null || that.mapper == null) ? true : this..equals(that.mapper);
        return result;
    }
    public Object clone() {
        try {
            FBConnectionProperties clone = (FBConnectionPropertiessuper.clone();
            clone.properties = (HashMap.clone();
            clone.customMapping = (HashMap.clone();
            clone.mapper =  != null ? (FBTpbMapper.clone() : null;
            return clone;
        } catch (CloneNotSupportedException ex) {
            throw new Error("Assertion failure: clone not supported"); // Can't happen
        }
    }
    public String getDatabase() {
        return ;
    }
    public void setDatabase(String database) {
        this. = database;
    }
    public String getType() {
        return ;
    }
    public void setType(String type) {
        this. = type;
    }
    public int getBlobBufferSize() {
    }
    public void setBlobBufferSize(int bufferSize) {
        setIntProperty(bufferSize);
    }
    public String getCharSet() {
    }
    public void setCharSet(final String charSet) {
        if (charSet == null)
            return;
        // Normalize the name of the encoding
        String normalizedCharSet = EncodingFactory.getJavaEncodingForAlias(charSet);
        if (normalizedCharSet != null) {
            setStringProperty(normalizedCharSet);
        }
        String encoding = getStringProperty();
        if (encoding != null)
            return;
        encoding = EncodingFactory.getIscEncoding(charSet);
        if (encoding != null)
            setStringProperty(encoding);
    }
    public String getEncoding() {
        return getStringProperty();
    }
    public void setEncoding(String encoding) {
        if (encoding == null)
            return;
        setStringProperty(encoding);
        String charSet = getStringProperty();
        if (charSet != null)
            return;
        charSet = EncodingFactory.getJavaEncoding(encoding);
        if (charSet != null)
            setStringProperty(charSet);
    }
    public String getRoleName() {
        return getStringProperty();
    }
    public void setRoleName(String roleName) {
        if (roleName == null)
            return;
        setStringProperty(roleName);
    }
    public String getSqlDialect() {
        return getStringProperty();
    }
    public void setSqlDialect(String sqlDialect) {
        if (sqlDialect == null)
            return;
        setStringProperty(sqlDialect);
    }
    public String getUseTranslation() {
    }
    public void setUseTranslation(String translationPath) {
        if (translationPath == null)
            return;
        setStringProperty(translationPath);
    }
    public boolean isUseStreamBlobs() {
    }
    public void setUseStreamBlobs(boolean useStreamBlobs) {
        if (useStreamBlobs)
        else
    }
    public boolean isUseStandardUdf() {
    }
    public void setUseStandardUdf(boolean useStandardUdf) {
        if (useStandardUdf)
        else
    }
    public int getSocketBufferSize() {
    }
    public void setSocketBufferSize(int socketBufferSize) {
        setIntProperty(socketBufferSize);
    }
    public boolean isTimestampUsesLocalTimezone() {
    }
    public void setTimestampUsesLocalTimezone(boolean timestampUsesLocalTimezone) {
        if (timestampUsesLocalTimezone)
        else
    }
    public String getUserName() {
        return getStringProperty();
    }
    public void setUserName(String userName) {
        setStringProperty(userName);
    }
    public String getPassword() {
        return getStringProperty();
    }
    public void setPassword(String password) {
        setStringProperty(password);
    }
    public int getBuffersNumber() {
        return getIntProperty();
    }
    public void setBuffersNumber(int buffersNumber) {
        setIntProperty(buffersNumber);
    }
    public String getNonStandardProperty(String key) {
        return getStringProperty(key);
    }
    public void setNonStandardProperty(String keyString value) {
        if (.equals(key) || .equals(key))
            setDefaultIsolation(value);
        else
            setStringProperty(keyvalue);
    }
    public boolean isDefaultResultSetHoldable() {
    }
    public void setDefaultResultSetHoldable(boolean isHoldable) {
        if (isHoldable)
        else
    }
    public int getSoTimeout() {
        return getIntProperty();
    }
    
    public int getConnectTimeout() {
    }
    
    public void setConnectTimeout(int connectTimeout) {
    	setIntProperty(connectTimeout);
    }
    public void setSoTimeout(int soTimeout) {
        setIntProperty(soTimeout);
    }
    public void setNonStandardProperty(String propertyMapping) {
        char[] chars = propertyMapping.toCharArray();
        StringBuffer key = new StringBuffer();
        StringBuffer value = new StringBuffer();
        boolean keyProcessed = false;
        for (int i = 0; i < chars.lengthi++) {
            char ch = chars[i];
            boolean isSeparator = Character.isWhitespace(ch) || ch == '=' || ch == ':';
            // if no key was processed, ignore white spaces
            if (key.length() == 0 && isSeparator)
                continue;
            if (!keyProcessed && !isSeparator) {
                key.append(ch);
            } else if (!keyProcessed && isSeparator) {
                keyProcessed = true;
            } else if (keyProcessed && value.length() == 0 && isSeparator) {
                continue;
            } else if (keyProcessed) {
                value.append(ch);
            }
        }
        String keyStr = key.toString().trim();
        String valueStr = value.length() > 0 ? value.toString().trim() : null;
        setNonStandardProperty(keyStrvalueStr);
    }
        GDS gds = getGds();
        for (Iterator iter = .entrySet().iterator(); iter.hasNext();) {
            Map.Entry entry = (Map.Entryiter.next();
            String propertyName = (Stringentry.getKey();
            Object value = entry.getValue();
            Integer dpbType = FBConnectionHelper.getDpbKey(propertyName);
            if (dpbType == null)
                continue;
            if (value instanceof Boolean) {
                if (((Booleanvalue).booleanValue())
                    dpb.addArgument(dpbType.intValue());
            } else if (value instanceof Byte) {
                dpb.addArgument(dpbType.intValue(), new byte[] { ((Bytevalue).byteValue() });
            } else if (value instanceof Integer) {
                dpb.addArgument(dpbType.intValue(), ((Integervalue).intValue());
            } else if (value instanceof String) {
                dpb.addArgument(dpbType.intValue(), (Stringvalue);
            } else if (value == null)
                dpb.addArgument(dpbType.intValue());
        }
        return dpb;
    }
    public String getTpbMapping() {
        return ;
    }
    public void setTpbMapping(String tpbMapping) {
        if ( != null)
            throw new IllegalStateException("Properties are already initialized.");
        else
            this. = tpbMapping;
    }
    public int getDefaultTransactionIsolation() {
        if ( != null)
            return .getDefaultTransactionIsolation();
        else
            return ;
    }
    public void setDefaultTransactionIsolation(int defaultIsolationLevel) {
         = defaultIsolationLevel;
        if ( != null)
            .setDefaultTransactionIsolation(defaultIsolationLevel);
    }
    public String getDefaultIsolation() {
        return FBTpbMapper.getTransactionIsolationName(getDefaultTransactionIsolation());
    }
    public void setDefaultIsolation(String isolation) {
        setDefaultTransactionIsolation(FBTpbMapper.getTransactionIsolationLevel(isolation));
    }
    public TransactionParameterBuffer getTransactionParameters(int isolation) {
        if ( != null)
            return .getMapping(isolation);
        else
            return (TransactionParameterBuffer.get(Integer.valueOf(isolation));
    }
    public void setTransactionParameters(int isolationTransactionParameterBuffer tpb) {
        .put(Integer.valueOf(isolation), tpb);
        if ( != null)
            .setMapping(isolationtpb);
    }
    public FBTpbMapper getMapper() throws FBResourceException {
        if ( != null)
            return ;
        GDS gds = getGds();
        if ( == null)
             = FBTpbMapper.getDefaultMapper(gds);
        else
             = new FBTpbMapper(gdsgetClass().getClassLoader());
        for (Iterator iter = .entrySet().iterator(); iter.hasNext();) {
            Map.Entry entry = (Map.Entryiter.next();
            Integer isolation = (Integerentry.getKey();
            TransactionParameterBuffer tpb = (TransactionParameterBufferentry.getValue();
            .setMapping(isolation.intValue(), tpb);
        }
        return ;
    }
    
    
Returns the GDS instance for value of field type.

Will return the default GDS if type is not set.

Returns:
GDS instance
Throws:
java.lang.IllegalArgumentException if the value of type does not match a loaded GDSType
    private GDS getGds() {
        GDSType gdsType = GDSType.getType();
        if (gdsType == null &&  != null)
            throw new IllegalArgumentException("Unknown GDS type " + );
        return GDSFactory.getGDSForType(gdsType);
    }
New to GrepCode? Check out our FAQ X