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 + -
显示快捷键?