package net.bitpot.railways.gui;
import com.intellij.ide.TextCopyProvider;
import net.bitpot.railways.models.Route;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public abstract class RoutesCopyProvider extends TextCopyProvider {
private Route[] routes;
public RoutesCopyProvider(Route[] routes) {
this.routes = routes;
}
/**
* Returns route value that should be copied to clipboard.
* @param route Route which value should be copied to clipboard (route name in this
* implementation).
* @return String to copy
*/
public abstract String getCopyValue(Route route);
@Nullable
@Override
public Collection<String> getTextLinesToCopy() {
if (routes == null)
return null;
List<String> copyLines = new ArrayList<String>(routes.length);
for (Route route : routes) {
copyLines.add(getCopyValue(route));
}
return copyLines;
}
}