String (@Nullable String projectPath, @Nullable String goal) { StringBuilder result = new StringBuilder(ACTION_ID_PREFIX); result.append(myProject.getLocationHash()); if (projectPath != null) { String portablePath = FileUtil.toSystemIndependentName(projectPath); result.append(new File(portablePath).getParentFile().getName()); result.append(Integer.toHexString(portablePath.hashCode())); if (goal != null) result.append(goal); } return result.toString(); }