/*
* Copyright (C) 2003-2010 eXo Platform SAS.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see<http://www.gnu.org/licenses/>.
*/
package org.exoplatform.wiki.rendering.render.confluence;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.xwiki.rendering.internal.renderer.ParametersPrinter;
import org.xwiki.rendering.listener.reference.ResourceReference;
/**
* Created by The eXo Platform SAS
* Author : viet nguyen
* viet.nguyen@exoplatform.com
* Jul 2, 2010
*/
/**
* Generate a Confluence syntax string representation of an {@image ResourceReference}, using the format:
* <code>(optional document name)^(attachment name)</code>.
*/
public class ConfluenceSyntaxImageRenderer {
private ParametersPrinter parametersPrinter = new ParametersPrinter();
public String renderImage(ResourceReference image) {
return image.getReference().replace("@", "^");
}
public void beginRenderImage(ConfluenceSyntaxEscapeWikiPrinter printer) {
printer.flush();
printer.print("!");
}
public void renderImageContent(ConfluenceSyntaxEscapeWikiPrinter printer, String label) {
if (!StringUtils.isEmpty(label)) {
printer.print(label);
}
}
public void endRenderImage(ConfluenceSyntaxEscapeWikiPrinter printer, Map<String, String> parameters) {
// If there were parameters specified, output them separated by the "|" characters
if (!parameters.isEmpty()) {
printer.print("|");
printer.print(this.parametersPrinter.print(parameters, '~'));
}
printer.print("!");
}
}