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/03/09 15:44:15 UTC
svn commit: r516437 - in /incubator/yoko/trunk/bindings/src:
main/java/org/apache/yoko/bindings/corba/CorbaStaxObject.java
main/java/org/apache/yoko/bindings/corba/CorbaUtils.java
test/java/org/apache/yoko/bindings/corba/IdlToWsdlTypeTest.java
Author: bravi
Date: Fri Mar 9 07:44:14 2007
New Revision: 516437
URL: http://svn.apache.org/viewvc?view=rev&rev=516437
Log:
[YOKO-245] - Fixing to some tests in IDLToWSDLTypeTest.
Modified:
incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaStaxObject.java
incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaUtils.java
incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/IdlToWsdlTypeTest.java
Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaStaxObject.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaStaxObject.java?view=diff&rev=516437&r1=516436&r2=516437
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaStaxObject.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaStaxObject.java Fri Mar 9 07:44:14 2007
@@ -314,14 +314,18 @@
StartElement startEl = reader.nextEvent().asStartElement();
QName name = startEl.getName();
XMLEvent evt = reader.nextEvent();
- Characters charEl;
if (evt.isStartElement()) {
- charEl = reader.nextEvent().asCharacters();
+ evt = reader.nextEvent();
+ }
+ String value;
+ if (evt.isCharacters()) {
+ value = evt.asCharacters().getData();
} else {
- charEl = evt.asCharacters();
+ value = "";
+ }
+ if (reader.peek().isEndElement()) {
+ reader.nextEvent().asEndElement();
}
- String value = charEl.getData();
- reader.nextEvent().asEndElement();
CorbaPrimitiveHandler obj = new CorbaPrimitiveHandler(name, idlType, tc, null);
obj.setValueFromData(value);
return obj;
Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaUtils.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaUtils.java?view=diff&rev=516437&r1=516436&r2=516437
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaUtils.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaUtils.java Fri Mar 9 07:44:14 2007
@@ -175,6 +175,7 @@
for (int i = 0; i < members.length; ++i) {
members[i] = ((Enumerator) enums.get(i)).getValue();
}
+ name = getTypeCodeName(name);
tc = orb.create_enum_tc(enumType.getRepositoryID(), name, members);
} else if (obj instanceof Exception) {
Exception exceptType = (Exception)obj;
@@ -187,7 +188,7 @@
members[i] = new StructMember(member.getName(),
getTypeCode(orb, member.getIdltype(), typeMaps), null);
}
- String name = exceptType.getName();
+ String name = getTypeCodeName(exceptType.getName());
tc = orb.create_exception_tc(exceptType.getRepositoryID(), name, members);
} else if (obj instanceof Fixed) {
Fixed fixedType = (Fixed) obj;
@@ -198,7 +199,7 @@
if (objType.getName().equals("CORBA.Object")) {
tc = orb.create_interface_tc(objType.getRepositoryID(), "Object");
} else {
- tc = orb.create_interface_tc(objType.getRepositoryID(), objType.getName());
+ tc = orb.create_interface_tc(objType.getRepositoryID(), getTypeCodeName(objType.getName()));
}
} else if (obj instanceof Sequence) {
Sequence seqType = (Sequence)obj;
@@ -215,7 +216,7 @@
members[i] = new StructMember(member.getName(),
getTypeCode(orb, member.getIdltype(), typeMaps), null);
}
- String name = structType.getName();
+ String name = getTypeCodeName(structType.getName());
tc = orb.create_struct_tc(structType.getRepositoryID(), name, members);
} else if (obj instanceof Union) {
tc = getUnionTypeCode(orb, obj, typeMaps);
@@ -234,56 +235,66 @@
List<CaseType> cases = branch.getCase();
for (Iterator<CaseType> caseIter = cases.iterator(); caseIter.hasNext();) {
CaseType cs = caseIter.next();
- UnionMember member = new UnionMember();
- member.name = branch.getName();
- member.type = getTypeCode(orb, branch.getIdltype(), typeMaps);
- member.label = orb.create_any();
-
- // We need to insert the labels in a way that depends on the type of the discriminator.
- // According to the CORBA specification, the following types are permissable as
- // discriminator types:
- // * signed & unsigned short
- // * signed & unsigned long
- // * signed & unsigned long long
- // * char
- // * boolean
- switch (discTC.kind().value()) {
- case TCKind._tk_short:
- member.label.insert_short(Short.parseShort(cs.getLabel()));
- break;
- case TCKind._tk_ushort:
- member.label.insert_ushort(Short.parseShort(cs.getLabel()));
- break;
- case TCKind._tk_long:
- member.label.insert_long(Integer.parseInt(cs.getLabel()));
- break;
- case TCKind._tk_ulong:
- member.label.insert_ulong(Integer.parseInt(cs.getLabel()));
- break;
- case TCKind._tk_longlong:
- member.label.insert_longlong(Long.parseLong(cs.getLabel()));
- break;
- case TCKind._tk_ulonglong:
- member.label.insert_ulonglong(Long.parseLong(cs.getLabel()));
- break;
- case TCKind._tk_char:
- member.label.insert_char(cs.getLabel().charAt(0));
- break;
- case TCKind._tk_boolean:
- member.label.insert_boolean(Boolean.parseBoolean(cs.getLabel()));
- break;
- default:
- // TODO: Throw exception since this is an unsupported discriminator type
+ if (!members.containsKey(cs.getLabel())) {
+ UnionMember member = new UnionMember();
+ member.name = branch.getName();
+ member.type = getTypeCode(orb, branch.getIdltype(), typeMaps);
+ member.label = orb.create_any();
+ // We need to insert the labels in a way that depends on the type of the discriminator.
+ // According to the CORBA specification, the following types are permissable as
+ // discriminator types:
+ // * signed & unsigned short
+ // * signed & unsigned long
+ // * signed & unsigned long long
+ // * char
+ // * boolean
+ switch (discTC.kind().value()) {
+ case TCKind._tk_short:
+ member.label.insert_short(Short.parseShort(cs.getLabel()));
+ break;
+ case TCKind._tk_ushort:
+ member.label.insert_ushort(Short.parseShort(cs.getLabel()));
+ break;
+ case TCKind._tk_long:
+ member.label.insert_long(Integer.parseInt(cs.getLabel()));
+ break;
+ case TCKind._tk_ulong:
+ member.label.insert_ulong(Integer.parseInt(cs.getLabel()));
+ break;
+ case TCKind._tk_longlong:
+ member.label.insert_longlong(Long.parseLong(cs.getLabel()));
+ break;
+ case TCKind._tk_ulonglong:
+ member.label.insert_ulonglong(Long.parseLong(cs.getLabel()));
+ break;
+ case TCKind._tk_char:
+ member.label.insert_char(cs.getLabel().charAt(0));
+ break;
+ case TCKind._tk_boolean:
+ member.label.insert_boolean(Boolean.parseBoolean(cs.getLabel()));
+ break;
+ default:
+ // TODO: Throw exception since this is an unsupported discriminator type
+ }
+ // Yoko orb is strict on how the case labels are stored for each member. So we can't
+ // simply insert the labels as strings
+ members.put(cs.getLabel(), member);
}
- // Yoko orb is strict on how the case labels are stored for each member. So we can't
- // simply insert the labels as strings
- members.put(cs.getLabel(), member);
}
}
return orb.create_union_tc(unionType.getRepositoryID(),
- unionType.getName(),
+ getTypeCodeName(unionType.getName()),
discTC,
(UnionMember[])members.values().toArray(new UnionMember[members.size()]));
+ }
+
+ public static String getTypeCodeName(String name) {
+ int pos = name.indexOf(".");
+ while (pos != -1) {
+ name = name.substring(pos + 1);
+ pos = name.indexOf(".");
+ }
+ return name;
}
public static boolean isPrimitiveIdlType(QName idltype) {
Modified: incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/IdlToWsdlTypeTest.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/IdlToWsdlTypeTest.java?view=diff&rev=516437&r1=516436&r2=516437
==============================================================================
--- incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/IdlToWsdlTypeTest.java (original)
+++ incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/IdlToWsdlTypeTest.java Fri Mar 9 07:44:14 2007
@@ -115,10 +115,6 @@
public void testWchar() { }
public void testOctet () { }
public void testAny () { }
- public void testString() { }
public void testWstring() { }
- public void testStruct() { }
- public void testUnion() { }
- public void testEnum() { }
-
+ public void testUnion() { }
}