class InternalRegionFactory extends RegionFactory<K, V> {

  @Override
  public Region<K, V> create(String name)
      throws CacheExistsException, RegionExistsException, CacheWriterException, TimeoutException {
    if (internalRegionArguments == null) {
      return super.create(name);
    }
    try {
      return getCache().createVMRegion(name, getRegionAttributes(), internalRegionArguments);
    } catch (IOException | ClassNotFoundException e) {
      throw new InternalGemFireError("unexpected exception", e);
    }
  }

  public  InternalRegionFactory(InternalCache cache);
  public  InternalRegionFactory(InternalCache cache, RegionShortcut pra);
  public  InternalRegionFactory(InternalCache cache, RegionAttributes<K, V> ra);
  public  InternalRegionFactory(InternalCache cache, String regionAttributesId);
  public  InternalRegionFactory(RegionFactory<K, V> regionFactory);

}