@Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (!(o instanceof ScalaModelData data)) return false;
    if (!super.equals(o)) return false;

    if (scalaClasspath != null ? !scalaClasspath.equals(data.scalaClasspath) : data.scalaClasspath != null) return false;
    if (scalaCompileOptions != null ? !scalaCompileOptions.equals(data.scalaCompileOptions) : data.scalaCompileOptions != null) {
      return false;
    }
    if (sourceCompatibility != null ? !sourceCompatibility.equals(data.sourceCompatibility) : data.sourceCompatibility != null) {
      return false;
    }
    if (targetCompatibility != null ? !targetCompatibility.equals(data.targetCompatibility) : data.targetCompatibility != null) {
      return false;
    }
    if (zincClasspath != null ? !zincClasspath.equals(data.zincClasspath) : data.zincClasspath != null) return false;
    if (scalaCompilerPlugins != null ? !scalaCompilerPlugins.equals(data.scalaCompilerPlugins) : data.scalaCompilerPlugins != null) return false;

    return true;
  }
@Override
  public boolean equals(Object o)