You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2015/10/26 13:57:48 UTC
[05/22] ignite git commit: IGNITE-1770: Reader refactoring (3).
IGNITE-1770: Reader refactoring (3).
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/5bfb9a05
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/5bfb9a05
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/5bfb9a05
Branch: refs/heads/ignite-1770
Commit: 5bfb9a052ddec80de52e1db639862f58ad967cd3
Parents: 1fc0757
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Mon Oct 26 12:10:22 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Mon Oct 26 12:10:22 2015 +0300
----------------------------------------------------------------------
.../internal/portable/PortableReaderExImpl.java | 195 ++++++++-----------
1 file changed, 76 insertions(+), 119 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/5bfb9a05/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableReaderExImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableReaderExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableReaderExImpl.java
index 12b8258..f781a89 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableReaderExImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableReaderExImpl.java
@@ -1408,7 +1408,7 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @throws PortableException In case of error.
*/
@Nullable private Object unmarshal(boolean raw, boolean detach) throws PortableException {
- int start = raw ? rawOff : off;
+ int start = offset(raw);
byte flag = doReadByte(raw);
@@ -1573,10 +1573,7 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
throw new PortableException("Failed to unmarshal object with optmMarsh marshaller", e);
}
- if (raw)
- rawOff += len;
- else
- off += len;
+ shiftOffset(raw, len);
return obj;
@@ -1600,14 +1597,11 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @return Value.
*/
public short doReadShort(boolean raw) {
- in.position(raw ? rawOff : off);
+ in.position(offset(raw));
short val = in.readShort();
- if (raw)
- rawOff += 2;
- else
- off += 2;
+ shiftOffset(raw, 2);
return val;
}
@@ -1617,14 +1611,11 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @return Value.
*/
private int doReadInt(boolean raw) {
- in.position(raw ? rawOff : off);
+ in.position(offset(raw));
int val = in.readInt();
- if (raw)
- rawOff += 4;
- else
- off += 4;
+ shiftOffset(raw, 4);
return val;
}
@@ -1634,14 +1625,11 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @return Value.
*/
private long doReadLong(boolean raw) {
- in.position(raw ? rawOff : off);
+ in.position(offset(raw));
long val = in.readLong();
- if (raw)
- rawOff += 8;
- else
- off += 8;
+ shiftOffset(raw, 8);
return val;
}
@@ -1651,14 +1639,11 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @return Value.
*/
private float doReadFloat(boolean raw) {
- in.position(raw ? rawOff : off);
+ in.position(offset(raw));
float val = in.readFloat();
- if (raw)
- rawOff += 4;
- else
- off += 4;
+ shiftOffset(raw, 4);
return val;
}
@@ -1668,14 +1653,11 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @return Value.
*/
private double doReadDouble(boolean raw) {
- in.position(raw ? rawOff : off);
+ in.position(offset(raw));
double val = in.readDouble();
- if (raw)
- rawOff += 8;
- else
- off += 8;
+ shiftOffset(raw, 8);
return val;
}
@@ -1685,14 +1667,11 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @return Value.
*/
private char doReadChar(boolean raw) {
- in.position(raw ? rawOff : off);
+ in.position(offset(raw));
char val = in.readChar();
- if (raw)
- rawOff += 2;
- else
- off += 2;
+ shiftOffset(raw, 2);
return val;
}
@@ -1736,14 +1715,11 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
return new String(doReadByteArray(raw), UTF_8);
int strLen = doReadInt(raw);
- int strOff = raw ? rawOff : off;
+ int strOff = offset(raw);
String res = new String(in.array(), strOff, strLen, UTF_8);
- if (raw)
- rawOff += strLen;
- else
- off += strLen;
+ shiftOffset(raw, strLen);
// TODO: Opto.
//in.position(in.position() + strLen);
@@ -1793,14 +1769,11 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @throws PortableException In case of error.
*/
@Nullable private Object doReadObject(boolean raw) throws PortableException {
- PortableReaderExImpl reader = new PortableReaderExImpl(ctx, in, raw ? rawOff : off, ldr, rCtx);
+ PortableReaderExImpl reader = new PortableReaderExImpl(ctx, in, offset(raw), ldr, rCtx);
Object obj = reader.deserialize();
- if (raw)
- rawOff += reader.len;
- else
- off += reader.len;
+ shiftOffset(raw, reader.len);
return obj;
}
@@ -2065,20 +2038,17 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @return Value.
*/
private byte[] doReadByteArray(boolean raw) {
- int hPos = (raw ? rawOff : off) - 1;
+ int hPos = (offset(raw)) - 1;
int len = doReadInt(raw);
- in.position(raw ? rawOff : off);
+ in.position(offset(raw));
byte[] arr = in.readByteArray(len);
setHandler(arr, hPos);
- if (raw)
- rawOff += len;
- else
- off += len;
+ shiftOffset(raw, len);
return arr;
}
@@ -2088,22 +2058,17 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @return Value.
*/
private short[] doReadShortArray(boolean raw) {
- int hPos = (raw ? rawOff : off) - 1;
+ int hPos = (offset(raw)) - 1;
int len = doReadInt(raw);
- in.position(raw ? rawOff : off);
+ in.position(offset(raw));
short[] arr = in.readShortArray(len);
setHandler(arr, hPos);
- int bytes = len << 1;
-
- if (raw)
- rawOff += bytes;
- else
- off += bytes;
+ shiftOffset(raw, len << 1);
return arr;
}
@@ -2113,22 +2078,17 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @return Value.
*/
private int[] doReadIntArray(boolean raw) {
- int hPos = (raw ? rawOff : off) - 1;
+ int hPos = (offset(raw)) - 1;
int len = doReadInt(raw);
- in.position(raw ? rawOff : off);
+ in.position(offset(raw));
int[] arr = in.readIntArray(len);
setHandler(arr, hPos);
- int bytes = len << 2;
-
- if (raw)
- rawOff += bytes;
- else
- off += bytes;
+ shiftOffset(raw, len << 2);
return arr;
}
@@ -2138,22 +2098,17 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @return Value.
*/
private long[] doReadLongArray(boolean raw) {
- int hPos = (raw ? rawOff : off) - 1;
+ int hPos = (offset(raw)) - 1;
int len = doReadInt(raw);
- in.position(raw ? rawOff : off);
+ in.position(offset(raw));
long[] arr = in.readLongArray(len);
setHandler(arr, hPos);
- int bytes = len << 3;
-
- if (raw)
- rawOff += bytes;
- else
- off += bytes;
+ shiftOffset(raw, len << 3);
return arr;
}
@@ -2163,22 +2118,17 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @return Value.
*/
private float[] doReadFloatArray(boolean raw) {
- int hPos = (raw ? rawOff : off) - 1;
+ int hPos = (offset(raw)) - 1;
int len = doReadInt(raw);
- in.position(raw ? rawOff : off);
+ in.position(offset(raw));
float[] arr = in.readFloatArray(len);
setHandler(arr, hPos);
- int bytes = len << 2;
-
- if (raw)
- rawOff += bytes;
- else
- off += bytes;
+ shiftOffset(raw, len << 2);
return arr;
}
@@ -2188,22 +2138,17 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @return Value.
*/
private double[] doReadDoubleArray(boolean raw) {
- int hPos = (raw ? rawOff : off) - 1;
+ int hPos = (offset(raw)) - 1;
int len = doReadInt(raw);
- in.position(raw ? rawOff : off);
+ in.position(offset(raw));
double[] arr = in.readDoubleArray(len);
setHandler(arr, hPos);
- int bytes = len << 3;
-
- if (raw)
- rawOff += bytes;
- else
- off += bytes;
+ shiftOffset(raw, len << 3);
return arr;
}
@@ -2213,22 +2158,17 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @return Value.
*/
private char[] doReadCharArray(boolean raw) {
- int hPos = (raw ? rawOff : off) - 1;
+ int hPos = (offset(raw)) - 1;
int len = doReadInt(raw);
- in.position(raw ? rawOff : off);
+ in.position(offset(raw));
char[] arr = in.readCharArray(len);
setHandler(arr, hPos);
- int bytes = len << 1;
-
- if (raw)
- rawOff += bytes;
- else
- off += bytes;
+ shiftOffset(raw, len << 1);
return arr;
}
@@ -2238,20 +2178,17 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @return Value.
*/
private boolean[] doReadBooleanArray(boolean raw) {
- int hPos = (raw ? rawOff : off) - 1;
+ int hPos = (offset(raw)) - 1;
int len = doReadInt(raw);
- in.position(raw ? rawOff : off);
+ in.position(offset(raw));
boolean[] arr = in.readBooleanArray(len);
setHandler(arr, hPos);
- if (raw)
- rawOff += len;
- else
- off += len;
+ shiftOffset(raw, len);
return arr;
}
@@ -2262,7 +2199,7 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @throws PortableException In case of error.
*/
private BigDecimal[] doReadDecimalArray(boolean raw) throws PortableException {
- int hPos = (raw ? rawOff : off) - 1;
+ int hPos = (offset(raw)) - 1;
int len = doReadInt(raw);
@@ -2292,7 +2229,7 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @throws PortableException In case of error.
*/
private String[] doReadStringArray(boolean raw) throws PortableException {
- int hPos = (raw ? rawOff : off) - 1;
+ int hPos = (offset(raw)) - 1;
int len = doReadInt(raw);
@@ -2322,7 +2259,7 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @throws PortableException In case of error.
*/
private UUID[] doReadUuidArray(boolean raw) throws PortableException {
- int hPos = (raw ? rawOff : off) - 1;
+ int hPos = (offset(raw)) - 1;
int len = doReadInt(raw);
@@ -2352,7 +2289,7 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @throws PortableException In case of error.
*/
private Date[] doReadDateArray(boolean raw) throws PortableException {
- int hPos = (raw ? rawOff : off) - 1;
+ int hPos = (offset(raw)) - 1;
int len = doReadInt(raw);
@@ -2382,7 +2319,7 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @throws PortableException In case of error.
*/
private Timestamp[] doReadTimestampArray(boolean raw) throws PortableException {
- int hPos = (raw ? rawOff : off) - 1;
+ int hPos = (offset(raw)) - 1;
int len = doReadInt(raw);
@@ -2413,7 +2350,7 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @throws PortableException In case of error.
*/
private Object[] doReadObjectArray(boolean raw, boolean deep) throws PortableException {
- int hPos = (raw ? rawOff : off) - 1;
+ int hPos = (offset(raw)) - 1;
Class compType = doReadClass(raw);
@@ -2439,7 +2376,7 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
@SuppressWarnings("unchecked")
private Collection<?> doReadCollection(boolean raw, boolean deep, @Nullable Class<? extends Collection> cls)
throws PortableException {
- int hPos = (raw ? rawOff : off) - 1;
+ int hPos = (offset(raw)) - 1;
int size = doReadInt(raw);
@@ -2528,7 +2465,7 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
@SuppressWarnings("unchecked")
private Map<?, ?> doReadMap(boolean raw, boolean deep, @Nullable Class<? extends Map> cls)
throws PortableException {
- int hPos = (raw ? rawOff : off) - 1;
+ int hPos = (offset(raw)) - 1;
int size = doReadInt(raw);
@@ -2604,7 +2541,7 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
* @throws PortableException In case of error.
*/
private Map.Entry<?, ?> doReadMapEntry(boolean raw, boolean deep) throws PortableException {
- int hPos = (raw ? rawOff : off) - 1;
+ int hPos = (offset(raw)) - 1;
Object val1 = deep ? doReadObject(raw) : unmarshal(raw);
Object val2 = deep ? doReadObject(raw) : unmarshal(raw);
@@ -2624,12 +2561,9 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
if (in.offheapPointer() > 0) {
int len = doReadInt(raw);
- int pos = raw ? rawOff : off;
+ int pos = offset(raw);
- if (raw)
- rawOff += len;
- else
- off += len;
+ shiftOffset(raw, len);
int start = doReadInt(raw);
@@ -2906,6 +2840,29 @@ public class PortableReaderExImpl implements PortableReader, PortableRawReaderEx
}
/**
+ * Get offset.
+ *
+ * @param raw Raw flag.
+ * @return Offset.
+ */
+ private int offset(boolean raw) {
+ return raw ? rawOff : off;
+ }
+
+ /**
+ * Shift offset.
+ *
+ * @param raw Raw flag.
+ * @param cnt Count.
+ */
+ private void shiftOffset(boolean raw, int cnt) {
+ if (raw)
+ rawOff += cnt;
+ else
+ off += cnt;
+ }
+
+ /**
* Flag.
*/
private static enum Flag {