org.xmind.core.internal.TopicCompartor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xmindjbehaveplugin Show documentation
Show all versions of xmindjbehaveplugin Show documentation
Plugin that manages JBehave stories storage in XMind mindmap file, which allows design jBehave tests right after the brainstorm
The newest version!
/* ******************************************************************************
* Copyright (c) 2006-2012 XMind Ltd. and others.
*
* This file is a part of XMind 3. XMind releases 3 and
* above are dual-licensed under the Eclipse Public License (EPL),
* which is available at http://www.eclipse.org/legal/epl-v10.html
* and the GNU Lesser General Public License (LGPL),
* which is available at http://www.gnu.org/licenses/lgpl.html
* See http://www.xmind.net/license.html for details.
*
* Contributors:
* XMind Ltd. - initial API and implementation
*******************************************************************************/
package org.xmind.core.internal;
import java.util.Comparator;
import org.xmind.core.ITopic;
public class TopicCompartor implements Comparator {
public int compare(ITopic o1, ITopic o2) {
ITopic a1 = o1;
ITopic a2;
ITopic parent = a1.getParent();
do {
a2 = findSibling(a1, parent, o2);
if (a2 != null) {
return compareSibling(a1, a2);
}
a1 = parent;
parent = a1.getParent();
} while (a1 != null);
return 1;
}
private int compareSibling(ITopic t1, ITopic t2) {
if (t1.equals(t2))
return 0;
return t1.getIndex() - t2.getIndex();
}
private ITopic findSibling(ITopic t, ITopic parent, ITopic child) {
if (t == null || child == null)
return null;
ITopic p = child.getParent();
if ((parent == null && p == null)
|| (parent != null && parent.equals(p))) {
return child;
}
return findSibling(t, parent, p);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy