mirror of
https://github.com/bitcoinj/bitcoinj.git
synced 2025-03-10 17:26:28 +01:00
Message: make serializer
field immutable
This requires two new pass-through constructors, but in return we get rid of the setter.
This commit is contained in:
parent
b8f77abe62
commit
ed57fa08ed
3 changed files with 11 additions and 14 deletions
|
@ -33,6 +33,10 @@ public abstract class ChildMessage extends Message {
|
|||
super(params);
|
||||
}
|
||||
|
||||
public ChildMessage(NetworkParameters params, MessageSerializer serializer) {
|
||||
super(params, serializer);
|
||||
}
|
||||
|
||||
public ChildMessage(NetworkParameters params, ByteBuffer payload) throws ProtocolException {
|
||||
super(params, payload);
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ public abstract class Message {
|
|||
// The raw message payload bytes themselves.
|
||||
protected ByteBuffer payload;
|
||||
|
||||
protected MessageSerializer serializer;
|
||||
protected final MessageSerializer serializer;
|
||||
|
||||
@Nullable
|
||||
protected final NetworkParameters params;
|
||||
|
@ -65,6 +65,11 @@ public abstract class Message {
|
|||
this.serializer = params.getDefaultSerializer();
|
||||
}
|
||||
|
||||
protected Message(NetworkParameters params, MessageSerializer serializer) {
|
||||
this.params = params;
|
||||
this.serializer = serializer;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param params NetworkParameters object.
|
||||
|
@ -99,17 +104,6 @@ public abstract class Message {
|
|||
protected void unCache() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides the message serializer.
|
||||
* @param serializer the new serializer
|
||||
*/
|
||||
public void setSerializer(MessageSerializer serializer) {
|
||||
if (!this.serializer.equals(serializer)) {
|
||||
this.serializer = serializer;
|
||||
unCache();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>Serialize this message to a byte array that conforms to the bitcoin wire protocol.</p>
|
||||
*
|
||||
|
|
|
@ -96,10 +96,9 @@ public class PeerAddress extends ChildMessage {
|
|||
* Construct a peer address from a memorized or hardcoded address.
|
||||
*/
|
||||
public PeerAddress(NetworkParameters params, InetAddress addr, int port, BigInteger services, MessageSerializer serializer) {
|
||||
super(params);
|
||||
super(params, serializer);
|
||||
this.addr = Objects.requireNonNull(addr);
|
||||
this.port = port;
|
||||
setSerializer(serializer);
|
||||
this.services = services;
|
||||
this.time = Optional.of(TimeUtils.currentTime().truncatedTo(ChronoUnit.SECONDS));
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue