blob: 38504342559556a87b8cc7630b61e78cf25376b5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
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 {
private static final long serialVersionUID = 1L;
@NotNull private final String myLinkedExternalProjectPath;
@NotNull private String myIdeProjectFileDirectoryPath;
public ProjectData(@NotNull ProjectSystemId owner,
@NotNull String ideProjectFileDirectoryPath,
@NotNull String linkedExternalProjectPath)
{
super(owner, "unnamed");
myLinkedExternalProjectPath = ExternalSystemApiUtil.toCanonicalPath(linkedExternalProjectPath);
myIdeProjectFileDirectoryPath = ExternalSystemApiUtil.toCanonicalPath(ideProjectFileDirectoryPath);
}
@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(), getName());
}
}
|