| /* |
| * Copyright 2016 Cisco Systems, Inc. |
| * |
| * 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.cisco.gerrit.plugins.slack.message; |
| |
| import com.cisco.gerrit.plugins.slack.config.ProjectConfig; |
| import com.google.gerrit.server.events.ChangeMergedEvent; |
| import com.google.gerrit.server.events.CommentAddedEvent; |
| import com.google.gerrit.server.events.Event; |
| import com.google.gerrit.server.events.PatchSetCreatedEvent; |
| |
| /** |
| * Factory used to create event specific MessageGenerator instances. |
| * |
| * @author Matthew Montgomery |
| */ |
| public class MessageGeneratorFactory |
| { |
| // Made private to prevent instantiation |
| private MessageGeneratorFactory() {} |
| |
| /** |
| * Creates a new MessageGenerator for patchset created events. |
| * |
| * @param event A PatchSetCreatedEvent instance |
| * @param config A ProjectConfig instance for the given event |
| * |
| * @return A MessageGenerator instance capable of generating a message for |
| * a PatchSetCreatedEvent. |
| */ |
| public static MessageGenerator newInstance(PatchSetCreatedEvent event, |
| ProjectConfig config) |
| { |
| PatchSetCreatedMessageGenerator messageGenerator; |
| messageGenerator = new PatchSetCreatedMessageGenerator(event, config); |
| |
| return messageGenerator; |
| } |
| |
| /** |
| * Creates a new MessageGenerator for change merged events. |
| * |
| * @param event A ChangeMergedEvent instance |
| * @param config A ProjectConfig instance for the given event |
| * |
| * @return A MessageGenerator instance capable of generating a message for |
| * a ChangeMergedEvent. |
| */ |
| public static MessageGenerator newInstance(ChangeMergedEvent event, |
| ProjectConfig config) |
| { |
| ChangeMergedMessageGenerator messageGenerator; |
| messageGenerator = new ChangeMergedMessageGenerator(event, config); |
| |
| return messageGenerator; |
| } |
| |
| /** |
| * Creates a new MessageGenerator for comment added events. |
| * |
| * @param event A CommendAddedEvent instance |
| * @param config A ProjectConfig instance for the given event |
| * |
| * @return A MessageGenerator instance capable of generating a message for |
| * a CommendAddedEvent. |
| */ |
| public static MessageGenerator newInstance(CommentAddedEvent event, |
| ProjectConfig config) |
| { |
| CommentAddedMessageGenerator messageGenerator; |
| messageGenerator = new CommentAddedMessageGenerator(event, config); |
| |
| return messageGenerator; |
| } |
| |
| |
| /** |
| * Creates a new MessageGenerator for unsupported events. |
| * |
| * @param event An Event instance |
| * @param config A ProjectConfig instance for the given event |
| * |
| * @return A MessageGenerator instance capable of generating a message for |
| * an unsupported Event. |
| */ |
| public static MessageGenerator newInstance(Event event, |
| ProjectConfig config) |
| { |
| UnsupportedMessageGenerator messageGenerator; |
| messageGenerator = new UnsupportedMessageGenerator(event, config); |
| |
| return messageGenerator; |
| } |
| } |