blob: 10d332bddc0d8526a05e2442dbe8681d29a6c921 [file] [log] [blame]
package com.intellij.openapi.externalSystem.model.project;
import com.intellij.openapi.externalSystem.model.ProjectSystemId;
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil;
import org.jetbrains.annotations.NotNull;
/**
* Not thread-safe.
*
* @author Denis Zhdanov
* @since 8/1/11 1:30 PM
*/
public class ProjectData extends AbstractNamedData implements ExternalConfigPathAware, Identifiable {
private static final long serialVersionUID = 1L;
@NotNull private final String myLinkedExternalProjectPath;
@NotNull private String myIdeProjectFileDirectoryPath;
@Deprecated
public ProjectData(@NotNull ProjectSystemId owner,
@NotNull String ideProjectFileDirectoryPath,
@NotNull String linkedExternalProjectPath) {
super(owner, "unnamed");
myLinkedExternalProjectPath = ExternalSystemApiUtil.toCanonicalPath(linkedExternalProjectPath);
myIdeProjectFileDirectoryPath = ExternalSystemApiUtil.toCanonicalPath(ideProjectFileDirectoryPath);
}
public ProjectData(@NotNull ProjectSystemId owner,
@NotNull String externalName,
@NotNull String ideProjectFileDirectoryPath,
@NotNull String linkedExternalProjectPath) {
super(owner, externalName);
myLinkedExternalProjectPath = ExternalSystemApiUtil.toCanonicalPath(linkedExternalProjectPath);
myIdeProjectFileDirectoryPath = ExternalSystemApiUtil.toCanonicalPath(ideProjectFileDirectoryPath);
}
@Deprecated
@Override
public void setName(@NotNull String name) {
super.setExternalName(name);
super.setInternalName(name);
}
@NotNull
public String getIdeProjectFileDirectoryPath() {
return myIdeProjectFileDirectoryPath;
}
public void setIdeProjectFileDirectoryPath(@NotNull String ideProjectFileDirectoryPath) {
myIdeProjectFileDirectoryPath = ExternalSystemApiUtil.toCanonicalPath(ideProjectFileDirectoryPath);
}
@NotNull
public String getLinkedExternalProjectPath() {
return myLinkedExternalProjectPath;
}
@Override
public int hashCode() {
int result = super.hashCode();
result = 31 * result + myIdeProjectFileDirectoryPath.hashCode();
return result;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
ProjectData project = (ProjectData)o;
if (!myIdeProjectFileDirectoryPath.equals(project.myIdeProjectFileDirectoryPath)) return false;
return true;
}
@Override
public String toString() {
return String.format("%s project '%s'", getOwner().toString().toLowerCase(), getExternalName());
}
@NotNull
@Override
public String getId() {
return "";
}
}