private String extractAdvice(IFile file, int lineNo, String s) {
   String[] pair = s.split(":");
   if (pair.length != 2) {
     builder.addMarker(file, "Invalid Advice Syntax", lineNo, IMarker.SEVERITY_ERROR);
     return null;
   }
   if (pair[0].equals("before") || pair[0].equals("after") || pair[0].equals("instead"))
     return pair[1];
   return null;
 }
 private void addMarkerIfNotDefined(String featureName, IFile file, int line) {
   if (featureName != null) {
     if (!isFeatureDefined(file, featureName)) {
       builder.addMarker(
           file,
           "Feature '" + featureName + "' referenced in file does not exist in feature model.",
           line,
           IMarker.SEVERITY_ERROR);
     }
   }
 }
 private void checkFilenameDepenency(IFile file) {
   String fileFeatureToken = builder.getValue(file, PreferenceConstants.FEATURE_IN_FILENAME);
   String fileName = file.getName();
   int p = fileName.indexOf(fileFeatureToken);
   if (p >= 0) {
     String featureName = fileName.substring(p + 1, fileName.indexOf('.', p));
     if (!isFeatureDefined(file, featureName)) {
       builder.addMarker(
           file,
           "Feature '"
               + featureName
               + "' referenced in file name does not exist in in feature model.",
           0,
           IMarker.SEVERITY_ERROR);
     }
   }
 }