public static HARegionQueue getHARegionQueueInstance(String regionName, InternalCache cache,
      HARegionQueueAttributes hrqa,
      final int haRgnQType,
      final boolean isDurable, Map haContainer,
      ClientProxyMembershipID clientProxyId,
      final byte clientConflation,
      boolean isPrimary,
      boolean canHandleDelta,
      StatisticsClock statisticsClock)
      throws IOException, ClassNotFoundException, CacheException, InterruptedException {

    HARegionQueue hrq;
    switch (haRgnQType) {
      case BLOCKING_HA_QUEUE:
        if (!isDurable && !canHandleDelta) {
          hrq = new BlockingHARegionQueue(regionName, cache, hrqa, haContainer, clientProxyId,
              clientConflation, isPrimary, statisticsClock);
        } else {
          hrq = new DurableHARegionQueue(regionName, cache, hrqa, haContainer, clientProxyId,
              clientConflation, isPrimary, statisticsClock);
        }
        break;
      case NON_BLOCKING_HA_QUEUE:
        hrq = new HARegionQueue(regionName, cache, haContainer, clientProxyId, clientConflation,
            isPrimary, statisticsClock);
        break;
      default:
        throw new IllegalArgumentException(
            String.format("haRgnQType can either be BLOCKING ( %s ) or NON BLOCKING ( %s )",
                BLOCKING_HA_QUEUE, NON_BLOCKING_HA_QUEUE));
    }
    if (!isDurable) {
      Optional<Integer> expiryTime =
          getProductIntegerProperty(HA_REGION_QUEUE_EXPIRY_TIME_PROPERTY);
      hrqa.setExpiryTime(expiryTime.orElseGet(hrqa::getExpiryTime));
      ExpirationAttributes ea =
          new ExpirationAttributes(hrqa.getExpiryTime(), ExpirationAction.LOCAL_INVALIDATE);
      hrq.region.getAttributesMutator().setEntryTimeToLive(ea);
    }
    return hrq;
  }
Creates a HARegionQueue object with default attributes

@param regionName uniquely identifies the HARegionQueue in the VM.For HARegionQueues across the
       VM to communicate with each other , the name should be identical
@param cache Gemfire Cache instance
@param hrqa HARegionQueueAttribute instance used for configuring the HARegionQueue
@param haRgnQType int identifying whether the HARegionQueue is of type blocking or non blocking
@param isPrimary whether this is the primary queue for the client
@param canHandleDelta boolean indicating whether the HARegionQueue can handle delta or not
@return an instance of HARegionQueue
geode-core/src/main/java/org/apache/geode/internal/cache/ha/HARegionQueue.java