Skip to content

Commit 7aae1ba

Browse files
committed
opt for ObTableObjType
1 parent fa39780 commit 7aae1ba

File tree

1 file changed

+25
-31
lines changed

1 file changed

+25
-31
lines changed

src/main/java/com/alipay/oceanbase/rpc/protocol/payload/impl/ObTableObjType.java

Lines changed: 25 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,8 @@ public void decode(ByteBuf buf, ObObj obj) {
188188
private static Map<Integer, ObTableObjType> valueMap = new HashMap<Integer, ObTableObjType>();
189189
// mapping from ObTableObjType to ObObjType
190190
private static Map<ObTableObjType, ObObjType> tableObjTypeMap = new HashMap<>();
191+
// mapping from ObObjType to ObTableObjType
192+
private static Map<ObObjType, ObTableObjType> objTableTypeMap = new HashMap<>();
191193

192194
ObTableObjType(int value) {
193195
this.value = value;
@@ -199,46 +201,38 @@ public void decode(ByteBuf buf, ObObj obj) {
199201
}
200202
}
201203

204+
static {
205+
objTableTypeMap.put(ObObjType.ObNullType, ObTableObjType.ObTableNullType);
206+
objTableTypeMap.put(ObObjType.ObTinyIntType, ObTableObjType.ObTableTinyIntType);
207+
objTableTypeMap.put(ObObjType.ObSmallIntType, ObTableObjType.ObTableSmallIntType);
208+
objTableTypeMap.put(ObObjType.ObInt32Type, ObTableObjType.ObTableInt32Type);
209+
objTableTypeMap.put(ObObjType.ObInt64Type, ObTableObjType.ObTableInt64Type);
210+
objTableTypeMap.put(ObObjType.ObVarcharType, ObTableObjType.ObTableVarcharType);
211+
objTableTypeMap.put(ObObjType.ObDoubleType, ObTableObjType.ObTableDoubleType);
212+
objTableTypeMap.put(ObObjType.ObFloatType, ObTableObjType.ObTableFloatType);
213+
objTableTypeMap.put(ObObjType.ObTimestampType, ObTableObjType.ObTableTimestampType);
214+
objTableTypeMap.put(ObObjType.ObDateTimeType, ObTableObjType.ObTableDateTimeType);
215+
objTableTypeMap.put(ObObjType.ObExtendType, null);
216+
objTableTypeMap.put(ObObjType.ObCharType, ObTableObjType.ObTableCharType);
217+
}
218+
202219
public static ObTableObjType getTableObjType(ObObj obj) {
203220
ObObjType objType = obj.getMeta().getType();
204221
ObCollationType objCsType = obj.getMeta().getCsType();
205-
if (objType == ObObjType.ObNullType) {
206-
// only for GET operation default value
207-
return ObTableNullType;
208-
} else if (objType == ObObjType.ObTinyIntType) {
209-
return ObTableTinyIntType;
210-
} else if (objType == ObObjType.ObSmallIntType) {
211-
return ObTableObjType.ObTableSmallIntType;
212-
} else if (objType == ObObjType.ObInt32Type) {
213-
return ObTableObjType.ObTableInt32Type;
214-
} else if (objType == ObObjType.ObInt64Type) {
215-
return ObTableObjType.ObTableInt64Type;
216-
} else if (objType == ObObjType.ObVarcharType) {
217-
if (objCsType == ObCollationType.CS_TYPE_BINARY) {
218-
return ObTableObjType.ObTableVarbinaryType;
219-
} else {
220-
return ObTableObjType.ObTableVarcharType;
221-
}
222-
} else if (objType == ObObjType.ObDoubleType) {
223-
return ObTableObjType.ObTableDoubleType;
224-
} else if (objType == ObObjType.ObFloatType) {
225-
return ObTableObjType.ObTableFloatType;
226-
} else if (objType == ObObjType.ObTimestampType) {
227-
return ObTableObjType.ObTableTimestampType;
228-
} else if (objType == ObObjType.ObDateTimeType) {
229-
return ObTableObjType.ObTableDateTimeType;
222+
ObTableObjType tableObjType = objTableTypeMap.get(objType);
223+
if (objType == ObObjType.ObVarcharType && objCsType == ObCollationType.CS_TYPE_BINARY) {
224+
tableObjType = ObTableObjType.ObTableVarbinaryType;
230225
} else if (objType == ObObjType.ObExtendType) {
231226
if (obj.isMinObj()) {
232-
return ObTableObjType.ObTableMinType;
227+
tableObjType = ObTableObjType.ObTableMinType;
233228
} else if (obj.isMaxObj()) {
234-
return ObTableObjType.ObTableMaxType;
229+
tableObjType = ObTableObjType.ObTableMaxType;
235230
}
236-
} else if (objType == ObObjType.ObCharType) {
237-
return ObTableObjType.ObTableCharType;
231+
} else if (tableObjType == null) {
232+
throw new IllegalArgumentException("Cannot get ObTableObjType, invalid ob obj type: " + objType);
238233
}
239234

240-
throw new IllegalArgumentException("cannot get ObTableObjType, invalid ob obj type: "
241-
+ objType.getClass().getName());
235+
return tableObjType;
242236
}
243237

244238
static {

0 commit comments

Comments
 (0)