blob: e140fc80bafad27451e8f7a8847f7544a3fc6bc8 [file] [log] [blame]
package com.intellij.openapi.externalSystem.model;
import com.intellij.openapi.util.text.StringUtil;
import org.jetbrains.annotations.NotNull;
import java.io.Serializable;
/**
* The general idea of 'external system' integration is to provide management facilities for the project structure defined in
* terms over than IntelliJ (e.g. maven, gradle, eclipse etc).
* <p/>
* This class serves as an id of a system which defines project structure, i.e. it might be any external system or the ide itself.
*
* @author Denis Zhdanov
* @since 2/14/12 12:59 PM
*/
public class ProjectSystemId implements Serializable {
private static final long serialVersionUID = 1L;
@NotNull public static final ProjectSystemId IDE = new ProjectSystemId("IDE");
@NotNull private final String myId;
@NotNull private final String myReadableName;
public ProjectSystemId(@NotNull String id) {
this(id, StringUtil.capitalize(id.toLowerCase()));
}
public ProjectSystemId(@NotNull String id, @NotNull String readableName) {
myId = id;
myReadableName = readableName;
}
@Override
public int hashCode() {
return myId.hashCode();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ProjectSystemId owner = (ProjectSystemId)o;
return myId.equals(owner.myId);
}
@NotNull
public String getId() {
return myId;
}
@NotNull
public String getReadableName() {
return myReadableName;
}
@Override
public String toString() {
return myId;
}
}