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

org.opensearch.extensions.action.ExtensionAction Maven / Gradle / Ivy

There is a newer version: 2.18.0
Show newest version
/*
 * SPDX-License-Identifier: Apache-2.0
 *
 * The OpenSearch Contributors require contributions made to
 * this file be licensed under the Apache-2.0 license or a
 * compatible open source license.
 */

package org.opensearch.extensions.action;

import org.opensearch.action.ActionType;

import java.util.Objects;

/**
 * An {@link ActionType} to be used in extension action transport handling.
 *
 * @opensearch.internal
 */
public class ExtensionAction extends ActionType {

    private final String uniqueId;

    /**
     * Create an instance of this action to register in the dynamic actions map.
     *
     * @param uniqueId The uniqueId of the extension which will run this action.
     * @param name The fully qualified class name of the extension's action to execute.
     */
    public ExtensionAction(String uniqueId, String name) {
        super(name, RemoteExtensionActionResponse::new);
        this.uniqueId = uniqueId;
    }

    /**
     * Gets the uniqueId of the extension which will run this action.
     *
     * @return the uniqueId
     */
    public String uniqueId() {
        return this.uniqueId;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = super.hashCode();
        result = prime * result + Objects.hash(uniqueId);
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true;
        if (!super.equals(obj)) return false;
        if (getClass() != obj.getClass()) return false;
        ExtensionAction other = (ExtensionAction) obj;
        return Objects.equals(uniqueId, other.uniqueId);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy