package topasin.calculate; import java.util.Map; import topasin.compare.AsinComparable; import topasin.compare.AsinComparableFactory; import topasin.describer.TopAsinDescriber; import topasin.util.AsinDetail; import topasin.util.AsinFields; /** * used for hold asin detail for top asin calculation * * @author mengzang * */ public final class AsinDetailAnalysisFields implements Comparable<AsinDetailAnalysisFields> { public AsinDetailAnalysisFields() { comparable = AsinComparableFactory.getAsinComparable(); } public static void init(Map<String, Object> rtOptions) { AsinDetail.addNeededFields(AsinFields.Asin.getName()); } AsinComparable comparable; String groupKey; String asin; TopAsinDescriber[] describers; public String getAsin() { return asin; } public AsinComparable getComparable() { return comparable; } public static AsinDetailAnalysisFields getInstance(AsinDetail asinDetail) { AsinDetailAnalysisFields ret = new AsinDetailAnalysisFields(); ret.fillInstance(asinDetail); return ret; } public void fillInstance(AsinDetail asinDetail) { asin = asinDetail.getAsin(); groupKey = asinDetail.getGroupKey(); } public String getGroupKey() { return groupKey; } @Override public int hashCode() { return asin.hashCode(); } @Override public boolean equals(Object obj) { return asin.equals(obj); } @Override public String toString() { return "AsinDetailAnalysisFields [groupKey=" + groupKey + ", asin=" + asin + "]"; } @Override public int compareTo(AsinDetailAnalysisFields anotherAsin) { return comparable.compareForTopAsin(anotherAsin.comparable); } public void setDescribers(TopAsinDescriber[] describers) { this.describers = describers; } public TopAsinDescriber[] getDescribers() { return describers; } }