package org.infinispan.partitionhandling.impl; import java.util.Collection; import java.util.Collections; import java.util.List; import org.infinispan.commands.write.WriteCommand; import org.infinispan.container.versioning.EntryVersionsMap; import org.infinispan.partitionhandling.AvailabilityMode; import org.infinispan.remoting.transport.Address; import org.infinispan.topology.CacheTopology; import org.infinispan.transaction.xa.GlobalTransaction; /** * {@link PartitionHandlingManager} implementation when the cluster is always available. * * @author Pedro Ruivo * @since 8.0 */ public class AvailablePartitionHandlingManager implements PartitionHandlingManager { private AvailablePartitionHandlingManager() { } public static AvailablePartitionHandlingManager getInstance() { return SingletonHolder.INSTANCE; } @Override public AvailabilityMode getAvailabilityMode() { return AvailabilityMode.AVAILABLE; } @Override public void setAvailabilityMode(AvailabilityMode availabilityMode) {/*no-op*/} @Override public void checkWrite(Object key) {/*no-op*/} @Override public void checkRead(Object key) {/*no-op*/} @Override public void checkClear() {/*no-op*/} @Override public void checkBulkRead() {/*no-op*/} @Override public CacheTopology getLastStableTopology() { return null; } @Override public boolean addPartialRollbackTransaction(GlobalTransaction globalTransaction, Collection<Address> affectedNodes, Collection<Object> lockedKeys) { return false; } @Override public boolean addPartialCommit2PCTransaction(GlobalTransaction globalTransaction, Collection<Address> affectedNodes, Collection<Object> lockedKeys, EntryVersionsMap newVersions) { return false; } @Override public boolean addPartialCommit1PCTransaction(GlobalTransaction globalTransaction, Collection<Address> affectedNodes, Collection<Object> lockedKeys, List<WriteCommand> modifications) { return false; } @Override public boolean isTransactionPartiallyCommitted(GlobalTransaction globalTransaction) { return false; } @Override public Collection<GlobalTransaction> getPartialTransactions() { return Collections.emptyList(); } @Override public boolean canRollbackTransactionAfterOriginatorLeave(GlobalTransaction globalTransaction) { return true; } @Override public void onTopologyUpdate(CacheTopology cacheTopology) {/*no-op*/} private static class SingletonHolder { private static final AvailablePartitionHandlingManager INSTANCE = new AvailablePartitionHandlingManager(); } }