![JAR search and dependency download from the Maven repository](/logo.png)
io.nem.symbol.catapult.builders.MosaicGlobalRestrictionTransactionBuilder Maven / Gradle / Ivy
/**
*** Copyright (c) 2016-present,
*** Jaguar0625, gimre, BloodyRookie, Tech Bureau, Corp. All rights reserved.
***
*** This file is part of Catapult.
***
*** Catapult is free software: you can redistribute it and/or modify
*** it under the terms of the GNU Lesser General Public License as published by
*** the Free Software Foundation, either version 3 of the License, or
*** (at your option) any later version.
***
*** Catapult is distributed in the hope that it will be useful,
*** but WITHOUT ANY WARRANTY; without even the implied warranty of
*** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*** GNU Lesser General Public License for more details.
***
*** You should have received a copy of the GNU Lesser General Public License
*** along with Catapult. If not, see .
**/
package io.nem.symbol.catapult.builders;
import java.io.DataInputStream;
import java.nio.ByteBuffer;
import java.util.EnumSet;
import java.util.List;
/**
* Binary layout for a non-embedded mosaic global restriction transaction
**/
public class MosaicGlobalRestrictionTransactionBuilder extends TransactionBuilder implements Serializer {
/** Mosaic global restriction transaction body. **/
private final MosaicGlobalRestrictionTransactionBodyBuilder mosaicGlobalRestrictionTransactionBody;
/**
* Constructor - Creates an object from stream.
*
* @param stream Byte stream to use to serialize the object.
*/
protected MosaicGlobalRestrictionTransactionBuilder(DataInputStream stream) {
super(stream);
try {
this.mosaicGlobalRestrictionTransactionBody = MosaicGlobalRestrictionTransactionBodyBuilder.loadFromBinary(stream);
} catch (Exception e) {
throw GeneratorUtils.getExceptionToPropagate(e);
}
}
/**
* Creates an instance of MosaicGlobalRestrictionTransactionBuilder from a stream.
*
* @param stream Byte stream to use to serialize the object.
* @return Instance of MosaicGlobalRestrictionTransactionBuilder.
*/
public static MosaicGlobalRestrictionTransactionBuilder loadFromBinary(DataInputStream stream) {
return new MosaicGlobalRestrictionTransactionBuilder(stream);
}
/**
* Constructor.
*
* @param signature Entity signature.
* @param signerPublicKey Entity signer's public key.
* @param version Entity version.
* @param network Entity network.
* @param type Entity type.
* @param fee Transaction fee.
* @param deadline Transaction deadline.
* @param mosaicId Identifier of the mosaic being restricted.
* @param referenceMosaicId Identifier of the mosaic providing the restriction key.
* @param restrictionKey Restriction key relative to the reference mosaic identifier.
* @param previousRestrictionValue Previous restriction value.
* @param newRestrictionValue New restriction value.
* @param previousRestrictionType Previous restriction type.
* @param newRestrictionType New restriction type.
*/
protected MosaicGlobalRestrictionTransactionBuilder(SignatureDto signature, KeyDto signerPublicKey, byte version, NetworkTypeDto network, EntityTypeDto type, AmountDto fee, TimestampDto deadline, UnresolvedMosaicIdDto mosaicId, UnresolvedMosaicIdDto referenceMosaicId, long restrictionKey, long previousRestrictionValue, long newRestrictionValue, MosaicRestrictionTypeDto previousRestrictionType, MosaicRestrictionTypeDto newRestrictionType) {
super(signature, signerPublicKey, version, network, type, fee, deadline);
GeneratorUtils.notNull(signature, "signature is null");
GeneratorUtils.notNull(signerPublicKey, "signerPublicKey is null");
GeneratorUtils.notNull(version, "version is null");
GeneratorUtils.notNull(network, "network is null");
GeneratorUtils.notNull(type, "type is null");
GeneratorUtils.notNull(fee, "fee is null");
GeneratorUtils.notNull(deadline, "deadline is null");
GeneratorUtils.notNull(mosaicId, "mosaicId is null");
GeneratorUtils.notNull(referenceMosaicId, "referenceMosaicId is null");
GeneratorUtils.notNull(restrictionKey, "restrictionKey is null");
GeneratorUtils.notNull(previousRestrictionValue, "previousRestrictionValue is null");
GeneratorUtils.notNull(newRestrictionValue, "newRestrictionValue is null");
GeneratorUtils.notNull(previousRestrictionType, "previousRestrictionType is null");
GeneratorUtils.notNull(newRestrictionType, "newRestrictionType is null");
this.mosaicGlobalRestrictionTransactionBody = new MosaicGlobalRestrictionTransactionBodyBuilder(mosaicId, referenceMosaicId, restrictionKey, previousRestrictionValue, newRestrictionValue, previousRestrictionType, newRestrictionType);
}
/**
* Creates an instance of MosaicGlobalRestrictionTransactionBuilder.
*
* @param signature Entity signature.
* @param signerPublicKey Entity signer's public key.
* @param version Entity version.
* @param network Entity network.
* @param type Entity type.
* @param fee Transaction fee.
* @param deadline Transaction deadline.
* @param mosaicId Identifier of the mosaic being restricted.
* @param referenceMosaicId Identifier of the mosaic providing the restriction key.
* @param restrictionKey Restriction key relative to the reference mosaic identifier.
* @param previousRestrictionValue Previous restriction value.
* @param newRestrictionValue New restriction value.
* @param previousRestrictionType Previous restriction type.
* @param newRestrictionType New restriction type.
* @return Instance of MosaicGlobalRestrictionTransactionBuilder.
*/
public static MosaicGlobalRestrictionTransactionBuilder create(SignatureDto signature, KeyDto signerPublicKey, byte version, NetworkTypeDto network, EntityTypeDto type, AmountDto fee, TimestampDto deadline, UnresolvedMosaicIdDto mosaicId, UnresolvedMosaicIdDto referenceMosaicId, long restrictionKey, long previousRestrictionValue, long newRestrictionValue, MosaicRestrictionTypeDto previousRestrictionType, MosaicRestrictionTypeDto newRestrictionType) {
return new MosaicGlobalRestrictionTransactionBuilder(signature, signerPublicKey, version, network, type, fee, deadline, mosaicId, referenceMosaicId, restrictionKey, previousRestrictionValue, newRestrictionValue, previousRestrictionType, newRestrictionType);
}
/**
* Gets identifier of the mosaic being restricted.
*
* @return Identifier of the mosaic being restricted.
*/
public UnresolvedMosaicIdDto getMosaicId() {
return this.mosaicGlobalRestrictionTransactionBody.getMosaicId();
}
/**
* Gets identifier of the mosaic providing the restriction key.
*
* @return Identifier of the mosaic providing the restriction key.
*/
public UnresolvedMosaicIdDto getReferenceMosaicId() {
return this.mosaicGlobalRestrictionTransactionBody.getReferenceMosaicId();
}
/**
* Gets restriction key relative to the reference mosaic identifier.
*
* @return Restriction key relative to the reference mosaic identifier.
*/
public long getRestrictionKey() {
return this.mosaicGlobalRestrictionTransactionBody.getRestrictionKey();
}
/**
* Gets previous restriction value.
*
* @return Previous restriction value.
*/
public long getPreviousRestrictionValue() {
return this.mosaicGlobalRestrictionTransactionBody.getPreviousRestrictionValue();
}
/**
* Gets new restriction value.
*
* @return New restriction value.
*/
public long getNewRestrictionValue() {
return this.mosaicGlobalRestrictionTransactionBody.getNewRestrictionValue();
}
/**
* Gets previous restriction type.
*
* @return Previous restriction type.
*/
public MosaicRestrictionTypeDto getPreviousRestrictionType() {
return this.mosaicGlobalRestrictionTransactionBody.getPreviousRestrictionType();
}
/**
* Gets new restriction type.
*
* @return New restriction type.
*/
public MosaicRestrictionTypeDto getNewRestrictionType() {
return this.mosaicGlobalRestrictionTransactionBody.getNewRestrictionType();
}
/**
* Gets the size of the object.
*
* @return Size in bytes.
*/
public int getSize() {
int size = super.getSize();
size += this.mosaicGlobalRestrictionTransactionBody.getSize();
return size;
}
/**
* Gets the body builder of the object.
*
* @return Body builder.
*/
@Override
public MosaicGlobalRestrictionTransactionBodyBuilder getBody() {
return this.mosaicGlobalRestrictionTransactionBody;
}
/**
* Serializes an object to bytes.
*
* @return Serialized bytes.
*/
public byte[] serialize() {
return GeneratorUtils.serialize((dataOutputStream) -> {
final byte[] superBytes = super.serialize();
dataOutputStream.write(superBytes, 0, superBytes.length);
GeneratorUtils.writeEntity(dataOutputStream, this.mosaicGlobalRestrictionTransactionBody);
});
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy