All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.servicerocket.confluence.randombits.filtering.confluence.param.content.AttachmentInterpreter Maven / Gradle / Ivy

There is a newer version: 2.5.12
Show newest version
package com.servicerocket.confluence.randombits.filtering.confluence.param.content;

import com.atlassian.confluence.content.render.xhtml.ConversionContext;
import com.atlassian.confluence.content.render.xhtml.DefaultConversionContext;
import com.atlassian.confluence.core.ConfluenceEntityObject;
import com.atlassian.confluence.pages.Attachment;
import com.atlassian.confluence.renderer.PageContext;
import com.servicerocket.confluence.randombits.support.confluence.LinkAssistant;
import com.servicerocket.confluence.randombits.support.core.env.EnvironmentAssistant;
import com.servicerocket.confluence.randombits.support.core.param.AbstractParameterInterpreter;
import com.servicerocket.confluence.randombits.support.core.param.InterpretationException;
import com.servicerocket.confluence.randombits.support.core.param.ParameterContext;

/**
 * Interprets a string as a wiki-style attachment link.
 */
public class AttachmentInterpreter extends AbstractParameterInterpreter {

    private final EnvironmentAssistant environmentAssistant;

    private final LinkAssistant linkAssistant;

    public AttachmentInterpreter( EnvironmentAssistant environmentAssistant, LinkAssistant linkAssistant ) {
        this.environmentAssistant = environmentAssistant;
        this.linkAssistant = linkAssistant;
    }

    @Override
    public Attachment interpret( String inputValue, ParameterContext context ) throws InterpretationException {
        ConversionContext content = context.get( ConversionContext.class, null );
        if ( content == null )
            content = environmentAssistant.getValue( ConversionContext.class );

        if ( content == null )
            content = new DefaultConversionContext( new PageContext() );

        ConfluenceEntityObject entity = linkAssistant.getEntityForWikiLink( content, inputValue );

        if ( entity instanceof Attachment )
            return (Attachment) entity;

        return null;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy