mirror of
https://github.com/aikar/commands.git
synced 2026-05-31 14:21:56 +00:00
Updated JavaDocs
This commit is contained in:
@@ -104,7 +104,7 @@ var activeTableTab = "activeTableTab";
|
||||
</dl>
|
||||
<hr>
|
||||
<br>
|
||||
<pre>public static interface <a href="../../../src-html/co/aikar/commands/CommandConditions.html#line.143">CommandConditions.Condition</a><I extends <a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>></pre>
|
||||
<pre>public static interface <a href="../../../src-html/co/aikar/commands/CommandConditions.html#line.139">CommandConditions.Condition</a><I extends <a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -124,7 +124,7 @@ var activeTableTab = "activeTableTab";
|
||||
<th class="colLast" scope="col">Method and Description</th>
|
||||
</tr>
|
||||
<tr id="i0" class="altColor">
|
||||
<td class="colFirst"><code>boolean</code></td>
|
||||
<td class="colFirst"><code>void</code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/CommandConditions.Condition.html#validateCondition-co.aikar.commands.ConditionContext-">validateCondition</a></span>(<a href="../../../co/aikar/commands/ConditionContext.html" title="class in co.aikar.commands">ConditionContext</a><<a href="../../../co/aikar/commands/CommandConditions.Condition.html" title="type parameter in CommandConditions.Condition">I</a>> context)</code> </td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -148,8 +148,8 @@ var activeTableTab = "activeTableTab";
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>validateCondition</h4>
|
||||
<pre>boolean <a href="../../../src-html/co/aikar/commands/CommandConditions.Condition.html#line.144">validateCondition</a>(<a href="../../../co/aikar/commands/ConditionContext.html" title="class in co.aikar.commands">ConditionContext</a><<a href="../../../co/aikar/commands/CommandConditions.Condition.html" title="type parameter in CommandConditions.Condition">I</a>> context)
|
||||
throws <a href="../../../co/aikar/commands/InvalidCommandArgument.html" title="class in co.aikar.commands">InvalidCommandArgument</a></pre>
|
||||
<pre>void <a href="../../../src-html/co/aikar/commands/CommandConditions.Condition.html#line.140">validateCondition</a>(<a href="../../../co/aikar/commands/ConditionContext.html" title="class in co.aikar.commands">ConditionContext</a><<a href="../../../co/aikar/commands/CommandConditions.Condition.html" title="type parameter in CommandConditions.Condition">I</a>> context)
|
||||
throws <a href="../../../co/aikar/commands/InvalidCommandArgument.html" title="class in co.aikar.commands">InvalidCommandArgument</a></pre>
|
||||
<dl>
|
||||
<dt><span class="throwsLabel">Throws:</span></dt>
|
||||
<dd><code><a href="../../../co/aikar/commands/InvalidCommandArgument.html" title="class in co.aikar.commands">InvalidCommandArgument</a></code></dd>
|
||||
|
||||
@@ -104,7 +104,7 @@ var activeTableTab = "activeTableTab";
|
||||
</dl>
|
||||
<hr>
|
||||
<br>
|
||||
<pre>public static interface <a href="../../../src-html/co/aikar/commands/CommandConditions.html#line.147">CommandConditions.ParameterCondition</a><P,CEC extends <a href="../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a>,I extends <a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>></pre>
|
||||
<pre>public static interface <a href="../../../src-html/co/aikar/commands/CommandConditions.html#line.143">CommandConditions.ParameterCondition</a><P,CEC extends <a href="../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a>,I extends <a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -124,7 +124,7 @@ var activeTableTab = "activeTableTab";
|
||||
<th class="colLast" scope="col">Method and Description</th>
|
||||
</tr>
|
||||
<tr id="i0" class="altColor">
|
||||
<td class="colFirst"><code>boolean</code></td>
|
||||
<td class="colFirst"><code>void</code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/CommandConditions.ParameterCondition.html#validateCondition-co.aikar.commands.ConditionContext-CEC-P-">validateCondition</a></span>(<a href="../../../co/aikar/commands/ConditionContext.html" title="class in co.aikar.commands">ConditionContext</a><<a href="../../../co/aikar/commands/CommandConditions.ParameterCondition.html" title="type parameter in CommandConditions.ParameterCondition">I</a>> context,
|
||||
<a href="../../../co/aikar/commands/CommandConditions.ParameterCondition.html" title="type parameter in CommandConditions.ParameterCondition">CEC</a> execContext,
|
||||
<a href="../../../co/aikar/commands/CommandConditions.ParameterCondition.html" title="type parameter in CommandConditions.ParameterCondition">P</a> value)</code> </td>
|
||||
@@ -152,10 +152,10 @@ var activeTableTab = "activeTableTab";
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>validateCondition</h4>
|
||||
<pre>boolean <a href="../../../src-html/co/aikar/commands/CommandConditions.ParameterCondition.html#line.148">validateCondition</a>(<a href="../../../co/aikar/commands/ConditionContext.html" title="class in co.aikar.commands">ConditionContext</a><<a href="../../../co/aikar/commands/CommandConditions.ParameterCondition.html" title="type parameter in CommandConditions.ParameterCondition">I</a>> context,
|
||||
<a href="../../../co/aikar/commands/CommandConditions.ParameterCondition.html" title="type parameter in CommandConditions.ParameterCondition">CEC</a> execContext,
|
||||
<a href="../../../co/aikar/commands/CommandConditions.ParameterCondition.html" title="type parameter in CommandConditions.ParameterCondition">P</a> value)
|
||||
throws <a href="../../../co/aikar/commands/InvalidCommandArgument.html" title="class in co.aikar.commands">InvalidCommandArgument</a></pre>
|
||||
<pre>void <a href="../../../src-html/co/aikar/commands/CommandConditions.ParameterCondition.html#line.144">validateCondition</a>(<a href="../../../co/aikar/commands/ConditionContext.html" title="class in co.aikar.commands">ConditionContext</a><<a href="../../../co/aikar/commands/CommandConditions.ParameterCondition.html" title="type parameter in CommandConditions.ParameterCondition">I</a>> context,
|
||||
<a href="../../../co/aikar/commands/CommandConditions.ParameterCondition.html" title="type parameter in CommandConditions.ParameterCondition">CEC</a> execContext,
|
||||
<a href="../../../co/aikar/commands/CommandConditions.ParameterCondition.html" title="type parameter in CommandConditions.ParameterCondition">P</a> value)
|
||||
throws <a href="../../../co/aikar/commands/InvalidCommandArgument.html" title="class in co.aikar.commands">InvalidCommandArgument</a></pre>
|
||||
<dl>
|
||||
<dt><span class="throwsLabel">Throws:</span></dt>
|
||||
<dd><code><a href="../../../co/aikar/commands/InvalidCommandArgument.html" title="class in co.aikar.commands">InvalidCommandArgument</a></code></dd>
|
||||
|
||||
@@ -133,11 +133,11 @@
|
||||
</tr>
|
||||
<tbody>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><code>boolean</code></td>
|
||||
<td class="colFirst"><code>void</code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">CommandConditions.Condition.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/CommandConditions.Condition.html#validateCondition-co.aikar.commands.ConditionContext-">validateCondition</a></span>(<a href="../../../../co/aikar/commands/ConditionContext.html" title="class in co.aikar.commands">ConditionContext</a><<a href="../../../../co/aikar/commands/CommandConditions.Condition.html" title="type parameter in CommandConditions.Condition">I</a>> context)</code> </td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><code>boolean</code></td>
|
||||
<td class="colFirst"><code>void</code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">CommandConditions.ParameterCondition.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/CommandConditions.ParameterCondition.html#validateCondition-co.aikar.commands.ConditionContext-CEC-P-">validateCondition</a></span>(<a href="../../../../co/aikar/commands/ConditionContext.html" title="class in co.aikar.commands">ConditionContext</a><<a href="../../../../co/aikar/commands/CommandConditions.ParameterCondition.html" title="type parameter in CommandConditions.ParameterCondition">I</a>> context,
|
||||
<a href="../../../../co/aikar/commands/CommandConditions.ParameterCondition.html" title="type parameter in CommandConditions.ParameterCondition">CEC</a> execContext,
|
||||
<a href="../../../../co/aikar/commands/CommandConditions.ParameterCondition.html" title="type parameter in CommandConditions.ParameterCondition">P</a> value)</code> </td>
|
||||
|
||||
@@ -132,11 +132,11 @@
|
||||
<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> paramIdx)</code> </td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><code>boolean</code></td>
|
||||
<td class="colFirst"><code>void</code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">CommandConditions.Condition.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/CommandConditions.Condition.html#validateCondition-co.aikar.commands.ConditionContext-">validateCondition</a></span>(<a href="../../../../co/aikar/commands/ConditionContext.html" title="class in co.aikar.commands">ConditionContext</a><<a href="../../../../co/aikar/commands/CommandConditions.Condition.html" title="type parameter in CommandConditions.Condition">I</a>> context)</code> </td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><code>boolean</code></td>
|
||||
<td class="colFirst"><code>void</code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">CommandConditions.ParameterCondition.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/CommandConditions.ParameterCondition.html#validateCondition-co.aikar.commands.ConditionContext-CEC-P-">validateCondition</a></span>(<a href="../../../../co/aikar/commands/ConditionContext.html" title="class in co.aikar.commands">ConditionContext</a><<a href="../../../../co/aikar/commands/CommandConditions.ParameterCondition.html" title="type parameter in CommandConditions.ParameterCondition">I</a>> context,
|
||||
<a href="../../../../co/aikar/commands/CommandConditions.ParameterCondition.html" title="type parameter in CommandConditions.ParameterCondition">CEC</a> execContext,
|
||||
<a href="../../../../co/aikar/commands/CommandConditions.ParameterCondition.html" title="type parameter in CommandConditions.ParameterCondition">P</a> value)</code> </td>
|
||||
|
||||
@@ -105,57 +105,53 @@
|
||||
<span class="sourceLineNo">097</span> //noinspection unchecked<a name="line.97"></a>
|
||||
<span class="sourceLineNo">098</span> CC conditionContext = (CC) this.manager.createConditionContext(issuer, config);<a name="line.98"></a>
|
||||
<span class="sourceLineNo">099</span> //noinspection unchecked<a name="line.99"></a>
|
||||
<span class="sourceLineNo">100</span> if (!condition.validateCondition(conditionContext)) {<a name="line.100"></a>
|
||||
<span class="sourceLineNo">101</span> return;<a name="line.101"></a>
|
||||
<span class="sourceLineNo">102</span> }<a name="line.102"></a>
|
||||
<span class="sourceLineNo">103</span> }<a name="line.103"></a>
|
||||
<span class="sourceLineNo">104</span> }<a name="line.104"></a>
|
||||
<span class="sourceLineNo">105</span><a name="line.105"></a>
|
||||
<span class="sourceLineNo">106</span> private void validateConditions(Conditions condAnno, CEC execContext, Object value) throws InvalidCommandArgument {<a name="line.106"></a>
|
||||
<span class="sourceLineNo">107</span> if (condAnno == null) {<a name="line.107"></a>
|
||||
<span class="sourceLineNo">108</span> return;<a name="line.108"></a>
|
||||
<span class="sourceLineNo">109</span> }<a name="line.109"></a>
|
||||
<span class="sourceLineNo">110</span> String conditions = this.manager.getCommandReplacements().replace(condAnno.value());<a name="line.110"></a>
|
||||
<span class="sourceLineNo">111</span> I issuer = execContext.getIssuer();<a name="line.111"></a>
|
||||
<span class="sourceLineNo">112</span> for (String cond : ACFPatterns.PIPE.split(conditions)) {<a name="line.112"></a>
|
||||
<span class="sourceLineNo">113</span> String[] split = ACFPatterns.COLON.split(cond, 2);<a name="line.113"></a>
|
||||
<span class="sourceLineNo">114</span> ParameterCondition condition;<a name="line.114"></a>
|
||||
<span class="sourceLineNo">115</span> Class<?> cls = execContext.getParam().getType();<a name="line.115"></a>
|
||||
<span class="sourceLineNo">116</span> String id = split[0].toLowerCase();<a name="line.116"></a>
|
||||
<span class="sourceLineNo">117</span> do {<a name="line.117"></a>
|
||||
<span class="sourceLineNo">118</span> condition = this.paramConditions.get(cls, id);<a name="line.118"></a>
|
||||
<span class="sourceLineNo">119</span> if (condition == null && cls.getSuperclass() != null && cls.getSuperclass() != Object.class) {<a name="line.119"></a>
|
||||
<span class="sourceLineNo">120</span> cls = cls.getSuperclass();<a name="line.120"></a>
|
||||
<span class="sourceLineNo">121</span> } else {<a name="line.121"></a>
|
||||
<span class="sourceLineNo">122</span> break;<a name="line.122"></a>
|
||||
<span class="sourceLineNo">123</span> }<a name="line.123"></a>
|
||||
<span class="sourceLineNo">124</span> } while (cls != null);<a name="line.124"></a>
|
||||
<span class="sourceLineNo">125</span><a name="line.125"></a>
|
||||
<span class="sourceLineNo">126</span><a name="line.126"></a>
|
||||
<span class="sourceLineNo">127</span> if (condition == null) {<a name="line.127"></a>
|
||||
<span class="sourceLineNo">128</span> RegisteredCommand cmd = execContext.getCmd();<a name="line.128"></a>
|
||||
<span class="sourceLineNo">129</span> this.manager.log(LogLevel.ERROR, "Could not find command condition " + id + " for " + cmd.method.getName() + "::" +execContext.getParam().getName());<a name="line.129"></a>
|
||||
<span class="sourceLineNo">130</span> continue;<a name="line.130"></a>
|
||||
<span class="sourceLineNo">131</span> }<a name="line.131"></a>
|
||||
<span class="sourceLineNo">132</span> String config = split.length == 2 ? split[1] : null;<a name="line.132"></a>
|
||||
<span class="sourceLineNo">133</span> //noinspection unchecked<a name="line.133"></a>
|
||||
<span class="sourceLineNo">134</span> CC conditionContext = (CC) this.manager.createConditionContext(issuer, config);<a name="line.134"></a>
|
||||
<span class="sourceLineNo">135</span><a name="line.135"></a>
|
||||
<span class="sourceLineNo">136</span> //noinspection unchecked<a name="line.136"></a>
|
||||
<span class="sourceLineNo">137</span> if (!condition.validateCondition(conditionContext, execContext, value)) {<a name="line.137"></a>
|
||||
<span class="sourceLineNo">138</span> return;<a name="line.138"></a>
|
||||
<span class="sourceLineNo">139</span> }<a name="line.139"></a>
|
||||
<span class="sourceLineNo">140</span> }<a name="line.140"></a>
|
||||
<span class="sourceLineNo">100</span> condition.validateCondition(conditionContext);<a name="line.100"></a>
|
||||
<span class="sourceLineNo">101</span> }<a name="line.101"></a>
|
||||
<span class="sourceLineNo">102</span> }<a name="line.102"></a>
|
||||
<span class="sourceLineNo">103</span><a name="line.103"></a>
|
||||
<span class="sourceLineNo">104</span> private void validateConditions(Conditions condAnno, CEC execContext, Object value) throws InvalidCommandArgument {<a name="line.104"></a>
|
||||
<span class="sourceLineNo">105</span> if (condAnno == null) {<a name="line.105"></a>
|
||||
<span class="sourceLineNo">106</span> return;<a name="line.106"></a>
|
||||
<span class="sourceLineNo">107</span> }<a name="line.107"></a>
|
||||
<span class="sourceLineNo">108</span> String conditions = this.manager.getCommandReplacements().replace(condAnno.value());<a name="line.108"></a>
|
||||
<span class="sourceLineNo">109</span> I issuer = execContext.getIssuer();<a name="line.109"></a>
|
||||
<span class="sourceLineNo">110</span> for (String cond : ACFPatterns.PIPE.split(conditions)) {<a name="line.110"></a>
|
||||
<span class="sourceLineNo">111</span> String[] split = ACFPatterns.COLON.split(cond, 2);<a name="line.111"></a>
|
||||
<span class="sourceLineNo">112</span> ParameterCondition condition;<a name="line.112"></a>
|
||||
<span class="sourceLineNo">113</span> Class<?> cls = execContext.getParam().getType();<a name="line.113"></a>
|
||||
<span class="sourceLineNo">114</span> String id = split[0].toLowerCase();<a name="line.114"></a>
|
||||
<span class="sourceLineNo">115</span> do {<a name="line.115"></a>
|
||||
<span class="sourceLineNo">116</span> condition = this.paramConditions.get(cls, id);<a name="line.116"></a>
|
||||
<span class="sourceLineNo">117</span> if (condition == null && cls.getSuperclass() != null && cls.getSuperclass() != Object.class) {<a name="line.117"></a>
|
||||
<span class="sourceLineNo">118</span> cls = cls.getSuperclass();<a name="line.118"></a>
|
||||
<span class="sourceLineNo">119</span> } else {<a name="line.119"></a>
|
||||
<span class="sourceLineNo">120</span> break;<a name="line.120"></a>
|
||||
<span class="sourceLineNo">121</span> }<a name="line.121"></a>
|
||||
<span class="sourceLineNo">122</span> } while (cls != null);<a name="line.122"></a>
|
||||
<span class="sourceLineNo">123</span><a name="line.123"></a>
|
||||
<span class="sourceLineNo">124</span><a name="line.124"></a>
|
||||
<span class="sourceLineNo">125</span> if (condition == null) {<a name="line.125"></a>
|
||||
<span class="sourceLineNo">126</span> RegisteredCommand cmd = execContext.getCmd();<a name="line.126"></a>
|
||||
<span class="sourceLineNo">127</span> this.manager.log(LogLevel.ERROR, "Could not find command condition " + id + " for " + cmd.method.getName() + "::" +execContext.getParam().getName());<a name="line.127"></a>
|
||||
<span class="sourceLineNo">128</span> continue;<a name="line.128"></a>
|
||||
<span class="sourceLineNo">129</span> }<a name="line.129"></a>
|
||||
<span class="sourceLineNo">130</span> String config = split.length == 2 ? split[1] : null;<a name="line.130"></a>
|
||||
<span class="sourceLineNo">131</span> //noinspection unchecked<a name="line.131"></a>
|
||||
<span class="sourceLineNo">132</span> CC conditionContext = (CC) this.manager.createConditionContext(issuer, config);<a name="line.132"></a>
|
||||
<span class="sourceLineNo">133</span><a name="line.133"></a>
|
||||
<span class="sourceLineNo">134</span> //noinspection unchecked<a name="line.134"></a>
|
||||
<span class="sourceLineNo">135</span> condition.validateCondition(conditionContext, execContext, value);<a name="line.135"></a>
|
||||
<span class="sourceLineNo">136</span> }<a name="line.136"></a>
|
||||
<span class="sourceLineNo">137</span> }<a name="line.137"></a>
|
||||
<span class="sourceLineNo">138</span><a name="line.138"></a>
|
||||
<span class="sourceLineNo">139</span> public interface Condition <I extends CommandIssuer> {<a name="line.139"></a>
|
||||
<span class="sourceLineNo">140</span> void validateCondition(ConditionContext<I> context) throws InvalidCommandArgument;<a name="line.140"></a>
|
||||
<span class="sourceLineNo">141</span> }<a name="line.141"></a>
|
||||
<span class="sourceLineNo">142</span><a name="line.142"></a>
|
||||
<span class="sourceLineNo">143</span> public interface Condition <I extends CommandIssuer> {<a name="line.143"></a>
|
||||
<span class="sourceLineNo">144</span> boolean validateCondition(ConditionContext<I> context) throws InvalidCommandArgument;<a name="line.144"></a>
|
||||
<span class="sourceLineNo">143</span> public interface ParameterCondition <P, CEC extends CommandExecutionContext, I extends CommandIssuer> {<a name="line.143"></a>
|
||||
<span class="sourceLineNo">144</span> void validateCondition(ConditionContext<I> context, CEC execContext, P value) throws InvalidCommandArgument;<a name="line.144"></a>
|
||||
<span class="sourceLineNo">145</span> }<a name="line.145"></a>
|
||||
<span class="sourceLineNo">146</span><a name="line.146"></a>
|
||||
<span class="sourceLineNo">147</span> public interface ParameterCondition <P, CEC extends CommandExecutionContext, I extends CommandIssuer> {<a name="line.147"></a>
|
||||
<span class="sourceLineNo">148</span> boolean validateCondition(ConditionContext<I> context, CEC execContext, P value) throws InvalidCommandArgument;<a name="line.148"></a>
|
||||
<span class="sourceLineNo">149</span> }<a name="line.149"></a>
|
||||
<span class="sourceLineNo">150</span>}<a name="line.150"></a>
|
||||
<span class="sourceLineNo">146</span>}<a name="line.146"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
+44
-48
@@ -105,57 +105,53 @@
|
||||
<span class="sourceLineNo">097</span> //noinspection unchecked<a name="line.97"></a>
|
||||
<span class="sourceLineNo">098</span> CC conditionContext = (CC) this.manager.createConditionContext(issuer, config);<a name="line.98"></a>
|
||||
<span class="sourceLineNo">099</span> //noinspection unchecked<a name="line.99"></a>
|
||||
<span class="sourceLineNo">100</span> if (!condition.validateCondition(conditionContext)) {<a name="line.100"></a>
|
||||
<span class="sourceLineNo">101</span> return;<a name="line.101"></a>
|
||||
<span class="sourceLineNo">102</span> }<a name="line.102"></a>
|
||||
<span class="sourceLineNo">103</span> }<a name="line.103"></a>
|
||||
<span class="sourceLineNo">104</span> }<a name="line.104"></a>
|
||||
<span class="sourceLineNo">105</span><a name="line.105"></a>
|
||||
<span class="sourceLineNo">106</span> private void validateConditions(Conditions condAnno, CEC execContext, Object value) throws InvalidCommandArgument {<a name="line.106"></a>
|
||||
<span class="sourceLineNo">107</span> if (condAnno == null) {<a name="line.107"></a>
|
||||
<span class="sourceLineNo">108</span> return;<a name="line.108"></a>
|
||||
<span class="sourceLineNo">109</span> }<a name="line.109"></a>
|
||||
<span class="sourceLineNo">110</span> String conditions = this.manager.getCommandReplacements().replace(condAnno.value());<a name="line.110"></a>
|
||||
<span class="sourceLineNo">111</span> I issuer = execContext.getIssuer();<a name="line.111"></a>
|
||||
<span class="sourceLineNo">112</span> for (String cond : ACFPatterns.PIPE.split(conditions)) {<a name="line.112"></a>
|
||||
<span class="sourceLineNo">113</span> String[] split = ACFPatterns.COLON.split(cond, 2);<a name="line.113"></a>
|
||||
<span class="sourceLineNo">114</span> ParameterCondition condition;<a name="line.114"></a>
|
||||
<span class="sourceLineNo">115</span> Class<?> cls = execContext.getParam().getType();<a name="line.115"></a>
|
||||
<span class="sourceLineNo">116</span> String id = split[0].toLowerCase();<a name="line.116"></a>
|
||||
<span class="sourceLineNo">117</span> do {<a name="line.117"></a>
|
||||
<span class="sourceLineNo">118</span> condition = this.paramConditions.get(cls, id);<a name="line.118"></a>
|
||||
<span class="sourceLineNo">119</span> if (condition == null && cls.getSuperclass() != null && cls.getSuperclass() != Object.class) {<a name="line.119"></a>
|
||||
<span class="sourceLineNo">120</span> cls = cls.getSuperclass();<a name="line.120"></a>
|
||||
<span class="sourceLineNo">121</span> } else {<a name="line.121"></a>
|
||||
<span class="sourceLineNo">122</span> break;<a name="line.122"></a>
|
||||
<span class="sourceLineNo">123</span> }<a name="line.123"></a>
|
||||
<span class="sourceLineNo">124</span> } while (cls != null);<a name="line.124"></a>
|
||||
<span class="sourceLineNo">125</span><a name="line.125"></a>
|
||||
<span class="sourceLineNo">126</span><a name="line.126"></a>
|
||||
<span class="sourceLineNo">127</span> if (condition == null) {<a name="line.127"></a>
|
||||
<span class="sourceLineNo">128</span> RegisteredCommand cmd = execContext.getCmd();<a name="line.128"></a>
|
||||
<span class="sourceLineNo">129</span> this.manager.log(LogLevel.ERROR, "Could not find command condition " + id + " for " + cmd.method.getName() + "::" +execContext.getParam().getName());<a name="line.129"></a>
|
||||
<span class="sourceLineNo">130</span> continue;<a name="line.130"></a>
|
||||
<span class="sourceLineNo">131</span> }<a name="line.131"></a>
|
||||
<span class="sourceLineNo">132</span> String config = split.length == 2 ? split[1] : null;<a name="line.132"></a>
|
||||
<span class="sourceLineNo">133</span> //noinspection unchecked<a name="line.133"></a>
|
||||
<span class="sourceLineNo">134</span> CC conditionContext = (CC) this.manager.createConditionContext(issuer, config);<a name="line.134"></a>
|
||||
<span class="sourceLineNo">135</span><a name="line.135"></a>
|
||||
<span class="sourceLineNo">136</span> //noinspection unchecked<a name="line.136"></a>
|
||||
<span class="sourceLineNo">137</span> if (!condition.validateCondition(conditionContext, execContext, value)) {<a name="line.137"></a>
|
||||
<span class="sourceLineNo">138</span> return;<a name="line.138"></a>
|
||||
<span class="sourceLineNo">139</span> }<a name="line.139"></a>
|
||||
<span class="sourceLineNo">140</span> }<a name="line.140"></a>
|
||||
<span class="sourceLineNo">100</span> condition.validateCondition(conditionContext);<a name="line.100"></a>
|
||||
<span class="sourceLineNo">101</span> }<a name="line.101"></a>
|
||||
<span class="sourceLineNo">102</span> }<a name="line.102"></a>
|
||||
<span class="sourceLineNo">103</span><a name="line.103"></a>
|
||||
<span class="sourceLineNo">104</span> private void validateConditions(Conditions condAnno, CEC execContext, Object value) throws InvalidCommandArgument {<a name="line.104"></a>
|
||||
<span class="sourceLineNo">105</span> if (condAnno == null) {<a name="line.105"></a>
|
||||
<span class="sourceLineNo">106</span> return;<a name="line.106"></a>
|
||||
<span class="sourceLineNo">107</span> }<a name="line.107"></a>
|
||||
<span class="sourceLineNo">108</span> String conditions = this.manager.getCommandReplacements().replace(condAnno.value());<a name="line.108"></a>
|
||||
<span class="sourceLineNo">109</span> I issuer = execContext.getIssuer();<a name="line.109"></a>
|
||||
<span class="sourceLineNo">110</span> for (String cond : ACFPatterns.PIPE.split(conditions)) {<a name="line.110"></a>
|
||||
<span class="sourceLineNo">111</span> String[] split = ACFPatterns.COLON.split(cond, 2);<a name="line.111"></a>
|
||||
<span class="sourceLineNo">112</span> ParameterCondition condition;<a name="line.112"></a>
|
||||
<span class="sourceLineNo">113</span> Class<?> cls = execContext.getParam().getType();<a name="line.113"></a>
|
||||
<span class="sourceLineNo">114</span> String id = split[0].toLowerCase();<a name="line.114"></a>
|
||||
<span class="sourceLineNo">115</span> do {<a name="line.115"></a>
|
||||
<span class="sourceLineNo">116</span> condition = this.paramConditions.get(cls, id);<a name="line.116"></a>
|
||||
<span class="sourceLineNo">117</span> if (condition == null && cls.getSuperclass() != null && cls.getSuperclass() != Object.class) {<a name="line.117"></a>
|
||||
<span class="sourceLineNo">118</span> cls = cls.getSuperclass();<a name="line.118"></a>
|
||||
<span class="sourceLineNo">119</span> } else {<a name="line.119"></a>
|
||||
<span class="sourceLineNo">120</span> break;<a name="line.120"></a>
|
||||
<span class="sourceLineNo">121</span> }<a name="line.121"></a>
|
||||
<span class="sourceLineNo">122</span> } while (cls != null);<a name="line.122"></a>
|
||||
<span class="sourceLineNo">123</span><a name="line.123"></a>
|
||||
<span class="sourceLineNo">124</span><a name="line.124"></a>
|
||||
<span class="sourceLineNo">125</span> if (condition == null) {<a name="line.125"></a>
|
||||
<span class="sourceLineNo">126</span> RegisteredCommand cmd = execContext.getCmd();<a name="line.126"></a>
|
||||
<span class="sourceLineNo">127</span> this.manager.log(LogLevel.ERROR, "Could not find command condition " + id + " for " + cmd.method.getName() + "::" +execContext.getParam().getName());<a name="line.127"></a>
|
||||
<span class="sourceLineNo">128</span> continue;<a name="line.128"></a>
|
||||
<span class="sourceLineNo">129</span> }<a name="line.129"></a>
|
||||
<span class="sourceLineNo">130</span> String config = split.length == 2 ? split[1] : null;<a name="line.130"></a>
|
||||
<span class="sourceLineNo">131</span> //noinspection unchecked<a name="line.131"></a>
|
||||
<span class="sourceLineNo">132</span> CC conditionContext = (CC) this.manager.createConditionContext(issuer, config);<a name="line.132"></a>
|
||||
<span class="sourceLineNo">133</span><a name="line.133"></a>
|
||||
<span class="sourceLineNo">134</span> //noinspection unchecked<a name="line.134"></a>
|
||||
<span class="sourceLineNo">135</span> condition.validateCondition(conditionContext, execContext, value);<a name="line.135"></a>
|
||||
<span class="sourceLineNo">136</span> }<a name="line.136"></a>
|
||||
<span class="sourceLineNo">137</span> }<a name="line.137"></a>
|
||||
<span class="sourceLineNo">138</span><a name="line.138"></a>
|
||||
<span class="sourceLineNo">139</span> public interface Condition <I extends CommandIssuer> {<a name="line.139"></a>
|
||||
<span class="sourceLineNo">140</span> void validateCondition(ConditionContext<I> context) throws InvalidCommandArgument;<a name="line.140"></a>
|
||||
<span class="sourceLineNo">141</span> }<a name="line.141"></a>
|
||||
<span class="sourceLineNo">142</span><a name="line.142"></a>
|
||||
<span class="sourceLineNo">143</span> public interface Condition <I extends CommandIssuer> {<a name="line.143"></a>
|
||||
<span class="sourceLineNo">144</span> boolean validateCondition(ConditionContext<I> context) throws InvalidCommandArgument;<a name="line.144"></a>
|
||||
<span class="sourceLineNo">143</span> public interface ParameterCondition <P, CEC extends CommandExecutionContext, I extends CommandIssuer> {<a name="line.143"></a>
|
||||
<span class="sourceLineNo">144</span> void validateCondition(ConditionContext<I> context, CEC execContext, P value) throws InvalidCommandArgument;<a name="line.144"></a>
|
||||
<span class="sourceLineNo">145</span> }<a name="line.145"></a>
|
||||
<span class="sourceLineNo">146</span><a name="line.146"></a>
|
||||
<span class="sourceLineNo">147</span> public interface ParameterCondition <P, CEC extends CommandExecutionContext, I extends CommandIssuer> {<a name="line.147"></a>
|
||||
<span class="sourceLineNo">148</span> boolean validateCondition(ConditionContext<I> context, CEC execContext, P value) throws InvalidCommandArgument;<a name="line.148"></a>
|
||||
<span class="sourceLineNo">149</span> }<a name="line.149"></a>
|
||||
<span class="sourceLineNo">150</span>}<a name="line.150"></a>
|
||||
<span class="sourceLineNo">146</span>}<a name="line.146"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -105,57 +105,53 @@
|
||||
<span class="sourceLineNo">097</span> //noinspection unchecked<a name="line.97"></a>
|
||||
<span class="sourceLineNo">098</span> CC conditionContext = (CC) this.manager.createConditionContext(issuer, config);<a name="line.98"></a>
|
||||
<span class="sourceLineNo">099</span> //noinspection unchecked<a name="line.99"></a>
|
||||
<span class="sourceLineNo">100</span> if (!condition.validateCondition(conditionContext)) {<a name="line.100"></a>
|
||||
<span class="sourceLineNo">101</span> return;<a name="line.101"></a>
|
||||
<span class="sourceLineNo">102</span> }<a name="line.102"></a>
|
||||
<span class="sourceLineNo">103</span> }<a name="line.103"></a>
|
||||
<span class="sourceLineNo">104</span> }<a name="line.104"></a>
|
||||
<span class="sourceLineNo">105</span><a name="line.105"></a>
|
||||
<span class="sourceLineNo">106</span> private void validateConditions(Conditions condAnno, CEC execContext, Object value) throws InvalidCommandArgument {<a name="line.106"></a>
|
||||
<span class="sourceLineNo">107</span> if (condAnno == null) {<a name="line.107"></a>
|
||||
<span class="sourceLineNo">108</span> return;<a name="line.108"></a>
|
||||
<span class="sourceLineNo">109</span> }<a name="line.109"></a>
|
||||
<span class="sourceLineNo">110</span> String conditions = this.manager.getCommandReplacements().replace(condAnno.value());<a name="line.110"></a>
|
||||
<span class="sourceLineNo">111</span> I issuer = execContext.getIssuer();<a name="line.111"></a>
|
||||
<span class="sourceLineNo">112</span> for (String cond : ACFPatterns.PIPE.split(conditions)) {<a name="line.112"></a>
|
||||
<span class="sourceLineNo">113</span> String[] split = ACFPatterns.COLON.split(cond, 2);<a name="line.113"></a>
|
||||
<span class="sourceLineNo">114</span> ParameterCondition condition;<a name="line.114"></a>
|
||||
<span class="sourceLineNo">115</span> Class<?> cls = execContext.getParam().getType();<a name="line.115"></a>
|
||||
<span class="sourceLineNo">116</span> String id = split[0].toLowerCase();<a name="line.116"></a>
|
||||
<span class="sourceLineNo">117</span> do {<a name="line.117"></a>
|
||||
<span class="sourceLineNo">118</span> condition = this.paramConditions.get(cls, id);<a name="line.118"></a>
|
||||
<span class="sourceLineNo">119</span> if (condition == null && cls.getSuperclass() != null && cls.getSuperclass() != Object.class) {<a name="line.119"></a>
|
||||
<span class="sourceLineNo">120</span> cls = cls.getSuperclass();<a name="line.120"></a>
|
||||
<span class="sourceLineNo">121</span> } else {<a name="line.121"></a>
|
||||
<span class="sourceLineNo">122</span> break;<a name="line.122"></a>
|
||||
<span class="sourceLineNo">123</span> }<a name="line.123"></a>
|
||||
<span class="sourceLineNo">124</span> } while (cls != null);<a name="line.124"></a>
|
||||
<span class="sourceLineNo">125</span><a name="line.125"></a>
|
||||
<span class="sourceLineNo">126</span><a name="line.126"></a>
|
||||
<span class="sourceLineNo">127</span> if (condition == null) {<a name="line.127"></a>
|
||||
<span class="sourceLineNo">128</span> RegisteredCommand cmd = execContext.getCmd();<a name="line.128"></a>
|
||||
<span class="sourceLineNo">129</span> this.manager.log(LogLevel.ERROR, "Could not find command condition " + id + " for " + cmd.method.getName() + "::" +execContext.getParam().getName());<a name="line.129"></a>
|
||||
<span class="sourceLineNo">130</span> continue;<a name="line.130"></a>
|
||||
<span class="sourceLineNo">131</span> }<a name="line.131"></a>
|
||||
<span class="sourceLineNo">132</span> String config = split.length == 2 ? split[1] : null;<a name="line.132"></a>
|
||||
<span class="sourceLineNo">133</span> //noinspection unchecked<a name="line.133"></a>
|
||||
<span class="sourceLineNo">134</span> CC conditionContext = (CC) this.manager.createConditionContext(issuer, config);<a name="line.134"></a>
|
||||
<span class="sourceLineNo">135</span><a name="line.135"></a>
|
||||
<span class="sourceLineNo">136</span> //noinspection unchecked<a name="line.136"></a>
|
||||
<span class="sourceLineNo">137</span> if (!condition.validateCondition(conditionContext, execContext, value)) {<a name="line.137"></a>
|
||||
<span class="sourceLineNo">138</span> return;<a name="line.138"></a>
|
||||
<span class="sourceLineNo">139</span> }<a name="line.139"></a>
|
||||
<span class="sourceLineNo">140</span> }<a name="line.140"></a>
|
||||
<span class="sourceLineNo">100</span> condition.validateCondition(conditionContext);<a name="line.100"></a>
|
||||
<span class="sourceLineNo">101</span> }<a name="line.101"></a>
|
||||
<span class="sourceLineNo">102</span> }<a name="line.102"></a>
|
||||
<span class="sourceLineNo">103</span><a name="line.103"></a>
|
||||
<span class="sourceLineNo">104</span> private void validateConditions(Conditions condAnno, CEC execContext, Object value) throws InvalidCommandArgument {<a name="line.104"></a>
|
||||
<span class="sourceLineNo">105</span> if (condAnno == null) {<a name="line.105"></a>
|
||||
<span class="sourceLineNo">106</span> return;<a name="line.106"></a>
|
||||
<span class="sourceLineNo">107</span> }<a name="line.107"></a>
|
||||
<span class="sourceLineNo">108</span> String conditions = this.manager.getCommandReplacements().replace(condAnno.value());<a name="line.108"></a>
|
||||
<span class="sourceLineNo">109</span> I issuer = execContext.getIssuer();<a name="line.109"></a>
|
||||
<span class="sourceLineNo">110</span> for (String cond : ACFPatterns.PIPE.split(conditions)) {<a name="line.110"></a>
|
||||
<span class="sourceLineNo">111</span> String[] split = ACFPatterns.COLON.split(cond, 2);<a name="line.111"></a>
|
||||
<span class="sourceLineNo">112</span> ParameterCondition condition;<a name="line.112"></a>
|
||||
<span class="sourceLineNo">113</span> Class<?> cls = execContext.getParam().getType();<a name="line.113"></a>
|
||||
<span class="sourceLineNo">114</span> String id = split[0].toLowerCase();<a name="line.114"></a>
|
||||
<span class="sourceLineNo">115</span> do {<a name="line.115"></a>
|
||||
<span class="sourceLineNo">116</span> condition = this.paramConditions.get(cls, id);<a name="line.116"></a>
|
||||
<span class="sourceLineNo">117</span> if (condition == null && cls.getSuperclass() != null && cls.getSuperclass() != Object.class) {<a name="line.117"></a>
|
||||
<span class="sourceLineNo">118</span> cls = cls.getSuperclass();<a name="line.118"></a>
|
||||
<span class="sourceLineNo">119</span> } else {<a name="line.119"></a>
|
||||
<span class="sourceLineNo">120</span> break;<a name="line.120"></a>
|
||||
<span class="sourceLineNo">121</span> }<a name="line.121"></a>
|
||||
<span class="sourceLineNo">122</span> } while (cls != null);<a name="line.122"></a>
|
||||
<span class="sourceLineNo">123</span><a name="line.123"></a>
|
||||
<span class="sourceLineNo">124</span><a name="line.124"></a>
|
||||
<span class="sourceLineNo">125</span> if (condition == null) {<a name="line.125"></a>
|
||||
<span class="sourceLineNo">126</span> RegisteredCommand cmd = execContext.getCmd();<a name="line.126"></a>
|
||||
<span class="sourceLineNo">127</span> this.manager.log(LogLevel.ERROR, "Could not find command condition " + id + " for " + cmd.method.getName() + "::" +execContext.getParam().getName());<a name="line.127"></a>
|
||||
<span class="sourceLineNo">128</span> continue;<a name="line.128"></a>
|
||||
<span class="sourceLineNo">129</span> }<a name="line.129"></a>
|
||||
<span class="sourceLineNo">130</span> String config = split.length == 2 ? split[1] : null;<a name="line.130"></a>
|
||||
<span class="sourceLineNo">131</span> //noinspection unchecked<a name="line.131"></a>
|
||||
<span class="sourceLineNo">132</span> CC conditionContext = (CC) this.manager.createConditionContext(issuer, config);<a name="line.132"></a>
|
||||
<span class="sourceLineNo">133</span><a name="line.133"></a>
|
||||
<span class="sourceLineNo">134</span> //noinspection unchecked<a name="line.134"></a>
|
||||
<span class="sourceLineNo">135</span> condition.validateCondition(conditionContext, execContext, value);<a name="line.135"></a>
|
||||
<span class="sourceLineNo">136</span> }<a name="line.136"></a>
|
||||
<span class="sourceLineNo">137</span> }<a name="line.137"></a>
|
||||
<span class="sourceLineNo">138</span><a name="line.138"></a>
|
||||
<span class="sourceLineNo">139</span> public interface Condition <I extends CommandIssuer> {<a name="line.139"></a>
|
||||
<span class="sourceLineNo">140</span> void validateCondition(ConditionContext<I> context) throws InvalidCommandArgument;<a name="line.140"></a>
|
||||
<span class="sourceLineNo">141</span> }<a name="line.141"></a>
|
||||
<span class="sourceLineNo">142</span><a name="line.142"></a>
|
||||
<span class="sourceLineNo">143</span> public interface Condition <I extends CommandIssuer> {<a name="line.143"></a>
|
||||
<span class="sourceLineNo">144</span> boolean validateCondition(ConditionContext<I> context) throws InvalidCommandArgument;<a name="line.144"></a>
|
||||
<span class="sourceLineNo">143</span> public interface ParameterCondition <P, CEC extends CommandExecutionContext, I extends CommandIssuer> {<a name="line.143"></a>
|
||||
<span class="sourceLineNo">144</span> void validateCondition(ConditionContext<I> context, CEC execContext, P value) throws InvalidCommandArgument;<a name="line.144"></a>
|
||||
<span class="sourceLineNo">145</span> }<a name="line.145"></a>
|
||||
<span class="sourceLineNo">146</span><a name="line.146"></a>
|
||||
<span class="sourceLineNo">147</span> public interface ParameterCondition <P, CEC extends CommandExecutionContext, I extends CommandIssuer> {<a name="line.147"></a>
|
||||
<span class="sourceLineNo">148</span> boolean validateCondition(ConditionContext<I> context, CEC execContext, P value) throws InvalidCommandArgument;<a name="line.148"></a>
|
||||
<span class="sourceLineNo">149</span> }<a name="line.149"></a>
|
||||
<span class="sourceLineNo">150</span>}<a name="line.150"></a>
|
||||
<span class="sourceLineNo">146</span>}<a name="line.146"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user