123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Xml;
- namespace OTSDataType
- {
- public class CIntRange:ISlo
- {
- private int m_nStart;
- private int m_nEnd;
- public CIntRange()
- {
- m_nStart = 0;
- m_nEnd = 0;
- }
- public CIntRange(int a_nStart, int a_nEnd)
- {
- m_nStart =Math.Min(a_nStart, a_nEnd);
- m_nEnd = Math.Max(a_nStart, a_nEnd);
- }
- public CIntRange(CIntRange a_poSource)
- {
- Duplicate(a_poSource);
- }
- public bool equals(CIntRange a_oSource)
- {
- return m_nStart == a_oSource.m_nStart && m_nEnd == a_oSource.m_nEnd;
- }
- public bool DataInRange(int a_nData)
- {
- return a_nData >= m_nStart && a_nData <= m_nEnd;
- }
- // start
- public void SetStart(int a_nStart)
- {
- m_nStart = a_nStart;
- //Normalise();
- }
- public int GetStart()
- {
- return m_nStart ;
-
- }
- // end
- public void SetEnd(int a_nEnd)
- {
- m_nEnd = a_nEnd;
- Normalise();
- }
- public int GetEnd()
- {
- return m_nEnd;
- }
- public void Duplicate( CIntRange a_oSource)
- {
- // copy data over
- m_nStart = a_oSource.m_nStart;
- m_nEnd = a_oSource.m_nEnd;
- }
- // normalize
- public void Normalise()
- {
- m_nEnd = Math.Max(m_nStart, m_nEnd);
- m_nStart = Math.Min(m_nStart, m_nEnd);
- }
-
- public override void Serialize(bool isStoring, XmlDocument classDoc, XmlNode rootNode)
- {
- xInt xStart=new xInt();
- xInt xEnd=new xInt();
- Slo slo=new Slo();
- slo.Register("start", xStart);
- slo.Register("end", xEnd);
- if (isStoring)
- {
- xStart.AssignValue(m_nStart);
- xEnd.AssignValue(m_nEnd);
- slo.Serialize(true, classDoc, rootNode);
- }
- else
- {
- slo.Serialize(false, classDoc, rootNode);
- m_nStart = xStart.value();
- m_nEnd = xEnd.value();
- }
- }
- }
- }
|