Line data Source code
1 : // Copyright (C) 2019 The Android Open Source Project 2 : // 3 : // Licensed under the Apache License, Version 2.0 (the "License"); 4 : // you may not use this file except in compliance with the License. 5 : // You may obtain a copy of the License at 6 : // 7 : // http://www.apache.org/licenses/LICENSE-2.0 8 : // 9 : // Unless required by applicable law or agreed to in writing, software 10 : // distributed under the License is distributed on an "AS IS" BASIS, 11 : // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 : // See the License for the specific language governing permissions and 13 : // limitations under the License. 14 : 15 : package com.google.gerrit.extensions.api.projects; 16 : 17 : import com.google.gerrit.common.Nullable; 18 : import com.google.gerrit.extensions.common.LabelDefinitionInfo; 19 : import com.google.gerrit.extensions.common.LabelDefinitionInput; 20 : import com.google.gerrit.extensions.restapi.NotImplementedException; 21 : import com.google.gerrit.extensions.restapi.RestApiException; 22 : 23 : public interface LabelApi { 24 : LabelApi create(LabelDefinitionInput input) throws RestApiException; 25 : 26 : LabelDefinitionInfo get() throws RestApiException; 27 : 28 : LabelDefinitionInfo update(LabelDefinitionInput input) throws RestApiException; 29 : 30 : default void delete() throws RestApiException { 31 1 : delete(null); 32 1 : } 33 : 34 : void delete(@Nullable String commitMessage) throws RestApiException; 35 : 36 : /** 37 : * A default implementation which allows source compatibility when adding new methods to the 38 : * interface. 39 : */ 40 0 : class NotImplemented implements LabelApi { 41 : @Override 42 : public LabelApi create(LabelDefinitionInput input) throws RestApiException { 43 0 : throw new NotImplementedException(); 44 : } 45 : 46 : @Override 47 : public LabelDefinitionInfo get() throws RestApiException { 48 0 : throw new NotImplementedException(); 49 : } 50 : 51 : @Override 52 : public LabelDefinitionInfo update(LabelDefinitionInput input) throws RestApiException { 53 0 : throw new NotImplementedException(); 54 : } 55 : 56 : @Override 57 : public void delete(@Nullable String commitMessage) throws RestApiException { 58 0 : throw new NotImplementedException(); 59 : } 60 : } 61 : }