Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
   * Public Firebird Java API.
   * Redistribution and use in source and binary forms, with or without 
   * modification, are permitted provided that the following conditions are met:
   *    1. Redistributions of source code must retain the above copyright notice, 
   *       this list of conditions and the following disclaimer.
   *    2. Redistributions in binary form must reproduce the above copyright 
   *       notice, this list of conditions and the following disclaimer in the 
  *       documentation and/or other materials provided with the distribution. 
  *    3. The name of the author may not be used to endorse or promote products 
  *       derived from this software without specific prior written permission.
 package org.firebirdsql.gds.impl;
Object representing a Firebird server version. The version string is returned in response to the isc_info_firebird_version information call. Expected version format is:

<platform>-<type><majorVersion>.<minorVersion>.<variant>.<buildNum> <serverName>[,<extended server info>]

where platform is a two-character platform identification string, Windows for example is "WI", type is one of the three characters: "V" - production version, "T" - beta version, "X" - development version.
 public class GDSServerVersion implements Serializable {
 	private static final long serialVersionUID = -153657557318248541L;
 	public static final String TYPE_PRODUCTION = "V";
     public static final String TYPE_BETA = "T";
     public static final String TYPE_DEVELOPMENT = "X";
     private static final Pattern VERSION_PATTERN = 
     	Pattern.compile("((\\w{2})-(\\w)(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)) ([^-,]+)(?:[-,](.*))?");
     private static final int FULL_VERSION_IDX = 1;
     private static final int PLATFORM_IDX = 2;
     private static final int TYPE_IDX = 3;
     private static final int MAJOR_IDX = 4;
     private static final int MINOR_IDX = 5;
     private static final int VARIANT_IDX = 6;
     private static final int BUILD_IDX = 7;
     private static final int SERVER_NAME_IDX = 8;
     private static final int EXTENDED_INFO_IDX = 9;    
     private String rawStr;
     private String platform;
     private String type;
     private String fullVersion;
     private int majorVersion;
     private int minorVersion;
     private int variant;
     private int buildNumber;
     private String serverName;
     private String extendedServerName;
     private GDSServerVersion() {
     public int getBuildNumber() {
         return ;
     public int getMajorVersion() {
         return ;
     public int getMinorVersion() {
         return ;
     public String getPlatform() {
         return ;
     public String getServerName() {
         return ;
    public String getType() {
        return ;
    public int getVariant() {
        return ;
    public String getExtendedServerName() {
        return ;
    public String getFullVersion() {
    	return ;
    public int hashCode() {
        return .hashCode();
    public boolean equals(Object obj) {
        if (obj == thisreturn true;
        if (!(obj instanceof GDSServerVersion)) return false;
        GDSServerVersion that = (GDSServerVersionobj;
        return .equals(that.rawStr);
    public String toString() {
        return ;

Parse the raw version string and create a GDSServerVersion object.

versionString string to parse.
GDSServerVersionException if versionString does not match expected pattern
    public static GDSServerVersion parseRawVersion(String versionStringthrows GDSServerVersionException {
    	Matcher matcher = .matcher(versionString);
    	if (!matcher.matches()) {
            throw new GDSServerVersionException(String.format("Version string \"%s\" does not match expected format",
    	GDSServerVersion version = new GDSServerVersion();
    	version.rawStr = versionString;
    	version.serverName =;
    	version.extendedServerName =;
    	version.platform =;
    	version.type =;
    	version.fullVersion =;
    	version.majorVersion = Integer.parseInt(;
    	version.minorVersion = Integer.parseInt(;
    	version.variant = Integer.parseInt(;
    	version.buildNumber = Integer.parseInt(;
    	return version;
New to GrepCode? Check out our FAQ X