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

com.google.gerrit.extensions.api.changes.ActionVisitor Maven / Gradle / Ivy

The newest version!
// Copyright (C) 2016 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package com.google.gerrit.extensions.api.changes;

import com.google.gerrit.extensions.annotations.ExtensionPoint;
import com.google.gerrit.extensions.common.ActionInfo;
import com.google.gerrit.extensions.common.ChangeInfo;
import com.google.gerrit.extensions.common.RevisionInfo;

/**
 * Extension point called during population of {@link ActionInfo} maps.
 *
 * 

Each visitor may mutate the input {@link ActionInfo}, or filter it out of the map entirely. * When multiple extensions are registered, the order in which they are executed is undefined. */ @ExtensionPoint public interface ActionVisitor { /** * Visit a change-level action. * *

Callers may mutate the input {@link ActionInfo}, or return false to omit the action from the * map entirely. Inputs other than the {@link ActionInfo} should be considered immutable. * * @param name name of the action, as a key into the {@link ActionInfo} map returned by the REST * API. * @param actionInfo action being visited; caller may mutate. * @param changeInfo information about the change to which this action belongs; caller should * treat as immutable. * @return true if the action should remain in the map, or false to omit it. */ boolean visit(String name, ActionInfo actionInfo, ChangeInfo changeInfo); /** * Visit a revision-level action. * *

Callers may mutate the input {@link ActionInfo}, or return false to omit the action from the * map entirely. Inputs other than the {@link ActionInfo} should be considered immutable. * * @param name name of the action, as a key into the {@link ActionInfo} map returned by the REST * API. * @param actionInfo action being visited; caller may mutate. * @param changeInfo information about the change to which this action belongs; caller should * treat as immutable. * @param revisionInfo information about the revision to which this action belongs; caller should * treat as immutable. * @return true if the action should remain in the map, or false to omit it. */ boolean visit( String name, ActionInfo actionInfo, ChangeInfo changeInfo, RevisionInfo revisionInfo); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy