Skip to content

Commit

Permalink
增加自定义操作
Browse files Browse the repository at this point in the history
  • Loading branch information
zhou-hao committed Jun 4, 2019
1 parent 732c1a6 commit 62a11b7
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 0 deletions.
@@ -1,14 +1,18 @@
package org.jetlinks.core.message;

import io.vavr.control.Try;
import org.jetlinks.core.message.property.ReadPropertyMessage;
import org.jetlinks.core.message.property.ReadPropertyMessageReply;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.function.Consumer;
import java.util.function.Supplier;

/**
Expand All @@ -21,6 +25,14 @@
*/
public interface ReadPropertyMessageSender {

/**
* 自定义消息
*
* @param messageConsumer consumer
* @return this
*/
ReadPropertyMessageSender custom(Consumer<ReadPropertyMessage> messageConsumer);

/**
* 设置要读取的属性列表
*
Expand Down Expand Up @@ -72,6 +84,30 @@ default ReadPropertyMessageSender read(String... property) {
*/
CompletionStage<ReadPropertyMessageReply> retrieveReply();

/**
* 添加header到message中
*
* @param header header
* @param value 值
* @return this
* @see DeviceMessage#addHeader(String, Object)
*/
ReadPropertyMessageSender header(String header, Object value);

/**
* 添加多个header到message中
*
* @param headers 多个headers
* @return this
* @see this#header(String, Object)
* @see DeviceMessage#addHeader(String, Object)
*/
default ReadPropertyMessageSender headers(Map<String, Object> headers) {
Objects.requireNonNull(headers)
.forEach(this::header);
return this;
}

/**
* 请看{@link this#retrieveReply()} 和 {@link Try}
*
Expand Down
@@ -1,13 +1,16 @@
package org.jetlinks.core.message;

import io.vavr.control.Try;
import org.jetlinks.core.message.property.WritePropertyMessage;
import org.jetlinks.core.message.property.WritePropertyMessageReply;

import java.util.Map;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.function.Consumer;
import java.util.function.Supplier;

/**
Expand All @@ -27,6 +30,39 @@ public interface WritePropertyMessageSender {
*/
WritePropertyMessageSender write(String property, Object value);

/**
* 自定义消息
*
* @param messageConsumer consumer
* @return this
*/
WritePropertyMessageSender custom(Consumer<WritePropertyMessage> messageConsumer);


/**
* 添加header到message中
*
* @param header header
* @param value 值
* @return this
* @see DeviceMessage#addHeader(String, Object)
*/
WritePropertyMessageSender header(String header, Object value);

/**
* 添加多个header到message中
*
* @param headers 多个headers
* @return this
* @see this#header(String, Object)
* @see DeviceMessage#addHeader(String, Object)
*/
default WritePropertyMessageSender headers(Map<String, Object> headers) {
Objects.requireNonNull(headers)
.forEach(this::header);
return this;
}

/**
* 将整个map设置为要修改的属性
*
Expand Down

0 comments on commit 62a11b7

Please sign in to comment.