package xxl.core.indexStructures.descriptors; import java.util.List; import xxl.core.functions.Function; import xxl.core.indexStructures.MVBTree.MVRegion; import xxl.core.indexStructures.MVBTree.MVSeparator; import xxl.core.indexStructures.MVBTree.Version; import xxl.core.indexStructures.mvbts.SimpleLoadMVBTree; /** * * This class is implements interface @see {@link MVSeparator} and is used in the test class @see {@link SimpleLoadMVBTree}. * */ public class LongMVSeparator extends MVSeparator{ /** * */ public static final Function FACTORY_FUNCTION = new Function<Object,Object>(){ public Object invoke() { throw new UnsupportedOperationException(); } public Object invoke(Object arg1) { throw new UnsupportedOperationException(); } public Object invoke(Object arg1, Object arg2) { throw new UnsupportedOperationException(); } public Object invoke(List<? extends Object> arguments) { if(arguments.size() !=3 ) throw new IllegalArgumentException(); Version insertVersion = (Version)arguments.get(0); Version deleteVersion = (Version)arguments.get(1); Long min = new Long((Long)arguments.get(2)); return new LongMVSeparator(insertVersion, deleteVersion, min); } }; /** * * @param insertVersion * @param sepValue */ public LongMVSeparator(Version insertVersion, Long sepValue) { super(insertVersion, sepValue); } /** * * @param insertVersion * @param deleteVersion * @param sepValue */ public LongMVSeparator(Version insertVersion, Version deleteVersion, Long sepValue) { super(insertVersion, deleteVersion, sepValue); } @Override public Object clone() { Long copySepValue = new Long((Long)sepValue()); return new LongMVSeparator((this.insertVersion() != null)? (Version)this.insertVersion().clone() : null , (this.deleteVersion() != null)? (Version)this.deleteVersion().clone() : null, copySepValue); } }