code: public static ScopDatabase getSCOP(String version, boolean forceLocalData){
  		if( version == null ) {
  			version = defaultVersion;
  		}
  		ScopDatabase scop = versionedScopDBs.get(version);
  		if ( forceLocalData) {
  			// Use a local installation
  			if( scop == null || !(scop instanceof LocalScopDatabase) ) {
  				logger.info("Creating new {}, version {}", BerkeleyScopInstallation.class.getSimpleName(), version);
  				BerkeleyScopInstallation berkeley = new BerkeleyScopInstallation();
  				berkeley.setScopVersion(version);
  				versionedScopDBs.put(version,berkeley);
  				return berkeley;
  			}
  			return scop;
  		} else {
  			// Use a remote installation
  			if( scop == null ) {
  				logger.info("Creating new {}, version {}", RemoteScopInstallation.class.getSimpleName(), version);
  				scop = new RemoteScopInstallation();
  				scop.setScopVersion(version);
  				versionedScopDBs.put(version,scop);
  			}
  			return scop;
  		}
  	}
docs: Gets an instance of the specified scop version.
  
  <p>
  The particular implementation returned is influenced by the <tt>forceLocalData</tt>
  parameter. When false, the instance returned will generally be a
  {@link RemoteScopInstallation}, although this may be influenced by
  previous calls to this class. When true, the result is guaranteed to
  implement {@link LocalScopDatabase} (generally a {@link BerkeleyScopInstallation}).
  
  <p>
  Note that
  @param version A version number, such as {@link #VERSION_1_75A}
  @param forceLocalData Whether to use a local installation or a remote installation
  @return an