package com.limegroup.gnutella.spam; import java.io.Serializable; /** * From every RFD we can extract a set of tokens, */ public interface Token extends Serializable, Comparable { /** * A Token representing a keyword */ public static final int TYPE_KEYWORD = 1; /** * A Token representing an urn */ public static final int TYPE_URN = 2; /** * A Token representing the file size */ public static final int TYPE_SIZE = 3; /** * A Token representing the host address */ public static final int TYPE_ADDRESS = 4; /** * A Token representing a xml keyword */ public static final int TYPE_XML_KEYWORD = 5; /** * A Token representing the vendor */ public static final int TYPE_VENDOR = 6; /** * the user marked this token as spam */ public static final int RATING_USER_MARKED_SPAM = 1; /** * the spam filter decided this token is spam */ public static final int RATING_SPAM = 2; /** * the user decided this token is okay. */ public static final int RATING_USER_MARKED_GOOD = 3; /** * the filter decided this token is okay. */ public static final int RATING_GOOD = 4; /** * this token is to be cleared completely */ public static final int RATING_CLEARED = 5; /** * This method returns the spam rating of this token. * * @return a float between 0 and 1 that represents the probability this * token is spam. Returns 0 if we believe this is not spam and 1 if * we believe this is spam. */ public float getRating(); /** * This method allows to influence the spam rating of a token. * * @param rating * an int that must be one of the constant ratings defined in the * <tt>Token</tt> interface and that will be added to the * internal rating as stored in this <tt>Token</tt> * @throws IllegalArgumentException * if the argument is not one of the ratings defined in the * <tt>Token</tt> interface */ public void rate(int rating); /** * Returns the type of this token. * * @return one of the constant types as defined in the <tt>Token</tt> * interface. */ public int getType(); /** * Used to determine which tokens should be kept when there are too * many tokens in RatingTable. The items with the lowest "importance" * values are discarded. * * @return the importance metric value for this token */ public double getImportance(); /** * increase the age of the token (measured in limewire sessions) */ public void incrementAge(); }