<!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>CassandraMetadataRepository xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.archiva.metadata.repository.cassandra;
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</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="L13" href="#L13">13</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Predicate;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Iterables;
<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> me.prettyprint.cassandra.serializers.LongSerializer;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.cassandra.serializers.StringSerializer;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.cassandra.service.template.ColumnFamilyResult;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.cassandra.service.template.ColumnFamilyTemplate;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.cassandra.service.template.ColumnFamilyUpdater;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.cassandra.service.template.ThriftColumnFamilyTemplate;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.Keyspace;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.beans.ColumnSlice;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.beans.OrderedRows;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.beans.Row;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.exceptions.HInvalidRequestException;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.factory.HFactory;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.mutation.MutationResult;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.mutation.Mutator;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.query.QueryResult;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> me.prettyprint.hector.api.query.RangeSlicesQuery;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ArchivaConfiguration;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.ArtifactMetadata;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.CiManagement;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.Dependency;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.FacetedMetadata;
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.IssueManagement;
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.License;
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.MailingList;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.MetadataFacet;
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.MetadataFacetFactory;
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.Organization;
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.ProjectMetadata;
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.ProjectVersionMetadata;
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.ProjectVersionReference;
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.Scm;
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.MetadataRepository;
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.MetadataRepositoryException;
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.MetadataResolutionException;
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.cassandra.model.ArtifactMetadataModel;
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.cassandra.model.MetadataFacetModel;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.cassandra.model.Namespace;
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.cassandra.model.Project;
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.cassandra.model.ProjectVersionMetadataModel;
<a class="jxr_linenumber" name="L65" href="#L65">65</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.cassandra.model.Repository;
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringUtils;
<a class="jxr_linenumber" name="L67" href="#L67">67</a>  <strong class="jxr_keyword">import</strong> org.modelmapper.ModelMapper;
<a class="jxr_linenumber" name="L68" href="#L68">68</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a class="jxr_linenumber" name="L69" href="#L69">69</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <strong class="jxr_keyword">import</strong> javax.persistence.PersistenceException;
<a class="jxr_linenumber" name="L72" href="#L72">72</a>  
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
<a class="jxr_linenumber" name="L77" href="#L77">77</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="L78" href="#L78">78</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
<a class="jxr_linenumber" name="L79" href="#L79">79</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a class="jxr_linenumber" name="L80" href="#L80">80</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedList;
<a class="jxr_linenumber" name="L81" href="#L81">81</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L82" href="#L82">82</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="L83" href="#L83">83</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  <strong class="jxr_keyword">import</strong> java.util.UUID;
<a class="jxr_linenumber" name="L85" href="#L85">85</a>  
<a class="jxr_linenumber" name="L86" href="#L86">86</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.archiva.metadata.repository.cassandra.CassandraUtils.*;
<a class="jxr_linenumber" name="L87" href="#L87">87</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.archiva.metadata.repository.cassandra.model.ColumnNames.*;
<a class="jxr_linenumber" name="L88" href="#L88">88</a>  
<a class="jxr_linenumber" name="L89" href="#L89">89</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L90" href="#L90">90</a>  <em class="jxr_javadoccomment"> * @author Olivier Lamy</em>
<a class="jxr_linenumber" name="L91" href="#L91">91</a>  <em class="jxr_javadoccomment"> * @since 2.0.0</em>
<a class="jxr_linenumber" name="L92" href="#L92">92</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L93" href="#L93">93</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.html">CassandraMetadataRepository</a>
<a class="jxr_linenumber" name="L94" href="#L94">94</a>      <strong class="jxr_keyword">implements</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepository.html">MetadataRepository</a>
<a class="jxr_linenumber" name="L95" href="#L95">95</a>  {
<a class="jxr_linenumber" name="L96" href="#L96">96</a>  
<a class="jxr_linenumber" name="L97" href="#L97">97</a>      <strong class="jxr_keyword">private</strong> Logger logger = LoggerFactory.getLogger( getClass() );
<a class="jxr_linenumber" name="L98" href="#L98">98</a>  
<a class="jxr_linenumber" name="L99" href="#L99">99</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/ArchivaConfiguration.html">ArchivaConfiguration</a> configuration;
<a class="jxr_linenumber" name="L100" href="#L100">100</a> 
<a class="jxr_linenumber" name="L101" href="#L101">101</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;String, MetadataFacetFactory&gt; metadataFacetFactories;
<a class="jxr_linenumber" name="L102" href="#L102">102</a> 
<a class="jxr_linenumber" name="L103" href="#L103">103</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/CassandraArchivaManager.html">CassandraArchivaManager</a> cassandraArchivaManager;
<a class="jxr_linenumber" name="L104" href="#L104">104</a> 
<a class="jxr_linenumber" name="L105" href="#L105">105</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ColumnFamilyTemplate&lt;String, String&gt; projectVersionMetadataTemplate;
<a class="jxr_linenumber" name="L106" href="#L106">106</a> 
<a class="jxr_linenumber" name="L107" href="#L107">107</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ColumnFamilyTemplate&lt;String, String&gt; projectTemplate;
<a class="jxr_linenumber" name="L108" href="#L108">108</a> 
<a class="jxr_linenumber" name="L109" href="#L109">109</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ColumnFamilyTemplate&lt;String, String&gt; artifactMetadataTemplate;
<a class="jxr_linenumber" name="L110" href="#L110">110</a> 
<a class="jxr_linenumber" name="L111" href="#L111">111</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ColumnFamilyTemplate&lt;String, String&gt; metadataFacetTemplate;
<a class="jxr_linenumber" name="L112" href="#L112">112</a> 
<a class="jxr_linenumber" name="L113" href="#L113">113</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ColumnFamilyTemplate&lt;String, String&gt; mailingListTemplate;
<a class="jxr_linenumber" name="L114" href="#L114">114</a> 
<a class="jxr_linenumber" name="L115" href="#L115">115</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ColumnFamilyTemplate&lt;String, String&gt; licenseTemplate;
<a class="jxr_linenumber" name="L116" href="#L116">116</a> 
<a class="jxr_linenumber" name="L117" href="#L117">117</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ColumnFamilyTemplate&lt;String, String&gt; dependencyTemplate;
<a class="jxr_linenumber" name="L118" href="#L118">118</a> 
<a class="jxr_linenumber" name="L119" href="#L119">119</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Keyspace keyspace;
<a class="jxr_linenumber" name="L120" href="#L120">120</a> 
<a class="jxr_linenumber" name="L121" href="#L121">121</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> StringSerializer ss = StringSerializer.get();
<a class="jxr_linenumber" name="L122" href="#L122">122</a> 
<a class="jxr_linenumber" name="L123" href="#L123">123</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.html">CassandraMetadataRepository</a>( Map&lt;String, MetadataFacetFactory&gt; metadataFacetFactories,
<a class="jxr_linenumber" name="L124" href="#L124">124</a>                                         <a href="../../../../../../org/apache/archiva/configuration/ArchivaConfiguration.html">ArchivaConfiguration</a> configuration,
<a class="jxr_linenumber" name="L125" href="#L125">125</a>                                         <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/CassandraArchivaManager.html">CassandraArchivaManager</a> cassandraArchivaManager )
<a class="jxr_linenumber" name="L126" href="#L126">126</a>     {
<a class="jxr_linenumber" name="L127" href="#L127">127</a>         <strong class="jxr_keyword">this</strong>.metadataFacetFactories = metadataFacetFactories;
<a class="jxr_linenumber" name="L128" href="#L128">128</a>         <strong class="jxr_keyword">this</strong>.configuration = configuration;
<a class="jxr_linenumber" name="L129" href="#L129">129</a>         <strong class="jxr_keyword">this</strong>.cassandraArchivaManager = cassandraArchivaManager;
<a class="jxr_linenumber" name="L130" href="#L130">130</a>         <strong class="jxr_keyword">this</strong>.keyspace = cassandraArchivaManager.getKeyspace();
<a class="jxr_linenumber" name="L131" href="#L131">131</a> 
<a class="jxr_linenumber" name="L132" href="#L132">132</a>         <strong class="jxr_keyword">this</strong>.projectVersionMetadataTemplate =
<a class="jxr_linenumber" name="L133" href="#L133">133</a>             <strong class="jxr_keyword">new</strong> ThriftColumnFamilyTemplate&lt;&gt;( cassandraArchivaManager.getKeyspace(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L134" href="#L134">134</a>                                               cassandraArchivaManager.getProjectVersionMetadataFamilyName(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L135" href="#L135">135</a>                                               StringSerializer.get(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L136" href="#L136">136</a>                                               StringSerializer.get() );
<a class="jxr_linenumber" name="L137" href="#L137">137</a> 
<a class="jxr_linenumber" name="L138" href="#L138">138</a>         <strong class="jxr_keyword">this</strong>.projectTemplate = <strong class="jxr_keyword">new</strong> ThriftColumnFamilyTemplate&lt;&gt;( cassandraArchivaManager.getKeyspace(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L139" href="#L139">139</a>                                                                  cassandraArchivaManager.getProjectFamilyName(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L140" href="#L140">140</a>                                                                  <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L141" href="#L141">141</a>                                                                  StringSerializer.get(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L142" href="#L142">142</a>                                                                  StringSerializer.get() );
<a class="jxr_linenumber" name="L143" href="#L143">143</a> 
<a class="jxr_linenumber" name="L144" href="#L144">144</a>         <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate = <strong class="jxr_keyword">new</strong> ThriftColumnFamilyTemplate&lt;&gt;( cassandraArchivaManager.getKeyspace(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L145" href="#L145">145</a>                                                                           cassandraArchivaManager.getArtifactMetadataFamilyName(),
<a class="jxr_linenumber" name="L146" href="#L146">146</a>                                                                           StringSerializer.get(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L147" href="#L147">147</a>                                                                           StringSerializer.get() );
<a class="jxr_linenumber" name="L148" href="#L148">148</a> 
<a class="jxr_linenumber" name="L149" href="#L149">149</a>         <strong class="jxr_keyword">this</strong>.metadataFacetTemplate = <strong class="jxr_keyword">new</strong> ThriftColumnFamilyTemplate&lt;&gt;( cassandraArchivaManager.getKeyspace(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L150" href="#L150">150</a>                                                                        cassandraArchivaManager.getMetadataFacetFamilyName(),
<a class="jxr_linenumber" name="L151" href="#L151">151</a>                                                                        <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L152" href="#L152">152</a>                                                                        StringSerializer.get(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L153" href="#L153">153</a>                                                                        StringSerializer.get() );
<a class="jxr_linenumber" name="L154" href="#L154">154</a> 
<a class="jxr_linenumber" name="L155" href="#L155">155</a>         <strong class="jxr_keyword">this</strong>.mailingListTemplate = <strong class="jxr_keyword">new</strong> ThriftColumnFamilyTemplate&lt;&gt;( cassandraArchivaManager.getKeyspace(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L156" href="#L156">156</a>                                                                      cassandraArchivaManager.getMailingListFamilyName(),
<a class="jxr_linenumber" name="L157" href="#L157">157</a>                                                                      <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L158" href="#L158">158</a>                                                                      StringSerializer.get(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L159" href="#L159">159</a>                                                                      StringSerializer.get() );
<a class="jxr_linenumber" name="L160" href="#L160">160</a> 
<a class="jxr_linenumber" name="L161" href="#L161">161</a>         <strong class="jxr_keyword">this</strong>.licenseTemplate = <strong class="jxr_keyword">new</strong> ThriftColumnFamilyTemplate&lt;&gt;( cassandraArchivaManager.getKeyspace(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L162" href="#L162">162</a>                                                                  cassandraArchivaManager.getLicenseFamilyName(),
<a class="jxr_linenumber" name="L163" href="#L163">163</a>                                                                  <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L164" href="#L164">164</a>                                                                  StringSerializer.get(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L165" href="#L165">165</a>                                                                  StringSerializer.get() );
<a class="jxr_linenumber" name="L166" href="#L166">166</a> 
<a class="jxr_linenumber" name="L167" href="#L167">167</a>         <strong class="jxr_keyword">this</strong>.dependencyTemplate = <strong class="jxr_keyword">new</strong> ThriftColumnFamilyTemplate&lt;&gt;( cassandraArchivaManager.getKeyspace(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L168" href="#L168">168</a>                                                                     cassandraArchivaManager.getDependencyFamilyName(),
<a class="jxr_linenumber" name="L169" href="#L169">169</a>                                                                     <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L170" href="#L170">170</a>                                                                     StringSerializer.get(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L171" href="#L171">171</a>                                                                     StringSerializer.get() );
<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>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L176" href="#L176">176</a> <em class="jxr_javadoccomment">     * if the repository doesn't exist it will be created</em>
<a class="jxr_linenumber" name="L177" href="#L177">177</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L178" href="#L178">178</a> <em class="jxr_javadoccomment">     * @param repositoryId</em>
<a class="jxr_linenumber" name="L179" href="#L179">179</a> <em class="jxr_javadoccomment">     * @return</em>
<a class="jxr_linenumber" name="L180" href="#L180">180</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L181" href="#L181">181</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Repository.html">Repository</a> getOrCreateRepository( String repositoryId )
<a class="jxr_linenumber" name="L182" href="#L182">182</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L183" href="#L183">183</a>     {
<a class="jxr_linenumber" name="L184" href="#L184">184</a>         String cf = cassandraArchivaManager.getRepositoryFamilyName();
<a class="jxr_linenumber" name="L185" href="#L185">185</a> 
<a class="jxr_linenumber" name="L186" href="#L186">186</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L187" href="#L187">187</a>             .createRangeSlicesQuery( keyspace, StringSerializer.get(), StringSerializer.get(),
<a class="jxr_linenumber" name="L188" href="#L188">188</a>                                      StringSerializer.get() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L189" href="#L189">189</a>             .setColumnFamily( cf ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L190" href="#L190">190</a>             .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L191" href="#L191">191</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L192" href="#L192">192</a>             .execute();
<a class="jxr_linenumber" name="L193" href="#L193">193</a> 
<a class="jxr_linenumber" name="L194" href="#L194">194</a>         <strong class="jxr_keyword">if</strong> ( result.get().getCount() &lt; 1 )
<a class="jxr_linenumber" name="L195" href="#L195">195</a>         {
<a class="jxr_linenumber" name="L196" href="#L196">196</a>             <em class="jxr_comment">// we need to create the repository</em>
<a class="jxr_linenumber" name="L197" href="#L197">197</a>             <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Repository.html">Repository</a> repository = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Repository.html">Repository</a>( repositoryId );
<a class="jxr_linenumber" name="L198" href="#L198">198</a> 
<a class="jxr_linenumber" name="L199" href="#L199">199</a>             <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L200" href="#L200">200</a>             {
<a class="jxr_linenumber" name="L201" href="#L201">201</a>                 MutationResult mutationResult = HFactory.createMutator( keyspace, StringSerializer.get() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L202" href="#L202">202</a>                     .addInsertion( repositoryId, cf,
<a class="jxr_linenumber" name="L203" href="#L203">203</a>                                    CassandraUtils.column( REPOSITORY_NAME.toString(), repository.getName() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L204" href="#L204">204</a>                     .execute();
<a class="jxr_linenumber" name="L205" href="#L205">205</a>                 logger.debug( <span class="jxr_string">"time to insert repository: {}"</span>, mutationResult.getExecutionTimeMicro() );
<a class="jxr_linenumber" name="L206" href="#L206">206</a>                 <strong class="jxr_keyword">return</strong> repository;
<a class="jxr_linenumber" name="L207" href="#L207">207</a>             }
<a class="jxr_linenumber" name="L208" href="#L208">208</a>             <strong class="jxr_keyword">catch</strong> ( HInvalidRequestException e )
<a class="jxr_linenumber" name="L209" href="#L209">209</a>             {
<a class="jxr_linenumber" name="L210" href="#L210">210</a>                 logger.error( e.getMessage(), e );
<a class="jxr_linenumber" name="L211" href="#L211">211</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>( e.getMessage(), e );
<a class="jxr_linenumber" name="L212" href="#L212">212</a>             }
<a class="jxr_linenumber" name="L213" href="#L213">213</a> 
<a class="jxr_linenumber" name="L214" href="#L214">214</a>         }
<a class="jxr_linenumber" name="L215" href="#L215">215</a> 
<a class="jxr_linenumber" name="L216" href="#L216">216</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Repository.html">Repository</a>(
<a class="jxr_linenumber" name="L217" href="#L217">217</a>             result.get().getList().get( 0 ).getColumnSlice().getColumnByName( REPOSITORY_NAME.toString() ).getValue() );
<a class="jxr_linenumber" name="L218" href="#L218">218</a>     }
<a class="jxr_linenumber" name="L219" href="#L219">219</a> 
<a class="jxr_linenumber" name="L220" href="#L220">220</a> 
<a class="jxr_linenumber" name="L221" href="#L221">221</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Repository.html">Repository</a> getRepository( String repositoryId )
<a class="jxr_linenumber" name="L222" href="#L222">222</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L223" href="#L223">223</a>     {
<a class="jxr_linenumber" name="L224" href="#L224">224</a> 
<a class="jxr_linenumber" name="L225" href="#L225">225</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L226" href="#L226">226</a>             .createRangeSlicesQuery( keyspace, StringSerializer.get(), StringSerializer.get(),
<a class="jxr_linenumber" name="L227" href="#L227">227</a>                                      StringSerializer.get() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L228" href="#L228">228</a>             .setColumnFamily( cassandraArchivaManager.getRepositoryFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L229" href="#L229">229</a>             .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L230" href="#L230">230</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L231" href="#L231">231</a>             .execute();
<a class="jxr_linenumber" name="L232" href="#L232">232</a>         <strong class="jxr_keyword">return</strong> ( result.get().getCount() &gt; 0 ) ? <strong class="jxr_keyword">new</strong> Repository( repositoryId ) : <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L233" href="#L233">233</a>     }
<a class="jxr_linenumber" name="L234" href="#L234">234</a> 
<a class="jxr_linenumber" name="L235" href="#L235">235</a>     @Override
<a class="jxr_linenumber" name="L236" href="#L236">236</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateNamespace( String repositoryId, String namespaceId )
<a class="jxr_linenumber" name="L237" href="#L237">237</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L238" href="#L238">238</a>     {
<a class="jxr_linenumber" name="L239" href="#L239">239</a>         updateOrAddNamespace( repositoryId, namespaceId );
<a class="jxr_linenumber" name="L240" href="#L240">240</a>     }
<a class="jxr_linenumber" name="L241" href="#L241">241</a> 
<a class="jxr_linenumber" name="L242" href="#L242">242</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a> updateOrAddNamespace( String repositoryId, String namespaceId )
<a class="jxr_linenumber" name="L243" href="#L243">243</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L244" href="#L244">244</a>     {
<a class="jxr_linenumber" name="L245" href="#L245">245</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L246" href="#L246">246</a>         {
<a class="jxr_linenumber" name="L247" href="#L247">247</a>             <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Repository.html">Repository</a> repository = getOrCreateRepository( repositoryId );
<a class="jxr_linenumber" name="L248" href="#L248">248</a> 
<a class="jxr_linenumber" name="L249" href="#L249">249</a>             String key =
<a class="jxr_linenumber" name="L250" href="#L250">250</a>                 <strong class="jxr_keyword">new</strong> Namespace.KeyBuilder().withNamespace( namespaceId ).withRepositoryId( repositoryId ).build();
<a class="jxr_linenumber" name="L251" href="#L251">251</a> 
<a class="jxr_linenumber" name="L252" href="#L252">252</a>             <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a> namespace = getNamespace( repositoryId, namespaceId );
<a class="jxr_linenumber" name="L253" href="#L253">253</a>             <strong class="jxr_keyword">if</strong> ( namespace == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L254" href="#L254">254</a>             {
<a class="jxr_linenumber" name="L255" href="#L255">255</a>                 String cf = cassandraArchivaManager.getNamespaceFamilyName();
<a class="jxr_linenumber" name="L256" href="#L256">256</a>                 namespace = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a>( namespaceId, repository );
<a class="jxr_linenumber" name="L257" href="#L257">257</a>                 HFactory.createMutator( keyspace, StringSerializer.get() )
<a class="jxr_linenumber" name="L258" href="#L258">258</a>                     <em class="jxr_comment">//  values</em>
<a class="jxr_linenumber" name="L259" href="#L259">259</a>                     .addInsertion( key, cf, CassandraUtils.column( NAME.toString(), namespace.getName() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L260" href="#L260">260</a>                     .addInsertion( key, cf, CassandraUtils.column( REPOSITORY_NAME.toString(), repository.getName() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L261" href="#L261">261</a>                     .execute();
<a class="jxr_linenumber" name="L262" href="#L262">262</a>             }
<a class="jxr_linenumber" name="L263" href="#L263">263</a> 
<a class="jxr_linenumber" name="L264" href="#L264">264</a>             <strong class="jxr_keyword">return</strong> namespace;
<a class="jxr_linenumber" name="L265" href="#L265">265</a>         }
<a class="jxr_linenumber" name="L266" href="#L266">266</a>         <strong class="jxr_keyword">catch</strong> ( HInvalidRequestException e )
<a class="jxr_linenumber" name="L267" href="#L267">267</a>         {
<a class="jxr_linenumber" name="L268" href="#L268">268</a>             logger.error( e.getMessage(), e );
<a class="jxr_linenumber" name="L269" href="#L269">269</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>( e.getMessage(), e );
<a class="jxr_linenumber" name="L270" href="#L270">270</a>         }
<a class="jxr_linenumber" name="L271" href="#L271">271</a>     }
<a class="jxr_linenumber" name="L272" href="#L272">272</a> 
<a class="jxr_linenumber" name="L273" href="#L273">273</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a> getNamespace( String repositoryId, String namespaceId )
<a class="jxr_linenumber" name="L274" href="#L274">274</a>     {
<a class="jxr_linenumber" name="L275" href="#L275">275</a> 
<a class="jxr_linenumber" name="L276" href="#L276">276</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L277" href="#L277">277</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L278" href="#L278">278</a>             .setColumnFamily( cassandraArchivaManager.getNamespaceFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L279" href="#L279">279</a>             .setColumnNames( REPOSITORY_NAME.toString(), NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L280" href="#L280">280</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L281" href="#L281">281</a>             .addEqualsExpression( NAME.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L282" href="#L282">282</a>             .execute();
<a class="jxr_linenumber" name="L283" href="#L283">283</a>         <strong class="jxr_keyword">if</strong> ( result.get().getCount() &gt; 0 )
<a class="jxr_linenumber" name="L284" href="#L284">284</a>         {
<a class="jxr_linenumber" name="L285" href="#L285">285</a>             ColumnSlice&lt;String, String&gt; columnSlice = result.get().getList().get( 0 ).getColumnSlice();
<a class="jxr_linenumber" name="L286" href="#L286">286</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a>( getStringValue( columnSlice, NAME.toString() ), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L287" href="#L287">287</a>                                   <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Repository.html">Repository</a>( getStringValue( columnSlice, REPOSITORY_NAME.toString() ) ) );
<a class="jxr_linenumber" name="L288" href="#L288">288</a> 
<a class="jxr_linenumber" name="L289" href="#L289">289</a>         }
<a class="jxr_linenumber" name="L290" href="#L290">290</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L291" href="#L291">291</a>     }
<a class="jxr_linenumber" name="L292" href="#L292">292</a> 
<a class="jxr_linenumber" name="L293" href="#L293">293</a> 
<a class="jxr_linenumber" name="L294" href="#L294">294</a>     @Override
<a class="jxr_linenumber" name="L295" href="#L295">295</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeNamespace( String repositoryId, String namespaceId )
<a class="jxr_linenumber" name="L296" href="#L296">296</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L297" href="#L297">297</a>     {
<a class="jxr_linenumber" name="L298" href="#L298">298</a> 
<a class="jxr_linenumber" name="L299" href="#L299">299</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L300" href="#L300">300</a>         {
<a class="jxr_linenumber" name="L301" href="#L301">301</a>             String key = <strong class="jxr_keyword">new</strong> Namespace.KeyBuilder() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L302" href="#L302">302</a>                 .withNamespace( namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L303" href="#L303">303</a>                 .withRepositoryId( repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L304" href="#L304">304</a>                 .build();
<a class="jxr_linenumber" name="L305" href="#L305">305</a> 
<a class="jxr_linenumber" name="L306" href="#L306">306</a>             HFactory.createMutator( cassandraArchivaManager.getKeyspace(), <strong class="jxr_keyword">new</strong> StringSerializer() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L307" href="#L307">307</a>                 .addDeletion( key, cassandraArchivaManager.getNamespaceFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L308" href="#L308">308</a>                 .execute();
<a class="jxr_linenumber" name="L309" href="#L309">309</a> 
<a class="jxr_linenumber" name="L310" href="#L310">310</a>             QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L311" href="#L311">311</a>                 .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L312" href="#L312">312</a>                 .setColumnFamily( cassandraArchivaManager.getProjectFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L313" href="#L313">313</a>                 .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L314" href="#L314">314</a>                 .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L315" href="#L315">315</a>                 .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L316" href="#L316">316</a>                 .execute();
<a class="jxr_linenumber" name="L317" href="#L317">317</a> 
<a class="jxr_linenumber" name="L318" href="#L318">318</a>             <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L319" href="#L319">319</a>             {
<a class="jxr_linenumber" name="L320" href="#L320">320</a>                 <strong class="jxr_keyword">this</strong>.projectTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L321" href="#L321">321</a>             }
<a class="jxr_linenumber" name="L322" href="#L322">322</a> 
<a class="jxr_linenumber" name="L323" href="#L323">323</a>             result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L324" href="#L324">324</a>                 .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L325" href="#L325">325</a>                 .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L326" href="#L326">326</a>                 .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L327" href="#L327">327</a>                 .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L328" href="#L328">328</a>                 .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L329" href="#L329">329</a>                 .execute();
<a class="jxr_linenumber" name="L330" href="#L330">330</a> 
<a class="jxr_linenumber" name="L331" href="#L331">331</a>             <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L332" href="#L332">332</a>             {
<a class="jxr_linenumber" name="L333" href="#L333">333</a>                 <strong class="jxr_keyword">this</strong>.projectVersionMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L334" href="#L334">334</a>                 removeMailingList( row.getKey() );
<a class="jxr_linenumber" name="L335" href="#L335">335</a>             }
<a class="jxr_linenumber" name="L336" href="#L336">336</a> 
<a class="jxr_linenumber" name="L337" href="#L337">337</a>             result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L338" href="#L338">338</a>                 .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L339" href="#L339">339</a>                 .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L340" href="#L340">340</a>                 .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L341" href="#L341">341</a>                 .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L342" href="#L342">342</a>                 .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L343" href="#L343">343</a>                 .execute();
<a class="jxr_linenumber" name="L344" href="#L344">344</a> 
<a class="jxr_linenumber" name="L345" href="#L345">345</a>             <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L346" href="#L346">346</a>             {
<a class="jxr_linenumber" name="L347" href="#L347">347</a>                 <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L348" href="#L348">348</a>             }
<a class="jxr_linenumber" name="L349" href="#L349">349</a> 
<a class="jxr_linenumber" name="L350" href="#L350">350</a>             result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L351" href="#L351">351</a>                 .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L352" href="#L352">352</a>                 .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L353" href="#L353">353</a>                 .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L354" href="#L354">354</a>                 .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L355" href="#L355">355</a>                 .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L356" href="#L356">356</a>                 .execute();
<a class="jxr_linenumber" name="L357" href="#L357">357</a> 
<a class="jxr_linenumber" name="L358" href="#L358">358</a>             <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L359" href="#L359">359</a>             {
<a class="jxr_linenumber" name="L360" href="#L360">360</a>                 <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L361" href="#L361">361</a>             }
<a class="jxr_linenumber" name="L362" href="#L362">362</a> 
<a class="jxr_linenumber" name="L363" href="#L363">363</a>         }
<a class="jxr_linenumber" name="L364" href="#L364">364</a>         <strong class="jxr_keyword">catch</strong> ( HInvalidRequestException e )
<a class="jxr_linenumber" name="L365" href="#L365">365</a>         {
<a class="jxr_linenumber" name="L366" href="#L366">366</a>             logger.error( e.getMessage(), e );
<a class="jxr_linenumber" name="L367" href="#L367">367</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>( e.getMessage(), e );
<a class="jxr_linenumber" name="L368" href="#L368">368</a>         }
<a class="jxr_linenumber" name="L369" href="#L369">369</a>     }
<a class="jxr_linenumber" name="L370" href="#L370">370</a> 
<a class="jxr_linenumber" name="L371" href="#L371">371</a> 
<a class="jxr_linenumber" name="L372" href="#L372">372</a>     @Override
<a class="jxr_linenumber" name="L373" href="#L373">373</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeRepository( <strong class="jxr_keyword">final</strong> String repositoryId )
<a class="jxr_linenumber" name="L374" href="#L374">374</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L375" href="#L375">375</a>     {
<a class="jxr_linenumber" name="L376" href="#L376">376</a> 
<a class="jxr_linenumber" name="L377" href="#L377">377</a>         <em class="jxr_comment">// TODO use cql queries to delete all</em>
<a class="jxr_linenumber" name="L378" href="#L378">378</a>         List&lt;String&gt; namespacesKey = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L379" href="#L379">379</a> 
<a class="jxr_linenumber" name="L380" href="#L380">380</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L381" href="#L381">381</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L382" href="#L382">382</a>             .setColumnFamily( cassandraArchivaManager.getNamespaceFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L383" href="#L383">383</a>             .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L384" href="#L384">384</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L385" href="#L385">385</a>             .execute();
<a class="jxr_linenumber" name="L386" href="#L386">386</a> 
<a class="jxr_linenumber" name="L387" href="#L387">387</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get().getList() )
<a class="jxr_linenumber" name="L388" href="#L388">388</a>         {
<a class="jxr_linenumber" name="L389" href="#L389">389</a>             namespacesKey.add( row.getKey() );
<a class="jxr_linenumber" name="L390" href="#L390">390</a>         }
<a class="jxr_linenumber" name="L391" href="#L391">391</a> 
<a class="jxr_linenumber" name="L392" href="#L392">392</a>         HFactory.createMutator( cassandraArchivaManager.getKeyspace(), ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L393" href="#L393">393</a>             .addDeletion( namespacesKey, cassandraArchivaManager.getNamespaceFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L394" href="#L394">394</a>             .execute();
<a class="jxr_linenumber" name="L395" href="#L395">395</a> 
<a class="jxr_linenumber" name="L396" href="#L396">396</a>         <em class="jxr_comment">//delete repositoryId</em>
<a class="jxr_linenumber" name="L397" href="#L397">397</a>         HFactory.createMutator( cassandraArchivaManager.getKeyspace(), ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L398" href="#L398">398</a>             .addDeletion( repositoryId, cassandraArchivaManager.getRepositoryFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L399" href="#L399">399</a>             .execute();
<a class="jxr_linenumber" name="L400" href="#L400">400</a> 
<a class="jxr_linenumber" name="L401" href="#L401">401</a>         result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L402" href="#L402">402</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L403" href="#L403">403</a>             .setColumnFamily( cassandraArchivaManager.getProjectFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L404" href="#L404">404</a>             .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L405" href="#L405">405</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L406" href="#L406">406</a>             .execute();
<a class="jxr_linenumber" name="L407" href="#L407">407</a> 
<a class="jxr_linenumber" name="L408" href="#L408">408</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L409" href="#L409">409</a>         {
<a class="jxr_linenumber" name="L410" href="#L410">410</a>             <strong class="jxr_keyword">this</strong>.projectTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L411" href="#L411">411</a>         }
<a class="jxr_linenumber" name="L412" href="#L412">412</a> 
<a class="jxr_linenumber" name="L413" href="#L413">413</a>         result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L414" href="#L414">414</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L415" href="#L415">415</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L416" href="#L416">416</a>             .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L417" href="#L417">417</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L418" href="#L418">418</a>             .execute();
<a class="jxr_linenumber" name="L419" href="#L419">419</a> 
<a class="jxr_linenumber" name="L420" href="#L420">420</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L421" href="#L421">421</a>         {
<a class="jxr_linenumber" name="L422" href="#L422">422</a>             <strong class="jxr_keyword">this</strong>.projectVersionMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L423" href="#L423">423</a>             removeMailingList( row.getKey() );
<a class="jxr_linenumber" name="L424" href="#L424">424</a>         }
<a class="jxr_linenumber" name="L425" href="#L425">425</a> 
<a class="jxr_linenumber" name="L426" href="#L426">426</a>         result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L427" href="#L427">427</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L428" href="#L428">428</a>             .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L429" href="#L429">429</a>             .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L430" href="#L430">430</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L431" href="#L431">431</a>             .execute();
<a class="jxr_linenumber" name="L432" href="#L432">432</a> 
<a class="jxr_linenumber" name="L433" href="#L433">433</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L434" href="#L434">434</a>         {
<a class="jxr_linenumber" name="L435" href="#L435">435</a>             <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L436" href="#L436">436</a>         }
<a class="jxr_linenumber" name="L437" href="#L437">437</a> 
<a class="jxr_linenumber" name="L438" href="#L438">438</a>         result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L439" href="#L439">439</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L440" href="#L440">440</a>             .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L441" href="#L441">441</a>             .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L442" href="#L442">442</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L443" href="#L443">443</a>             .execute();
<a class="jxr_linenumber" name="L444" href="#L444">444</a> 
<a class="jxr_linenumber" name="L445" href="#L445">445</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L446" href="#L446">446</a>         {
<a class="jxr_linenumber" name="L447" href="#L447">447</a>             <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L448" href="#L448">448</a>         }
<a class="jxr_linenumber" name="L449" href="#L449">449</a> 
<a class="jxr_linenumber" name="L450" href="#L450">450</a> 
<a class="jxr_linenumber" name="L451" href="#L451">451</a>     }
<a class="jxr_linenumber" name="L452" href="#L452">452</a> 
<a class="jxr_linenumber" name="L453" href="#L453">453</a>     @Override
<a class="jxr_linenumber" name="L454" href="#L454">454</a>     <strong class="jxr_keyword">public</strong> Collection&lt;String&gt; getRepositories()
<a class="jxr_linenumber" name="L455" href="#L455">455</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L456" href="#L456">456</a>     {
<a class="jxr_linenumber" name="L457" href="#L457">457</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L458" href="#L458">458</a>         {
<a class="jxr_linenumber" name="L459" href="#L459">459</a>             logger.debug( <span class="jxr_string">"getRepositories"</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">final</strong> QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; cResult = <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L462" href="#L462">462</a>                 HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L463" href="#L463">463</a>                                                  ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L464" href="#L464">464</a>                     .setColumnFamily( cassandraArchivaManager.getRepositoryFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L465" href="#L465">465</a>                     .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L466" href="#L466">466</a>                     .setRange( <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, false, Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L467" href="#L467">467</a>                     .execute();
<a class="jxr_linenumber" name="L468" href="#L468">468</a> 
<a class="jxr_linenumber" name="L469" href="#L469">469</a>             List&lt;String&gt; repoIds = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( cResult.get().getCount() );
<a class="jxr_linenumber" name="L470" href="#L470">470</a> 
<a class="jxr_linenumber" name="L471" href="#L471">471</a>             <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : cResult.get() )
<a class="jxr_linenumber" name="L472" href="#L472">472</a>             {
<a class="jxr_linenumber" name="L473" href="#L473">473</a>                 repoIds.add( getStringValue( row.getColumnSlice(), REPOSITORY_NAME.toString() ) );
<a class="jxr_linenumber" name="L474" href="#L474">474</a>             }
<a class="jxr_linenumber" name="L475" href="#L475">475</a> 
<a class="jxr_linenumber" name="L476" href="#L476">476</a>             <strong class="jxr_keyword">return</strong> repoIds;
<a class="jxr_linenumber" name="L477" href="#L477">477</a>         }
<a class="jxr_linenumber" name="L478" href="#L478">478</a>         <strong class="jxr_keyword">catch</strong> ( PersistenceException e )
<a class="jxr_linenumber" name="L479" href="#L479">479</a>         {
<a class="jxr_linenumber" name="L480" href="#L480">480</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>( e.getMessage(), e );
<a class="jxr_linenumber" name="L481" href="#L481">481</a>         }
<a class="jxr_linenumber" name="L482" href="#L482">482</a> 
<a class="jxr_linenumber" name="L483" href="#L483">483</a>     }
<a class="jxr_linenumber" name="L484" href="#L484">484</a> 
<a class="jxr_linenumber" name="L485" href="#L485">485</a>     <em class="jxr_comment">// FIXME this one need peformance improvement maybe a cache?</em>
<a class="jxr_linenumber" name="L486" href="#L486">486</a>     @Override
<a class="jxr_linenumber" name="L487" href="#L487">487</a>     <strong class="jxr_keyword">public</strong> Collection&lt;String&gt; getRootNamespaces( <strong class="jxr_keyword">final</strong> String repoId )
<a class="jxr_linenumber" name="L488" href="#L488">488</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataResolutionException.html">MetadataResolutionException</a>
<a class="jxr_linenumber" name="L489" href="#L489">489</a>     {
<a class="jxr_linenumber" name="L490" href="#L490">490</a> 
<a class="jxr_linenumber" name="L491" href="#L491">491</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L492" href="#L492">492</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L493" href="#L493">493</a>             .setColumnFamily( cassandraArchivaManager.getNamespaceFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L494" href="#L494">494</a>             .setColumnNames( NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L495" href="#L495">495</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L496" href="#L496">496</a>             .execute();
<a class="jxr_linenumber" name="L497" href="#L497">497</a> 
<a class="jxr_linenumber" name="L498" href="#L498">498</a>         Set&lt;String&gt; namespaces = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L499" href="#L499">499</a> 
<a class="jxr_linenumber" name="L500" href="#L500">500</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L501" href="#L501">501</a>         {
<a class="jxr_linenumber" name="L502" href="#L502">502</a>             namespaces.add( StringUtils.substringBefore( getStringValue( row.getColumnSlice(), NAME.toString() ), <span class="jxr_string">"."</span> ) );
<a class="jxr_linenumber" name="L503" href="#L503">503</a>         }
<a class="jxr_linenumber" name="L504" href="#L504">504</a> 
<a class="jxr_linenumber" name="L505" href="#L505">505</a>         <strong class="jxr_keyword">return</strong> namespaces;
<a class="jxr_linenumber" name="L506" href="#L506">506</a>     }
<a class="jxr_linenumber" name="L507" href="#L507">507</a> 
<a class="jxr_linenumber" name="L508" href="#L508">508</a>     <em class="jxr_comment">// FIXME this one need peformance improvement maybe a cache?</em>
<a class="jxr_linenumber" name="L509" href="#L509">509</a>     @Override
<a class="jxr_linenumber" name="L510" href="#L510">510</a>     <strong class="jxr_keyword">public</strong> Collection&lt;String&gt; getNamespaces( <strong class="jxr_keyword">final</strong> String repoId, <strong class="jxr_keyword">final</strong> String namespaceId )
<a class="jxr_linenumber" name="L511" href="#L511">511</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataResolutionException.html">MetadataResolutionException</a>
<a class="jxr_linenumber" name="L512" href="#L512">512</a>     {
<a class="jxr_linenumber" name="L513" href="#L513">513</a> 
<a class="jxr_linenumber" name="L514" href="#L514">514</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L515" href="#L515">515</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L516" href="#L516">516</a>             .setColumnFamily( cassandraArchivaManager.getNamespaceFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L517" href="#L517">517</a>             .setColumnNames( NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L518" href="#L518">518</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L519" href="#L519">519</a>             .execute();
<a class="jxr_linenumber" name="L520" href="#L520">520</a> 
<a class="jxr_linenumber" name="L521" href="#L521">521</a>         List&lt;String&gt; namespaces = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L522" href="#L522">522</a> 
<a class="jxr_linenumber" name="L523" href="#L523">523</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L524" href="#L524">524</a>         {
<a class="jxr_linenumber" name="L525" href="#L525">525</a>             String currentNamespace = getStringValue( row.getColumnSlice(), NAME.toString() );
<a class="jxr_linenumber" name="L526" href="#L526">526</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.startsWith( currentNamespace, namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L527" href="#L527">527</a>                 &amp;&amp; ( StringUtils.length( currentNamespace ) &gt; StringUtils.length( namespaceId ) ) )
<a class="jxr_linenumber" name="L528" href="#L528">528</a>             {
<a class="jxr_linenumber" name="L529" href="#L529">529</a>                 <em class="jxr_comment">// store after namespaceId '.' but before next '.'</em>
<a class="jxr_linenumber" name="L530" href="#L530">530</a>                 <em class="jxr_comment">// call org namespace org.apache.maven.shared -&gt; stored apache</em>
<a class="jxr_linenumber" name="L531" href="#L531">531</a> 
<a class="jxr_linenumber" name="L532" href="#L532">532</a>                 String calledNamespace = StringUtils.endsWith( namespaceId, <span class="jxr_string">"."</span> ) ? namespaceId : namespaceId + <span class="jxr_string">"."</span>;
<a class="jxr_linenumber" name="L533" href="#L533">533</a>                 String storedNamespace = StringUtils.substringAfter( currentNamespace, calledNamespace );
<a class="jxr_linenumber" name="L534" href="#L534">534</a> 
<a class="jxr_linenumber" name="L535" href="#L535">535</a>                 storedNamespace = StringUtils.substringBefore( storedNamespace, <span class="jxr_string">"."</span> );
<a class="jxr_linenumber" name="L536" href="#L536">536</a> 
<a class="jxr_linenumber" name="L537" href="#L537">537</a>                 namespaces.add( storedNamespace );
<a class="jxr_linenumber" name="L538" href="#L538">538</a>             }
<a class="jxr_linenumber" name="L539" href="#L539">539</a>         }
<a class="jxr_linenumber" name="L540" href="#L540">540</a> 
<a class="jxr_linenumber" name="L541" href="#L541">541</a>         <strong class="jxr_keyword">return</strong> namespaces;
<a class="jxr_linenumber" name="L542" href="#L542">542</a> 
<a class="jxr_linenumber" name="L543" href="#L543">543</a>     }
<a class="jxr_linenumber" name="L544" href="#L544">544</a> 
<a class="jxr_linenumber" name="L545" href="#L545">545</a>     <em class="jxr_comment">// only use for testing purpose</em>
<a class="jxr_linenumber" name="L546" href="#L546">546</a>     <strong class="jxr_keyword">protected</strong> List&lt;String&gt; getNamespaces( <strong class="jxr_keyword">final</strong> String repoId )
<a class="jxr_linenumber" name="L547" href="#L547">547</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataResolutionException.html">MetadataResolutionException</a>
<a class="jxr_linenumber" name="L548" href="#L548">548</a>     {
<a class="jxr_linenumber" name="L549" href="#L549">549</a> 
<a class="jxr_linenumber" name="L550" href="#L550">550</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L551" href="#L551">551</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L552" href="#L552">552</a>             .setColumnFamily( cassandraArchivaManager.getNamespaceFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L553" href="#L553">553</a>             .setColumnNames( NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L554" href="#L554">554</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L555" href="#L555">555</a>             .execute();
<a class="jxr_linenumber" name="L556" href="#L556">556</a> 
<a class="jxr_linenumber" name="L557" href="#L557">557</a>         List&lt;String&gt; namespaces = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L558" href="#L558">558</a> 
<a class="jxr_linenumber" name="L559" href="#L559">559</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L560" href="#L560">560</a>         {
<a class="jxr_linenumber" name="L561" href="#L561">561</a>             namespaces.add( getStringValue( row.getColumnSlice(), NAME.toString() ) );
<a class="jxr_linenumber" name="L562" href="#L562">562</a>         }
<a class="jxr_linenumber" name="L563" href="#L563">563</a> 
<a class="jxr_linenumber" name="L564" href="#L564">564</a>         <strong class="jxr_keyword">return</strong> namespaces;
<a class="jxr_linenumber" name="L565" href="#L565">565</a>     }
<a class="jxr_linenumber" name="L566" href="#L566">566</a> 
<a class="jxr_linenumber" name="L567" href="#L567">567</a> 
<a class="jxr_linenumber" name="L568" href="#L568">568</a>     @Override
<a class="jxr_linenumber" name="L569" href="#L569">569</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateProject( String repositoryId, ProjectMetadata projectMetadata )
<a class="jxr_linenumber" name="L570" href="#L570">570</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L571" href="#L571">571</a>     {
<a class="jxr_linenumber" name="L572" href="#L572">572</a> 
<a class="jxr_linenumber" name="L573" href="#L573">573</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L574" href="#L574">574</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L575" href="#L575">575</a>             .setColumnFamily( cassandraArchivaManager.getProjectFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L576" href="#L576">576</a>             .setColumnNames( PROJECT_ID.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L577" href="#L577">577</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L578" href="#L578">578</a>             .addEqualsExpression( NAMESPACE_ID.toString(), projectMetadata.getNamespace() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L579" href="#L579">579</a>             .addEqualsExpression( PROJECT_ID.toString(), projectMetadata.getId() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L580" href="#L580">580</a>             .execute();
<a class="jxr_linenumber" name="L581" href="#L581">581</a> 
<a class="jxr_linenumber" name="L582" href="#L582">582</a>         <em class="jxr_comment">// project exists ? if yes return nothing to update here</em>
<a class="jxr_linenumber" name="L583" href="#L583">583</a>         <strong class="jxr_keyword">if</strong> ( result.get().getCount() &gt; 0 )
<a class="jxr_linenumber" name="L584" href="#L584">584</a>         {
<a class="jxr_linenumber" name="L585" href="#L585">585</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L586" href="#L586">586</a>         }
<a class="jxr_linenumber" name="L587" href="#L587">587</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L588" href="#L588">588</a>         {
<a class="jxr_linenumber" name="L589" href="#L589">589</a>             <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a> namespace = updateOrAddNamespace( repositoryId, projectMetadata.getNamespace() );
<a class="jxr_linenumber" name="L590" href="#L590">590</a> 
<a class="jxr_linenumber" name="L591" href="#L591">591</a>             String key =
<a class="jxr_linenumber" name="L592" href="#L592">592</a>                 <strong class="jxr_keyword">new</strong> Project.KeyBuilder().withProjectId( projectMetadata.getId() ).withNamespace( namespace ).build();
<a class="jxr_linenumber" name="L593" href="#L593">593</a> 
<a class="jxr_linenumber" name="L594" href="#L594">594</a>             String cf = cassandraArchivaManager.getProjectFamilyName();
<a class="jxr_linenumber" name="L595" href="#L595">595</a>             projectTemplate.createMutator()
<a class="jxr_linenumber" name="L596" href="#L596">596</a>                 <em class="jxr_comment">//  values</em>
<a class="jxr_linenumber" name="L597" href="#L597">597</a>                 .addInsertion( key, cf, CassandraUtils.column( PROJECT_ID.toString(), projectMetadata.getId() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L598" href="#L598">598</a>                 .addInsertion( key, cf, CassandraUtils.column( REPOSITORY_NAME.toString(), repositoryId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L599" href="#L599">599</a>                 .addInsertion( key, cf, CassandraUtils.column( NAMESPACE_ID.toString(), projectMetadata.getNamespace() ) )<em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L600" href="#L600">600</a>                 .execute();
<a class="jxr_linenumber" name="L601" href="#L601">601</a>         }
<a class="jxr_linenumber" name="L602" href="#L602">602</a>     }
<a class="jxr_linenumber" name="L603" href="#L603">603</a> 
<a class="jxr_linenumber" name="L604" href="#L604">604</a>     @Override
<a class="jxr_linenumber" name="L605" href="#L605">605</a>     <strong class="jxr_keyword">public</strong> Collection&lt;String&gt; getProjects( <strong class="jxr_keyword">final</strong> String repoId, <strong class="jxr_keyword">final</strong> String namespace )
<a class="jxr_linenumber" name="L606" href="#L606">606</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataResolutionException.html">MetadataResolutionException</a>
<a class="jxr_linenumber" name="L607" href="#L607">607</a>     {
<a class="jxr_linenumber" name="L608" href="#L608">608</a> 
<a class="jxr_linenumber" name="L609" href="#L609">609</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L610" href="#L610">610</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L611" href="#L611">611</a>             .setColumnFamily( cassandraArchivaManager.getProjectFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L612" href="#L612">612</a>             .setColumnNames( PROJECT_ID.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L613" href="#L613">613</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L614" href="#L614">614</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L615" href="#L615">615</a>             .execute();
<a class="jxr_linenumber" name="L616" href="#L616">616</a> 
<a class="jxr_linenumber" name="L617" href="#L617">617</a>         <strong class="jxr_keyword">final</strong> Set&lt;String&gt; projects = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L618" href="#L618">618</a> 
<a class="jxr_linenumber" name="L619" href="#L619">619</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L620" href="#L620">620</a>         {
<a class="jxr_linenumber" name="L621" href="#L621">621</a>             projects.add( getStringValue( row.getColumnSlice(), PROJECT_ID.toString() ) );
<a class="jxr_linenumber" name="L622" href="#L622">622</a>         }
<a class="jxr_linenumber" name="L623" href="#L623">623</a> 
<a class="jxr_linenumber" name="L624" href="#L624">624</a>         <strong class="jxr_keyword">return</strong> projects;
<a class="jxr_linenumber" name="L625" href="#L625">625</a>     }
<a class="jxr_linenumber" name="L626" href="#L626">626</a> 
<a class="jxr_linenumber" name="L627" href="#L627">627</a>     @Override
<a class="jxr_linenumber" name="L628" href="#L628">628</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeProject( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> String namespaceId, <strong class="jxr_keyword">final</strong> String projectId )
<a class="jxr_linenumber" name="L629" href="#L629">629</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L630" href="#L630">630</a>     {
<a class="jxr_linenumber" name="L631" href="#L631">631</a> 
<a class="jxr_linenumber" name="L632" href="#L632">632</a>         String key = <strong class="jxr_keyword">new</strong> Project.KeyBuilder() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L633" href="#L633">633</a>             .withProjectId( projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L634" href="#L634">634</a>             .withNamespace( <strong class="jxr_keyword">new</strong> Namespace( namespaceId, <strong class="jxr_keyword">new</strong> Repository( repositoryId ) ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L635" href="#L635">635</a>             .build();
<a class="jxr_linenumber" name="L636" href="#L636">636</a> 
<a class="jxr_linenumber" name="L637" href="#L637">637</a>         <strong class="jxr_keyword">this</strong>.projectTemplate.deleteRow( key );
<a class="jxr_linenumber" name="L638" href="#L638">638</a> 
<a class="jxr_linenumber" name="L639" href="#L639">639</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L640" href="#L640">640</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L641" href="#L641">641</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L642" href="#L642">642</a>             .setColumnNames( ID.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L643" href="#L643">643</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L644" href="#L644">644</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L645" href="#L645">645</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L646" href="#L646">646</a>             .execute();
<a class="jxr_linenumber" name="L647" href="#L647">647</a> 
<a class="jxr_linenumber" name="L648" href="#L648">648</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L649" href="#L649">649</a>         {
<a class="jxr_linenumber" name="L650" href="#L650">650</a>             <strong class="jxr_keyword">this</strong>.projectVersionMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L651" href="#L651">651</a>             removeMailingList( row.getKey() );
<a class="jxr_linenumber" name="L652" href="#L652">652</a>         }
<a class="jxr_linenumber" name="L653" href="#L653">653</a> 
<a class="jxr_linenumber" name="L654" href="#L654">654</a>         result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L655" href="#L655">655</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L656" href="#L656">656</a>             .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L657" href="#L657">657</a>             .setColumnNames( PROJECT_ID.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L658" href="#L658">658</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L659" href="#L659">659</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L660" href="#L660">660</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L661" href="#L661">661</a>             .execute();
<a class="jxr_linenumber" name="L662" href="#L662">662</a> 
<a class="jxr_linenumber" name="L663" href="#L663">663</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L664" href="#L664">664</a>         {
<a class="jxr_linenumber" name="L665" href="#L665">665</a>             <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L666" href="#L666">666</a>         }
<a class="jxr_linenumber" name="L667" href="#L667">667</a>     }
<a class="jxr_linenumber" name="L668" href="#L668">668</a> 
<a class="jxr_linenumber" name="L669" href="#L669">669</a>     @Override
<a class="jxr_linenumber" name="L670" href="#L670">670</a>     <strong class="jxr_keyword">public</strong> Collection&lt;String&gt; getProjectVersions( <strong class="jxr_keyword">final</strong> String repoId, <strong class="jxr_keyword">final</strong> String namespace, <strong class="jxr_keyword">final</strong> String projectId )
<a class="jxr_linenumber" name="L671" href="#L671">671</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataResolutionException.html">MetadataResolutionException</a>
<a class="jxr_linenumber" name="L672" href="#L672">672</a>     {
<a class="jxr_linenumber" name="L673" href="#L673">673</a> 
<a class="jxr_linenumber" name="L674" href="#L674">674</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L675" href="#L675">675</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L676" href="#L676">676</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L677" href="#L677">677</a>             .setColumnNames( PROJECT_VERSION.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L678" href="#L678">678</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L679" href="#L679">679</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L680" href="#L680">680</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L681" href="#L681">681</a>             .execute();
<a class="jxr_linenumber" name="L682" href="#L682">682</a> 
<a class="jxr_linenumber" name="L683" href="#L683">683</a>         <strong class="jxr_keyword">int</strong> count = result.get().getCount();
<a class="jxr_linenumber" name="L684" href="#L684">684</a> 
<a class="jxr_linenumber" name="L685" href="#L685">685</a>         <strong class="jxr_keyword">if</strong> ( count &lt; 1 )
<a class="jxr_linenumber" name="L686" href="#L686">686</a>         {
<a class="jxr_linenumber" name="L687" href="#L687">687</a>             <strong class="jxr_keyword">return</strong> Collections.emptyList();
<a class="jxr_linenumber" name="L688" href="#L688">688</a>         }
<a class="jxr_linenumber" name="L689" href="#L689">689</a> 
<a class="jxr_linenumber" name="L690" href="#L690">690</a>         Set&lt;String&gt; versions = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;( count );
<a class="jxr_linenumber" name="L691" href="#L691">691</a> 
<a class="jxr_linenumber" name="L692" href="#L692">692</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; orderedRows : result.get() )
<a class="jxr_linenumber" name="L693" href="#L693">693</a>         {
<a class="jxr_linenumber" name="L694" href="#L694">694</a>             versions.add( getStringValue( orderedRows.getColumnSlice(), PROJECT_VERSION.toString() ) );
<a class="jxr_linenumber" name="L695" href="#L695">695</a>         }
<a class="jxr_linenumber" name="L696" href="#L696">696</a> 
<a class="jxr_linenumber" name="L697" href="#L697">697</a>         <strong class="jxr_keyword">return</strong> versions;
<a class="jxr_linenumber" name="L698" href="#L698">698</a> 
<a class="jxr_linenumber" name="L699" href="#L699">699</a>     }
<a class="jxr_linenumber" name="L700" href="#L700">700</a> 
<a class="jxr_linenumber" name="L701" href="#L701">701</a>     @Override
<a class="jxr_linenumber" name="L702" href="#L702">702</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/archiva/metadata/model/ProjectMetadata.html">ProjectMetadata</a> getProject( <strong class="jxr_keyword">final</strong> String repoId, <strong class="jxr_keyword">final</strong> String namespace, <strong class="jxr_keyword">final</strong> String id )
<a class="jxr_linenumber" name="L703" href="#L703">703</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataResolutionException.html">MetadataResolutionException</a>
<a class="jxr_linenumber" name="L704" href="#L704">704</a>     {
<a class="jxr_linenumber" name="L705" href="#L705">705</a> 
<a class="jxr_linenumber" name="L706" href="#L706">706</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L707" href="#L707">707</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L708" href="#L708">708</a>             .setColumnFamily( cassandraArchivaManager.getProjectFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L709" href="#L709">709</a>             .setColumnNames( PROJECT_ID.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L710" href="#L710">710</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L711" href="#L711">711</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L712" href="#L712">712</a>             .addEqualsExpression( PROJECT_ID.toString(), id ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L713" href="#L713">713</a>             .execute();
<a class="jxr_linenumber" name="L714" href="#L714">714</a> 
<a class="jxr_linenumber" name="L715" href="#L715">715</a>         <strong class="jxr_keyword">int</strong> count = result.get().getCount();
<a class="jxr_linenumber" name="L716" href="#L716">716</a> 
<a class="jxr_linenumber" name="L717" href="#L717">717</a>         <strong class="jxr_keyword">if</strong> ( count &lt; 1 )
<a class="jxr_linenumber" name="L718" href="#L718">718</a>         {
<a class="jxr_linenumber" name="L719" href="#L719">719</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L720" href="#L720">720</a>         }
<a class="jxr_linenumber" name="L721" href="#L721">721</a> 
<a class="jxr_linenumber" name="L722" href="#L722">722</a>         <a href="../../../../../../org/apache/archiva/metadata/model/ProjectMetadata.html">ProjectMetadata</a> projectMetadata = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/model/ProjectMetadata.html">ProjectMetadata</a>();
<a class="jxr_linenumber" name="L723" href="#L723">723</a>         projectMetadata.setId( id );
<a class="jxr_linenumber" name="L724" href="#L724">724</a>         projectMetadata.setNamespace( namespace );
<a class="jxr_linenumber" name="L725" href="#L725">725</a> 
<a class="jxr_linenumber" name="L726" href="#L726">726</a>         logger.debug( <span class="jxr_string">"getProject repoId: {}, namespace: {}, projectId: {} -&gt; {}"</span>, repoId, namespace, id,
<a class="jxr_linenumber" name="L727" href="#L727">727</a>                       projectMetadata );
<a class="jxr_linenumber" name="L728" href="#L728">728</a> 
<a class="jxr_linenumber" name="L729" href="#L729">729</a>         <strong class="jxr_keyword">return</strong> projectMetadata;
<a class="jxr_linenumber" name="L730" href="#L730">730</a>     }
<a class="jxr_linenumber" name="L731" href="#L731">731</a> 
<a class="jxr_linenumber" name="L732" href="#L732">732</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.html">ProjectVersionMetadataModel</a> mapProjectVersionMetadataModel( ColumnSlice&lt;String, String&gt; columnSlice )
<a class="jxr_linenumber" name="L733" href="#L733">733</a>     {
<a class="jxr_linenumber" name="L734" href="#L734">734</a>         <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.html">ProjectVersionMetadataModel</a> projectVersionMetadataModel = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.html">ProjectVersionMetadataModel</a>();
<a class="jxr_linenumber" name="L735" href="#L735">735</a>         projectVersionMetadataModel.setId( getStringValue( columnSlice, ID.toString() ) );
<a class="jxr_linenumber" name="L736" href="#L736">736</a>         projectVersionMetadataModel.setDescription( getStringValue( columnSlice, DESCRIPTION.toString() ) );
<a class="jxr_linenumber" name="L737" href="#L737">737</a>         projectVersionMetadataModel.setName( getStringValue( columnSlice, NAME.toString() ) );
<a class="jxr_linenumber" name="L738" href="#L738">738</a>         <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a> namespace = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a>( getStringValue( columnSlice, NAMESPACE_ID.toString() ), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L739" href="#L739">739</a>                                              <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Repository.html">Repository</a>( getStringValue( columnSlice, REPOSITORY_NAME.toString() ) ) );
<a class="jxr_linenumber" name="L740" href="#L740">740</a>         projectVersionMetadataModel.setNamespace( namespace );
<a class="jxr_linenumber" name="L741" href="#L741">741</a>         projectVersionMetadataModel.setIncomplete(
<a class="jxr_linenumber" name="L742" href="#L742">742</a>             Boolean.parseBoolean( getStringValue( columnSlice, <span class="jxr_string">"incomplete"</span> ) ) );
<a class="jxr_linenumber" name="L743" href="#L743">743</a>         projectVersionMetadataModel.setProjectId( getStringValue( columnSlice, PROJECT_ID.toString() ) );
<a class="jxr_linenumber" name="L744" href="#L744">744</a>         projectVersionMetadataModel.setUrl( getStringValue( columnSlice, URL.toString() ) );
<a class="jxr_linenumber" name="L745" href="#L745">745</a>         <strong class="jxr_keyword">return</strong> projectVersionMetadataModel;
<a class="jxr_linenumber" name="L746" href="#L746">746</a>     }
<a class="jxr_linenumber" name="L747" href="#L747">747</a> 
<a class="jxr_linenumber" name="L748" href="#L748">748</a> 
<a class="jxr_linenumber" name="L749" href="#L749">749</a>     @Override
<a class="jxr_linenumber" name="L750" href="#L750">750</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateProjectVersion( String repositoryId, String namespaceId, String projectId,
<a class="jxr_linenumber" name="L751" href="#L751">751</a>                                       <a href="../../../../../../org/apache/archiva/metadata/model/ProjectVersionMetadata.html">ProjectVersionMetadata</a> versionMetadata )
<a class="jxr_linenumber" name="L752" href="#L752">752</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L753" href="#L753">753</a>     {
<a class="jxr_linenumber" name="L754" href="#L754">754</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L755" href="#L755">755</a>         {
<a class="jxr_linenumber" name="L756" href="#L756">756</a>             <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a> namespace = getNamespace( repositoryId, namespaceId );
<a class="jxr_linenumber" name="L757" href="#L757">757</a> 
<a class="jxr_linenumber" name="L758" href="#L758">758</a>             <strong class="jxr_keyword">if</strong> ( namespace == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L759" href="#L759">759</a>             {
<a class="jxr_linenumber" name="L760" href="#L760">760</a>                 updateOrAddNamespace( repositoryId, namespaceId );
<a class="jxr_linenumber" name="L761" href="#L761">761</a>             }
<a class="jxr_linenumber" name="L762" href="#L762">762</a> 
<a class="jxr_linenumber" name="L763" href="#L763">763</a>             <strong class="jxr_keyword">if</strong> ( getProject( repositoryId, namespaceId, projectId ) == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L764" href="#L764">764</a>             {
<a class="jxr_linenumber" name="L765" href="#L765">765</a>                 <a href="../../../../../../org/apache/archiva/metadata/model/ProjectMetadata.html">ProjectMetadata</a> projectMetadata = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/model/ProjectMetadata.html">ProjectMetadata</a>();
<a class="jxr_linenumber" name="L766" href="#L766">766</a>                 projectMetadata.setNamespace( namespaceId );
<a class="jxr_linenumber" name="L767" href="#L767">767</a>                 projectMetadata.setId( projectId );
<a class="jxr_linenumber" name="L768" href="#L768">768</a>                 updateProject( repositoryId, projectMetadata );
<a class="jxr_linenumber" name="L769" href="#L769">769</a>             }
<a class="jxr_linenumber" name="L770" href="#L770">770</a> 
<a class="jxr_linenumber" name="L771" href="#L771">771</a>         }
<a class="jxr_linenumber" name="L772" href="#L772">772</a>         <strong class="jxr_keyword">catch</strong> ( MetadataResolutionException e )
<a class="jxr_linenumber" name="L773" href="#L773">773</a>         {
<a class="jxr_linenumber" name="L774" href="#L774">774</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>( e.getMessage(), e );
<a class="jxr_linenumber" name="L775" href="#L775">775</a>         }
<a class="jxr_linenumber" name="L776" href="#L776">776</a> 
<a class="jxr_linenumber" name="L777" href="#L777">777</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L778" href="#L778">778</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L779" href="#L779">779</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L780" href="#L780">780</a>             .setColumnNames( PROJECT_VERSION.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L781" href="#L781">781</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L782" href="#L782">782</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L783" href="#L783">783</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L784" href="#L784">784</a>             .addEqualsExpression( PROJECT_VERSION.toString(), versionMetadata.getId() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L785" href="#L785">785</a>             .execute();
<a class="jxr_linenumber" name="L786" href="#L786">786</a> 
<a class="jxr_linenumber" name="L787" href="#L787">787</a>         <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.html">ProjectVersionMetadataModel</a> projectVersionMetadataModel = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L788" href="#L788">788</a>         <strong class="jxr_keyword">boolean</strong> creation = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L789" href="#L789">789</a>         <strong class="jxr_keyword">if</strong> ( result.get().getCount() &gt; 0 )
<a class="jxr_linenumber" name="L790" href="#L790">790</a>         {
<a class="jxr_linenumber" name="L791" href="#L791">791</a>             projectVersionMetadataModel =
<a class="jxr_linenumber" name="L792" href="#L792">792</a>                 mapProjectVersionMetadataModel( result.get().getList().get( 0 ).getColumnSlice() );
<a class="jxr_linenumber" name="L793" href="#L793">793</a>             creation = false;
<a class="jxr_linenumber" name="L794" href="#L794">794</a>         }
<a class="jxr_linenumber" name="L795" href="#L795">795</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L796" href="#L796">796</a>         {
<a class="jxr_linenumber" name="L797" href="#L797">797</a>             projectVersionMetadataModel = getModelMapper().map( versionMetadata, ProjectVersionMetadataModel.<strong class="jxr_keyword">class</strong> );
<a class="jxr_linenumber" name="L798" href="#L798">798</a>         }
<a class="jxr_linenumber" name="L799" href="#L799">799</a> 
<a class="jxr_linenumber" name="L800" href="#L800">800</a>         projectVersionMetadataModel.setProjectId( projectId );
<a class="jxr_linenumber" name="L801" href="#L801">801</a>         projectVersionMetadataModel.setNamespace( <strong class="jxr_keyword">new</strong> Namespace( namespaceId, <strong class="jxr_keyword">new</strong> Repository( repositoryId ) ) );
<a class="jxr_linenumber" name="L802" href="#L802">802</a> 
<a class="jxr_linenumber" name="L803" href="#L803">803</a>         projectVersionMetadataModel.setCiManagement( versionMetadata.getCiManagement() );
<a class="jxr_linenumber" name="L804" href="#L804">804</a>         projectVersionMetadataModel.setIssueManagement( versionMetadata.getIssueManagement() );
<a class="jxr_linenumber" name="L805" href="#L805">805</a>         projectVersionMetadataModel.setOrganization( versionMetadata.getOrganization() );
<a class="jxr_linenumber" name="L806" href="#L806">806</a>         projectVersionMetadataModel.setScm( versionMetadata.getScm() );
<a class="jxr_linenumber" name="L807" href="#L807">807</a> 
<a class="jxr_linenumber" name="L808" href="#L808">808</a>         projectVersionMetadataModel.setMailingLists( versionMetadata.getMailingLists() );
<a class="jxr_linenumber" name="L809" href="#L809">809</a>         projectVersionMetadataModel.setDependencies( versionMetadata.getDependencies() );
<a class="jxr_linenumber" name="L810" href="#L810">810</a>         projectVersionMetadataModel.setLicenses( versionMetadata.getLicenses() );
<a class="jxr_linenumber" name="L811" href="#L811">811</a> 
<a class="jxr_linenumber" name="L812" href="#L812">812</a>         <em class="jxr_comment">// we don't test of repository and namespace really exist !</em>
<a class="jxr_linenumber" name="L813" href="#L813">813</a>         String key = <strong class="jxr_keyword">new</strong> ProjectVersionMetadataModel.KeyBuilder() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L814" href="#L814">814</a>             .withRepository( repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L815" href="#L815">815</a>             .withNamespace( namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L816" href="#L816">816</a>             .withProjectId( projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L817" href="#L817">817</a>             .withProjectVersion( versionMetadata.getVersion() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L818" href="#L818">818</a>             .withId( versionMetadata.getId() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L819" href="#L819">819</a>             .build();
<a class="jxr_linenumber" name="L820" href="#L820">820</a> 
<a class="jxr_linenumber" name="L821" href="#L821">821</a>         <em class="jxr_comment">// FIXME nested objects to store!!!</em>
<a class="jxr_linenumber" name="L822" href="#L822">822</a>         <strong class="jxr_keyword">if</strong> ( creation )
<a class="jxr_linenumber" name="L823" href="#L823">823</a>         {
<a class="jxr_linenumber" name="L824" href="#L824">824</a>             String cf = cassandraArchivaManager.getProjectVersionMetadataFamilyName();
<a class="jxr_linenumber" name="L825" href="#L825">825</a>             Mutator&lt;String&gt; mutator = projectVersionMetadataTemplate.createMutator()
<a class="jxr_linenumber" name="L826" href="#L826">826</a>                 <em class="jxr_comment">//  values</em>
<a class="jxr_linenumber" name="L827" href="#L827">827</a>                 .addInsertion( key, cf, column( PROJECT_ID.toString(), projectId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L828" href="#L828">828</a>                 .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), repositoryId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L829" href="#L829">829</a>                 .addInsertion( key, cf, column( NAMESPACE_ID.toString(), namespaceId ) )<em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L830" href="#L830">830</a>                 .addInsertion( key, cf, column( PROJECT_VERSION.toString(), versionMetadata.getVersion() ) ); <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L831" href="#L831">831</a> 
<a class="jxr_linenumber" name="L832" href="#L832">832</a>             addInsertion( mutator, key, cf, DESCRIPTION.toString(), versionMetadata.getDescription() );
<a class="jxr_linenumber" name="L833" href="#L833">833</a> 
<a class="jxr_linenumber" name="L834" href="#L834">834</a>             addInsertion( mutator, key, cf, NAME.toString(), versionMetadata.getName() );
<a class="jxr_linenumber" name="L835" href="#L835">835</a> 
<a class="jxr_linenumber" name="L836" href="#L836">836</a>             addInsertion( mutator, key, cf, <span class="jxr_string">"incomplete"</span>, Boolean.toString( versionMetadata.isIncomplete() ) );
<a class="jxr_linenumber" name="L837" href="#L837">837</a> 
<a class="jxr_linenumber" name="L838" href="#L838">838</a>             addInsertion( mutator, key, cf, URL.toString(), versionMetadata.getUrl() );
<a class="jxr_linenumber" name="L839" href="#L839">839</a>             {
<a class="jxr_linenumber" name="L840" href="#L840">840</a>                 <a href="../../../../../../org/apache/archiva/metadata/model/CiManagement.html">CiManagement</a> ci = versionMetadata.getCiManagement();
<a class="jxr_linenumber" name="L841" href="#L841">841</a>                 <strong class="jxr_keyword">if</strong> ( ci != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L842" href="#L842">842</a>                 {
<a class="jxr_linenumber" name="L843" href="#L843">843</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"ciManagement.system"</span>, ci.getSystem() );
<a class="jxr_linenumber" name="L844" href="#L844">844</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"ciManagement.url"</span>, ci.getUrl() );
<a class="jxr_linenumber" name="L845" href="#L845">845</a>                 }
<a class="jxr_linenumber" name="L846" href="#L846">846</a>             }
<a class="jxr_linenumber" name="L847" href="#L847">847</a> 
<a class="jxr_linenumber" name="L848" href="#L848">848</a>             {
<a class="jxr_linenumber" name="L849" href="#L849">849</a>                 <a href="../../../../../../org/apache/archiva/metadata/model/IssueManagement.html">IssueManagement</a> issueManagement = versionMetadata.getIssueManagement();
<a class="jxr_linenumber" name="L850" href="#L850">850</a> 
<a class="jxr_linenumber" name="L851" href="#L851">851</a>                 <strong class="jxr_keyword">if</strong> ( issueManagement != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L852" href="#L852">852</a>                 {
<a class="jxr_linenumber" name="L853" href="#L853">853</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"issueManagement.system"</span>, issueManagement.getSystem() );
<a class="jxr_linenumber" name="L854" href="#L854">854</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"issueManagement.url"</span>, issueManagement.getUrl() );
<a class="jxr_linenumber" name="L855" href="#L855">855</a>                 }
<a class="jxr_linenumber" name="L856" href="#L856">856</a>             }
<a class="jxr_linenumber" name="L857" href="#L857">857</a> 
<a class="jxr_linenumber" name="L858" href="#L858">858</a>             {
<a class="jxr_linenumber" name="L859" href="#L859">859</a>                 <a href="../../../../../../org/apache/archiva/metadata/model/Organization.html">Organization</a> organization = versionMetadata.getOrganization();
<a class="jxr_linenumber" name="L860" href="#L860">860</a>                 <strong class="jxr_keyword">if</strong> ( organization != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L861" href="#L861">861</a>                 {
<a class="jxr_linenumber" name="L862" href="#L862">862</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"organization.name"</span>, organization.getName() );
<a class="jxr_linenumber" name="L863" href="#L863">863</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"organization.url"</span>, organization.getUrl() );
<a class="jxr_linenumber" name="L864" href="#L864">864</a>                 }
<a class="jxr_linenumber" name="L865" href="#L865">865</a>             }
<a class="jxr_linenumber" name="L866" href="#L866">866</a> 
<a class="jxr_linenumber" name="L867" href="#L867">867</a>             {
<a class="jxr_linenumber" name="L868" href="#L868">868</a>                 <a href="../../../../../../org/apache/archiva/metadata/model/Scm.html">Scm</a> scm = versionMetadata.getScm();
<a class="jxr_linenumber" name="L869" href="#L869">869</a>                 <strong class="jxr_keyword">if</strong> ( scm != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L870" href="#L870">870</a>                 {
<a class="jxr_linenumber" name="L871" href="#L871">871</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"scm.url"</span>, scm.getUrl() );
<a class="jxr_linenumber" name="L872" href="#L872">872</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"scm.connection"</span>, scm.getConnection() );
<a class="jxr_linenumber" name="L873" href="#L873">873</a>                     addInsertion( mutator, key, cf, <span class="jxr_string">"scm.developerConnection"</span>, scm.getDeveloperConnection() );
<a class="jxr_linenumber" name="L874" href="#L874">874</a>                 }
<a class="jxr_linenumber" name="L875" href="#L875">875</a>             }
<a class="jxr_linenumber" name="L876" href="#L876">876</a> 
<a class="jxr_linenumber" name="L877" href="#L877">877</a>             recordMailingList( key, versionMetadata.getMailingLists() );
<a class="jxr_linenumber" name="L878" href="#L878">878</a> 
<a class="jxr_linenumber" name="L879" href="#L879">879</a>             recordLicenses( key, versionMetadata.getLicenses() );
<a class="jxr_linenumber" name="L880" href="#L880">880</a> 
<a class="jxr_linenumber" name="L881" href="#L881">881</a>             recordDependencies( key, versionMetadata.getDependencies(), repositoryId );
<a class="jxr_linenumber" name="L882" href="#L882">882</a> 
<a class="jxr_linenumber" name="L883" href="#L883">883</a>             MutationResult mutationResult = mutator.execute();
<a class="jxr_linenumber" name="L884" href="#L884">884</a>         }
<a class="jxr_linenumber" name="L885" href="#L885">885</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L886" href="#L886">886</a>         {
<a class="jxr_linenumber" name="L887" href="#L887">887</a>             ColumnFamilyUpdater&lt;String, String&gt; updater = projectVersionMetadataTemplate.createUpdater( key );
<a class="jxr_linenumber" name="L888" href="#L888">888</a>             addUpdateStringValue( updater, PROJECT_ID.toString(), projectId );
<a class="jxr_linenumber" name="L889" href="#L889">889</a>             addUpdateStringValue( updater, REPOSITORY_NAME.toString(), repositoryId );
<a class="jxr_linenumber" name="L890" href="#L890">890</a>             addUpdateStringValue( updater, NAMESPACE_ID.toString(), namespaceId );
<a class="jxr_linenumber" name="L891" href="#L891">891</a>             addUpdateStringValue( updater, PROJECT_VERSION.toString(), versionMetadata.getVersion() );
<a class="jxr_linenumber" name="L892" href="#L892">892</a>             addUpdateStringValue( updater, DESCRIPTION.toString(), versionMetadata.getDescription() );
<a class="jxr_linenumber" name="L893" href="#L893">893</a> 
<a class="jxr_linenumber" name="L894" href="#L894">894</a>             addUpdateStringValue( updater, NAME.toString(), versionMetadata.getName() );
<a class="jxr_linenumber" name="L895" href="#L895">895</a> 
<a class="jxr_linenumber" name="L896" href="#L896">896</a>             updater.setString( <span class="jxr_string">"incomplete"</span>, Boolean.toString( versionMetadata.isIncomplete() ) );
<a class="jxr_linenumber" name="L897" href="#L897">897</a>             addUpdateStringValue( updater, URL.toString(), versionMetadata.getUrl() );
<a class="jxr_linenumber" name="L898" href="#L898">898</a> 
<a class="jxr_linenumber" name="L899" href="#L899">899</a>             {
<a class="jxr_linenumber" name="L900" href="#L900">900</a>                 <a href="../../../../../../org/apache/archiva/metadata/model/CiManagement.html">CiManagement</a> ci = versionMetadata.getCiManagement();
<a class="jxr_linenumber" name="L901" href="#L901">901</a>                 <strong class="jxr_keyword">if</strong> ( ci != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L902" href="#L902">902</a>                 {
<a class="jxr_linenumber" name="L903" href="#L903">903</a>                     addUpdateStringValue( updater, <span class="jxr_string">"ciManagement.system"</span>, ci.getSystem() );
<a class="jxr_linenumber" name="L904" href="#L904">904</a>                     addUpdateStringValue( updater, <span class="jxr_string">"ciManagement.url"</span>, ci.getUrl() );
<a class="jxr_linenumber" name="L905" href="#L905">905</a>                 }
<a class="jxr_linenumber" name="L906" href="#L906">906</a>             }
<a class="jxr_linenumber" name="L907" href="#L907">907</a>             {
<a class="jxr_linenumber" name="L908" href="#L908">908</a>                 <a href="../../../../../../org/apache/archiva/metadata/model/IssueManagement.html">IssueManagement</a> issueManagement = versionMetadata.getIssueManagement();
<a class="jxr_linenumber" name="L909" href="#L909">909</a>                 <strong class="jxr_keyword">if</strong> ( issueManagement != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L910" href="#L910">910</a>                 {
<a class="jxr_linenumber" name="L911" href="#L911">911</a>                     addUpdateStringValue( updater, <span class="jxr_string">"issueManagement.system"</span>, issueManagement.getSystem() );
<a class="jxr_linenumber" name="L912" href="#L912">912</a>                     addUpdateStringValue( updater, <span class="jxr_string">"issueManagement.url"</span>, issueManagement.getUrl() );
<a class="jxr_linenumber" name="L913" href="#L913">913</a>                 }
<a class="jxr_linenumber" name="L914" href="#L914">914</a>             }
<a class="jxr_linenumber" name="L915" href="#L915">915</a>             {
<a class="jxr_linenumber" name="L916" href="#L916">916</a>                 <a href="../../../../../../org/apache/archiva/metadata/model/Organization.html">Organization</a> organization = versionMetadata.getOrganization();
<a class="jxr_linenumber" name="L917" href="#L917">917</a>                 <strong class="jxr_keyword">if</strong> ( organization != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L918" href="#L918">918</a>                 {
<a class="jxr_linenumber" name="L919" href="#L919">919</a>                     addUpdateStringValue( updater, <span class="jxr_string">"organization.name"</span>, organization.getName() );
<a class="jxr_linenumber" name="L920" href="#L920">920</a>                     addUpdateStringValue( updater, <span class="jxr_string">"organization.url"</span>, organization.getUrl() );
<a class="jxr_linenumber" name="L921" href="#L921">921</a>                 }
<a class="jxr_linenumber" name="L922" href="#L922">922</a>             }
<a class="jxr_linenumber" name="L923" href="#L923">923</a>             {
<a class="jxr_linenumber" name="L924" href="#L924">924</a>                 <a href="../../../../../../org/apache/archiva/metadata/model/Scm.html">Scm</a> scm = versionMetadata.getScm();
<a class="jxr_linenumber" name="L925" href="#L925">925</a>                 <strong class="jxr_keyword">if</strong> ( scm != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L926" href="#L926">926</a>                 {
<a class="jxr_linenumber" name="L927" href="#L927">927</a>                     addUpdateStringValue( updater, <span class="jxr_string">"scm.url"</span>, scm.getUrl() );
<a class="jxr_linenumber" name="L928" href="#L928">928</a>                     addUpdateStringValue( updater, <span class="jxr_string">"scm.connection"</span>, scm.getConnection() );
<a class="jxr_linenumber" name="L929" href="#L929">929</a>                     addUpdateStringValue( updater, <span class="jxr_string">"scm.developerConnection"</span>, scm.getDeveloperConnection() );
<a class="jxr_linenumber" name="L930" href="#L930">930</a>                 }
<a class="jxr_linenumber" name="L931" href="#L931">931</a>             }
<a class="jxr_linenumber" name="L932" href="#L932">932</a> 
<a class="jxr_linenumber" name="L933" href="#L933">933</a>             <em class="jxr_comment">// update is a delete record</em>
<a class="jxr_linenumber" name="L934" href="#L934">934</a>             removeMailingList( key );
<a class="jxr_linenumber" name="L935" href="#L935">935</a>             recordMailingList( key, versionMetadata.getMailingLists() );
<a class="jxr_linenumber" name="L936" href="#L936">936</a> 
<a class="jxr_linenumber" name="L937" href="#L937">937</a>             removeLicenses( key );
<a class="jxr_linenumber" name="L938" href="#L938">938</a>             recordLicenses( key, versionMetadata.getLicenses() );
<a class="jxr_linenumber" name="L939" href="#L939">939</a> 
<a class="jxr_linenumber" name="L940" href="#L940">940</a>             removeDependencies( key );
<a class="jxr_linenumber" name="L941" href="#L941">941</a>             recordDependencies( key, versionMetadata.getDependencies(), repositoryId );
<a class="jxr_linenumber" name="L942" href="#L942">942</a> 
<a class="jxr_linenumber" name="L943" href="#L943">943</a>             projectVersionMetadataTemplate.update( updater );
<a class="jxr_linenumber" name="L944" href="#L944">944</a> 
<a class="jxr_linenumber" name="L945" href="#L945">945</a>         }
<a class="jxr_linenumber" name="L946" href="#L946">946</a> 
<a class="jxr_linenumber" name="L947" href="#L947">947</a>         <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.html">ArtifactMetadataModel</a> artifactMetadataModel = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.html">ArtifactMetadataModel</a>();
<a class="jxr_linenumber" name="L948" href="#L948">948</a>         artifactMetadataModel.setRepositoryId( repositoryId );
<a class="jxr_linenumber" name="L949" href="#L949">949</a>         artifactMetadataModel.setNamespace( namespaceId );
<a class="jxr_linenumber" name="L950" href="#L950">950</a>         artifactMetadataModel.setProject( projectId );
<a class="jxr_linenumber" name="L951" href="#L951">951</a>         artifactMetadataModel.setProjectVersion( versionMetadata.getVersion() );
<a class="jxr_linenumber" name="L952" href="#L952">952</a>         artifactMetadataModel.setVersion( versionMetadata.getVersion() );
<a class="jxr_linenumber" name="L953" href="#L953">953</a>         updateFacets( versionMetadata, artifactMetadataModel );
<a class="jxr_linenumber" name="L954" href="#L954">954</a> 
<a class="jxr_linenumber" name="L955" href="#L955">955</a>     }
<a class="jxr_linenumber" name="L956" href="#L956">956</a> 
<a class="jxr_linenumber" name="L957" href="#L957">957</a> 
<a class="jxr_linenumber" name="L958" href="#L958">958</a>     @Override
<a class="jxr_linenumber" name="L959" href="#L959">959</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/archiva/metadata/model/ProjectVersionMetadata.html">ProjectVersionMetadata</a> getProjectVersion( <strong class="jxr_keyword">final</strong> String repoId, <strong class="jxr_keyword">final</strong> String namespace,
<a class="jxr_linenumber" name="L960" href="#L960">960</a>                                                      <strong class="jxr_keyword">final</strong> String projectId, <strong class="jxr_keyword">final</strong> String projectVersion )
<a class="jxr_linenumber" name="L961" href="#L961">961</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataResolutionException.html">MetadataResolutionException</a>
<a class="jxr_linenumber" name="L962" href="#L962">962</a>     {
<a class="jxr_linenumber" name="L963" href="#L963">963</a> 
<a class="jxr_linenumber" name="L964" href="#L964">964</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L965" href="#L965">965</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L966" href="#L966">966</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L967" href="#L967">967</a>             .setColumnNames( PROJECT_VERSION.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L968" href="#L968">968</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L969" href="#L969">969</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L970" href="#L970">970</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L971" href="#L971">971</a>             .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L972" href="#L972">972</a>             .execute();
<a class="jxr_linenumber" name="L973" href="#L973">973</a> 
<a class="jxr_linenumber" name="L974" href="#L974">974</a>         <strong class="jxr_keyword">if</strong> ( result.get().getCount() &lt; 1 )
<a class="jxr_linenumber" name="L975" href="#L975">975</a>         {
<a class="jxr_linenumber" name="L976" href="#L976">976</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L977" href="#L977">977</a>         }
<a class="jxr_linenumber" name="L978" href="#L978">978</a> 
<a class="jxr_linenumber" name="L979" href="#L979">979</a>         String key = result.get().iterator().next().getKey();
<a class="jxr_linenumber" name="L980" href="#L980">980</a> 
<a class="jxr_linenumber" name="L981" href="#L981">981</a>         ColumnFamilyResult&lt;String, String&gt; columnFamilyResult = <strong class="jxr_keyword">this</strong>.projectVersionMetadataTemplate.queryColumns( key );
<a class="jxr_linenumber" name="L982" href="#L982">982</a> 
<a class="jxr_linenumber" name="L983" href="#L983">983</a>         <strong class="jxr_keyword">if</strong> ( !columnFamilyResult.hasResults() )
<a class="jxr_linenumber" name="L984" href="#L984">984</a>         {
<a class="jxr_linenumber" name="L985" href="#L985">985</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L986" href="#L986">986</a>         }
<a class="jxr_linenumber" name="L987" href="#L987">987</a> 
<a class="jxr_linenumber" name="L988" href="#L988">988</a>         <a href="../../../../../../org/apache/archiva/metadata/model/ProjectVersionMetadata.html">ProjectVersionMetadata</a> projectVersionMetadata = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/model/ProjectVersionMetadata.html">ProjectVersionMetadata</a>();
<a class="jxr_linenumber" name="L989" href="#L989">989</a>         projectVersionMetadata.setId( columnFamilyResult.getString( PROJECT_VERSION.toString() ) );
<a class="jxr_linenumber" name="L990" href="#L990">990</a>         projectVersionMetadata.setDescription( columnFamilyResult.getString( DESCRIPTION.toString() ) );
<a class="jxr_linenumber" name="L991" href="#L991">991</a>         projectVersionMetadata.setName( columnFamilyResult.getString( NAME.toString() ) );
<a class="jxr_linenumber" name="L992" href="#L992">992</a> 
<a class="jxr_linenumber" name="L993" href="#L993">993</a>         projectVersionMetadata.setIncomplete( Boolean.parseBoolean( columnFamilyResult.getString( <span class="jxr_string">"incomplete"</span> ) ) );
<a class="jxr_linenumber" name="L994" href="#L994">994</a> 
<a class="jxr_linenumber" name="L995" href="#L995">995</a>         projectVersionMetadata.setUrl( columnFamilyResult.getString( URL.toString() ) );
<a class="jxr_linenumber" name="L996" href="#L996">996</a>         {
<a class="jxr_linenumber" name="L997" href="#L997">997</a>             String ciUrl = columnFamilyResult.getString( <span class="jxr_string">"ciManagement.url"</span> );
<a class="jxr_linenumber" name="L998" href="#L998">998</a>             String ciSystem = columnFamilyResult.getString( <span class="jxr_string">"ciManagement.system"</span> );
<a class="jxr_linenumber" name="L999" href="#L999">999</a> 
<a class="jxr_linenumber" name="L1000" href="#L1000">1000</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( ciSystem ) || StringUtils.isNotEmpty( ciUrl ) )
<a class="jxr_linenumber" name="L1001" href="#L1001">1001</a>             {
<a class="jxr_linenumber" name="L1002" href="#L1002">1002</a>                 projectVersionMetadata.setCiManagement( <strong class="jxr_keyword">new</strong> CiManagement( ciSystem, ciUrl ) );
<a class="jxr_linenumber" name="L1003" href="#L1003">1003</a>             }
<a class="jxr_linenumber" name="L1004" href="#L1004">1004</a>         }
<a class="jxr_linenumber" name="L1005" href="#L1005">1005</a>         {
<a class="jxr_linenumber" name="L1006" href="#L1006">1006</a>             String issueUrl = columnFamilyResult.getString( <span class="jxr_string">"issueManagement.url"</span> );
<a class="jxr_linenumber" name="L1007" href="#L1007">1007</a>             String issueSystem = columnFamilyResult.getString( <span class="jxr_string">"issueManagement.system"</span> );
<a class="jxr_linenumber" name="L1008" href="#L1008">1008</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( issueSystem ) || StringUtils.isNotEmpty( issueUrl ) )
<a class="jxr_linenumber" name="L1009" href="#L1009">1009</a>             {
<a class="jxr_linenumber" name="L1010" href="#L1010">1010</a>                 projectVersionMetadata.setIssueManagement( <strong class="jxr_keyword">new</strong> IssueManagement( issueSystem, issueUrl ) );
<a class="jxr_linenumber" name="L1011" href="#L1011">1011</a>             }
<a class="jxr_linenumber" name="L1012" href="#L1012">1012</a>         }
<a class="jxr_linenumber" name="L1013" href="#L1013">1013</a>         {
<a class="jxr_linenumber" name="L1014" href="#L1014">1014</a>             String organizationUrl = columnFamilyResult.getString( <span class="jxr_string">"organization.url"</span> );
<a class="jxr_linenumber" name="L1015" href="#L1015">1015</a>             String organizationName = columnFamilyResult.getString( <span class="jxr_string">"organization.name"</span> );
<a class="jxr_linenumber" name="L1016" href="#L1016">1016</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( organizationUrl ) || StringUtils.isNotEmpty( organizationName ) )
<a class="jxr_linenumber" name="L1017" href="#L1017">1017</a>             {
<a class="jxr_linenumber" name="L1018" href="#L1018">1018</a>                 projectVersionMetadata.setOrganization( <strong class="jxr_keyword">new</strong> Organization( organizationName, organizationUrl ) );
<a class="jxr_linenumber" name="L1019" href="#L1019">1019</a>             }
<a class="jxr_linenumber" name="L1020" href="#L1020">1020</a>         }
<a class="jxr_linenumber" name="L1021" href="#L1021">1021</a>         {
<a class="jxr_linenumber" name="L1022" href="#L1022">1022</a>             String devConn = columnFamilyResult.getString( <span class="jxr_string">"scm.developerConnection"</span> );
<a class="jxr_linenumber" name="L1023" href="#L1023">1023</a>             String conn = columnFamilyResult.getString( <span class="jxr_string">"scm.connection"</span> );
<a class="jxr_linenumber" name="L1024" href="#L1024">1024</a>             String url = columnFamilyResult.getString( <span class="jxr_string">"scm.url"</span> );
<a class="jxr_linenumber" name="L1025" href="#L1025">1025</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( devConn ) || StringUtils.isNotEmpty( conn ) || StringUtils.isNotEmpty( url ) )
<a class="jxr_linenumber" name="L1026" href="#L1026">1026</a>             {
<a class="jxr_linenumber" name="L1027" href="#L1027">1027</a>                 projectVersionMetadata.setScm( <strong class="jxr_keyword">new</strong> Scm( conn, devConn, url ) );
<a class="jxr_linenumber" name="L1028" href="#L1028">1028</a>             }
<a class="jxr_linenumber" name="L1029" href="#L1029">1029</a>         }
<a class="jxr_linenumber" name="L1030" href="#L1030">1030</a>         projectVersionMetadata.setMailingLists( getMailingLists( key ) );
<a class="jxr_linenumber" name="L1031" href="#L1031">1031</a>         projectVersionMetadata.setLicenses( getLicenses( key ) );
<a class="jxr_linenumber" name="L1032" href="#L1032">1032</a>         projectVersionMetadata.setDependencies( getDependencies( key ) );
<a class="jxr_linenumber" name="L1033" href="#L1033">1033</a>         <em class="jxr_comment">// facets</em>
<a class="jxr_linenumber" name="L1034" href="#L1034">1034</a> 
<a class="jxr_linenumber" name="L1035" href="#L1035">1035</a>         result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1036" href="#L1036">1036</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1037" href="#L1037">1037</a>             .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1038" href="#L1038">1038</a>             .setColumnNames( FACET_ID.toString(), KEY.toString(), VALUE.toString(), NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1039" href="#L1039">1039</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1040" href="#L1040">1040</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1041" href="#L1041">1041</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1042" href="#L1042">1042</a>             .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1043" href="#L1043">1043</a>             .execute();
<a class="jxr_linenumber" name="L1044" href="#L1044">1044</a> 
<a class="jxr_linenumber" name="L1045" href="#L1045">1045</a>         Map&lt;String, Map&lt;String, String&gt;&gt; metadataFacetsPerFacetIds = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
<a class="jxr_linenumber" name="L1046" href="#L1046">1046</a> 
<a class="jxr_linenumber" name="L1047" href="#L1047">1047</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1048" href="#L1048">1048</a>         {
<a class="jxr_linenumber" name="L1049" href="#L1049">1049</a>             ColumnSlice&lt;String, String&gt; columnSlice = row.getColumnSlice();
<a class="jxr_linenumber" name="L1050" href="#L1050">1050</a>             String facetId = getStringValue( columnSlice, FACET_ID.toString() );
<a class="jxr_linenumber" name="L1051" href="#L1051">1051</a>             Map&lt;String, String&gt; metaValues = metadataFacetsPerFacetIds.get( facetId );
<a class="jxr_linenumber" name="L1052" href="#L1052">1052</a>             <strong class="jxr_keyword">if</strong> ( metaValues == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1053" href="#L1053">1053</a>             {
<a class="jxr_linenumber" name="L1054" href="#L1054">1054</a>                 metaValues = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
<a class="jxr_linenumber" name="L1055" href="#L1055">1055</a>                 metadataFacetsPerFacetIds.put( facetId, metaValues );
<a class="jxr_linenumber" name="L1056" href="#L1056">1056</a>             }
<a class="jxr_linenumber" name="L1057" href="#L1057">1057</a>             metaValues.put( getStringValue( columnSlice, KEY.toString() ), getStringValue( columnSlice, VALUE.toString() ) );
<a class="jxr_linenumber" name="L1058" href="#L1058">1058</a>         }
<a class="jxr_linenumber" name="L1059" href="#L1059">1059</a> 
<a class="jxr_linenumber" name="L1060" href="#L1060">1060</a>         <strong class="jxr_keyword">if</strong> ( !metadataFacetsPerFacetIds.isEmpty() )
<a class="jxr_linenumber" name="L1061" href="#L1061">1061</a>         {
<a class="jxr_linenumber" name="L1062" href="#L1062">1062</a>             <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, Map&lt;String, String&gt;&gt; entry : metadataFacetsPerFacetIds.entrySet() )
<a class="jxr_linenumber" name="L1063" href="#L1063">1063</a>             {
<a class="jxr_linenumber" name="L1064" href="#L1064">1064</a>                 <a href="../../../../../../org/apache/archiva/metadata/model/MetadataFacetFactory.html">MetadataFacetFactory</a> metadataFacetFactory = metadataFacetFactories.get( entry.getKey() );
<a class="jxr_linenumber" name="L1065" href="#L1065">1065</a>                 <strong class="jxr_keyword">if</strong> ( metadataFacetFactory != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1066" href="#L1066">1066</a>                 {
<a class="jxr_linenumber" name="L1067" href="#L1067">1067</a>                     <a href="../../../../../../org/apache/archiva/metadata/model/MetadataFacet.html">MetadataFacet</a> metadataFacet = metadataFacetFactory.createMetadataFacet();
<a class="jxr_linenumber" name="L1068" href="#L1068">1068</a>                     metadataFacet.fromProperties( entry.getValue() );
<a class="jxr_linenumber" name="L1069" href="#L1069">1069</a>                     projectVersionMetadata.addFacet( metadataFacet );
<a class="jxr_linenumber" name="L1070" href="#L1070">1070</a>                 }
<a class="jxr_linenumber" name="L1071" href="#L1071">1071</a>             }
<a class="jxr_linenumber" name="L1072" href="#L1072">1072</a>         }
<a class="jxr_linenumber" name="L1073" href="#L1073">1073</a> 
<a class="jxr_linenumber" name="L1074" href="#L1074">1074</a>         <strong class="jxr_keyword">return</strong> projectVersionMetadata;
<a class="jxr_linenumber" name="L1075" href="#L1075">1075</a>     }
<a class="jxr_linenumber" name="L1076" href="#L1076">1076</a> 
<a class="jxr_linenumber" name="L1077" href="#L1077">1077</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> recordMailingList( String projectVersionMetadataKey, List&lt;MailingList&gt; mailingLists )
<a class="jxr_linenumber" name="L1078" href="#L1078">1078</a>     {
<a class="jxr_linenumber" name="L1079" href="#L1079">1079</a>         <strong class="jxr_keyword">if</strong> ( mailingLists == <strong class="jxr_keyword">null</strong> || mailingLists.isEmpty() )
<a class="jxr_linenumber" name="L1080" href="#L1080">1080</a>         {
<a class="jxr_linenumber" name="L1081" href="#L1081">1081</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L1082" href="#L1082">1082</a>         }
<a class="jxr_linenumber" name="L1083" href="#L1083">1083</a>         Mutator&lt;String&gt; mailingMutator = <strong class="jxr_keyword">this</strong>.mailingListTemplate.createMutator();
<a class="jxr_linenumber" name="L1084" href="#L1084">1084</a>         <strong class="jxr_keyword">for</strong> ( MailingList mailingList : mailingLists )
<a class="jxr_linenumber" name="L1085" href="#L1085">1085</a>         {
<a class="jxr_linenumber" name="L1086" href="#L1086">1086</a>             <em class="jxr_comment">// we don't care about the key as the real used one with the projectVersionMetadata</em>
<a class="jxr_linenumber" name="L1087" href="#L1087">1087</a>             String keyMailingList = UUID.randomUUID().toString();
<a class="jxr_linenumber" name="L1088" href="#L1088">1088</a>             String cfMailingList = cassandraArchivaManager.getMailingListFamilyName();
<a class="jxr_linenumber" name="L1089" href="#L1089">1089</a> 
<a class="jxr_linenumber" name="L1090" href="#L1090">1090</a>             addInsertion( mailingMutator, keyMailingList, cfMailingList, <span class="jxr_string">"projectVersionMetadataModel.key"</span>,
<a class="jxr_linenumber" name="L1091" href="#L1091">1091</a>                           projectVersionMetadataKey );
<a class="jxr_linenumber" name="L1092" href="#L1092">1092</a>             addInsertion( mailingMutator, keyMailingList, cfMailingList, NAME.toString(), mailingList.getName() );
<a class="jxr_linenumber" name="L1093" href="#L1093">1093</a>             addInsertion( mailingMutator, keyMailingList, cfMailingList, <span class="jxr_string">"mainArchiveUrl"</span>,
<a class="jxr_linenumber" name="L1094" href="#L1094">1094</a>                           mailingList.getMainArchiveUrl() );
<a class="jxr_linenumber" name="L1095" href="#L1095">1095</a>             addInsertion( mailingMutator, keyMailingList, cfMailingList, <span class="jxr_string">"postAddress"</span>, mailingList.getPostAddress() );
<a class="jxr_linenumber" name="L1096" href="#L1096">1096</a>             addInsertion( mailingMutator, keyMailingList, cfMailingList, <span class="jxr_string">"subscribeAddress"</span>,
<a class="jxr_linenumber" name="L1097" href="#L1097">1097</a>                           mailingList.getSubscribeAddress() );
<a class="jxr_linenumber" name="L1098" href="#L1098">1098</a>             addInsertion( mailingMutator, keyMailingList, cfMailingList, <span class="jxr_string">"unsubscribeAddress"</span>,
<a class="jxr_linenumber" name="L1099" href="#L1099">1099</a>                           mailingList.getUnsubscribeAddress() );
<a class="jxr_linenumber" name="L1100" href="#L1100">1100</a>             <strong class="jxr_keyword">int</strong> idx = 0;
<a class="jxr_linenumber" name="L1101" href="#L1101">1101</a>             <strong class="jxr_keyword">for</strong> ( String otherArchive : mailingList.getOtherArchives() )
<a class="jxr_linenumber" name="L1102" href="#L1102">1102</a>             {
<a class="jxr_linenumber" name="L1103" href="#L1103">1103</a>                 addInsertion( mailingMutator, keyMailingList, cfMailingList, <span class="jxr_string">"otherArchive."</span> + idx, otherArchive );
<a class="jxr_linenumber" name="L1104" href="#L1104">1104</a>                 idx++;
<a class="jxr_linenumber" name="L1105" href="#L1105">1105</a>             }
<a class="jxr_linenumber" name="L1106" href="#L1106">1106</a> 
<a class="jxr_linenumber" name="L1107" href="#L1107">1107</a>         }
<a class="jxr_linenumber" name="L1108" href="#L1108">1108</a>         mailingMutator.execute();
<a class="jxr_linenumber" name="L1109" href="#L1109">1109</a>     }
<a class="jxr_linenumber" name="L1110" href="#L1110">1110</a> 
<a class="jxr_linenumber" name="L1111" href="#L1111">1111</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> removeMailingList( String projectVersionMetadataKey )
<a class="jxr_linenumber" name="L1112" href="#L1112">1112</a>     {
<a class="jxr_linenumber" name="L1113" href="#L1113">1113</a> 
<a class="jxr_linenumber" name="L1114" href="#L1114">1114</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L1115" href="#L1115">1115</a>             HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1116" href="#L1116">1116</a>                 .setColumnFamily( cassandraArchivaManager.getMailingListFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1117" href="#L1117">1117</a>                 .setColumnNames( NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1118" href="#L1118">1118</a>                 .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1119" href="#L1119">1119</a>                 .addEqualsExpression( <span class="jxr_string">"projectVersionMetadataModel.key"</span>, projectVersionMetadataKey ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1120" href="#L1120">1120</a>                 .execute();
<a class="jxr_linenumber" name="L1121" href="#L1121">1121</a> 
<a class="jxr_linenumber" name="L1122" href="#L1122">1122</a>         <strong class="jxr_keyword">if</strong> ( result.get().getCount() &lt; 1 )
<a class="jxr_linenumber" name="L1123" href="#L1123">1123</a>         {
<a class="jxr_linenumber" name="L1124" href="#L1124">1124</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L1125" href="#L1125">1125</a>         }
<a class="jxr_linenumber" name="L1126" href="#L1126">1126</a> 
<a class="jxr_linenumber" name="L1127" href="#L1127">1127</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1128" href="#L1128">1128</a>         {
<a class="jxr_linenumber" name="L1129" href="#L1129">1129</a>             <strong class="jxr_keyword">this</strong>.mailingListTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L1130" href="#L1130">1130</a>         }
<a class="jxr_linenumber" name="L1131" href="#L1131">1131</a> 
<a class="jxr_linenumber" name="L1132" href="#L1132">1132</a>     }
<a class="jxr_linenumber" name="L1133" href="#L1133">1133</a> 
<a class="jxr_linenumber" name="L1134" href="#L1134">1134</a>     <strong class="jxr_keyword">protected</strong> List&lt;MailingList&gt; getMailingLists( String projectVersionMetadataKey )
<a class="jxr_linenumber" name="L1135" href="#L1135">1135</a>     {
<a class="jxr_linenumber" name="L1136" href="#L1136">1136</a>         List&lt;MailingList&gt; mailingLists = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L1137" href="#L1137">1137</a> 
<a class="jxr_linenumber" name="L1138" href="#L1138">1138</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L1139" href="#L1139">1139</a>             HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1140" href="#L1140">1140</a>                 .setColumnFamily( cassandraArchivaManager.getMailingListFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1141" href="#L1141">1141</a>                 .setColumnNames( NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1142" href="#L1142">1142</a>                 .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1143" href="#L1143">1143</a>                 .addEqualsExpression( <span class="jxr_string">"projectVersionMetadataModel.key"</span>, projectVersionMetadataKey ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1144" href="#L1144">1144</a>                 .execute();
<a class="jxr_linenumber" name="L1145" href="#L1145">1145</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1146" href="#L1146">1146</a>         {
<a class="jxr_linenumber" name="L1147" href="#L1147">1147</a>             ColumnFamilyResult&lt;String, String&gt; columnFamilyResult =
<a class="jxr_linenumber" name="L1148" href="#L1148">1148</a>                 <strong class="jxr_keyword">this</strong>.mailingListTemplate.queryColumns( row.getKey() );
<a class="jxr_linenumber" name="L1149" href="#L1149">1149</a> 
<a class="jxr_linenumber" name="L1150" href="#L1150">1150</a>             <a href="../../../../../../org/apache/archiva/metadata/model/MailingList.html">MailingList</a> mailingList = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/model/MailingList.html">MailingList</a>();
<a class="jxr_linenumber" name="L1151" href="#L1151">1151</a>             mailingList.setName( columnFamilyResult.getString( NAME.toString() ) );
<a class="jxr_linenumber" name="L1152" href="#L1152">1152</a>             mailingList.setMainArchiveUrl( columnFamilyResult.getString( <span class="jxr_string">"mainArchiveUrl"</span> ) );
<a class="jxr_linenumber" name="L1153" href="#L1153">1153</a>             mailingList.setPostAddress( columnFamilyResult.getString( <span class="jxr_string">"postAddress"</span> ) );
<a class="jxr_linenumber" name="L1154" href="#L1154">1154</a>             mailingList.setSubscribeAddress( columnFamilyResult.getString( <span class="jxr_string">"subscribeAddress"</span> ) );
<a class="jxr_linenumber" name="L1155" href="#L1155">1155</a>             mailingList.setUnsubscribeAddress( columnFamilyResult.getString( <span class="jxr_string">"unsubscribeAddress"</span> ) );
<a class="jxr_linenumber" name="L1156" href="#L1156">1156</a> 
<a class="jxr_linenumber" name="L1157" href="#L1157">1157</a>             List&lt;String&gt; otherArchives = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L1158" href="#L1158">1158</a> 
<a class="jxr_linenumber" name="L1159" href="#L1159">1159</a>             <strong class="jxr_keyword">for</strong> ( String columnName : columnFamilyResult.getColumnNames() )
<a class="jxr_linenumber" name="L1160" href="#L1160">1160</a>             {
<a class="jxr_linenumber" name="L1161" href="#L1161">1161</a>                 <strong class="jxr_keyword">if</strong> ( StringUtils.startsWith( columnName, <span class="jxr_string">"otherArchive."</span> ) )
<a class="jxr_linenumber" name="L1162" href="#L1162">1162</a>                 {
<a class="jxr_linenumber" name="L1163" href="#L1163">1163</a>                     otherArchives.add( columnFamilyResult.getString( columnName ) );
<a class="jxr_linenumber" name="L1164" href="#L1164">1164</a>                 }
<a class="jxr_linenumber" name="L1165" href="#L1165">1165</a>             }
<a class="jxr_linenumber" name="L1166" href="#L1166">1166</a> 
<a class="jxr_linenumber" name="L1167" href="#L1167">1167</a>             mailingList.setOtherArchives( otherArchives );
<a class="jxr_linenumber" name="L1168" href="#L1168">1168</a>             mailingLists.add( mailingList );
<a class="jxr_linenumber" name="L1169" href="#L1169">1169</a>         }
<a class="jxr_linenumber" name="L1170" href="#L1170">1170</a> 
<a class="jxr_linenumber" name="L1171" href="#L1171">1171</a>         <strong class="jxr_keyword">return</strong> mailingLists;
<a class="jxr_linenumber" name="L1172" href="#L1172">1172</a>     }
<a class="jxr_linenumber" name="L1173" href="#L1173">1173</a> 
<a class="jxr_linenumber" name="L1174" href="#L1174">1174</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> recordLicenses( String projectVersionMetadataKey, List&lt;License&gt; licenses )
<a class="jxr_linenumber" name="L1175" href="#L1175">1175</a>     {
<a class="jxr_linenumber" name="L1176" href="#L1176">1176</a> 
<a class="jxr_linenumber" name="L1177" href="#L1177">1177</a>         <strong class="jxr_keyword">if</strong> ( licenses == <strong class="jxr_keyword">null</strong> || licenses.isEmpty() )
<a class="jxr_linenumber" name="L1178" href="#L1178">1178</a>         {
<a class="jxr_linenumber" name="L1179" href="#L1179">1179</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L1180" href="#L1180">1180</a>         }
<a class="jxr_linenumber" name="L1181" href="#L1181">1181</a>         Mutator&lt;String&gt; licenseMutator = <strong class="jxr_keyword">this</strong>.licenseTemplate.createMutator();
<a class="jxr_linenumber" name="L1182" href="#L1182">1182</a> 
<a class="jxr_linenumber" name="L1183" href="#L1183">1183</a>         <strong class="jxr_keyword">for</strong> ( License license : licenses )
<a class="jxr_linenumber" name="L1184" href="#L1184">1184</a>         {
<a class="jxr_linenumber" name="L1185" href="#L1185">1185</a>             <em class="jxr_comment">// we don't care about the key as the real used one with the projectVersionMetadata</em>
<a class="jxr_linenumber" name="L1186" href="#L1186">1186</a>             String keyLicense = UUID.randomUUID().toString();
<a class="jxr_linenumber" name="L1187" href="#L1187">1187</a>             String cfLicense = cassandraArchivaManager.getLicenseFamilyName();
<a class="jxr_linenumber" name="L1188" href="#L1188">1188</a> 
<a class="jxr_linenumber" name="L1189" href="#L1189">1189</a>             addInsertion( licenseMutator, keyLicense, cfLicense, <span class="jxr_string">"projectVersionMetadataModel.key"</span>,
<a class="jxr_linenumber" name="L1190" href="#L1190">1190</a>                           projectVersionMetadataKey );
<a class="jxr_linenumber" name="L1191" href="#L1191">1191</a> 
<a class="jxr_linenumber" name="L1192" href="#L1192">1192</a>             addInsertion( licenseMutator, keyLicense, cfLicense, NAME.toString(), license.getName() );
<a class="jxr_linenumber" name="L1193" href="#L1193">1193</a> 
<a class="jxr_linenumber" name="L1194" href="#L1194">1194</a>             addInsertion( licenseMutator, keyLicense, cfLicense, URL.toString(), license.getUrl() );
<a class="jxr_linenumber" name="L1195" href="#L1195">1195</a> 
<a class="jxr_linenumber" name="L1196" href="#L1196">1196</a>         }
<a class="jxr_linenumber" name="L1197" href="#L1197">1197</a>         licenseMutator.execute();
<a class="jxr_linenumber" name="L1198" href="#L1198">1198</a>     }
<a class="jxr_linenumber" name="L1199" href="#L1199">1199</a> 
<a class="jxr_linenumber" name="L1200" href="#L1200">1200</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> removeLicenses( String projectVersionMetadataKey )
<a class="jxr_linenumber" name="L1201" href="#L1201">1201</a>     {
<a class="jxr_linenumber" name="L1202" href="#L1202">1202</a> 
<a class="jxr_linenumber" name="L1203" href="#L1203">1203</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L1204" href="#L1204">1204</a>             HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1205" href="#L1205">1205</a>                 .setColumnFamily( cassandraArchivaManager.getLicenseFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1206" href="#L1206">1206</a>                 .setColumnNames( NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1207" href="#L1207">1207</a>                 .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1208" href="#L1208">1208</a>                 .addEqualsExpression( <span class="jxr_string">"projectVersionMetadataModel.key"</span>, projectVersionMetadataKey ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1209" href="#L1209">1209</a>                 .execute();
<a class="jxr_linenumber" name="L1210" href="#L1210">1210</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1211" href="#L1211">1211</a>         {
<a class="jxr_linenumber" name="L1212" href="#L1212">1212</a>             <strong class="jxr_keyword">this</strong>.licenseTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L1213" href="#L1213">1213</a>         }
<a class="jxr_linenumber" name="L1214" href="#L1214">1214</a>     }
<a class="jxr_linenumber" name="L1215" href="#L1215">1215</a> 
<a class="jxr_linenumber" name="L1216" href="#L1216">1216</a>     <strong class="jxr_keyword">protected</strong> List&lt;License&gt; getLicenses( String projectVersionMetadataKey )
<a class="jxr_linenumber" name="L1217" href="#L1217">1217</a>     {
<a class="jxr_linenumber" name="L1218" href="#L1218">1218</a>         List&lt;License&gt; licenses = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L1219" href="#L1219">1219</a> 
<a class="jxr_linenumber" name="L1220" href="#L1220">1220</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L1221" href="#L1221">1221</a>             HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1222" href="#L1222">1222</a>                 .setColumnFamily( cassandraArchivaManager.getLicenseFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1223" href="#L1223">1223</a>                 .setColumnNames( <span class="jxr_string">"projectVersionMetadataModel.key"</span> ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1224" href="#L1224">1224</a>                 .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1225" href="#L1225">1225</a>                 .addEqualsExpression( <span class="jxr_string">"projectVersionMetadataModel.key"</span>, projectVersionMetadataKey ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1226" href="#L1226">1226</a>                 .execute();
<a class="jxr_linenumber" name="L1227" href="#L1227">1227</a> 
<a class="jxr_linenumber" name="L1228" href="#L1228">1228</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1229" href="#L1229">1229</a>         {
<a class="jxr_linenumber" name="L1230" href="#L1230">1230</a>             ColumnFamilyResult&lt;String, String&gt; columnFamilyResult = <strong class="jxr_keyword">this</strong>.licenseTemplate.queryColumns( row.getKey() );
<a class="jxr_linenumber" name="L1231" href="#L1231">1231</a> 
<a class="jxr_linenumber" name="L1232" href="#L1232">1232</a>             licenses.add(
<a class="jxr_linenumber" name="L1233" href="#L1233">1233</a>                 <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/model/License.html">License</a>( columnFamilyResult.getString( NAME.toString() ), columnFamilyResult.getString( URL.toString() ) ) );
<a class="jxr_linenumber" name="L1234" href="#L1234">1234</a>         }
<a class="jxr_linenumber" name="L1235" href="#L1235">1235</a> 
<a class="jxr_linenumber" name="L1236" href="#L1236">1236</a>         <strong class="jxr_keyword">return</strong> licenses;
<a class="jxr_linenumber" name="L1237" href="#L1237">1237</a>     }
<a class="jxr_linenumber" name="L1238" href="#L1238">1238</a> 
<a class="jxr_linenumber" name="L1239" href="#L1239">1239</a> 
<a class="jxr_linenumber" name="L1240" href="#L1240">1240</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> recordDependencies( String projectVersionMetadataKey, List&lt;Dependency&gt; dependencies,
<a class="jxr_linenumber" name="L1241" href="#L1241">1241</a>                                        String repositoryId )
<a class="jxr_linenumber" name="L1242" href="#L1242">1242</a>     {
<a class="jxr_linenumber" name="L1243" href="#L1243">1243</a> 
<a class="jxr_linenumber" name="L1244" href="#L1244">1244</a>         <strong class="jxr_keyword">if</strong> ( dependencies == <strong class="jxr_keyword">null</strong> || dependencies.isEmpty() )
<a class="jxr_linenumber" name="L1245" href="#L1245">1245</a>         {
<a class="jxr_linenumber" name="L1246" href="#L1246">1246</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L1247" href="#L1247">1247</a>         }
<a class="jxr_linenumber" name="L1248" href="#L1248">1248</a>         Mutator&lt;String&gt; dependencyMutator = <strong class="jxr_keyword">this</strong>.dependencyTemplate.createMutator();
<a class="jxr_linenumber" name="L1249" href="#L1249">1249</a> 
<a class="jxr_linenumber" name="L1250" href="#L1250">1250</a>         <strong class="jxr_keyword">for</strong> ( Dependency dependency : dependencies )
<a class="jxr_linenumber" name="L1251" href="#L1251">1251</a>         {
<a class="jxr_linenumber" name="L1252" href="#L1252">1252</a>             <em class="jxr_comment">// we don't care about the key as the real used one with the projectVersionMetadata</em>
<a class="jxr_linenumber" name="L1253" href="#L1253">1253</a>             String keyDependency = UUID.randomUUID().toString();
<a class="jxr_linenumber" name="L1254" href="#L1254">1254</a>             String cfDependency = cassandraArchivaManager.getDependencyFamilyName();
<a class="jxr_linenumber" name="L1255" href="#L1255">1255</a> 
<a class="jxr_linenumber" name="L1256" href="#L1256">1256</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, <span class="jxr_string">"projectVersionMetadataModel.key"</span>,
<a class="jxr_linenumber" name="L1257" href="#L1257">1257</a>                           projectVersionMetadataKey );
<a class="jxr_linenumber" name="L1258" href="#L1258">1258</a> 
<a class="jxr_linenumber" name="L1259" href="#L1259">1259</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, REPOSITORY_NAME.toString(), repositoryId );
<a class="jxr_linenumber" name="L1260" href="#L1260">1260</a> 
<a class="jxr_linenumber" name="L1261" href="#L1261">1261</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, <span class="jxr_string">"classifier"</span>, dependency.getClassifier() );
<a class="jxr_linenumber" name="L1262" href="#L1262">1262</a> 
<a class="jxr_linenumber" name="L1263" href="#L1263">1263</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, <span class="jxr_string">"optional"</span>,
<a class="jxr_linenumber" name="L1264" href="#L1264">1264</a>                           Boolean.toString( dependency.isOptional() ) );
<a class="jxr_linenumber" name="L1265" href="#L1265">1265</a> 
<a class="jxr_linenumber" name="L1266" href="#L1266">1266</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, <span class="jxr_string">"scope"</span>, dependency.getScope() );
<a class="jxr_linenumber" name="L1267" href="#L1267">1267</a> 
<a class="jxr_linenumber" name="L1268" href="#L1268">1268</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, <span class="jxr_string">"systemPath"</span>, dependency.getSystemPath() );
<a class="jxr_linenumber" name="L1269" href="#L1269">1269</a> 
<a class="jxr_linenumber" name="L1270" href="#L1270">1270</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, <span class="jxr_string">"type"</span>, dependency.getType() );
<a class="jxr_linenumber" name="L1271" href="#L1271">1271</a> 
<a class="jxr_linenumber" name="L1272" href="#L1272">1272</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, ARTIFACT_ID.toString(), dependency.getArtifactId() );
<a class="jxr_linenumber" name="L1273" href="#L1273">1273</a> 
<a class="jxr_linenumber" name="L1274" href="#L1274">1274</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, GROUP_ID.toString(), dependency.getGroupId() );
<a class="jxr_linenumber" name="L1275" href="#L1275">1275</a> 
<a class="jxr_linenumber" name="L1276" href="#L1276">1276</a>             addInsertion( dependencyMutator, keyDependency, cfDependency, VERSION.toString(), dependency.getVersion() );
<a class="jxr_linenumber" name="L1277" href="#L1277">1277</a> 
<a class="jxr_linenumber" name="L1278" href="#L1278">1278</a>         }
<a class="jxr_linenumber" name="L1279" href="#L1279">1279</a>         dependencyMutator.execute();
<a class="jxr_linenumber" name="L1280" href="#L1280">1280</a>     }
<a class="jxr_linenumber" name="L1281" href="#L1281">1281</a> 
<a class="jxr_linenumber" name="L1282" href="#L1282">1282</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> removeDependencies( String projectVersionMetadataKey )
<a class="jxr_linenumber" name="L1283" href="#L1283">1283</a>     {
<a class="jxr_linenumber" name="L1284" href="#L1284">1284</a> 
<a class="jxr_linenumber" name="L1285" href="#L1285">1285</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L1286" href="#L1286">1286</a>             HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1287" href="#L1287">1287</a>                 .setColumnFamily( cassandraArchivaManager.getDependencyFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1288" href="#L1288">1288</a>                 .setColumnNames( GROUP_ID.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1289" href="#L1289">1289</a>                 .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1290" href="#L1290">1290</a>                 .addEqualsExpression( <span class="jxr_string">"projectVersionMetadataModel.key"</span>, projectVersionMetadataKey ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1291" href="#L1291">1291</a>                 .execute();
<a class="jxr_linenumber" name="L1292" href="#L1292">1292</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1293" href="#L1293">1293</a>         {
<a class="jxr_linenumber" name="L1294" href="#L1294">1294</a>             <strong class="jxr_keyword">this</strong>.dependencyTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L1295" href="#L1295">1295</a>         }
<a class="jxr_linenumber" name="L1296" href="#L1296">1296</a>     }
<a class="jxr_linenumber" name="L1297" href="#L1297">1297</a> 
<a class="jxr_linenumber" name="L1298" href="#L1298">1298</a>     <strong class="jxr_keyword">protected</strong> List&lt;Dependency&gt; getDependencies( String projectVersionMetadataKey )
<a class="jxr_linenumber" name="L1299" href="#L1299">1299</a>     {
<a class="jxr_linenumber" name="L1300" href="#L1300">1300</a>         List&lt;Dependency&gt; dependencies = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L1301" href="#L1301">1301</a> 
<a class="jxr_linenumber" name="L1302" href="#L1302">1302</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L1303" href="#L1303">1303</a>             HFactory.createRangeSlicesQuery( cassandraArchivaManager.getKeyspace(), ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1304" href="#L1304">1304</a>                 .setColumnFamily( cassandraArchivaManager.getDependencyFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1305" href="#L1305">1305</a>                 .setColumnNames( <span class="jxr_string">"projectVersionMetadataModel.key"</span> ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1306" href="#L1306">1306</a>                 .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1307" href="#L1307">1307</a>                 .addEqualsExpression( <span class="jxr_string">"projectVersionMetadataModel.key"</span>, projectVersionMetadataKey ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1308" href="#L1308">1308</a>                 .execute();
<a class="jxr_linenumber" name="L1309" href="#L1309">1309</a> 
<a class="jxr_linenumber" name="L1310" href="#L1310">1310</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1311" href="#L1311">1311</a>         {
<a class="jxr_linenumber" name="L1312" href="#L1312">1312</a>             ColumnFamilyResult&lt;String, String&gt; columnFamilyResult =
<a class="jxr_linenumber" name="L1313" href="#L1313">1313</a>                 <strong class="jxr_keyword">this</strong>.dependencyTemplate.queryColumns( row.getKey() );
<a class="jxr_linenumber" name="L1314" href="#L1314">1314</a> 
<a class="jxr_linenumber" name="L1315" href="#L1315">1315</a>             <a href="../../../../../../org/apache/archiva/metadata/model/Dependency.html">Dependency</a> dependency = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/model/Dependency.html">Dependency</a>();
<a class="jxr_linenumber" name="L1316" href="#L1316">1316</a>             dependency.setClassifier( columnFamilyResult.getString( <span class="jxr_string">"classifier"</span> ) );
<a class="jxr_linenumber" name="L1317" href="#L1317">1317</a> 
<a class="jxr_linenumber" name="L1318" href="#L1318">1318</a>             dependency.setOptional( Boolean.parseBoolean( columnFamilyResult.getString( <span class="jxr_string">"optional"</span> ) ) );
<a class="jxr_linenumber" name="L1319" href="#L1319">1319</a> 
<a class="jxr_linenumber" name="L1320" href="#L1320">1320</a>             dependency.setScope( columnFamilyResult.getString( <span class="jxr_string">"scope"</span> ) );
<a class="jxr_linenumber" name="L1321" href="#L1321">1321</a> 
<a class="jxr_linenumber" name="L1322" href="#L1322">1322</a>             dependency.setSystemPath( columnFamilyResult.getString( <span class="jxr_string">"systemPath"</span> ) );
<a class="jxr_linenumber" name="L1323" href="#L1323">1323</a> 
<a class="jxr_linenumber" name="L1324" href="#L1324">1324</a>             dependency.setType( columnFamilyResult.getString( <span class="jxr_string">"type"</span> ) );
<a class="jxr_linenumber" name="L1325" href="#L1325">1325</a> 
<a class="jxr_linenumber" name="L1326" href="#L1326">1326</a>             dependency.setArtifactId( columnFamilyResult.getString( ARTIFACT_ID.toString() ) );
<a class="jxr_linenumber" name="L1327" href="#L1327">1327</a> 
<a class="jxr_linenumber" name="L1328" href="#L1328">1328</a>             dependency.setGroupId( columnFamilyResult.getString( GROUP_ID.toString() ) );
<a class="jxr_linenumber" name="L1329" href="#L1329">1329</a> 
<a class="jxr_linenumber" name="L1330" href="#L1330">1330</a>             dependency.setVersion( columnFamilyResult.getString( VERSION.toString() ) );
<a class="jxr_linenumber" name="L1331" href="#L1331">1331</a> 
<a class="jxr_linenumber" name="L1332" href="#L1332">1332</a>             dependencies.add( dependency );
<a class="jxr_linenumber" name="L1333" href="#L1333">1333</a>         }
<a class="jxr_linenumber" name="L1334" href="#L1334">1334</a> 
<a class="jxr_linenumber" name="L1335" href="#L1335">1335</a>         <strong class="jxr_keyword">return</strong> dependencies;
<a class="jxr_linenumber" name="L1336" href="#L1336">1336</a>     }
<a class="jxr_linenumber" name="L1337" href="#L1337">1337</a> 
<a class="jxr_linenumber" name="L1338" href="#L1338">1338</a>     @Override
<a class="jxr_linenumber" name="L1339" href="#L1339">1339</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateArtifact( String repositoryId, String namespaceId, String projectId, String projectVersion,
<a class="jxr_linenumber" name="L1340" href="#L1340">1340</a>                                 <a href="../../../../../../org/apache/archiva/metadata/model/ArtifactMetadata.html">ArtifactMetadata</a> artifactMeta )
<a class="jxr_linenumber" name="L1341" href="#L1341">1341</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L1342" href="#L1342">1342</a>     {
<a class="jxr_linenumber" name="L1343" href="#L1343">1343</a> 
<a class="jxr_linenumber" name="L1344" href="#L1344">1344</a>         <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/Namespace.html">Namespace</a> namespace = getNamespace( repositoryId, namespaceId );
<a class="jxr_linenumber" name="L1345" href="#L1345">1345</a>         <strong class="jxr_keyword">if</strong> ( namespace == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1346" href="#L1346">1346</a>         {
<a class="jxr_linenumber" name="L1347" href="#L1347">1347</a>             namespace = updateOrAddNamespace( repositoryId, namespaceId );
<a class="jxr_linenumber" name="L1348" href="#L1348">1348</a>         }
<a class="jxr_linenumber" name="L1349" href="#L1349">1349</a> 
<a class="jxr_linenumber" name="L1350" href="#L1350">1350</a>         <a href="../../../../../../org/apache/archiva/metadata/model/ProjectMetadata.html">ProjectMetadata</a> projectMetadata = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/model/ProjectMetadata.html">ProjectMetadata</a>();
<a class="jxr_linenumber" name="L1351" href="#L1351">1351</a>         projectMetadata.setId( projectId );
<a class="jxr_linenumber" name="L1352" href="#L1352">1352</a>         projectMetadata.setNamespace( namespaceId );
<a class="jxr_linenumber" name="L1353" href="#L1353">1353</a>         updateProject( repositoryId, projectMetadata );
<a class="jxr_linenumber" name="L1354" href="#L1354">1354</a> 
<a class="jxr_linenumber" name="L1355" href="#L1355">1355</a>         String key = <strong class="jxr_keyword">new</strong> ArtifactMetadataModel.KeyBuilder().withNamespace( namespace ).withProject( projectId ).withId(
<a class="jxr_linenumber" name="L1356" href="#L1356">1356</a>             artifactMeta.getId() ).withProjectVersion( projectVersion ).build();
<a class="jxr_linenumber" name="L1357" href="#L1357">1357</a> 
<a class="jxr_linenumber" name="L1358" href="#L1358">1358</a>         <em class="jxr_comment">// exists?</em>
<a class="jxr_linenumber" name="L1359" href="#L1359">1359</a> 
<a class="jxr_linenumber" name="L1360" href="#L1360">1360</a>         <strong class="jxr_keyword">boolean</strong> exists = <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.isColumnsExist( key );
<a class="jxr_linenumber" name="L1361" href="#L1361">1361</a> 
<a class="jxr_linenumber" name="L1362" href="#L1362">1362</a>         <strong class="jxr_keyword">if</strong> ( exists )
<a class="jxr_linenumber" name="L1363" href="#L1363">1363</a>         {
<a class="jxr_linenumber" name="L1364" href="#L1364">1364</a>             <em class="jxr_comment">// updater</em>
<a class="jxr_linenumber" name="L1365" href="#L1365">1365</a>             ColumnFamilyUpdater&lt;String, String&gt; updater = <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.createUpdater( key );
<a class="jxr_linenumber" name="L1366" href="#L1366">1366</a>             updater.setLong( FILE_LAST_MODIFIED.toString(), artifactMeta.getFileLastModified().getTime() );
<a class="jxr_linenumber" name="L1367" href="#L1367">1367</a>             updater.setLong( WHEN_GATHERED.toString(), artifactMeta.getWhenGathered().getTime() );
<a class="jxr_linenumber" name="L1368" href="#L1368">1368</a>             updater.setLong( SIZE.toString(), artifactMeta.getSize() );
<a class="jxr_linenumber" name="L1369" href="#L1369">1369</a>             addUpdateStringValue( updater, MD5.toString(), artifactMeta.getMd5() );
<a class="jxr_linenumber" name="L1370" href="#L1370">1370</a>             addUpdateStringValue( updater, SHA1.toString(), artifactMeta.getSha1() );
<a class="jxr_linenumber" name="L1371" href="#L1371">1371</a>             addUpdateStringValue( updater, VERSION.toString(), artifactMeta.getVersion() );
<a class="jxr_linenumber" name="L1372" href="#L1372">1372</a>             <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.update( updater );
<a class="jxr_linenumber" name="L1373" href="#L1373">1373</a>         }
<a class="jxr_linenumber" name="L1374" href="#L1374">1374</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1375" href="#L1375">1375</a>         {
<a class="jxr_linenumber" name="L1376" href="#L1376">1376</a>             String cf = <strong class="jxr_keyword">this</strong>.cassandraArchivaManager.getArtifactMetadataFamilyName();
<a class="jxr_linenumber" name="L1377" href="#L1377">1377</a>             <em class="jxr_comment">// create</em>
<a class="jxr_linenumber" name="L1378" href="#L1378">1378</a>             <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.createMutator() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1379" href="#L1379">1379</a>                 .addInsertion( key, cf, column( ID.toString(), artifactMeta.getId() ) )<em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1380" href="#L1380">1380</a>                 .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), repositoryId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1381" href="#L1381">1381</a>                 .addInsertion( key, cf, column( NAMESPACE_ID.toString(), namespaceId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1382" href="#L1382">1382</a>                 .addInsertion( key, cf, column( PROJECT.toString(), artifactMeta.getProject() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1383" href="#L1383">1383</a>                 .addInsertion( key, cf, column( PROJECT_VERSION.toString(), projectVersion ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1384" href="#L1384">1384</a>                 .addInsertion( key, cf, column( VERSION.toString(), artifactMeta.getVersion() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1385" href="#L1385">1385</a>                 .addInsertion( key, cf, column( FILE_LAST_MODIFIED.toString(), artifactMeta.getFileLastModified().getTime() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1386" href="#L1386">1386</a>                 .addInsertion( key, cf, column( SIZE.toString(), artifactMeta.getSize() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1387" href="#L1387">1387</a>                 .addInsertion( key, cf, column( MD5.toString(), artifactMeta.getMd5() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1388" href="#L1388">1388</a>                 .addInsertion( key, cf, column( SHA1.toString(), artifactMeta.getSha1() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1389" href="#L1389">1389</a>                 .addInsertion( key, cf, column( WHEN_GATHERED.toString(), artifactMeta.getWhenGathered().getTime() ) )<em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1390" href="#L1390">1390</a>                 .execute();
<a class="jxr_linenumber" name="L1391" href="#L1391">1391</a>         }
<a class="jxr_linenumber" name="L1392" href="#L1392">1392</a> 
<a class="jxr_linenumber" name="L1393" href="#L1393">1393</a>         key = <strong class="jxr_keyword">new</strong> ProjectVersionMetadataModel.KeyBuilder() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1394" href="#L1394">1394</a>             .withRepository( repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1395" href="#L1395">1395</a>             .withNamespace( namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1396" href="#L1396">1396</a>             .withProjectId( projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1397" href="#L1397">1397</a>             .withProjectVersion( projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1398" href="#L1398">1398</a>             .withId( artifactMeta.getId() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1399" href="#L1399">1399</a>             .build();
<a class="jxr_linenumber" name="L1400" href="#L1400">1400</a> 
<a class="jxr_linenumber" name="L1401" href="#L1401">1401</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1402" href="#L1402">1402</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1403" href="#L1403">1403</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1404" href="#L1404">1404</a>             .setColumnNames( VERSION.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1405" href="#L1405">1405</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1406" href="#L1406">1406</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1407" href="#L1407">1407</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1408" href="#L1408">1408</a>             .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1409" href="#L1409">1409</a>             .addEqualsExpression( VERSION.toString(), artifactMeta.getVersion() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1410" href="#L1410">1410</a>             .execute();
<a class="jxr_linenumber" name="L1411" href="#L1411">1411</a> 
<a class="jxr_linenumber" name="L1412" href="#L1412">1412</a>         exists = result.get().getCount() &gt; 0;
<a class="jxr_linenumber" name="L1413" href="#L1413">1413</a> 
<a class="jxr_linenumber" name="L1414" href="#L1414">1414</a>         <strong class="jxr_keyword">if</strong> ( !exists )
<a class="jxr_linenumber" name="L1415" href="#L1415">1415</a>         {
<a class="jxr_linenumber" name="L1416" href="#L1416">1416</a>             String cf = <strong class="jxr_keyword">this</strong>.cassandraArchivaManager.getProjectVersionMetadataFamilyName();
<a class="jxr_linenumber" name="L1417" href="#L1417">1417</a> 
<a class="jxr_linenumber" name="L1418" href="#L1418">1418</a>             projectVersionMetadataTemplate.createMutator() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1419" href="#L1419">1419</a>                 .addInsertion( key, cf, column( NAMESPACE_ID.toString(), namespace.getName() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1420" href="#L1420">1420</a>                 .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), repositoryId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1421" href="#L1421">1421</a>                 .addInsertion( key, cf, column( PROJECT_VERSION.toString(), projectVersion ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1422" href="#L1422">1422</a>                 .addInsertion( key, cf, column( PROJECT_ID.toString(), projectId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1423" href="#L1423">1423</a>                 .addInsertion( key, cf, column( VERSION.toString(), artifactMeta.getVersion() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1424" href="#L1424">1424</a>                 .execute();
<a class="jxr_linenumber" name="L1425" href="#L1425">1425</a> 
<a class="jxr_linenumber" name="L1426" href="#L1426">1426</a>         }
<a class="jxr_linenumber" name="L1427" href="#L1427">1427</a> 
<a class="jxr_linenumber" name="L1428" href="#L1428">1428</a>         <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.html">ArtifactMetadataModel</a> artifactMetadataModel = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.html">ArtifactMetadataModel</a>();
<a class="jxr_linenumber" name="L1429" href="#L1429">1429</a> 
<a class="jxr_linenumber" name="L1430" href="#L1430">1430</a>         artifactMetadataModel.setRepositoryId( repositoryId );
<a class="jxr_linenumber" name="L1431" href="#L1431">1431</a>         artifactMetadataModel.setNamespace( namespaceId );
<a class="jxr_linenumber" name="L1432" href="#L1432">1432</a>         artifactMetadataModel.setProject( projectId );
<a class="jxr_linenumber" name="L1433" href="#L1433">1433</a>         artifactMetadataModel.setProjectVersion( projectVersion );
<a class="jxr_linenumber" name="L1434" href="#L1434">1434</a>         artifactMetadataModel.setVersion( artifactMeta.getVersion() );
<a class="jxr_linenumber" name="L1435" href="#L1435">1435</a>         artifactMetadataModel.setFileLastModified( artifactMeta.getFileLastModified() == <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="L1436" href="#L1436">1436</a>                                                        ? <strong class="jxr_keyword">new</strong> Date().getTime()
<a class="jxr_linenumber" name="L1437" href="#L1437">1437</a>                                                        : artifactMeta.getFileLastModified().getTime() );
<a class="jxr_linenumber" name="L1438" href="#L1438">1438</a> 
<a class="jxr_linenumber" name="L1439" href="#L1439">1439</a>         <em class="jxr_comment">// now facets</em>
<a class="jxr_linenumber" name="L1440" href="#L1440">1440</a>         updateFacets( artifactMeta, artifactMetadataModel );
<a class="jxr_linenumber" name="L1441" href="#L1441">1441</a> 
<a class="jxr_linenumber" name="L1442" href="#L1442">1442</a>     }
<a class="jxr_linenumber" name="L1443" href="#L1443">1443</a> 
<a class="jxr_linenumber" name="L1444" href="#L1444">1444</a>     @Override
<a class="jxr_linenumber" name="L1445" href="#L1445">1445</a>     <strong class="jxr_keyword">public</strong> Collection&lt;String&gt; getArtifactVersions( <strong class="jxr_keyword">final</strong> String repoId, <strong class="jxr_keyword">final</strong> String namespace, <strong class="jxr_keyword">final</strong> String projectId,
<a class="jxr_linenumber" name="L1446" href="#L1446">1446</a>                                                    <strong class="jxr_keyword">final</strong> String projectVersion )
<a class="jxr_linenumber" name="L1447" href="#L1447">1447</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataResolutionException.html">MetadataResolutionException</a>
<a class="jxr_linenumber" name="L1448" href="#L1448">1448</a>     {
<a class="jxr_linenumber" name="L1449" href="#L1449">1449</a> 
<a class="jxr_linenumber" name="L1450" href="#L1450">1450</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1451" href="#L1451">1451</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1452" href="#L1452">1452</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1453" href="#L1453">1453</a>             .setColumnNames( VERSION.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1454" href="#L1454">1454</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1455" href="#L1455">1455</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1456" href="#L1456">1456</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1457" href="#L1457">1457</a>             .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1458" href="#L1458">1458</a>             .execute();
<a class="jxr_linenumber" name="L1459" href="#L1459">1459</a> 
<a class="jxr_linenumber" name="L1460" href="#L1460">1460</a>         <strong class="jxr_keyword">final</strong> Set&lt;String&gt; versions = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
<a class="jxr_linenumber" name="L1461" href="#L1461">1461</a> 
<a class="jxr_linenumber" name="L1462" href="#L1462">1462</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1463" href="#L1463">1463</a>         {
<a class="jxr_linenumber" name="L1464" href="#L1464">1464</a>             versions.add( getStringValue( row.getColumnSlice(), VERSION.toString() ) );
<a class="jxr_linenumber" name="L1465" href="#L1465">1465</a>         }
<a class="jxr_linenumber" name="L1466" href="#L1466">1466</a> 
<a class="jxr_linenumber" name="L1467" href="#L1467">1467</a>         <strong class="jxr_keyword">return</strong> versions;
<a class="jxr_linenumber" name="L1468" href="#L1468">1468</a> 
<a class="jxr_linenumber" name="L1469" href="#L1469">1469</a>     }
<a class="jxr_linenumber" name="L1470" href="#L1470">1470</a> 
<a class="jxr_linenumber" name="L1471" href="#L1471">1471</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1472" href="#L1472">1472</a> <em class="jxr_javadoccomment">     * iterate over available facets to remove/add from the artifactMetadata</em>
<a class="jxr_linenumber" name="L1473" href="#L1473">1473</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1474" href="#L1474">1474</a> <em class="jxr_javadoccomment">     * @param facetedMetadata</em>
<a class="jxr_linenumber" name="L1475" href="#L1475">1475</a> <em class="jxr_javadoccomment">     * @param artifactMetadataModel only use for the key</em>
<a class="jxr_linenumber" name="L1476" href="#L1476">1476</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1477" href="#L1477">1477</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> updateFacets( <strong class="jxr_keyword">final</strong> FacetedMetadata facetedMetadata,
<a class="jxr_linenumber" name="L1478" href="#L1478">1478</a>                                <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.html">ArtifactMetadataModel</a> artifactMetadataModel )
<a class="jxr_linenumber" name="L1479" href="#L1479">1479</a>     {
<a class="jxr_linenumber" name="L1480" href="#L1480">1480</a> 
<a class="jxr_linenumber" name="L1481" href="#L1481">1481</a>         String cf = cassandraArchivaManager.getMetadataFacetFamilyName();
<a class="jxr_linenumber" name="L1482" href="#L1482">1482</a> 
<a class="jxr_linenumber" name="L1483" href="#L1483">1483</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">final</strong> String facetId : metadataFacetFactories.keySet() )
<a class="jxr_linenumber" name="L1484" href="#L1484">1484</a>         {
<a class="jxr_linenumber" name="L1485" href="#L1485">1485</a>             <a href="../../../../../../org/apache/archiva/metadata/model/MetadataFacet.html">MetadataFacet</a> metadataFacet = facetedMetadata.getFacet( facetId );
<a class="jxr_linenumber" name="L1486" href="#L1486">1486</a>             <strong class="jxr_keyword">if</strong> ( metadataFacet == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1487" href="#L1487">1487</a>             {
<a class="jxr_linenumber" name="L1488" href="#L1488">1488</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L1489" href="#L1489">1489</a>             }
<a class="jxr_linenumber" name="L1490" href="#L1490">1490</a>             <em class="jxr_comment">// clean first</em>
<a class="jxr_linenumber" name="L1491" href="#L1491">1491</a> 
<a class="jxr_linenumber" name="L1492" href="#L1492">1492</a>             QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L1493" href="#L1493">1493</a>                 HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1494" href="#L1494">1494</a>                     .setColumnFamily( cf ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1495" href="#L1495">1495</a>                     .setColumnNames( REPOSITORY_NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1496" href="#L1496">1496</a>                     .addEqualsExpression( REPOSITORY_NAME.toString(), artifactMetadataModel.getRepositoryId() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1497" href="#L1497">1497</a>                     .addEqualsExpression( NAMESPACE_ID.toString(), artifactMetadataModel.getNamespace() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1498" href="#L1498">1498</a>                     .addEqualsExpression( PROJECT_ID.toString(), artifactMetadataModel.getProject() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1499" href="#L1499">1499</a>                     .addEqualsExpression( PROJECT_VERSION.toString(), artifactMetadataModel.getProjectVersion() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1500" href="#L1500">1500</a>                     .addEqualsExpression( FACET_ID.toString(), facetId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1501" href="#L1501">1501</a>                     .execute();
<a class="jxr_linenumber" name="L1502" href="#L1502">1502</a> 
<a class="jxr_linenumber" name="L1503" href="#L1503">1503</a>             <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get().getList() )
<a class="jxr_linenumber" name="L1504" href="#L1504">1504</a>             {
<a class="jxr_linenumber" name="L1505" href="#L1505">1505</a>                 <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L1506" href="#L1506">1506</a>             }
<a class="jxr_linenumber" name="L1507" href="#L1507">1507</a> 
<a class="jxr_linenumber" name="L1508" href="#L1508">1508</a>             Map&lt;String, String&gt; properties = metadataFacet.toProperties();
<a class="jxr_linenumber" name="L1509" href="#L1509">1509</a> 
<a class="jxr_linenumber" name="L1510" href="#L1510">1510</a>             <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, String&gt; entry : properties.entrySet() )
<a class="jxr_linenumber" name="L1511" href="#L1511">1511</a>             {
<a class="jxr_linenumber" name="L1512" href="#L1512">1512</a>                 String key = <strong class="jxr_keyword">new</strong> MetadataFacetModel.KeyBuilder().withKey( entry.getKey() ).withArtifactMetadataModel(
<a class="jxr_linenumber" name="L1513" href="#L1513">1513</a>                     artifactMetadataModel ).withFacetId( facetId ).withName( metadataFacet.getName() ).build();
<a class="jxr_linenumber" name="L1514" href="#L1514">1514</a>                 Mutator&lt;String&gt; mutator = metadataFacetTemplate.createMutator() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1515" href="#L1515">1515</a>                     .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), artifactMetadataModel.getRepositoryId() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1516" href="#L1516">1516</a>                     .addInsertion( key, cf, column( NAMESPACE_ID.toString(), artifactMetadataModel.getNamespace() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1517" href="#L1517">1517</a>                     .addInsertion( key, cf, column( PROJECT_ID.toString(), artifactMetadataModel.getProject() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1518" href="#L1518">1518</a>                     .addInsertion( key, cf, column( PROJECT_VERSION.toString(), artifactMetadataModel.getProjectVersion() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1519" href="#L1519">1519</a>                     .addInsertion( key, cf, column( FACET_ID.toString(), facetId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1520" href="#L1520">1520</a>                     .addInsertion( key, cf, column( KEY.toString(), entry.getKey() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1521" href="#L1521">1521</a>                     .addInsertion( key, cf, column( VALUE.toString(), entry.getValue() ) );
<a class="jxr_linenumber" name="L1522" href="#L1522">1522</a> 
<a class="jxr_linenumber" name="L1523" href="#L1523">1523</a>                 <strong class="jxr_keyword">if</strong> ( metadataFacet.getName() != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1524" href="#L1524">1524</a>                 {
<a class="jxr_linenumber" name="L1525" href="#L1525">1525</a>                     mutator.addInsertion( key, cf, column( NAME.toString(), metadataFacet.getName() ) );
<a class="jxr_linenumber" name="L1526" href="#L1526">1526</a>                 }
<a class="jxr_linenumber" name="L1527" href="#L1527">1527</a> 
<a class="jxr_linenumber" name="L1528" href="#L1528">1528</a>                 mutator.execute();
<a class="jxr_linenumber" name="L1529" href="#L1529">1529</a>             }
<a class="jxr_linenumber" name="L1530" href="#L1530">1530</a>         }
<a class="jxr_linenumber" name="L1531" href="#L1531">1531</a>     }
<a class="jxr_linenumber" name="L1532" href="#L1532">1532</a> 
<a class="jxr_linenumber" name="L1533" href="#L1533">1533</a> 
<a class="jxr_linenumber" name="L1534" href="#L1534">1534</a>     @Override
<a class="jxr_linenumber" name="L1535" href="#L1535">1535</a>     <strong class="jxr_keyword">public</strong> List&lt;String&gt; getMetadataFacets( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> String facetId )
<a class="jxr_linenumber" name="L1536" href="#L1536">1536</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L1537" href="#L1537">1537</a>     {
<a class="jxr_linenumber" name="L1538" href="#L1538">1538</a> 
<a class="jxr_linenumber" name="L1539" href="#L1539">1539</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1540" href="#L1540">1540</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1541" href="#L1541">1541</a>             .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1542" href="#L1542">1542</a>             .setColumnNames( NAME.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1543" href="#L1543">1543</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1544" href="#L1544">1544</a>             .addEqualsExpression( FACET_ID.toString(), facetId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1545" href="#L1545">1545</a>             .execute();
<a class="jxr_linenumber" name="L1546" href="#L1546">1546</a> 
<a class="jxr_linenumber" name="L1547" href="#L1547">1547</a>         <strong class="jxr_keyword">final</strong> List&lt;String&gt; facets = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L1548" href="#L1548">1548</a> 
<a class="jxr_linenumber" name="L1549" href="#L1549">1549</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1550" href="#L1550">1550</a>         {
<a class="jxr_linenumber" name="L1551" href="#L1551">1551</a>             facets.add( getStringValue( row.getColumnSlice(), NAME.toString() ) );
<a class="jxr_linenumber" name="L1552" href="#L1552">1552</a>         }
<a class="jxr_linenumber" name="L1553" href="#L1553">1553</a>         <strong class="jxr_keyword">return</strong> facets;
<a class="jxr_linenumber" name="L1554" href="#L1554">1554</a>     }
<a class="jxr_linenumber" name="L1555" href="#L1555">1555</a> 
<a class="jxr_linenumber" name="L1556" href="#L1556">1556</a>     @Override
<a class="jxr_linenumber" name="L1557" href="#L1557">1557</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> hasMetadataFacet( String repositoryId, String facetId )
<a class="jxr_linenumber" name="L1558" href="#L1558">1558</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L1559" href="#L1559">1559</a>     {
<a class="jxr_linenumber" name="L1560" href="#L1560">1560</a>         <strong class="jxr_keyword">return</strong> !getMetadataFacets( repositoryId, facetId ).isEmpty();
<a class="jxr_linenumber" name="L1561" href="#L1561">1561</a>     }
<a class="jxr_linenumber" name="L1562" href="#L1562">1562</a> 
<a class="jxr_linenumber" name="L1563" href="#L1563">1563</a>     @Override
<a class="jxr_linenumber" name="L1564" href="#L1564">1564</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/archiva/metadata/model/MetadataFacet.html">MetadataFacet</a> getMetadataFacet( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> String facetId, <strong class="jxr_keyword">final</strong> String name )
<a class="jxr_linenumber" name="L1565" href="#L1565">1565</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L1566" href="#L1566">1566</a>     {
<a class="jxr_linenumber" name="L1567" href="#L1567">1567</a> 
<a class="jxr_linenumber" name="L1568" href="#L1568">1568</a>         <a href="../../../../../../org/apache/archiva/metadata/model/MetadataFacetFactory.html">MetadataFacetFactory</a> metadataFacetFactory = metadataFacetFactories.get( facetId );
<a class="jxr_linenumber" name="L1569" href="#L1569">1569</a>         <strong class="jxr_keyword">if</strong> ( metadataFacetFactory == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1570" href="#L1570">1570</a>         {
<a class="jxr_linenumber" name="L1571" href="#L1571">1571</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1572" href="#L1572">1572</a>         }
<a class="jxr_linenumber" name="L1573" href="#L1573">1573</a> 
<a class="jxr_linenumber" name="L1574" href="#L1574">1574</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1575" href="#L1575">1575</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1576" href="#L1576">1576</a>             .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1577" href="#L1577">1577</a>             .setColumnNames( KEY.toString(), VALUE.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1578" href="#L1578">1578</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1579" href="#L1579">1579</a>             .addEqualsExpression( FACET_ID.toString(), facetId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1580" href="#L1580">1580</a>             .addEqualsExpression( NAME.toString(), name ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1581" href="#L1581">1581</a>             .execute();
<a class="jxr_linenumber" name="L1582" href="#L1582">1582</a> 
<a class="jxr_linenumber" name="L1583" href="#L1583">1583</a>         <a href="../../../../../../org/apache/archiva/metadata/model/MetadataFacet.html">MetadataFacet</a> metadataFacet = metadataFacetFactory.createMetadataFacet( repositoryId, name );
<a class="jxr_linenumber" name="L1584" href="#L1584">1584</a>         <strong class="jxr_keyword">int</strong> size = result.get().getCount();
<a class="jxr_linenumber" name="L1585" href="#L1585">1585</a>         <strong class="jxr_keyword">if</strong> ( size &lt; 1 )
<a class="jxr_linenumber" name="L1586" href="#L1586">1586</a>         {
<a class="jxr_linenumber" name="L1587" href="#L1587">1587</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1588" href="#L1588">1588</a>         }
<a class="jxr_linenumber" name="L1589" href="#L1589">1589</a>         Map&lt;String, String&gt; map = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;( size );
<a class="jxr_linenumber" name="L1590" href="#L1590">1590</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1591" href="#L1591">1591</a>         {
<a class="jxr_linenumber" name="L1592" href="#L1592">1592</a>             ColumnSlice&lt;String, String&gt; columnSlice = row.getColumnSlice();
<a class="jxr_linenumber" name="L1593" href="#L1593">1593</a>             map.put( getStringValue( columnSlice, KEY.toString() ), getStringValue( columnSlice, VALUE.toString() ) );
<a class="jxr_linenumber" name="L1594" href="#L1594">1594</a>         }
<a class="jxr_linenumber" name="L1595" href="#L1595">1595</a>         metadataFacet.fromProperties( map );
<a class="jxr_linenumber" name="L1596" href="#L1596">1596</a>         <strong class="jxr_keyword">return</strong> metadataFacet;
<a class="jxr_linenumber" name="L1597" href="#L1597">1597</a>     }
<a class="jxr_linenumber" name="L1598" href="#L1598">1598</a> 
<a class="jxr_linenumber" name="L1599" href="#L1599">1599</a>     @Override
<a class="jxr_linenumber" name="L1600" href="#L1600">1600</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addMetadataFacet( String repositoryId, MetadataFacet metadataFacet )
<a class="jxr_linenumber" name="L1601" href="#L1601">1601</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L1602" href="#L1602">1602</a>     {
<a class="jxr_linenumber" name="L1603" href="#L1603">1603</a> 
<a class="jxr_linenumber" name="L1604" href="#L1604">1604</a>         <strong class="jxr_keyword">if</strong> ( metadataFacet == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1605" href="#L1605">1605</a>         {
<a class="jxr_linenumber" name="L1606" href="#L1606">1606</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L1607" href="#L1607">1607</a>         }
<a class="jxr_linenumber" name="L1608" href="#L1608">1608</a> 
<a class="jxr_linenumber" name="L1609" href="#L1609">1609</a>         <strong class="jxr_keyword">if</strong> ( metadataFacet.toProperties().isEmpty() )
<a class="jxr_linenumber" name="L1610" href="#L1610">1610</a>         {
<a class="jxr_linenumber" name="L1611" href="#L1611">1611</a>             String key = <strong class="jxr_keyword">new</strong> MetadataFacetModel.KeyBuilder().withRepositoryId( repositoryId ).withFacetId(
<a class="jxr_linenumber" name="L1612" href="#L1612">1612</a>                 metadataFacet.getFacetId() ).withName( metadataFacet.getName() ).build();
<a class="jxr_linenumber" name="L1613" href="#L1613">1613</a> 
<a class="jxr_linenumber" name="L1614" href="#L1614">1614</a>             <strong class="jxr_keyword">boolean</strong> exists = <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.isColumnsExist( key );
<a class="jxr_linenumber" name="L1615" href="#L1615">1615</a> 
<a class="jxr_linenumber" name="L1616" href="#L1616">1616</a>             <strong class="jxr_keyword">if</strong> ( exists )
<a class="jxr_linenumber" name="L1617" href="#L1617">1617</a>             {
<a class="jxr_linenumber" name="L1618" href="#L1618">1618</a>                 ColumnFamilyUpdater&lt;String, String&gt; updater = <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.createUpdater( key );
<a class="jxr_linenumber" name="L1619" href="#L1619">1619</a>                 addUpdateStringValue( updater, FACET_ID.toString(), metadataFacet.getFacetId() );
<a class="jxr_linenumber" name="L1620" href="#L1620">1620</a>                 addUpdateStringValue( updater, NAME.toString(), metadataFacet.getName() );
<a class="jxr_linenumber" name="L1621" href="#L1621">1621</a>                 <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.update( updater );
<a class="jxr_linenumber" name="L1622" href="#L1622">1622</a>             }
<a class="jxr_linenumber" name="L1623" href="#L1623">1623</a>             <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1624" href="#L1624">1624</a>             {
<a class="jxr_linenumber" name="L1625" href="#L1625">1625</a>                 String cf = <strong class="jxr_keyword">this</strong>.cassandraArchivaManager.getMetadataFacetFamilyName();
<a class="jxr_linenumber" name="L1626" href="#L1626">1626</a>                 <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.createMutator() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1627" href="#L1627">1627</a>                     .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), repositoryId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1628" href="#L1628">1628</a>                     .addInsertion( key, cf, column( FACET_ID.toString(), metadataFacet.getFacetId() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1629" href="#L1629">1629</a>                     .addInsertion( key, cf, column( NAME.toString(), metadataFacet.getName() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1630" href="#L1630">1630</a>                     .execute();
<a class="jxr_linenumber" name="L1631" href="#L1631">1631</a>             }
<a class="jxr_linenumber" name="L1632" href="#L1632">1632</a> 
<a class="jxr_linenumber" name="L1633" href="#L1633">1633</a>         }
<a class="jxr_linenumber" name="L1634" href="#L1634">1634</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1635" href="#L1635">1635</a>         {
<a class="jxr_linenumber" name="L1636" href="#L1636">1636</a>             <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, String&gt; entry : metadataFacet.toProperties().entrySet() )
<a class="jxr_linenumber" name="L1637" href="#L1637">1637</a>             {
<a class="jxr_linenumber" name="L1638" href="#L1638">1638</a>                 String key = <strong class="jxr_keyword">new</strong> MetadataFacetModel.KeyBuilder().withRepositoryId( repositoryId ).withFacetId(
<a class="jxr_linenumber" name="L1639" href="#L1639">1639</a>                     metadataFacet.getFacetId() ).withName( metadataFacet.getName() ).withKey( entry.getKey() ).build();
<a class="jxr_linenumber" name="L1640" href="#L1640">1640</a> 
<a class="jxr_linenumber" name="L1641" href="#L1641">1641</a>                 <strong class="jxr_keyword">boolean</strong> exists = <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.isColumnsExist( key );
<a class="jxr_linenumber" name="L1642" href="#L1642">1642</a>                 <strong class="jxr_keyword">if</strong> ( !exists )
<a class="jxr_linenumber" name="L1643" href="#L1643">1643</a>                 {
<a class="jxr_linenumber" name="L1644" href="#L1644">1644</a>                     String cf = <strong class="jxr_keyword">this</strong>.cassandraArchivaManager.getMetadataFacetFamilyName();
<a class="jxr_linenumber" name="L1645" href="#L1645">1645</a>                     <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.createMutator() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1646" href="#L1646">1646</a>                         .addInsertion( key, cf, column( REPOSITORY_NAME.toString(), repositoryId ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1647" href="#L1647">1647</a>                         .addInsertion( key, cf, column( FACET_ID.toString(), metadataFacet.getFacetId() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1648" href="#L1648">1648</a>                         .addInsertion( key, cf, column( NAME.toString(), metadataFacet.getName() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1649" href="#L1649">1649</a>                         .addInsertion( key, cf, column( KEY.toString(), entry.getKey() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1650" href="#L1650">1650</a>                         .addInsertion( key, cf, column( VALUE.toString(), entry.getValue() ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1651" href="#L1651">1651</a>                         .execute();
<a class="jxr_linenumber" name="L1652" href="#L1652">1652</a>                 }
<a class="jxr_linenumber" name="L1653" href="#L1653">1653</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1654" href="#L1654">1654</a>                 {
<a class="jxr_linenumber" name="L1655" href="#L1655">1655</a>                     ColumnFamilyUpdater&lt;String, String&gt; updater = <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.createUpdater( key );
<a class="jxr_linenumber" name="L1656" href="#L1656">1656</a>                     addUpdateStringValue( updater, VALUE.toString(), entry.getValue() );
<a class="jxr_linenumber" name="L1657" href="#L1657">1657</a>                     <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.update( updater );
<a class="jxr_linenumber" name="L1658" href="#L1658">1658</a>                 }
<a class="jxr_linenumber" name="L1659" href="#L1659">1659</a>             }
<a class="jxr_linenumber" name="L1660" href="#L1660">1660</a>         }
<a class="jxr_linenumber" name="L1661" href="#L1661">1661</a>     }
<a class="jxr_linenumber" name="L1662" href="#L1662">1662</a> 
<a class="jxr_linenumber" name="L1663" href="#L1663">1663</a>     @Override
<a class="jxr_linenumber" name="L1664" href="#L1664">1664</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeMetadataFacets( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> String facetId )
<a class="jxr_linenumber" name="L1665" href="#L1665">1665</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L1666" href="#L1666">1666</a>     {
<a class="jxr_linenumber" name="L1667" href="#L1667">1667</a> 
<a class="jxr_linenumber" name="L1668" href="#L1668">1668</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1669" href="#L1669">1669</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1670" href="#L1670">1670</a>             .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1671" href="#L1671">1671</a>             .setColumnNames( KEY.toString(), VALUE.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1672" href="#L1672">1672</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1673" href="#L1673">1673</a>             .addEqualsExpression( FACET_ID.toString(), facetId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1674" href="#L1674">1674</a>             .execute();
<a class="jxr_linenumber" name="L1675" href="#L1675">1675</a> 
<a class="jxr_linenumber" name="L1676" href="#L1676">1676</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1677" href="#L1677">1677</a>         {
<a class="jxr_linenumber" name="L1678" href="#L1678">1678</a>             <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L1679" href="#L1679">1679</a>         }
<a class="jxr_linenumber" name="L1680" href="#L1680">1680</a> 
<a class="jxr_linenumber" name="L1681" href="#L1681">1681</a>     }
<a class="jxr_linenumber" name="L1682" href="#L1682">1682</a> 
<a class="jxr_linenumber" name="L1683" href="#L1683">1683</a>     @Override
<a class="jxr_linenumber" name="L1684" href="#L1684">1684</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeMetadataFacet( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> String facetId, <strong class="jxr_keyword">final</strong> String name )
<a class="jxr_linenumber" name="L1685" href="#L1685">1685</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L1686" href="#L1686">1686</a>     {
<a class="jxr_linenumber" name="L1687" href="#L1687">1687</a> 
<a class="jxr_linenumber" name="L1688" href="#L1688">1688</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1689" href="#L1689">1689</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1690" href="#L1690">1690</a>             .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1691" href="#L1691">1691</a>             .setColumnNames( KEY.toString(), VALUE.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1692" href="#L1692">1692</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1693" href="#L1693">1693</a>             .addEqualsExpression( FACET_ID.toString(), facetId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1694" href="#L1694">1694</a>             .addEqualsExpression( NAME.toString(), name ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1695" href="#L1695">1695</a>             .execute();
<a class="jxr_linenumber" name="L1696" href="#L1696">1696</a> 
<a class="jxr_linenumber" name="L1697" href="#L1697">1697</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1698" href="#L1698">1698</a>         {
<a class="jxr_linenumber" name="L1699" href="#L1699">1699</a>             <strong class="jxr_keyword">this</strong>.metadataFacetTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L1700" href="#L1700">1700</a>         }
<a class="jxr_linenumber" name="L1701" href="#L1701">1701</a>     }
<a class="jxr_linenumber" name="L1702" href="#L1702">1702</a> 
<a class="jxr_linenumber" name="L1703" href="#L1703">1703</a>     @Override
<a class="jxr_linenumber" name="L1704" href="#L1704">1704</a>     <strong class="jxr_keyword">public</strong> List&lt;ArtifactMetadata&gt; getArtifactsByDateRange( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> Date startTime,
<a class="jxr_linenumber" name="L1705" href="#L1705">1705</a>                                                            <strong class="jxr_keyword">final</strong> Date endTime )
<a class="jxr_linenumber" name="L1706" href="#L1706">1706</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L1707" href="#L1707">1707</a>     {
<a class="jxr_linenumber" name="L1708" href="#L1708">1708</a> 
<a class="jxr_linenumber" name="L1709" href="#L1709">1709</a>         LongSerializer ls = LongSerializer.get();
<a class="jxr_linenumber" name="L1710" href="#L1710">1710</a>         RangeSlicesQuery&lt;String, String, Long&gt; query = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1711" href="#L1711">1711</a>             .createRangeSlicesQuery( keyspace, ss, ss, ls ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1712" href="#L1712">1712</a>             .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1713" href="#L1713">1713</a>             .setColumnNames( ArtifactMetadataModel.COLUMNS ); <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1714" href="#L1714">1714</a> 
<a class="jxr_linenumber" name="L1715" href="#L1715">1715</a>         <strong class="jxr_keyword">if</strong> ( startTime != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1716" href="#L1716">1716</a>         {
<a class="jxr_linenumber" name="L1717" href="#L1717">1717</a>             query = query.addGteExpression( WHEN_GATHERED.toString(), startTime.getTime() );
<a class="jxr_linenumber" name="L1718" href="#L1718">1718</a>         }
<a class="jxr_linenumber" name="L1719" href="#L1719">1719</a>         <strong class="jxr_keyword">if</strong> ( endTime != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1720" href="#L1720">1720</a>         {
<a class="jxr_linenumber" name="L1721" href="#L1721">1721</a>             query = query.addLteExpression( WHEN_GATHERED.toString(), endTime.getTime() );
<a class="jxr_linenumber" name="L1722" href="#L1722">1722</a>         }
<a class="jxr_linenumber" name="L1723" href="#L1723">1723</a>         QueryResult&lt;OrderedRows&lt;String, String, Long&gt;&gt; result = query.execute();
<a class="jxr_linenumber" name="L1724" href="#L1724">1724</a> 
<a class="jxr_linenumber" name="L1725" href="#L1725">1725</a>         List&lt;ArtifactMetadata&gt; artifactMetadatas = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L1726" href="#L1726">1726</a> 
<a class="jxr_linenumber" name="L1727" href="#L1727">1727</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, Long&gt; row : result.get() )
<a class="jxr_linenumber" name="L1728" href="#L1728">1728</a>         {
<a class="jxr_linenumber" name="L1729" href="#L1729">1729</a>             ColumnSlice&lt;String, Long&gt; columnSlice = row.getColumnSlice();
<a class="jxr_linenumber" name="L1730" href="#L1730">1730</a>             String repositoryName = getAsStringValue( columnSlice, REPOSITORY_NAME.toString() );
<a class="jxr_linenumber" name="L1731" href="#L1731">1731</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.equals( repositoryName, repositoryId ) )
<a class="jxr_linenumber" name="L1732" href="#L1732">1732</a>             {
<a class="jxr_linenumber" name="L1733" href="#L1733">1733</a> 
<a class="jxr_linenumber" name="L1734" href="#L1734">1734</a>                 artifactMetadatas.add( mapArtifactMetadataLongColumnSlice( columnSlice ) );
<a class="jxr_linenumber" name="L1735" href="#L1735">1735</a>             }
<a class="jxr_linenumber" name="L1736" href="#L1736">1736</a>         }
<a class="jxr_linenumber" name="L1737" href="#L1737">1737</a> 
<a class="jxr_linenumber" name="L1738" href="#L1738">1738</a>         <strong class="jxr_keyword">return</strong> artifactMetadatas;
<a class="jxr_linenumber" name="L1739" href="#L1739">1739</a>     }
<a class="jxr_linenumber" name="L1740" href="#L1740">1740</a> 
<a class="jxr_linenumber" name="L1741" href="#L1741">1741</a> 
<a class="jxr_linenumber" name="L1742" href="#L1742">1742</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/archiva/metadata/model/ArtifactMetadata.html">ArtifactMetadata</a> mapArtifactMetadataLongColumnSlice( ColumnSlice&lt;String, Long&gt; columnSlice )
<a class="jxr_linenumber" name="L1743" href="#L1743">1743</a>     {
<a class="jxr_linenumber" name="L1744" href="#L1744">1744</a>         <a href="../../../../../../org/apache/archiva/metadata/model/ArtifactMetadata.html">ArtifactMetadata</a> artifactMetadata = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/model/ArtifactMetadata.html">ArtifactMetadata</a>();
<a class="jxr_linenumber" name="L1745" href="#L1745">1745</a>         artifactMetadata.setNamespace( getAsStringValue( columnSlice, NAMESPACE_ID.toString() ) );
<a class="jxr_linenumber" name="L1746" href="#L1746">1746</a>         artifactMetadata.setSize( getLongValue( columnSlice, SIZE.toString() ) );
<a class="jxr_linenumber" name="L1747" href="#L1747">1747</a>         artifactMetadata.setId( getAsStringValue( columnSlice, ID.toString() ) );
<a class="jxr_linenumber" name="L1748" href="#L1748">1748</a>         artifactMetadata.setFileLastModified( getLongValue( columnSlice, FILE_LAST_MODIFIED.toString() ) );
<a class="jxr_linenumber" name="L1749" href="#L1749">1749</a>         artifactMetadata.setMd5( getAsStringValue( columnSlice, MD5.toString() ) );
<a class="jxr_linenumber" name="L1750" href="#L1750">1750</a>         artifactMetadata.setProject( getAsStringValue( columnSlice, PROJECT.toString() ) );
<a class="jxr_linenumber" name="L1751" href="#L1751">1751</a>         artifactMetadata.setProjectVersion( getAsStringValue( columnSlice, PROJECT_VERSION.toString() ) );
<a class="jxr_linenumber" name="L1752" href="#L1752">1752</a>         artifactMetadata.setRepositoryId( getAsStringValue( columnSlice, REPOSITORY_NAME.toString() ) );
<a class="jxr_linenumber" name="L1753" href="#L1753">1753</a>         artifactMetadata.setSha1( getAsStringValue( columnSlice, SHA1.toString() ) );
<a class="jxr_linenumber" name="L1754" href="#L1754">1754</a>         artifactMetadata.setVersion( getAsStringValue( columnSlice, VERSION.toString() ) );
<a class="jxr_linenumber" name="L1755" href="#L1755">1755</a>         Long whenGathered = getLongValue( columnSlice, WHEN_GATHERED.toString() );
<a class="jxr_linenumber" name="L1756" href="#L1756">1756</a>         <strong class="jxr_keyword">if</strong> ( whenGathered != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1757" href="#L1757">1757</a>         {
<a class="jxr_linenumber" name="L1758" href="#L1758">1758</a>             artifactMetadata.setWhenGathered( <strong class="jxr_keyword">new</strong> Date( whenGathered ) );
<a class="jxr_linenumber" name="L1759" href="#L1759">1759</a>         }
<a class="jxr_linenumber" name="L1760" href="#L1760">1760</a>         <strong class="jxr_keyword">return</strong> artifactMetadata;
<a class="jxr_linenumber" name="L1761" href="#L1761">1761</a>     }
<a class="jxr_linenumber" name="L1762" href="#L1762">1762</a> 
<a class="jxr_linenumber" name="L1763" href="#L1763">1763</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/archiva/metadata/model/ArtifactMetadata.html">ArtifactMetadata</a> mapArtifactMetadataStringColumnSlice( ColumnSlice&lt;String, String&gt; columnSlice )
<a class="jxr_linenumber" name="L1764" href="#L1764">1764</a>     {
<a class="jxr_linenumber" name="L1765" href="#L1765">1765</a>         <a href="../../../../../../org/apache/archiva/metadata/model/ArtifactMetadata.html">ArtifactMetadata</a> artifactMetadata = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/model/ArtifactMetadata.html">ArtifactMetadata</a>();
<a class="jxr_linenumber" name="L1766" href="#L1766">1766</a>         artifactMetadata.setNamespace( getStringValue( columnSlice, NAMESPACE_ID.toString() ) );
<a class="jxr_linenumber" name="L1767" href="#L1767">1767</a>         artifactMetadata.setSize( getAsLongValue( columnSlice, SIZE.toString() ) );
<a class="jxr_linenumber" name="L1768" href="#L1768">1768</a>         artifactMetadata.setId( getStringValue( columnSlice, ID.toString() ) );
<a class="jxr_linenumber" name="L1769" href="#L1769">1769</a>         artifactMetadata.setFileLastModified( getAsLongValue( columnSlice, FILE_LAST_MODIFIED.toString() ) );
<a class="jxr_linenumber" name="L1770" href="#L1770">1770</a>         artifactMetadata.setMd5( getStringValue( columnSlice, MD5.toString() ) );
<a class="jxr_linenumber" name="L1771" href="#L1771">1771</a>         artifactMetadata.setProject( getStringValue( columnSlice, PROJECT.toString() ) );
<a class="jxr_linenumber" name="L1772" href="#L1772">1772</a>         artifactMetadata.setProjectVersion( getStringValue( columnSlice, PROJECT_VERSION.toString() ) );
<a class="jxr_linenumber" name="L1773" href="#L1773">1773</a>         artifactMetadata.setRepositoryId( getStringValue( columnSlice, REPOSITORY_NAME.toString() ) );
<a class="jxr_linenumber" name="L1774" href="#L1774">1774</a>         artifactMetadata.setSha1( getStringValue( columnSlice, SHA1.toString() ) );
<a class="jxr_linenumber" name="L1775" href="#L1775">1775</a>         artifactMetadata.setVersion( getStringValue( columnSlice, VERSION.toString() ) );
<a class="jxr_linenumber" name="L1776" href="#L1776">1776</a>         Long whenGathered = getAsLongValue( columnSlice, WHEN_GATHERED.toString() );
<a class="jxr_linenumber" name="L1777" href="#L1777">1777</a>         <strong class="jxr_keyword">if</strong> ( whenGathered != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1778" href="#L1778">1778</a>         {
<a class="jxr_linenumber" name="L1779" href="#L1779">1779</a>             artifactMetadata.setWhenGathered( <strong class="jxr_keyword">new</strong> Date( whenGathered ) );
<a class="jxr_linenumber" name="L1780" href="#L1780">1780</a>         }
<a class="jxr_linenumber" name="L1781" href="#L1781">1781</a>         <strong class="jxr_keyword">return</strong> artifactMetadata;
<a class="jxr_linenumber" name="L1782" href="#L1782">1782</a>     }
<a class="jxr_linenumber" name="L1783" href="#L1783">1783</a> 
<a class="jxr_linenumber" name="L1784" href="#L1784">1784</a>     @Override
<a class="jxr_linenumber" name="L1785" href="#L1785">1785</a>     <strong class="jxr_keyword">public</strong> Collection&lt;ArtifactMetadata&gt; getArtifactsByChecksum( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> String checksum )
<a class="jxr_linenumber" name="L1786" href="#L1786">1786</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L1787" href="#L1787">1787</a>     {
<a class="jxr_linenumber" name="L1788" href="#L1788">1788</a> 
<a class="jxr_linenumber" name="L1789" href="#L1789">1789</a>         <em class="jxr_comment">// cql cannot run or in queries so running twice the query</em>
<a class="jxr_linenumber" name="L1790" href="#L1790">1790</a>         Map&lt;String, ArtifactMetadata&gt; artifactMetadataMap = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
<a class="jxr_linenumber" name="L1791" href="#L1791">1791</a> 
<a class="jxr_linenumber" name="L1792" href="#L1792">1792</a>         RangeSlicesQuery&lt;String, String, String&gt; query = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1793" href="#L1793">1793</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1794" href="#L1794">1794</a>             .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1795" href="#L1795">1795</a>             .setColumnNames( ArtifactMetadataModel.COLUMNS ); <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1796" href="#L1796">1796</a> 
<a class="jxr_linenumber" name="L1797" href="#L1797">1797</a>         query = query.addEqualsExpression( SHA1.toString(), checksum ).addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId );
<a class="jxr_linenumber" name="L1798" href="#L1798">1798</a> 
<a class="jxr_linenumber" name="L1799" href="#L1799">1799</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = query.execute();
<a class="jxr_linenumber" name="L1800" href="#L1800">1800</a> 
<a class="jxr_linenumber" name="L1801" href="#L1801">1801</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1802" href="#L1802">1802</a>         {
<a class="jxr_linenumber" name="L1803" href="#L1803">1803</a>             ColumnSlice&lt;String, String&gt; columnSlice = row.getColumnSlice();
<a class="jxr_linenumber" name="L1804" href="#L1804">1804</a> 
<a class="jxr_linenumber" name="L1805" href="#L1805">1805</a>             artifactMetadataMap.put( row.getKey(), mapArtifactMetadataStringColumnSlice( columnSlice ) );
<a class="jxr_linenumber" name="L1806" href="#L1806">1806</a> 
<a class="jxr_linenumber" name="L1807" href="#L1807">1807</a>         }
<a class="jxr_linenumber" name="L1808" href="#L1808">1808</a> 
<a class="jxr_linenumber" name="L1809" href="#L1809">1809</a>         query = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1810" href="#L1810">1810</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1811" href="#L1811">1811</a>             .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1812" href="#L1812">1812</a>             .setColumnNames( NAMESPACE_ID.toString(), SIZE.toString(), ID.toString(), FILE_LAST_MODIFIED.toString(), MD5.toString(), PROJECT.toString(), PROJECT_VERSION.toString(),
<a class="jxr_linenumber" name="L1813" href="#L1813">1813</a>                              REPOSITORY_NAME.toString(), VERSION.toString(), WHEN_GATHERED.toString(), SHA1.toString() ); <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1814" href="#L1814">1814</a> 
<a class="jxr_linenumber" name="L1815" href="#L1815">1815</a>         query = query.addEqualsExpression( MD5.toString(), checksum ).addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId );
<a class="jxr_linenumber" name="L1816" href="#L1816">1816</a> 
<a class="jxr_linenumber" name="L1817" href="#L1817">1817</a>         result = query.execute();
<a class="jxr_linenumber" name="L1818" href="#L1818">1818</a> 
<a class="jxr_linenumber" name="L1819" href="#L1819">1819</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1820" href="#L1820">1820</a>         {
<a class="jxr_linenumber" name="L1821" href="#L1821">1821</a>             ColumnSlice&lt;String, String&gt; columnSlice = row.getColumnSlice();
<a class="jxr_linenumber" name="L1822" href="#L1822">1822</a> 
<a class="jxr_linenumber" name="L1823" href="#L1823">1823</a>             artifactMetadataMap.put( row.getKey(), mapArtifactMetadataStringColumnSlice( columnSlice ) );
<a class="jxr_linenumber" name="L1824" href="#L1824">1824</a> 
<a class="jxr_linenumber" name="L1825" href="#L1825">1825</a>         }
<a class="jxr_linenumber" name="L1826" href="#L1826">1826</a> 
<a class="jxr_linenumber" name="L1827" href="#L1827">1827</a>         <strong class="jxr_keyword">return</strong> artifactMetadataMap.values();
<a class="jxr_linenumber" name="L1828" href="#L1828">1828</a>     }
<a class="jxr_linenumber" name="L1829" href="#L1829">1829</a> 
<a class="jxr_linenumber" name="L1830" href="#L1830">1830</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1831" href="#L1831">1831</a> <em class="jxr_javadoccomment">     * Project version and artifact level metadata are stored in the same place, no distinctions in Cassandra</em>
<a class="jxr_linenumber" name="L1832" href="#L1832">1832</a> <em class="jxr_javadoccomment">     * implementation, just calls {@link #getArtifactsByMetadata(String, String, String)}</em>
<a class="jxr_linenumber" name="L1833" href="#L1833">1833</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1834" href="#L1834">1834</a>     @Override
<a class="jxr_linenumber" name="L1835" href="#L1835">1835</a>     <strong class="jxr_keyword">public</strong> List&lt;ArtifactMetadata&gt; getArtifactsByProjectVersionMetadata( String key, String value, String repositoryId )
<a class="jxr_linenumber" name="L1836" href="#L1836">1836</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L1837" href="#L1837">1837</a>     {
<a class="jxr_linenumber" name="L1838" href="#L1838">1838</a>         <strong class="jxr_keyword">return</strong> getArtifactsByMetadata( key, value, repositoryId );
<a class="jxr_linenumber" name="L1839" href="#L1839">1839</a>     }
<a class="jxr_linenumber" name="L1840" href="#L1840">1840</a> 
<a class="jxr_linenumber" name="L1841" href="#L1841">1841</a>     @Override
<a class="jxr_linenumber" name="L1842" href="#L1842">1842</a>     <strong class="jxr_keyword">public</strong> List&lt;ArtifactMetadata&gt; getArtifactsByMetadata( String key, String value, String repositoryId )
<a class="jxr_linenumber" name="L1843" href="#L1843">1843</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L1844" href="#L1844">1844</a>     {
<a class="jxr_linenumber" name="L1845" href="#L1845">1845</a>         RangeSlicesQuery&lt;String, String, String&gt; query =
<a class="jxr_linenumber" name="L1846" href="#L1846">1846</a>             HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1847" href="#L1847">1847</a>             .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1848" href="#L1848">1848</a>             .setColumnNames( MetadataFacetModel.COLUMNS ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1849" href="#L1849">1849</a>             .addEqualsExpression( VALUE.toString(), value );
<a class="jxr_linenumber" name="L1850" href="#L1850">1850</a> 
<a class="jxr_linenumber" name="L1851" href="#L1851">1851</a>         <strong class="jxr_keyword">if</strong> ( key != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1852" href="#L1852">1852</a>         {
<a class="jxr_linenumber" name="L1853" href="#L1853">1853</a>             query.addEqualsExpression( KEY.toString(), key ); <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1854" href="#L1854">1854</a>         }
<a class="jxr_linenumber" name="L1855" href="#L1855">1855</a>         <strong class="jxr_keyword">if</strong> ( repositoryId != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1856" href="#L1856">1856</a>         {
<a class="jxr_linenumber" name="L1857" href="#L1857">1857</a>             query.addEqualsExpression( <span class="jxr_string">"repositoryName"</span>, repositoryId );
<a class="jxr_linenumber" name="L1858" href="#L1858">1858</a>         }
<a class="jxr_linenumber" name="L1859" href="#L1859">1859</a> 
<a class="jxr_linenumber" name="L1860" href="#L1860">1860</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; metadataFacetResult = query.execute();
<a class="jxr_linenumber" name="L1861" href="#L1861">1861</a>         <strong class="jxr_keyword">if</strong> ( metadataFacetResult.get() == <strong class="jxr_keyword">null</strong> || metadataFacetResult.get().getCount() &lt; 1 )
<a class="jxr_linenumber" name="L1862" href="#L1862">1862</a>         {
<a class="jxr_linenumber" name="L1863" href="#L1863">1863</a>             <strong class="jxr_keyword">return</strong> Collections.emptyList();
<a class="jxr_linenumber" name="L1864" href="#L1864">1864</a>         }
<a class="jxr_linenumber" name="L1865" href="#L1865">1865</a> 
<a class="jxr_linenumber" name="L1866" href="#L1866">1866</a>         List&lt;ArtifactMetadata&gt; artifactMetadatas = <strong class="jxr_keyword">new</strong> LinkedList&lt;ArtifactMetadata&gt;();
<a class="jxr_linenumber" name="L1867" href="#L1867">1867</a> 
<a class="jxr_linenumber" name="L1868" href="#L1868">1868</a>         <em class="jxr_comment">// TODO doing multiple queries, there should be a way to get all the artifactMetadatas for any number of</em>
<a class="jxr_linenumber" name="L1869" href="#L1869">1869</a>         <em class="jxr_comment">// projects</em>
<a class="jxr_linenumber" name="L1870" href="#L1870">1870</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : metadataFacetResult.get() )
<a class="jxr_linenumber" name="L1871" href="#L1871">1871</a>         {
<a class="jxr_linenumber" name="L1872" href="#L1872">1872</a>             QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; artifactMetadataResult =
<a class="jxr_linenumber" name="L1873" href="#L1873">1873</a>                 HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1874" href="#L1874">1874</a>                 .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1875" href="#L1875">1875</a>                 .setColumnNames( ArtifactMetadataModel.COLUMNS ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1876" href="#L1876">1876</a>                 .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1877" href="#L1877">1877</a>                 .addEqualsExpression( REPOSITORY_NAME.toString(),
<a class="jxr_linenumber" name="L1878" href="#L1878">1878</a>                                       getStringValue( row.getColumnSlice(), REPOSITORY_NAME ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1879" href="#L1879">1879</a>                 .addEqualsExpression( NAMESPACE_ID.toString(), getStringValue( row.getColumnSlice(), NAMESPACE_ID ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1880" href="#L1880">1880</a>                 .addEqualsExpression( PROJECT.toString(), getStringValue( row.getColumnSlice(), PROJECT_ID ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1881" href="#L1881">1881</a>                 .addEqualsExpression( PROJECT_VERSION.toString(),
<a class="jxr_linenumber" name="L1882" href="#L1882">1882</a>                                       getStringValue( row.getColumnSlice(), PROJECT_VERSION ) ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1883" href="#L1883">1883</a>                 .execute();
<a class="jxr_linenumber" name="L1884" href="#L1884">1884</a> 
<a class="jxr_linenumber" name="L1885" href="#L1885">1885</a>             <strong class="jxr_keyword">if</strong> ( artifactMetadataResult.get() == <strong class="jxr_keyword">null</strong> || artifactMetadataResult.get().getCount() &lt; 1 )
<a class="jxr_linenumber" name="L1886" href="#L1886">1886</a>             {
<a class="jxr_linenumber" name="L1887" href="#L1887">1887</a>                 <strong class="jxr_keyword">return</strong> Collections.emptyList();
<a class="jxr_linenumber" name="L1888" href="#L1888">1888</a>             }
<a class="jxr_linenumber" name="L1889" href="#L1889">1889</a> 
<a class="jxr_linenumber" name="L1890" href="#L1890">1890</a>             <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; artifactMetadataRow : artifactMetadataResult.get() )
<a class="jxr_linenumber" name="L1891" href="#L1891">1891</a>             {
<a class="jxr_linenumber" name="L1892" href="#L1892">1892</a>                 artifactMetadatas.add( mapArtifactMetadataStringColumnSlice( artifactMetadataRow.getColumnSlice() ) );
<a class="jxr_linenumber" name="L1893" href="#L1893">1893</a>             }
<a class="jxr_linenumber" name="L1894" href="#L1894">1894</a>         }
<a class="jxr_linenumber" name="L1895" href="#L1895">1895</a> 
<a class="jxr_linenumber" name="L1896" href="#L1896">1896</a>         <strong class="jxr_keyword">return</strong> mapArtifactMetadataToArtifact( metadataFacetResult, artifactMetadatas );
<a class="jxr_linenumber" name="L1897" href="#L1897">1897</a>     }
<a class="jxr_linenumber" name="L1898" href="#L1898">1898</a> 
<a class="jxr_linenumber" name="L1899" href="#L1899">1899</a>     @Override
<a class="jxr_linenumber" name="L1900" href="#L1900">1900</a>     <strong class="jxr_keyword">public</strong> List&lt;ArtifactMetadata&gt; getArtifactsByProperty( String key, String value, String repositoryId )
<a class="jxr_linenumber" name="L1901" href="#L1901">1901</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L1902" href="#L1902">1902</a>     {
<a class="jxr_linenumber" name="L1903" href="#L1903">1903</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L1904" href="#L1904">1904</a>             HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1905" href="#L1905">1905</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1906" href="#L1906">1906</a>             .setColumnNames( PROJECT_ID.toString(), REPOSITORY_NAME.toString(), NAMESPACE_ID.toString(),
<a class="jxr_linenumber" name="L1907" href="#L1907">1907</a>                              PROJECT_VERSION.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1908" href="#L1908">1908</a>             .addEqualsExpression( key, value ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1909" href="#L1909">1909</a>             .execute();
<a class="jxr_linenumber" name="L1910" href="#L1910">1910</a> 
<a class="jxr_linenumber" name="L1911" href="#L1911">1911</a>         <strong class="jxr_keyword">int</strong> count = result.get().getCount();
<a class="jxr_linenumber" name="L1912" href="#L1912">1912</a> 
<a class="jxr_linenumber" name="L1913" href="#L1913">1913</a>         <strong class="jxr_keyword">if</strong> ( count &lt; 1 )
<a class="jxr_linenumber" name="L1914" href="#L1914">1914</a>         {
<a class="jxr_linenumber" name="L1915" href="#L1915">1915</a>             <strong class="jxr_keyword">return</strong> Collections.emptyList();
<a class="jxr_linenumber" name="L1916" href="#L1916">1916</a>         }
<a class="jxr_linenumber" name="L1917" href="#L1917">1917</a> 
<a class="jxr_linenumber" name="L1918" href="#L1918">1918</a>         List&lt;ArtifactMetadata&gt; artifacts = <strong class="jxr_keyword">new</strong> LinkedList&lt;ArtifactMetadata&gt;();
<a class="jxr_linenumber" name="L1919" href="#L1919">1919</a> 
<a class="jxr_linenumber" name="L1920" href="#L1920">1920</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1921" href="#L1921">1921</a>         {
<a class="jxr_linenumber" name="L1922" href="#L1922">1922</a>             <em class="jxr_comment">// TODO doing multiple queries, there should be a way to get all the artifactMetadatas for any number of</em>
<a class="jxr_linenumber" name="L1923" href="#L1923">1923</a>             <em class="jxr_comment">// projects</em>
<a class="jxr_linenumber" name="L1924" href="#L1924">1924</a>             <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L1925" href="#L1925">1925</a>             {
<a class="jxr_linenumber" name="L1926" href="#L1926">1926</a>                 artifacts.addAll( getArtifacts( getStringValue( row.getColumnSlice(), REPOSITORY_NAME ),
<a class="jxr_linenumber" name="L1927" href="#L1927">1927</a>                                                 getStringValue( row.getColumnSlice(), NAMESPACE_ID ),
<a class="jxr_linenumber" name="L1928" href="#L1928">1928</a>                                                 getStringValue( row.getColumnSlice(), PROJECT_ID ),
<a class="jxr_linenumber" name="L1929" href="#L1929">1929</a>                                                 getStringValue( row.getColumnSlice(), PROJECT_VERSION ) ) );
<a class="jxr_linenumber" name="L1930" href="#L1930">1930</a>             }
<a class="jxr_linenumber" name="L1931" href="#L1931">1931</a>             <strong class="jxr_keyword">catch</strong> ( MetadataResolutionException e )
<a class="jxr_linenumber" name="L1932" href="#L1932">1932</a>             {
<a class="jxr_linenumber" name="L1933" href="#L1933">1933</a>                 <em class="jxr_comment">// never raised</em>
<a class="jxr_linenumber" name="L1934" href="#L1934">1934</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException( e );
<a class="jxr_linenumber" name="L1935" href="#L1935">1935</a>             }
<a class="jxr_linenumber" name="L1936" href="#L1936">1936</a>         }
<a class="jxr_linenumber" name="L1937" href="#L1937">1937</a>         <strong class="jxr_keyword">return</strong> artifacts;
<a class="jxr_linenumber" name="L1938" href="#L1938">1938</a>     }
<a class="jxr_linenumber" name="L1939" href="#L1939">1939</a> 
<a class="jxr_linenumber" name="L1940" href="#L1940">1940</a>     @Override
<a class="jxr_linenumber" name="L1941" href="#L1941">1941</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeArtifact( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> String namespace, <strong class="jxr_keyword">final</strong> String project,
<a class="jxr_linenumber" name="L1942" href="#L1942">1942</a>                                 <strong class="jxr_keyword">final</strong> String version, <strong class="jxr_keyword">final</strong> String id )
<a class="jxr_linenumber" name="L1943" href="#L1943">1943</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L1944" href="#L1944">1944</a>     {
<a class="jxr_linenumber" name="L1945" href="#L1945">1945</a>         logger.debug( <span class="jxr_string">"removeArtifact repositoryId: '{}', namespace: '{}', project: '{}', version: '{}', id: '{}'"</span>,
<a class="jxr_linenumber" name="L1946" href="#L1946">1946</a>                       repositoryId, namespace, project, version, id );
<a class="jxr_linenumber" name="L1947" href="#L1947">1947</a>         String key =
<a class="jxr_linenumber" name="L1948" href="#L1948">1948</a>             <strong class="jxr_keyword">new</strong> ArtifactMetadataModel.KeyBuilder().withRepositoryId( repositoryId ).withNamespace( namespace ).withId(
<a class="jxr_linenumber" name="L1949" href="#L1949">1949</a>                 id ).withProjectVersion( version ).withProject( project ).build();
<a class="jxr_linenumber" name="L1950" href="#L1950">1950</a> 
<a class="jxr_linenumber" name="L1951" href="#L1951">1951</a>         <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.deleteRow( key );
<a class="jxr_linenumber" name="L1952" href="#L1952">1952</a> 
<a class="jxr_linenumber" name="L1953" href="#L1953">1953</a>         key = <strong class="jxr_keyword">new</strong> ProjectVersionMetadataModel.KeyBuilder() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1954" href="#L1954">1954</a>             .withRepository( repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1955" href="#L1955">1955</a>             .withNamespace( namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1956" href="#L1956">1956</a>             .withProjectId( project ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1957" href="#L1957">1957</a>             .withProjectVersion( version ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1958" href="#L1958">1958</a>             .withId( id ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1959" href="#L1959">1959</a>             .build();
<a class="jxr_linenumber" name="L1960" href="#L1960">1960</a> 
<a class="jxr_linenumber" name="L1961" href="#L1961">1961</a>         <strong class="jxr_keyword">this</strong>.projectVersionMetadataTemplate.deleteRow( key );
<a class="jxr_linenumber" name="L1962" href="#L1962">1962</a>     }
<a class="jxr_linenumber" name="L1963" href="#L1963">1963</a> 
<a class="jxr_linenumber" name="L1964" href="#L1964">1964</a>     @Override
<a class="jxr_linenumber" name="L1965" href="#L1965">1965</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeArtifact( ArtifactMetadata artifactMetadata, String baseVersion )
<a class="jxr_linenumber" name="L1966" href="#L1966">1966</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L1967" href="#L1967">1967</a>     {
<a class="jxr_linenumber" name="L1968" href="#L1968">1968</a>         logger.debug( <span class="jxr_string">"removeArtifact repositoryId: '{}', namespace: '{}', project: '{}', version: '{}', id: '{}'"</span>,
<a class="jxr_linenumber" name="L1969" href="#L1969">1969</a>                       artifactMetadata.getRepositoryId(), artifactMetadata.getNamespace(),
<a class="jxr_linenumber" name="L1970" href="#L1970">1970</a>                       artifactMetadata.getProject(), baseVersion, artifactMetadata.getId() );
<a class="jxr_linenumber" name="L1971" href="#L1971">1971</a>         String key =
<a class="jxr_linenumber" name="L1972" href="#L1972">1972</a>             <strong class="jxr_keyword">new</strong> ArtifactMetadataModel.KeyBuilder().withRepositoryId( artifactMetadata.getRepositoryId() ).withNamespace(
<a class="jxr_linenumber" name="L1973" href="#L1973">1973</a>                 artifactMetadata.getNamespace() ).withId( artifactMetadata.getId() ).withProjectVersion(
<a class="jxr_linenumber" name="L1974" href="#L1974">1974</a>                 baseVersion ).withProject( artifactMetadata.getProject() ).build();
<a class="jxr_linenumber" name="L1975" href="#L1975">1975</a> 
<a class="jxr_linenumber" name="L1976" href="#L1976">1976</a>         <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.deleteRow( key );
<a class="jxr_linenumber" name="L1977" href="#L1977">1977</a> 
<a class="jxr_linenumber" name="L1978" href="#L1978">1978</a>     }
<a class="jxr_linenumber" name="L1979" href="#L1979">1979</a> 
<a class="jxr_linenumber" name="L1980" href="#L1980">1980</a>     @Override
<a class="jxr_linenumber" name="L1981" href="#L1981">1981</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeArtifact( <strong class="jxr_keyword">final</strong> String repositoryId, <strong class="jxr_keyword">final</strong> String namespace, <strong class="jxr_keyword">final</strong> String project,
<a class="jxr_linenumber" name="L1982" href="#L1982">1982</a>                                 <strong class="jxr_keyword">final</strong> String version, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/archiva/metadata/model/MetadataFacet.html">MetadataFacet</a> metadataFacet )
<a class="jxr_linenumber" name="L1983" href="#L1983">1983</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L1984" href="#L1984">1984</a>     {
<a class="jxr_linenumber" name="L1985" href="#L1985">1985</a> 
<a class="jxr_linenumber" name="L1986" href="#L1986">1986</a>         RangeSlicesQuery&lt;String, String, String&gt; query = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1987" href="#L1987">1987</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1988" href="#L1988">1988</a>             .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1989" href="#L1989">1989</a>             .setColumnNames( NAMESPACE_ID.toString() ); <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1990" href="#L1990">1990</a> 
<a class="jxr_linenumber" name="L1991" href="#L1991">1991</a>         query = query.addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1992" href="#L1992">1992</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1993" href="#L1993">1993</a>             .addEqualsExpression( PROJECT.toString(), project ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L1994" href="#L1994">1994</a>             .addEqualsExpression( VERSION.toString(), version );
<a class="jxr_linenumber" name="L1995" href="#L1995">1995</a> 
<a class="jxr_linenumber" name="L1996" href="#L1996">1996</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = query.execute();
<a class="jxr_linenumber" name="L1997" href="#L1997">1997</a> 
<a class="jxr_linenumber" name="L1998" href="#L1998">1998</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L1999" href="#L1999">1999</a>         {
<a class="jxr_linenumber" name="L2000" href="#L2000">2000</a>             <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L2001" href="#L2001">2001</a>         }
<a class="jxr_linenumber" name="L2002" href="#L2002">2002</a>     }
<a class="jxr_linenumber" name="L2003" href="#L2003">2003</a> 
<a class="jxr_linenumber" name="L2004" href="#L2004">2004</a> 
<a class="jxr_linenumber" name="L2005" href="#L2005">2005</a>     @Override
<a class="jxr_linenumber" name="L2006" href="#L2006">2006</a>     <strong class="jxr_keyword">public</strong> List&lt;ArtifactMetadata&gt; getArtifacts( <strong class="jxr_keyword">final</strong> String repositoryId )
<a class="jxr_linenumber" name="L2007" href="#L2007">2007</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L2008" href="#L2008">2008</a>     {
<a class="jxr_linenumber" name="L2009" href="#L2009">2009</a> 
<a class="jxr_linenumber" name="L2010" href="#L2010">2010</a>         RangeSlicesQuery&lt;String, String, String&gt; query = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2011" href="#L2011">2011</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2012" href="#L2012">2012</a>             .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2013" href="#L2013">2013</a>             .setColumnNames( ArtifactMetadataModel.COLUMNS ); <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2014" href="#L2014">2014</a> 
<a class="jxr_linenumber" name="L2015" href="#L2015">2015</a>         query = query.addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId );
<a class="jxr_linenumber" name="L2016" href="#L2016">2016</a> 
<a class="jxr_linenumber" name="L2017" href="#L2017">2017</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = query.execute();
<a class="jxr_linenumber" name="L2018" href="#L2018">2018</a> 
<a class="jxr_linenumber" name="L2019" href="#L2019">2019</a>         List&lt;ArtifactMetadata&gt; artifactMetadatas = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L2020" href="#L2020">2020</a> 
<a class="jxr_linenumber" name="L2021" href="#L2021">2021</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L2022" href="#L2022">2022</a>         {
<a class="jxr_linenumber" name="L2023" href="#L2023">2023</a>             ColumnSlice&lt;String, String&gt; columnSlice = row.getColumnSlice();
<a class="jxr_linenumber" name="L2024" href="#L2024">2024</a> 
<a class="jxr_linenumber" name="L2025" href="#L2025">2025</a>             artifactMetadatas.add( mapArtifactMetadataStringColumnSlice( columnSlice ) );
<a class="jxr_linenumber" name="L2026" href="#L2026">2026</a> 
<a class="jxr_linenumber" name="L2027" href="#L2027">2027</a>         }
<a class="jxr_linenumber" name="L2028" href="#L2028">2028</a> 
<a class="jxr_linenumber" name="L2029" href="#L2029">2029</a>         <strong class="jxr_keyword">return</strong> artifactMetadatas;
<a class="jxr_linenumber" name="L2030" href="#L2030">2030</a>     }
<a class="jxr_linenumber" name="L2031" href="#L2031">2031</a> 
<a class="jxr_linenumber" name="L2032" href="#L2032">2032</a> 
<a class="jxr_linenumber" name="L2033" href="#L2033">2033</a>     @Override
<a class="jxr_linenumber" name="L2034" href="#L2034">2034</a>     <strong class="jxr_keyword">public</strong> Collection&lt;ProjectVersionReference&gt; getProjectReferences( String repoId, String namespace, String projectId,
<a class="jxr_linenumber" name="L2035" href="#L2035">2035</a>                                                                      String projectVersion )
<a class="jxr_linenumber" name="L2036" href="#L2036">2036</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataResolutionException.html">MetadataResolutionException</a>
<a class="jxr_linenumber" name="L2037" href="#L2037">2037</a>     {
<a class="jxr_linenumber" name="L2038" href="#L2038">2038</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2039" href="#L2039">2039</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2040" href="#L2040">2040</a>             .setColumnFamily( cassandraArchivaManager.getDependencyFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2041" href="#L2041">2041</a>             .setColumnNames( <span class="jxr_string">"projectVersionMetadataModel.key"</span> ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2042" href="#L2042">2042</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2043" href="#L2043">2043</a>             .addEqualsExpression( GROUP_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2044" href="#L2044">2044</a>             .addEqualsExpression( ARTIFACT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2045" href="#L2045">2045</a>             .addEqualsExpression( VERSION.toString(), projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2046" href="#L2046">2046</a>             .execute();
<a class="jxr_linenumber" name="L2047" href="#L2047">2047</a> 
<a class="jxr_linenumber" name="L2048" href="#L2048">2048</a>         List&lt;String&gt; dependenciesIds = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L2049" href="#L2049">2049</a> 
<a class="jxr_linenumber" name="L2050" href="#L2050">2050</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get().getList() )
<a class="jxr_linenumber" name="L2051" href="#L2051">2051</a>         {
<a class="jxr_linenumber" name="L2052" href="#L2052">2052</a>             dependenciesIds.add( getStringValue( row.getColumnSlice(), <span class="jxr_string">"projectVersionMetadataModel.key"</span> ) );
<a class="jxr_linenumber" name="L2053" href="#L2053">2053</a>         }
<a class="jxr_linenumber" name="L2054" href="#L2054">2054</a> 
<a class="jxr_linenumber" name="L2055" href="#L2055">2055</a>         List&lt;ProjectVersionReference&gt; references = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L2056" href="#L2056">2056</a> 
<a class="jxr_linenumber" name="L2057" href="#L2057">2057</a>         <strong class="jxr_keyword">for</strong> ( String key : dependenciesIds )
<a class="jxr_linenumber" name="L2058" href="#L2058">2058</a>         {
<a class="jxr_linenumber" name="L2059" href="#L2059">2059</a>             ColumnFamilyResult&lt;String, String&gt; columnFamilyResult =
<a class="jxr_linenumber" name="L2060" href="#L2060">2060</a>                 <strong class="jxr_keyword">this</strong>.projectVersionMetadataTemplate.queryColumns( key );
<a class="jxr_linenumber" name="L2061" href="#L2061">2061</a>             references.add( <strong class="jxr_keyword">new</strong> ProjectVersionReference( ProjectVersionReference.ReferenceType.DEPENDENCY, <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2062" href="#L2062">2062</a>                                                          columnFamilyResult.getString( PROJECT_ID.toString() ), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2063" href="#L2063">2063</a>                                                          columnFamilyResult.getString( NAMESPACE_ID.toString() ), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2064" href="#L2064">2064</a>                                                          columnFamilyResult.getString( PROJECT_VERSION.toString() ) ) );
<a class="jxr_linenumber" name="L2065" href="#L2065">2065</a>         }
<a class="jxr_linenumber" name="L2066" href="#L2066">2066</a> 
<a class="jxr_linenumber" name="L2067" href="#L2067">2067</a>         <strong class="jxr_keyword">return</strong> references;
<a class="jxr_linenumber" name="L2068" href="#L2068">2068</a>     }
<a class="jxr_linenumber" name="L2069" href="#L2069">2069</a> 
<a class="jxr_linenumber" name="L2070" href="#L2070">2070</a>     @Override
<a class="jxr_linenumber" name="L2071" href="#L2071">2071</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeProjectVersion( <strong class="jxr_keyword">final</strong> String repoId, <strong class="jxr_keyword">final</strong> String namespace, <strong class="jxr_keyword">final</strong> String projectId,
<a class="jxr_linenumber" name="L2072" href="#L2072">2072</a>                                       <strong class="jxr_keyword">final</strong> String projectVersion )
<a class="jxr_linenumber" name="L2073" href="#L2073">2073</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L2074" href="#L2074">2074</a>     {
<a class="jxr_linenumber" name="L2075" href="#L2075">2075</a> 
<a class="jxr_linenumber" name="L2076" href="#L2076">2076</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2077" href="#L2077">2077</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2078" href="#L2078">2078</a>             .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2079" href="#L2079">2079</a>             .setColumnNames( VERSION.toString() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2080" href="#L2080">2080</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2081" href="#L2081">2081</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2082" href="#L2082">2082</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2083" href="#L2083">2083</a>             .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2084" href="#L2084">2084</a>             .execute();
<a class="jxr_linenumber" name="L2085" href="#L2085">2085</a> 
<a class="jxr_linenumber" name="L2086" href="#L2086">2086</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get().getList() )
<a class="jxr_linenumber" name="L2087" href="#L2087">2087</a>         {
<a class="jxr_linenumber" name="L2088" href="#L2088">2088</a>             <strong class="jxr_keyword">this</strong>.projectVersionMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L2089" href="#L2089">2089</a>             removeMailingList( row.getKey() );
<a class="jxr_linenumber" name="L2090" href="#L2090">2090</a>             removeLicenses( row.getKey() );
<a class="jxr_linenumber" name="L2091" href="#L2091">2091</a>             removeDependencies( row.getKey() );
<a class="jxr_linenumber" name="L2092" href="#L2092">2092</a>         }
<a class="jxr_linenumber" name="L2093" href="#L2093">2093</a> 
<a class="jxr_linenumber" name="L2094" href="#L2094">2094</a>         RangeSlicesQuery&lt;String, String, String&gt; query = HFactory <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2095" href="#L2095">2095</a>             .createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2096" href="#L2096">2096</a>             .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2097" href="#L2097">2097</a>             .setColumnNames( NAMESPACE_ID.toString() ); <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2098" href="#L2098">2098</a> 
<a class="jxr_linenumber" name="L2099" href="#L2099">2099</a>         query = query.addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2100" href="#L2100">2100</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2101" href="#L2101">2101</a>             .addEqualsExpression( PROJECT.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2102" href="#L2102">2102</a>             .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion );
<a class="jxr_linenumber" name="L2103" href="#L2103">2103</a> 
<a class="jxr_linenumber" name="L2104" href="#L2104">2104</a>         result = query.execute();
<a class="jxr_linenumber" name="L2105" href="#L2105">2105</a> 
<a class="jxr_linenumber" name="L2106" href="#L2106">2106</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L2107" href="#L2107">2107</a>         {
<a class="jxr_linenumber" name="L2108" href="#L2108">2108</a>             <strong class="jxr_keyword">this</strong>.artifactMetadataTemplate.deleteRow( row.getKey() );
<a class="jxr_linenumber" name="L2109" href="#L2109">2109</a> 
<a class="jxr_linenumber" name="L2110" href="#L2110">2110</a>         }
<a class="jxr_linenumber" name="L2111" href="#L2111">2111</a>     }
<a class="jxr_linenumber" name="L2112" href="#L2112">2112</a> 
<a class="jxr_linenumber" name="L2113" href="#L2113">2113</a>     @Override
<a class="jxr_linenumber" name="L2114" href="#L2114">2114</a>     <strong class="jxr_keyword">public</strong> Collection&lt;ArtifactMetadata&gt; getArtifacts( <strong class="jxr_keyword">final</strong> String repoId, <strong class="jxr_keyword">final</strong> String namespace,
<a class="jxr_linenumber" name="L2115" href="#L2115">2115</a>                                                       <strong class="jxr_keyword">final</strong> String projectId, <strong class="jxr_keyword">final</strong> String projectVersion )
<a class="jxr_linenumber" name="L2116" href="#L2116">2116</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataResolutionException.html">MetadataResolutionException</a>
<a class="jxr_linenumber" name="L2117" href="#L2117">2117</a>     {
<a class="jxr_linenumber" name="L2118" href="#L2118">2118</a> 
<a class="jxr_linenumber" name="L2119" href="#L2119">2119</a>         QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result =
<a class="jxr_linenumber" name="L2120" href="#L2120">2120</a>             HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2121" href="#L2121">2121</a>                 .setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2122" href="#L2122">2122</a>                 .setColumnNames( ArtifactMetadataModel.COLUMNS )<em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2123" href="#L2123">2123</a>                 .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2124" href="#L2124">2124</a>                 .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2125" href="#L2125">2125</a>                 .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2126" href="#L2126">2126</a>                 .addEqualsExpression( PROJECT.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2127" href="#L2127">2127</a>                 .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2128" href="#L2128">2128</a>                 .execute();
<a class="jxr_linenumber" name="L2129" href="#L2129">2129</a> 
<a class="jxr_linenumber" name="L2130" href="#L2130">2130</a>         <strong class="jxr_keyword">if</strong> ( result.get() == <strong class="jxr_keyword">null</strong> || result.get().getCount() &lt; 1 )
<a class="jxr_linenumber" name="L2131" href="#L2131">2131</a>         {
<a class="jxr_linenumber" name="L2132" href="#L2132">2132</a>             <strong class="jxr_keyword">return</strong> Collections.emptyList();
<a class="jxr_linenumber" name="L2133" href="#L2133">2133</a>         }
<a class="jxr_linenumber" name="L2134" href="#L2134">2134</a> 
<a class="jxr_linenumber" name="L2135" href="#L2135">2135</a>         List&lt;ArtifactMetadata&gt; artifactMetadatas = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L2136" href="#L2136">2136</a> 
<a class="jxr_linenumber" name="L2137" href="#L2137">2137</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L2138" href="#L2138">2138</a>         {
<a class="jxr_linenumber" name="L2139" href="#L2139">2139</a>             artifactMetadatas.add( mapArtifactMetadataStringColumnSlice( row.getColumnSlice() ) );
<a class="jxr_linenumber" name="L2140" href="#L2140">2140</a>         }
<a class="jxr_linenumber" name="L2141" href="#L2141">2141</a> 
<a class="jxr_linenumber" name="L2142" href="#L2142">2142</a>         result = HFactory.createRangeSlicesQuery( keyspace, ss, ss, ss ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2143" href="#L2143">2143</a>             .setColumnFamily( cassandraArchivaManager.getMetadataFacetFamilyName() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2144" href="#L2144">2144</a>             .setColumnNames( MetadataFacetModel.COLUMNS ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2145" href="#L2145">2145</a>             .setRowCount( Integer.MAX_VALUE ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2146" href="#L2146">2146</a>             .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2147" href="#L2147">2147</a>             .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2148" href="#L2148">2148</a>             .addEqualsExpression( PROJECT_ID.toString(), projectId ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2149" href="#L2149">2149</a>             .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L2150" href="#L2150">2150</a>             .execute();
<a class="jxr_linenumber" name="L2151" href="#L2151">2151</a> 
<a class="jxr_linenumber" name="L2152" href="#L2152">2152</a>         <strong class="jxr_keyword">return</strong> mapArtifactMetadataToArtifact(result, artifactMetadatas);
<a class="jxr_linenumber" name="L2153" href="#L2153">2153</a>     }
<a class="jxr_linenumber" name="L2154" href="#L2154">2154</a> 
<a class="jxr_linenumber" name="L2155" href="#L2155">2155</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2156" href="#L2156">2156</a> <em class="jxr_javadoccomment">     * Attach metadata to each of the  ArtifactMetadata objects</em>
<a class="jxr_linenumber" name="L2157" href="#L2157">2157</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2158" href="#L2158">2158</a>     <strong class="jxr_keyword">private</strong> List&lt;ArtifactMetadata&gt; mapArtifactMetadataToArtifact(QueryResult&lt;OrderedRows&lt;String, String, String&gt;&gt; result, List&lt;ArtifactMetadata&gt; artifactMetadatas) {
<a class="jxr_linenumber" name="L2159" href="#L2159">2159</a>         <strong class="jxr_keyword">if</strong> ( result.get() == <strong class="jxr_keyword">null</strong> || result.get().getCount() &lt; 1 )
<a class="jxr_linenumber" name="L2160" href="#L2160">2160</a>         {
<a class="jxr_linenumber" name="L2161" href="#L2161">2161</a>             <strong class="jxr_keyword">return</strong> artifactMetadatas;
<a class="jxr_linenumber" name="L2162" href="#L2162">2162</a>         }
<a class="jxr_linenumber" name="L2163" href="#L2163">2163</a> 
<a class="jxr_linenumber" name="L2164" href="#L2164">2164</a>         <strong class="jxr_keyword">final</strong> List&lt;MetadataFacetModel&gt; metadataFacetModels = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( result.get().getCount() );
<a class="jxr_linenumber" name="L2165" href="#L2165">2165</a> 
<a class="jxr_linenumber" name="L2166" href="#L2166">2166</a>         <strong class="jxr_keyword">for</strong> ( Row&lt;String, String, String&gt; row : result.get() )
<a class="jxr_linenumber" name="L2167" href="#L2167">2167</a>         {
<a class="jxr_linenumber" name="L2168" href="#L2168">2168</a>             ColumnSlice&lt;String, String&gt; columnSlice = row.getColumnSlice();
<a class="jxr_linenumber" name="L2169" href="#L2169">2169</a>             <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/MetadataFacetModel.html">MetadataFacetModel</a> metadataFacetModel = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/MetadataFacetModel.html">MetadataFacetModel</a>();
<a class="jxr_linenumber" name="L2170" href="#L2170">2170</a>             metadataFacetModel.setFacetId( getStringValue( columnSlice, FACET_ID.toString() ) );
<a class="jxr_linenumber" name="L2171" href="#L2171">2171</a>             metadataFacetModel.setName( getStringValue( columnSlice, NAME.toString() ) );
<a class="jxr_linenumber" name="L2172" href="#L2172">2172</a>             metadataFacetModel.setValue( getStringValue( columnSlice, VALUE.toString() ) );
<a class="jxr_linenumber" name="L2173" href="#L2173">2173</a>             metadataFacetModel.setKey( getStringValue( columnSlice, KEY.toString() ) );
<a class="jxr_linenumber" name="L2174" href="#L2174">2174</a>             metadataFacetModel.setProjectVersion( getStringValue( columnSlice, PROJECT_VERSION.toString() ) );
<a class="jxr_linenumber" name="L2175" href="#L2175">2175</a>             metadataFacetModels.add( metadataFacetModel );
<a class="jxr_linenumber" name="L2176" href="#L2176">2176</a>         }
<a class="jxr_linenumber" name="L2177" href="#L2177">2177</a> 
<a class="jxr_linenumber" name="L2178" href="#L2178">2178</a>         <em class="jxr_comment">// rebuild MetadataFacet for artifacts</em>
<a class="jxr_linenumber" name="L2179" href="#L2179">2179</a> 
<a class="jxr_linenumber" name="L2180" href="#L2180">2180</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">final</strong> ArtifactMetadata artifactMetadata : artifactMetadatas )
<a class="jxr_linenumber" name="L2181" href="#L2181">2181</a>         {
<a class="jxr_linenumber" name="L2182" href="#L2182">2182</a>             Iterable&lt;MetadataFacetModel&gt; metadataFacetModelIterable =
<a class="jxr_linenumber" name="L2183" href="#L2183">2183</a>                 Iterables.filter( metadataFacetModels, <strong class="jxr_keyword">new</strong> Predicate&lt;MetadataFacetModel&gt;()
<a class="jxr_linenumber" name="L2184" href="#L2184">2184</a>                 {
<a class="jxr_linenumber" name="L2185" href="#L2185">2185</a>                     @Override
<a class="jxr_linenumber" name="L2186" href="#L2186">2186</a>                     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> apply( MetadataFacetModel metadataFacetModel )
<a class="jxr_linenumber" name="L2187" href="#L2187">2187</a>                     {
<a class="jxr_linenumber" name="L2188" href="#L2188">2188</a>                         <strong class="jxr_keyword">if</strong> ( metadataFacetModel != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L2189" href="#L2189">2189</a>                         {
<a class="jxr_linenumber" name="L2190" href="#L2190">2190</a>                             <strong class="jxr_keyword">return</strong> StringUtils.equals( artifactMetadata.getVersion(),
<a class="jxr_linenumber" name="L2191" href="#L2191">2191</a>                                                        metadataFacetModel.getProjectVersion() );
<a class="jxr_linenumber" name="L2192" href="#L2192">2192</a>                         }
<a class="jxr_linenumber" name="L2193" href="#L2193">2193</a>                         <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L2194" href="#L2194">2194</a>                     }
<a class="jxr_linenumber" name="L2195" href="#L2195">2195</a>                 } );
<a class="jxr_linenumber" name="L2196" href="#L2196">2196</a>             Iterator&lt;MetadataFacetModel&gt; iterator = metadataFacetModelIterable.iterator();
<a class="jxr_linenumber" name="L2197" href="#L2197">2197</a>             Map&lt;String, List&lt;MetadataFacetModel&gt;&gt; metadataFacetValuesPerFacetId = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
<a class="jxr_linenumber" name="L2198" href="#L2198">2198</a>             <strong class="jxr_keyword">while</strong> ( iterator.hasNext() )
<a class="jxr_linenumber" name="L2199" href="#L2199">2199</a>             {
<a class="jxr_linenumber" name="L2200" href="#L2200">2200</a>                 <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/model/MetadataFacetModel.html">MetadataFacetModel</a> metadataFacetModel = iterator.next();
<a class="jxr_linenumber" name="L2201" href="#L2201">2201</a>                 List&lt;MetadataFacetModel&gt; values = metadataFacetValuesPerFacetId.get( metadataFacetModel.getName() );
<a class="jxr_linenumber" name="L2202" href="#L2202">2202</a>                 <strong class="jxr_keyword">if</strong> ( values == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L2203" href="#L2203">2203</a>                 {
<a class="jxr_linenumber" name="L2204" href="#L2204">2204</a>                     values = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L2205" href="#L2205">2205</a>                     metadataFacetValuesPerFacetId.put( metadataFacetModel.getFacetId(), values );
<a class="jxr_linenumber" name="L2206" href="#L2206">2206</a>                 }
<a class="jxr_linenumber" name="L2207" href="#L2207">2207</a>                 values.add( metadataFacetModel );
<a class="jxr_linenumber" name="L2208" href="#L2208">2208</a> 
<a class="jxr_linenumber" name="L2209" href="#L2209">2209</a>             }
<a class="jxr_linenumber" name="L2210" href="#L2210">2210</a> 
<a class="jxr_linenumber" name="L2211" href="#L2211">2211</a>             <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, List&lt;MetadataFacetModel&gt;&gt; entry : metadataFacetValuesPerFacetId.entrySet() )
<a class="jxr_linenumber" name="L2212" href="#L2212">2212</a>             {
<a class="jxr_linenumber" name="L2213" href="#L2213">2213</a>                 <a href="../../../../../../org/apache/archiva/metadata/model/MetadataFacetFactory.html">MetadataFacetFactory</a> metadataFacetFactory = metadataFacetFactories.get( entry.getKey() );
<a class="jxr_linenumber" name="L2214" href="#L2214">2214</a>                 <strong class="jxr_keyword">if</strong> ( metadataFacetFactory != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L2215" href="#L2215">2215</a>                 {
<a class="jxr_linenumber" name="L2216" href="#L2216">2216</a>                     List&lt;MetadataFacetModel&gt; facetModels = entry.getValue();
<a class="jxr_linenumber" name="L2217" href="#L2217">2217</a>                     <strong class="jxr_keyword">if</strong> ( !facetModels.isEmpty() )
<a class="jxr_linenumber" name="L2218" href="#L2218">2218</a>                     {
<a class="jxr_linenumber" name="L2219" href="#L2219">2219</a>                         <a href="../../../../../../org/apache/archiva/metadata/model/MetadataFacet.html">MetadataFacet</a> metadataFacet = metadataFacetFactory.createMetadataFacet();
<a class="jxr_linenumber" name="L2220" href="#L2220">2220</a>                         Map&lt;String, String&gt; props = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;( facetModels.size() );
<a class="jxr_linenumber" name="L2221" href="#L2221">2221</a>                         <strong class="jxr_keyword">for</strong> ( MetadataFacetModel metadataFacetModel : facetModels )
<a class="jxr_linenumber" name="L2222" href="#L2222">2222</a>                         {
<a class="jxr_linenumber" name="L2223" href="#L2223">2223</a>                             props.put( metadataFacetModel.getKey(), metadataFacetModel.getValue() );
<a class="jxr_linenumber" name="L2224" href="#L2224">2224</a>                         }
<a class="jxr_linenumber" name="L2225" href="#L2225">2225</a>                         metadataFacet.fromProperties( props );
<a class="jxr_linenumber" name="L2226" href="#L2226">2226</a>                         artifactMetadata.addFacet( metadataFacet );
<a class="jxr_linenumber" name="L2227" href="#L2227">2227</a>                     }
<a class="jxr_linenumber" name="L2228" href="#L2228">2228</a>                 }
<a class="jxr_linenumber" name="L2229" href="#L2229">2229</a>             }
<a class="jxr_linenumber" name="L2230" href="#L2230">2230</a>         }
<a class="jxr_linenumber" name="L2231" href="#L2231">2231</a> 
<a class="jxr_linenumber" name="L2232" href="#L2232">2232</a>         <strong class="jxr_keyword">return</strong> artifactMetadatas;
<a class="jxr_linenumber" name="L2233" href="#L2233">2233</a>     }
<a class="jxr_linenumber" name="L2234" href="#L2234">2234</a> 
<a class="jxr_linenumber" name="L2235" href="#L2235">2235</a>     @Override
<a class="jxr_linenumber" name="L2236" href="#L2236">2236</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> save()
<a class="jxr_linenumber" name="L2237" href="#L2237">2237</a>     {
<a class="jxr_linenumber" name="L2238" href="#L2238">2238</a>         logger.trace( <span class="jxr_string">"save"</span> );
<a class="jxr_linenumber" name="L2239" href="#L2239">2239</a>     }
<a class="jxr_linenumber" name="L2240" href="#L2240">2240</a> 
<a class="jxr_linenumber" name="L2241" href="#L2241">2241</a>     @Override
<a class="jxr_linenumber" name="L2242" href="#L2242">2242</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close()
<a class="jxr_linenumber" name="L2243" href="#L2243">2243</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L2244" href="#L2244">2244</a>     {
<a class="jxr_linenumber" name="L2245" href="#L2245">2245</a>         logger.trace( <span class="jxr_string">"close"</span> );
<a class="jxr_linenumber" name="L2246" href="#L2246">2246</a>     }
<a class="jxr_linenumber" name="L2247" href="#L2247">2247</a> 
<a class="jxr_linenumber" name="L2248" href="#L2248">2248</a>     @Override
<a class="jxr_linenumber" name="L2249" href="#L2249">2249</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> revert()
<a class="jxr_linenumber" name="L2250" href="#L2250">2250</a>     {
<a class="jxr_linenumber" name="L2251" href="#L2251">2251</a>         logger.warn( <span class="jxr_string">"CassandraMetadataRepository cannot revert"</span> );
<a class="jxr_linenumber" name="L2252" href="#L2252">2252</a>     }
<a class="jxr_linenumber" name="L2253" href="#L2253">2253</a> 
<a class="jxr_linenumber" name="L2254" href="#L2254">2254</a>     @Override
<a class="jxr_linenumber" name="L2255" href="#L2255">2255</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> canObtainAccess( Class&lt;?&gt; aClass )
<a class="jxr_linenumber" name="L2256" href="#L2256">2256</a>     {
<a class="jxr_linenumber" name="L2257" href="#L2257">2257</a>         <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L2258" href="#L2258">2258</a>     }
<a class="jxr_linenumber" name="L2259" href="#L2259">2259</a> 
<a class="jxr_linenumber" name="L2260" href="#L2260">2260</a>     @Override
<a class="jxr_linenumber" name="L2261" href="#L2261">2261</a>     <strong class="jxr_keyword">public</strong> &lt;T&gt; T obtainAccess( Class&lt;T&gt; aClass )
<a class="jxr_linenumber" name="L2262" href="#L2262">2262</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L2263" href="#L2263">2263</a>     {
<a class="jxr_linenumber" name="L2264" href="#L2264">2264</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
<a class="jxr_linenumber" name="L2265" href="#L2265">2265</a>             <span class="jxr_string">"Access using "</span> + aClass + <span class="jxr_string">" is not supported on the cassandra metadata storage"</span> );
<a class="jxr_linenumber" name="L2266" href="#L2266">2266</a>     }
<a class="jxr_linenumber" name="L2267" href="#L2267">2267</a> 
<a class="jxr_linenumber" name="L2268" href="#L2268">2268</a> 
<a class="jxr_linenumber" name="L2269" href="#L2269">2269</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.html">ModelMapperHolder</a>
<a class="jxr_linenumber" name="L2270" href="#L2270">2270</a>     {
<a class="jxr_linenumber" name="L2271" href="#L2271">2271</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> ModelMapper MODEL_MAPPER = <strong class="jxr_keyword">new</strong> ModelMapper();
<a class="jxr_linenumber" name="L2272" href="#L2272">2272</a>     }
<a class="jxr_linenumber" name="L2273" href="#L2273">2273</a> 
<a class="jxr_linenumber" name="L2274" href="#L2274">2274</a>     <strong class="jxr_keyword">protected</strong> ModelMapper getModelMapper()
<a class="jxr_linenumber" name="L2275" href="#L2275">2275</a>     {
<a class="jxr_linenumber" name="L2276" href="#L2276">2276</a>         <strong class="jxr_keyword">return</strong> ModelMapperHolder.MODEL_MAPPER;
<a class="jxr_linenumber" name="L2277" href="#L2277">2277</a>     }
<a class="jxr_linenumber" name="L2278" href="#L2278">2278</a> 
<a class="jxr_linenumber" name="L2279" href="#L2279">2279</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2280" href="#L2280">2280</a> <em class="jxr_javadoccomment">     * This implementation just calls getArtifactsByMetadata( null, text, repositoryId ). We can't search artifacts by</em>
<a class="jxr_linenumber" name="L2281" href="#L2281">2281</a> <em class="jxr_javadoccomment">     * any property.</em>
<a class="jxr_linenumber" name="L2282" href="#L2282">2282</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2283" href="#L2283">2283</a>     @Override
<a class="jxr_linenumber" name="L2284" href="#L2284">2284</a>     <strong class="jxr_keyword">public</strong> List&lt;ArtifactMetadata&gt; searchArtifacts( String text, String repositoryId, <strong class="jxr_keyword">boolean</strong> exact )
<a class="jxr_linenumber" name="L2285" href="#L2285">2285</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L2286" href="#L2286">2286</a>     {
<a class="jxr_linenumber" name="L2287" href="#L2287">2287</a>         <strong class="jxr_keyword">return</strong> getArtifactsByMetadata( <strong class="jxr_keyword">null</strong>, text, repositoryId );
<a class="jxr_linenumber" name="L2288" href="#L2288">2288</a>     }
<a class="jxr_linenumber" name="L2289" href="#L2289">2289</a> 
<a class="jxr_linenumber" name="L2290" href="#L2290">2290</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2291" href="#L2291">2291</a> <em class="jxr_javadoccomment">     * The exact parameter is ignored as we can't do non exact searches in Cassandra</em>
<a class="jxr_linenumber" name="L2292" href="#L2292">2292</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2293" href="#L2293">2293</a>     @Override
<a class="jxr_linenumber" name="L2294" href="#L2294">2294</a>     <strong class="jxr_keyword">public</strong> List&lt;ArtifactMetadata&gt; searchArtifacts( String key, String text, String repositoryId, <strong class="jxr_keyword">boolean</strong> exact )
<a class="jxr_linenumber" name="L2295" href="#L2295">2295</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/metadata/repository/MetadataRepositoryException.html">MetadataRepositoryException</a>
<a class="jxr_linenumber" name="L2296" href="#L2296">2296</a>     {
<a class="jxr_linenumber" name="L2297" href="#L2297">2297</a>         <em class="jxr_comment">// TODO optimize</em>
<a class="jxr_linenumber" name="L2298" href="#L2298">2298</a>         List&lt;ArtifactMetadata&gt; artifacts = <strong class="jxr_keyword">new</strong> LinkedList&lt;ArtifactMetadata&gt;();
<a class="jxr_linenumber" name="L2299" href="#L2299">2299</a>         artifacts.addAll( getArtifactsByMetadata( key, text, repositoryId ) );
<a class="jxr_linenumber" name="L2300" href="#L2300">2300</a>         artifacts.addAll( getArtifactsByProperty( key, text, repositoryId ) );
<a class="jxr_linenumber" name="L2301" href="#L2301">2301</a>         <strong class="jxr_keyword">return</strong> artifacts;
<a class="jxr_linenumber" name="L2302" href="#L2302">2302</a>     }
<a class="jxr_linenumber" name="L2303" href="#L2303">2303</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2006&#x2013;2022 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
