| package com.intellij.tasks.generic; |
| |
| import com.intellij.util.xmlb.annotations.Attribute; |
| import com.intellij.util.xmlb.annotations.Tag; |
| import org.jetbrains.annotations.NotNull; |
| |
| /** |
| * @author Mikhail Golubev |
| */ |
| |
| @Tag("selector") |
| public final class Selector { |
| @NotNull private String myName; |
| @NotNull private String myPath; |
| |
| |
| /** |
| * Serialization constructor |
| */ |
| @SuppressWarnings({"UnusedDeclatation"}) |
| public Selector() { |
| // empty |
| } |
| |
| public Selector(@NotNull String name) { |
| this(name, ""); |
| } |
| |
| public Selector(@NotNull String name, @NotNull String path) { |
| myName = name; |
| myPath = path; |
| } |
| |
| public Selector(Selector other) { |
| myName = other.myName; |
| myPath = other.myPath; |
| } |
| |
| @Attribute("name") |
| @NotNull |
| public String getName() { |
| return myName; |
| } |
| |
| @Attribute("path") |
| @NotNull |
| public String getPath() { |
| return myPath; |
| } |
| |
| public void setName(@NotNull String name) { |
| myName = name; |
| } |
| |
| public void setPath(@NotNull String path) { |
| myPath = path; |
| } |
| |
| public Selector clone() { |
| return new Selector(this); |
| } |
| |
| @Override |
| public String toString() { |
| return String.format("Selector(name='%s', path='%s')", getName(), getPath()); |
| } |
| |
| @Override |
| public boolean equals(Object o) { |
| if (this == o) return true; |
| if (o == null || getClass() != o.getClass()) return false; |
| |
| Selector selector = (Selector)o; |
| |
| if (!myName.equals(selector.myName)) return false; |
| if (!myPath.equals(selector.myPath)) return false; |
| |
| return true; |
| } |
| |
| @Override |
| public int hashCode() { |
| int result = myName.hashCode(); |
| result = (31 * result) + (myPath.hashCode()); |
| return result; |
| } |
| } |