package org.curriki.xwiki.plugin.asset.attachment;
import com.xpn.xwiki.doc.XWikiDocument;
import com.xpn.xwiki.doc.XWikiAttachment;
import com.xpn.xwiki.XWikiContext;
import com.xpn.xwiki.XWikiException;
import com.xpn.xwiki.objects.BaseObject;
import org.curriki.xwiki.plugin.asset.Asset;
import org.curriki.xwiki.plugin.asset.Constants;
import org.curriki.xwiki.plugin.mimetype.MimeTypePlugin;
/**
*/
public class AttachmentAsset extends Asset {
public AttachmentAsset(XWikiDocument doc, XWikiContext context) {
super(doc, context);
}
public String getFileType() {
use(getObject(Constants.ATTACHMENT_ASSET_CLASS));
return (String) getValue(Constants.ATTACHMENT_ASSET_FILE_TYPE);
}
@Override
public String getCategorySubtype() {
return getFileType();
}
/**
* This functions will display the asset including a fallback system
* For a specific mode. This function can be overidden for a specific asset type
* Otherwise it will use a default rule system to find the appropriate template
* @return
*/
protected String displayAssetTemplate(String mode) {
MimeTypePlugin mimePlugin = getMimeTypePlugin();
String category = getCategory();
String displayer = mimePlugin.getDisplayer(category, getFileType(), context);
String result = context.getWiki().parseTemplate("assets/displayers/" + displayer + "_" + mode + ".vm", context);
if (result.equals(""))
result = context.getWiki().parseTemplate("assets/displayers/" + category + "_" + mode + ".vm", context);
if (result.equals(""))
result = context.getWiki().parseTemplate("assets/displayers/attachment_" + mode + ".vm", context);
return result;
}
}