// Copyright 2012 Google Inc. All Rights Reserved.
package com.google.eclipse.javascript.jstestdriver.ui.launch.config;
/**
* This class contains configuration file pre-selection logic. Its purpose is to leave
* the main class uncluttered with string comparison logic.
*/
class ConfigurationFileSelectHelper {
private final String expectedFilename;
public ConfigurationFileSelectHelper(String expectedFilename) {
super();
this.expectedFilename = expectedFilename;
}
public String findSuitableConfigurationFile(String[] configurationFiles) {
if (configurationFiles==null || configurationFiles.length==0)
return null;
String result = configurationFiles[0];
for (String candidate : configurationFiles) {
result = betterCandidate(candidate, result);
}
return result;
}
private String betterCandidate(String candidate1, String candidate2) {
boolean c1ending = candidate1.endsWith(expectedFilename);
boolean c2ending = candidate2.endsWith(expectedFilename);
if (c1ending == c2ending) {
return shorterString(candidate1, candidate2);
}
if (c1ending) {
return candidate1;
}
return candidate2;
}
private String shorterString(String candidate1, String candidate2) {
if (candidate1.length() <= candidate2.length()) {
return candidate1;
}
return candidate2;
}
}