package org.greenstone.atlas.server;

public class ScanConfiguration
{
	protected double _penaltyPercentage = -1;
	protected double _parentBonusPercentage = -1;
	protected double _indirectReferencePercentage = -1;
	protected double _parentLimitPercentage = -1;
	
	public ScanConfiguration(double penaltyPercentage, double parentBonusPercentage, double indirectReferencePercentage, double parentLimitPercentage)
	{
		_penaltyPercentage = penaltyPercentage;
		_parentBonusPercentage = parentBonusPercentage;
		_indirectReferencePercentage = indirectReferencePercentage;
		_parentLimitPercentage = parentLimitPercentage;
	}
	
	public double getPenalty()
	{
		return _penaltyPercentage;
	}
	
	public double getParentBonus()
	{
		return _parentBonusPercentage;
	}
	
	public double getIndirectReferencePenalty()
	{
		return _indirectReferencePercentage;
	}
	
	public String toString()
	{
		return "" + _penaltyPercentage + " " + _parentBonusPercentage + " " + _indirectReferencePercentage + " " + _parentLimitPercentage;
	}
	
	public boolean equals (Object other)
	{
		if(other == null)
		{
			return false;
		}
		
		if(!(other instanceof ScanConfiguration))
		{
			return false;
		}
		
		ScanConfiguration othersc = (ScanConfiguration)other;
		
		if(_penaltyPercentage == othersc.getPenalty() && _parentBonusPercentage == othersc.getParentBonus() && _indirectReferencePercentage == othersc.getIndirectReferencePenalty())
		{
			return true;
		}
		return false;
	}

	public double getParentLimit()
	{
		return _parentLimitPercentage;
	}
}
