package org.eclipse.viatra.solver.data.map.internal; import java.util.Map; import org.eclipse.viatra.solver.data.map.ContinousHashProvider; public abstract class Node{ protected static final int branchingFactorBit = 5; protected static final int factor = 1< hashProvider, VALUE defaultValue, int hash, int depth); abstract public Node putValue(KEY key, VALUE value, ContinousHashProvider hashProvider, VALUE defaultValue, int hash, int depth); abstract public long getSize(); abstract MutableNode toMutable(); public abstract ImmutableNode toImmutable(); public abstract ImmutableNode toImmutable( Map,ImmutableNode> cache); /** * Moves a {@link MapCursor} to its next position. * @param cursor the cursor * @return Whether there was a next value to move on. */ abstract boolean moveToNext(MapCursor cursor); ///////// FOR printing abstract public void prettyPrint(StringBuilder builder, int depth, int code); @Override public String toString() { StringBuilder stringBuilder = new StringBuilder(); prettyPrint(stringBuilder, 0, -1); return stringBuilder.toString(); } public void checkIntegrity(ContinousHashProvider hashProvider, VALUE defaultValue, int depth) {} }