code: public ValidationResult check(Entry entry) {
          result = new ValidationResult();
  
          if (entry == null) {
              return result;
          }
  
          //collect all gene features
          Collection<Feature> gapFeatures =
                  SequenceEntryUtils.getFeatures(Feature.GAP_FEATURE_NAME, entry);
        
          gapFeatures.addAll(SequenceEntryUtils.getFeatures(Feature.ASSEMBLY_GAP_FEATURE_NAME, entry));
       	
  		if (gapFeatures.isEmpty())
  		{
  			return result;
  		}
  
          if (entry.getSequence() == null || entry.getSequence().getSequenceByte() == null) {
              return result;
          }
  
          for (Feature gapFeature : gapFeatures) {
  
              CompoundLocation<Location> compoundLocation = gapFeature.getLocations();
              if (compoundLocation == null || compoundLocation.getLocations() == null || compoundLocation.getLocations().size() != 1) {
                  //if there is more than 1 location, just bail, there are other checks to complain if the location is
                  //not a single location
                  return result;
              }
  
              Location location = compoundLocation.getLocations().get(0);
              Long start = location.getBeginPosition();
              Long end = location.getEndPosition();
              
             
              byte[] sequenceByte=entry.getSequence().getSequenceByte();
              if(sequenceByte==null||start==null||end==null)
              	return result;
              if(start<0||end>sequenceByte.length)
              {
              	return result;
              }
             int beginPosition=start.intValue();
             int endPosition=end.intValue();
             
  			for (int i=beginPosition;i<endPosition;i++)
  			{
  				if ('n' != (char) sequenceByte[i])
  				{
  					ValidationMessage<Origin> message = reportError(gapFeature.getOrigin(), MESSAGE_ID);
  					String report = ValidationMessageManager.getString(FAULTY_SEQUENCE_MESSAGE, start, end);
  					message.setReportMessage(report);
  					return result;
  				}
  			}
  
  		}
  
          return result;
      }
docs: Checks the coverage of sequence by source features' locations.
  
  @param entry an entry to be checked (expected type is Entry)
  @return a validation result