You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ma...@apache.org on 2007/05/11 11:47:10 UTC

svn commit: r537149 - in /webservices/axis2/scratch/c/neethi/axis2c/neethi: include/ src/

Author: manjula
Date: Fri May 11 02:47:09 2007
New Revision: 537149

URL: http://svn.apache.org/viewvc?view=rev&rev=537149
Log:
Policy Serializing logic.

Modified:
    webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_all.h
    webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_assertion.h
    webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_engine.h
    webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_exactlyone.h
    webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_operator.h
    webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_policy.h
    webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_reference.h
    webservices/axis2/scratch/c/neethi/axis2c/neethi/src/all.c
    webservices/axis2/scratch/c/neethi/axis2c/neethi/src/assertion.c
    webservices/axis2/scratch/c/neethi/axis2c/neethi/src/assertion_builder.c
    webservices/axis2/scratch/c/neethi/axis2c/neethi/src/engine.c
    webservices/axis2/scratch/c/neethi/axis2c/neethi/src/exactlyone.c
    webservices/axis2/scratch/c/neethi/axis2c/neethi/src/operator.c
    webservices/axis2/scratch/c/neethi/axis2c/neethi/src/policy.c
    webservices/axis2/scratch/c/neethi/axis2c/neethi/src/reference.c

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_all.h
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_all.h?view=diff&rev=537149&r1=537148&r2=537149
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_all.h (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_all.h Fri May 11 02:47:09 2007
@@ -63,6 +63,13 @@
         neethi_all_is_empty(neethi_all_t *all,
             const axutil_env_t *env);
 
+        AXIS2_EXTERN axis2_status_t AXIS2_CALL
+        neethi_all_serialize(
+            neethi_all_t *neethi_all,
+            axiom_node_t *parent,
+            const axutil_env_t *env);
+ 
+
 
     /** @} */
 #ifdef __cplusplus

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_assertion.h
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_assertion.h?view=diff&rev=537149&r1=537148&r2=537149
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_assertion.h (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_assertion.h Fri May 11 02:47:09 2007
@@ -131,6 +131,22 @@
     neethi_assertion_is_empty(neethi_assertion_t *neethi_assertion,
             const axutil_env_t *env);
 
+    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+    neethi_assertion_get_node(
+            neethi_assertion_t *neethi_assertion,
+            const axutil_env_t *env);
+
+    AXIS2_EXTERN axis2_status_t AXIS2_CALL
+    neethi_assertion_set_node(neethi_assertion_t *neethi_assertion,
+            const axutil_env_t *env,
+            axiom_node_t *node);
+
+    AXIS2_EXTERN axis2_status_t AXIS2_CALL
+    neethi_assertion_serialize(
+            neethi_assertion_t *assertion,
+            axiom_node_t *parent,
+            const axutil_env_t *env);
+    
 
 
     /** @} */

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_engine.h
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_engine.h?view=diff&rev=537149&r1=537148&r2=537149
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_engine.h (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_engine.h Fri May 11 02:47:09 2007
@@ -61,7 +61,12 @@
     neethi_engine_merge(const axutil_env_t *env,
             neethi_policy_t *neethi_policy1,
             neethi_policy_t *neethi_policy2);
-        
+
+    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+    neethi_engine_serialize(neethi_policy_t *policy,
+                   const axutil_env_t *env);
+    
+
 
     /** @} */
 #ifdef __cplusplus

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_exactlyone.h
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_exactlyone.h?view=diff&rev=537149&r1=537148&r2=537149
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_exactlyone.h (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_exactlyone.h Fri May 11 02:47:09 2007
@@ -63,6 +63,13 @@
         neethi_exactlyone_is_empty(neethi_exactlyone_t *exactlyone,
             const axutil_env_t *env);
 
+        AXIS2_EXTERN axis2_status_t AXIS2_CALL
+        neethi_exactlyone_serialize(
+            neethi_exactlyone_t *neethi_exactlyone,
+            axiom_node_t *parent,
+            const axutil_env_t *env);
+        
+
 
     /** @} */
 #ifdef __cplusplus

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_operator.h
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_operator.h?view=diff&rev=537149&r1=537148&r2=537149
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_operator.h (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_operator.h Fri May 11 02:47:09 2007
@@ -69,6 +69,13 @@
             void *value,
             neethi_operator_type_t type);
 
+    AXIS2_EXTERN axis2_status_t AXIS2_CALL
+    neethi_operator_serialize(
+            neethi_operator_t *neethi_operator,
+            const axutil_env_t *env,
+            axiom_node_t *parent);
+    
+
 
     /** @} */
 #ifdef __cplusplus

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_policy.h
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_policy.h?view=diff&rev=537149&r1=537148&r2=537149
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_policy.h (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_policy.h Fri May 11 02:47:09 2007
@@ -96,6 +96,12 @@
             const axutil_env_t *env,
             axis2_char_t *id);
 
+        AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+        neethi_policy_serialize(
+            neethi_policy_t *neethi_policy,
+            axiom_node_t *parent,
+            const axutil_env_t *env);
+        
 
 
     /** @} */

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_reference.h
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_reference.h?view=diff&rev=537149&r1=537148&r2=537149
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_reference.h (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/include/neethi_reference.h Fri May 11 02:47:09 2007
@@ -52,7 +52,13 @@
             neethi_reference_t *neethi_reference,
             const axutil_env_t *env,
             axis2_char_t *uri);
-                
+
+        AXIS2_EXTERN axis2_status_t AXIS2_CALL
+        neethi_reference_serialize(
+            neethi_reference_t *neethi_reference,
+            axiom_node_t *parent,
+            const axutil_env_t *env);
+
 
 
     /** @} */

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/src/all.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/src/all.c?view=diff&rev=537149&r1=537148&r2=537149
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/src/all.c (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/src/all.c Fri May 11 02:47:09 2007
@@ -139,3 +139,50 @@
 }
 
 
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+neethi_all_serialize(
+    neethi_all_t *neethi_all,
+    axiom_node_t *parent,
+    const axutil_env_t *env)
+{
+
+    axiom_node_t *all_node = NULL;
+    axiom_element_t *all_ele = NULL;
+    axiom_namespace_t *policy_ns = NULL;
+    axutil_array_list_t *components = NULL;
+    axis2_status_t status = AXIS2_FAILURE;
+
+
+    policy_ns = axiom_namespace_create(env, NEETHI_NAMESPACE,
+                                    NEETHI_PREFIX);
+
+    all_ele = axiom_element_create(env, parent, NEETHI_ALL, policy_ns, &all_node);
+    if (!all_node)
+    {
+        printf("Exactlyone serialization failed\n");
+        return AXIS2_FAILURE;
+    }
+    components = neethi_policy_get_policy_components(neethi_all, env);
+
+    if(components)
+    {
+        int i=0;
+        for (i = 0; i < axutil_array_list_size(components ,
+                env); i++)
+        {
+            neethi_operator_t *operator = NULL;
+            operator = (neethi_operator_t *)axutil_array_list_get(components, env, i);
+            if(operator)
+            {
+                status = neethi_operator_serialize(operator, env, all_node);
+                if(status != AXIS2_SUCCESS)
+                {
+                    printf("Operator Serializing failed\n");
+                    return status;
+                }
+            }
+        }
+    }
+    return status;
+}
+

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/src/assertion.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/src/assertion.c?view=diff&rev=537149&r1=537148&r2=537149
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/src/assertion.c (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/src/assertion.c Fri May 11 02:47:09 2007
@@ -25,6 +25,7 @@
     neethi_assertion_type_t type;
     axutil_array_list_t *policy_components;
     axiom_element_t *element;
+    axiom_node_t *node;
     axis2_bool_t is_optional;
 };
 
@@ -56,6 +57,7 @@
     neethi_assertion->type = ASSERTION_TYPE_UNKNOWN;
     neethi_assertion->element = NULL;
     neethi_assertion->is_optional = AXIS2_FALSE;
+    neethi_assertion->node = NULL;
 
     return neethi_assertion;
 }
@@ -139,6 +141,28 @@
     return AXIS2_SUCCESS;
 }
 
+AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+neethi_assertion_get_node(
+    neethi_assertion_t *neethi_assertion,
+    const axutil_env_t *env)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+    return neethi_assertion->node;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+neethi_assertion_set_node(neethi_assertion_t *neethi_assertion,
+    const axutil_env_t *env,
+    axiom_node_t *node)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+    neethi_assertion->node = node;
+    return AXIS2_SUCCESS;
+}
+
+
 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
 neethi_assertion_get_is_optional(
     neethi_assertion_t *neethi_assertion,
@@ -211,3 +235,27 @@
     return axutil_array_list_is_empty(neethi_assertion->policy_components , env);
 }
 
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+neethi_assertion_serialize(
+    neethi_assertion_t *assertion,
+    axiom_node_t *parent,
+    const axutil_env_t *env)
+{
+    axiom_namespace_t *namespace = NULL;
+    axiom_element_t *element = NULL;
+    axiom_node_t *node = NULL;
+    axis2_char_t *localname = NULL;
+
+    namespace = axiom_element_get_namespace(assertion->element, env, assertion->node);
+    localname = axiom_element_get_localname(assertion->element, env);
+           
+    element = axiom_element_create(env, parent, localname, namespace, &node);
+
+    if (!node)
+    {
+        printf("Assertion serialization failed\n");
+        return AXIS2_FAILURE;
+    }
+    return AXIS2_SUCCESS;
+}

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/src/assertion_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/src/assertion_builder.c?view=diff&rev=537149&r1=537148&r2=537149
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/src/assertion_builder.c (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/src/assertion_builder.c Fri May 11 02:47:09 2007
@@ -364,5 +364,13 @@
         }
         else return NULL;
     }
-    else return NULL;
+    else 
+    {
+        neethi_assertion_t *assertion = NULL;
+        assertion = neethi_assertion_create(env);
+        neethi_assertion_set_value(assertion, env, NULL, ASSERTION_TYPE_UNKNOWN);
+        neethi_assertion_set_element(assertion, env, element);        
+        neethi_assertion_set_node(assertion, env, node);
+        return assertion;
+    }
 }

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/src/engine.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/src/engine.c?view=diff&rev=537149&r1=537148&r2=537149
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/src/engine.c (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/src/engine.c Fri May 11 02:47:09 2007
@@ -854,4 +854,12 @@
     return cross_product;
 }
 
+/*These functions are for serializing a policy object*/
 
+AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+neethi_engine_serialize(neethi_policy_t *policy,
+                   const axutil_env_t *env)
+{
+    
+    return neethi_policy_serialize(policy, NULL, env);
+}

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/src/exactlyone.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/src/exactlyone.c?view=diff&rev=537149&r1=537148&r2=537149
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/src/exactlyone.c (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/src/exactlyone.c Fri May 11 02:47:09 2007
@@ -138,3 +138,51 @@
     return axutil_array_list_is_empty(exactlyone->policy_components , env);
 }
 
+
+/*This function is for serializing*/
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+neethi_exactlyone_serialize(
+    neethi_exactlyone_t *neethi_exactlyone,
+    axiom_node_t *parent,
+    const axutil_env_t *env)
+{
+
+    axiom_node_t *exactlyone_node = NULL;
+    axiom_element_t *exactlyone_ele = NULL;
+    axiom_namespace_t *policy_ns = NULL;
+    axutil_array_list_t *components = NULL;
+    axis2_status_t status = AXIS2_FAILURE;
+    
+
+    policy_ns = axiom_namespace_create(env, NEETHI_NAMESPACE,
+                                    NEETHI_PREFIX);
+
+    exactlyone_ele = axiom_element_create(env, parent, NEETHI_EXACTLYONE, policy_ns, &exactlyone_node);
+    if (!exactlyone_node)
+    {
+        printf("Exactlyone serialization failed\n");
+        return AXIS2_FAILURE;
+    }
+    components = neethi_policy_get_policy_components(neethi_exactlyone, env);
+
+    if(components)
+    {
+        int i=0;
+        for (i = 0; i < axutil_array_list_size(components ,
+                env); i++)
+        {
+            neethi_operator_t *operator = NULL;
+            operator = (neethi_operator_t *)axutil_array_list_get(components, env, i);
+            if(operator)
+            {
+                status = neethi_operator_serialize(operator, env, exactlyone_node);
+                if(status != AXIS2_SUCCESS)
+                {
+                    printf("Operator Serializing failed\n");
+                    return status;
+                }
+            }
+        }
+    }
+    return status;
+}

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/src/operator.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/src/operator.c?view=diff&rev=537149&r1=537148&r2=537149
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/src/operator.c (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/src/operator.c Fri May 11 02:47:09 2007
@@ -136,3 +136,56 @@
 
     return AXIS2_SUCCESS;
 }
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+neethi_operator_serialize(
+    neethi_operator_t *neethi_operator,
+    const axutil_env_t *env,
+    axiom_node_t *parent)
+{
+
+    neethi_policy_t *policy = NULL;
+    neethi_all_t *all = NULL;
+    neethi_exactlyone_t *exactlyone = NULL;
+    neethi_reference_t *reference = NULL;
+
+    if(neethi_operator->value)
+    {
+        switch(neethi_operator->type)
+        {
+            case OPERATOR_TYPE_POLICY:
+                policy = (neethi_policy_t *)neethi_operator_get_value(neethi_operator, env);
+                if(!neethi_policy_serialize(policy, parent, env))
+                {                    
+                    return AXIS2_FAILURE;
+                }    
+                else
+                {    
+                    return AXIS2_SUCCESS;
+                }    
+                break;
+
+            case OPERATOR_TYPE_ALL:
+                all = (neethi_all_t *)neethi_operator_get_value(neethi_operator, env);
+                return neethi_all_serialize(all, parent, env);
+                break;
+
+            case OPERATOR_TYPE_EXACTLYONE:
+                exactlyone = (neethi_exactlyone_t *)neethi_operator_get_value(neethi_operator, env);
+                return neethi_exactlyone_serialize(exactlyone, parent, env);
+                break;
+
+            case OPERATOR_TYPE_REFERENCE:
+                reference = (neethi_reference_t *)neethi_operator_get_value(neethi_operator, env);
+                return neethi_reference_serialize(reference, parent, env);
+                break;
+
+            case OPERATOR_TYPE_ASSERTION:
+                break;
+
+            case OPERATOR_TYPE_UNKNOWN:
+                break;
+        }
+    }
+    else return AXIS2_FAILURE;
+}

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/src/policy.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/src/policy.c?view=diff&rev=537149&r1=537148&r2=537149
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/src/policy.c (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/src/policy.c Fri May 11 02:47:09 2007
@@ -254,3 +254,52 @@
     neethi_policy->id = id;
     return AXIS2_SUCCESS;
 }
+
+
+/*This function is for serializing*/
+AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+neethi_policy_serialize(
+    neethi_policy_t *neethi_policy,
+    axiom_node_t *parent,
+    const axutil_env_t *env)
+{
+
+    axiom_node_t *policy_node = NULL;
+    axiom_element_t *policy_ele = NULL;
+    axiom_namespace_t *policy_ns = NULL;
+    axutil_array_list_t *components = NULL;
+    axis2_status_t status = AXIS2_FAILURE;
+
+    policy_ns = axiom_namespace_create(env, NEETHI_NAMESPACE,
+                                        NEETHI_PREFIX);
+
+    policy_ele = axiom_element_create(env, parent, NEETHI_POLICY, policy_ns, &policy_node);
+    if (!policy_ele)
+    {
+        printf("Policy element serialization failed.\n");
+        return NULL;
+    }
+
+    components = neethi_policy_get_policy_components(neethi_policy, env);
+
+    if(components)
+    {
+        int i=0;
+        for (i = 0; i < axutil_array_list_size(components ,
+                env); i++)
+        {
+            neethi_operator_t *operator = NULL;
+            operator = (neethi_operator_t *)axutil_array_list_get(components, env, i);           
+            if(operator)
+            {
+                status = neethi_operator_serialize(operator, env, policy_node);
+                if(status != AXIS2_SUCCESS)
+                {
+                    printf("Operator Serializing failed\n");
+                    return NULL;
+                }
+            }
+        }        
+    } 
+    return policy_node;
+}

Modified: webservices/axis2/scratch/c/neethi/axis2c/neethi/src/reference.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/neethi/axis2c/neethi/src/reference.c?view=diff&rev=537149&r1=537148&r2=537149
==============================================================================
--- webservices/axis2/scratch/c/neethi/axis2c/neethi/src/reference.c (original)
+++ webservices/axis2/scratch/c/neethi/axis2c/neethi/src/reference.c Fri May 11 02:47:09 2007
@@ -83,3 +83,35 @@
     return AXIS2_SUCCESS;
 }
 
+
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+neethi_reference_serialize(
+    neethi_reference_t *neethi_reference,
+    axiom_node_t *parent,
+    const axutil_env_t *env)
+{
+
+    axiom_node_t *ref_node = NULL;
+    axiom_element_t *ref_ele = NULL;
+    axiom_namespace_t *policy_ns = NULL;
+    axis2_status_t status = AXIS2_FAILURE;
+    axiom_attribute_t *att_uri = NULL;
+    
+
+    policy_ns = axiom_namespace_create(env, NEETHI_NAMESPACE,
+                                    NEETHI_PREFIX);
+
+    ref_ele = axiom_element_create(env, parent, NEETHI_REFERENCE, policy_ns, &ref_node);
+    if (!ref_node)
+    {
+        printf("Reference serialization failed\n");
+        return AXIS2_FAILURE;
+    }
+        
+    att_uri = axiom_attribute_create(env, NEETHI_URI, neethi_reference->uri, NULL);
+    axiom_element_add_attribute(ref_ele, env, att_uri, ref_node);
+
+    return AXIS2_SUCCESS;
+        
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org