You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

44 lines
1023 B

package com.sothr.imagetools.engine.image
import grizzled.slf4j.Logging
/**
* Similar Image payload class
*
* Created by drew on 1/26/14.
*/
class SimilarImages(var similarImages: Set[Image]) extends Logging {
override def hashCode: Int = {
val prime = 7
var result = prime * similarImages.size
for (similarImage <- similarImages) {
result = prime * result + similarImage.hashCode
}
result
}
override def toString: String = {
s"""Similar Images:
$getPrettySimilarImagesList""".stripMargin
}
protected def getPrettySimilarImagesList: String = {
val sb = new StringBuilder()
for (image <- similarImages) {
sb.append(image.imagePath)
sb.append(System.lineSeparator())
}
sb.toString()
}
def ordering() = {
1 * similarImages.size
similarImages.groupBy(img => img.getImagePath)
}
}
object SimilarImagesOrdering extends Ordering[SimilarImages] {
def compare(a:SimilarImages, b:SimilarImages) = a.ordering() compare b.ordering()
}