Java Code Examples for org.apache.commons.lang.StringUtils#getCommonPrefix()

The following examples show how to use org.apache.commons.lang.StringUtils#getCommonPrefix() . These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may want to check out the right sidebar which shows the related API usage.
Example 1
public void draw(Ansi ansi) {
    String prefix = StringUtils.getCommonPrefix(new String[]{text, displayedText});
    if (prefix.length() < displayedText.length()) {
        ansi.cursorLeft(displayedText.length() - prefix.length());
    }
    if (prefix.length() < text.length()) {
        ColorMap.Color color = colorMap.getStatusBarColor();
        color.on(ansi);
        ansi.a(text.substring(prefix.length()));
        color.off(ansi);
    }
    if (displayedText.length() > text.length()) {
        ansi.eraseLine(Ansi.Erase.FORWARD);
    }
    displayedText = text;
}
 
Example 2
public void draw(Ansi ansi) {
    String prefix = StringUtils.getCommonPrefix(new String[]{text, displayedText});
    if (prefix.length() < displayedText.length()) {
        ansi.cursorLeft(displayedText.length() - prefix.length());
    }
    if (prefix.length() < text.length()) {
        ColorMap.Color color = colorMap.getStatusBarColor();
        color.on(ansi);
        ansi.a(text.substring(prefix.length()));
        color.off(ansi);
    }
    if (displayedText.length() > text.length()) {
        ansi.eraseLine(Ansi.Erase.FORWARD);
    }
    displayedText = text;
}
 
Example 3
public void draw(Ansi ansi) {
    String prefix = StringUtils.getCommonPrefix(new String[]{text, displayedText});
    if (prefix.length() < displayedText.length()) {
        ansi.cursorLeft(displayedText.length() - prefix.length());
    }
    if (prefix.length() < text.length()) {
        ColorMap.Color color = colorMap.getStatusBarColor();
        color.on(ansi);
        ansi.a(text.substring(prefix.length()));
        color.off(ansi);
    }
    if (displayedText.length() > text.length()) {
        ansi.eraseLine(Ansi.Erase.FORWARD);
    }
    displayedText = text;
}
 
Example 4
public void draw(Ansi ansi) {
    String prefix = StringUtils.getCommonPrefix(new String[]{text, displayedText});
    if (prefix.length() < displayedText.length()) {
        ansi.cursorLeft(displayedText.length() - prefix.length());
    }
    if (prefix.length() < text.length()) {
        ColorMap.Color color = colorMap.getStatusBarColor();
        color.on(ansi);
        ansi.a(text.substring(prefix.length()));
        color.off(ansi);
    }
    if (displayedText.length() > text.length()) {
        ansi.eraseLine(Ansi.Erase.FORWARD);
    }
    displayedText = text;
}
 
Example 5
Source Project: hdfs-shell   File: PathCompleter.java    License: Apache License 2.0 4 votes vote down vote up
@SuppressWarnings({"rawtypes", "unchecked"})
private int analyzePossibilities(String buffer, int cursor, List<String> candidates) throws IOException {
    if (cursor == 0) {
        return -1;
    }
    final String[] args = buffer.substring(0, Math.min(cursor, buffer.length())).split(" |,", 1000);
    if (args.length <= 1) {
        return -1;
    }
    String val = args[args.length - 1];
    if ("".equals(val) || " ".equals(val) || ",".equals(val)) {
        val = ".";
    }

    boolean isAbsolute = val.startsWith("/");

    if (val.startsWith("-")) {
        return -1;
    }

    final int found = val.lastIndexOf('/');
    final String core;
    final String rest;
    if (found == -1) {
        //it's relative
        core = contextCommands.getCurrentDir();
        rest = val;
    } else {
        final String firstPart = val.substring(0, found + 1);
        core = (isAbsolute) ? firstPart : new Path(contextCommands.getCurrentDir(), firstPart).toUri().getPath();
        rest = val.length() == 1 ? "" : val.substring(found + 1);
    }

    final FileSystem fs = FileSystem.get(contextCommands.getConfiguration());
    final Path f = new Path(val);

    boolean folderFound = false;
    if (fs.exists(f) && fs.getFileStatus(f).isDirectory() && !val.endsWith("/") && !val.equals(".")) {
        folderFound = true;
    }

    final Path pathCore = new Path(core);
    if (!fs.exists(pathCore)) {
        return -1;
    }

    final String[] suggestions = getSuggestions(rest, fs, pathCore);

    String commonPrefix = StringUtils.getCommonPrefix(suggestions);
    if (StringUtils.isNotEmpty(commonPrefix) && !commonPrefix.equals(rest)) {
        commonPrefix = rest.isEmpty() || rest.equals(".") ? commonPrefix : commonPrefix.substring(rest.length());
        candidates.add(commonPrefix);
        return cursor;
    } else {
        if (suggestions.length > 1) {
            if (StringUtils.isNotEmpty(commonPrefix) && commonPrefix.equals(rest)) { //problem candidatelistcompletionhandler
                for (int i = 0; i < suggestions.length; i++) {
                    suggestions[i] = StringUtils.repeat(" ", i) + suggestions[i];
                }
            }
            candidates.addAll(removeSlash(suggestions));
        } else {
            if (folderFound) {
                candidates.add("/");
                return cursor;
            } else {
                if (suggestions.length > 0) {
                    suggestions[0] = rest.isEmpty() || rest.equals(".") ? suggestions[0] : suggestions[0].substring(rest.length());
                    candidates.addAll(Arrays.asList(suggestions));
                }
            }
        }
    }


    return suggestions.length == 0 ? -1 : cursor;
}