package com.redhat.qe.auto.selenium;
public class StringSandwichLocatorStrategy implements LocatorStrategy {
protected String[] bread = null;
protected String name = null;
public StringSandwichLocatorStrategy(String name, String... bread){
this.name = name;
this.bread = bread;
}
@Override
public String getLocator(String... meat) {
//construct the sandwich - bread, meat, bread, meat, bread - until one runs out
//always end with bread unless there isn't enough bread.
//bread always comes first.
int smallerStack = bread.length > meat.length ? meat.length : bread.length;
StringBuffer sb = new StringBuffer();
for (int i=0; i<smallerStack; i++){
sb.append(bread[i]);
sb.append(meat[i]);
}
if (bread.length > meat.length) sb.append(bread[meat.length]);
return sb.toString();
}
@Override
public String getName() {
return name;
}
@Override
public String getTemplate(String... args) {
String template=bread[0];
for (int i = 1; i < bread.length; i++) {
template += "$"+i+bread[i];
}
return template;
}
public static void main (String[] args){
StringSandwichLocatorStrategy ssls1 = new StringSandwichLocatorStrategy("pbj", "bread1", "bread2");
System.out.println(ssls1.getLocator("meat1"));
System.out.println(ssls1.getLocator("meat1", "meat2"));
System.out.println(ssls1.getLocator("meat1", "meat2", "meat3"));
System.out.println(ssls1.getTemplate());
}
}