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/11/18 14:40:21 UTC
[47/50] [abbrv] ignite git commit: IGNITE-1917: Refactoring.
IGNITE-1917: Refactoring.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/47e0b876
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/47e0b876
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/47e0b876
Branch: refs/heads/ignite-1917
Commit: 47e0b876f2773422d524ca52f75d25ab7be28b2d
Parents: 2e5f686
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Wed Nov 18 16:11:33 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Nov 18 16:11:33 2015 +0300
----------------------------------------------------------------------
.../internal/portable/BinaryReaderExImpl.java | 295 +++++++++----------
1 file changed, 146 insertions(+), 149 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/47e0b876/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryReaderExImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryReaderExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryReaderExImpl.java
index 3478ddb..72b83e2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryReaderExImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryReaderExImpl.java
@@ -268,7 +268,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @return Unmarshalled value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Object unmarshal() throws BinaryObjectException {
return unmarshal(false);
@@ -277,7 +277,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param offset Offset in the array.
* @return Unmarshalled value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
public Object unmarshal(int offset) throws BinaryObjectException {
in.position(offset);
@@ -288,7 +288,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldName Field name.
* @return Unmarshalled value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Object unmarshalField(String fieldName) throws BinaryObjectException {
return hasField(fieldName) ? unmarshal() : null;
@@ -297,10 +297,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Unmarshalled value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Object unmarshalField(int fieldId) throws BinaryObjectException {
- return hasField(fieldId) ? unmarshal() : null;
+ return findFieldById(fieldId) ? unmarshal() : null;
}
/**
@@ -309,16 +309,16 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
* @throws BinaryObjectException If failed.
*/
byte readBytePrimitive(int fieldId) throws BinaryObjectException {
- return hasField(fieldId) && checkFlag(BYTE) == Flag.NORMAL ? in.readByte() : 0;
+ return findFieldById(fieldId) && checkFlag(BYTE) == Flag.NORMAL ? in.readByte() : 0;
}
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Byte readByte(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
if (checkFlag(BYTE) == Flag.NULL)
return null;
@@ -334,16 +334,16 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
* @throws BinaryObjectException If failed.
*/
short readShortPrimitive(int fieldId) throws BinaryObjectException {
- return hasField(fieldId) && checkFlag(SHORT) == Flag.NORMAL ? in.readShort() : 0;
+ return findFieldById(fieldId) && checkFlag(SHORT) == Flag.NORMAL ? in.readShort() : 0;
}
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Short readShort(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
if (checkFlag(SHORT) == Flag.NULL)
return null;
@@ -358,42 +358,17 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
* @return Value.
* @throws BinaryObjectException If failed.
*/
- int readIntPrimitive(int fieldId) throws BinaryObjectException {
- return hasField(fieldId) && checkFlag(INT) == Flag.NORMAL ? in.readInt() : 0;
- }
-
- /**
- * @param fieldId Field ID.
- * @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
- */
- @Nullable Integer readInt(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
- if (checkFlag(INT) == Flag.NULL)
- return null;
-
- return in.readInt();
- }
- else
- return null;
- }
-
- /**
- * @param fieldId Field ID.
- * @return Value.
- * @throws BinaryObjectException If failed.
- */
long readLongPrimitive(int fieldId) throws BinaryObjectException {
- return hasField(fieldId) && checkFlag(LONG) == Flag.NORMAL ? in.readLong() : 0;
+ return findFieldById(fieldId) && checkFlag(LONG) == Flag.NORMAL ? in.readLong() : 0;
}
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Long readLong(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
if (checkFlag(LONG) == Flag.NULL)
return null;
@@ -409,16 +384,16 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
* @throws BinaryObjectException If failed.
*/
float readFloatPrimitive(int fieldId) throws BinaryObjectException {
- return hasField(fieldId) && checkFlag(FLOAT) == Flag.NORMAL ? in.readFloat() : 0;
+ return findFieldById(fieldId) && checkFlag(FLOAT) == Flag.NORMAL ? in.readFloat() : 0;
}
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Float readFloat(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
if (checkFlag(FLOAT) == Flag.NULL)
return null;
@@ -434,16 +409,16 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
* @throws BinaryObjectException If failed.
*/
double readDoublePrimitive(int fieldId) throws BinaryObjectException {
- return hasField(fieldId) && checkFlag(DOUBLE) == Flag.NORMAL ? in.readDouble() : 0;
+ return findFieldById(fieldId) && checkFlag(DOUBLE) == Flag.NORMAL ? in.readDouble() : 0;
}
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Double readDouble(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
if (checkFlag(DOUBLE) == Flag.NULL)
return null;
@@ -459,16 +434,16 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
* @throws BinaryObjectException If failed.
*/
char readCharPrimitive(int fieldId) throws BinaryObjectException {
- return hasField(fieldId) && checkFlag(CHAR) == Flag.NORMAL ? in.readChar() : 0;
+ return findFieldById(fieldId) && checkFlag(CHAR) == Flag.NORMAL ? in.readChar() : 0;
}
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Character readChar(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
if (checkFlag(CHAR) == Flag.NULL)
return null;
@@ -484,16 +459,16 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
* @throws BinaryObjectException If failed.
*/
boolean readBooleanPrimitive(int fieldId) throws BinaryObjectException {
- return hasField(fieldId) && checkFlag(BOOLEAN) == Flag.NORMAL && in.readBoolean();
+ return findFieldById(fieldId) && checkFlag(BOOLEAN) == Flag.NORMAL && in.readBoolean();
}
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Boolean readBoolean(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
if (checkFlag(BOOLEAN) == Flag.NULL)
return null;
@@ -506,10 +481,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable BigDecimal readDecimal(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
if (checkFlag(DECIMAL) == Flag.NULL)
return null;
@@ -522,10 +497,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable String readString(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
if (checkFlag(STRING) == Flag.NULL)
return null;
@@ -538,10 +513,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable UUID readUuid(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
if (checkFlag(UUID) == Flag.NULL)
return null;
@@ -554,10 +529,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Date readDate(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
if (checkFlag(DATE) == Flag.NULL)
return null;
@@ -570,10 +545,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Timestamp readTimestamp(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
if (checkFlag(TIMESTAMP) == Flag.NULL)
return null;
@@ -586,19 +561,19 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Object readObject(int fieldId) throws BinaryObjectException {
- return hasField(fieldId) ? doReadObject() : null;
+ return findFieldById(fieldId) ? doReadObject() : null;
}
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable byte[] readByteArray(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(BYTE_ARR);
if (flag == Flag.NORMAL)
@@ -613,10 +588,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable short[] readShortArray(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(SHORT_ARR);
if (flag == Flag.NORMAL)
@@ -631,10 +606,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable int[] readIntArray(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(INT_ARR);
if (flag == Flag.NORMAL)
@@ -649,10 +624,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable long[] readLongArray(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(LONG_ARR);
if (flag == Flag.NORMAL)
@@ -667,10 +642,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable float[] readFloatArray(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(FLOAT_ARR);
if (flag == Flag.NORMAL)
@@ -685,10 +660,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable double[] readDoubleArray(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(DOUBLE_ARR);
if (flag == Flag.NORMAL)
@@ -703,10 +678,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable char[] readCharArray(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(CHAR_ARR);
if (flag == Flag.NORMAL)
@@ -721,10 +696,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable boolean[] readBooleanArray(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(BOOLEAN_ARR);
if (flag == Flag.NORMAL)
@@ -739,10 +714,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable BigDecimal[] readDecimalArray(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(DECIMAL_ARR);
if (flag == Flag.NORMAL)
@@ -757,10 +732,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable String[] readStringArray(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(STRING_ARR);
if (flag == Flag.NORMAL)
@@ -775,10 +750,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable UUID[] readUuidArray(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(UUID_ARR);
if (flag == Flag.NORMAL)
@@ -793,10 +768,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Date[] readDateArray(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(DATE_ARR);
if (flag == Flag.NORMAL)
@@ -811,10 +786,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Timestamp[] readTimestampArray(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(TIMESTAMP_ARR);
if (flag == Flag.NORMAL)
@@ -829,10 +804,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Object[] readObjectArray(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(OBJ_ARR);
if (flag == Flag.NORMAL)
@@ -848,11 +823,11 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
* @param fieldId Field ID.
* @param cls Collection class.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable <T> Collection<T> readCollection(int fieldId, @Nullable Class<? extends Collection> cls)
throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(COL);
if (flag == Flag.NORMAL)
@@ -868,11 +843,11 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
* @param fieldId Field ID.
* @param cls Map class.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Map<?, ?> readMap(int fieldId, @Nullable Class<? extends Map> cls)
throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(MAP);
if (flag == Flag.NORMAL)
@@ -887,10 +862,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException On case of error.
+ * @throws BinaryObjectException On case of error.
*/
@Nullable Map.Entry<?, ?> readMapEntry(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(MAP_ENTRY);
if (flag == Flag.NORMAL)
@@ -905,10 +880,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Portable object.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable BinaryObject readPortableObject(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
if (checkFlag(PORTABLE_OBJ) == Flag.NULL)
return null;
@@ -922,10 +897,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
* @param fieldId Field ID.
* @param cls Class.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Enum<?> readEnum(int fieldId, @Nullable Class<?> cls) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
if (checkFlag(ENUM) == Flag.NULL)
return null;
@@ -947,10 +922,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
* @param fieldId Field ID.
* @param cls Class.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Object[] readEnumArray(int fieldId, @Nullable Class<?> cls) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
Flag flag = checkFlag(ENUM_ARR);
if (flag == Flag.NORMAL) {
@@ -971,10 +946,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param fieldId Field ID.
* @return Field class.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable Class<?> readClass(int fieldId) throws BinaryObjectException {
- if (hasField(fieldId)) {
+ if (findFieldById(fieldId)) {
if (checkFlag(CLASS) == Flag.NULL)
return null;
@@ -1044,7 +1019,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/** {@inheritDoc} */
@Override public int readInt(String fieldName) throws BinaryObjectException {
- if (fieldOffset(fieldName) != 0) {
+ if (findFieldByName(fieldName)) {
if (checkFlag(INT) == Flag.NULL)
return 0;
@@ -1054,11 +1029,36 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
return 0;
}
+ /**
+ * @param fieldId Field ID.
+ * @return Value.
+ * @throws BinaryObjectException In case of error.
+ */
+ @Nullable Integer readInt(int fieldId) throws BinaryObjectException {
+ if (findFieldById(fieldId)) {
+ if (checkFlag(INT) == Flag.NULL)
+ return null;
+
+ return in.readInt();
+ }
+ else
+ return null;
+ }
+
+ /**
+ * @param fieldId Field ID.
+ * @return Value.
+ * @throws BinaryObjectException If failed.
+ */
+ int readIntPrimitive(int fieldId) throws BinaryObjectException {
+ return findFieldById(fieldId) && checkFlag(INT) == Flag.NORMAL ? in.readInt() : 0;
+ }
+
/** {@inheritDoc} */
@Override public int readInt() throws BinaryObjectException {
return in.readInt();
}
-
+
/** {@inheritDoc} */
@Override public long readLong(String fieldName) throws BinaryObjectException {
Long val = readLong(fieldId(fieldName));
@@ -1134,7 +1134,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/** {@inheritDoc} */
@Nullable @Override public String readString(String fieldName) throws BinaryObjectException {
- if (fieldOffset(fieldName) != 0) {
+ if (findFieldByName(fieldName)) {
if (checkFlag(STRING) == Flag.NULL)
return null;
@@ -1482,7 +1482,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
*
* @param expFlag Expected value.
* @return Flag.
- * @throws org.apache.ignite.binary.BinaryObjectException If flag is neither null, nor expected.
+ * @throws BinaryObjectException If flag is neither null, nor expected.
*/
private Flag checkFlag(byte expFlag) {
byte flag = in.readByte();
@@ -1506,15 +1506,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
* @return {@code True} if field is set.
*/
public boolean hasField(String fieldName) {
- return hasField(fieldId(fieldName));
- }
-
- /**
- * @param fieldId Field ID.
- * @return {@code True} if field is set.
- */
- private boolean hasField(int fieldId) {
- return fieldOffset(fieldId) != 0;
+ return findFieldById(fieldId(fieldName));
}
/** {@inheritDoc} */
@@ -1526,7 +1518,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @return Unmarshalled value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable private Object unmarshal(boolean detach) throws BinaryObjectException {
int start = in.position();
@@ -1765,7 +1757,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @return Object.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@Nullable private Object doReadObject() throws BinaryObjectException {
BinaryReaderExImpl reader = new BinaryReaderExImpl(ctx, in, ldr, rCtx);
@@ -2148,7 +2140,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
private BigDecimal[] doReadDecimalArray() throws BinaryObjectException {
int hPos = in.position() - 1;
@@ -2177,7 +2169,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
private String[] doReadStringArray() throws BinaryObjectException {
int hPos = in.position() - 1;
@@ -2206,7 +2198,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
private UUID[] doReadUuidArray() throws BinaryObjectException {
int hPos = in.position() - 1;
@@ -2235,7 +2227,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
private Date[] doReadDateArray() throws BinaryObjectException {
int hPos = in.position() - 1;
@@ -2264,7 +2256,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
private Timestamp[] doReadTimestampArray() throws BinaryObjectException {
int hPos = in.position() - 1;
@@ -2294,7 +2286,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param deep Deep flag.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
private Object[] doReadObjectArray(boolean deep) throws BinaryObjectException {
int hPos = in.position() - 1;
@@ -2317,7 +2309,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
* @param deep Deep flag.
* @param cls Collection class.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@SuppressWarnings("unchecked")
private Collection<?> doReadCollection(boolean deep, @Nullable Class<? extends Collection> cls)
@@ -2405,7 +2397,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
* @param deep Deep flag.
* @param cls Map class.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
@SuppressWarnings("unchecked")
private Map<?, ?> doReadMap(boolean deep, @Nullable Class<? extends Map> cls)
@@ -2482,7 +2474,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
/**
* @param deep Deep flag.
* @return Value.
- * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
+ * @throws BinaryObjectException In case of error.
*/
private Map.Entry<?, ?> doReadMapEntry(boolean deep) throws BinaryObjectException {
int hPos = in.position() - 1;
@@ -2669,14 +2661,16 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
}
/**
+ * Try finding the field by name.
+ *
* @param name Field name.
* @return Offset.
*/
- private int fieldOffset(String name) {
+ private boolean findFieldByName(String name) {
assert hdrLen != 0;
if (footerLen == 0)
- return 0;
+ return false;
if (userType) {
int order;
@@ -2705,11 +2699,11 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
// Field name is not know for this order. Need to calculate ID and repeat speculation.
assert confirm == PortableSchema.Confirmation.CLARIFY;
- int requestedId = fieldId(name);
+ int id = fieldId(name);
int realId = schema.fieldId(expOrder);
- if (requestedId == realId) {
- // IDs matched, can register
+ if (id == realId) {
+ // IDs matched, cache field name inside schema.
schema.clarifyFieldName(expOrder, name);
order = expOrder;
@@ -2718,7 +2712,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
// No match, stop further speculations.
matching = false;
- order = schema.order(requestedId);
+ order = schema.order(id);
}
break;
@@ -2727,21 +2721,24 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
else
order = schema.order(fieldId(name));
- return userFieldPosition(order);
+ return trySetUserFieldPosition(order);
}
else
- return systemFieldPosition(fieldId(name));
+ return trySetSystemFieldPosition(fieldId(name));
}
/**
+ * Try finding the field by ID. Used for types with stable schema (Serializable) to avoid
+ * (string -> ID) calculations.
+ *
* @param id Field ID.
- * @return Field offset.
+ * @return Offset.
*/
- private int fieldOffset(int id) {
+ private boolean findFieldById(int id) {
assert hdrLen != 0;
if (footerLen == 0)
- return 0;
+ return false;
if (userType) {
int order;
@@ -2764,10 +2761,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
else
order = schema.order(id);
- return userFieldPosition(order);
+ return trySetUserFieldPosition(order);
}
else
- return systemFieldPosition(id);
+ return trySetSystemFieldPosition(id);
}
/**
@@ -2776,7 +2773,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
* @param order Order.
* @return Position.
*/
- private int userFieldPosition(int order) {
+ private boolean trySetUserFieldPosition(int order) {
if (order != PortableSchema.ORDER_NOT_FOUND) {
int offsetPos = footerStart + order * (fieldIdLen + fieldOffsetLen) + fieldIdLen;
@@ -2784,10 +2781,10 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
in.position(pos);
- return pos;
+ return true;
}
else
- return 0;
+ return false;
}
/**
@@ -2796,16 +2793,16 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
* @param id Field ID.
* @return Position.
*/
- private int systemFieldPosition(int id) {
+ private boolean trySetSystemFieldPosition(int id) {
// System types are never written with compact footers because they do not have metadata.
- assert footerLen == PortableUtils.FIELD_ID_LEN;
+ assert fieldIdLen == PortableUtils.FIELD_ID_LEN;
int searchPos = footerStart;
int searchTail = searchPos + footerLen;
while (true) {
if (searchPos >= searchTail)
- return 0;
+ return false;
int id0 = in.readIntPositioned(searchPos);
@@ -2815,7 +2812,7 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Obje
in.position(pos);
- return pos;
+ return true;
}
searchPos += PortableUtils.FIELD_ID_LEN + fieldOffsetLen;