if (baseCri != null) cri = new FBConnectionRequestInfo(baseCri); else cri = new FBConnectionRequestInfo(getDefaultCri(GDSFactory.getDefaultGDS()));   Iterator keys = info.keySet().iterator(); while(keys.hasNext()) { String key = (String)keys.next(); String value = info.getProperty(key);  Integer type = (Integer)dpbTypes.get(key);   if (type == null) continue;   try {   byte byteValue = Byte.parseByte(value); cri.setProperty(type.intValue(), new byte[] {byteValue});  } catch(NumberFormatException nfex) {   if ("".equals(value)) cri.setProperty(type.intValue()); else cri.setProperty(type.intValue(), value); } }
copyPropertiesIntoCri(info, cri);
    public static FBConnectionRequestInfo getCri(Properties info,        FBConnectionRequestInfo baseCri)    {        FBConnectionRequestInfo cri;        if (baseCri != null)            cri = new FBConnectionRequestInfo(baseCri);        else            cri = new FBConnectionRequestInfo(getDefaultCri(GDSFactory.getDefaultGDS()));        // process all set keys        Iterator keys = info.keySet().iterator();        while(keys.hasNext()) {            String key = (String)keys.next();            String value = info.getProperty(key);            Integer type = (Integer)dpbTypes.get(key);            // if the type is unknown, continue            if (type == null) continue;                        // set the value of the DPB            try {                // try to deal with a value as a byte                byte byteValue = Byte.parseByte(value);                cri.setProperty(type.intValue(), new byte[] {byteValue});            } catch(NumberFormatException nfex) {                // ok, that's not a byte, then set it as string                if ("".equals(value))                    cri.setProperty(type.intValue());                else                    cri.setProperty(type.intValue(), value);            }        }        return cri;    }