class JexlNodeSet implements Set<JexlNode> {

    @Override
    public boolean remove(Object o) {
        if (o instanceof JexlNode) {
            // Remove by value
            String nodeKey = buildKey((JexlNode) o);
            return nodeMap.remove(nodeKey, nodeMap.get(nodeKey));
        } else if (o instanceof String) {
            // Remove by key
            JexlNode node = nodeMap.get(o);
            return nodeMap.remove(o, node);
        }
        return false;
    }

    public  JexlNodeSet();
    public  JexlNodeSet(boolean useSourceNodeForKeys);

}