} else if (name.equals(LINK_ELEM)) {
final LinkService linkService = this.getPortalService().getComponentManager().getLinkService();
final String format = attr.getValue("format");
AttributesImpl newAttrs = new AttributesImpl();
newAttrs.setAttributes(attr);
newAttrs.removeAttribute("format");
if ( attr.getValue("href") != null ) {
final CopletInstanceData cid = this.getCopletInstanceData();
ChangeCopletInstanceAspectDataEvent event = new ChangeCopletInstanceAspectDataEvent(cid, null, null);
String value = linkService.getLinkURI(event);
if (value.indexOf('?') == -1) {
value = value + '?' + attr.getValue("href");
} else {
value = value + '&' + attr.getValue("href");
}
newAttrs.removeAttribute("href");
this.output(value, format, newAttrs );
} else {
final String path = attr.getValue("path");
final String value = attr.getValue("value");
newAttrs.removeAttribute("path");
newAttrs.removeAttribute("value");
JXPathEvent event = null;
if ( attr.getValue("layout") != null ) {
newAttrs.removeAttribute("layout");
final String layoutId = attr.getValue("layout");
Object layout = this.getPortalService().getComponentManager().getProfileManager().getPortalLayout(null, layoutId);
if ( layout != null ) {
event = new JXPathEvent(layout, path, value);
}
} else {
String copletId = attr.getValue("coplet");
newAttrs.removeAttribute("coplet");
final CopletInstanceData cid = this.getCopletInstanceData(copletId);
if ( cid != null ) {
event = new CopletJXPathEvent(cid, path, value);
}
}
if ( this.insideLinks ) {
if ( event != null ) {
this.collectedEvents.add(event);
}
} else {
final String href = linkService.getLinkURI(event);
this.output(href, format, newAttrs );
}
}
} else if (name.equals(PARAMETER_ELEM)) {
if (this.insideLinks) {
String href = attr.getValue("href");
if ( href != null ) {
final int pos = href.indexOf('?');
if ( pos != -1 ) {
href = href.substring(pos+1);
}
this.collectedEvents.add(new LinkService.ParameterDescription(href));
}
}
} else if (name.equals(LINKS_ELEM) ) {
this.insideLinks = true;
final AttributesImpl newAttrs = new AttributesImpl();
newAttrs.setAttributes(attr);
newAttrs.removeAttribute("format");
this.stack.push(newAttrs);
String format = attr.getValue("format");
if ( format == null ) {
format = "html-link";