You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yoko-commits@incubator.apache.org by br...@apache.org on 2007/05/25 19:27:00 UTC
svn commit: r541753 - in /incubator/yoko/branches/perf/src:
main/java/org/apache/yoko/bindings/corba/interceptors/
main/java/org/apache/yoko/bindings/corba/runtime/
main/java/org/apache/yoko/bindings/corba/types/
test/java/org/apache/yoko/bindings/corb...
Author: bravi
Date: Fri May 25 12:26:58 2007
New Revision: 541753
URL: http://svn.apache.org/viewvc?view=rev&rev=541753
Log:
[YOKO-366] - Adding support for union types.
Added:
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionEventProducer.java (with props)
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionListener.java (with props)
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/SkipStartEndEventProducer.java (with props)
Modified:
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutEndingInterceptor.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaFaultStreamWriter.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStaxObject.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamReader.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamWriter.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/AbstractCorbaTypeListener.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaArrayListener.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumListener.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaExceptionListener.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedEventProducer.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedListener.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaHandlerUtils.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaPrimitiveListener.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceListener.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructListener.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaTypeEventProducer.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaTypeListener.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/ParameterEventProducer.java
incubator/yoko/branches/perf/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTest.java
incubator/yoko/branches/perf/src/test/java/org/apache/yoko/bindings/corba/types/CorbaHandlerUtilsTest.java
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutEndingInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutEndingInterceptor.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutEndingInterceptor.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutEndingInterceptor.java Fri May 25 12:26:58 2007
@@ -99,7 +99,6 @@
if (param.getMode().equals(ModeType.OUT)) {
if (!wrap) {
MessagePartInfo part = outMsgInfo.getMessagePart(paramName);
- //getOutputMessagePartInfo(opInfo, param.getName());
if (part != null && part.isElement()) {
paramName = part.getElementQName();
}
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaFaultStreamWriter.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaFaultStreamWriter.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaFaultStreamWriter.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaFaultStreamWriter.java Fri May 25 12:26:58 2007
@@ -52,7 +52,7 @@
protected void setCurrentTypeListener(QName name) throws XMLStreamException {
QName idlType = exType.getException();
- currentTypeListener = CorbaHandlerUtils.getTypeListener(name, idlType, typeMap, orb);
+ currentTypeListener = CorbaHandlerUtils.getTypeListener(name, idlType, typeMap, orb, serviceInfo);
listeners[0] = currentTypeListener;
}
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStaxObject.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStaxObject.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStaxObject.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStaxObject.java Fri May 25 12:26:58 2007
@@ -1190,8 +1190,7 @@
CorbaHandlerUtils.createTypeHandler(orb,
new QName("discriminator"),
unionType.getDiscriminator(),
- typeMap,
- serviceInfo);
+ typeMap);
obj.setDiscriminator(discObj);
// Determine the value of the discriminator.
@@ -1219,8 +1218,7 @@
branchObj = CorbaHandlerUtils.createTypeHandler(orb,
qname,
branch.getIdltype(),
- typeMap,
- serviceInfo);
+ typeMap);
}
obj.addCase(branchObj);
}
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamReader.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamReader.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamReader.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamReader.java Fri May 25 12:26:58 2007
@@ -36,6 +36,8 @@
private char[] currentText;
private CorbaTypeEventProducer eventProducer;
private int currentState;
+ private QName currentQName;
+ private List<Attribute> currentAttributes;
private String defaultNameSpace;
@@ -45,8 +47,8 @@
}
public QName getName() {
- final QName ret = eventProducer.getName();
- return ret;
+ currentQName = eventProducer.getName();
+ return currentQName;
}
public char[] getTextCharacters() {
@@ -59,7 +61,7 @@
}
public String getLocalName() {
- return getName().getLocalPart();
+ return currentQName.getLocalPart();
}
public String getNamespaceURI() {
@@ -83,8 +85,8 @@
currentState = 0;
return XMLStreamReader.START_DOCUMENT;
}
- hasNext();
// ensure we catch end_document state
+ hasNext();
if (currentState != XMLStreamReader.END_DOCUMENT) {
currentState = eventProducer.next();
}
@@ -112,70 +114,67 @@
}
public int getAttributeCount() {
- List<Attribute> attrs = eventProducer.getAttributes();
- if (attrs != null) {
- return attrs.size();
+ currentAttributes = eventProducer.getAttributes();
+ if (currentAttributes != null) {
+ return currentAttributes.size();
}
return 0;
}
public String getAttributeLocalName(int arg0) {
- List<Attribute> attrs = eventProducer.getAttributes();
- if (attrs == null) {
- return null;
+ String ret = null;
+ if (currentAttributes != null) {
+ Attribute a = currentAttributes.get(arg0);
+ if (a != null) {
+ ret = a.getName().getLocalPart();
+ }
}
-
- Attribute a = attrs.get(arg0);
- if (a != null) {
- return a.getName().getLocalPart();
- }
- return null;
+ return ret;
}
public QName getAttributeName(int arg0) {
- // TODO Auto-generated method stub
- return null;
+ QName ret = null;
+ if (currentAttributes != null) {
+ Attribute a = currentAttributes.get(arg0);
+ if (a != null) {
+ ret = a.getName();
+ }
+ }
+ return ret;
}
+
public String getAttributeNamespace(int arg0) {
- List<Attribute> attrs = eventProducer.getAttributes();
- if (attrs == null) {
- return null;
- }
-
- Attribute a = attrs.get(arg0);
- if (a != null) {
- return a.getName().getNamespaceURI();
+ String ret = null;
+ if (currentAttributes != null) {
+ Attribute a = currentAttributes.get(arg0);
+ if (a != null) {
+ ret = a.getName().getNamespaceURI();
+ }
}
- // TODO Auto-generated method stub
- return null;
+ return ret;
}
public String getAttributePrefix(int arg0) {
- // TODO Auto-generated method stub
return null;
}
public String getAttributeType(int arg0) {
- // TODO Auto-generated method stub
return null;
}
public String getAttributeValue(int arg0) {
- List<Attribute> attrs = eventProducer.getAttributes();
- if (attrs == null) {
- return null;
+ String ret = null;
+ if (currentAttributes != null) {
+ Attribute a = currentAttributes.get(arg0);
+ if (a != null) {
+ ret = a.getValue();
+ }
}
-
- Attribute a = attrs.get(arg0);
- if (a != null) {
- return a.getValue();
- }
- return null;
+ return ret;
}
public String getAttributeValue(String arg0, String arg1) {
- // TODO Auto-generated method stub
return null;
}
@@ -185,7 +184,6 @@
}
public String getElementText() throws XMLStreamException {
- // TODO Auto-generated method stub
return null;
}
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamWriter.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamWriter.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamWriter.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamWriter.java Fri May 25 12:26:58 2007
@@ -138,7 +138,7 @@
ArgType param = params.get(paramCounter);
QName idlType = param.getIdltype();
if (!skipWrap || (name.getLocalPart().equals(param.getName()))) {
- currentTypeListener = CorbaHandlerUtils.getTypeListener(name, idlType, typeMap, orb);
+ currentTypeListener = CorbaHandlerUtils.getTypeListener(name, idlType, typeMap, orb, serviceInfo);
listeners[paramCounter] = currentTypeListener;
paramCounter++;
} else {
@@ -191,6 +191,7 @@
java.lang.String localName,
java.lang.String value)
throws XMLStreamException {
+ currentTypeListener.processWriteAttribute(prefix, namespaceURI, localName, value);
}
public void writeAttribute(java.lang.String namespaceURI,
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/AbstractCorbaTypeListener.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/AbstractCorbaTypeListener.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/AbstractCorbaTypeListener.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/AbstractCorbaTypeListener.java Fri May 25 12:26:58 2007
@@ -24,10 +24,10 @@
public abstract class AbstractCorbaTypeListener implements CorbaTypeListener {
protected QName currentElement;
- protected final CorbaObjectHandler value;
+ protected final CorbaObjectHandler handler;
- public AbstractCorbaTypeListener(CorbaObjectHandler handler) {
- value = handler;
+ public AbstractCorbaTypeListener(CorbaObjectHandler h) {
+ handler = h;
}
@@ -42,7 +42,10 @@
public abstract void processCharacters(String text);
public CorbaObjectHandler getCorbaObject() {
- return value;
+ return handler;
}
+
+ public void processWriteAttribute(String prefix, String namespaceURI, String localName, String value) {
+ }
}
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaArrayListener.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaArrayListener.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaArrayListener.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaArrayListener.java Fri May 25 12:26:58 2007
@@ -20,6 +20,7 @@
import javax.xml.namespace.QName;
+import org.apache.cxf.service.model.ServiceInfo;
import org.apache.schemas.yoko.bindings.corba.Anonarray;
import org.apache.schemas.yoko.bindings.corba.Array;
@@ -35,14 +36,16 @@
private final CorbaTypeMap typeMap;
private QName currentElName;
private CorbaTypeListener currentTypeListener;
+ private ServiceInfo serviceInfo;
public CorbaArrayListener(CorbaObjectHandler handler,
CorbaTypeMap map,
- ORB orbRef) {
+ ORB orbRef, ServiceInfo sInfo) {
super(handler);
value = (CorbaArrayHandler) handler;
orb = orbRef;
typeMap = map;
+ serviceInfo = sInfo;
Object arrayType = handler.getType();
if (arrayType instanceof Anonarray) {
Anonarray anonType = (Anonarray) arrayType;
@@ -60,7 +63,8 @@
CorbaHandlerUtils.getTypeListener(name,
arrayElementType,
typeMap,
- orb);
+ orb,
+ serviceInfo);
value.addElement(currentTypeListener.getCorbaObject());
} else {
currentTypeListener.processStartElement(name);
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumListener.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumListener.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumListener.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumListener.java Fri May 25 12:26:58 2007
@@ -25,6 +25,6 @@
}
public void processCharacters(String text) {
- ((CorbaEnumHandler) value).setValue(text);
+ ((CorbaEnumHandler) handler).setValue(text);
}
}
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaExceptionListener.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaExceptionListener.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaExceptionListener.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaExceptionListener.java Fri May 25 12:26:58 2007
@@ -19,33 +19,34 @@
package org.apache.yoko.bindings.corba.types;
import java.util.List;
+
import javax.xml.namespace.QName;
+import org.apache.cxf.service.model.ServiceInfo;
import org.apache.schemas.yoko.bindings.corba.Exception;
import org.apache.schemas.yoko.bindings.corba.MemberType;
-
import org.apache.yoko.bindings.corba.CorbaTypeMap;
-
import org.omg.CORBA.ORB;
public class CorbaExceptionListener extends AbstractCorbaTypeListener {
- private final CorbaExceptionHandler value;
private final CorbaTypeMap typeMap;
private final ORB orb;
private final List<MemberType> exMembers;
private int memberCount;
private CorbaTypeListener currentTypeListener;
private QName memberElement;
+ private ServiceInfo sInfo;
public CorbaExceptionListener(CorbaObjectHandler handler,
CorbaTypeMap map,
- ORB orbRef) {
+ ORB orbRef,
+ ServiceInfo serviceInfo) {
super(handler);
- value = (CorbaExceptionHandler) handler;
orb = orbRef;
typeMap = map;
+ sInfo = serviceInfo;
exMembers = ((Exception) handler.getType()).getMember();
}
@@ -57,8 +58,9 @@
CorbaHandlerUtils.getTypeListener(name,
exMembers.get(memberCount).getIdltype(),
typeMap,
- orb);
- value.addMember(currentTypeListener.getCorbaObject());
+ orb,
+ sInfo);
+ ((CorbaExceptionHandler)handler).addMember(currentTypeListener.getCorbaObject());
memberCount++;
} else {
currentTypeListener.processStartElement(name);
@@ -77,4 +79,10 @@
public void processCharacters(String text) {
currentTypeListener.processCharacters(text);
}
+
+
+ public void processWriteAttribute(String prefix, String namespaceURI, String localName, String value) {
+ throw new RuntimeException("Not Implemented");
+ }
+
}
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedEventProducer.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedEventProducer.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedEventProducer.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedEventProducer.java Fri May 25 12:26:58 2007
@@ -57,7 +57,7 @@
public boolean hasNext() {
return state < states.length;
}
-
+
public List<Attribute> getAttributes() {
return null;
}
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedListener.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedListener.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedListener.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedListener.java Fri May 25 12:26:58 2007
@@ -25,6 +25,6 @@
}
public void processCharacters(String text) {
- ((CorbaFixedHandler) value).setValueFromData(text);
+ ((CorbaFixedHandler) handler).setValueFromData(text);
}
}
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaHandlerUtils.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaHandlerUtils.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaHandlerUtils.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaHandlerUtils.java Fri May 25 12:26:58 2007
@@ -60,8 +60,7 @@
public static CorbaObjectHandler createTypeHandler(ORB orb,
QName name,
QName idlType,
- CorbaTypeMap typeMap,
- ServiceInfo serviceInfo) {
+ CorbaTypeMap typeMap) {
CorbaObjectHandler handler = null;
TypeCode tc = CorbaUtils.getTypeCode(orb, idlType, typeMap);
try {
@@ -155,7 +154,7 @@
XmlSchemaObject schemaType,
CorbaTypeMap typeMap,
ServiceInfo serviceInfo) {
- CorbaObjectHandler obj = createTypeHandler(orb, name, idlType, typeMap, serviceInfo);
+ CorbaObjectHandler obj = createTypeHandler(orb, name, idlType, typeMap);
if (obj.getType() != null) {
String nsUri = getNamespaceURI(serviceInfo, obj.getType().getType());
name = new QName(nsUri, obj.getName().getLocalPart());
@@ -420,7 +419,7 @@
public static CorbaTypeListener getTypeListener(QName name,
QName idlType,
CorbaTypeMap typeMap,
- ORB orb)
+ ORB orb, ServiceInfo serviceInfo)
throws CorbaBindingException {
CorbaObjectHandler handler = null;
TypeCode tc = CorbaUtils.getTypeCode(orb, idlType, typeMap);
@@ -447,7 +446,7 @@
break;
case TCKind._tk_array:
handler = new CorbaArrayHandler(name, idlType, tc, type);
- result = new CorbaArrayListener(handler, typeMap, orb);
+ result = new CorbaArrayListener(handler, typeMap, orb, serviceInfo);
break;
case TCKind._tk_enum:
handler = new CorbaEnumHandler(name, idlType, tc, type);
@@ -455,7 +454,7 @@
break;
case TCKind._tk_except:
handler = new CorbaExceptionHandler(name, idlType, tc, type);
- result = new CorbaExceptionListener(handler, typeMap, orb);
+ result = new CorbaExceptionListener(handler, typeMap, orb, serviceInfo);
break;
case TCKind._tk_fixed:
handler = new CorbaFixedHandler(name, idlType, tc, type);
@@ -463,7 +462,7 @@
break;
case TCKind._tk_sequence:
handler = new CorbaSequenceHandler(name, idlType, tc, type);
- result = new CorbaSequenceListener(handler, typeMap, orb);
+ result = new CorbaSequenceListener(handler, typeMap, orb, serviceInfo);
break;
case TCKind._tk_string:
case TCKind._tk_wstring:
@@ -471,9 +470,11 @@
break;
case TCKind._tk_struct:
handler = new CorbaStructHandler(name, idlType, tc, type);
- result = new CorbaStructListener(handler, typeMap, orb);
+ result = new CorbaStructListener(handler, typeMap, orb, serviceInfo);
break;
- case TCKind._tk_union:
+ case TCKind._tk_union:
+ handler = new CorbaUnionHandler(name, idlType, tc, type);
+ result = new CorbaUnionListener(handler, typeMap, orb, serviceInfo);
break;
case TCKind._tk_objref:
handler =
@@ -531,6 +532,7 @@
}
break;
case TCKind._tk_union:
+ result = new CorbaUnionEventProducer(handler, serviceInfo, orb);
break;
case TCKind._tk_objref:
result = new CorbaObjectReferenceEventProducer(handler, serviceInfo, orb);
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaPrimitiveListener.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaPrimitiveListener.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaPrimitiveListener.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaPrimitiveListener.java Fri May 25 12:26:58 2007
@@ -25,6 +25,6 @@
}
public void processCharacters(String text) {
- ((CorbaPrimitiveHandler) value).setValueFromData(text);
+ ((CorbaPrimitiveHandler) handler).setValueFromData(text);
}
}
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceListener.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceListener.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceListener.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceListener.java Fri May 25 12:26:58 2007
@@ -20,6 +20,7 @@
import javax.xml.namespace.QName;
+import org.apache.cxf.service.model.ServiceInfo;
import org.apache.schemas.yoko.bindings.corba.Anonsequence;
import org.apache.schemas.yoko.bindings.corba.Sequence;
@@ -40,7 +41,8 @@
private final boolean isOctets;
private QName currentElName;
private CorbaTypeListener currentTypeListener;
- private boolean addElement;
+ private ServiceInfo serviceInfo;
+
//REVISIT, Need to create a template element if no elements are read in.
// The test with a inout parameter in the client side with no elements
@@ -48,11 +50,13 @@
// It is not created here because it requires the use of xml schema
public CorbaSequenceListener(CorbaObjectHandler handler,
CorbaTypeMap map,
- ORB orbRef) {
+ ORB orbRef,
+ ServiceInfo sInfo) {
super(handler);
value = (CorbaSequenceHandler) handler;
orb = orbRef;
typeMap = map;
+ serviceInfo = sInfo;
CorbaTypeImpl seqType = handler.getType();
if (seqType instanceof Anonsequence) {
Anonsequence anonSeqType = (Anonsequence) seqType;
@@ -72,8 +76,8 @@
CorbaHandlerUtils.getTypeListener(name,
seqElementType,
typeMap,
- orb);
- addElement = true;
+ orb,
+ serviceInfo);
value.addElement(currentTypeListener.getCorbaObject());
} else {
currentTypeListener.processStartElement(name);
@@ -109,7 +113,8 @@
CorbaHandlerUtils.getTypeListener(value.getName(),
seqElementType,
typeMap,
- orb);
+ orb,
+ serviceInfo);
value.addElement(primitiveListener.getCorbaObject());
primitiveListener.processCharacters(text);
}
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructListener.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructListener.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructListener.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructListener.java Fri May 25 12:26:58 2007
@@ -21,6 +21,7 @@
import java.util.List;
import javax.xml.namespace.QName;
+import org.apache.cxf.service.model.ServiceInfo;
import org.apache.schemas.yoko.bindings.corba.MemberType;
import org.apache.schemas.yoko.bindings.corba.Struct;
@@ -31,22 +32,22 @@
public class CorbaStructListener extends AbstractCorbaTypeListener {
- private final CorbaStructHandler value;
private final List<MemberType> structMembers;
private final CorbaTypeMap typeMap;
private final ORB orb;
private int memberCount;
private CorbaTypeListener currentTypeListener;
private QName memberElement;
+ private ServiceInfo serviceInfo;
public CorbaStructListener(CorbaObjectHandler handler,
CorbaTypeMap map,
- ORB orbRef) {
+ ORB orbRef, ServiceInfo sInfo) {
super(handler);
orb = orbRef;
typeMap = map;
structMembers = ((Struct) handler.getType()).getMember();
- value = (CorbaStructHandler) handler;
+ serviceInfo = sInfo;
}
public void processStartElement(QName name) {
@@ -63,8 +64,9 @@
CorbaHandlerUtils.getTypeListener(elName,
member.getIdltype(),
typeMap,
- orb);
- value.addMember(currentTypeListener.getCorbaObject());
+ orb,
+ serviceInfo);
+ ((CorbaStructHandler)handler).addMember(currentTypeListener.getCorbaObject());
memberCount++;
if (anonType) {
currentTypeListener.getCorbaObject().setAnonymousType(true);
@@ -86,6 +88,10 @@
public void processCharacters(String text) {
currentTypeListener.processCharacters(text);
+ }
+
+ public void processWriteAttribute(String prefix, String namespaceURI, String localName, String value) {
+ currentTypeListener.processWriteAttribute(prefix, namespaceURI, localName, value);
}
}
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaTypeEventProducer.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaTypeEventProducer.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaTypeEventProducer.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaTypeEventProducer.java Fri May 25 12:26:58 2007
@@ -58,4 +58,5 @@
* return any namespace for the current type
*/
List<Namespace> getNamespaces();
+
}
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaTypeListener.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaTypeListener.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaTypeListener.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaTypeListener.java Fri May 25 12:26:58 2007
@@ -27,4 +27,5 @@
void processEndElement(QName name);
void processCharacters(String text);
CorbaObjectHandler getCorbaObject();
+ void processWriteAttribute(String prefix, String namespaceURI, String localName, String value);
}
Added: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionEventProducer.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionEventProducer.java?view=auto&rev=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionEventProducer.java (added)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionEventProducer.java Fri May 25 12:26:58 2007
@@ -0,0 +1,75 @@
+package org.apache.yoko.bindings.corba.types;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLEventFactory;
+import javax.xml.stream.events.Attribute;
+
+import org.apache.cxf.service.model.ServiceInfo;
+import org.apache.schemas.yoko.bindings.corba.Union;
+import org.apache.schemas.yoko.bindings.corba.Unionbranch;
+import org.apache.yoko.bindings.corba.utils.CorbaUtils;
+import org.omg.CORBA.ORB;
+
+public class CorbaUnionEventProducer extends AbstractStartEndEventProducer {
+
+ static final List<Attribute> IS_NIL_ATTRIBUTE_LIST = new ArrayList<Attribute>();
+ static {
+ XMLEventFactory factory = XMLEventFactory.newInstance();
+ IS_NIL_ATTRIBUTE_LIST.add(factory.createAttribute(
+ new QName("http://www.w3.org/2001/XMLSchema-instance", "nil"), "true"));
+ }
+ private final boolean isNil;
+
+ public CorbaUnionEventProducer(CorbaObjectHandler h, ServiceInfo sInfo, ORB o) {
+ CorbaUnionHandler handler = (CorbaUnionHandler) h;
+ serviceInfo = sInfo;
+ orb = o;
+ name = CorbaUtils.processQName(handler.getName(), serviceInfo);
+
+ isNil = checkIsNil(handler);
+ if (!isNil) {
+ CorbaObjectHandler contents = handler.getValue();
+ if (contents != null) {
+ Union unionType = (Union)handler.getType();
+ List<Unionbranch> branches = unionType.getUnionbranch();
+ if (branches.size() == 1) {
+ CorbaTypeEventProducer contentEventProducer =
+ CorbaHandlerUtils.getTypeEventProducer(contents, serviceInfo, orb);
+ currentEventProducer = new SkipStartEndEventProducer(contentEventProducer, name);
+ } else {
+ List<CorbaObjectHandler> list = new ArrayList<CorbaObjectHandler>();
+ list.add(contents);
+ iterator = list.iterator();
+ }
+ }
+ }
+ }
+
+ private boolean checkIsNil(CorbaUnionHandler handler) {
+ boolean isItNil = false;
+ Union unionType = (Union)handler.getType();
+ List<Unionbranch> branches = unionType.getUnionbranch();
+ if (branches.size() == 1) {
+ // nillable or single branch
+ CorbaObjectHandler descHandler = handler.getDiscriminator();
+ if (descHandler instanceof CorbaPrimitiveHandler) {
+ Object descValue = ((CorbaPrimitiveHandler)descHandler).getValue();
+ if (descValue instanceof Boolean && !((Boolean)descValue).booleanValue()) {
+ isItNil = true;
+ }
+ }
+ }
+ return isItNil;
+ }
+
+ public List<Attribute> getAttributes() {
+ List<Attribute> attributes = IS_NIL_ATTRIBUTE_LIST;
+ if (!isNil) {
+ attributes = super.getAttributes();
+ }
+ return attributes;
+ }
+}
Propchange: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionEventProducer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionEventProducer.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionListener.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionListener.java?view=auto&rev=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionListener.java (added)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionListener.java Fri May 25 12:26:58 2007
@@ -0,0 +1,100 @@
+package org.apache.yoko.bindings.corba.types;
+
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.apache.cxf.service.model.ServiceInfo;
+import org.apache.schemas.yoko.bindings.corba.CaseType;
+import org.apache.schemas.yoko.bindings.corba.Union;
+import org.apache.schemas.yoko.bindings.corba.Unionbranch;
+import org.apache.yoko.bindings.corba.CorbaTypeMap;
+import org.omg.CORBA.ORB;
+
+public class CorbaUnionListener extends AbstractCorbaTypeListener {
+
+ private CorbaTypeMap typeMap;
+ private ServiceInfo serviceInfo;
+ private ORB orb;
+
+ public CorbaUnionListener(CorbaObjectHandler handler,
+ CorbaTypeMap tm, ORB oorb,
+ ServiceInfo sInfo) {
+ super(handler);
+ typeMap = tm;
+ serviceInfo = sInfo;
+ orb = oorb;
+ Union unionType = (Union) handler.getType();
+ ((CorbaUnionHandler)handler).setDiscriminator(CorbaHandlerUtils.initializeObjectHandler(orb,
+ new QName("discriminator"), unionType.getDiscriminator(), null,
+ typeMap, serviceInfo));
+ }
+
+ @Override
+ public CorbaObjectHandler getCorbaObject() {
+ return handler;
+ }
+
+ @Override
+ public void processCharacters(String text) {
+ Union unionType = (Union) handler.getType();
+ List<Unionbranch> branches = unionType.getUnionbranch();
+ boolean singleBranch = branches.size() == 1;
+
+ QName contentName = currentElement != null ? currentElement : handler.getName();
+ for (Unionbranch branch : branches) {
+ if (singleBranch || branch.getName().equals(contentName.getLocalPart())) {
+ CorbaObjectHandler content =
+ CorbaHandlerUtils.initializeObjectHandler(orb, contentName,
+ branch.getIdltype(), null, typeMap, serviceInfo);
+ if (content instanceof CorbaPrimitiveHandler) {
+ ((CorbaPrimitiveHandler) content).setValueFromData(text);
+ } else {
+ throw new RuntimeException("Not Implemented - branch of type" + branch.getIdltype());
+ }
+ ((CorbaUnionHandler)handler).setValue(null, content);
+ String descriminatorValue = "true";
+ if (!singleBranch) {
+ descriminatorValue = determineDescriminatorValue(branch);
+ }
+ ((CorbaUnionHandler)handler).setDiscriminatorValueFromData(descriminatorValue);
+ ((CorbaUnionHandler)handler).addCase(content);
+ } else {
+ QName emptyBranchContentQName =
+ new QName(currentElement.getNamespaceURI(), branch.getName());
+ CorbaObjectHandler emptyBranchContent =
+ CorbaHandlerUtils.initializeObjectHandler(orb, emptyBranchContentQName,
+ branch.getIdltype(), null, typeMap, serviceInfo);
+ ((CorbaUnionHandler)handler).addCase(emptyBranchContent);
+ }
+ }
+ }
+
+ private String determineDescriminatorValue(Unionbranch branch) {
+ String descriminatorValue;
+ // Determine the value of the discriminator.
+ List<CaseType> branchCases = branch.getCase();
+ if (branchCases.size() != 0) {
+ // This represents a union case. Set the discriminator based on the first
+ // label value associated with the branch (since we don't have this information)
+ // from the Stax representation of the Celtix object).
+ CaseType caseLabel = branchCases.get(0);
+ descriminatorValue = caseLabel.getLabel();
+ } else {
+ // This represents the default case.
+ descriminatorValue = ((CorbaUnionHandler)handler).createDefaultDiscriminatorLabel();
+ }
+ return descriminatorValue;
+ }
+
+ public void processWriteAttribute(String prefix, String namespaceURI,
+ String localName, String val) {
+ if ("nil".equals(localName)) {
+ ((CorbaUnionHandler)handler).setDiscriminatorValueFromData("false");
+ } else {
+ super.processWriteAttribute(prefix, namespaceURI, localName, val);
+ }
+
+ }
+
+}
Propchange: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionListener.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionListener.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/ParameterEventProducer.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/ParameterEventProducer.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/ParameterEventProducer.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/ParameterEventProducer.java Fri May 25 12:26:58 2007
@@ -83,4 +83,5 @@
public List<Namespace> getNamespaces() {
return null;
}
+
}
Added: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/SkipStartEndEventProducer.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/SkipStartEndEventProducer.java?view=auto&rev=541753
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/SkipStartEndEventProducer.java (added)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/SkipStartEndEventProducer.java Fri May 25 12:26:58 2007
@@ -0,0 +1,64 @@
+package org.apache.yoko.bindings.corba.types;
+
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.events.Attribute;
+import javax.xml.stream.events.Namespace;
+
+public class SkipStartEndEventProducer implements CorbaTypeEventProducer {
+
+ private final CorbaTypeEventProducer eventProducer;
+ private final QName name;
+
+ private int peekedEvent;
+ private boolean hasNext = true;
+
+ public SkipStartEndEventProducer(CorbaTypeEventProducer contentEventProducer, QName n) {
+ eventProducer = contentEventProducer;
+ name = n;
+ // skip start_element
+ contentEventProducer.next();
+ peekedEvent = contentEventProducer.next();
+ }
+
+ public String getLocalName() {
+ return name.getLocalPart();
+ }
+
+ public QName getName() {
+ return name;
+ }
+
+ public String getText() {
+ return eventProducer.getText();
+ }
+
+ public boolean hasNext() {
+ boolean ret = hasNext;
+ if (ret) {
+ ret = eventProducer.hasNext();
+ }
+ return ret;
+ }
+
+ public int next() {
+ int ret = peekedEvent;
+ peekedEvent = eventProducer.next();
+ if (peekedEvent == XMLStreamReader.END_ELEMENT) {
+ hasNext = false;
+ peekedEvent = 0;
+ }
+ return ret;
+ }
+
+ public List<Attribute> getAttributes() {
+ return eventProducer.getAttributes();
+ }
+
+ public List<Namespace> getNamespaces() {
+ return eventProducer.getNamespaces();
+ }
+
+}
Propchange: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/SkipStartEndEventProducer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/SkipStartEndEventProducer.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/yoko/branches/perf/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTest.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTest.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTest.java (original)
+++ incubator/yoko/branches/perf/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTest.java Fri May 25 12:26:58 2007
@@ -58,18 +58,9 @@
//STAX output incorrect from CXF.
public void testQName() throws Exception {
}
-
- public void testStructWithNillables() throws Exception {
- }
public void testCompoundArray() throws Exception {
}
-
- public void testEmptyChoice() throws Exception {
- }
-
- public void testSimpleChoice() throws Exception {
- }
public void testSimpleAll() throws Exception {
}
Modified: incubator/yoko/branches/perf/src/test/java/org/apache/yoko/bindings/corba/types/CorbaHandlerUtilsTest.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/test/java/org/apache/yoko/bindings/corba/types/CorbaHandlerUtilsTest.java?view=diff&rev=541753&r1=541752&r2=541753
==============================================================================
--- incubator/yoko/branches/perf/src/test/java/org/apache/yoko/bindings/corba/types/CorbaHandlerUtilsTest.java (original)
+++ incubator/yoko/branches/perf/src/test/java/org/apache/yoko/bindings/corba/types/CorbaHandlerUtilsTest.java Fri May 25 12:26:58 2007
@@ -131,43 +131,43 @@
// Test for an array handler
objName = new QName("object");
objIdlType = new QName(complexTypesNamespaceURI, "TestArray", complexTypesPrefix);
- result = CorbaHandlerUtils.createTypeHandler(orb, objName, objIdlType, typeMap, service);
+ result = CorbaHandlerUtils.createTypeHandler(orb, objName, objIdlType, typeMap);
assertTrue(result instanceof CorbaArrayHandler);
// Test for an enum handler
objName = new QName("object");
objIdlType = new QName(complexTypesNamespaceURI, "TestEnum", complexTypesPrefix);
- result = CorbaHandlerUtils.createTypeHandler(orb, objName, objIdlType, typeMap, service);
+ result = CorbaHandlerUtils.createTypeHandler(orb, objName, objIdlType, typeMap);
assertTrue(result instanceof CorbaEnumHandler);
// Test for a fixed handler
objName = new QName("object");
objIdlType = new QName(complexTypesNamespaceURI, "TestFixed", complexTypesPrefix);
- result = CorbaHandlerUtils.createTypeHandler(orb, objName, objIdlType, typeMap, service);
+ result = CorbaHandlerUtils.createTypeHandler(orb, objName, objIdlType, typeMap);
assertTrue(result instanceof CorbaFixedHandler);
// Test for a primitive handler
objName = new QName("object");
objIdlType = CorbaConstants.NT_CORBA_BOOLEAN;
- result = CorbaHandlerUtils.createTypeHandler(orb, objName, objIdlType, typeMap, service);
+ result = CorbaHandlerUtils.createTypeHandler(orb, objName, objIdlType, typeMap);
assertTrue(result instanceof CorbaPrimitiveHandler);
// Test for a sequence handler
objName = new QName("object");
objIdlType = new QName(complexTypesNamespaceURI, "TestSequence", complexTypesPrefix);
- result = CorbaHandlerUtils.createTypeHandler(orb, objName, objIdlType, typeMap, service);
+ result = CorbaHandlerUtils.createTypeHandler(orb, objName, objIdlType, typeMap);
assertTrue(result instanceof CorbaSequenceHandler);
// Test for a struct handler
objName = new QName("object");
objIdlType = new QName(complexTypesNamespaceURI, "TestStruct", complexTypesPrefix);
- result = CorbaHandlerUtils.createTypeHandler(orb, objName, objIdlType, typeMap, service);
+ result = CorbaHandlerUtils.createTypeHandler(orb, objName, objIdlType, typeMap);
assertTrue(result instanceof CorbaStructHandler);
// Test for a union handler
objName = new QName("object");
objIdlType = new QName(complexTypesNamespaceURI, "TestUnion", complexTypesPrefix);
- result = CorbaHandlerUtils.createTypeHandler(orb, objName, objIdlType, typeMap, service);
+ result = CorbaHandlerUtils.createTypeHandler(orb, objName, objIdlType, typeMap);
assertTrue(result instanceof CorbaUnionHandler);
}