jasenengineconfiguration.java

来自「spam source codejasen-0.9jASEN - java An」· Java 代码 · 共 224 行

JAVA
224
字号
/*
 * @(#)JasenEngineConfiguration.java	3/11/2004
 *
 * Copyright (c) 2004, 2005  jASEN.org
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 *   1. Redistributions of source code must retain the above copyright notice,
 *      this list of conditions and the following disclaimer.
 *
 *   2. Redistributions in binary form must reproduce the above copyright
 *      notice, this list of conditions and the following disclaimer in
 *      the documentation and/or other materials provided with the distribution.
 *
 *   3. The names of the authors may not be used to endorse or promote products
 *      derived from this software without specific prior written permission.
 *
 *   4. Any modification or additions to the software must be contributed back
 *      to the project.
 *
 *   5. Any investigation or reverse engineering of source code or binary to
 *      enable emails to bypass the filters, and hence inflict spam and or viruses
 *      onto users who use or do not use jASEN could subject the perpetrator to
 *      criminal and or civil liability.
 *
 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JASEN.ORG,
 * OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 */
package org.jasen.core.engine;

/**
 * <P>
 * 	Singleton configuration class to hold, and provide thread safe access to engine configuration data.
 * </P>
 * @author Jason Polites
 */
public final class JasenEngineConfiguration
{
    private static JasenEngineConfiguration instance;
    private static final Object lock = new Object();

    private float confidence = 0.5f;
    private float guess = 0.5f;
    private float esf = 0.5f;

    private int ftt = 25; // Few token threshold
    
    private float parserContrastThreshold = 0.075f;
    private int parserMicroFontSize = 1;
    private int parserMicroElementSize = 5;


    /**
     * Gets the single (per JVM) instance of the configuration
     * @return The current JasenEngineConfiguration object
     */
    public static JasenEngineConfiguration getInstance() {
        if(instance == null) {
            synchronized(lock) {

                if(instance == null) {
                    instance = new JasenEngineConfiguration();
                }

                lock.notifyAll();
            }
        }

        return instance;
    }

    /**
     *
     */
    private JasenEngineConfiguration() {
        super ();
    }

    /**
     * Gets the confidence we have in the "background information".
     * <br/>
     * This is used during the Chi Square calculations
     * @return Returns the confidence.
     */
    public float getConfidence() {
        return confidence;
    }
    
    /**
     * Gets the confidence we have in the "background information".
     * <br/>
     * This is used during the Chi Square calculations
     * @param confidence The confidence to set.
     */
    public void setConfidence(float confidence) {
        this.confidence = confidence;
    }
    
    
    /**
     * Gets the ESF or Effective Size Factor.  

     * @return Returns the esf.
     */
    public float getEsf() {
        return esf;
    }
    
    /**
     * Sets the Effective Size Factor
     * @param esf The esf to set.
     * @see JasenEngineConfiguration#getEsf()
     */
    public void setEsf(float esf) {
        this.esf = esf;
    }
    
    
    /**
     * The guess is the value given to a scan when (for whatever reason) no information about the message could be determined.
     * <br/>
     * This value is also used during chi square calculations as a default value where no other information is available
     * @return Returns the guess.
     */
    public float getGuess() {
        return guess;
    }
    
    /**
     * Sets the guess value.  MUST be > 0.0 and < 1.0
     * @param guess The guess to set.
     */
    public void setGuess(float guess) {
        this.guess = guess;
    }

    /**
     * Gets the FTT or Few Token Threshold
     * This is just a fudge factor which toggles the engine between two different internal algorithms depending 
     * on the number of tokens (words) returned frmo message tokenization
     * @return Returns the ftt (Few Token Threshold)
     */
    public int getFtt() {
        return ftt;
    }
    
    /**
     * Sets the FTT or Few Token Threshold
     * <BR/>
     * This is just a fudge factor which toggles the engine between two different internal algorithms depending 
     * on the number of tokens (words) returned frmo message tokenization
     * @param fewTokenThreshold Should be a number between 1 and 50 (ideally)
     */
    public void setFtt(int fewTokenThreshold) {
        this.ftt = fewTokenThreshold;
    }
    
    
    /**
     * Confguration value for the html parser
     * @see org.jasen.core.parsers.SpamHTMLParser#getContrastThreshold()
     * @return
     */
    public float getParserContrastThreshold() {
        return parserContrastThreshold;
    }
    
    /**
     * Confguration value for the html parser
     * @see org.jasen.core.parsers.SpamHTMLParser#setContrastThreshold(float)
     * @param parserContrastThreshold
     */
    public void setParserContrastThreshold(float parserContrastThreshold) {
        this.parserContrastThreshold = parserContrastThreshold;
    }
    
    /**
     * Confguration value for the html parser
     * @see org.jasen.core.parsers.SpamHTMLParser#getMicroElementSize()
     * @return
     */
    public int getParserMicroElementSize() {
        return parserMicroElementSize;
    }
    
    /**
     * Confguration value for the html parser
     * @see org.jasen.core.parsers.SpamHTMLParser#setMicroElementSize(int)
     * @param parserMicroElementSize
     */
    public void setParserMicroElementSize(int parserMicroElementSize) {
        this.parserMicroElementSize = parserMicroElementSize;
    }
    
    /**
     * Confguration value for the html parser
     * @see org.jasen.core.parsers.SpamHTMLParser#getMicroFontSize()
     * @return
     */
    public int getParserMicroFontSize() {
        return parserMicroFontSize;
    }
    
    /**
     * Confguration value for the html parser
     * @see org.jasen.core.parsers.SpamHTMLParser#setMicroFontSize(int)
     * @param parserMicroFontSize
     */
    public void setParserMicroFontSize(int parserMicroFontSize) {
        this.parserMicroFontSize = parserMicroFontSize;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?