610 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			610 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
class DataParser
 | 
						|
{
 | 
						|
    private $debug                  = false;
 | 
						|
    
 | 
						|
    private $meet_name              = "";
 | 
						|
    private $meet_id                = "";
 | 
						|
    private $gender                 = "";
 | 
						|
    
 | 
						|
    private $schoolId               = "";
 | 
						|
    private $seasonId               = "";
 | 
						|
    private $seasonYear             = "";
 | 
						|
 | 
						|
    private $rawDataLines           = array();
 | 
						|
    private $processedDataLines     = array();
 | 
						|
 | 
						|
    function __construct($meet_name, $meet_id, $gender, $schoolId, $seasonId, $seasonYear)
 | 
						|
    {
 | 
						|
        $this->meet_name    = $meet_name;
 | 
						|
        $this->meet_id      = $meet_id;
 | 
						|
        $this->gender       = $gender;
 | 
						|
        
 | 
						|
        $this->schoolId     = $schoolId;
 | 
						|
        $this->seasonId     = $seasonId;
 | 
						|
        $this->seasonYear   = $seasonYear;
 | 
						|
    }
 | 
						|
 | 
						|
    function setRawInputData($data)
 | 
						|
    {
 | 
						|
        if(is_string($data))
 | 
						|
        {
 | 
						|
            $data = str_replace("&", "&", $data);
 | 
						|
 | 
						|
            $dataArray = explode("\n", trim($data));
 | 
						|
            $lineCount = 0;
 | 
						|
            $intermediateArray = array();
 | 
						|
            foreach($dataArray as $lnNo=>$ln)
 | 
						|
            {
 | 
						|
                if($lineCount == 0 && trim($ln) == '')
 | 
						|
                {
 | 
						|
                    continue;
 | 
						|
                }
 | 
						|
 | 
						|
                $this->rawDataLines[] = $ln;
 | 
						|
                $lineCount++;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        
 | 
						|
    }
 | 
						|
    
 | 
						|
    function getData()
 | 
						|
    {
 | 
						|
        return $this->processedDataLines;
 | 
						|
    }
 | 
						|
 | 
						|
    function getFormatedData()
 | 
						|
    {
 | 
						|
        $nameCountArray = array();
 | 
						|
        $return = array();
 | 
						|
        $parsedData = $this->processedDataLines;
 | 
						|
        if(is_array($parsedData) && sizeof($parsedData)>0)
 | 
						|
        {         
 | 
						|
            $reportCnt  = 0;
 | 
						|
            foreach($parsedData as $data)
 | 
						|
            {
 | 
						|
                $lineType = $data->getType();
 | 
						|
                $dispData = $data->getComposedData();
 | 
						|
                if($lineType=="license-header")
 | 
						|
                {
 | 
						|
                    $return['LICENCED-TO']  = @$dispData['LICENCE TO'];
 | 
						|
                    $return['SUB-LICENSE']  = @$dispData['SUB-LICENSE'];
 | 
						|
                    $return['LICENSE-DATE'] = @$dispData['LICENSE DATE'];
 | 
						|
                }
 | 
						|
                else if($lineType=="school-report-head")
 | 
						|
                {
 | 
						|
                    $return['EVENT-NAME'] = @$dispData['EVENT NAME'];
 | 
						|
                    $return['EVENT-DATE'] = @$dispData['EVENT DATE'];
 | 
						|
                }
 | 
						|
                else if($lineType=="school-name-head")
 | 
						|
                {
 | 
						|
                    $return['SCHOOL-NAME'] = @$dispData['SCHOOL NAME'];
 | 
						|
                }
 | 
						|
                else if($lineType=="report-data")
 | 
						|
                {
 | 
						|
                    $reportMatrix = $data->getReportMatrix();
 | 
						|
 | 
						|
                    $return['REPORT'][$reportCnt]['HEADER']['FULL-TEXT']          = @$dispData['HEADER'];
 | 
						|
 | 
						|
                    $headerAnalysis = @$dispData['HEADER-ANALYSIS'];
 | 
						|
 | 
						|
                    $eventName = trim(str_replace($headerAnalysis->getLeadPhrase(),"",@$dispData['HEADER']));
 | 
						|
 | 
						|
                    $eventName = $this->__cleanUpEventname($eventName);
 | 
						|
 | 
						|
                    $return['REPORT'][$reportCnt]['HEADER']['EVENT-NAME']         = trim($eventName);
 | 
						|
                    $return['REPORT'][$reportCnt]['HEADER']['EVENT-LEVEL']        = $headerAnalysis->getLeadPhrase();                    
 | 
						|
 | 
						|
                    if(trim($return['REPORT'][$reportCnt]['HEADER']['EVENT-NAME'])=='')
 | 
						|
                    {
 | 
						|
                        $return['REPORT'][$reportCnt]['HEADER']['EVENT-NAME'] = $headerAnalysis->getLeadPhrase();
 | 
						|
                        $return['REPORT'][$reportCnt]['HEADER']['EVENT-LEVEL'] = '';
 | 
						|
                    }
 | 
						|
                    
 | 
						|
                    $return['REPORT'][$reportCnt]['HEADER']['GENDER']             = $headerAnalysis->getGender();
 | 
						|
                    $return['REPORT'][$reportCnt]['HEADER']['SPORTS']             = $headerAnalysis->getSports();
 | 
						|
                    $return['REPORT'][$reportCnt]['HEADER']['SPORT-TYPE']         = $headerAnalysis->getSportsType();
 | 
						|
                    $return['REPORT'][$reportCnt]['HEADER']['SPORT-LEVEL']        = $headerAnalysis->getSportsLevel(); 
 | 
						|
                    $return['REPORT'][$reportCnt]['HEADER']['SPORT-LEVEL-SQ']     = $headerAnalysis->getSportsLevel();                   
 | 
						|
                    $return['REPORT'][$reportCnt]['HEADER']['METRIC']             = $headerAnalysis->getMetricPhrase();
 | 
						|
                    $return['REPORT'][$reportCnt]['HEADER']['ADDLN-NOTE']         = $headerAnalysis->getOtherPhrases();
 | 
						|
                   
 | 
						|
                    if($reportMatrix->isUsable())
 | 
						|
                    {
 | 
						|
                        $return['REPORT'][$reportCnt]['HAS-RECORDS'] = true;
 | 
						|
                        $return['REPORT'][$reportCnt]['COLUMNS'][]="SL";
 | 
						|
                        foreach($reportMatrix->getHeaders() as $head)
 | 
						|
                        {
 | 
						|
                            $return['REPORT'][$reportCnt]['COLUMNS'][]=$head;
 | 
						|
                        }
 | 
						|
                        $return['REPORT'][$reportCnt]['COLUMNS'][]="ROUND";
 | 
						|
                        $return['REPORT'][$reportCnt]['COLUMNS'][]="REMARKS";
 | 
						|
 | 
						|
                        $recCnt=0;
 | 
						|
                        foreach($reportMatrix->getMatrix() as $matrix)
 | 
						|
                        {
 | 
						|
                            $theFinalVal='';
 | 
						|
                            foreach($return['REPORT'][$reportCnt]['COLUMNS'] as $col)
 | 
						|
                            {
 | 
						|
                                if($col!=='REMARKS')
 | 
						|
                                {
 | 
						|
                                    $return['REPORT'][$reportCnt]['DATA'][$recCnt][$col]['RAW']=@$matrix[$col]['COMBINED'];  
 | 
						|
                                    $return['REPORT'][$reportCnt]['DATA'][$recCnt][$col]['FINAL']=@$matrix[$col]['DATA'];  
 | 
						|
 | 
						|
                                    if(isset($matrix[$col]['FIRST-NAME']))
 | 
						|
                                    {
 | 
						|
                                        $return['REPORT'][$reportCnt]['DATA'][$recCnt][$col]['FIRST-NAME']=@$matrix[$col]['FIRST-NAME'];  
 | 
						|
                                        $return['REPORT'][$reportCnt]['DATA'][$recCnt][$col]['LAST-NAME']=@$matrix[$col]['LAST-NAME'];  
 | 
						|
                                        $return['REPORT'][$reportCnt]['DATA'][$recCnt][$col]['ROLL-NO']=@$matrix[$col]['ROLL-NO'];  
 | 
						|
                                    }
 | 
						|
                                    $theFinalVal.=@$matrix[$col]['DATA'];
 | 
						|
                                }
 | 
						|
                                
 | 
						|
                                if($col==='SL')
 | 
						|
                                {
 | 
						|
                                    if(trim(@$matrix[$col]['DATA'])!=='' && is_numeric(trim(@$matrix[$col]['DATA']))===false)
 | 
						|
                                    {
 | 
						|
                                        $return['REPORT'][$reportCnt]['DATA'][$recCnt][$col]['RAW']='';
 | 
						|
                                        $return['REPORT'][$reportCnt]['DATA'][$recCnt][$col]['FINAL']='';
 | 
						|
                                    }
 | 
						|
                                }
 | 
						|
 | 
						|
                                if( ($return['REPORT'][$reportCnt]['HEADER']['SPORT-TYPE'] == ParserUtility::$_RELAY_ 
 | 
						|
                                    || $return['REPORT'][$reportCnt]['HEADER']['SPORT-TYPE'] == ParserUtility::$_THROWING_TEAM_ 
 | 
						|
                                    || $return['REPORT'][$reportCnt]['HEADER']['SPORT-TYPE'] == ParserUtility::$_JUMPING_TEAM_ ) 
 | 
						|
                                    && trim(strtolower($col))==='school')
 | 
						|
                                {
 | 
						|
                                    $schoolName = $this->__removeQuotedAlphabets(@$matrix[$col]['DATA']);
 | 
						|
                                    $return['REPORT'][$reportCnt]['DATA'][$recCnt][$col]['FINAL'] = $schoolName; 
 | 
						|
                                }
 | 
						|
                            }
 | 
						|
 | 
						|
                            $return['REPORT'][$reportCnt]['DATA'][$recCnt]['UN-FORMATED']['FINAL'] = @$matrix['RAW-LINE']['DATA'];                            
 | 
						|
                            $return['REPORT'][$reportCnt]['DATA'][$recCnt]['REMARKS']['FINAL'] = trim(@$matrix['MARK']['DATA'].' '.@$matrix['REMARKS']['DATA']);  
 | 
						|
 | 
						|
                            
 | 
						|
                            if(trim(@$return['REPORT'][$reportCnt]['DATA'][$recCnt]['REMARKS']['FINAL']) !== '')
 | 
						|
                            {
 | 
						|
                                $finesse = $this->__extractNumericFromRemarks($return['REPORT'][$reportCnt]['DATA'][$recCnt]['REMARKS']['FINAL']);
 | 
						|
                                if($finesse!==false)
 | 
						|
                                {
 | 
						|
                                    $return['REPORT'][$reportCnt]['DATA'][$recCnt]['FINESSE'] = $finesse;
 | 
						|
                                } 
 | 
						|
                            }
 | 
						|
 | 
						|
                            if(strlen(trim($theFinalVal))>0)
 | 
						|
                            {
 | 
						|
                                $recCnt++;
 | 
						|
                            }
 | 
						|
                            else
 | 
						|
                            {
 | 
						|
                                array_pop($return['REPORT'][$reportCnt]['DATA']);
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        $return['REPORT'][$reportCnt]['HAS-RECORDS'] = false;
 | 
						|
                        $return['REPORT'][$reportCnt]['ERROR'] = $reportMatrix->getProblem();
 | 
						|
                    }
 | 
						|
 | 
						|
                    $return['REPORT'][$reportCnt]['RAW-RECORDS'] = implode("\n",$reportMatrix->getReportLines());
 | 
						|
 | 
						|
                    $reportCnt++;
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        if(!isset($return['REPORT']))
 | 
						|
        {
 | 
						|
            $return['REPORT']=array();
 | 
						|
        }
 | 
						|
 | 
						|
        foreach($return['REPORT'] as $ind=>$rptData)
 | 
						|
        {
 | 
						|
            if(!isset($rptData['DATA']))
 | 
						|
            {
 | 
						|
                $return['REPORT'][$ind]['DATA']=array();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        return $return;
 | 
						|
    }
 | 
						|
 | 
						|
    function process()
 | 
						|
    {
 | 
						|
        $this-> __processLines();
 | 
						|
    }
 | 
						|
       
 | 
						|
    function __processLines()
 | 
						|
    {        
 | 
						|
        if($this->debug) echo 'starting<br>';
 | 
						|
 | 
						|
        $previousStatus     = '';
 | 
						|
        $currentStatus      = 'license-header';
 | 
						|
        $concatenator       = "";
 | 
						|
        $lineObj            = null;
 | 
						|
        $reportPartStarts   = false;
 | 
						|
        $reportPartLevel    = '';
 | 
						|
        
 | 
						|
        foreach($this->rawDataLines as $lnNo=>$ln)
 | 
						|
        {
 | 
						|
            if($this->debug) echo '<br> <b>PROCESSING</b> ............. '.$ln;
 | 
						|
            if($this->debug) echo '<br> previousStatus ......... '.$previousStatus;           
 | 
						|
 | 
						|
            $analysis =  new Lexicon($ln);
 | 
						|
            $analysis->preAnalyse();
 | 
						|
 | 
						|
            if($this->debug) { echo '<br> <u>ANALYSIS</u> ::: <div style="max-height:100px; overflow:auto; border:thin solid #ccc; margin-left:60px; margin-right:60px;">'; print_r($analysis); echo "</div>"; }
 | 
						|
 | 
						|
            if(!$reportPartStarts)
 | 
						|
            {
 | 
						|
                if($previousStatus=='')
 | 
						|
                {
 | 
						|
                    //echo '<br>--->0-out~'.$analysis->getGeneralContext();
 | 
						|
 | 
						|
                    $currentStatus = 'license-header';
 | 
						|
                    if($analysis->getGeneralContext() != 'DECORATOR' && $analysis->getGeneralContext() != 'LINE-BREAK' && ParserUtility::startsWithOneOfThem(trim($ln), ParserUtility::$terms_headerStartsWith) )
 | 
						|
                    {
 | 
						|
                        //echo '<br>--->0~'.$analysis->getGeneralContext();
 | 
						|
                        $lineObj = $this->__getOneLineObject($currentStatus,$lineObj);
 | 
						|
                        $lineObj->setOriginalContent($ln);
 | 
						|
                        $lineObj->process();
 | 
						|
                    }
 | 
						|
                    $previousStatus = 'license-header';                   
 | 
						|
                }                
 | 
						|
                else if($previousStatus=='license-header')
 | 
						|
                {
 | 
						|
                    //if($this->debug) echo '<br> `'.$ln.'` <b>is a </b> '.$analysis->getGeneralContext() ;
 | 
						|
                    //echo '<br>--->1/2-out~'.trim($ln).'~'.implode('#',ParserUtility::$terms_headerStartsWith);
 | 
						|
                    //echo '<br>--->1/2-out~'.$analysis->getGeneralContext().'~>'.ParserUtility::containsOneOfThem(trim($ln), ParserUtility::$terms_headerLicenseTos).'<';
 | 
						|
 | 
						|
                    if($analysis->getGeneralContext() != 'DECORATOR' && $analysis->getGeneralContext() != 'LINE-BREAK' && ParserUtility::startsWithOneOfThem(trim($ln), ParserUtility::$terms_headerLicenseTos) )
 | 
						|
                    {
 | 
						|
                        //echo '<br>--->1~'.$analysis->getGeneralContext();
 | 
						|
 | 
						|
                        $lineObj->setOriginalContent($ln);
 | 
						|
                        $lineObj->process();
 | 
						|
                        
 | 
						|
                    }
 | 
						|
                    elseif($analysis->getGeneralContext() != 'DECORATOR' && $analysis->getGeneralContext() != 'LINE-BREAK')
 | 
						|
                    {
 | 
						|
                        //echo '<br>--->2~'.$analysis->getGeneralContext();
 | 
						|
 | 
						|
                        $currentStatus = 'school-report-head';
 | 
						|
                        $lineObj = $this->__getOneLineObject($currentStatus,$lineObj);
 | 
						|
                        $lineObj->setOriginalContent($ln);
 | 
						|
                        $lineObj->process();
 | 
						|
                        $previousStatus = 'school-report-head';
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                else if($previousStatus=='school-report-head')
 | 
						|
                {
 | 
						|
                    //echo '<br>--->3-out~'.$analysis->getGeneralContext();
 | 
						|
                    if($analysis->getGeneralContext() != 'DECORATOR' && $analysis->getGeneralContext() != 'LINE-BREAK')
 | 
						|
                    {
 | 
						|
                        //echo '<br>--->3~'.$analysis->getGeneralContext();
 | 
						|
 | 
						|
                        $currentStatus = 'school-name-head';
 | 
						|
                        $lineObj = $this->__getOneLineObject($currentStatus,$lineObj);
 | 
						|
                        $lineObj->setOriginalContent($ln);
 | 
						|
                        $lineObj->process();
 | 
						|
                        $previousStatus = 'school-name-head';
 | 
						|
                        
 | 
						|
                    }
 | 
						|
                } 
 | 
						|
                else if($previousStatus=='school-name-head')
 | 
						|
                {
 | 
						|
                    //echo '<br>--->4-out~'.$analysis->getGeneralContext();
 | 
						|
                    if($analysis->getGeneralContext() != 'DECORATOR' && $analysis->getGeneralContext() != 'LINE-BREAK')
 | 
						|
                    {
 | 
						|
                        //echo '<br>--->4~'.$analysis->getGeneralContext();
 | 
						|
 | 
						|
                        $currentStatus = 'result-label';
 | 
						|
                        $lineObj = $this->__getOneLineObject($currentStatus,$lineObj);
 | 
						|
                        $lineObj->setOriginalContent($ln);
 | 
						|
                        $lineObj->process();
 | 
						|
                        $previousStatus = 'result-label';
 | 
						|
                        $reportPartStarts = true;
 | 
						|
                        $currentStatus = '';
 | 
						|
                    }
 | 
						|
                } 
 | 
						|
 | 
						|
            /*
 | 
						|
                if($analysis->getGeneralContext() == 'DECORATOR')
 | 
						|
                {
 | 
						|
                    $reportPartStarts = true;
 | 
						|
                    $previousStatus='decorator-start';
 | 
						|
                    
 | 
						|
                    $lineObj = $this->__getOneLineObject($currentStatus,$lineObj);
 | 
						|
                    $lineObj->setOriginalContent($ln);
 | 
						|
                    $lineObj->process();
 | 
						|
 | 
						|
                    $reportMatrix = $lineObj->getReportMatrix();                    
 | 
						|
                    $reportMatrix->setDecoratorLength(strlen($ln));
 | 
						|
                }
 | 
						|
            */
 | 
						|
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                if(trim($ln)==='' || $analysis->getGeneralContext() == 'LINE-BREAK')
 | 
						|
                {
 | 
						|
                    if($previousStatus=='line-break' || $previousStatus=='decorator-start')
 | 
						|
                    {
 | 
						|
                        $lineObj->setOriginalContent($ln);
 | 
						|
                        $lineObj->process();
 | 
						|
                        $previousStatus = 'line-break';
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        $reportPartLevel = '';
 | 
						|
                        $currentStatus = 'line-break';
 | 
						|
                        $lineObj = $this->__getOneLineObject($currentStatus,$lineObj);
 | 
						|
                        $lineObj->setOriginalContent($ln);
 | 
						|
                        $lineObj->process();
 | 
						|
                        $previousStatus = 'line-break';
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    if($previousStatus=='line-break' || $previousStatus=='decorator-start')
 | 
						|
                    {
 | 
						|
                        $currentStatus = "report-data";
 | 
						|
                        $lineObj = $this->__getOneLineObject($currentStatus,$lineObj);
 | 
						|
                        $lineObj->setOriginalContent($ln);
 | 
						|
                        $lineObj->process();
 | 
						|
                        
 | 
						|
                        $reportMatrix = $lineObj->getReportMatrix();
 | 
						|
                        
 | 
						|
                        if($analysis->getGeneralContext() == 'HEADER')
 | 
						|
                        {
 | 
						|
                            $reportMatrix->parseHeaders($ln);
 | 
						|
                            $lineObj->setComposedData("SPORT-ROUND",$reportMatrix->getSportsRound());
 | 
						|
                        }
 | 
						|
                        $previousStatus = "report-data";
 | 
						|
                    }
 | 
						|
                    elseif($previousStatus == 'report-data')
 | 
						|
                    {
 | 
						|
                        $reportMatrix = $lineObj->getReportMatrix();
 | 
						|
                        $lineObj->setComposedData("SPORT-ROUND",$reportMatrix->getSportsRound());
 | 
						|
 | 
						|
                        if($analysis->getGeneralContext() == 'DECORATOR')
 | 
						|
                        {
 | 
						|
                            $reportMatrix->setDecoratorLength(strlen($ln)); 
 | 
						|
                        }
 | 
						|
                        else if($analysis->getGeneralContext() == 'HEADER')
 | 
						|
                        {
 | 
						|
                            $reportMatrix->parseHeaders($ln);                           
 | 
						|
                        }
 | 
						|
                        else if($analysis->getGeneralContext() == 'SPORTS-ROUND')
 | 
						|
                        {   
 | 
						|
                            $reportMatrix->parseData($ln);
 | 
						|
                            $analysis->analyse();                           
 | 
						|
                            $reportMatrix->setSportsLevel($analysis->getSportsRound());
 | 
						|
                            $lineObj->setComposedData("SPORTS-ROUND",$reportMatrix->getSportsRound());
 | 
						|
                        }
 | 
						|
                        else
 | 
						|
                        {
 | 
						|
                            $reportMatrix->parseData($ln);
 | 
						|
                        }
 | 
						|
 | 
						|
 | 
						|
                    /*
 | 
						|
                        if(ParserUtility::startsWith(trim($ln), "====="))
 | 
						|
                        {
 | 
						|
                            if($reportPartLevel == '')
 | 
						|
                            {
 | 
						|
                                $reportPartLevel = 'DecoratorStart';
 | 
						|
                                $reportMatrix->setDecoratorLength(strlen($ln));
 | 
						|
                            }
 | 
						|
                            else
 | 
						|
                            {
 | 
						|
                                $reportPartLevel = 'DecoratorEnd'; 
 | 
						|
                            }                            
 | 
						|
                            continue;
 | 
						|
                        }
 | 
						|
                        else 
 | 
						|
                        {
 | 
						|
                            if($reportPartLevel == 'DecoratorStart')
 | 
						|
                            {
 | 
						|
                                $reportMatrix->parseHeaders($ln);
 | 
						|
                            }
 | 
						|
                            else if($reportPartLevel == 'DecoratorEnd')
 | 
						|
                            {
 | 
						|
                                $reportMatrix->parseData($ln);
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    */
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                //$lineObj = null;
 | 
						|
                //$lineObj = $this->__getOneLineObject("",$lineObj);
 | 
						|
                //$lineObj->process();
 | 
						|
            }      
 | 
						|
            
 | 
						|
            if($this->debug) echo '<br> <b>currentStatus</b> ......... '.$currentStatus;
 | 
						|
            if($this->debug) echo '<br> <b>previousStatus</b> ......... '.$previousStatus;
 | 
						|
 | 
						|
            if($this->debug) { echo '<br> <u>LINE OBJECT</u> ::: <div style="max-height:100px; overflow:auto; border:thin solid #ff00ff; margin-left:60px; margin-right:60px;">'; print_r($lineObj); echo "</div>"; }
 | 
						|
 | 
						|
            if($this->debug) echo '<br><br><h3 style="color:red"> :-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-::-: </h3><br>';
 | 
						|
        }
 | 
						|
        $this->__getOneLineObject("",$lineObj);
 | 
						|
    }
 | 
						|
 | 
						|
    function __getOneLineObject($currentStatus,$previousLineObject)
 | 
						|
    {
 | 
						|
        if($previousLineObject !== null)
 | 
						|
        {
 | 
						|
            $this->processedDataLines[] = $previousLineObject;
 | 
						|
        }
 | 
						|
        return new RecordLine($currentStatus);
 | 
						|
    }
 | 
						|
 | 
						|
    function __removeQuotedAlphabets($text)
 | 
						|
    {
 | 
						|
        $alphabets   = array();
 | 
						|
        $alphabets[] = 'a';
 | 
						|
        $alphabets[] = 'b';
 | 
						|
        $alphabets[] = 'c';
 | 
						|
        $alphabets[] = 'd';
 | 
						|
        $alphabets[] = 'e';
 | 
						|
        $alphabets[] = 'f';
 | 
						|
        $alphabets[] = 'g';
 | 
						|
        $alphabets[] = 'h';
 | 
						|
        $alphabets[] = 'i';
 | 
						|
        $alphabets[] = 'j';
 | 
						|
        $alphabets[] = 'k';
 | 
						|
        $alphabets[] = 'l';
 | 
						|
        $alphabets[] = 'm';
 | 
						|
        $alphabets[] = 'n';
 | 
						|
        $alphabets[] = 'o';
 | 
						|
        $alphabets[] = 'p';
 | 
						|
        $alphabets[] = 'q';
 | 
						|
        $alphabets[] = 'r';
 | 
						|
        $alphabets[] = 's';
 | 
						|
        $alphabets[] = 't';
 | 
						|
        $alphabets[] = 'u';
 | 
						|
        $alphabets[] = 'v';
 | 
						|
        $alphabets[] = 'w';
 | 
						|
        $alphabets[] = 'x';
 | 
						|
        $alphabets[] = 'y';
 | 
						|
        $alphabets[] = 'z';
 | 
						|
 | 
						|
        foreach($alphabets as $alphabet)
 | 
						|
        {
 | 
						|
            $text = trim(str_replace(" '".strtoupper($alphabet)."' "," ",$text));
 | 
						|
            $text = trim(str_replace(" '".$alphabet."' "," ",$text));
 | 
						|
 | 
						|
            $text = trim(str_replace("'".strtoupper($alphabet)."' "," ",$text));
 | 
						|
            $text = trim(str_replace("'".$alphabet."' "," ",$text));
 | 
						|
 | 
						|
            $text = trim(str_replace(" '".strtoupper($alphabet)."'"," ",$text));
 | 
						|
            $text = trim(str_replace(" '".$alphabet."'"," ",$text));
 | 
						|
        }
 | 
						|
 | 
						|
        return trim($text);
 | 
						|
    }
 | 
						|
 | 
						|
    function __cleanUpEventname($eventName, $specific=false)
 | 
						|
    {
 | 
						|
        $eventName      = trim($eventName);
 | 
						|
 | 
						|
        $endCharacters  = array("/","-","[","(","{");
 | 
						|
        $dictionary     = Lexicon::getDictionary();
 | 
						|
 | 
						|
        if(ParserUtility::endsWithOneOfThem($eventName, $endCharacters))
 | 
						|
        {
 | 
						|
            $eventName = substr($eventName, 0, -1);
 | 
						|
        }
 | 
						|
        foreach($dictionary['GENDER'] as $gender)
 | 
						|
        {
 | 
						|
            if($specific)
 | 
						|
            {
 | 
						|
                $eventName = trim(str_replace(ucwords($gender),"",$eventName));
 | 
						|
                $eventName = trim(str_replace(strtoupper($gender),"",$eventName));
 | 
						|
                $eventName = trim(str_replace($gender,"",$eventName));
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                $eventName = trim(str_replace(' '.ucwords($gender).' '," ",$eventName));
 | 
						|
                $eventName = trim(str_replace(' '.strtoupper($gender).' '," ",$eventName));
 | 
						|
                $eventName = trim(str_replace(' '.$gender.' '," ",$eventName));
 | 
						|
 | 
						|
                $eventName = trim(str_replace(ucwords($gender).' '," ",$eventName));
 | 
						|
                $eventName = trim(str_replace(strtoupper($gender).' '," ",$eventName));
 | 
						|
                $eventName = trim(str_replace($gender.' '," ",$eventName));
 | 
						|
 | 
						|
                $eventName = trim(str_replace(' '.ucwords($gender)," ",$eventName));
 | 
						|
                $eventName = trim(str_replace(' '.strtoupper($gender)," ",$eventName));
 | 
						|
                $eventName = trim(str_replace(' '.$gender," ",$eventName));
 | 
						|
            }
 | 
						|
        }
 | 
						|
        foreach($dictionary['SPORTS-LEVEL'] as $levels)
 | 
						|
        {
 | 
						|
            foreach($dictionary[$levels] as $level)
 | 
						|
            {
 | 
						|
                if($specific)
 | 
						|
                {
 | 
						|
                    $eventName = trim(str_replace(ucwords($level),"",$eventName));
 | 
						|
                    $eventName = trim(str_replace(strtoupper($level),"",$eventName));
 | 
						|
                    $eventName = trim(str_replace($level,"",$eventName));
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    $eventName = trim(str_replace(' '.ucwords($level).' '," ",$eventName));
 | 
						|
                    $eventName = trim(str_replace(' '.strtoupper($level).' '," ",$eventName));
 | 
						|
                    $eventName = trim(str_replace(' '.$level.' '," ",$eventName));
 | 
						|
 | 
						|
                    $eventName = trim(str_replace(ucwords($level).' '," ",$eventName));
 | 
						|
                    $eventName = trim(str_replace(strtoupper($level).' '," ",$eventName));
 | 
						|
                    $eventName = trim(str_replace($level.' '," ",$eventName));
 | 
						|
 | 
						|
                    $eventName = trim(str_replace(' '.ucwords($level)," ",$eventName));
 | 
						|
                    $eventName = trim(str_replace(' '.strtoupper($level)," ",$eventName));
 | 
						|
                    $eventName = trim(str_replace(' '.$level," ",$eventName));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        $eventName = trim($eventName);
 | 
						|
 | 
						|
        foreach($dictionary['GENDER'] as $gender)
 | 
						|
        {
 | 
						|
            if(stripos($eventName, $gender)!==false)
 | 
						|
            {
 | 
						|
                $eventName = $this->__cleanUpEventname($eventName,true);
 | 
						|
            }  
 | 
						|
        }              
 | 
						|
        foreach($dictionary['SPORTS-LEVEL'] as $levels)
 | 
						|
        {
 | 
						|
            foreach($dictionary[$levels] as $level)
 | 
						|
            {
 | 
						|
                if(stripos($eventName, $level)!==false)
 | 
						|
                {
 | 
						|
                    $eventName = $this->__cleanUpEventname($eventName,true);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        if(ParserUtility::endsWithOneOfThem($eventName, $endCharacters)!==false)
 | 
						|
        {
 | 
						|
            $eventName = $this->__cleanUpEventname($eventName,true);
 | 
						|
        }
 | 
						|
        return trim($eventName);
 | 
						|
    }
 | 
						|
 | 
						|
    function __extractNumericFromRemarks($remarks)
 | 
						|
    {
 | 
						|
        if(strpos($remarks,'QUALIFIED')!==false)
 | 
						|
        {
 | 
						|
            $remrk = trim(str_replace('QUALIFIED','',$remarks));
 | 
						|
            $expld = explode(' ',$remrk);
 | 
						|
            if(sizeof($expld)==1)
 | 
						|
            {
 | 
						|
                if(is_numeric($remrk))
 | 
						|
                {
 | 
						|
                    return array("RAW" => $remrk,"FINAL" => $remrk);
 | 
						|
                }
 | 
						|
                elseif(strpos($remrk,"-") )
 | 
						|
                {
 | 
						|
                    $remrkF = ParserUtility::numerizeLength($remrk);
 | 
						|
                    if(is_numeric($remrkF))
 | 
						|
                    {
 | 
						|
                        return array("RAW" => $remrk,"FINAL" => $remrkF);
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                elseif(strpos($remrk,":"))
 | 
						|
                {
 | 
						|
                    $remrkF = ParserUtility::numerizeTime($remrk);
 | 
						|
                    if(is_numeric($remrkF))
 | 
						|
                    {
 | 
						|
                        return array("RAW" => $remrk,"FINAL" => $remrkF);
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
}
 | 
						|
?>
 |