/*
* Copyright (c) MuleSoft, 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 org.raml.model;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.raml.model.parameter.Header;
import org.raml.model.parameter.QueryParameter;
import org.raml.model.parameter.UriParameter;
import org.raml.parser.annotation.Key;
import org.raml.parser.annotation.Mapping;
import org.raml.parser.annotation.Parent;
import org.raml.parser.annotation.Scalar;
import org.raml.parser.annotation.Sequence;
import org.raml.parser.rule.SecurityReferenceSequenceRule;
public class Action
{
@Key
private ActionType type;
@Scalar
private String description;
@Mapping
private Map<String, Header> headers = new HashMap<String, Header>();
@Mapping
private Map<String, QueryParameter> queryParameters = new HashMap<String, QueryParameter>();
@Mapping
private Map<String, MimeType> body = new HashMap<String, MimeType>();
@Mapping
private Map<String, Response> responses = new HashMap<String, Response>();
@Parent
private Resource resource;
@Sequence
private List<String> is = new ArrayList<String>();
@Sequence
private List<Protocol> protocols = new ArrayList<Protocol>();
@Sequence(rule = SecurityReferenceSequenceRule.class)
private List<SecurityReference> securedBy = new ArrayList<SecurityReference>();
@Mapping(rule = org.raml.parser.rule.UriParametersRule.class)
private Map<String, List<UriParameter>> baseUriParameters = new HashMap<String, List<UriParameter>>();
public Action()
{
}
public ActionType getType()
{
return type;
}
public void setType(ActionType type)
{
this.type = type;
}
public String getDescription()
{
return description;
}
public void setDescription(String description)
{
this.description = description;
}
public Map<String, Header> getHeaders()
{
return headers;
}
public void setHeaders(Map<String, Header> headers)
{
this.headers = headers;
}
public Map<String, QueryParameter> getQueryParameters()
{
return queryParameters;
}
public void setQueryParameters(Map<String, QueryParameter> queryParameters)
{
this.queryParameters = queryParameters;
}
public Map<String, MimeType> getBody()
{
return body;
}
public void setBody(Map<String, MimeType> body)
{
this.body = body;
}
public Map<String, Response> getResponses()
{
return responses;
}
public void setResponses(Map<String, Response> responses)
{
this.responses = responses;
}
public Resource getResource()
{
return resource;
}
public void setResource(Resource resource)
{
this.resource = resource;
}
public List<String> getIs()
{
return is;
}
public void setIs(List<String> is)
{
this.is = is;
}
public List<Protocol> getProtocols()
{
return protocols;
}
public void setProtocols(List<Protocol> protocols)
{
this.protocols = protocols;
}
public List<SecurityReference> getSecuredBy()
{
return securedBy;
}
public void setSecuredBy(List<SecurityReference> securedBy)
{
this.securedBy = securedBy;
}
public Map<String, List<UriParameter>> getBaseUriParameters()
{
return baseUriParameters;
}
public void setBaseUriParameters(Map<String, List<UriParameter>> baseUriParameters)
{
this.baseUriParameters = baseUriParameters;
}
@Override
public String toString()
{
return "Action{" +
"type='" + type + '\'' +
", resource=" + (resource != null ? resource.getUri() : "-") + '}';
}
}