MCPcopy Create free account
hub / github.com/MariaDB/server / ColumnDesc

Method ColumnDesc

storage/connect/Mongo2Interface.java:257–344  ·  view source on GitHub ↗
(Object obj, int n, int[] val, int lvl)

Source from the content-addressed store, hash-verified

255 } // end of GetColumns
256
257 public Object ColumnDesc(Object obj, int n, int[] val, int lvl) {
258 Object ret = null;
259 Object oval = ((obj != null) ? obj : doc);
260 BasicDBObject dob = (oval instanceof BasicDBObject) ? (BasicDBObject) oval : null;
261 BasicDBList ary = (oval instanceof BasicDBList) ? (BasicDBList) oval : null;
262
263 try {
264 if (ary != null) {
265 oval = ary.get(n);
266 ovalName = Integer.toString(n);
267 } else if (dob != null) {
268 // String[] k = dob.keySet().toArray(new String[0]);
269 Object[] k = dob.keySet().toArray();
270 oval = dob.get(k[n]);
271 ovalName = (String) k[n];
272 } else
273 ovalName = "x" + Integer.toString(n);
274
275 if (DEBUG)
276 System.out.println("Class of " + ovalName + " = " + oval.getClass());
277
278 val[0] = 0; // ColumnType
279 val[1] = 0; // Precision
280 val[2] = 0; // Scale
281 val[3] = 0; // Nullable
282 val[4] = 0; // ncol
283
284 if (oval == null) {
285 val[3] = 1;
286 } else if (oval instanceof String) {
287 val[0] = 1;
288 val[1] = ((String) oval).length();
289 } else if (oval instanceof org.bson.types.ObjectId) {
290 val[0] = 1;
291 val[1] = ((org.bson.types.ObjectId) oval).toString().length();
292 } else if (oval instanceof Integer) {
293 val[0] = 7;
294 val[1] = Integer.toString(((Integer) oval).intValue()).length();
295 } else if (oval instanceof Long) {
296 val[0] = 5;
297 val[1] = Long.toString(((Long) oval).longValue()).length();
298 } else if (oval instanceof Date) {
299 Long TS = (((Date) oval).getTime() / 1000);
300 val[0] = 8;
301 val[1] = TS.toString().length();
302 } else if (oval instanceof Double) {
303 String d = Double.toString(((Double) oval).doubleValue());
304 int i = d.indexOf('.') + 1;
305
306 val[0] = 2;
307 val[1] = d.length();
308 val[2] = (i > 0) ? val[1] - i : 0;
309 } else if (oval instanceof Boolean) {
310 val[0] = 4;
311 val[1] = 1;
312 } else if (oval instanceof BasicDBObject) {
313 if (lvl > 0) {
314 ret = oval;

Callers

nothing calls this directly

Calls 5

SetErrmsgMethod · 0.95
getTimeMethod · 0.80
getMethod · 0.45
lengthMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected