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/29 14:57:27 UTC
svn commit: r542555 - in
/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types:
CorbaSequenceListener.java CorbaStructListener.java
Author: bravi
Date: Tue May 29 07:57:26 2007
New Revision: 542555
URL: http://svn.apache.org/viewvc?view=rev&rev=542555
Log:
[YOKO-366] - Resolving the name clash in CorbaStruct & Sequence Listeners.
Modified:
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
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=542555&r1=542554&r2=542555
==============================================================================
--- 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 Tue May 29 07:57:26 2007
@@ -39,9 +39,9 @@
private final ORB orb;
private final CorbaTypeMap typeMap;
private final boolean isOctets;
- private QName currentElName;
private CorbaTypeListener currentTypeListener;
private ServiceInfo serviceInfo;
+ private int depth;
//REVISIT, Need to create a template element if no elements are read in.
@@ -70,8 +70,9 @@
}
public void processStartElement(QName name) {
+ depth++;
if (currentTypeListener == null) {
- currentElName = name;
+ currentElement = name;
currentTypeListener =
CorbaHandlerUtils.getTypeListener(name,
seqElementType,
@@ -87,7 +88,8 @@
public void processEndElement(QName name) {
if (currentTypeListener != null) {
currentTypeListener.processEndElement(name);
- if (currentElName.equals(name)) {
+ depth--;
+ if (depth == 0 && currentElement.equals(name)) {
currentTypeListener = null;
}
}
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=542555&r1=542554&r2=542555
==============================================================================
--- 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 Tue May 29 07:57:26 2007
@@ -37,8 +37,8 @@
private final ORB orb;
private int memberCount;
private CorbaTypeListener currentTypeListener;
- private QName memberElement;
private ServiceInfo serviceInfo;
+ private int depth;
public CorbaStructListener(CorbaObjectHandler handler,
CorbaTypeMap map,
@@ -51,6 +51,7 @@
}
public void processStartElement(QName name) {
+ depth++;
if (currentTypeListener == null) {
QName elName = name;
MemberType member = structMembers.get(memberCount);
@@ -58,7 +59,7 @@
if (anonType) {
elName = CorbaUtils.getEmptyQName();
} else {
- memberElement = name;
+ currentElement = name;
}
currentTypeListener =
CorbaHandlerUtils.getTypeListener(elName,
@@ -80,8 +81,9 @@
public void processEndElement(QName name) {
if (currentTypeListener != null) {
currentTypeListener.processEndElement(name);
+ depth--;
}
- if ((memberElement != null) && (memberElement.equals(name))) {
+ if (depth == 0 && (currentElement != null) && (currentElement.equals(name))) {
currentTypeListener = null;
}
}