From 1fd1f2cf26b9d08210dc611cd9ac1dac9c91597e Mon Sep 17 00:00:00 2001 From: LamGC Date: Fri, 20 Nov 2020 23:00:29 +0800 Subject: [PATCH] =?UTF-8?q?[Change]=20Framework-API=20=E5=9C=A8=20Message?= =?UTF-8?q?=20=E4=B8=AD=E6=B7=BB=E5=8A=A0=20CharSequence=20=E7=9A=84?= =?UTF-8?q?=E4=B8=89=E4=B8=AA=E6=8A=BD=E8=B1=A1=E6=96=B9=E6=B3=95=E7=9A=84?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=AE=9E=E7=8E=B0;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [Change] Message 添加 CharSequence 中 'length()', 'charAt(int)' 和 'subSequence(int, int)' 的默认实现, 以降低测试复杂度; [Change] MessageChain, CharSequenceMessage, AbstractBotCode 适配 Message 更改; --- .../framework/message/AbstractBotCode.java | 15 -------- .../message/CharSequenceMessage.java | 15 -------- .../cgj/bot/framework/message/Message.java | 35 +++++++++++++++++++ .../bot/framework/message/MessageChain.java | 15 -------- 4 files changed, 35 insertions(+), 45 deletions(-) diff --git a/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/AbstractBotCode.java b/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/AbstractBotCode.java index 4d34adb..0548f69 100644 --- a/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/AbstractBotCode.java +++ b/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/AbstractBotCode.java @@ -116,19 +116,4 @@ public abstract class AbstractBotCode implements BotCode { return Collections.unmodifiableSet(functionProperties.keySet()); } - @Override - public int length() { - return contentToString().length(); - } - - @Override - public char charAt(int index) { - return contentToString().charAt(index); - } - - @Override - public CharSequence subSequence(int start, int end) { - return contentToString().subSequence(start, end); - } - } diff --git a/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/CharSequenceMessage.java b/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/CharSequenceMessage.java index 9114fd6..8c770b7 100644 --- a/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/CharSequenceMessage.java +++ b/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/CharSequenceMessage.java @@ -39,21 +39,6 @@ public final class CharSequenceMessage implements Message { return content.toString(); } - @Override - public int length() { - return content.length(); - } - - @Override - public char charAt(int index) { - return content.charAt(index); - } - - @Override - public CharSequence subSequence(int start, int end) { - return content.subSequence(start, end); - } - @Override public String toString() { return "CharSequenceMessage{" + diff --git a/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/Message.java b/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/Message.java index 9493cb9..23737fc 100644 --- a/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/Message.java +++ b/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/Message.java @@ -29,4 +29,39 @@ public interface Message extends CharSequence { */ String contentToString(); + /** + * 返回该消息经过 {@link #contentToString()} 后的字符串长度. + * @return 返回 {@link #contentToString()} 返回字符串的长度. + * @see CharSequence#length() + */ + @Override + default int length() { + return contentToString().length(); + } + + /** + * 从 {@link #contentToString()} 所返回的字符串中取出指定索引的字符. + * @param index 字符索引. + * @return 返回字符串指定索引对应的字符. + * @throws IndexOutOfBoundsException 如果索引参数为负数或不小于此字符串的长度. + * @see CharSequence#charAt(int) + */ + @Override + default char charAt(int index) { + return contentToString().charAt(index); + } + + /** + * 截取从 {@link #contentToString()} 中返回字符串内的一段字符序列. + * @param start 截取起始索引. + * @param end 截取终止索引. + * @return 返回新的字符序列对象. + * @throws IndexOutOfBoundsException 如果 beginIndex 或 endIndex 为负, + * endIndex 大于 {@link #length()}, 或者 beginIndex 大于 endIndex 时抛出. + * @see CharSequence#subSequence(int, int) + */ + @Override + default CharSequence subSequence(int start, int end) { + return contentToString().subSequence(start, end); + } } diff --git a/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/MessageChain.java b/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/MessageChain.java index fdbc076..c46f580 100644 --- a/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/MessageChain.java +++ b/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/MessageChain.java @@ -85,19 +85,4 @@ public final class MessageChain implements Message { return builder.toString(); } - @Override - public int length() { - return contentToString().length(); - } - - @Override - public char charAt(int index) { - return contentToString().charAt(index); - } - - @Override - public CharSequence subSequence(int start, int end) { - return contentToString().subSequence(start, end); - } - }