sortedChildren = null;
    public ShareNode addChild(ShareDO shareDOtoAdd) {        String bisherigerPath = getCompletePath();        String restPath = shareDOtoAdd.getFilename();        while (restPath.indexOf(ApplejuiceFassade.separator)==0){            restPath = restPath.substring(1);        }        restPath = restPath.substring(bisherigerPath.length());        int pos = restPath.indexOf(ApplejuiceFassade.separator);        while (pos == 0) {            restPath = restPath.substring(pos + 1);            pos = restPath.indexOf(ApplejuiceFassade.separator);        }        ShareNode childNode = null;        if (pos != -1) {            String tmpPath = restPath.substring(0, pos);            MapSetStringKey aKey = new MapSetStringKey(tmpPath);            if (children.containsKey(aKey)) {                childNode = (ShareNode) children.get(aKey);                childNode.addChild(shareDOtoAdd);            }            else {                childNode = new ShareNode(this, shareDOtoAdd);                children.put(aKey, childNode);                childNode.addChild(shareDOtoAdd);            }        }        else {            childNode = new ShareNode(this, shareDOtoAdd);            children.put(new MapSetStringKey(shareDOtoAdd.getId()), childNode);        }        return childNode;    }