code: public Segment createSegment(RemoteRange remoteRange)
  			throws SQLException, IOException
  	{
  		if (connection == null&&entryDAOUtils==null)
  			return null;
  		else
  		{
  			if (remoteRange != null)
  			{
  				String accession = remoteRange.getAccession() + (remoteRange.getVersion() == null ? "" : ("." + remoteRange.getVersion().toString()));
  				if(entryDAOUtils==null)
  				{
  					setEntryDAOUtils(new EntryDAOUtilsImpl(connection));
  				}
  				byte[] subSequence=entryDAOUtils.getSubSequence(accession, remoteRange.getBeginPosition(), (remoteRange.getEndPosition()-remoteRange.getBeginPosition())+1);
  				
  				if(subSequence==null)
  				{
  					throw new SQLException("Invalid Accession "+accession+" , which does not exist in database");
  				}
  				
  				if(remoteRange.getLength()!=subSequence.length)
  				{
  					StringBuilder lcoationString=new StringBuilder();
  					LocationToStringCoverter.renderLocation(lcoationString, remoteRange, false, false);
  					throw new SQLException("invalid Remote Location range:"+ lcoationString.toString() +", not within the entry \""+ remoteRange.getAccession()+"\" sequence length");
  				}
  				if(remoteRange.isComplement())
  				{
  					ReverseComplementer reversecomplementer=new ReverseComplementer();
  					return new Segment(remoteRange,reversecomplementer.reverseComplementByte(subSequence));
  				}
  				return new Segment(
  						remoteRange,subSequence);
  
  			}
  		}
  		return null;
  	}
docs: TODO createSegment for RemoteRange