mirror of
https://github.com/bitcoinj/bitcoinj.git
synced 2025-03-11 17:58:01 +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);
|
super(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ChildMessage(NetworkParameters params, MessageSerializer serializer) {
|
||||||
|
super(params, serializer);
|
||||||
|
}
|
||||||
|
|
||||||
public ChildMessage(NetworkParameters params, ByteBuffer payload) throws ProtocolException {
|
public ChildMessage(NetworkParameters params, ByteBuffer payload) throws ProtocolException {
|
||||||
super(params, payload);
|
super(params, payload);
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ public abstract class Message {
|
||||||
// The raw message payload bytes themselves.
|
// The raw message payload bytes themselves.
|
||||||
protected ByteBuffer payload;
|
protected ByteBuffer payload;
|
||||||
|
|
||||||
protected MessageSerializer serializer;
|
protected final MessageSerializer serializer;
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
protected final NetworkParameters params;
|
protected final NetworkParameters params;
|
||||||
|
@ -65,6 +65,11 @@ public abstract class Message {
|
||||||
this.serializer = params.getDefaultSerializer();
|
this.serializer = params.getDefaultSerializer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected Message(NetworkParameters params, MessageSerializer serializer) {
|
||||||
|
this.params = params;
|
||||||
|
this.serializer = serializer;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param params NetworkParameters object.
|
* @param params NetworkParameters object.
|
||||||
|
@ -99,17 +104,6 @@ public abstract class Message {
|
||||||
protected void unCache() {
|
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>
|
* <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.
|
* Construct a peer address from a memorized or hardcoded address.
|
||||||
*/
|
*/
|
||||||
public PeerAddress(NetworkParameters params, InetAddress addr, int port, BigInteger services, MessageSerializer serializer) {
|
public PeerAddress(NetworkParameters params, InetAddress addr, int port, BigInteger services, MessageSerializer serializer) {
|
||||||
super(params);
|
super(params, serializer);
|
||||||
this.addr = Objects.requireNonNull(addr);
|
this.addr = Objects.requireNonNull(addr);
|
||||||
this.port = port;
|
this.port = port;
|
||||||
setSerializer(serializer);
|
|
||||||
this.services = services;
|
this.services = services;
|
||||||
this.time = Optional.of(TimeUtils.currentTime().truncatedTo(ChronoUnit.SECONDS));
|
this.time = Optional.of(TimeUtils.currentTime().truncatedTo(ChronoUnit.SECONDS));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue