Package com.alibaba.wasp.protobuf

Source Code of com.alibaba.wasp.protobuf.RequestConverter

/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.alibaba.wasp.protobuf;

import com.alibaba.wasp.EntityGroupInfo;
import com.alibaba.wasp.MetaException;
import com.alibaba.wasp.ReadModel;
import com.alibaba.wasp.ServerName;
import com.alibaba.wasp.meta.FTable;
import com.alibaba.wasp.meta.Index;
import com.alibaba.wasp.plan.action.DeleteAction;
import com.alibaba.wasp.plan.action.GetAction;
import com.alibaba.wasp.plan.action.InsertAction;
import com.alibaba.wasp.plan.action.ScanAction;
import com.alibaba.wasp.plan.action.TransactionAction;
import com.alibaba.wasp.plan.action.UpdateAction;
import com.alibaba.wasp.protobuf.generated.ClientProtos.DeleteRequest;
import com.alibaba.wasp.protobuf.generated.ClientProtos.ExecuteRequest;
import com.alibaba.wasp.protobuf.generated.ClientProtos.GetRequest;
import com.alibaba.wasp.protobuf.generated.ClientProtos.InsertRequest;
import com.alibaba.wasp.protobuf.generated.ClientProtos.ScanRequest;
import com.alibaba.wasp.protobuf.generated.ClientProtos.TransactionRequest;
import com.alibaba.wasp.protobuf.generated.ClientProtos.UpdateRequest;
import com.alibaba.wasp.protobuf.generated.FServerAdminProtos.CloseEncodedEntityGroupRequest;
import com.alibaba.wasp.protobuf.generated.FServerAdminProtos.CloseEntityGroupRequest;
import com.alibaba.wasp.protobuf.generated.FServerAdminProtos.GetEntityGroupInfoRequest;
import com.alibaba.wasp.protobuf.generated.FServerAdminProtos.GetOnlineEntityGroupsRequest;
import com.alibaba.wasp.protobuf.generated.FServerAdminProtos.GetServerInfoRequest;
import com.alibaba.wasp.protobuf.generated.FServerAdminProtos.OpenEntityGroupRequest;
import com.alibaba.wasp.protobuf.generated.FServerAdminProtos.SplitEntityGroupRequest;
import com.alibaba.wasp.protobuf.generated.FServerAdminProtos.StopServerRequest;
import com.alibaba.wasp.protobuf.generated.FServerStatusProtos.FServerReportRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.AssignEntityGroupRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.BalanceRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.CreateIndexRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.CreateTableRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.DeleteTableRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.DropIndexRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.EnableTableRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.FetchEntityGroupSizeRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.GetEntityGroupRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.GetEntityGroupWithScanRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.GetEntityGroupsRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.GetTableEntityGroupsRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.IsTableAvailableRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.IsTableLockedRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.ModifyTableRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.MoveEntityGroupRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.OfflineEntityGroupRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.SetBalancerRunningRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.SetTableStateRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.TableExistsRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.TruncateTableRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.UnassignEntityGroupRequest;
import com.alibaba.wasp.protobuf.generated.MasterAdminProtos.UnlockTableRequest;
import com.alibaba.wasp.protobuf.generated.MasterMonitorProtos.GetClusterStatusRequest;
import com.alibaba.wasp.protobuf.generated.MasterMonitorProtos.GetSchemaAlterStatusRequest;
import com.alibaba.wasp.protobuf.generated.MasterMonitorProtos.GetTableDescriptorsRequest;
import com.alibaba.wasp.protobuf.generated.MasterProtos.IsMasterRunningRequest;
import com.alibaba.wasp.protobuf.generated.WaspProtos;
import com.alibaba.wasp.protobuf.generated.WaspProtos.EntityGroupSpecifier;
import com.alibaba.wasp.protobuf.generated.WaspProtos.EntityGroupSpecifier.EntityGroupSpecifierType;
import com.google.protobuf.ByteString;
import com.google.protobuf.ServiceException;
import org.apache.hadoop.hbase.util.Bytes;

import java.util.List;

/**
* Helper utility to build protocol buffer requests, or build components for
* protocol buffer requests.
*/
public final class RequestConverter {

  private RequestConverter() {
  }

  /**
   * Create a protocol buffer OpenRegionRequest to open a list of entityGroups
   *
   * @param entityGroups
   *          the list of entityGroups to open
   * @return a protocol buffer OpenRegionRequest
   */
  public static OpenEntityGroupRequest buildOpenEntityGroupRequest(
      final List<EntityGroupInfo> entityGroups) {
    OpenEntityGroupRequest.Builder builder = OpenEntityGroupRequest
        .newBuilder();
    for (EntityGroupInfo entityGroup : entityGroups) {
      builder.addEntityGroup(EntityGroupInfo.convert(entityGroup));
    }
    return builder.build();
  }

  /**
   * Create a protocol buffer OpenRegionRequest for a given entityGroup
   *
   * @param entityGroup
   *          the entityGroup to open
   * @return a protocol buffer OpenEntityGroupRequest
   */
  public static OpenEntityGroupRequest buildOpenEntityGroupRequest(
      final EntityGroupInfo entityGroup) {
    return buildOpenEntityGroupRequest(entityGroup, -1);
  }

  /**
   * Create a protocol buffer OpenEntityGroupRequest for a given entityGroup
   *
   * @param entityGroup
   *          the entityGroup to open
   * @param versionOfOfflineNode
   *          that needs to be present in the offline node
   * @return a protocol buffer OpenEntityGroupRequest
   */
  public static OpenEntityGroupRequest buildOpenEntityGroupRequest(
      final EntityGroupInfo entityGroup, final int versionOfOfflineNode) {
    OpenEntityGroupRequest.Builder builder = OpenEntityGroupRequest
        .newBuilder();
    builder.addEntityGroup(EntityGroupInfo.convert(entityGroup));
    if (versionOfOfflineNode >= 0) {
      builder.setVersionOfOfflineNode(versionOfOfflineNode);
    }
    return builder.build();
  }

  /**
   * Create a protocol buffer ExecuteRequest.
   *
   * @param sql
   * @param readModel
   * @return
   */
  public static ExecuteRequest buildExecuteRequest(String sql, ReadModel readModel, int fetchSize,
      String sessionId) {
    ExecuteRequest.Builder builder = ExecuteRequest.newBuilder();
    builder.setSql(sql);
    builder.setFetchSize(fetchSize);
    builder.setReadModel(ProtobufUtil.toReadModelProto(readModel));
    if (sessionId != null) {
      builder.setSessionId(sessionId);
    }
    return builder.build();
  }

  /**
   * Create a protocol buffer ExecuteRequest.
   *
   * @param sessionId
   * @param closeSession
   * @return
   */
  public static ExecuteRequest buildExecuteRequest(String sessionId,
      String sql, boolean closeSession) {
    ExecuteRequest.Builder builder = ExecuteRequest.newBuilder();
    builder.setSql(sql);
    builder.setSessionId(sessionId);
    builder.setCloseSession(closeSession);
    return builder.build();
  }

  public static ExecuteRequest buildExecuteRequest(List<String> sqls, String sessionId, boolean isTransaction) {
    ExecuteRequest.Builder builder = ExecuteRequest.newBuilder();
    if(sessionId != null) {
      builder.setSessionId(sessionId);
    }
    builder.setIsTransaction(isTransaction);
    if(sqls != null) {
      builder.addAllTransactionSql(sqls);
    }
    return builder.build();
  }

  /**
   * Create a protocol buffer GetOnlineEntityGroupsRequest.
   *
   * @return
   */
  public static GetOnlineEntityGroupsRequest buildGetOnlineEntityGroupsRequest() {
    GetOnlineEntityGroupsRequest.Builder builder = GetOnlineEntityGroupsRequest
        .newBuilder();
    return builder.build();
  }

  /**
   * Create a protocol buffer GetRegionInfoRequest for a given entityGroupName
   * name
   *
   * @param entityGroupName
   *          the name of the entityGroupName to get info
   * @return a protocol buffer GetRegionInfoRequest
   */
  public static GetEntityGroupInfoRequest buildGetEntityGroupInfoRequest(
      final byte[] entityGroupName) {
    return buildGetEntityGroupInfoRequest(entityGroupName, false);
  }

  /**
   * Create a protocol buffer GetRegionInfoRequest for a given entityGroup name
   *
   * @param entityGroupName
   *          the name of the entityGroup to get info
   * @param includeCompactionState
   *          indicate if the compaction state is requested
   * @return a protocol buffer GetRegionInfoRequest
   */
  public static GetEntityGroupInfoRequest buildGetEntityGroupInfoRequest(
      final byte[] entityGroupName, final boolean includeCompactionState) {
    GetEntityGroupInfoRequest.Builder builder = GetEntityGroupInfoRequest
        .newBuilder();
    EntityGroupSpecifier entityGroup = buildEntityGroupSpecifier(
        EntityGroupSpecifierType.ENTITYGROUP_NAME, entityGroupName);
    builder.setEntityGroup(entityGroup);
    return builder.build();
  }

  /**
   * Create CloseEncodedEntityGroupRequest for a given encode entityGroup name.
   *
   * @return
   */
  public static CloseEncodedEntityGroupRequest buildCloseEncodedEntityGroupRequest(
      final String encodedEntityGroupName, boolean zk) {
    CloseEncodedEntityGroupRequest.Builder builder = CloseEncodedEntityGroupRequest
        .newBuilder();
    builder.setEntityGroup(getEntityGroupSpecifier(Bytes
        .toBytes(encodedEntityGroupName)));
    builder.setZk(zk);
    return builder.build();
  }

  /**
   * Create a CloseEntityGroupRequest for a given entityGroup name
   *
   * @param egi
   *          the entityGroup info
   * @param transitionInZK
   *          indicator if to transition in ZK
   * @return a CloseEntityGroupRequest
   */
  public static CloseEntityGroupRequest buildCloseEntityGroupRequest(
      final EntityGroupInfo egi, final boolean transitionInZK) {
    CloseEntityGroupRequest.Builder builder = CloseEntityGroupRequest
        .newBuilder();
    builder.setEntityGroup(egi.convert());
    builder.setZk(transitionInZK);
    return builder.build();
  }

  /**
   * Create a CloseRegionRequest for a given entityGroup name
   *
   * @param egi
   *          the name of the entityGroup to close
   * @param versionOfClosingNode
   *          the version of znode to compare when FS transitions the znode from
   *          CLOSING state.
   * @return a CloseRegionRequest
   */
  public static CloseEntityGroupRequest buildCloseEntityGroupRequest(
      final EntityGroupInfo egi, final int versionOfClosingNode) {
    CloseEntityGroupRequest.Builder builder = CloseEntityGroupRequest
        .newBuilder();
    builder.setEntityGroup(egi.convert());
    builder.setVersionOfClosingNode(versionOfClosingNode);
    return builder.build();
  }

  public static CloseEntityGroupRequest buildCloseEntityGroupRequest(
      final EntityGroupInfo egi, final int versionOfClosingNode,
      final boolean transitionInZK) {
    CloseEntityGroupRequest.Builder builder = CloseEntityGroupRequest
        .newBuilder();
    builder.setEntityGroup(egi.convert());
    builder.setVersionOfClosingNode(versionOfClosingNode);
    builder.setZk(transitionInZK);
    return builder.build();
  }

  /**
   * Create a SplitRegionRequest for a given entityGroup name
   *
   * @param entityGroupName
   *          the name of the entityGroup to split
   * @param splitPoint
   *          the split point
   * @return a SplitRegionRequest
   */
  public static SplitEntityGroupRequest buildSplitEntityGroupRequest(
      final byte[] entityGroupName, final byte[] splitPoint) {
    SplitEntityGroupRequest.Builder builder = SplitEntityGroupRequest
        .newBuilder();
    EntityGroupSpecifier entityGroup = buildEntityGroupSpecifier(
        EntityGroupSpecifierType.ENTITYGROUP_NAME, entityGroupName);
    builder.setEntityGroup(entityGroup);
    if (splitPoint != null) {
      builder.setSplitPoint(ByteString.copyFrom(splitPoint));
    }
    return builder.build();
  }

  /**
   * Create a new GetServerInfoRequest
   *
   * @return a GetServerInfoRequest
   */
  public static GetServerInfoRequest buildGetServerInfoRequest() {
    GetServerInfoRequest.Builder builder = GetServerInfoRequest.newBuilder();
    return builder.build();
  }

  /**
   * Create a new StopServerRequest
   *
   * @param reason
   *          the reason to stop the server
   * @return a StopServerRequest
   */
  public static StopServerRequest buildStopServerRequest(final String reason) {
    StopServerRequest.Builder builder = StopServerRequest.newBuilder();
    builder.setReason(reason);
    return builder.build();
  }

  /**
   * Convert a byte array to a protocol buffer RegionSpecifier
   *
   * @param type
   *          the entityGroup specifier type
   * @param value
   *          the entityGroup specifier byte array value
   * @return a protocol buffer RegionSpecifier
   */
  public static EntityGroupSpecifier buildEntityGroupSpecifier(
      final EntityGroupSpecifierType type, final byte[] value) {
    EntityGroupSpecifier.Builder entityGroupBuilder = EntityGroupSpecifier
        .newBuilder();
    entityGroupBuilder.setValue(ByteString.copyFrom(value));
    entityGroupBuilder.setType(type);
    return entityGroupBuilder.build();
  }

  /**
   * Create a protocol buffer MoveRegionRequest
   *
   * @param encodedEntityGroupName
   * @param destServerName
   * @return A MoveRegionRequest
   * @throws com.alibaba.wasp.DeserializationException
   */
  public static MoveEntityGroupRequest buildMoveEntityGroupRequest(
      final byte[] encodedEntityGroupName, final byte[] destServerName) {
    MoveEntityGroupRequest.Builder builder = MoveEntityGroupRequest
        .newBuilder();
    builder.setEntityGroup(buildEntityGroupSpecifier(
        EntityGroupSpecifierType.ENCODED_ENTITYGROUP_NAME,
        encodedEntityGroupName));
    if (destServerName != null) {
      builder.setDestServerName(ProtobufUtil.toServerName(new ServerName(Bytes
          .toString(destServerName))));
    }
    return builder.build();
  }

  /**
   * Create a protocol buffer AssignRegionRequest
   *
   * @param entityGroupName
   * @return an AssignRegionRequest
   */
  public static AssignEntityGroupRequest buildAssignEntityGroupRequest(
      final byte[] entityGroupName) {
    AssignEntityGroupRequest.Builder builder = AssignEntityGroupRequest
        .newBuilder();
    builder.setEntityGroup(buildEntityGroupSpecifier(
        EntityGroupSpecifierType.ENTITYGROUP_NAME, entityGroupName));
    return builder.build();
  }

  /**
   * Creates a protocol buffer UnassignRegionRequest
   *
   * @param entityGroupName
   * @param force
   * @return an UnassignRegionRequest
   */
  public static UnassignEntityGroupRequest buildUnassignEntityGroupRequest(
      final byte[] entityGroupName, final boolean force) {
    UnassignEntityGroupRequest.Builder builder = UnassignEntityGroupRequest
        .newBuilder();
    builder.setEntityGroup(buildEntityGroupSpecifier(
        EntityGroupSpecifierType.ENTITYGROUP_NAME, entityGroupName));
    builder.setForce(force);
    return builder.build();
  }

  /**
   * Creates a protocol buffer OfflineRegionRequest
   *
   * @param entityGroupName
   * @return an OfflineRegionRequest
   */
  public static OfflineEntityGroupRequest buildOfflineEntityGroupRequest(
      final byte[] entityGroupName) {
    OfflineEntityGroupRequest.Builder builder = OfflineEntityGroupRequest
        .newBuilder();
    builder.setEntityGroup(buildEntityGroupSpecifier(
        EntityGroupSpecifierType.ENTITYGROUP_NAME, entityGroupName));
    return builder.build();
  }

  /**
   * Creates a protocol buffer DeleteTableRequest
   *
   * @param tableName
   * @return a DeleteTableRequest
   */
  public static DeleteTableRequest buildDeleteTableRequest(
      final byte[] tableName) {
    DeleteTableRequest.Builder builder = DeleteTableRequest.newBuilder();
    builder.setTableName(ByteString.copyFrom(tableName));
    return builder.build();
  }

  /**
   * Creates a protocol buffer TruncateTableRequest
   *
   * @param tableName
   * @return a TruncateTableRequest
   */
  public static TruncateTableRequest buildTruncateTableRequest(
      final byte[] tableName) {
    TruncateTableRequest.Builder builder = TruncateTableRequest.newBuilder();
    builder.setTableName(ByteString.copyFrom(tableName));
    return builder.build();
  }

  /**
   * Creates a protocol buffer EnableTableRequest
   *
   * @param tableName
   * @return an EnableTableRequest
   */
  public static EnableTableRequest buildEnableTableRequest(
      final byte[] tableName) {
    EnableTableRequest.Builder builder = EnableTableRequest.newBuilder();
    builder.setTableName(ByteString.copyFrom(tableName));
    return builder.build();
  }

  /**
   * Creates a protocol buffer DisableTableRequest
   *
   * @param tableName
   * @return a DisableTableRequest
   */
  public static com.alibaba.wasp.protobuf.generated.MasterAdminProtos.DisableTableRequest buildMasterDisableTableRequest(
      final byte[] tableName) {
    com.alibaba.wasp.protobuf.generated.MasterAdminProtos.DisableTableRequest.Builder builder = com.alibaba.wasp.protobuf.generated.MasterAdminProtos.DisableTableRequest
        .newBuilder();
    builder.setTableName(ByteString.copyFrom(tableName));
    return builder.build();
  }

  /**
   * Creates a protocol buffer DisableTableRequest
   *
   * @param tableName
   * @return a DisableTableRequest
   */
  public static com.alibaba.wasp.protobuf.generated.FServerAdminProtos.DisableTableRequest buildServerDisableTableRequest(
      final String tableName) {
    com.alibaba.wasp.protobuf.generated.FServerAdminProtos.DisableTableRequest.Builder builder = com.alibaba.wasp.protobuf.generated.FServerAdminProtos.DisableTableRequest
        .newBuilder();
    builder.setTableName(tableName);
    return builder.build();
  }

  /**
   * Creates a protocol buffer EnableTableRequest
   *
   * @param tableName
   * @return a DisableTableRequest
   */
  public static com.alibaba.wasp.protobuf.generated.FServerAdminProtos.EnableTableRequest buildServerEnableTableRequest(
      final String tableName) {
    com.alibaba.wasp.protobuf.generated.FServerAdminProtos.EnableTableRequest.Builder builder = com.alibaba.wasp.protobuf.generated.FServerAdminProtos.EnableTableRequest
        .newBuilder();
    builder.setTableName(tableName);
    return builder.build();
  }

  /**
   * Creates a protocol buffer CreateTableRequest
   *
   * @param hTableDesc
   * @param splitKeys
   * @return a CreateTableRequest
   * @throws com.google.protobuf.ServiceException
   * @throws com.alibaba.wasp.MetaException
   */
  public static CreateTableRequest buildCreateTableRequest(
      final FTable hTableDesc, final byte[][] splitKeys)
      throws ServiceException {
    CreateTableRequest.Builder builder = CreateTableRequest.newBuilder();
    try {
      builder.setTableSchema(hTableDesc.convert());
    } catch (MetaException e) {
      throw new ServiceException(e);
    }
    if (splitKeys != null) {
      for (byte[] splitKey : splitKeys) {
        builder.addSplitKeys(ByteString.copyFrom(splitKey));
      }
    }
    return builder.build();
  }

  /**
   * Creates a protocol buffer CreateTableRequest
   *
   * @param tableName
   * @return a CreateTableRequest
   * @throws com.google.protobuf.ServiceException
   * @throws com.alibaba.wasp.MetaException
   */
  public static FetchEntityGroupSizeRequest buildFetchEntityGroupSizeRequest(
      final byte[] tableName) throws ServiceException {
    FetchEntityGroupSizeRequest.Builder builder = FetchEntityGroupSizeRequest
        .newBuilder();
    builder.setTableName(ByteString.copyFrom(tableName));
    return builder.build();
  }

  /**
   * Creates a protocol buffer CreateIndexRequest
   *
   * @param index
   * @return a CreateIndexRequest
   *
   */
  public static CreateIndexRequest buildCreateIndexRequest(Index index)
      throws ServiceException {
    CreateIndexRequest.Builder builder = CreateIndexRequest.newBuilder();
    builder.setIndexSchema(index.convert());
    return builder.build();
  }

  /**
   * Creates a protocol buffer DropIndexRequest
   *
   * @param indexName
   * @return a CreateIndexRequest
   *
   */
  public static DropIndexRequest buildDropIndexRequest(String tableName,
      String indexName) throws ServiceException {
    DropIndexRequest.Builder builder = DropIndexRequest.newBuilder();
    builder.setIndexName(indexName);
    builder.setTableName(tableName);
    return builder.build();
  }

  /**
   * Creates a protocol buffer ModifyTableRequest
   *
   * @param table
   * @param hTableDesc
   * @return a ModifyTableRequest
   * @throws com.google.protobuf.ServiceException
   */
  public static ModifyTableRequest buildModifyTableRequest(final byte[] table,
      final FTable hTableDesc) throws ServiceException {
    ModifyTableRequest.Builder builder = ModifyTableRequest.newBuilder();
    builder.setTableName(ByteString.copyFrom(table));
    try {
      builder.setTableSchema(hTableDesc.convert());
    } catch (MetaException e) {
      throw new ServiceException(e);
    }
    return builder.build();
  }

  /**
   * Creates a protocol buffer GetSchemaAlterStatusRequest
   *
   * @param table
   * @return a GetSchemaAlterStatusRequest
   */
  public static GetSchemaAlterStatusRequest buildGetSchemaAlterStatusRequest(
      final byte[] table) {
    GetSchemaAlterStatusRequest.Builder builder = GetSchemaAlterStatusRequest
        .newBuilder();
    builder.setTableName(ByteString.copyFrom(table));
    return builder.build();
  }

  /**
   * Creates a protocol buffer GetTableDescriptorsRequest
   *
   * @param tableNames
   * @return a GetTableDescriptorsRequest
   */
  public static GetTableDescriptorsRequest buildGetTableDescriptorsRequest(
      final List<String> tableNames) {
    GetTableDescriptorsRequest.Builder builder = GetTableDescriptorsRequest
        .newBuilder();
    if (tableNames != null) {
      for (String str : tableNames) {
        builder.addTableNames(str);
      }
    }
    return builder.build();
  }

  /**
   * Creates a protocol buffer IsMasterRunningRequest
   *
   * @return a IsMasterRunningRequest
   */
  public static IsMasterRunningRequest buildIsMasterRunningRequest() {
    return IsMasterRunningRequest.newBuilder().build();
  }

  /**
   * Creates a protocol buffer BalanceRequest
   *
   * @return a BalanceRequest
   */
  public static BalanceRequest buildBalanceRequest() {
    return BalanceRequest.newBuilder().build();
  }

  /**
   * Creates a protocol buffer SetBalancerRunningRequest
   *
   * @param on
   * @param synchronous
   * @return a SetBalancerRunningRequest
   */
  public static SetBalancerRunningRequest buildSetBalancerRunningRequest(
      boolean on, boolean synchronous) {
    return SetBalancerRunningRequest.newBuilder().setOn(on)
        .setSynchronous(synchronous).build();
  }

  /**
   * Creates a protocol buffer GetClusterStatusRequest
   *
   * @return A GetClusterStatusRequest
   */
  public static GetClusterStatusRequest buildGetClusterStatusRequest() {
    return GetClusterStatusRequest.newBuilder().build();
  }

  /**
   * Creates a protocol buffer UpdateRequest.
   *
   * @param action
   * @return
   */
  public static UpdateRequest buildUpdateRequest(UpdateAction action) {
    UpdateRequest.Builder builder = UpdateRequest.newBuilder();
    builder.setEntityGroup(getEntityGroupSpecifier(action
        .getEntityGroupLocation().getEntityGroupInfo()));
    builder.setUpdateAction(ProtobufUtil.convertUpdateAction(action)
        .getUpdate());
    return builder.build();
  }

  /**
   *
   * @param encodedEntityGroupName
   * @return
   */
  public static EntityGroupSpecifier getEntityGroupSpecifier(
      byte[] encodedEntityGroupName) {
    EntityGroupSpecifier.Builder builder = EntityGroupSpecifier.newBuilder();
    builder.setValue(ByteString.copyFrom(encodedEntityGroupName));
    builder
        .setType(EntityGroupSpecifier.EntityGroupSpecifierType.ENCODED_ENTITYGROUP_NAME);
    return builder.build();
  }

  /**
   *
   * @param entityGroupInfo
   * @return
   */
  public static EntityGroupSpecifier getEntityGroupSpecifier(
      EntityGroupInfo entityGroupInfo) {
    EntityGroupSpecifier.Builder builder = EntityGroupSpecifier.newBuilder();
    builder.setValue(ByteString.copyFrom(entityGroupInfo.getEntityGroupName()));
    builder
        .setType(EntityGroupSpecifier.EntityGroupSpecifierType.ENTITYGROUP_NAME);
    return builder.build();
  }

  /**
   * Creates a protocol buffer ScanRequest.
   *
   * @param scanAction
   * @param scanId
   * @param closeScanner
   * @return
   */
  public static ScanRequest buildScanRequest(ScanAction scanAction,
      long scanId, boolean closeScanner) {
    ScanRequest.Builder builder = ScanRequest.newBuilder();
    builder.setEntityGroup(getEntityGroupSpecifier(scanAction
        .getEntityGroupLocation().getEntityGroupInfo()));
    builder.setScannerId(scanId);
    builder.setCloseScanner(closeScanner);
    builder.setScanAction(ProtobufUtil.convertScanAction(scanAction));
    return builder.build();
  }

  /**
   * Creates a protocol buffer InsertRequest.
   *
   * @param action
   * @return
   */
  public static InsertRequest buildInsertRequest(InsertAction action) {
    InsertRequest.Builder builder = InsertRequest.newBuilder();
    builder.setEntityGroup(getEntityGroupSpecifier(action
        .getEntityGroupLocation().getEntityGroupInfo()));
    builder.setInsertAction(ProtobufUtil.convertInsertAction(action)
        .getInsert());
    return builder.build();
  }

  /**
   * Creates a protocol buffer InsertRequest.
   *
   * @param action
   * @return
   */
  public static TransactionRequest buildTransactionRequest(TransactionAction action) {
    TransactionRequest.Builder builder = TransactionRequest.newBuilder();
    builder.setEntityGroup(getEntityGroupSpecifier(action
        .getEntityGroupLocation().getEntityGroupInfo()));
    builder.setTransactionAction(ProtobufUtil.convertTransactionAction(action)
        .getTransaction());
    return builder.build();
  }

  /**
   * Creates a protocol buffer DeleteRequest.
   *
   * @param action
   * @return
   */
  public static DeleteRequest buildDeleteRequest(DeleteAction action) {
    DeleteRequest.Builder builder = DeleteRequest.newBuilder();
    builder.setEntityGroup(getEntityGroupSpecifier(action
        .getEntityGroupLocation().getEntityGroupInfo()));
    builder.setDeleteAction(ProtobufUtil.convertDeleteAction(action)
        .getDelete());
    return builder.build();
  }

  /**
   * Creates a protocol buffer FServerReportRequest.
   *
   * @param sl
   *          WaspProtos.ServerLoadProtos
   * @param sn
   *          WaspProtos.ServerName
   * @return
   */
  public static FServerReportRequest buildFServerReportRequest(
      WaspProtos.ServerLoadProtos sl, WaspProtos.ServerName sn) {
    FServerReportRequest.Builder request = FServerReportRequest.newBuilder();
    request.setServer(sn);
    request.setLoad(sl);
    return request.build();
  }

  public static GetRequest buildGetRequest(GetAction action) {
    GetRequest.Builder builder = GetRequest.newBuilder();
    builder.setEntityGroup(getEntityGroupSpecifier(action
        .getEntityGroupLocation().getEntityGroupInfo()));
    builder.setGet(ProtobufUtil.convertGetAction(action));
    return builder.build();
  }

  public static GetEntityGroupRequest buildGetEntityGroupRequest(
      final byte[] entityGroupName) {
    GetEntityGroupRequest.Builder builder = GetEntityGroupRequest.newBuilder();
    builder.setEntityGroupName(ByteString.copyFrom(entityGroupName));
    return builder.build();
  }

  public static GetEntityGroupWithScanRequest buildGetEntityGroupWithScanRequest(
      final byte[] entityGroupName) {
    GetEntityGroupWithScanRequest.Builder builder = GetEntityGroupWithScanRequest
        .newBuilder();
    builder.setTableNameOrEntityGroupName(ByteString.copyFrom(entityGroupName));
    return builder.build();
  }

  public static GetEntityGroupsRequest buildGetEntityGroupsRequest(
      final byte[] tableName) {
    GetEntityGroupsRequest.Builder builder = GetEntityGroupsRequest
        .newBuilder();
    builder.setTableName(ByteString.copyFrom(tableName));
    return builder.build();
  }

  public static GetTableEntityGroupsRequest buildGetTableEntityGroupsRequest(
      final byte[] tableName) {
    GetTableEntityGroupsRequest.Builder builder = GetTableEntityGroupsRequest
        .newBuilder();
    builder.setTableName(ByteString.copyFrom(tableName));
    return builder.build();
  }

  public static TableExistsRequest buildTableExistsRequest(
      final byte[] tableName) {
    TableExistsRequest.Builder builder = TableExistsRequest.newBuilder();
    builder.setTableName(ByteString.copyFrom(tableName));
    return builder.build();
  }

  public static IsTableAvailableRequest buildIsTableAvailableRequest(
      final byte[] tableName) {
    IsTableAvailableRequest.Builder builder = IsTableAvailableRequest
        .newBuilder();
    builder.setTableName(ByteString.copyFrom(tableName));
    return builder.build();
  }

  public static IsTableLockedRequest buildIsTableLockedRequest(
      final byte[] tableName) {
    IsTableLockedRequest.Builder builder = IsTableLockedRequest.newBuilder();
    builder.setTableName(ByteString.copyFrom(tableName));
    return builder.build();
  }

  public static UnlockTableRequest buildUnlockTableRequest(final byte[] tableName) {
    UnlockTableRequest.Builder builder = UnlockTableRequest.newBuilder();
    builder.setTableName(ByteString.copyFrom(tableName));
    return builder.build();
  }

  public static SetTableStateRequest buildSetTableStateRequest(final byte[] tableName,
      final byte[] state) {
    SetTableStateRequest.Builder builder = SetTableStateRequest.newBuilder();
    builder.setTableName(ByteString.copyFrom(tableName));
    builder.setState(ByteString.copyFrom(state));
    return builder.build();
  }

}
TOP

Related Classes of com.alibaba.wasp.protobuf.RequestConverter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.