<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>CatalogController xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../../apidocs/org/apache/logging/log4j/audit/service/controller/CatalogController.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> * contributor license agreements. See the NOTICE file distributed with</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache license, Version 2.0</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * the License. You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * See the license for the specific language governing permissions and</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * limitations under the license.</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <strong class="jxr_keyword">package</strong> org.apache.logging.log4j.audit.service.controller;
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Type;
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> java.util.Optional;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> javax.annotation.PostConstruct;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> io.swagger.annotations.ApiImplicitParam;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> io.swagger.annotations.ApiImplicitParams;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> io.swagger.annotations.ApiOperation;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> io.swagger.annotations.ApiParam;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.LogManager;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.Logger;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.audit.service.catalog.AuditManager;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.api.Attribute;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.api.Category;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.api.Event;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.api.Product;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.api.Versions;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.jpa.converter.AttributeConverter;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.jpa.converter.AttributeModelConverter;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.jpa.converter.CategoryConverter;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.jpa.converter.CategoryModelConverter;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.jpa.converter.EventConverter;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.jpa.converter.EventModelConverter;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.jpa.converter.ProductConverter;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.jpa.converter.ProductModelConverter;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.jpa.model.AttributeModel;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.jpa.model.CategoryModel;
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.jpa.model.EventModel;
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.jpa.model.ProductModel;
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.jpa.service.AttributeService;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.jpa.service.CategoryService;
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.jpa.service.EventService;
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.catalog.jpa.service.ProductService;
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <strong class="jxr_keyword">import</strong> org.modelmapper.ModelMapper;
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <strong class="jxr_keyword">import</strong> org.modelmapper.TypeToken;
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <strong class="jxr_keyword">import</strong> org.springframework.beans.factory.annotation.Autowired;
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <strong class="jxr_keyword">import</strong> org.springframework.http.HttpStatus;
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <strong class="jxr_keyword">import</strong> org.springframework.http.ResponseEntity;
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <strong class="jxr_keyword">import</strong> org.springframework.web.bind.annotation.DeleteMapping;
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <strong class="jxr_keyword">import</strong> org.springframework.web.bind.annotation.GetMapping;
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <strong class="jxr_keyword">import</strong> org.springframework.web.bind.annotation.PathVariable;
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <strong class="jxr_keyword">import</strong> org.springframework.web.bind.annotation.PostMapping;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  <strong class="jxr_keyword">import</strong> org.springframework.web.bind.annotation.PutMapping;
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  <strong class="jxr_keyword">import</strong> org.springframework.web.bind.annotation.RequestBody;
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  <strong class="jxr_keyword">import</strong> org.springframework.web.bind.annotation.RequestMapping;
<a class="jxr_linenumber" name="L65" href="#L65">65</a>  <strong class="jxr_keyword">import</strong> org.springframework.web.bind.annotation.RequestParam;
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  <strong class="jxr_keyword">import</strong> org.springframework.web.bind.annotation.RestController;
<a class="jxr_linenumber" name="L67" href="#L67">67</a>  
<a class="jxr_linenumber" name="L68" href="#L68">68</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.logging.log4j.catalog.api.constant.Constants.DEFAULT_CATALOG;
<a class="jxr_linenumber" name="L69" href="#L69">69</a>  
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  @RestController
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  @RequestMapping(value = <span class="jxr_string">"/catalog"</span>)
<a class="jxr_linenumber" name="L72" href="#L72">72</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../../org/apache/logging/log4j/audit/service/controller/CatalogController.html">CatalogController</a> {
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  
<a class="jxr_linenumber" name="L74" href="#L74">74</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOGGER = LogManager.getLogger(CatalogController.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  
<a class="jxr_linenumber" name="L76" href="#L76">76</a>      <strong class="jxr_keyword">private</strong> ModelMapper attributeModelMapper = <strong class="jxr_keyword">new</strong> ModelMapper();
<a class="jxr_linenumber" name="L77" href="#L77">77</a>      <strong class="jxr_keyword">private</strong> ModelMapper eventModelMapper = <strong class="jxr_keyword">new</strong> ModelMapper();
<a class="jxr_linenumber" name="L78" href="#L78">78</a>      <strong class="jxr_keyword">private</strong> ModelMapper productModelMapper = <strong class="jxr_keyword">new</strong> ModelMapper();
<a class="jxr_linenumber" name="L79" href="#L79">79</a>      <strong class="jxr_keyword">private</strong> ModelMapper categoryModelMapper = <strong class="jxr_keyword">new</strong> ModelMapper();
<a class="jxr_linenumber" name="L80" href="#L80">80</a>  
<a class="jxr_linenumber" name="L81" href="#L81">81</a>      @Autowired
<a class="jxr_linenumber" name="L82" href="#L82">82</a>      <strong class="jxr_keyword">private</strong> AttributeService attributeService;
<a class="jxr_linenumber" name="L83" href="#L83">83</a>  
<a class="jxr_linenumber" name="L84" href="#L84">84</a>      @Autowired
<a class="jxr_linenumber" name="L85" href="#L85">85</a>      <strong class="jxr_keyword">private</strong> AttributeModelConverter attributeModelConverter;
<a class="jxr_linenumber" name="L86" href="#L86">86</a>  
<a class="jxr_linenumber" name="L87" href="#L87">87</a>      @Autowired
<a class="jxr_linenumber" name="L88" href="#L88">88</a>      <strong class="jxr_keyword">private</strong> AttributeConverter attributeConverter;
<a class="jxr_linenumber" name="L89" href="#L89">89</a>  
<a class="jxr_linenumber" name="L90" href="#L90">90</a>      @Autowired
<a class="jxr_linenumber" name="L91" href="#L91">91</a>      <strong class="jxr_keyword">private</strong> EventService eventService;
<a class="jxr_linenumber" name="L92" href="#L92">92</a>  
<a class="jxr_linenumber" name="L93" href="#L93">93</a>      @Autowired
<a class="jxr_linenumber" name="L94" href="#L94">94</a>      <strong class="jxr_keyword">private</strong> EventModelConverter eventModelConverter;
<a class="jxr_linenumber" name="L95" href="#L95">95</a>  
<a class="jxr_linenumber" name="L96" href="#L96">96</a>      @Autowired
<a class="jxr_linenumber" name="L97" href="#L97">97</a>      <strong class="jxr_keyword">private</strong> EventConverter eventConverter;
<a class="jxr_linenumber" name="L98" href="#L98">98</a>  
<a class="jxr_linenumber" name="L99" href="#L99">99</a>      @Autowired
<a class="jxr_linenumber" name="L100" href="#L100">100</a>     <strong class="jxr_keyword">private</strong> ProductService productService;
<a class="jxr_linenumber" name="L101" href="#L101">101</a> 
<a class="jxr_linenumber" name="L102" href="#L102">102</a>     @Autowired
<a class="jxr_linenumber" name="L103" href="#L103">103</a>     <strong class="jxr_keyword">private</strong> ProductModelConverter productModelConverter;
<a class="jxr_linenumber" name="L104" href="#L104">104</a> 
<a class="jxr_linenumber" name="L105" href="#L105">105</a>     @Autowired
<a class="jxr_linenumber" name="L106" href="#L106">106</a>     <strong class="jxr_keyword">private</strong> ProductConverter productConverter;
<a class="jxr_linenumber" name="L107" href="#L107">107</a> 
<a class="jxr_linenumber" name="L108" href="#L108">108</a>     @Autowired
<a class="jxr_linenumber" name="L109" href="#L109">109</a>     <strong class="jxr_keyword">private</strong> CategoryService categoryService;
<a class="jxr_linenumber" name="L110" href="#L110">110</a> 
<a class="jxr_linenumber" name="L111" href="#L111">111</a>     @Autowired
<a class="jxr_linenumber" name="L112" href="#L112">112</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../../org/apache/logging/log4j/audit/service/catalog/AuditManager.html">AuditManager</a> auditManager;
<a class="jxr_linenumber" name="L113" href="#L113">113</a> 
<a class="jxr_linenumber" name="L114" href="#L114">114</a>     @Autowired
<a class="jxr_linenumber" name="L115" href="#L115">115</a>     <strong class="jxr_keyword">private</strong> CategoryModelConverter categoryModelConverter;
<a class="jxr_linenumber" name="L116" href="#L116">116</a> 
<a class="jxr_linenumber" name="L117" href="#L117">117</a>     @Autowired
<a class="jxr_linenumber" name="L118" href="#L118">118</a>     <strong class="jxr_keyword">private</strong> CategoryConverter categoryConverter;
<a class="jxr_linenumber" name="L119" href="#L119">119</a> 
<a class="jxr_linenumber" name="L120" href="#L120">120</a>     @PostConstruct
<a class="jxr_linenumber" name="L121" href="#L121">121</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> init() {
<a class="jxr_linenumber" name="L122" href="#L122">122</a>         attributeModelMapper.addConverter(attributeModelConverter);
<a class="jxr_linenumber" name="L123" href="#L123">123</a>         eventModelMapper.addConverter(eventModelConverter);
<a class="jxr_linenumber" name="L124" href="#L124">124</a>         productModelMapper.addConverter(productModelConverter);
<a class="jxr_linenumber" name="L125" href="#L125">125</a>         categoryModelMapper.addConverter(categoryModelConverter);
<a class="jxr_linenumber" name="L126" href="#L126">126</a>     }
<a class="jxr_linenumber" name="L127" href="#L127">127</a> 
<a class="jxr_linenumber" name="L128" href="#L128">128</a>     @ApiImplicitParams( {@ApiImplicitParam(dataType = <span class="jxr_string">"String"</span>, name = <span class="jxr_string">"Authorization"</span>, paramType = <span class="jxr_string">"header"</span>)})
<a class="jxr_linenumber" name="L129" href="#L129">129</a>     @ApiOperation(value = <span class="jxr_string">"List catalog Attributes"</span>, notes = <span class="jxr_string">"List catalog attributes for a catalog id"</span>, tags = {<span class="jxr_string">"Catalog"</span>})
<a class="jxr_linenumber" name="L130" href="#L130">130</a>     @GetMapping(value = <span class="jxr_string">"{catalogId}/attributes"</span>)
<a class="jxr_linenumber" name="L131" href="#L131">131</a>     <strong class="jxr_keyword">public</strong> ResponseEntity&lt;List&lt;Attribute&gt;&gt; getAttributes(@ApiParam(value = <span class="jxr_string">"catalog id"</span>, required = <strong class="jxr_keyword">true</strong>) @PathVariable String catalogId,
<a class="jxr_linenumber" name="L132" href="#L132">132</a>                                                          @RequestParam(value = <span class="jxr_string">"startIndex"</span>, required = false) Integer startIndex,
<a class="jxr_linenumber" name="L133" href="#L133">133</a>                                                          @RequestParam(value = <span class="jxr_string">"pageSize"</span>, required = false) Integer pageSize,
<a class="jxr_linenumber" name="L134" href="#L134">134</a>                                                          @RequestParam(value = <span class="jxr_string">"sortCol"</span>, required= false) String sortColumn,
<a class="jxr_linenumber" name="L135" href="#L135">135</a>                                                          @RequestParam(value = <span class="jxr_string">"sortDir"</span>, required = false) String sortDirection) {
<a class="jxr_linenumber" name="L136" href="#L136">136</a>         Type listType = <strong class="jxr_keyword">new</strong> TypeToken&lt;List&lt;Attribute&gt;&gt;() {
<a class="jxr_linenumber" name="L137" href="#L137">137</a>         }.getType();
<a class="jxr_linenumber" name="L138" href="#L138">138</a>         List&lt;Attribute&gt; attributes = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L139" href="#L139">139</a>         <strong class="jxr_keyword">if</strong> (startIndex == <strong class="jxr_keyword">null</strong> || pageSize == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L140" href="#L140">140</a>             attributes = attributeModelMapper.map(attributeService.getAttributes(catalogId), listType);
<a class="jxr_linenumber" name="L141" href="#L141">141</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L142" href="#L142">142</a>             sortDirection = validateSortDirection(sortDirection);
<a class="jxr_linenumber" name="L143" href="#L143">143</a>             <strong class="jxr_keyword">if</strong> (sortColumn == <strong class="jxr_keyword">null</strong> || sortColumn.length() == 0) {
<a class="jxr_linenumber" name="L144" href="#L144">144</a>                 sortColumn = <span class="jxr_string">"name"</span>;
<a class="jxr_linenumber" name="L145" href="#L145">145</a>             }
<a class="jxr_linenumber" name="L146" href="#L146">146</a>             <strong class="jxr_keyword">int</strong> startPage = 0;
<a class="jxr_linenumber" name="L147" href="#L147">147</a>             <strong class="jxr_keyword">if</strong> (startIndex &gt; 0) {
<a class="jxr_linenumber" name="L148" href="#L148">148</a>                 startPage = startIndex / pageSize;
<a class="jxr_linenumber" name="L149" href="#L149">149</a>             }
<a class="jxr_linenumber" name="L150" href="#L150">150</a>             attributes = attributeModelMapper.map(attributeService.getAttributes(startPage, pageSize, sortColumn,
<a class="jxr_linenumber" name="L151" href="#L151">151</a>                     sortDirection), listType);
<a class="jxr_linenumber" name="L152" href="#L152">152</a>         }
<a class="jxr_linenumber" name="L153" href="#L153">153</a>         <strong class="jxr_keyword">if</strong> (attributes == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L154" href="#L154">154</a>             attributes = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L155" href="#L155">155</a>         }
<a class="jxr_linenumber" name="L156" href="#L156">156</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(attributes, HttpStatus.OK);
<a class="jxr_linenumber" name="L157" href="#L157">157</a>     }
<a class="jxr_linenumber" name="L158" href="#L158">158</a> 
<a class="jxr_linenumber" name="L159" href="#L159">159</a>     @ApiImplicitParams( {@ApiImplicitParam(dataType = <span class="jxr_string">"String"</span>, name = <span class="jxr_string">"Authorization"</span>, paramType = <span class="jxr_string">"header"</span>)})
<a class="jxr_linenumber" name="L160" href="#L160">160</a>     @ApiOperation(value = <span class="jxr_string">"Create a catalog Attribute"</span>, notes = <span class="jxr_string">"Returns a catalog attribute"</span>, tags = {<span class="jxr_string">"Catalog"</span>})
<a class="jxr_linenumber" name="L161" href="#L161">161</a>     @GetMapping(value = <span class="jxr_string">"{catalogId}/attribute/{name}"</span>)
<a class="jxr_linenumber" name="L162" href="#L162">162</a>     <strong class="jxr_keyword">public</strong> ResponseEntity&lt;Attribute&gt; getAttribute(@ApiParam(value = <span class="jxr_string">"catalog id"</span>, required = <strong class="jxr_keyword">true</strong>) @PathVariable String catalogId,
<a class="jxr_linenumber" name="L163" href="#L163">163</a>                                                          @ApiParam(value = <span class="jxr_string">"attribute name"</span>, required = <strong class="jxr_keyword">true</strong>) @PathVariable String name) {
<a class="jxr_linenumber" name="L164" href="#L164">164</a>         Optional&lt;AttributeModel&gt; optional = attributeService.getAttribute(catalogId, name);
<a class="jxr_linenumber" name="L165" href="#L165">165</a>         <strong class="jxr_keyword">if</strong> (!optional.isPresent()) {
<a class="jxr_linenumber" name="L166" href="#L166">166</a>             LOGGER.warn(<span class="jxr_string">"Unable to locate attribute {} in catalog {}"</span>, name, catalogId);
<a class="jxr_linenumber" name="L167" href="#L167">167</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(HttpStatus.NOT_FOUND);
<a class="jxr_linenumber" name="L168" href="#L168">168</a>         }
<a class="jxr_linenumber" name="L169" href="#L169">169</a>         Attribute attribute = attributeModelConverter.convert(optional.get());
<a class="jxr_linenumber" name="L170" href="#L170">170</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(attribute, HttpStatus.OK);
<a class="jxr_linenumber" name="L171" href="#L171">171</a>     }
<a class="jxr_linenumber" name="L172" href="#L172">172</a> 
<a class="jxr_linenumber" name="L173" href="#L173">173</a> 
<a class="jxr_linenumber" name="L174" href="#L174">174</a> 
<a class="jxr_linenumber" name="L175" href="#L175">175</a>     @ApiImplicitParams( {@ApiImplicitParam(dataType = <span class="jxr_string">"String"</span>, name = <span class="jxr_string">"Authorization"</span>, paramType = <span class="jxr_string">"header"</span>)})
<a class="jxr_linenumber" name="L176" href="#L176">176</a>     @ApiOperation(value = <span class="jxr_string">"Create a catalog Attribute"</span>, notes = <span class="jxr_string">"Creates a catalog attribute"</span>, tags = {<span class="jxr_string">"Catalog"</span>})
<a class="jxr_linenumber" name="L177" href="#L177">177</a>     @PostMapping(value = <span class="jxr_string">"/attribute"</span>, consumes=Versions.V1_0_VALUE, produces=Versions.V1_0_VALUE)
<a class="jxr_linenumber" name="L178" href="#L178">178</a>     <strong class="jxr_keyword">public</strong> ResponseEntity&lt;Attribute&gt; createAttribute(@ApiParam(value = <span class="jxr_string">"attribute"</span>, required = <strong class="jxr_keyword">true</strong>) @RequestBody Attribute attribute) {
<a class="jxr_linenumber" name="L179" href="#L179">179</a>         <strong class="jxr_keyword">if</strong> (attribute.getCatalogId() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L180" href="#L180">180</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"A catalog id is required."</span>);
<a class="jxr_linenumber" name="L181" href="#L181">181</a>         }
<a class="jxr_linenumber" name="L182" href="#L182">182</a>         <strong class="jxr_keyword">if</strong> (DEFAULT_CATALOG.equals(attribute.getCatalogId())) {
<a class="jxr_linenumber" name="L183" href="#L183">183</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"The default catalog cannot be modified at run time."</span>);
<a class="jxr_linenumber" name="L184" href="#L184">184</a>         }
<a class="jxr_linenumber" name="L185" href="#L185">185</a>         AttributeModel model;
<a class="jxr_linenumber" name="L186" href="#L186">186</a>         <strong class="jxr_keyword">synchronized</strong>(<strong class="jxr_keyword">this</strong>) {
<a class="jxr_linenumber" name="L187" href="#L187">187</a>             Optional&lt;AttributeModel&gt; opt = attributeService.getAttribute(attribute.getCatalogId(), attribute.getName());
<a class="jxr_linenumber" name="L188" href="#L188">188</a>             <strong class="jxr_keyword">if</strong> (opt != <strong class="jxr_keyword">null</strong> &amp;&amp; opt.isPresent()) {
<a class="jxr_linenumber" name="L189" href="#L189">189</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(
<a class="jxr_linenumber" name="L190" href="#L190">190</a>                     <span class="jxr_string">"An attribute named "</span> + attribute.getName() + <span class="jxr_string">" in catalog "</span> + attribute.getCatalogId() + <span class="jxr_string">" already exists"</span>);
<a class="jxr_linenumber" name="L191" href="#L191">191</a>             }
<a class="jxr_linenumber" name="L192" href="#L192">192</a>             model = attributeService.saveAttribute(attributeConverter.convert(attribute));
<a class="jxr_linenumber" name="L193" href="#L193">193</a>             auditManager.saveAttribute(attribute);
<a class="jxr_linenumber" name="L194" href="#L194">194</a>         }
<a class="jxr_linenumber" name="L195" href="#L195">195</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(attributeModelConverter.convert(model), HttpStatus.CREATED);
<a class="jxr_linenumber" name="L196" href="#L196">196</a>     }
<a class="jxr_linenumber" name="L197" href="#L197">197</a> 
<a class="jxr_linenumber" name="L198" href="#L198">198</a>     @ApiImplicitParams( {@ApiImplicitParam(dataType = <span class="jxr_string">"String"</span>, name = <span class="jxr_string">"Authorization"</span>, paramType = <span class="jxr_string">"header"</span>)})
<a class="jxr_linenumber" name="L199" href="#L199">199</a>     @ApiOperation(value = <span class="jxr_string">"Update a catalog Attribute"</span>, notes = <span class="jxr_string">"Updates a catalog attribute"</span>, tags = {<span class="jxr_string">"Catalog"</span>})
<a class="jxr_linenumber" name="L200" href="#L200">200</a>     @PutMapping(value = <span class="jxr_string">"/attribute"</span>, consumes=Versions.V1_0_VALUE, produces=Versions.V1_0_VALUE)
<a class="jxr_linenumber" name="L201" href="#L201">201</a>     <strong class="jxr_keyword">public</strong> ResponseEntity&lt;Attribute&gt; updateAttribute(@ApiParam(value = <span class="jxr_string">"attribute"</span>, required = <strong class="jxr_keyword">true</strong>) @RequestBody Attribute attribute) {
<a class="jxr_linenumber" name="L202" href="#L202">202</a>         <strong class="jxr_keyword">if</strong> (attribute.getId() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L203" href="#L203">203</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"An Attribute must have an id to be updated."</span>);
<a class="jxr_linenumber" name="L204" href="#L204">204</a>         }
<a class="jxr_linenumber" name="L205" href="#L205">205</a>         <strong class="jxr_keyword">if</strong> (attribute.getCatalogId() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L206" href="#L206">206</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"A catalog id is required in the Attribute."</span>);
<a class="jxr_linenumber" name="L207" href="#L207">207</a>         }
<a class="jxr_linenumber" name="L208" href="#L208">208</a>         <strong class="jxr_keyword">if</strong> (DEFAULT_CATALOG.equals(attribute.getCatalogId())) {
<a class="jxr_linenumber" name="L209" href="#L209">209</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"The default catalog cannot be modified at run time."</span>);
<a class="jxr_linenumber" name="L210" href="#L210">210</a>         }
<a class="jxr_linenumber" name="L211" href="#L211">211</a>         AttributeModel model = attributeConverter.convert(attribute);
<a class="jxr_linenumber" name="L212" href="#L212">212</a>         model = attributeService.saveAttribute(model);
<a class="jxr_linenumber" name="L213" href="#L213">213</a>         auditManager.saveAttribute(attribute);
<a class="jxr_linenumber" name="L214" href="#L214">214</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(attributeModelConverter.convert(model), HttpStatus.OK);
<a class="jxr_linenumber" name="L215" href="#L215">215</a>     }
<a class="jxr_linenumber" name="L216" href="#L216">216</a> 
<a class="jxr_linenumber" name="L217" href="#L217">217</a>     @ApiImplicitParams( {@ApiImplicitParam(dataType = <span class="jxr_string">"String"</span>, name = <span class="jxr_string">"Authorization"</span>, paramType = <span class="jxr_string">"header"</span>)})
<a class="jxr_linenumber" name="L218" href="#L218">218</a>     @ApiOperation(value = <span class="jxr_string">"Deletes a catalog Attribute"</span>, notes = <span class="jxr_string">"Deletes a catalog attribute"</span>, tags = {<span class="jxr_string">"Catalog"</span>})
<a class="jxr_linenumber" name="L219" href="#L219">219</a>     @DeleteMapping(value = <span class="jxr_string">"/attribute/{id}"</span>)
<a class="jxr_linenumber" name="L220" href="#L220">220</a>     <strong class="jxr_keyword">public</strong> ResponseEntity&lt;?&gt; deleteAttribute(@RequestParam(<span class="jxr_string">"id"</span>) Long attributeId) {
<a class="jxr_linenumber" name="L221" href="#L221">221</a>         <strong class="jxr_keyword">synchronized</strong> (<strong class="jxr_keyword">this</strong>) {
<a class="jxr_linenumber" name="L222" href="#L222">222</a>             Optional&lt;AttributeModel&gt; opt = attributeService.getAttribute(attributeId);
<a class="jxr_linenumber" name="L223" href="#L223">223</a>             <strong class="jxr_keyword">if</strong> (opt.isPresent()) {
<a class="jxr_linenumber" name="L224" href="#L224">224</a>                 attributeService.deleteAttribute(attributeId);
<a class="jxr_linenumber" name="L225" href="#L225">225</a>             }
<a class="jxr_linenumber" name="L226" href="#L226">226</a>         }
<a class="jxr_linenumber" name="L227" href="#L227">227</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(HttpStatus.OK);
<a class="jxr_linenumber" name="L228" href="#L228">228</a>     }
<a class="jxr_linenumber" name="L229" href="#L229">229</a> 
<a class="jxr_linenumber" name="L230" href="#L230">230</a>     @ApiImplicitParams( {@ApiImplicitParam(dataType = <span class="jxr_string">"String"</span>, name = <span class="jxr_string">"Authorization"</span>, paramType = <span class="jxr_string">"header"</span>)})
<a class="jxr_linenumber" name="L231" href="#L231">231</a>     @ApiOperation(value = <span class="jxr_string">"List catalog Events"</span>, notes = <span class="jxr_string">"Lists catalog events for a catalog id"</span>, tags = {<span class="jxr_string">"Catalog"</span>})
<a class="jxr_linenumber" name="L232" href="#L232">232</a>     @GetMapping(value = <span class="jxr_string">"{catalogId}/events"</span>)
<a class="jxr_linenumber" name="L233" href="#L233">233</a>     <strong class="jxr_keyword">public</strong> ResponseEntity&lt;List&lt;Event&gt;&gt; getEvents(@ApiParam(value = <span class="jxr_string">"catalog id"</span>, required = <strong class="jxr_keyword">true</strong>) @PathVariable String catalogId,
<a class="jxr_linenumber" name="L234" href="#L234">234</a>                                                          @RequestParam(value = <span class="jxr_string">"startIndex"</span>, required = false) Integer startIndex,
<a class="jxr_linenumber" name="L235" href="#L235">235</a>                                                          @RequestParam(value = <span class="jxr_string">"pageSize"</span>, required = false) Integer pageSize,
<a class="jxr_linenumber" name="L236" href="#L236">236</a>                                                          @RequestParam(value = <span class="jxr_string">"sortCol"</span>, required= false) String sortColumn,
<a class="jxr_linenumber" name="L237" href="#L237">237</a>                                                          @RequestParam(value = <span class="jxr_string">"sortDir"</span>, required = false) String sortDirection) {
<a class="jxr_linenumber" name="L238" href="#L238">238</a>         Type listType = <strong class="jxr_keyword">new</strong> TypeToken&lt;List&lt;Event&gt;&gt;() {}.getType();
<a class="jxr_linenumber" name="L239" href="#L239">239</a>         List&lt;Event&gt; events = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L240" href="#L240">240</a>         <strong class="jxr_keyword">if</strong> (startIndex == <strong class="jxr_keyword">null</strong> || pageSize == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L241" href="#L241">241</a>             events = eventModelMapper.map(eventService.getEvents(catalogId), listType);
<a class="jxr_linenumber" name="L242" href="#L242">242</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L243" href="#L243">243</a>             sortDirection = validateSortDirection(sortDirection);
<a class="jxr_linenumber" name="L244" href="#L244">244</a>             <strong class="jxr_keyword">if</strong> (sortColumn == <strong class="jxr_keyword">null</strong> || sortColumn.length() == 0) {
<a class="jxr_linenumber" name="L245" href="#L245">245</a>                 sortColumn = <span class="jxr_string">"name"</span>;
<a class="jxr_linenumber" name="L246" href="#L246">246</a>             }
<a class="jxr_linenumber" name="L247" href="#L247">247</a>             <strong class="jxr_keyword">int</strong> startPage = 0;
<a class="jxr_linenumber" name="L248" href="#L248">248</a>             <strong class="jxr_keyword">if</strong> (startIndex &gt; 0) {
<a class="jxr_linenumber" name="L249" href="#L249">249</a>                 startPage = startIndex / pageSize;
<a class="jxr_linenumber" name="L250" href="#L250">250</a>             }
<a class="jxr_linenumber" name="L251" href="#L251">251</a>             events = eventModelMapper.map(eventService.getEvents(startPage, pageSize, sortColumn,
<a class="jxr_linenumber" name="L252" href="#L252">252</a>                     sortDirection), listType);
<a class="jxr_linenumber" name="L253" href="#L253">253</a>         }
<a class="jxr_linenumber" name="L254" href="#L254">254</a>         <strong class="jxr_keyword">if</strong> (events == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L255" href="#L255">255</a>             events = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L256" href="#L256">256</a>         }
<a class="jxr_linenumber" name="L257" href="#L257">257</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(events, HttpStatus.OK);
<a class="jxr_linenumber" name="L258" href="#L258">258</a>     }
<a class="jxr_linenumber" name="L259" href="#L259">259</a> 
<a class="jxr_linenumber" name="L260" href="#L260">260</a>     @ApiImplicitParams( {@ApiImplicitParam(dataType = <span class="jxr_string">"String"</span>, name = <span class="jxr_string">"Authorization"</span>, paramType = <span class="jxr_string">"header"</span>)})
<a class="jxr_linenumber" name="L261" href="#L261">261</a>     @ApiOperation(value = <span class="jxr_string">"Create a catalog Event"</span>, notes = <span class="jxr_string">"Creates a catalog event"</span>, tags = {<span class="jxr_string">"Catalog"</span>})
<a class="jxr_linenumber" name="L262" href="#L262">262</a>     @PostMapping(value = <span class="jxr_string">"/event"</span>, consumes=Versions.V1_0_VALUE, produces=Versions.V1_0_VALUE)
<a class="jxr_linenumber" name="L263" href="#L263">263</a>     <strong class="jxr_keyword">public</strong> ResponseEntity&lt;Event&gt; createEvent(@ApiParam(value = <span class="jxr_string">"event"</span>, required = <strong class="jxr_keyword">true</strong>) @RequestBody Event event) {
<a class="jxr_linenumber" name="L264" href="#L264">264</a>         <strong class="jxr_keyword">if</strong> (event.getCatalogId() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L265" href="#L265">265</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"A catalog id is required to create an event."</span>);
<a class="jxr_linenumber" name="L266" href="#L266">266</a>         }
<a class="jxr_linenumber" name="L267" href="#L267">267</a>         <strong class="jxr_keyword">if</strong> (DEFAULT_CATALOG.equals(event.getCatalogId())) {
<a class="jxr_linenumber" name="L268" href="#L268">268</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"The default catalog cannot be modified at run time."</span>);
<a class="jxr_linenumber" name="L269" href="#L269">269</a>         }
<a class="jxr_linenumber" name="L270" href="#L270">270</a>         EventModel model;
<a class="jxr_linenumber" name="L271" href="#L271">271</a>         <strong class="jxr_keyword">synchronized</strong>(<strong class="jxr_keyword">this</strong>) {
<a class="jxr_linenumber" name="L272" href="#L272">272</a>             Optional&lt;EventModel&gt; opt = eventService.getEvent(event.getCatalogId(), event.getName());
<a class="jxr_linenumber" name="L273" href="#L273">273</a>             <strong class="jxr_keyword">if</strong> (opt != <strong class="jxr_keyword">null</strong> &amp;&amp; opt.isPresent()) {
<a class="jxr_linenumber" name="L274" href="#L274">274</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(
<a class="jxr_linenumber" name="L275" href="#L275">275</a>                     <span class="jxr_string">"An event named "</span> + event.getName() + <span class="jxr_string">" in catalog "</span> + event.getCatalogId() + <span class="jxr_string">" already exists"</span>);
<a class="jxr_linenumber" name="L276" href="#L276">276</a>             }
<a class="jxr_linenumber" name="L277" href="#L277">277</a>             model = auditManager.saveEvent(event);
<a class="jxr_linenumber" name="L278" href="#L278">278</a>         }
<a class="jxr_linenumber" name="L279" href="#L279">279</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(eventModelConverter.convert(model), HttpStatus.CREATED);
<a class="jxr_linenumber" name="L280" href="#L280">280</a>     }
<a class="jxr_linenumber" name="L281" href="#L281">281</a> 
<a class="jxr_linenumber" name="L282" href="#L282">282</a>     @ApiImplicitParams( {@ApiImplicitParam(dataType = <span class="jxr_string">"String"</span>, name = <span class="jxr_string">"Authorization"</span>, paramType = <span class="jxr_string">"header"</span>)})
<a class="jxr_linenumber" name="L283" href="#L283">283</a>     @ApiOperation(value = <span class="jxr_string">"Update a catalog Event"</span>, notes = <span class="jxr_string">"Updates a catalog event"</span>, tags = {<span class="jxr_string">"Catalog"</span>})
<a class="jxr_linenumber" name="L284" href="#L284">284</a>     @PutMapping(value = <span class="jxr_string">"/event"</span>, consumes=Versions.V1_0_VALUE, produces=Versions.V1_0_VALUE)
<a class="jxr_linenumber" name="L285" href="#L285">285</a>     <strong class="jxr_keyword">public</strong> ResponseEntity&lt;Event&gt; updateEvent(@ApiParam(value = <span class="jxr_string">"event"</span>, required = <strong class="jxr_keyword">true</strong>) @RequestBody Event event) {
<a class="jxr_linenumber" name="L286" href="#L286">286</a>         <strong class="jxr_keyword">if</strong> (event.getCatalogId() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L287" href="#L287">287</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"A catalog id is required to update an event."</span>);
<a class="jxr_linenumber" name="L288" href="#L288">288</a>         }
<a class="jxr_linenumber" name="L289" href="#L289">289</a>         <strong class="jxr_keyword">if</strong> (DEFAULT_CATALOG.equals(event.getCatalogId())) {
<a class="jxr_linenumber" name="L290" href="#L290">290</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"The default catalog cannot be modified at run time."</span>);
<a class="jxr_linenumber" name="L291" href="#L291">291</a>         }
<a class="jxr_linenumber" name="L292" href="#L292">292</a>         EventModel model;
<a class="jxr_linenumber" name="L293" href="#L293">293</a>         <strong class="jxr_keyword">synchronized</strong>(<strong class="jxr_keyword">this</strong>) {
<a class="jxr_linenumber" name="L294" href="#L294">294</a>             model = eventConverter.convert(event);
<a class="jxr_linenumber" name="L295" href="#L295">295</a>             model = eventService.saveEvent(model);
<a class="jxr_linenumber" name="L296" href="#L296">296</a>         }
<a class="jxr_linenumber" name="L297" href="#L297">297</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(eventModelConverter.convert(model), HttpStatus.OK);
<a class="jxr_linenumber" name="L298" href="#L298">298</a>     }
<a class="jxr_linenumber" name="L299" href="#L299">299</a> 
<a class="jxr_linenumber" name="L300" href="#L300">300</a>     @ApiImplicitParams( {@ApiImplicitParam(dataType = <span class="jxr_string">"String"</span>, name = <span class="jxr_string">"Authorization"</span>, paramType = <span class="jxr_string">"header"</span>)})
<a class="jxr_linenumber" name="L301" href="#L301">301</a>     @ApiOperation(value = <span class="jxr_string">"Deletes a catalog event"</span>, notes = <span class="jxr_string">"Deletes a catalog event"</span>, tags = {<span class="jxr_string">"Catalog"</span>})
<a class="jxr_linenumber" name="L302" href="#L302">302</a>     @DeleteMapping(value = <span class="jxr_string">"/event/{id}"</span>)
<a class="jxr_linenumber" name="L303" href="#L303">303</a>     <strong class="jxr_keyword">public</strong> ResponseEntity&lt;?&gt; deleteEvent(@RequestParam(<span class="jxr_string">"id"</span>) Long eventId) {
<a class="jxr_linenumber" name="L304" href="#L304">304</a>         eventService.deleteEvent(eventId);
<a class="jxr_linenumber" name="L305" href="#L305">305</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(HttpStatus.OK);
<a class="jxr_linenumber" name="L306" href="#L306">306</a>     }
<a class="jxr_linenumber" name="L307" href="#L307">307</a> 
<a class="jxr_linenumber" name="L308" href="#L308">308</a>     @ApiImplicitParams( {@ApiImplicitParam(dataType = <span class="jxr_string">"String"</span>, name = <span class="jxr_string">"Authorization"</span>, paramType = <span class="jxr_string">"header"</span>)})
<a class="jxr_linenumber" name="L309" href="#L309">309</a>     @ApiOperation(value = <span class="jxr_string">"List catalog Products"</span>, notes = <span class="jxr_string">"Lists catalog products for a catalog id"</span>, tags = {<span class="jxr_string">"Catalog"</span>})
<a class="jxr_linenumber" name="L310" href="#L310">310</a>     @GetMapping(value = <span class="jxr_string">"{catalogId}/products"</span>)
<a class="jxr_linenumber" name="L311" href="#L311">311</a>     <strong class="jxr_keyword">public</strong> ResponseEntity&lt;List&lt;Product&gt;&gt; getProducts(@ApiParam(value = <span class="jxr_string">"catalog id"</span>, required = <strong class="jxr_keyword">true</strong>) @PathVariable String catalogId,
<a class="jxr_linenumber" name="L312" href="#L312">312</a>                                                  @RequestParam(value = <span class="jxr_string">"startIndex"</span>, required = false) Integer startIndex,
<a class="jxr_linenumber" name="L313" href="#L313">313</a>                                                  @RequestParam(value = <span class="jxr_string">"pageSize"</span>, required = false) Integer pageSize,
<a class="jxr_linenumber" name="L314" href="#L314">314</a>                                                  @RequestParam(value = <span class="jxr_string">"sortCol"</span>, required= false) String sortColumn,
<a class="jxr_linenumber" name="L315" href="#L315">315</a>                                                  @RequestParam(value = <span class="jxr_string">"sortDir"</span>, required = false) String sortDirection) {
<a class="jxr_linenumber" name="L316" href="#L316">316</a>         Type listType = <strong class="jxr_keyword">new</strong> TypeToken&lt;List&lt;Product&gt;&gt;() {}.getType();
<a class="jxr_linenumber" name="L317" href="#L317">317</a>         List&lt;Product&gt; products = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L318" href="#L318">318</a>         <strong class="jxr_keyword">if</strong> (startIndex == <strong class="jxr_keyword">null</strong> || pageSize == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L319" href="#L319">319</a>             products = productModelMapper.map(productService.getProducts(catalogId), listType);
<a class="jxr_linenumber" name="L320" href="#L320">320</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L321" href="#L321">321</a>             sortDirection = validateSortDirection(sortDirection);
<a class="jxr_linenumber" name="L322" href="#L322">322</a>             <strong class="jxr_keyword">if</strong> (sortColumn == <strong class="jxr_keyword">null</strong> || sortColumn.length() == 0) {
<a class="jxr_linenumber" name="L323" href="#L323">323</a>                 sortColumn = <span class="jxr_string">"name"</span>;
<a class="jxr_linenumber" name="L324" href="#L324">324</a>             }
<a class="jxr_linenumber" name="L325" href="#L325">325</a>             <strong class="jxr_keyword">int</strong> startPage = 0;
<a class="jxr_linenumber" name="L326" href="#L326">326</a>             <strong class="jxr_keyword">if</strong> (startIndex &gt; 0) {
<a class="jxr_linenumber" name="L327" href="#L327">327</a>                 startPage = startIndex / pageSize;
<a class="jxr_linenumber" name="L328" href="#L328">328</a>             }
<a class="jxr_linenumber" name="L329" href="#L329">329</a>             products = productModelMapper.map(productService.getProducts(startPage, pageSize, sortColumn,
<a class="jxr_linenumber" name="L330" href="#L330">330</a>                     sortDirection), listType);
<a class="jxr_linenumber" name="L331" href="#L331">331</a>         }
<a class="jxr_linenumber" name="L332" href="#L332">332</a>         <strong class="jxr_keyword">if</strong> (products == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L333" href="#L333">333</a>             products = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L334" href="#L334">334</a>         }
<a class="jxr_linenumber" name="L335" href="#L335">335</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(products, HttpStatus.OK);
<a class="jxr_linenumber" name="L336" href="#L336">336</a>     }
<a class="jxr_linenumber" name="L337" href="#L337">337</a> 
<a class="jxr_linenumber" name="L338" href="#L338">338</a>     @ApiImplicitParams( {@ApiImplicitParam(dataType = <span class="jxr_string">"String"</span>, name = <span class="jxr_string">"Authorization"</span>, paramType = <span class="jxr_string">"header"</span>)})
<a class="jxr_linenumber" name="L339" href="#L339">339</a>     @ApiOperation(value = <span class="jxr_string">"Create a catalog Product"</span>, notes = <span class="jxr_string">"Creates a catalog product"</span>, tags = {<span class="jxr_string">"Catalog"</span>})
<a class="jxr_linenumber" name="L340" href="#L340">340</a>     @PostMapping(value = <span class="jxr_string">"/product"</span>, consumes=Versions.V1_0_VALUE, produces=Versions.V1_0_VALUE)
<a class="jxr_linenumber" name="L341" href="#L341">341</a>     <strong class="jxr_keyword">public</strong> ResponseEntity&lt;Product&gt; createProduct(@ApiParam(value = <span class="jxr_string">"product"</span>, required = <strong class="jxr_keyword">true</strong>) @RequestBody Product product) {
<a class="jxr_linenumber" name="L342" href="#L342">342</a>         <strong class="jxr_keyword">if</strong> (product.getCatalogId() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L343" href="#L343">343</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"A catalog id is required to create a product."</span>);
<a class="jxr_linenumber" name="L344" href="#L344">344</a>         }
<a class="jxr_linenumber" name="L345" href="#L345">345</a>         <strong class="jxr_keyword">if</strong> (DEFAULT_CATALOG.equals(product.getCatalogId())) {
<a class="jxr_linenumber" name="L346" href="#L346">346</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"The default catalog cannot be modified at run time."</span>);
<a class="jxr_linenumber" name="L347" href="#L347">347</a>         }
<a class="jxr_linenumber" name="L348" href="#L348">348</a>         Optional&lt;ProductModel&gt; opt = productService.getProduct(product.getCatalogId(), product.getName());
<a class="jxr_linenumber" name="L349" href="#L349">349</a>         <strong class="jxr_keyword">if</strong> (opt != <strong class="jxr_keyword">null</strong> &amp;&amp; opt.isPresent()) {
<a class="jxr_linenumber" name="L350" href="#L350">350</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"A product named "</span>+ product.getName() + <span class="jxr_string">" in catalog "</span> +
<a class="jxr_linenumber" name="L351" href="#L351">351</a>                     product.getCatalogId() + <span class="jxr_string">" already exists"</span>);
<a class="jxr_linenumber" name="L352" href="#L352">352</a>         }
<a class="jxr_linenumber" name="L353" href="#L353">353</a>         ProductModel model = productConverter.convert(product);
<a class="jxr_linenumber" name="L354" href="#L354">354</a>         model = productService.saveProduct(model);
<a class="jxr_linenumber" name="L355" href="#L355">355</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(productModelConverter.convert(model), HttpStatus.CREATED);
<a class="jxr_linenumber" name="L356" href="#L356">356</a>     }
<a class="jxr_linenumber" name="L357" href="#L357">357</a> 
<a class="jxr_linenumber" name="L358" href="#L358">358</a>     @ApiImplicitParams( {@ApiImplicitParam(dataType = <span class="jxr_string">"String"</span>, name = <span class="jxr_string">"Authorization"</span>, paramType = <span class="jxr_string">"header"</span>)})
<a class="jxr_linenumber" name="L359" href="#L359">359</a>     @ApiOperation(value = <span class="jxr_string">"Update a catalog Product"</span>, notes = <span class="jxr_string">"Updates a catalog event"</span>, tags = {<span class="jxr_string">"Catalog"</span>})
<a class="jxr_linenumber" name="L360" href="#L360">360</a>     @PutMapping(value = <span class="jxr_string">"/product"</span>, consumes=Versions.V1_0_VALUE, produces=Versions.V1_0_VALUE)
<a class="jxr_linenumber" name="L361" href="#L361">361</a>     <strong class="jxr_keyword">public</strong> ResponseEntity&lt;Product&gt; updateProduct(@ApiParam(value = <span class="jxr_string">"product"</span>, required = <strong class="jxr_keyword">true</strong>) @RequestBody Product product) {
<a class="jxr_linenumber" name="L362" href="#L362">362</a>         <strong class="jxr_keyword">if</strong> (product.getCatalogId() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L363" href="#L363">363</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"A catalog id is required to update a product."</span>);
<a class="jxr_linenumber" name="L364" href="#L364">364</a>         }
<a class="jxr_linenumber" name="L365" href="#L365">365</a>         <strong class="jxr_keyword">if</strong> (DEFAULT_CATALOG.equals(product.getCatalogId())) {
<a class="jxr_linenumber" name="L366" href="#L366">366</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"The default catalog cannot be modified at run time."</span>);
<a class="jxr_linenumber" name="L367" href="#L367">367</a>         }
<a class="jxr_linenumber" name="L368" href="#L368">368</a>         ProductModel model = productConverter.convert(product);
<a class="jxr_linenumber" name="L369" href="#L369">369</a>         model = productService.saveProduct(model);
<a class="jxr_linenumber" name="L370" href="#L370">370</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(productModelConverter.convert(model), HttpStatus.OK);
<a class="jxr_linenumber" name="L371" href="#L371">371</a>     }
<a class="jxr_linenumber" name="L372" href="#L372">372</a> 
<a class="jxr_linenumber" name="L373" href="#L373">373</a>     @ApiImplicitParams( {@ApiImplicitParam(dataType = <span class="jxr_string">"String"</span>, name = <span class="jxr_string">"Authorization"</span>, paramType = <span class="jxr_string">"header"</span>)})
<a class="jxr_linenumber" name="L374" href="#L374">374</a>     @ApiOperation(value = <span class="jxr_string">"Deletes a catalog product"</span>, notes = <span class="jxr_string">"Deletes a catalog product"</span>, tags = {<span class="jxr_string">"Catalog"</span>})
<a class="jxr_linenumber" name="L375" href="#L375">375</a>     @DeleteMapping(value = <span class="jxr_string">"/product/{id}"</span>)
<a class="jxr_linenumber" name="L376" href="#L376">376</a>     <strong class="jxr_keyword">public</strong> ResponseEntity&lt;?&gt; deleteProduct(@RequestParam(<span class="jxr_string">"id"</span>) Long productId) {
<a class="jxr_linenumber" name="L377" href="#L377">377</a>         productService.deleteProduct(productId);
<a class="jxr_linenumber" name="L378" href="#L378">378</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(HttpStatus.OK);
<a class="jxr_linenumber" name="L379" href="#L379">379</a>     }
<a class="jxr_linenumber" name="L380" href="#L380">380</a> 
<a class="jxr_linenumber" name="L381" href="#L381">381</a>     @ApiImplicitParams( {@ApiImplicitParam(dataType = <span class="jxr_string">"String"</span>, name = <span class="jxr_string">"Authorization"</span>, paramType = <span class="jxr_string">"header"</span>)})
<a class="jxr_linenumber" name="L382" href="#L382">382</a>     @ApiOperation(value = <span class="jxr_string">"List catalog Categories"</span>, notes = <span class="jxr_string">"Lists catalog categories for a catalog id"</span>, tags = {<span class="jxr_string">"Catalog"</span>})
<a class="jxr_linenumber" name="L383" href="#L383">383</a>     @GetMapping(value = <span class="jxr_string">"{catalogId}/categories"</span>)
<a class="jxr_linenumber" name="L384" href="#L384">384</a>     <strong class="jxr_keyword">public</strong> ResponseEntity&lt;List&lt;Category&gt;&gt; getCategories(@ApiParam(value = <span class="jxr_string">"catalog id"</span>, required = <strong class="jxr_keyword">true</strong>) @PathVariable String catalogId,
<a class="jxr_linenumber" name="L385" href="#L385">385</a>                                                      @RequestParam(value = <span class="jxr_string">"startIndex"</span>, required = false) Integer startIndex,
<a class="jxr_linenumber" name="L386" href="#L386">386</a>                                                      @RequestParam(value = <span class="jxr_string">"pageSize"</span>, required = false) Integer pageSize,
<a class="jxr_linenumber" name="L387" href="#L387">387</a>                                                      @RequestParam(value = <span class="jxr_string">"sortCol"</span>, required= false) String sortColumn,
<a class="jxr_linenumber" name="L388" href="#L388">388</a>                                                      @RequestParam(value = <span class="jxr_string">"sortDir"</span>, required = false) String sortDirection) {
<a class="jxr_linenumber" name="L389" href="#L389">389</a>         Type listType = <strong class="jxr_keyword">new</strong> TypeToken&lt;List&lt;Category&gt;&gt;() {}.getType();
<a class="jxr_linenumber" name="L390" href="#L390">390</a>         List&lt;Category&gt; categories = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L391" href="#L391">391</a>         <strong class="jxr_keyword">if</strong> (startIndex == <strong class="jxr_keyword">null</strong> || pageSize == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L392" href="#L392">392</a>             categories = categoryModelMapper.map(categoryService.getCategories(catalogId), listType);
<a class="jxr_linenumber" name="L393" href="#L393">393</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L394" href="#L394">394</a>             sortDirection = validateSortDirection(sortDirection);
<a class="jxr_linenumber" name="L395" href="#L395">395</a>             <strong class="jxr_keyword">if</strong> (sortColumn == <strong class="jxr_keyword">null</strong> || sortColumn.length() == 0) {
<a class="jxr_linenumber" name="L396" href="#L396">396</a>                 sortColumn = <span class="jxr_string">"name"</span>;
<a class="jxr_linenumber" name="L397" href="#L397">397</a>             }
<a class="jxr_linenumber" name="L398" href="#L398">398</a>             <strong class="jxr_keyword">int</strong> startPage = 0;
<a class="jxr_linenumber" name="L399" href="#L399">399</a>             <strong class="jxr_keyword">if</strong> (startIndex &gt; 0) {
<a class="jxr_linenumber" name="L400" href="#L400">400</a>                 startPage = startIndex / pageSize;
<a class="jxr_linenumber" name="L401" href="#L401">401</a>             }
<a class="jxr_linenumber" name="L402" href="#L402">402</a>             categories = categoryModelMapper.map(categoryService.getCategories(startPage, pageSize, sortColumn,
<a class="jxr_linenumber" name="L403" href="#L403">403</a>                     sortDirection), listType);
<a class="jxr_linenumber" name="L404" href="#L404">404</a>         }
<a class="jxr_linenumber" name="L405" href="#L405">405</a>         <strong class="jxr_keyword">if</strong> (categories == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L406" href="#L406">406</a>             categories = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L407" href="#L407">407</a>         }
<a class="jxr_linenumber" name="L408" href="#L408">408</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(categories, HttpStatus.OK);
<a class="jxr_linenumber" name="L409" href="#L409">409</a>     }
<a class="jxr_linenumber" name="L410" href="#L410">410</a> 
<a class="jxr_linenumber" name="L411" href="#L411">411</a>     @ApiImplicitParams( {@ApiImplicitParam(dataType = <span class="jxr_string">"String"</span>, name = <span class="jxr_string">"Authorization"</span>, paramType = <span class="jxr_string">"header"</span>)})
<a class="jxr_linenumber" name="L412" href="#L412">412</a>     @ApiOperation(value = <span class="jxr_string">"Create a catalog Category"</span>, notes = <span class="jxr_string">"Creates a catalog category"</span>, tags = {<span class="jxr_string">"Catalog"</span>})
<a class="jxr_linenumber" name="L413" href="#L413">413</a>     @PostMapping(value = <span class="jxr_string">"/category"</span>, consumes=Versions.V1_0_VALUE, produces=Versions.V1_0_VALUE)
<a class="jxr_linenumber" name="L414" href="#L414">414</a>     <strong class="jxr_keyword">public</strong> ResponseEntity&lt;Category&gt; createCategory(@ApiParam(value = <span class="jxr_string">"category"</span>, required = <strong class="jxr_keyword">true</strong>) @RequestBody Category category) {
<a class="jxr_linenumber" name="L415" href="#L415">415</a>         <strong class="jxr_keyword">if</strong> (category.getCatalogId() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L416" href="#L416">416</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"A catalog id is required to create a category."</span>);
<a class="jxr_linenumber" name="L417" href="#L417">417</a>         }
<a class="jxr_linenumber" name="L418" href="#L418">418</a>         <strong class="jxr_keyword">if</strong> (DEFAULT_CATALOG.equals(category.getCatalogId())) {
<a class="jxr_linenumber" name="L419" href="#L419">419</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"The default catalog cannot be modified at run time."</span>);
<a class="jxr_linenumber" name="L420" href="#L420">420</a>         }
<a class="jxr_linenumber" name="L421" href="#L421">421</a>         Optional&lt;CategoryModel&gt; opt = categoryService.getCategory(category.getCatalogId(), category.getName());
<a class="jxr_linenumber" name="L422" href="#L422">422</a>         <strong class="jxr_keyword">if</strong> (opt != <strong class="jxr_keyword">null</strong> &amp;&amp; opt.isPresent()) {
<a class="jxr_linenumber" name="L423" href="#L423">423</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"A category named "</span>+ category.getName() + <span class="jxr_string">" in catalog "</span> +
<a class="jxr_linenumber" name="L424" href="#L424">424</a>                     category.getCatalogId() + <span class="jxr_string">" already exists"</span>);
<a class="jxr_linenumber" name="L425" href="#L425">425</a>         }
<a class="jxr_linenumber" name="L426" href="#L426">426</a>         CategoryModel model = categoryConverter.convert(category);
<a class="jxr_linenumber" name="L427" href="#L427">427</a>         model = categoryService.saveCategory(model);
<a class="jxr_linenumber" name="L428" href="#L428">428</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(categoryModelConverter.convert(model), HttpStatus.CREATED);
<a class="jxr_linenumber" name="L429" href="#L429">429</a>     }
<a class="jxr_linenumber" name="L430" href="#L430">430</a> 
<a class="jxr_linenumber" name="L431" href="#L431">431</a>     @ApiImplicitParams( {@ApiImplicitParam(dataType = <span class="jxr_string">"String"</span>, name = <span class="jxr_string">"Authorization"</span>, paramType = <span class="jxr_string">"header"</span>)})
<a class="jxr_linenumber" name="L432" href="#L432">432</a>     @ApiOperation(value = <span class="jxr_string">"Update a catalog Category"</span>, notes = <span class="jxr_string">"Updates a catalog category"</span>, tags = {<span class="jxr_string">"Catalog"</span>})
<a class="jxr_linenumber" name="L433" href="#L433">433</a>     @PutMapping(value = <span class="jxr_string">"/category"</span>, consumes=Versions.V1_0_VALUE, produces=Versions.V1_0_VALUE)
<a class="jxr_linenumber" name="L434" href="#L434">434</a>     <strong class="jxr_keyword">public</strong> ResponseEntity&lt;Category&gt; updateCategory(@ApiParam(value = <span class="jxr_string">"category"</span>, required = <strong class="jxr_keyword">true</strong>) @RequestBody Category category) {
<a class="jxr_linenumber" name="L435" href="#L435">435</a>         <strong class="jxr_keyword">if</strong> (category.getCatalogId() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L436" href="#L436">436</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"A catalog id is required to create a category."</span>);
<a class="jxr_linenumber" name="L437" href="#L437">437</a>         }
<a class="jxr_linenumber" name="L438" href="#L438">438</a>         <strong class="jxr_keyword">if</strong> (DEFAULT_CATALOG.equals(category.getCatalogId())) {
<a class="jxr_linenumber" name="L439" href="#L439">439</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"The default catalog cannot be modified at run time."</span>);
<a class="jxr_linenumber" name="L440" href="#L440">440</a>         }
<a class="jxr_linenumber" name="L441" href="#L441">441</a>         CategoryModel model = categoryConverter.convert(category);
<a class="jxr_linenumber" name="L442" href="#L442">442</a>         model = categoryService.saveCategory(model);
<a class="jxr_linenumber" name="L443" href="#L443">443</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(categoryModelConverter.convert(model), HttpStatus.OK);
<a class="jxr_linenumber" name="L444" href="#L444">444</a>     }
<a class="jxr_linenumber" name="L445" href="#L445">445</a> 
<a class="jxr_linenumber" name="L446" href="#L446">446</a>     @ApiImplicitParams( {@ApiImplicitParam(dataType = <span class="jxr_string">"String"</span>, name = <span class="jxr_string">"Authorization"</span>, paramType = <span class="jxr_string">"header"</span>)})
<a class="jxr_linenumber" name="L447" href="#L447">447</a>     @ApiOperation(value = <span class="jxr_string">"Deletes a catalog category"</span>, notes = <span class="jxr_string">"Deletes a catalog category"</span>, tags = {<span class="jxr_string">"Catalog"</span>})
<a class="jxr_linenumber" name="L448" href="#L448">448</a>     @DeleteMapping(value = <span class="jxr_string">"/category/{id}"</span>)
<a class="jxr_linenumber" name="L449" href="#L449">449</a>     <strong class="jxr_keyword">public</strong> ResponseEntity&lt;?&gt; deleteCategory(@RequestParam(<span class="jxr_string">"id"</span>) Long categoryId) {
<a class="jxr_linenumber" name="L450" href="#L450">450</a>         categoryService.deleteCategory(categoryId);
<a class="jxr_linenumber" name="L451" href="#L451">451</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ResponseEntity&lt;&gt;(HttpStatus.OK);
<a class="jxr_linenumber" name="L452" href="#L452">452</a>     }
<a class="jxr_linenumber" name="L453" href="#L453">453</a> 
<a class="jxr_linenumber" name="L454" href="#L454">454</a>     <strong class="jxr_keyword">private</strong> String validateSortDirection(String sortDirection) {
<a class="jxr_linenumber" name="L455" href="#L455">455</a>         <strong class="jxr_keyword">if</strong> (sortDirection == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L456" href="#L456">456</a>             sortDirection = <span class="jxr_string">"ASC"</span>;
<a class="jxr_linenumber" name="L457" href="#L457">457</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (sortDirection != <span class="jxr_string">"ASC"</span> &amp;&amp; sortDirection != <span class="jxr_string">"DESC"</span>) {
<a class="jxr_linenumber" name="L458" href="#L458">458</a>             LOGGER.warn(<span class="jxr_string">"Invalid sort direction {}, defaulting to ascending"</span>, sortDirection);
<a class="jxr_linenumber" name="L459" href="#L459">459</a>             sortDirection = <span class="jxr_string">"ASC"</span>;
<a class="jxr_linenumber" name="L460" href="#L460">460</a>         }
<a class="jxr_linenumber" name="L461" href="#L461">461</a>         <strong class="jxr_keyword">return</strong> sortDirection;
<a class="jxr_linenumber" name="L462" href="#L462">462</a>     }
<a class="jxr_linenumber" name="L463" href="#L463">463</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2016&#x2013;2018 <a href="http://www.apache.org">Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
