package fr.adrienbrault.idea.symfony2plugin.stubs.dict; import fr.adrienbrault.idea.symfony2plugin.templating.dict.TwigMacroTagInterface; import org.apache.commons.lang.builder.HashCodeBuilder; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.Serializable; import java.util.Objects; /** * @author Daniel Espendiller <daniel@espendiller.net> */ public class TwigMacroTagIndex implements TwigMacroTagInterface, Serializable { @NotNull private final String name; @Nullable private final String parameters; public TwigMacroTagIndex(@NotNull String name, @Nullable String parameters) { this.name = name; this.parameters = parameters; } @NotNull @Override public String getName() { return name; } @Nullable @Override public String getParameters() { return parameters; } @Override public int hashCode() { return new HashCodeBuilder() .append(this.name) .append(this.parameters) .toHashCode(); } @Override public boolean equals(Object obj) { return obj instanceof TwigMacroTagInterface && Objects.equals(((TwigMacroTagInterface) obj).getName(), this.name) && Objects.equals(((TwigMacroTagInterface) obj).getParameters(), this.parameters); } }