All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.backendless.transaction.Operation Maven / Gradle / Ivy

The newest version!
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