<!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>DropShardingTableReferenceExecutor xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../../apidocs/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableReferenceExecutor.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> *     <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.shardingsphere.sharding.distsql.handler.update;
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">import</strong> com.cedarsoftware.util.CaseInsensitiveSet;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> lombok.Setter;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.shardingsphere.distsql.handler.engine.update.rdl.rule.spi.database.DatabaseRuleDropExecutor;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.shardingsphere.infra.exception.kernel.metadata.rule.MissingRequiredRuleException;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.shardingsphere.distsql.handler.required.DistSQLExecutorCurrentRuleRequired;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.shardingsphere.sharding.api.config.rule.ShardingTableReferenceRuleConfiguration;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.shardingsphere.sharding.distsql.statement.DropShardingTableReferenceRuleStatement;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.shardingsphere.sharding.rule.ShardingRule;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> java.util.stream.Collectors;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <em class="jxr_javadoccomment"> * Drop sharding table reference executor.</em>
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  @DistSQLExecutorCurrentRuleRequired(ShardingRule.<strong class="jxr_keyword">class</strong>)
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  @Setter
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a name="DropShardingTableReferenceExecutor" href="../../../../../../../org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableReferenceExecutor.html#DropShardingTableReferenceExecutor">DropShardingTableReferenceExecutor</a> <strong class="jxr_keyword">implements</strong> DatabaseRuleDropExecutor&lt;DropShardingTableReferenceRuleStatement, ShardingRule, ShardingRuleConfiguration&gt; {
<a class="jxr_linenumber" name="L42" href="#L42">42</a>      
<a class="jxr_linenumber" name="L43" href="#L43">43</a>      <strong class="jxr_keyword">private</strong> <a name="ShardingSphereDatabase" href="../../../../../../../org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabase.html#ShardingSphereDatabase">ShardingSphereDatabase</a> database;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>      
<a class="jxr_linenumber" name="L45" href="#L45">45</a>      <strong class="jxr_keyword">private</strong> <a name="ShardingRule" href="../../../../../../../org/apache/shardingsphere/sharding/rule/ShardingRule.html#ShardingRule">ShardingRule</a> rule;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>      
<a class="jxr_linenumber" name="L47" href="#L47">47</a>      @Override
<a class="jxr_linenumber" name="L48" href="#L48">48</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> checkBeforeUpdate(<strong class="jxr_keyword">final</strong> <a name="DropShardingTableReferenceRuleStatement" href="../../../../../../../org/apache/shardingsphere/sharding/distsql/statement/DropShardingTableReferenceRuleStatement.html#DropShardingTableReferenceRuleStatement">DropShardingTableReferenceRuleStatement</a> sqlStatement) {
<a class="jxr_linenumber" name="L49" href="#L49">49</a>          <strong class="jxr_keyword">if</strong> (!sqlStatement.isIfExists()) {
<a class="jxr_linenumber" name="L50" href="#L50">50</a>              checkCurrentRuleConfiguration();
<a class="jxr_linenumber" name="L51" href="#L51">51</a>              checkToBeDroppedShardingTableReferenceRules(sqlStatement);
<a class="jxr_linenumber" name="L52" href="#L52">52</a>          }
<a class="jxr_linenumber" name="L53" href="#L53">53</a>      }
<a class="jxr_linenumber" name="L54" href="#L54">54</a>      
<a class="jxr_linenumber" name="L55" href="#L55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkCurrentRuleConfiguration() {
<a class="jxr_linenumber" name="L56" href="#L56">56</a>          ShardingSpherePreconditions.checkNotEmpty(rule.getConfiguration().getBindingTableGroups(), () -&gt; <strong class="jxr_keyword">new</strong> <a name="MissingRequiredRuleException" href="../../../../../../../org/apache/shardingsphere/infra/exception/kernel/metadata/rule/MissingRequiredRuleException.html#MissingRequiredRuleException">MissingRequiredRuleException</a>(<span class="jxr_string">"Sharding table reference"</span>, database.getName()));
<a class="jxr_linenumber" name="L57" href="#L57">57</a>      }
<a class="jxr_linenumber" name="L58" href="#L58">58</a>      
<a class="jxr_linenumber" name="L59" href="#L59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkToBeDroppedShardingTableReferenceRules(<strong class="jxr_keyword">final</strong> <a name="DropShardingTableReferenceRuleStatement" href="../../../../../../../org/apache/shardingsphere/sharding/distsql/statement/DropShardingTableReferenceRuleStatement.html#DropShardingTableReferenceRuleStatement">DropShardingTableReferenceRuleStatement</a> sqlStatement) {
<a class="jxr_linenumber" name="L60" href="#L60">60</a>          Collection&lt;String&gt; currentRuleNames = getCurrentShardingTableReferenceRuleNames();
<a class="jxr_linenumber" name="L61" href="#L61">61</a>          Collection&lt;String&gt; notExistedRuleNames = sqlStatement.getNames().stream().filter(each -&gt; !currentRuleNames.contains(each)).collect(Collectors.toList());
<a class="jxr_linenumber" name="L62" href="#L62">62</a>          ShardingSpherePreconditions.checkMustEmpty(notExistedRuleNames, () -&gt; <strong class="jxr_keyword">new</strong> <a name="MissingRequiredRuleException" href="../../../../../../../org/apache/shardingsphere/infra/exception/kernel/metadata/rule/MissingRequiredRuleException.html#MissingRequiredRuleException">MissingRequiredRuleException</a>(<span class="jxr_string">"Sharding table reference"</span>, database.getName(), notExistedRuleNames));
<a class="jxr_linenumber" name="L63" href="#L63">63</a>      }
<a class="jxr_linenumber" name="L64" href="#L64">64</a>      
<a class="jxr_linenumber" name="L65" href="#L65">65</a>      <strong class="jxr_keyword">private</strong> Collection&lt;String&gt; getCurrentShardingTableReferenceRuleNames() {
<a class="jxr_linenumber" name="L66" href="#L66">66</a>          <strong class="jxr_keyword">return</strong> rule.getConfiguration().getBindingTableGroups().stream().map(ShardingTableReferenceRuleConfiguration::getName).collect(Collectors.toCollection(CaseInsensitiveSet::<strong class="jxr_keyword">new</strong>));
<a class="jxr_linenumber" name="L67" href="#L67">67</a>      }
<a class="jxr_linenumber" name="L68" href="#L68">68</a>      
<a class="jxr_linenumber" name="L69" href="#L69">69</a>      @Override
<a class="jxr_linenumber" name="L70" href="#L70">70</a>      <strong class="jxr_keyword">public</strong> <a name="ShardingRuleConfiguration" href="../../../../../../../org/apache/shardingsphere/sharding/api/config/ShardingRuleConfiguration.html#ShardingRuleConfiguration">ShardingRuleConfiguration</a> buildToBeDroppedRuleConfiguration(<strong class="jxr_keyword">final</strong> <a name="DropShardingTableReferenceRuleStatement" href="../../../../../../../org/apache/shardingsphere/sharding/distsql/statement/DropShardingTableReferenceRuleStatement.html#DropShardingTableReferenceRuleStatement">DropShardingTableReferenceRuleStatement</a> sqlStatement) {
<a class="jxr_linenumber" name="L71" href="#L71">71</a>          <a name="ShardingRuleConfiguration" href="../../../../../../../org/apache/shardingsphere/sharding/api/config/ShardingRuleConfiguration.html#ShardingRuleConfiguration">ShardingRuleConfiguration</a> result = <strong class="jxr_keyword">new</strong> <a name="ShardingRuleConfiguration" href="../../../../../../../org/apache/shardingsphere/sharding/api/config/ShardingRuleConfiguration.html#ShardingRuleConfiguration">ShardingRuleConfiguration</a>();
<a class="jxr_linenumber" name="L72" href="#L72">72</a>          <strong class="jxr_keyword">for</strong> (String each : sqlStatement.getNames()) {
<a class="jxr_linenumber" name="L73" href="#L73">73</a>              result.getBindingTableGroups().add(<strong class="jxr_keyword">new</strong> <a name="ShardingTableReferenceRuleConfiguration" href="../../../../../../../org/apache/shardingsphere/sharding/api/config/rule/ShardingTableReferenceRuleConfiguration.html#ShardingTableReferenceRuleConfiguration">ShardingTableReferenceRuleConfiguration</a>(each, <span class="jxr_string">""</span>));
<a class="jxr_linenumber" name="L74" href="#L74">74</a>          }
<a class="jxr_linenumber" name="L75" href="#L75">75</a>          <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="L76" href="#L76">76</a>      }
<a class="jxr_linenumber" name="L77" href="#L77">77</a>      
<a class="jxr_linenumber" name="L78" href="#L78">78</a>      @Override
<a class="jxr_linenumber" name="L79" href="#L79">79</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> hasAnyOneToBeDropped(<strong class="jxr_keyword">final</strong> <a name="DropShardingTableReferenceRuleStatement" href="../../../../../../../org/apache/shardingsphere/sharding/distsql/statement/DropShardingTableReferenceRuleStatement.html#DropShardingTableReferenceRuleStatement">DropShardingTableReferenceRuleStatement</a> sqlStatement) {
<a class="jxr_linenumber" name="L80" href="#L80">80</a>          <strong class="jxr_keyword">return</strong> !Collections.disjoint(getCurrentShardingTableReferenceRuleNames(), sqlStatement.getNames());
<a class="jxr_linenumber" name="L81" href="#L81">81</a>      }
<a class="jxr_linenumber" name="L82" href="#L82">82</a>      
<a class="jxr_linenumber" name="L83" href="#L83">83</a>      @Override
<a class="jxr_linenumber" name="L84" href="#L84">84</a>      <strong class="jxr_keyword">public</strong> Class&lt;ShardingRule&gt; getRuleClass() {
<a class="jxr_linenumber" name="L85" href="#L85">85</a>          <strong class="jxr_keyword">return</strong> ShardingRule.<strong class="jxr_keyword">class</strong>;
<a class="jxr_linenumber" name="L86" href="#L86">86</a>      }
<a class="jxr_linenumber" name="L87" href="#L87">87</a>      
<a class="jxr_linenumber" name="L88" href="#L88">88</a>      @Override
<a class="jxr_linenumber" name="L89" href="#L89">89</a>      <strong class="jxr_keyword">public</strong> Class&lt;DropShardingTableReferenceRuleStatement&gt; getType() {
<a class="jxr_linenumber" name="L90" href="#L90">90</a>          <strong class="jxr_keyword">return</strong> DropShardingTableReferenceRuleStatement.<strong class="jxr_keyword">class</strong>;
<a class="jxr_linenumber" name="L91" href="#L91">91</a>      }
<a class="jxr_linenumber" name="L92" href="#L92">92</a>  }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
