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

com.servicerocket.confluence.randombits.conveyor.xwork.OverridingPackageConfig Maven / Gradle / Ivy

There is a newer version: 2.5.12
Show newest version
package com.servicerocket.confluence.randombits.conveyor.xwork;

import com.atlassian.plugin.Plugin;
import com.opensymphony.xwork.config.ExternalReferenceResolver;
import com.opensymphony.xwork.config.entities.PackageConfig;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * An extension of {@link PackageConfig} that represents a <package-override>.
 */
public class OverridingPackageConfig extends PluginAwarePackageConfig {

    private Map> overridingActionsMap;

    public OverridingPackageConfig( Plugin plugin ) {
        super( plugin );
        init();
    }

    public OverridingPackageConfig( String name, Plugin plugin ) {
        super( name, plugin );
        init();
    }

    public OverridingPackageConfig( String name, String namespace, ExternalReferenceResolver externalRefResolver, List parents, Plugin plugin ) {
        super( name, namespace, true, externalRefResolver, parents, plugin );
        init();
    }

    private void init() {
        overridingActionsMap = new HashMap>();
    }

    public Map> getOverridingActionsMap() {
        return overridingActionsMap;
    }

    public void setOverridingActionsMap( Map> overridingActionsMap ) {
        this.overridingActionsMap = overridingActionsMap;
    }

    /**
     * Adds an override configuration for the specified action name.
     *
     * @param overriddenActionName The original action name being overridden.
     * @param overridingAction The overriding action.
     */
    public void addOverridingAction( String overriddenActionName, OverridingActionConfig overridingAction ) {
        List otherActions = overridingActionsMap.get( overriddenActionName );
        if ( otherActions == null ) {
            otherActions = new ArrayList();
            overridingActionsMap.put( overriddenActionName, otherActions );
        }
        otherActions.add( overridingAction );
    }

    /**
     * Returns the set of {@link OverridingActionConfig} instances for the specified action name.
     * @param overriddenActionName overridden action name
     * @return List of OverridingActionConfig
     */
    public List getOverridingActions( String overriddenActionName ) {
        return overridingActionsMap.get( overriddenActionName );
    }

    @Override
    public boolean equals( Object o ) {
        return o == this;
    }

    @Override
    public int hashCode() {
        return System.identityHashCode( this );
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy