//--------------------------------------
//               PowerUI
//
//        For documentation or 
//    if you have any issues, visit
//        powerUI.kulestar.com
//
//    Copyright  2013 Kulestar Ltd
//          www.kulestar.com
//--------------------------------------

using System;


namespace Css.Units{
	
	/// <summary>
	/// A special unit used to cache values which help speed up the resolve process.
	/// An example of a property that uses one of these is display.
	/// </summary>
	
	public class CachedIntegerUnit : IntegerUnit{
		
		public Css.Value Origin;
		
		
		public CachedIntegerUnit():base(){}
		
		public CachedIntegerUnit(Css.Value origin,int value):base(value){
			
			Origin=origin;
			Specifity=origin.Specifity;
			
		}
		
		public override bool IsCached{
			get{
				return true;
			}
		}
		
		public override Css.Value CachedOrigin{
			get{
				return Origin;
			}
		}
		
		public override string ToString(){
			
			return Origin.ToString();
			
		}
		
		public override float DisplayNumber{
			get{
				DecimalUnit du=(Origin as DecimalUnit);
				return (du==null)? 0f : du.DisplayNumber;
			}
		}
		
		protected override Value Clone(){
			CachedIntegerUnit result=new CachedIntegerUnit();
			result.RawValue=RawValue;
			result.Origin=Origin;
			return result;
		}
		
	}
	
}