Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions io/src/main/scala/sbt/io/NameFilter.scala
Original file line number Diff line number Diff line change
Expand Up @@ -138,37 +138,37 @@ final class ExtensionFilter(val extensions: String*) extends NameFilter {

/** Constructs a filter that accepts a `File` if it matches either this filter or the given `filter`. */
override def |(filter: NameFilter): NameFilter = filter match {
case that: ExtensionFilter => new ExtensionFilter(this.extensions ++ that.extensions: _*)
case that: ExtensionFilter => new ExtensionFilter((this.extensions ++ that.extensions)*)
case _ => super.|(filter)
}

/** Constructs a filter that accepts a `File` if it matches both this filter and the given `filter`. */
override def &(filter: NameFilter): NameFilter = filter match {
case that: ExtensionFilter => new ExtensionFilter(this.extensions intersect that.extensions: _*)
case that: ExtensionFilter => new ExtensionFilter(this.extensions.intersect(that.extensions)*)
case _ => super.&(filter)
}

/** Constructs a filter that accepts a `File` if it matches this filter but does not match the given `filter`. */
override def -(filter: NameFilter): NameFilter = filter match {
case that: ExtensionFilter => new ExtensionFilter(this.extensions diff that.extensions: _*)
case that: ExtensionFilter => new ExtensionFilter(this.extensions.diff(that.extensions)*)
case _ => super.-(filter)
}

/** Constructs a filter that accepts a `File` if it matches either this filter or the given `filter`. */
override def ||(filter: FileFilter): FileFilter = filter match {
case that: ExtensionFilter => new ExtensionFilter(this.extensions ++ that.extensions: _*)
case that: ExtensionFilter => new ExtensionFilter((this.extensions ++ that.extensions)*)
case _ => super.||(filter)
}

/** Constructs a filter that accepts a `File` if it matches both this filter and the given `filter`. */
override def &&(filter: FileFilter): FileFilter = filter match {
case that: ExtensionFilter => new ExtensionFilter(this.extensions intersect that.extensions: _*)
case that: ExtensionFilter => new ExtensionFilter(this.extensions.intersect(that.extensions)*)
case _ => super.&&(filter)
}

/** Constructs a filter that accepts a `File` if it matches this filter but does not match the given `filter`. */
override def --(filter: FileFilter): FileFilter = filter match {
case that: ExtensionFilter => new ExtensionFilter(this.extensions diff that.extensions: _*)
case that: ExtensionFilter => new ExtensionFilter(this.extensions.diff(that.extensions)*)
case _ => super.--(filter)
}
override def toString: String = s"ExtensionFilter(${extensions mkString ","})"
Expand Down