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 da...@apache.org on 2006/07/06 08:02:31 UTC

svn commit: r419452 [19/46] - in /webservices/axis2/trunk/c/woden: ./ include/ samples/ samples/wsdl10/ src/ src/builder/ src/builder/wsdl10/ src/schema/ src/types/ src/util/ src/wsdl/ src/wsdl/enumeration/ src/wsdl10/ src/wsdl10/enumeration/ src/wsdl1...

Added: webservices/axis2/trunk/c/woden/src/wsdl/enumeration/Makefile
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl/enumeration/Makefile?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl/enumeration/Makefile (added)
+++ webservices/axis2/trunk/c/woden/src/wsdl/enumeration/Makefile Wed Jul  5 23:02:19 2006
@@ -0,0 +1,443 @@
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# src/wsdl10/enumeration/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+SOURCES = $(libwoden_wsdl10_enumeration_la_SOURCES)
+
+srcdir = .
+top_srcdir = ../../..
+
+pkgdatadir = $(datadir)/wodenc-src
+pkglibdir = $(libdir)/wodenc-src
+pkgincludedir = $(includedir)/wodenc-src
+top_builddir = ../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = /usr/bin/install -c
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = i686-pc-linux-gnu
+host_triplet = i686-pc-linux-gnu
+target_triplet = i686-pc-linux-gnu
+subdir = src/wsdl10/enumeration
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libwoden_wsdl10_enumeration_la_LIBADD =
+am_libwoden_wsdl10_enumeration_la_OBJECTS = msg_label.lo direction.lo \
+	soap_fault_code.lo soap_fault_subcodes.lo
+libwoden_wsdl10_enumeration_la_OBJECTS =  \
+	$(am_libwoden_wsdl10_enumeration_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libwoden_wsdl10_enumeration_la_SOURCES)
+DIST_SOURCES = $(libwoden_wsdl10_enumeration_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/damitha/temp/woden/missing --run aclocal-1.9
+AMDEP_FALSE = #
+AMDEP_TRUE = 
+AMTAR = ${SHELL} /home/damitha/temp/woden/missing --run tar
+AR = ar
+AUTOCONF = ${SHELL} /home/damitha/temp/woden/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/damitha/temp/woden/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/damitha/temp/woden/missing --run automake-1.9
+AWK = mawk
+AXIOMINC = 
+CC = ccache gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -D_LARGEFILE64_SOURCE -ansi -Wall -Wno-implicit-function-declaration -Werror
+CPP = ccache gcc -E
+CPPFLAGS = 
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+ECHO = echo
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = grep -E
+EXEEXT = 
+F77 = 
+FFLAGS = 
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
+LDFLAGS = -lpthread
+LIBOBJS = 
+LIBS = -ldl 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LN_S = ln -s
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/damitha/temp/woden/missing --run makeinfo
+OBJEXT = o
+PACKAGE = wodenc-src
+PACKAGE_BUGREPORT = 
+PACKAGE_NAME = wodenc-src
+PACKAGE_STRING = wodenc-src 0.91_pre
+PACKAGE_TARNAME = wodenc-src
+PACKAGE_VERSION = 0.91_pre
+PATH_SEPARATOR = :
+RANLIB = ranlib
+SET_MAKE = 
+SHELL = /bin/sh
+STRIP = strip
+UTILINC = -I/home/damitha/projects/c/deploy/include
+VERSION = 0.91_pre
+XMLSCHEMAINC = -I/home/damitha/temp/woden/../../projects/c/xml_schema/include
+ac_ct_AR = ar
+ac_ct_CC = ccache gcc
+ac_ct_CXX = g++
+ac_ct_F77 = 
+ac_ct_RANLIB = ranlib
+ac_ct_STRIP = strip
+am__fastdepCC_FALSE = #
+am__fastdepCC_TRUE = 
+am__fastdepCXX_FALSE = #
+am__fastdepCXX_TRUE = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = i686-pc-linux-gnu
+build_alias = 
+build_cpu = i686
+build_os = linux-gnu
+build_vendor = pc
+datadir = ${prefix}/share
+exec_prefix = ${prefix}
+host = i686-pc-linux-gnu
+host_alias = 
+host_cpu = i686
+host_os = linux-gnu
+host_vendor = pc
+includedir = ${prefix}/include
+infodir = ${prefix}/info
+install_sh = /home/damitha/temp/woden/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localstatedir = ${prefix}/var
+mandir = ${prefix}/man
+mkdir_p = mkdir -p --
+oldincludedir = /usr/include
+prefix = /home/damitha/projects/c/deploy
+program_transform_name = s,x,x,
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+sysconfdir = ${prefix}/etc
+target = i686-pc-linux-gnu
+target_alias = 
+target_cpu = i686
+target_os = linux-gnu
+target_vendor = pc
+noinst_LTLIBRARIES = libwoden_wsdl10_enumeration.la
+libwoden_wsdl10_enumeration_la_SOURCES = \
+							msg_label.c \
+							direction.c \
+							soap_fault_code.c \
+							soap_fault_subcodes.c
+
+INCLUDES = -I$(top_builddir)/include \
+			 \
+			-I/home/damitha/projects/c/deploy/include \
+			-I/home/damitha/temp/woden/../../projects/c/xml_schema/include
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/wsdl10/enumeration/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  src/wsdl10/enumeration/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libwoden_wsdl10_enumeration.la: $(libwoden_wsdl10_enumeration_la_OBJECTS) $(libwoden_wsdl10_enumeration_la_DEPENDENCIES) 
+	$(LINK)  $(libwoden_wsdl10_enumeration_la_LDFLAGS) $(libwoden_wsdl10_enumeration_la_OBJECTS) $(libwoden_wsdl10_enumeration_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+include ./$(DEPDIR)/direction.Plo
+include ./$(DEPDIR)/msg_label.Plo
+include ./$(DEPDIR)/soap_fault_code.Plo
+include ./$(DEPDIR)/soap_fault_subcodes.Plo
+
+.c.o:
+	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(COMPILE) -c $<
+
+.c.obj:
+	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+	if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+#	source='$<' object='$@' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: webservices/axis2/trunk/c/woden/src/wsdl/enumeration/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl/enumeration/Makefile.am?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl/enumeration/Makefile.am (added)
+++ webservices/axis2/trunk/c/woden/src/wsdl/enumeration/Makefile.am Wed Jul  5 23:02:19 2006
@@ -0,0 +1,12 @@
+noinst_LTLIBRARIES = libwoden_wsdl10_enumeration.la
+
+libwoden_wsdl10_enumeration_la_SOURCES = \
+							msg_label.c \
+							direction.c \
+							soap_fault_code.c \
+							soap_fault_subcodes.c
+
+INCLUDES = -I$(top_builddir)/include \
+			@AXIOMINC@ \
+			@UTILINC@ \
+			@XMLSCHEMAINC@

Added: webservices/axis2/trunk/c/woden/src/wsdl/ext_element.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl/ext_element.c?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl/ext_element.c (added)
+++ webservices/axis2/trunk/c/woden/src/wsdl/ext_element.c Wed Jul  5 23:02:19 2006
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <woden_ext_element.h>
+
+axis2_status_t AXIS2_CALL
+woden_ext_element_resolve_methods(
+        woden_ext_element_t *ext_element,
+        const axis2_env_t *env,
+        axis2_hash_t *methods)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error, methods, AXIS2_FAILURE);
+    
+    ext_element->ops->free = axis2_hash_get(methods, "free", 
+            AXIS2_HASH_KEY_STRING);
+    ext_element->ops->type = axis2_hash_get(methods, "type", 
+            AXIS2_HASH_KEY_STRING);
+
+    ext_element->ops->set_ext_type = 
+            axis2_hash_get(methods, "set_ext_type", 
+            AXIS2_HASH_KEY_STRING);
+
+    ext_element->ops->get_ext_type = 
+            axis2_hash_get(methods, "get_ext_type", 
+            AXIS2_HASH_KEY_STRING);
+
+    ext_element->ops->set_required = 
+            axis2_hash_get(methods, "set_required", 
+            AXIS2_HASH_KEY_STRING);
+
+    ext_element->ops->is_required = 
+            axis2_hash_get(methods, "is_required", 
+            AXIS2_HASH_KEY_STRING);
+
+    return AXIS2_SUCCESS;    
+}
+

Added: webservices/axis2/trunk/c/woden/src/wsdl/feature.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl/feature.c?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl/feature.c (added)
+++ webservices/axis2/trunk/c/woden/src/wsdl/feature.c Wed Jul  5 23:02:19 2006
@@ -0,0 +1,817 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <woden_wsdl_obj.h>
+#include <woden_feature.h>
+#include <woden_ext_element.h>
+#include <woden_component_exts.h>
+#include <woden_xml_attr.h>
+#include <woden_documentation_element.h>
+
+typedef struct woden_feature_impl woden_feature_impl_t;
+
+/** 
+ * @brief Feature Struct Impl
+ *   Axis2 Feature  
+ */ 
+struct woden_feature_impl
+{
+    woden_feature_t feature;
+    woden_obj_types_t obj_type;
+    woden_documentable_t *documentable;
+    axis2_hash_t *super;
+    axis2_hash_t *methods;
+    axis2_uri_t *f_ref;
+    axis2_bool_t f_required;
+    void *f_parent;
+};
+
+#define INTF_TO_IMPL(feature) ((woden_feature_impl_t *) feature)
+
+axis2_status_t AXIS2_CALL 
+woden_feature_free(
+        void *feature,
+        const axis2_env_t *env);
+
+axis2_hash_t *AXIS2_CALL 
+woden_feature_super_objs(
+        void *feature,
+        const axis2_env_t *env);
+
+woden_obj_types_t AXIS2_CALL 
+woden_feature_type(
+        void *feature,
+        const axis2_env_t *env);
+
+woden_documentable_t *AXIS2_CALL
+woden_feature_get_base_impl(
+        void *feature,
+        const axis2_env_t *env);
+
+axis2_status_t AXIS2_CALL
+woden_feature_set_ref(
+        void *feature,
+        const axis2_env_t *env,
+        axis2_uri_t *ref);
+
+axis2_uri_t *AXIS2_CALL
+woden_feature_get_ref(
+        void *feature,
+        const axis2_env_t *env);
+
+axis2_status_t AXIS2_CALL
+woden_feature_set_required(
+        void *feature,
+        const axis2_env_t *env,
+        axis2_bool_t required);
+
+axis2_bool_t AXIS2_CALL
+woden_feature_is_required(
+        void *feature,
+        const axis2_env_t *env);
+
+axis2_status_t AXIS2_CALL
+woden_feature_set_parent_element(
+        void *feature,
+        const axis2_env_t *env,
+        woden_wsdl_element_t *parent);
+
+void *AXIS2_CALL
+woden_feature_get_parent_element(
+        void *feature,
+        const axis2_env_t *env);
+
+void *AXIS2_CALL
+woden_feature_get_parent(
+        void *feature,
+        const axis2_env_t *env);
+
+void *AXIS2_CALL
+woden_feature_to_element(
+        void *feature,
+        const axis2_env_t *env);
+
+static woden_feature_t *
+create(const axis2_env_t *env);
+
+static axis2_status_t
+woden_feature_free_ops(
+        void *feature,
+        const axis2_env_t *env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN woden_feature_t * AXIS2_CALL
+woden_feature_to_feature_element(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+   
+    AXIS2_ENV_CHECK(env, NULL);
+    if(!feature)
+    {
+        feature_impl = (woden_feature_impl_t *) create(env);
+    }
+    else
+        feature_impl = (woden_feature_impl_t *) feature;
+    woden_feature_free_ops(feature, env);
+
+    feature_impl->feature.base.feature_element.ops = 
+        AXIS2_MALLOC(env->allocator, 
+                sizeof(woden_feature_element_ops_t));
+    woden_feature_element_resolve_methods(&(feature_impl->feature.base.
+            feature_element), env, feature_impl->methods);
+    return feature;
+}
+
+AXIS2_EXTERN woden_feature_t * AXIS2_CALL
+woden_feature_to_nested_element(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+   
+    AXIS2_ENV_CHECK(env, NULL);
+    if(!feature)
+    {
+        feature_impl = (woden_feature_impl_t *) create(env);
+    }
+    else
+        feature_impl = (woden_feature_impl_t *) feature;
+    woden_feature_free_ops(feature, env);
+
+    feature_impl->feature.base.feature_element.base.nested_element.ops = 
+        AXIS2_MALLOC(env->allocator, 
+                sizeof(woden_nested_element_ops_t));
+    woden_nested_element_resolve_methods(&(feature_impl->feature.base.
+            feature_element.base.nested_element), env, feature_impl->methods);
+    return feature;
+}
+
+AXIS2_EXTERN woden_feature_t * AXIS2_CALL
+woden_feature_to_documentable_element(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+   
+    AXIS2_ENV_CHECK(env, NULL);
+    if(!feature)
+    {
+        feature_impl = (woden_feature_impl_t *) create(env);
+    }
+    else
+        feature_impl = (woden_feature_impl_t *) feature;
+    woden_feature_free_ops(feature, env);
+
+    feature_impl->feature.base.feature_element.base.documentable_element.ops = 
+        AXIS2_MALLOC(env->allocator, 
+                sizeof(woden_documentable_element_ops_t));
+    woden_documentable_element_resolve_methods(&(feature_impl->feature.base.
+            feature_element.base.documentable_element), env, 
+            feature_impl->methods);
+    return feature;
+}
+
+AXIS2_EXTERN woden_feature_t * AXIS2_CALL
+woden_feature_to_documentable(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+   
+    AXIS2_ENV_CHECK(env, NULL);
+    if(!feature)
+    {
+        feature_impl = (woden_feature_impl_t *) create(env);
+    }
+    else
+        feature_impl = (woden_feature_impl_t *) feature;
+    woden_feature_free_ops(feature, env);
+
+    feature_impl->feature.base.documentable.ops = 
+        AXIS2_MALLOC(env->allocator, 
+                sizeof(woden_documentable_ops_t));
+    woden_documentable_resolve_methods(&(feature_impl->feature.base.
+            documentable), env, feature_impl->documentable, 
+            feature_impl->methods);
+    return feature;
+}
+
+AXIS2_EXTERN woden_feature_t * AXIS2_CALL
+woden_feature_to_wsdl_obj(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+    void *wsdl_obj = NULL;
+   
+    AXIS2_ENV_CHECK(env, NULL);
+    if(!feature)
+    {
+        feature_impl = (woden_feature_impl_t *) create(env);
+    }
+    else
+        feature_impl = (woden_feature_impl_t *) feature;
+    woden_feature_free_ops(feature, env);
+
+    feature_impl->feature.base.documentable.base.wsdl_obj.ops = 
+        AXIS2_MALLOC(env->allocator, 
+                sizeof(woden_wsdl_obj_ops_t));
+    wsdl_obj = WODEN_DOCUMENTABLE_GET_BASE_IMPL(
+            feature_impl->documentable, env);
+    woden_wsdl_obj_resolve_methods(&(feature_impl->feature.base.
+            documentable.base.wsdl_obj), env, wsdl_obj, feature_impl->methods);
+    return feature;
+}
+
+AXIS2_EXTERN woden_feature_t * AXIS2_CALL
+woden_feature_to_nested_component(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+    
+    AXIS2_ENV_CHECK(env, NULL);
+    if(!feature)
+    {
+        feature_impl = (woden_feature_impl_t *) create(env);
+    }
+    else
+        feature_impl = (woden_feature_impl_t *) feature;
+    woden_feature_free_ops(feature, env);
+  
+    feature_impl->feature.base.nested_component.ops = 
+        AXIS2_MALLOC(env->allocator, 
+                sizeof(woden_nested_component_ops_t));
+    woden_nested_component_resolve_methods(&(feature_impl->feature.base.
+            nested_component), env, feature_impl->methods);
+    return feature;
+}
+
+AXIS2_EXTERN woden_feature_t * AXIS2_CALL
+woden_feature_to_wsdl_component(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+
+    if(!feature)
+    {
+        feature_impl = (woden_feature_impl_t *) create(env);
+    }
+    else
+        feature_impl = (woden_feature_impl_t *) feature;
+    woden_feature_free_ops(feature, env);
+    feature_impl->feature.base.nested_component.wsdl_component.ops = 
+        AXIS2_MALLOC(env->allocator, 
+        sizeof(woden_wsdl_component_ops_t));
+    woden_wsdl_component_resolve_methods(&(feature_impl->feature.base.
+            nested_component.wsdl_component), env, feature_impl->methods);
+    return feature;
+}
+
+AXIS2_EXTERN woden_feature_t * AXIS2_CALL
+woden_feature_to_attr_extensible(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+
+    if(!feature)
+    {
+        feature_impl = (woden_feature_impl_t *) create(env);
+    }
+    else
+        feature_impl = (woden_feature_impl_t *) feature;
+    woden_feature_free_ops(feature, env);
+
+    feature_impl->feature.base.documentable.base.wsdl_obj.base.
+            wsdl_element.base.attr_extensible.ops =
+            AXIS2_MALLOC(env->allocator, 
+            sizeof(woden_attr_extensible_ops_t));
+    woden_attr_extensible_resolve_methods(&(feature_impl->feature.base.
+            documentable.base.wsdl_obj.base.wsdl_element.base.attr_extensible), 
+            env, NULL, feature_impl->methods);
+    return feature;
+
+}
+
+AXIS2_EXTERN woden_feature_t * AXIS2_CALL
+woden_feature_to_element_extensible(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+
+    if(!feature)
+    {
+        feature_impl = (woden_feature_impl_t *) create(env);
+    }
+    else
+        feature_impl = (woden_feature_impl_t *) feature;
+    woden_feature_free_ops(feature, env);
+    feature_impl->feature.base.documentable.base.wsdl_obj.base.wsdl_element.
+                base.element_extensible.ops = AXIS2_MALLOC(env->allocator, 
+                sizeof(woden_element_extensible_ops_t));
+    woden_element_extensible_resolve_methods(&(feature_impl->feature.base.
+            documentable.base.wsdl_obj.base.wsdl_element.base.element_extensible), 
+            env, NULL, feature_impl->methods);
+    return feature;
+
+}
+
+/************************End of Woden C Internal Methods***********************/
+static woden_feature_t *
+create(const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+   
+    AXIS2_ENV_CHECK(env, NULL);
+    feature_impl = AXIS2_MALLOC(env->allocator, 
+                    sizeof(woden_feature_impl_t));
+
+    feature_impl->obj_type= WODEN_FEATURE;
+    feature_impl->super = NULL;
+    feature_impl->methods = NULL;
+    feature_impl->f_parent = NULL;
+    feature_impl->f_ref = NULL;
+    feature_impl->f_required = AXIS2_FALSE;
+    
+    feature_impl->feature.base.feature_element.ops = NULL;
+    feature_impl->feature.base.feature_element.base.nested_element.ops = NULL;
+    feature_impl->feature.base.feature_element.base.documentable_element.ops = 
+            NULL;
+    feature_impl->feature.base.documentable.ops = NULL;
+    feature_impl->feature.base.nested_component.ops = NULL; 
+    feature_impl->feature.base.nested_component.wsdl_component.ops = NULL;
+    feature_impl->feature.base.documentable.base.wsdl_obj.ops = NULL;
+    feature_impl->feature.base.documentable.base.wsdl_obj.base.wsdl_element.
+            base.attr_extensible.ops = NULL;
+    feature_impl->feature.base.documentable.base.wsdl_obj.base.wsdl_element.
+            base.element_extensible.ops = NULL;
+    
+    feature_impl->feature.ops = AXIS2_MALLOC(env->allocator, 
+            sizeof(woden_feature_ops_t));
+
+    feature_impl->feature.ops->free = woden_feature_free;
+    feature_impl->feature.ops->super_objs = woden_feature_super_objs;
+    feature_impl->feature.ops->type = woden_feature_type;
+    feature_impl->feature.ops->get_base_impl = woden_feature_get_base_impl;
+    feature_impl->feature.ops->get_ref = woden_feature_get_ref;
+    feature_impl->feature.ops->is_required = woden_feature_is_required;
+    feature_impl->feature.ops->get_parent = 
+        woden_feature_get_parent;
+    feature_impl->feature.ops->to_element = 
+        woden_feature_to_element;
+ 
+    feature_impl->methods = axis2_hash_make(env);
+    if(!feature_impl->methods) 
+    {
+        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    axis2_hash_set(feature_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
+            woden_feature_free);
+    axis2_hash_set(feature_impl->methods, "super_objs", 
+            AXIS2_HASH_KEY_STRING, woden_feature_super_objs);
+    axis2_hash_set(feature_impl->methods, "type", 
+            AXIS2_HASH_KEY_STRING, woden_feature_type);
+
+    axis2_hash_set(feature_impl->methods, "get_parent", 
+            AXIS2_HASH_KEY_STRING, 
+            woden_feature_get_parent);
+    axis2_hash_set(feature_impl->methods, "set_parent_element", 
+            AXIS2_HASH_KEY_STRING, 
+            woden_feature_set_parent_element);
+    axis2_hash_set(feature_impl->methods, "get_parent_element", 
+            AXIS2_HASH_KEY_STRING, 
+            woden_feature_get_parent_element);
+    axis2_hash_set(feature_impl->methods, "set_ref", 
+            AXIS2_HASH_KEY_STRING, 
+            woden_feature_set_ref);
+    axis2_hash_set(feature_impl->methods, "get_ref", 
+            AXIS2_HASH_KEY_STRING, 
+            woden_feature_get_ref);
+    axis2_hash_set(feature_impl->methods, "set_required", 
+            AXIS2_HASH_KEY_STRING, 
+            woden_feature_set_required);
+    axis2_hash_set(feature_impl->methods, "is_required", 
+            AXIS2_HASH_KEY_STRING, 
+            woden_feature_is_required);
+    axis2_hash_set(feature_impl->methods, "to_element", 
+            AXIS2_HASH_KEY_STRING, 
+            woden_feature_to_element);
+
+    return &(feature_impl->feature);
+}
+
+AXIS2_EXTERN woden_feature_t * AXIS2_CALL
+woden_feature_create(const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+   
+    AXIS2_ENV_CHECK(env, NULL);
+    feature_impl = (woden_feature_impl_t *) create(env);
+
+    feature_impl->documentable = woden_documentable_create(env);
+
+    feature_impl->super = axis2_hash_make(env);
+    if(!feature_impl->super) 
+    {
+        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    axis2_hash_set(feature_impl->super, "WODEN_FEATURE", AXIS2_HASH_KEY_STRING, 
+            &(feature_impl->feature));
+    axis2_hash_set(feature_impl->super, "WODEN_DOCUMENTABLE", AXIS2_HASH_KEY_STRING, 
+            feature_impl->documentable);
+ 
+    return &(feature_impl->feature);
+}
+
+static axis2_status_t
+woden_feature_free_ops(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    feature_impl = INTF_TO_IMPL(feature);
+
+    if(feature_impl->feature.base.feature_element.ops)
+    {
+        AXIS2_FREE(env->allocator, feature_impl->feature.base.
+                feature_element.ops);
+        feature_impl->feature.base.feature_element.ops = NULL;
+    }
+
+    if(feature_impl->feature.base.feature_element.base.nested_element.ops)
+    {
+        AXIS2_FREE(env->allocator, feature_impl->feature.base.
+                feature_element.base.nested_element.ops);
+        feature_impl->feature.base.feature_element.base.nested_element.ops = 
+            NULL;
+    }
+    
+    if(feature_impl->feature.base.feature_element.base.documentable_element.ops)
+    {
+        AXIS2_FREE(env->allocator, feature_impl->feature.base.
+                feature_element.base.documentable_element.ops);
+        feature_impl->feature.base.feature_element.base.documentable_element.ops = 
+            NULL;
+    }
+    
+    if(feature_impl->feature.base.documentable.ops)
+    {
+        AXIS2_FREE(env->allocator, feature_impl->feature.base.
+                documentable.ops);
+        feature_impl->feature.base.documentable.ops = 
+            NULL;
+    }
+    
+    if(feature_impl->feature.base.documentable.base.wsdl_obj.ops)
+    {
+        AXIS2_FREE(env->allocator, feature_impl->feature.base.
+                documentable.base.wsdl_obj.ops);
+        feature_impl->feature.base.documentable.base.wsdl_obj.ops = 
+            NULL;
+    }
+
+    if(feature_impl->feature.base.nested_component.ops)
+    {
+        AXIS2_FREE(env->allocator, feature_impl->feature.base.
+                nested_component.ops);
+        feature_impl->feature.base.nested_component.ops = NULL;
+    }
+
+    if(feature_impl->feature.base.nested_component.wsdl_component.ops)
+    {
+        AXIS2_FREE(env->allocator, feature_impl->feature.base.
+                nested_component.wsdl_component.ops);
+        feature_impl->feature.base.nested_component.wsdl_component.ops = NULL;
+    }
+
+
+    if(feature_impl->feature.base.documentable.base.wsdl_obj.base.
+            wsdl_element.base.attr_extensible.ops)
+    {
+        AXIS2_FREE(env->allocator, feature_impl->feature.base.documentable.
+                base.wsdl_obj.base.wsdl_element.base.attr_extensible.ops);
+        feature_impl->feature.base.documentable.base.wsdl_obj.base.wsdl_element.
+                base.attr_extensible.ops = NULL;
+    }
+
+    if(feature_impl->feature.base.documentable.base.wsdl_obj.base.
+            wsdl_element.base.element_extensible.ops)
+    {
+        AXIS2_FREE(env->allocator, feature_impl->feature.base.documentable.
+                base.wsdl_obj.base.wsdl_element.base.element_extensible.ops);
+        feature_impl->feature.base.documentable.base.wsdl_obj.base.wsdl_element.
+                base.element_extensible.ops = NULL;
+    }
+    return AXIS2_SUCCESS;
+}
+
+
+axis2_status_t AXIS2_CALL
+woden_feature_free(void *feature,
+                        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    feature_impl = INTF_TO_IMPL(feature);
+
+    if(feature_impl->f_ref)
+    {
+        AXIS2_URI_FREE(feature_impl->f_ref, env);
+        feature_impl->f_ref = NULL;
+    }
+   
+    /* TODO free f_parent */
+    
+    if(feature_impl->super)
+    {
+        axis2_hash_free(feature_impl->super, env);
+        feature_impl->super = NULL;
+    }
+    
+    if(feature_impl->methods)
+    {
+        axis2_hash_free(feature_impl->methods, env);
+        feature_impl->methods = NULL;
+    }
+
+    if(feature_impl->documentable)
+    {
+        WODEN_DOCUMENTABLE_FREE(feature_impl->documentable, env);
+        feature_impl->documentable = NULL;
+    }
+
+    woden_feature_free_ops(feature, env);
+
+    if((&(feature_impl->feature))->ops)
+    {
+        AXIS2_FREE(env->allocator, (&(feature_impl->feature))->ops);
+        (&(feature_impl->feature))->ops = NULL;
+    }
+    
+    if(feature_impl)
+    {
+        AXIS2_FREE(env->allocator, feature_impl);
+        feature_impl = NULL;
+    }
+    return AXIS2_SUCCESS;
+}
+
+axis2_hash_t *AXIS2_CALL
+woden_feature_super_objs(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    feature_impl = INTF_TO_IMPL(feature);
+
+    return feature_impl->super;
+}
+
+woden_obj_types_t AXIS2_CALL
+woden_feature_type(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    feature_impl = INTF_TO_IMPL(feature);
+
+    return feature_impl->obj_type;
+}
+
+woden_documentable_t *AXIS2_CALL
+woden_feature_get_base_impl(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    feature_impl = INTF_TO_IMPL(feature);
+
+    return feature_impl->documentable;
+}
+
+axis2_status_t AXIS2_CALL
+woden_feature_resolve_methods(
+        woden_feature_t *feature,
+        const axis2_env_t *env,
+        woden_feature_t *feature_impl,
+        axis2_hash_t *methods)
+{
+    woden_feature_impl_t *feature_impl_l = NULL;
+    
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error, methods, AXIS2_FAILURE);
+    feature_impl_l = INTF_TO_IMPL(feature_impl);
+    
+    feature->ops->free = axis2_hash_get(methods, "free", 
+            AXIS2_HASH_KEY_STRING);
+    feature->ops->super_objs = axis2_hash_get(methods, "super_objs", 
+            AXIS2_HASH_KEY_STRING);
+    feature->ops->type = axis2_hash_get(methods, "type", 
+            AXIS2_HASH_KEY_STRING);
+    
+    feature->ops->get_ref = axis2_hash_get(methods, 
+            "get_ref", AXIS2_HASH_KEY_STRING);
+    if(!feature->ops->get_ref && feature_impl_l)
+            feature->ops->get_ref = 
+            feature_impl_l->feature.ops->get_ref;
+    
+    feature->ops->is_required = axis2_hash_get(methods, 
+            "is_required", AXIS2_HASH_KEY_STRING);
+    if(!feature->ops->is_required && feature_impl_l)
+            feature->ops->is_required = 
+            feature_impl_l->feature.ops->is_required;
+    
+    feature->ops->get_parent = axis2_hash_get(methods, 
+            "get_parent", AXIS2_HASH_KEY_STRING);
+    if(!feature->ops->get_parent && feature_impl_l)
+            feature->ops->get_parent = 
+            feature_impl_l->feature.ops->get_parent;
+
+    feature->ops->to_element = axis2_hash_get(methods, 
+            "to_element", AXIS2_HASH_KEY_STRING);
+    if(!feature->ops->to_element && feature_impl_l)
+            feature->ops->to_element = 
+            feature_impl_l->feature.ops->to_element;
+   
+    return AXIS2_SUCCESS;
+}
+
+axis2_status_t AXIS2_CALL
+woden_feature_set_ref(
+        void *feature,
+        const axis2_env_t *env,
+        axis2_uri_t *ref)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+    axis2_hash_t *super = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    super = WODEN_FEATURE_SUPER_OBJS(feature, env);
+    feature_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_FEATURE", AXIS2_HASH_KEY_STRING));
+
+    if(feature_impl->f_ref)
+    {
+        AXIS2_URI_FREE(feature_impl->f_ref, env);
+        feature_impl->f_ref = NULL;
+    }
+    feature_impl->f_ref = AXIS2_URI_CLONE(ref, env);
+    return AXIS2_SUCCESS;
+}
+
+axis2_uri_t *AXIS2_CALL
+woden_feature_get_ref(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+    axis2_hash_t *super = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    super = WODEN_FEATURE_SUPER_OBJS(feature, env);
+    feature_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_FEATURE", AXIS2_HASH_KEY_STRING));
+    
+    return feature_impl->f_ref;
+}
+
+axis2_status_t AXIS2_CALL
+woden_feature_set_required(
+        void *feature,
+        const axis2_env_t *env,
+        axis2_bool_t required)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+    axis2_hash_t *super = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    super = WODEN_FEATURE_SUPER_OBJS(feature, env);
+    feature_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_FEATURE", AXIS2_HASH_KEY_STRING));
+
+    feature_impl->f_required = required;
+    return AXIS2_SUCCESS;
+}
+
+axis2_bool_t AXIS2_CALL
+woden_feature_is_required(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+    axis2_hash_t *super = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    super = WODEN_FEATURE_SUPER_OBJS(feature, env);
+    feature_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_FEATURE", AXIS2_HASH_KEY_STRING));
+
+    return feature_impl->f_required;
+}
+
+axis2_status_t AXIS2_CALL
+woden_feature_set_parent_element(
+        void *feature,
+        const axis2_env_t *env,
+        woden_wsdl_element_t *parent)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+    axis2_hash_t *super = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    super = WODEN_FEATURE_SUPER_OBJS(feature, env);
+    feature_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_FEATURE", AXIS2_HASH_KEY_STRING));
+
+    if(feature_impl->f_parent)
+    {
+        /* TODO free this */
+    }
+    feature_impl->f_parent = parent;
+    return AXIS2_SUCCESS;
+}
+
+void *AXIS2_CALL
+woden_feature_get_parent_element(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+    axis2_hash_t *super = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    super = WODEN_FEATURE_SUPER_OBJS(feature, env);
+    feature_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_FEATURE", AXIS2_HASH_KEY_STRING));
+
+    return feature_impl->f_parent;
+}
+
+void *AXIS2_CALL
+woden_feature_get_parent(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+    axis2_hash_t *super = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    super = WODEN_FEATURE_SUPER_OBJS(feature, env);
+    feature_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_FEATURE", AXIS2_HASH_KEY_STRING));
+
+    /* TODO complete this */
+    return NULL;
+}
+
+void *AXIS2_CALL
+woden_feature_to_element(
+        void *feature,
+        const axis2_env_t *env)
+{
+    woden_feature_impl_t *feature_impl = NULL;
+    axis2_hash_t *super = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    super = WODEN_FEATURE_SUPER_OBJS(feature, env);
+    feature_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_FEATURE", AXIS2_HASH_KEY_STRING));
+    
+    return &(feature_impl->feature);
+}
+

Added: webservices/axis2/trunk/c/woden/src/wsdl/feature_element.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl/feature_element.c?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl/feature_element.c (added)
+++ webservices/axis2/trunk/c/woden/src/wsdl/feature_element.c Wed Jul  5 23:02:19 2006
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <woden_feature_element.h>
+
+axis2_status_t AXIS2_CALL
+woden_feature_element_resolve_methods(
+        woden_feature_element_t *feature_element,
+        const axis2_env_t *env,
+        axis2_hash_t *methods)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error, methods, AXIS2_FAILURE);
+    
+    feature_element->ops->free = axis2_hash_get(methods, "free", 
+            AXIS2_HASH_KEY_STRING);
+    feature_element->ops->type = axis2_hash_get(methods, "type", 
+            AXIS2_HASH_KEY_STRING);
+    feature_element->ops->set_ref = axis2_hash_get(methods,
+            "set_ref", AXIS2_HASH_KEY_STRING);
+    feature_element->ops->get_ref = axis2_hash_get(methods,
+            "get_ref", AXIS2_HASH_KEY_STRING);
+    feature_element->ops->set_required = axis2_hash_get(methods,
+            "set_required", AXIS2_HASH_KEY_STRING);
+    feature_element->ops->is_required = axis2_hash_get(methods,
+            "is_required", AXIS2_HASH_KEY_STRING);
+
+    return AXIS2_SUCCESS;    
+}
+

Added: webservices/axis2/trunk/c/woden/src/wsdl/import.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl/import.c?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl/import.c (added)
+++ webservices/axis2/trunk/c/woden/src/wsdl/import.c Wed Jul  5 23:02:19 2006
@@ -0,0 +1,469 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <woden_wsdl_obj.h>
+#include <woden_import.h>
+#include <woden_xml_attr.h>
+#include <woden_documentation_element.h>
+#include <woden_generic_obj.h>
+#include <woden_documentable.h>
+
+typedef struct woden_import_impl woden_import_impl_t;
+
+/** 
+ * @brief Feature Struct Impl
+ *   Axis2 Feature  
+ */ 
+struct woden_import_impl
+{
+    woden_import_t import;
+    woden_obj_types_t obj_type;
+    woden_wsdl_ref_t *wsdl_ref;
+    axis2_hash_t *super;
+    axis2_hash_t *methods;
+    
+    axis2_uri_t *f_namespc;
+};
+
+#define INTF_TO_IMPL(import) ((woden_import_impl_t *) import)
+
+axis2_status_t AXIS2_CALL 
+woden_import_free(
+        void *import,
+        const axis2_env_t *env);
+
+axis2_hash_t *AXIS2_CALL 
+woden_import_super_objs(
+        void *import,
+        const axis2_env_t *env);
+
+woden_obj_types_t AXIS2_CALL 
+woden_import_type(
+        void *import,
+        const axis2_env_t *env);
+
+woden_wsdl_ref_t *AXIS2_CALL
+woden_import_get_base_impl(
+        void *import,
+        const axis2_env_t *env);
+
+axis2_status_t AXIS2_CALL
+woden_import_set_namespace(
+        void *import,
+        const axis2_env_t *env,
+        axis2_uri_t *ns_uri);
+
+axis2_uri_t *AXIS2_CALL
+woden_import_get_namespace(
+        void *import,
+        const axis2_env_t *env);
+
+static woden_import_t *
+create(const axis2_env_t *env);
+
+static axis2_status_t
+woden_import_free_ops(
+        void *import,
+        const axis2_env_t *env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN woden_import_t * AXIS2_CALL
+woden_import_to_import_element(
+        void *import,
+        const axis2_env_t *env)
+{
+    woden_import_impl_t *import_impl = NULL;
+   
+    AXIS2_ENV_CHECK(env, NULL);
+    if(!import)
+    {
+        import_impl = (woden_import_impl_t *) create(env);
+    }
+    else
+        import_impl = (woden_import_impl_t *) import;
+
+    woden_import_free_ops(import, env);
+
+    import_impl->import.base.import_element.ops = 
+        AXIS2_MALLOC(env->allocator, 
+                sizeof(woden_import_element_ops_t));
+    woden_import_element_resolve_methods(&(import_impl->import.base.
+            import_element), env, import_impl->methods);
+    return import;
+}
+
+AXIS2_EXTERN woden_import_t * AXIS2_CALL
+woden_import_to_wsdl_ref(
+        void *import,
+        const axis2_env_t *env)
+{
+    woden_import_impl_t *import_impl = NULL;
+   
+    AXIS2_ENV_CHECK(env, NULL);
+    if(!import)
+    {
+        import_impl = (woden_import_impl_t *) create(env);
+    }
+    else
+        import_impl = (woden_import_impl_t *) import;
+    woden_import_free_ops(import, env);
+
+    import_impl->import.base.wsdl_ref.ops = 
+        AXIS2_MALLOC(env->allocator, 
+                sizeof(woden_wsdl_ref_ops_t));
+    woden_documentable_resolve_methods((woden_documentable_t *)&(import_impl->import.base.
+            wsdl_ref), env, (woden_documentable_t *)import_impl->wsdl_ref, import_impl->methods);
+    return import;
+}
+
+AXIS2_EXTERN woden_import_t * AXIS2_CALL
+woden_import_to_attr_extensible(
+        void *import,
+        const axis2_env_t *env)
+{
+    woden_import_impl_t *import_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+
+    if(!import)
+    {
+        import_impl = (woden_import_impl_t *) create(env);
+    }
+    else
+        import_impl = (woden_import_impl_t *) import;
+    woden_import_free_ops(import, env);
+
+    import_impl->import.base.wsdl_ref.wsdl_element.base.
+            attr_extensible.ops =
+            AXIS2_MALLOC(env->allocator, 
+            sizeof(woden_attr_extensible_ops_t));
+    woden_attr_extensible_resolve_methods(&(import_impl->import.base.
+            wsdl_ref.wsdl_element.base.attr_extensible), 
+            env, NULL, import_impl->methods);
+    return import;
+
+}
+
+AXIS2_EXTERN woden_import_t * AXIS2_CALL
+woden_import_to_element_extensible(
+        void *import,
+        const axis2_env_t *env)
+{
+    woden_import_impl_t *import_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+
+    if(!import)
+    {
+        import_impl = (woden_import_impl_t *) create(env);
+    }
+    else
+        import_impl = (woden_import_impl_t *) import;
+    woden_import_free_ops(import, env);
+    import_impl->import.base.wsdl_ref.wsdl_element.
+                base.element_extensible.ops = AXIS2_MALLOC(env->allocator, 
+                sizeof(woden_element_extensible_ops_t));
+    woden_element_extensible_resolve_methods(&(import_impl->import.base.
+            wsdl_ref.wsdl_element.base.element_extensible), 
+            env, NULL, import_impl->methods);
+    return import;
+
+}
+
+/************************End of Woden C Internal Methods***********************/
+static woden_import_t *
+create(const axis2_env_t *env)
+{
+    woden_import_impl_t *import_impl = NULL;
+   
+    AXIS2_ENV_CHECK(env, NULL);
+    import_impl = AXIS2_MALLOC(env->allocator, 
+                    sizeof(woden_import_impl_t));
+
+    import_impl->obj_type= WODEN_IMPORT;
+    import_impl->super = NULL;
+    import_impl->methods = NULL;
+    import_impl->f_namespc = NULL;
+    
+    import_impl->import.base.import_element.ops = NULL;
+    import_impl->import.base.wsdl_ref.ops = NULL;
+    import_impl->import.base.wsdl_ref.wsdl_element.base.attr_extensible.ops = NULL;
+    import_impl->import.base.wsdl_ref.wsdl_element.base.element_extensible.ops = NULL;
+    
+    import_impl->import.ops = AXIS2_MALLOC(env->allocator, 
+            sizeof(woden_import_ops_t));
+
+    import_impl->import.ops->free = woden_import_free;
+    import_impl->import.ops->super_objs = woden_import_super_objs;
+    import_impl->import.ops->type = woden_import_type;
+    import_impl->import.ops->get_base_impl = woden_import_get_base_impl;
+
+    import_impl->import.ops->get_namespace = woden_import_get_namespace;
+    import_impl->import.ops->set_namespace = woden_import_set_namespace;
+ 
+    import_impl->methods = axis2_hash_make(env);
+    if(!import_impl->methods) 
+    {
+        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    axis2_hash_set(import_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
+            woden_import_free);
+    axis2_hash_set(import_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING, 
+            woden_import_super_objs);
+    axis2_hash_set(import_impl->methods, "type", 
+            AXIS2_HASH_KEY_STRING, woden_import_type);
+
+    axis2_hash_set(import_impl->methods, "set_namespace", 
+            AXIS2_HASH_KEY_STRING, 
+            woden_import_set_namespace);
+    axis2_hash_set(import_impl->methods, "get_namespace", 
+            AXIS2_HASH_KEY_STRING, 
+            woden_import_get_namespace);
+
+    return &(import_impl->import);
+}
+
+AXIS2_EXTERN woden_import_t * AXIS2_CALL
+woden_import_create(const axis2_env_t *env)
+{
+    woden_import_impl_t *import_impl = NULL;
+   
+    AXIS2_ENV_CHECK(env, NULL);
+    import_impl = (woden_import_impl_t *) create(env);
+
+    import_impl->wsdl_ref = woden_wsdl_ref_create(env);
+
+    import_impl->super = axis2_hash_make(env);
+    if(!import_impl->super) 
+    {
+        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    axis2_hash_set(import_impl->super, "WODEN_IMPORT", 
+            AXIS2_HASH_KEY_STRING, &(import_impl->import));
+    axis2_hash_set(import_impl->super, "WODEN_WSDL_REF", 
+            AXIS2_HASH_KEY_STRING, import_impl->wsdl_ref);
+    
+    return &(import_impl->import);
+}
+
+static axis2_status_t
+woden_import_free_ops(
+        void *import,
+        const axis2_env_t *env)
+{
+    woden_import_impl_t *import_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    import_impl = INTF_TO_IMPL(import);
+
+    if(import_impl->import.base.import_element.ops)
+    {
+        AXIS2_FREE(env->allocator, import_impl->import.base.
+                import_element.ops);
+        import_impl->import.base.import_element.ops = NULL;
+    }
+
+    if(import_impl->import.base.wsdl_ref.ops)
+    {
+        AXIS2_FREE(env->allocator, import_impl->import.base.wsdl_ref.ops);
+        import_impl->import.base.wsdl_ref.ops = NULL;
+    }
+
+    if(import_impl->import.base.wsdl_ref.wsdl_element.base.attr_extensible.ops)
+    {
+        AXIS2_FREE(env->allocator, import_impl->import.base.wsdl_ref.
+                wsdl_element.base.attr_extensible.ops);
+        import_impl->import.base.wsdl_ref.wsdl_element.
+                base.attr_extensible.ops = NULL;
+    }
+
+    if(import_impl->import.base.wsdl_ref.
+            wsdl_element.base.element_extensible.ops)
+    {
+        AXIS2_FREE(env->allocator, import_impl->import.base.wsdl_ref.
+                wsdl_element.base.element_extensible.ops);
+        import_impl->import.base.wsdl_ref.wsdl_element.
+                base.element_extensible.ops = NULL;
+    }
+    return AXIS2_SUCCESS;
+}
+
+
+axis2_status_t AXIS2_CALL
+woden_import_free(void *import,
+                        const axis2_env_t *env)
+{
+    woden_import_impl_t *import_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    import_impl = INTF_TO_IMPL(import);
+
+    if(import_impl->f_namespc)
+    {
+        AXIS2_URI_FREE(import_impl->f_namespc, env);
+        import_impl->f_namespc = NULL;
+    }
+   
+    if(import_impl->super)
+    {
+        axis2_hash_free(import_impl->super, env);
+        import_impl->super = NULL;
+    }
+    
+    if(import_impl->methods)
+    {
+        axis2_hash_free(import_impl->methods, env);
+        import_impl->methods = NULL;
+    }
+
+    if(import_impl->wsdl_ref)
+    {
+        WODEN_WSDL_REF_FREE(import_impl->wsdl_ref, env);
+        import_impl->wsdl_ref = NULL;
+    }
+
+    woden_import_free_ops(import, env);
+
+    if((&(import_impl->import))->ops)
+    {
+        AXIS2_FREE(env->allocator, (&(import_impl->import))->ops);
+        (&(import_impl->import))->ops = NULL;
+    }
+    
+    if(import_impl)
+    {
+        AXIS2_FREE(env->allocator, import_impl);
+        import_impl = NULL;
+    }
+    return AXIS2_SUCCESS;
+}
+
+axis2_hash_t *AXIS2_CALL
+woden_import_super_objs(
+        void *import,
+        const axis2_env_t *env)
+{
+    woden_import_impl_t *import_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    import_impl = INTF_TO_IMPL(import);
+
+    return import_impl->super;
+}
+
+woden_obj_types_t AXIS2_CALL
+woden_import_type(
+        void *import,
+        const axis2_env_t *env)
+{
+    woden_import_impl_t *import_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    import_impl = INTF_TO_IMPL(import);
+
+    return import_impl->obj_type;
+}
+
+woden_wsdl_ref_t *AXIS2_CALL
+woden_import_get_base_impl(void *import,
+                                const axis2_env_t *env)
+{
+    woden_import_impl_t *import_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    import_impl = INTF_TO_IMPL(import);
+
+    return import_impl->wsdl_ref;
+}
+
+axis2_status_t AXIS2_CALL
+woden_import_resolve_methods(
+        woden_import_t *import,
+        const axis2_env_t *env,
+        woden_import_t *import_impl,
+        axis2_hash_t *methods)
+{
+    woden_import_impl_t *import_impl_l = NULL;
+    
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error, methods, AXIS2_FAILURE);
+    import_impl_l = INTF_TO_IMPL(import_impl);
+    
+    import->ops->free = axis2_hash_get(methods, "free", 
+            AXIS2_HASH_KEY_STRING);
+    import->ops->super_objs = axis2_hash_get(methods, "super_objs", 
+            AXIS2_HASH_KEY_STRING);
+    import->ops->type = axis2_hash_get(methods, "type", 
+            AXIS2_HASH_KEY_STRING);
+
+    import->ops->get_namespace = axis2_hash_get(methods, 
+            "get_namespace", AXIS2_HASH_KEY_STRING);
+    if(!import->ops->get_namespace && import_impl_l)
+            import->ops->get_namespace = 
+            import_impl_l->import.ops->get_namespace;
+
+    import->ops->set_namespace = axis2_hash_get(methods, 
+            "set_namespace", AXIS2_HASH_KEY_STRING);
+    if(!import->ops->set_namespace && import_impl_l)
+            import->ops->set_namespace = 
+            import_impl_l->import.ops->set_namespace;
+    
+    return AXIS2_SUCCESS;
+}
+
+axis2_status_t AXIS2_CALL
+woden_import_set_namespace(
+        void *import,
+        const axis2_env_t *env,
+        axis2_uri_t *ns_uri)
+{
+    woden_import_impl_t *import_impl = NULL;
+    axis2_hash_t *super = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error, ns_uri, AXIS2_FAILURE);
+    super = WODEN_IMPORT_SUPER_OBJS(import, env);
+    import_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_IMPORT", AXIS2_HASH_KEY_STRING));
+
+    if(import_impl->f_namespc)
+    {
+        AXIS2_URI_FREE(import_impl->f_namespc, env);
+        import_impl->f_namespc = NULL;
+    }
+    import_impl->f_namespc = AXIS2_URI_CLONE(ns_uri, env);
+
+    return AXIS2_SUCCESS;
+}
+
+axis2_uri_t *AXIS2_CALL
+woden_import_get_namespace(
+        void *import,
+        const axis2_env_t *env)
+{
+    woden_import_impl_t *import_impl = NULL;
+    axis2_hash_t *super = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    super = WODEN_IMPORT_SUPER_OBJS(import, env);
+    import_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_IMPORT", AXIS2_HASH_KEY_STRING));
+
+    return import_impl->f_namespc;
+}
+

Added: webservices/axis2/trunk/c/woden/src/wsdl/import_element.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl/import_element.c?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl/import_element.c (added)
+++ webservices/axis2/trunk/c/woden/src/wsdl/import_element.c Wed Jul  5 23:02:19 2006
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <woden_import_element.h>
+
+axis2_status_t AXIS2_CALL
+woden_import_element_resolve_methods(
+        woden_import_element_t *import_element,
+        const axis2_env_t *env,
+        axis2_hash_t *methods)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error, methods, AXIS2_FAILURE);
+    
+    import_element->ops->free = axis2_hash_get(methods, "free", 
+            AXIS2_HASH_KEY_STRING);
+    import_element->ops->type = axis2_hash_get(methods, "type", 
+            AXIS2_HASH_KEY_STRING);
+
+    import_element->ops->set_namespace = axis2_hash_get(methods,
+            "set_namespace", AXIS2_HASH_KEY_STRING);
+    import_element->ops->get_namespace = axis2_hash_get(methods,
+            "get_namespace", AXIS2_HASH_KEY_STRING);
+    import_element->ops->set_location = axis2_hash_get(methods,
+            "set_location", AXIS2_HASH_KEY_STRING);
+    import_element->ops->get_location = axis2_hash_get(methods,
+            "get_location", AXIS2_HASH_KEY_STRING);
+    import_element->ops->set_desc_element = axis2_hash_get(methods,
+            "set_desc_element", AXIS2_HASH_KEY_STRING);
+    import_element->ops->get_desc_element = axis2_hash_get(methods,
+            "get_desc_element", AXIS2_HASH_KEY_STRING);
+
+    return AXIS2_SUCCESS;    
+}
+

Added: webservices/axis2/trunk/c/woden/src/wsdl/include.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl/include.c?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl/include.c (added)
+++ webservices/axis2/trunk/c/woden/src/wsdl/include.c Wed Jul  5 23:02:19 2006
@@ -0,0 +1,387 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <woden_wsdl_obj.h>
+#include <woden_include.h>
+#include <woden_xml_attr.h>
+#include <woden_documentation_element.h>
+#include <woden_generic_obj.h>
+#include <woden_documentable.h>
+
+typedef struct woden_include_impl woden_include_impl_t;
+
+/** 
+ * @brief Feature Struct Impl
+ *   Axis2 Feature  
+ */ 
+struct woden_include_impl
+{
+    woden_include_t include;
+    woden_obj_types_t obj_type;
+    woden_wsdl_ref_t *wsdl_ref;
+    axis2_hash_t *super;
+    axis2_hash_t *methods;
+};
+
+#define INTF_TO_IMPL(include) ((woden_include_impl_t *) include)
+
+axis2_status_t AXIS2_CALL 
+woden_include_free(
+        void *include,
+        const axis2_env_t *env);
+
+axis2_hash_t *AXIS2_CALL 
+woden_include_super_objs(
+        void *include,
+        const axis2_env_t *env);
+
+woden_obj_types_t AXIS2_CALL 
+woden_include_type(
+        void *include,
+        const axis2_env_t *env);
+
+woden_wsdl_ref_t *AXIS2_CALL
+woden_include_get_base_impl(
+        void *include,
+        const axis2_env_t *env);
+
+static woden_include_t *
+create(const axis2_env_t *env);
+
+static axis2_status_t
+woden_include_free_ops(
+        void *include,
+        const axis2_env_t *env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN woden_include_t * AXIS2_CALL
+woden_include_to_include_element(
+        void *include,
+        const axis2_env_t *env)
+{
+    woden_include_impl_t *include_impl = NULL;
+   
+    AXIS2_ENV_CHECK(env, NULL);
+    if(!include)
+    {
+        include_impl = (woden_include_impl_t *) create(env);
+    }
+    else
+        include_impl = (woden_include_impl_t *) include;
+
+    woden_include_free_ops(include, env);
+
+    include_impl->include.base.include_element.ops = 
+        AXIS2_MALLOC(env->allocator, 
+                sizeof(woden_include_element_ops_t));
+    woden_include_element_resolve_methods(&(include_impl->include.base.
+            include_element), env, include_impl->methods);
+    return include;
+}
+
+AXIS2_EXTERN woden_include_t * AXIS2_CALL
+woden_include_to_wsdl_ref(
+        void *include,
+        const axis2_env_t *env)
+{
+    woden_include_impl_t *include_impl = NULL;
+   
+    AXIS2_ENV_CHECK(env, NULL);
+    if(!include)
+    {
+        include_impl = (woden_include_impl_t *) create(env);
+    }
+    else
+        include_impl = (woden_include_impl_t *) include;
+    woden_include_free_ops(include, env);
+
+    include_impl->include.base.wsdl_ref.ops = 
+        AXIS2_MALLOC(env->allocator, 
+                sizeof(woden_wsdl_ref_ops_t));
+    woden_documentable_resolve_methods((woden_documentable_t *)&(include_impl->include.base.
+            wsdl_ref), env, (woden_documentable_t *)include_impl->wsdl_ref, 
+            include_impl->methods);
+    return include;
+}
+
+AXIS2_EXTERN woden_include_t * AXIS2_CALL
+woden_include_to_attr_extensible(
+        void *include,
+        const axis2_env_t *env)
+{
+    woden_include_impl_t *include_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+
+    if(!include)
+    {
+        include_impl = (woden_include_impl_t *) create(env);
+    }
+    else
+        include_impl = (woden_include_impl_t *) include;
+    woden_include_free_ops(include, env);
+
+    include_impl->include.base.wsdl_ref.wsdl_element.base.
+            attr_extensible.ops =
+            AXIS2_MALLOC(env->allocator, 
+            sizeof(woden_attr_extensible_ops_t));
+    woden_attr_extensible_resolve_methods(&(include_impl->include.base.
+            wsdl_ref.wsdl_element.base.attr_extensible), 
+            env, NULL, include_impl->methods);
+    return include;
+
+}
+
+AXIS2_EXTERN woden_include_t * AXIS2_CALL
+woden_include_to_element_extensible(
+        void *include,
+        const axis2_env_t *env)
+{
+    woden_include_impl_t *include_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+
+    if(!include)
+    {
+        include_impl = (woden_include_impl_t *) create(env);
+    }
+    else
+        include_impl = (woden_include_impl_t *) include;
+    woden_include_free_ops(include, env);
+    include_impl->include.base.wsdl_ref.wsdl_element.
+                base.element_extensible.ops = AXIS2_MALLOC(env->allocator, 
+                sizeof(woden_element_extensible_ops_t));
+    woden_element_extensible_resolve_methods(&(include_impl->include.base.
+            wsdl_ref.wsdl_element.base.element_extensible), 
+            env, NULL, include_impl->methods);
+    return include;
+
+}
+
+/************************End of Woden C Internal Methods***********************/
+static woden_include_t *
+create(const axis2_env_t *env)
+{
+    woden_include_impl_t *include_impl = NULL;
+   
+    AXIS2_ENV_CHECK(env, NULL);
+    include_impl = AXIS2_MALLOC(env->allocator, 
+                    sizeof(woden_include_impl_t));
+
+    include_impl->obj_type= WODEN_INCLUDE;
+    include_impl->super = NULL;
+    include_impl->methods = NULL;
+    
+    include_impl->include.base.include_element.ops = NULL;
+    include_impl->include.base.wsdl_ref.ops = NULL;
+    include_impl->include.base.wsdl_ref.wsdl_element.base.attr_extensible.ops = NULL;
+    include_impl->include.base.wsdl_ref.wsdl_element.base.element_extensible.ops = NULL;
+    
+    include_impl->include.ops = AXIS2_MALLOC(env->allocator, 
+            sizeof(woden_include_ops_t));
+
+    include_impl->include.ops->free = woden_include_free;
+    include_impl->include.ops->super_objs = woden_include_super_objs;
+    include_impl->include.ops->type = woden_include_type;
+    include_impl->include.ops->get_base_impl = woden_include_get_base_impl;
+
+    include_impl->methods = axis2_hash_make(env);
+    if(!include_impl->methods) 
+    {
+        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    axis2_hash_set(include_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
+            woden_include_free);
+    axis2_hash_set(include_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING, 
+            woden_include_super_objs);
+    axis2_hash_set(include_impl->methods, "type", 
+            AXIS2_HASH_KEY_STRING, woden_include_type);
+
+    return &(include_impl->include);
+}
+
+AXIS2_EXTERN woden_include_t * AXIS2_CALL
+woden_include_create(const axis2_env_t *env)
+{
+    woden_include_impl_t *include_impl = NULL;
+   
+    AXIS2_ENV_CHECK(env, NULL);
+    include_impl = (woden_include_impl_t *) create(env);
+
+    include_impl->wsdl_ref = woden_wsdl_ref_create(env);
+
+    include_impl->super = axis2_hash_make(env);
+    if(!include_impl->super) 
+    {
+        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    axis2_hash_set(include_impl->super, "WODEN_INCLUDE", 
+            AXIS2_HASH_KEY_STRING, &(include_impl->include));
+    axis2_hash_set(include_impl->super, "WODEN_WSDL_REF", 
+            AXIS2_HASH_KEY_STRING, include_impl->wsdl_ref);
+    
+    return &(include_impl->include);
+}
+
+static axis2_status_t
+woden_include_free_ops(
+        void *include,
+        const axis2_env_t *env)
+{
+    woden_include_impl_t *include_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    include_impl = INTF_TO_IMPL(include);
+
+    if(include_impl->include.base.include_element.ops)
+    {
+        AXIS2_FREE(env->allocator, include_impl->include.base.
+                include_element.ops);
+        include_impl->include.base.include_element.ops = NULL;
+    }
+
+    if(include_impl->include.base.wsdl_ref.ops)
+    {
+        AXIS2_FREE(env->allocator, include_impl->include.base.wsdl_ref.ops);
+        include_impl->include.base.wsdl_ref.ops = NULL;
+    }
+
+    if(include_impl->include.base.wsdl_ref.wsdl_element.base.attr_extensible.ops)
+    {
+        AXIS2_FREE(env->allocator, include_impl->include.base.wsdl_ref.
+                wsdl_element.base.attr_extensible.ops);
+        include_impl->include.base.wsdl_ref.wsdl_element.
+                base.attr_extensible.ops = NULL;
+    }
+
+    if(include_impl->include.base.wsdl_ref.
+            wsdl_element.base.element_extensible.ops)
+    {
+        AXIS2_FREE(env->allocator, include_impl->include.base.wsdl_ref.
+                wsdl_element.base.element_extensible.ops);
+        include_impl->include.base.wsdl_ref.wsdl_element.
+                base.element_extensible.ops = NULL;
+    }
+    return AXIS2_SUCCESS;
+}
+
+
+axis2_status_t AXIS2_CALL
+woden_include_free(void *include,
+                        const axis2_env_t *env)
+{
+    woden_include_impl_t *include_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    include_impl = INTF_TO_IMPL(include);
+
+    if(include_impl->super)
+    {
+        axis2_hash_free(include_impl->super, env);
+        include_impl->super = NULL;
+    }
+    
+    if(include_impl->methods)
+    {
+        axis2_hash_free(include_impl->methods, env);
+        include_impl->methods = NULL;
+    }
+
+    if(include_impl->wsdl_ref)
+    {
+        WODEN_WSDL_REF_FREE(include_impl->wsdl_ref, env);
+        include_impl->wsdl_ref = NULL;
+    }
+
+    woden_include_free_ops(include, env);
+
+    if((&(include_impl->include))->ops)
+    {
+        AXIS2_FREE(env->allocator, (&(include_impl->include))->ops);
+        (&(include_impl->include))->ops = NULL;
+    }
+    
+    if(include_impl)
+    {
+        AXIS2_FREE(env->allocator, include_impl);
+        include_impl = NULL;
+    }
+    return AXIS2_SUCCESS;
+}
+
+axis2_hash_t *AXIS2_CALL
+woden_include_super_objs(
+        void *include,
+        const axis2_env_t *env)
+{
+    woden_include_impl_t *include_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    include_impl = INTF_TO_IMPL(include);
+
+    return include_impl->super;
+}
+
+woden_obj_types_t AXIS2_CALL
+woden_include_type(
+        void *include,
+        const axis2_env_t *env)
+{
+    woden_include_impl_t *include_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    include_impl = INTF_TO_IMPL(include);
+
+    return include_impl->obj_type;
+}
+
+woden_wsdl_ref_t *AXIS2_CALL
+woden_include_get_base_impl(void *include,
+                                const axis2_env_t *env)
+{
+    woden_include_impl_t *include_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    include_impl = INTF_TO_IMPL(include);
+
+    return include_impl->wsdl_ref;
+}
+
+axis2_status_t AXIS2_CALL
+woden_include_resolve_methods(
+        woden_include_t *include,
+        const axis2_env_t *env,
+        woden_include_t *include_impl,
+        axis2_hash_t *methods)
+{
+    woden_include_impl_t *include_impl_l = NULL;
+    
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error, methods, AXIS2_FAILURE);
+    include_impl_l = INTF_TO_IMPL(include_impl);
+    
+    include->ops->free = axis2_hash_get(methods, "free", 
+            AXIS2_HASH_KEY_STRING);
+    include->ops->super_objs = axis2_hash_get(methods, "super_objs", 
+            AXIS2_HASH_KEY_STRING);
+    include->ops->type = axis2_hash_get(methods, "type", 
+            AXIS2_HASH_KEY_STRING);
+
+    return AXIS2_SUCCESS;
+}
+

Added: webservices/axis2/trunk/c/woden/src/wsdl/include_element.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl/include_element.c?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl/include_element.c (added)
+++ webservices/axis2/trunk/c/woden/src/wsdl/include_element.c Wed Jul  5 23:02:19 2006
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <woden_include_element.h>
+
+axis2_status_t AXIS2_CALL
+woden_include_element_resolve_methods(
+        woden_include_element_t *include_element,
+        const axis2_env_t *env,
+        axis2_hash_t *methods)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error, methods, AXIS2_FAILURE);
+    
+    include_element->ops->free = axis2_hash_get(methods, "free", 
+            AXIS2_HASH_KEY_STRING);
+    include_element->ops->type = axis2_hash_get(methods, "type", 
+            AXIS2_HASH_KEY_STRING);
+
+    include_element->ops->set_location = axis2_hash_get(methods,
+            "set_location", AXIS2_HASH_KEY_STRING);
+    include_element->ops->get_location = axis2_hash_get(methods,
+            "get_location", AXIS2_HASH_KEY_STRING);
+    include_element->ops->set_desc_element = axis2_hash_get(methods,
+            "set_desc_element", AXIS2_HASH_KEY_STRING);
+    include_element->ops->get_desc_element = axis2_hash_get(methods,
+            "get_desc_element", AXIS2_HASH_KEY_STRING);
+
+    return AXIS2_SUCCESS;    
+}
+



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