menufw/hierarchynavigator/hnmetadatamodel/src/hnconditionfactory.cpp
branchv5backport
changeset 14 1abc632eb502
parent 13 6205fd287e8a
child 20 636d517f67e6
--- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnconditionfactory.cpp	Thu Mar 18 14:45:17 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-/*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-
-#include "hnconditionfactory.h"
-#include "hnsimplecondition.h"
-#include "hncomplexcondition.h"
-#include "hnglobals.h"
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CHnConditionInterface* HnConditionFactory::NewL( TXmlEngAttr aElement )
-    {
-    CHnConditionInterface* self = HnConditionFactory::NewLC( aElement );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CHnConditionInterface* HnConditionFactory::NewLC( TXmlEngAttr aElement )
-    {
-    TPtrC8 condition = aElement.Value();
-    CHnConditionInterface* self = ConstructConditionL( condition );
-    CleanupStack::PushL( self );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CHnConditionInterface* HnConditionFactory::NewL( TDesC8 & aElement )
-    {
-    CHnConditionInterface* self = HnConditionFactory::NewLC( aElement );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CHnConditionInterface* HnConditionFactory::NewLC( TDesC8 & aElement )
-    {
-    CHnConditionInterface* self = HnConditionFactory::ConstructConditionL( aElement );
-    CleanupStack::PushL( self );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void HnConditionFactory::TrimConditionL( RBuf8 & aConditionString )
-    {
-    TBool ret;
-    do
-        {
-        ret = EFalse;
-        aConditionString.TrimAll();
-        TInt conditionLastIndex = aConditionString.Length()-1;
-        if (aConditionString[0] == EOpeningBrace 
-                && aConditionString[conditionLastIndex] == EClosingBrace )
-            {
-            aConditionString[0] = ESpace;
-            aConditionString[conditionLastIndex] = ESpace;
-            
-            ret = ETrue;
-            
-            if ( CheckBraceIntegrityL( aConditionString ) )
-                {
-                aConditionString[0] = EOpeningBrace;
-                aConditionString[conditionLastIndex] = EClosingBrace;
-                ret = EFalse;
-                }
-            }
-        }
-    while (ret);
-    }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TBool HnConditionFactory::CheckBraceIntegrityL( TDesC8 & aConditionString )
-    {
-    TInt ret(KErrNone);
-    TLex8 lexer( aConditionString );
-    TInt lookForClosingBrace( 0 );
-    while  ( !lexer.Eos() )
-        {
-        switch ( TUint( lexer.Get() ) )
-            {
-            case EOpeningBrace :
-                lookForClosingBrace++;
-                break;
-            case EClosingBrace :
-                lookForClosingBrace--;
-                if (lookForClosingBrace < 0)
-                    {
-                    ret = KErrGeneral;
-                    lexer.Inc( lexer.Remainder().Length() );
-                    }
-                break;             
-            }
-        }
-    
-    if (lookForClosingBrace > 0)
-        {
-        ret = KErrGeneral;
-        }
-    
-    return ret;  
-    }
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CHnConditionInterface* HnConditionFactory::ConstructConditionL(
-        TDesC8 & aConditionString )
-    {
-    RBuf8 condition;
-    CleanupClosePushL( condition );
-    condition.CreateL( aConditionString );
-    HnConditionFactory::TrimConditionL( condition );
-    User::LeaveIfError( HnConditionFactory::CheckBraceIntegrityL(condition) );
-    
-    CHnConditionInterface* ret = NULL;
-    
-    if ( aConditionString.Find( HnLogicalRelations::KLogicalAnd8 ) == KErrNotFound
-         && aConditionString.Find( HnLogicalRelations::KLogicalOr8 ) == KErrNotFound )
-        {
-        ret =  CHnSimpleCondition::NewL( condition );
-        }
-    else
-        {
-        ret = CHnComplexCondition::NewL( condition );
-        }
-    
-    CleanupStack::PopAndDestroy( &condition );
-    return ret;
-    }
-