com.marvelution.jira.plugins.sonar.service.SonarAssociationManager Maven / Gradle / Ivy
/*
* Licensed to Marvelution under one or more contributor license
* agreements. See the NOTICE file distributed with this work
* for additional information regarding copyright ownership.
* Marvelution licenses this file to you 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.marvelution.jira.plugins.sonar.service;
import java.util.Collection;
/**
* Sonar Server and Project Association Manager Interface
*
* @author Mark Rekveld
*/
public interface SonarAssociationManager {
/**
* Check if any Sonar Server associations are configured
*
* @return true
if there are associations, false
otherwise
* @since 1.1.0
*/
boolean hasSonarAssociations();
/**
* Check if a project has a Sonar Server association
*
* @param projectId the Id of the project to check
* @return true
if the project is associated, false
otherwise
*/
boolean hasSonarAssociation(Long projectId);
/**
* Get the {@link SonarAssociation} for a Jira Project by project Id
*
* @param projectId the Jira projects Id
* @return the {@link SonarAssociation} for the project
*/
SonarAssociation getSonarAssociation(Long projectId);
/**
* Get the {@link Collection} of configured {@link SonarAssociation}s
*
* @return the {@link Collection} of configured {@link SonarAssociation}s
*/
Collection getSonarAssociations();
/**
* Add a Sonar Project Association
*
* @param sonarAssociation the {@link SonarAssociation} to add
*/
void put(SonarAssociation sonarAssociation);
/**
* Remove a Sonar Project Association
*
* @param projectId the project Id of the association to remvoe
*/
void remove(Long projectId);
}