diff src/org/tmatesoft/hg/internal/IntTuple.java @ 674:cce0387c6041

Introduced dedicated IntSliceSeq/IntTuple in place of IntArray with subsequences
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Wed, 17 Jul 2013 15:40:51 +0200
parents
children 1c49c0cee540
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/tmatesoft/hg/internal/IntTuple.java	Wed Jul 17 15:40:51 2013 +0200
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2013 TMate Software Ltd
+ *  
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * For information on how to redistribute this software under
+ * the terms of a license other than GNU General Public License
+ * contact TMate Software at support@hg4j.com
+ */
+package org.tmatesoft.hg.internal;
+
+/**
+ * Tuple of integers
+ * @author Artem Tikhomirov
+ * @author TMate Software Ltd.
+ */
+public final class IntTuple implements Cloneable {
+	private final int size;
+	private IntVector v;
+	private int start;
+
+	IntTuple(int length) {
+		size = length;
+	}
+	/*package*/IntTuple set(IntVector vect, int index) {
+		v = vect;
+		start = index;
+		return this;
+	}
+	
+	public int size() {
+		return size;
+	}
+
+	public int at(int index) {
+		if (index < size) {
+			return v.get(start + index);
+		}
+		throw new IllegalArgumentException(String.valueOf(index));
+	}
+	
+	public IntTuple clone() {
+		try {
+			return (IntTuple) super.clone();
+		} catch (CloneNotSupportedException ex) {
+			throw new Error(ex);
+		}
+	}
+}
\ No newline at end of file