public EOKeyGlobalID permanentGlobalID(boolean generateIfMissing) {
if (_permanentGlobalID == null) {
final EOEditingContext ec = editingContext();
if (ec != null) {
final EOGlobalID gid = ec.globalIDForObject(this);
if (!gid.isTemporary()) {
_permanentGlobalID = (EOKeyGlobalID) gid;
}
else if (generateIfMissing) {
final NSDictionary<String, Object> primaryKeyDictionary = primaryKeyDictionary(false);
final Object[] values;