001package org.apache.archiva.redback.rest.api.model;
002/*
003 * Licensed to the Apache Software Foundation (ASF) under one
004 * or more contributor license agreements.  See the NOTICE file
005 * distributed with this work for additional information
006 * regarding copyright ownership.  The ASF licenses this file
007 * to you under the Apache License, Version 2.0 (the
008 * "License"); you may not use this file except in compliance
009 * with the License.  You may obtain a copy of the License at
010 *
011 *   http://www.apache.org/licenses/LICENSE-2.0
012 *
013 * Unless required by applicable law or agreed to in writing,
014 * software distributed under the License is distributed on an
015 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
016 * KIND, either express or implied.  See the License for the
017 * specific language governing permissions and limitations
018 * under the License.
019 */
020
021import io.swagger.v3.oas.annotations.media.Schema;
022import org.apache.archiva.redback.rest.api.services.RedbackServiceException;
023import org.apache.commons.lang3.StringUtils;
024
025import javax.xml.bind.annotation.XmlRootElement;
026import java.io.Serializable;
027import java.util.ArrayList;
028import java.util.List;
029
030/**
031 * @author Olivier Lamy
032 * @since 1.4
033 */
034@XmlRootElement( name = "redbackRestError" )
035@Schema(name="RedbackRestError", description = "Contains a list of error messages that resulted from the current REST call")
036public class RedbackRestError
037    implements Serializable
038{
039
040    private List<ErrorMessage> errorMessages = new ArrayList<ErrorMessage>( 1 );
041
042    public RedbackRestError()
043    {
044        // no op
045    }
046
047    public RedbackRestError( RedbackServiceException e )
048    {
049        errorMessages.addAll( e.getErrorMessages() );
050        if ( e.getErrorMessages().isEmpty() && StringUtils.isNotEmpty( e.getMessage() ) )
051        {
052            errorMessages.add( new ErrorMessage( e.getMessage(), null ) );
053        }
054    }
055
056    @Schema(name="errorMessages", description = "The list of errors that occurred while processing the REST request")
057    public List<ErrorMessage> getErrorMessages()
058    {
059        return errorMessages;
060    }
061
062    public void setErrorMessages( List<ErrorMessage> errorMessages )
063    {
064        this.errorMessages = errorMessages;
065    }
066
067    public void addErrorMessage( ErrorMessage errorMessage )
068    {
069        this.errorMessages.add( errorMessage );
070    }
071}