package levik.weblet.lh;

import freemarker.template.*;

public class FeelingStat implements TemplateHashModel, java.io.Serializable {
    protected String thing;
    protected int loveNum;
    protected int hateNum;

    public FeelingStat(FeelingSet fs) {
	this(fs.getKey().toString(),fs.getLoveNum(), fs.getHateNum());
    }

    public FeelingStat(String thing, int loveNum, int hateNum) {
	this.thing=thing;
	this.loveNum=loveNum;
	this.hateNum=hateNum;
    }

    public boolean sameAs(FeelingSet fs) {
	return thing.equals(fs.getKey());
    }

    public boolean isLessThan(FeelingSet fs) {
	return (loveNum+hateNum<fs.getTotalNum());
    }

    public void update(FeelingSet fs) {
	if (!sameAs(fs)) return;
	loveNum=fs.getLoveNum();
	hateNum=fs.getHateNum();
    }

    public boolean isEmpty() {
	return true;
    }

    public TemplateModel get(String key) {
	if (key==null) return null;
	else if (key.equals("object")) 
	    return new SimpleScalar(thing);
	else if (key.equals("encobject"))
	    return new SimpleScalar(java.net.URLEncoder.encode(thing));
	else if (key.equals("love_num"))
	    return new SimpleScalar(""+loveNum);
	else if (key.equals("hate_num"))
	    return new SimpleScalar(""+hateNum);
	else if (key.equals("total_num"))
	    return new SimpleScalar(""+(hateNum+loveNum));
	return null;
    }
}
