webservices/wsstar/wsstarpolicy/inc/primitiveassertion.h
changeset 0 62f9d29f7211
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/wsstar/wsstarpolicy/inc/primitiveassertion.h	Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,121 @@
+/*
+* 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 C_PRIMITIVE_ASSERTION_H
+#define C_PRIMITIVE_ASSERTION_H
+
+
+#include "assertion.h"
+#include "SenBaseAttribute.h"
+class CPolicyAssertion;
+class CAssertionAttrib;
+class CQName;
+
+typedef RSenPointerMap<TDesC8, TDesC8> RAttributeMap;
+
+class CPrimitiveAssertion : public CAssertion
+{
+public:
+    static  CPrimitiveAssertion* NewL();
+    static  CPrimitiveAssertion* NewLC();
+
+    static  CPrimitiveAssertion* NewL(CPrimitiveAssertion* aValue);
+    static  CPrimitiveAssertion* NewLC(CPrimitiveAssertion* aValue);
+
+    static  CPrimitiveAssertion* NewL(TDesC8& aName, TDesC8& aPrefix, TDesC8& aUri);
+    static  CPrimitiveAssertion* NewLC(TDesC8& aName, TDesC8& aPrefix, TDesC8& aUri);
+
+    virtual ~CPrimitiveAssertion();
+//from CAssertion
+    virtual  MAssertion* 	GetParent();
+    virtual RPolicyTerms& 	GetTerms();
+    virtual  TAssertionType Type();
+    virtual  TBool 	HasParent();
+    virtual  TBool 	IsEmpty();
+    virtual  MAssertion* 	NormalizeL();         
+    virtual  MAssertion* 	NormalizeL(CPolicyRegistry* aRegistry);         
+    virtual  MAssertion* IntersectL(MAssertion* aAssertion);
+    virtual  MAssertion* IntersectL(MAssertion* aAssertion, CPolicyRegistry* aRegistry);
+    virtual  MAssertion* 	MergeL(MAssertion* aAssertion);
+    virtual  MAssertion* 	MergeL(MAssertion* aAssertion, CPolicyRegistry* aRegistry);
+    virtual TBool 	Remove(MAssertion* aAssertion);
+    
+    virtual  TInt 	Size();
+public:    
+ 
+    void  AddAttributeL(TDesC8& aQname, TDesC8& aValue);
+    TPtrC8 GetAttributeValue(const TDesC8& aQname);
+    RAttributeMap&  Attributes();
+    TInt SetAttributesL(RAttributeMap& aAttributes);
+    TInt  RemoveAttribute(const TDesC8& aQname);
+
+    CQName* QName();
+    TPtrC8 Name();
+    TPtrC8 StrValue();
+    void SetStrValueL(TDesC8& aStrValue);
+    TAny* Value(); 
+
+    TBool IsOptional();
+    TInt SetOptional(TBool aOptional);
+    CQName* iQname;
+private:
+    CPrimitiveAssertion();
+    void ConstructL();
+    void ConstructL(CPrimitiveAssertion* aValue);
+    void ConstructL(TDesC8& aName, TDesC8& aPrefix, TDesC8& aUri);
+    TInt SetTermsL(RPolicyTerms& aTerms);
+    RPolicyTerms GetTerms(CPolicyAssertion* aPolicy); 
+    TBool IsEmptyPolicy(CPolicyAssertion* aPolicy); 
+    CPolicyAssertion* GetSinglePolicyL(RPolicyTerms aChildTerms);
+    CPrimitiveAssertion* GetSelfWithoutTermsL();
+private:
+    MAssertion* iOwner;
+	RAttributeMap* iAttr; 
+	TBool iIsOptional;
+	HBufC8* iStrValue;
+	TAny* iValue;
+      
+    
+};
+
+class CQName :public CBase
+{
+public:
+    static  CQName* NewL(TDesC8& aName, TDesC8& aPrefix, TDesC8& aUri);
+    static  CQName* NewLC(TDesC8& aName, TDesC8& aPrefix, TDesC8& aUri);
+    ~CQName();
+public:
+    TPtrC8 Name();
+    TPtrC8 QName();
+    TPtrC8 Prefix();
+    TPtrC8 Uri();
+
+private:
+    CQName();
+    void ConstructL(TDesC8& aName, TDesC8& aPrefix, TDesC8& aUri);
+    HBufC8* iName;
+    HBufC8* iQName;
+    HBufC8* iPrefix;
+    HBufC8* iUri;
+};
+#endif //C_PRIMITIVE_ASSERTION_H              
\ No newline at end of file