com.backendless.transaction.Operation Maven / Gradle / Ivy
package com.backendless.transaction;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.EXISTING_PROPERTY,
property = "operationType",
visible = true )
@JsonSubTypes( {
@JsonSubTypes.Type( value = OperationCreate.class, name = "CREATE" ),
@JsonSubTypes.Type( value = OperationCreateBulk.class, name = "CREATE_BULK" ),
@JsonSubTypes.Type( value = OperationUpdate.class, name = "UPDATE" ),
@JsonSubTypes.Type( value = OperationUpdateBulk.class, name = "UPDATE_BULK" ),
@JsonSubTypes.Type( value = OperationUpsert.class, name = "UPSERT" ),
@JsonSubTypes.Type( value = OperationUpsertBulk.class, name = "UPSERT_BULK" ),
@JsonSubTypes.Type( value = OperationDelete.class, name = "DELETE" ),
@JsonSubTypes.Type( value = OperationDeleteBulk.class, name = "DELETE_BULK" ),
@JsonSubTypes.Type( value = OperationFind.class, name = "FIND" ),
@JsonSubTypes.Type( value = OperationAddRelation.class, name = "ADD_RELATION" ),
@JsonSubTypes.Type( value = OperationSetRelation.class, name = "SET_RELATION" ),
@JsonSubTypes.Type( value = OperationDeleteRelation.class, name = "DELETE_RELATION" )
} )
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
abstract class Operation
{
private OperationType operationType;
private String table;
private String opResultId;
public abstract T getPayload();
public abstract void setPayload( T payload );
@Override
public String toString()
{
return "Operation{operationType=" + operationType + ", table=" + table + ", opResultId=" + opResultId + ", payload=" + getPayload() + "}";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy