long (@NotNull String id, @Nullable String hit, @Nullable String path, @Nullable String groupName, @NotNull IndexedCharsInterner identifierTable) { long _id = identifierTable.toId(id.trim()); long _hit = hit == null ? Short.MAX_VALUE : identifierTable.toId(hit.trim()); long _path = path == null ? Short.MAX_VALUE : identifierTable.toId(path.trim()); long _groupName = groupName == null ? Short.MAX_VALUE : identifierTable.toId(groupName.trim()); assert _id >= 0 && _id < Short.MAX_VALUE; assert _hit >= 0 && _hit <= Short.MAX_VALUE; assert _path >= 0 && _path <= Short.MAX_VALUE; assert _groupName >= 0 && _groupName <= Short.MAX_VALUE; return _groupName << 48 | _id << 32 | _hit << 16 | _path/* << 0*/; }