public void endElement(String uri,
String name,
String raw) throws SAXException {
if (uri.equals(NAMESPACE_URI) && name.equals(EVENT_ELEM)) {
this.attributeName = null;
this.elementName = null;
this.insideEvent = false;
} else {
if (this.insideEvent) {
AttributesImpl attr = (AttributesImpl)this.attrStack.pop();
// process attribute that contains link
if (this.attributeName != null) {
int index = attr.getIndex(this.attributeName);
String link = attr.getValue(index);
// if attribute found that contains a link
if (link != null) {
CopletInstanceData cid = this.getCopletInstanceData(attr.getValue("coplet"));
LinkService linkService = this.portalService.getComponentManager().getLinkService();
// create event link
CopletLinkEvent event = new CopletLinkEvent(cid, link);
String eventLink = linkService.getLinkURI(event);
// insert event link
attr.setValue(index, eventLink);
}
}
String eventLink = null;
DocumentFragment fragment = null;
// process element that contains link
if (this.elementName != null && name.equals(this.elementName)) {
String link = this.endTextRecording();
CopletInstanceData cid = this.getCopletInstanceData();
LinkService linkService = this.portalService.getComponentManager().getLinkService();
// create event link
CopletLinkEvent event = new CopletLinkEvent(cid, link);
eventLink = linkService.getLinkURI(event);
} else {
fragment = this.endRecording();
}
// stream element
super.startElement(uri, name, raw, attr);
if (eventLink != null) {
// insert event link
super.characters(eventLink.toCharArray(), 0, eventLink.length());
} else if (fragment != null) {
super.sendEvents(fragment);
}
super.endElement(uri, name, raw);
} else {
super.endElement(uri, name, raw);
}
}
}
Overridden from superclass. |