@@ -0,0 +1,1287 @@
+package ee.shy.core;%0A%0Aimport java.util.ArrayList;%0Aimport java.util.List;%0A%0Apublic class TreePath implements Comparable%3CTreePath%3E %7B%0A    private final List%3CString%3E pathStrings = new ArrayList%3C%3E();%0A%0A    TreePath(String stringPath) %7B%0A        for(String s : stringPath.split(%22/%22))%0A            pathStrings.add(s);%0A    %7D%0A%0A    public void resolve(String str) %7B%0A        new TreePath(this.toString() + str);%0A    %7D%0A%0A    List%3CString%3E getPathStrings() %7B%0A        return pathStrings;%0A    %7D%0A%0A    public String toString() %7B%0A        String stringPath = %22%22;%0A        for (String s : pathStrings) %7B%0A            stringPath += %22/%22 + s;%0A        %7D%0A        return stringPath;%0A    %7D%0A%0A    @Override%0A    public int compareTo(TreePath o) %7B%0A        List%3CString%3E oStringList = o.getPathStrings();%0A        if(oStringList.size() %3C pathStrings.size()) %7B%0A            return 1;%0A        %7D%0A        else if(oStringList.size() %3E pathStrings.size()) %7B%0A            return -1;%0A        %7D%0A%0A        int iterCount = Math.min(pathStrings.size(), oStringList.size());%0A        %0A        for(int i = 0; i %3C iterCount; i++) %7B%0A            int strCompareResult = oStringList.get(i).compareTo(pathStrings.get(i));%0A            if(strCompareResult != 0) %7B%0A                return strCompareResult;%0A            %7D%0A        %7D%0A        return 0;%0A    %7D%0A%7D%0A

Add TreePath class.