All Downloads are FREE. Search and download functionalities are using the official Maven repository.

czsem.netgraph.treesource.TreeSource Maven / Gradle / Ivy

package czsem.netgraph.treesource;

import java.util.Collection;
import java.util.Comparator;
import java.util.List;

public interface TreeSource {
	
	public static interface NodeLabel {
		String getLeftPart();
		String getMiddle();
		String getRightPart();
	}
	
	public E getRoot();
	public Collection getChildren(E parent);
	public List getLabels(E node);
	public Comparator getOrderComparator();
	public int getNodeType(E node);
	public default int getEdgeType(E parent, E child) {
		return getNodeType(child);
	}
	
	public static class StaticLabel implements NodeLabel {

		private final String l;
		private final String m;
		private final String r;

		public StaticLabel(String l, String m, String r) {
			this.l = l;
			this.m = m;
			this.r = r;
		}

		public StaticLabel(String m) {
			this("", m, "");
		}
		
		@Override
		public String getMiddle() {	return m; }
		@Override
		public String getLeftPart() { return l; }
		@Override
		public String getRightPart() { return r; }
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy