parseID static method

int? parseID(
  1. dynamic ref, [
  2. int? def
])

Parses ref to an ID. Returns def if parse fails.

Implementation

static int? parseID(dynamic ref, [int? def]) {
  if (ref == null) return def;
  if (ref is int) return ref;
  if (ref is double) return ref.toInt();
  if (ref is ETEntityReference) return ref.id;

  var s = ref.toString();
  var idx = s.indexOf('#');

  if (idx > 0) {
    var idStr = s.substring(idx + 1);
    return parseInt(idStr, def);
  } else {
    return parseInt(s, def);
  }
}