Corda: Piece class
This commit is contained in:
parent
a9b70b963c
commit
c1dbb3d213
@ -6,7 +6,6 @@ import java.util.UUID;
|
|||||||
|
|
||||||
import djmil.cordacheckers.contracts.GameProposalContract;
|
import djmil.cordacheckers.contracts.GameProposalContract;
|
||||||
import net.corda.v5.base.annotations.ConstructorForDeserialization;
|
import net.corda.v5.base.annotations.ConstructorForDeserialization;
|
||||||
import net.corda.v5.base.annotations.CordaSerializable;
|
|
||||||
import net.corda.v5.base.types.MemberX500Name;
|
import net.corda.v5.base.types.MemberX500Name;
|
||||||
import net.corda.v5.ledger.utxo.BelongsToContract;
|
import net.corda.v5.ledger.utxo.BelongsToContract;
|
||||||
import net.corda.v5.ledger.utxo.ContractState;
|
import net.corda.v5.ledger.utxo.ContractState;
|
||||||
@ -14,25 +13,19 @@ import net.corda.v5.ledger.utxo.ContractState;
|
|||||||
@BelongsToContract(GameProposalContract.class)
|
@BelongsToContract(GameProposalContract.class)
|
||||||
public class GameProposalState implements ContractState {
|
public class GameProposalState implements ContractState {
|
||||||
|
|
||||||
@CordaSerializable
|
MemberX500Name sender;
|
||||||
public enum Color {
|
MemberX500Name recipient;
|
||||||
WHITE,
|
Piece.Color recipientColor;
|
||||||
BLACK,
|
String message;
|
||||||
}
|
UUID id;
|
||||||
|
List<PublicKey> participants;
|
||||||
public final MemberX500Name sender;
|
|
||||||
public final MemberX500Name recipient;
|
|
||||||
public final Color recipientColor;
|
|
||||||
public final String message;
|
|
||||||
public final UUID id;
|
|
||||||
public final List<PublicKey> participants;
|
|
||||||
|
|
||||||
// Allows serialisation and to use a specified UUID
|
// Allows serialisation and to use a specified UUID
|
||||||
@ConstructorForDeserialization
|
@ConstructorForDeserialization
|
||||||
public GameProposalState(
|
public GameProposalState(
|
||||||
MemberX500Name sender,
|
MemberX500Name sender,
|
||||||
MemberX500Name recipient,
|
MemberX500Name recipient,
|
||||||
Color recipientColor,
|
Piece.Color recipientColor,
|
||||||
String message,
|
String message,
|
||||||
UUID id,
|
UUID id,
|
||||||
List<PublicKey> participants
|
List<PublicKey> participants
|
||||||
@ -53,7 +46,7 @@ public class GameProposalState implements ContractState {
|
|||||||
return recipient;
|
return recipient;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Color getRecipientColor() {
|
public Piece.Color getRecipientColor() {
|
||||||
return recipientColor;
|
return recipientColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,24 @@
|
|||||||
|
package djmil.cordacheckers.states;
|
||||||
|
|
||||||
|
import net.corda.v5.base.annotations.CordaSerializable;
|
||||||
|
|
||||||
|
@CordaSerializable
|
||||||
|
public class Piece {
|
||||||
|
|
||||||
|
@CordaSerializable
|
||||||
|
public enum Type {
|
||||||
|
MAN,
|
||||||
|
KING,
|
||||||
|
}
|
||||||
|
|
||||||
|
@CordaSerializable
|
||||||
|
public enum Color {
|
||||||
|
WHITE,
|
||||||
|
BLACK,
|
||||||
|
}
|
||||||
|
|
||||||
|
Color color;
|
||||||
|
Type type;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -6,6 +6,7 @@ import org.slf4j.LoggerFactory;
|
|||||||
import djmil.cordacheckers.FlowResult;
|
import djmil.cordacheckers.FlowResult;
|
||||||
import djmil.cordacheckers.contracts.GameProposalContract;
|
import djmil.cordacheckers.contracts.GameProposalContract;
|
||||||
import djmil.cordacheckers.states.GameProposalState;
|
import djmil.cordacheckers.states.GameProposalState;
|
||||||
|
import djmil.cordacheckers.states.Piece;
|
||||||
import net.corda.v5.application.flows.ClientRequestBody;
|
import net.corda.v5.application.flows.ClientRequestBody;
|
||||||
import net.corda.v5.application.flows.ClientStartableFlow;
|
import net.corda.v5.application.flows.ClientStartableFlow;
|
||||||
import net.corda.v5.application.flows.CordaInject;
|
import net.corda.v5.application.flows.CordaInject;
|
||||||
@ -77,10 +78,10 @@ public class CreateFlow implements ClientStartableFlow{
|
|||||||
private GameProposalState buildGameProposalStateFrom(ClientRequestBody requestBody) {
|
private GameProposalState buildGameProposalStateFrom(ClientRequestBody requestBody) {
|
||||||
CreateFlowArgs args = requestBody.getRequestBodyAs(jsonMarshallingService, CreateFlowArgs.class);
|
CreateFlowArgs args = requestBody.getRequestBodyAs(jsonMarshallingService, CreateFlowArgs.class);
|
||||||
|
|
||||||
GameProposalState.Color opponentColor = GameProposalState.Color.valueOf(args.opponentColor);
|
Piece.Color opponentColor = Piece.Color.valueOf(args.opponentColor);
|
||||||
if (opponentColor == null) {
|
if (opponentColor == null) {
|
||||||
throw new RuntimeException("Allowed values for opponentColor are: "
|
throw new RuntimeException("Allowed values for opponentColor are: "
|
||||||
+ GameProposalState.Color.WHITE.name() +", " + GameProposalState.Color.BLACK.name()
|
+ Piece.Color.WHITE.name() +", " + Piece.Color.BLACK.name()
|
||||||
+ ". Actual value was: " + args.opponentColor);
|
+ ". Actual value was: " + args.opponentColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,6 +120,6 @@ public class CreateFlow implements ClientStartableFlow{
|
|||||||
|
|
||||||
ledgerService.finalize(signedTransaction, sessionsList);
|
ledgerService.finalize(signedTransaction, sessionsList);
|
||||||
|
|
||||||
return gameProposal.id.toString();
|
return gameProposal.getId().toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user