org.ehcache.clustered.client.config.builders.ClusteredResourcePoolBuilder Maven / Gradle / Ivy
/*
* Copyright Terracotta, Inc.
*
* Licensed 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 org.ehcache.clustered.client.config.builders;
import org.ehcache.clustered.client.config.SharedClusteredResourcePool;
import org.ehcache.clustered.client.config.ClusteredResourcePool;
import org.ehcache.clustered.client.internal.config.DedicatedClusteredResourcePoolImpl;
import org.ehcache.clustered.client.internal.config.SharedClusteredResourcePoolImpl;
import org.ehcache.clustered.client.internal.config.ClusteredResourcePoolImpl;
import org.ehcache.config.units.MemoryUnit;
import org.ehcache.clustered.client.config.DedicatedClusteredResourcePool;
/**
* Constructs a {@link org.ehcache.config.ResourcePool ResourcePool} for a clustered resource.
*/
public final class ClusteredResourcePoolBuilder {
/** Private, niladic constructor to prevent instantiation. */
private ClusteredResourcePoolBuilder() {
}
/**
* Creates a new clustered resource pool using dedicated clustered resources.
*
* @param size the size
* @param unit the unit for the size
*/
public static DedicatedClusteredResourcePool clusteredDedicated(long size, MemoryUnit unit) {
return new DedicatedClusteredResourcePoolImpl(null, size, unit);
}
/**
* Creates a new clustered resource pool using dedicated clustered resources.
*
* @param fromResource the name of the server-based resource from which this dedicated resource pool
is reserved; may be {@code null}
* @param size the size
* @param unit the unit for the size
*/
public static DedicatedClusteredResourcePool clusteredDedicated(String fromResource, long size, MemoryUnit unit) {
return new DedicatedClusteredResourcePoolImpl(fromResource, size, unit);
}
/**
* Creates a new resource pool based on the provided parameters.
*
* @param sharedResource the non-{@code null} name of the server-based resource pool whose space is shared
* by this pool
*/
public static SharedClusteredResourcePool clusteredShared(String sharedResource) {
return new SharedClusteredResourcePoolImpl(sharedResource);
}
/**
* Creates a resource pool that inherits the resources already configured on the server.
*/
public static ClusteredResourcePool clustered() {
return new ClusteredResourcePoolImpl();
}
}