webservices/wsstar/wsstarpolicy/inc/massertion.h
changeset 0 62f9d29f7211
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/wsstar/wsstarpolicy/inc/massertion.h	Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,82 @@
+/*
+* Copyright (c) 2009 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: Header declaration
+*
+*/
+
+
+
+
+
+
+
+
+#ifndef MASSERTION_H
+#define MASSERTION_H
+
+#include <e32std.h>
+#include "wspolicyregistry.h"
+
+class MAssertion;
+class CPolicyRegistry;
+
+typedef RPointerArray<MAssertion> RPolicyTerms;
+
+ enum TAssertionType
+ {
+    EInvalidType = 0,
+    ECompositeAndType = 1,
+    ECompositePolicyType = 2,
+    ECompositeXorType = 3,
+    EPolicyReferenceType = 4,
+    EPrimitiveType = 5
+     
+ };
+
+class MAssertion
+{
+
+public: 
+    virtual void 	        AddTerm(MAssertion* aAssertion) = 0;
+    virtual void 	        AddTerms(RPolicyTerms& aAssertions) = 0;
+    virtual void 	        AddTermCopyL(MAssertion* aAssertion) = 0;
+    virtual void 	        AddTermsCopyL(RPolicyTerms& aAssertions) = 0;
+ 
+    virtual void 	        MoveTermL(RPolicyTerms& aAssertions) = 0;
+    virtual void 	        MoveTermsL(RPolicyTerms& aAssertions) = 0;
+
+    virtual MAssertion* 	GetParent() = 0;
+    virtual RPolicyTerms& 	GetTerms() = 0;
+    virtual TBool 	        HasParent() = 0;
+    virtual MAssertion* 	IntersectL(MAssertion* aAssertion) = 0;
+    virtual TBool 	        IsEmpty() = 0;
+    virtual TBool 	        IsNormalized() = 0;
+    virtual MAssertion* 	MergeL(MAssertion* aAssertion) = 0;
+    virtual MAssertion* 	NormalizeL() = 0;
+    virtual TBool 	        Remove(MAssertion* aAssertion) = 0;
+    virtual void 	        SetNormalized(TBool aFlag) = 0;
+    virtual void 	        SetParent(MAssertion* aParent) = 0;
+    virtual TInt 	        Size() = 0;
+    virtual TAssertionType  Type() = 0;
+
+    virtual MAssertion*   IntersectL(MAssertion* aAssertion, CPolicyRegistry* aRegistry) = 0;
+    virtual MAssertion*   MergeL(MAssertion* aAssertion, CPolicyRegistry* aRegistry) = 0;
+    virtual MAssertion*   NormalizeL(CPolicyRegistry* aRegistry) = 0;
+    
+
+};
+
+#endif //MASSERTION_H
+
+