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 er...@apache.org on 2008/08/08 18:19:10 UTC
svn commit: r684013 -
/webservices/axis2/trunk/java/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java
Author: eranga
Date: Fri Aug 8 09:19:10 2008
New Revision: 684013
URL: http://svn.apache.org/viewvc?rev=684013&view=rev
Log:
Fix for https://issues.apache.org/jira/browse/AXIS2-3953
Modified:
webservices/axis2/trunk/java/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java
Modified: webservices/axis2/trunk/java/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java?rev=684013&r1=684012&r2=684013&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java (original)
+++ webservices/axis2/trunk/java/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java Fri Aug 8 09:19:10 2008
@@ -678,12 +678,45 @@
//case TCKind._tk_any: return new Any();
case TCKind._tk_value: return "";
//case TCKind._tk_objref: return new org.omg.CORBA.Object();
- case TCKind._tk_struct: return new StructValue((Struct) type);
+ case TCKind._tk_struct:
+ Struct struct = (Struct) type;
+ StructValue value = new StructValue(struct);
+ Member[] members = struct.getMembers();
+ Object[] memberValues = new Object[members.length];
+ for (int i = 0; i < members.length; i++) {
+ memberValues[i] = getEmptyValue(members[i].getDataType());
+ }
+ value.setMemberValues(memberValues);
+ return value;
case TCKind._tk_enum: return new EnumValue((EnumType) type);
- case TCKind._tk_union: return new UnionValue((UnionType) type);
- case TCKind._tk_alias: return new AliasValue((Typedef) type);
- case TCKind._tk_sequence: return new SequenceValue((SequenceType) type);
- case TCKind._tk_array: return new ArrayValue((ArrayType) type);
+ case TCKind._tk_union:
+ UnionType unionType = (UnionType) type;
+ UnionValue unionValue = new UnionValue(unionType);
+ members = unionType.getMembers();
+ unionValue.setMemberName(members[0].getName());
+ unionValue.setMemberType(members[0].getDataType());
+ unionValue.setMemberValue(getEmptyValue(members[0].getDataType()));
+ return unionValue;
+ case TCKind._tk_alias:
+ Typedef typedef = (Typedef) type;
+ AliasValue aliasValue = new AliasValue(typedef);
+ aliasValue.setValue(getEmptyValue(typedef.getDataType()));
+ return aliasValue;
+ case TCKind._tk_sequence:
+ SequenceType sequenceType = (SequenceType) type;
+ SequenceValue sequenceValue = new SequenceValue(sequenceType);
+ sequenceValue.setValues(new Object[0]);
+ return sequenceValue;
+ case TCKind._tk_array:
+ ArrayType arrayType = (ArrayType) type;
+ ArrayValue arrayValue = new ArrayValue(arrayType);
+ Object[] objects = new Object[arrayType.getElementCount()];
+ DataType arrayDataType = arrayType.getDataType();
+ for (int i = 0; i < objects.length; i++) {
+ objects[i] = getEmptyValue(arrayDataType);
+ }
+ arrayValue.setValues(objects);
+ return arrayValue;
default:
log.error("ERROR! Invalid dataType");
}