protected OidHashTable createObjectCache(String kind, long pagePoolSize,
			int objectCacheSize) {
		if ("strong".equals(kind)) {
			return new StrongHashTable(this, objectCacheSize);
		}

		if ("soft".equals(kind)) {
			return new SoftHashTable(this, objectCacheSize);
		}

		if ("weak".equals(kind)) {
			return new WeakHashTable(this, objectCacheSize);
		}

		if ("pinned".equals(kind)) {
			return new PinWeakHashTable(this, objectCacheSize);
		}

		if ("lru".equals(kind)) {
			return new LruObjectCache(this, objectCacheSize);
		}

		return pagePoolSize == INFINITE_PAGE_POOL ? (OidHashTable) new StrongHashTable(
				this, objectCacheSize) : (OidHashTable) new LruObjectCache(
				this, objectCacheSize);
	}