blob: c72d2e40e829076fb93ccd47fc292aa67953ffe6 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.apache.ignite.client;
import java.util.Arrays;
import java.util.Objects;
import org.apache.ignite.cache.CacheKeyConfiguration;
import org.apache.ignite.configuration.ClientConfiguration;
import org.apache.ignite.internal.util.typedef.F;
/** */
public final class Comparers {
/** Cannot instantiate. */
private Comparers() {}
/** */
public static boolean equal(ClientConfiguration a, Object o) {
if (!(o instanceof ClientConfiguration))
return false;
ClientConfiguration b = (ClientConfiguration)o;
return Arrays.equals(a.getAddresses(), b.getAddresses()) &&
a.isTcpNoDelay() == b.isTcpNoDelay() &&
a.getTimeout() == b.getTimeout() &&
a.getSendBufferSize() == b.getSendBufferSize() &&
a.getReceiveBufferSize() == b.getReceiveBufferSize();
}
/** */
public static boolean equal(ClientCacheConfiguration a, Object o) {
if (!(o instanceof ClientCacheConfiguration))
return false;
ClientCacheConfiguration b = (ClientCacheConfiguration)o;
return Objects.equals(a.getName(), b.getName()) &&
a.getAtomicityMode() == b.getAtomicityMode() &&
a.getBackups() == b.getBackups() &&
a.getCacheMode() == b.getCacheMode() &&
a.isEagerTtl() == b.isEagerTtl() &&
Objects.equals(a.getGroupName(), b.getGroupName()) &&
a.getDefaultLockTimeout() == b.getDefaultLockTimeout() &&
a.getPartitionLossPolicy() == b.getPartitionLossPolicy() &&
a.isReadFromBackup() == b.isReadFromBackup() &&
a.getRebalanceBatchSize() == b.getRebalanceBatchSize() &&
a.getRebalanceBatchesPrefetchCount() == b.getRebalanceBatchesPrefetchCount() &&
a.getRebalanceDelay() == b.getRebalanceDelay() &&
a.getRebalanceMode() == b.getRebalanceMode() &&
a.getRebalanceOrder() == b.getRebalanceOrder() &&
a.getRebalanceThrottle() == b.getRebalanceThrottle() &&
a.getWriteSynchronizationMode() == b.getWriteSynchronizationMode() &&
a.isCopyOnRead() == b.isCopyOnRead() &&
Objects.equals(a.getDataRegionName(), b.getDataRegionName()) &&
a.isStatisticsEnabled() == b.isStatisticsEnabled() &&
a.getMaxConcurrentAsyncOperations() == b.getMaxConcurrentAsyncOperations() &&
a.getMaxQueryIteratorsCount() == b.getMaxQueryIteratorsCount() &&
a.isOnheapCacheEnabled() == b.isOnheapCacheEnabled() &&
a.getQueryDetailMetricsSize() == b.getQueryDetailMetricsSize() &&
a.getQueryParallelism() == b.getQueryParallelism() &&
a.isSqlEscapeAll() == b.isSqlEscapeAll() &&
a.getSqlIndexMaxInlineSize() == b.getSqlIndexMaxInlineSize() &&
Objects.equals(a.getSqlSchema(), b.getSqlSchema()) &&
equalKeyConfiguration(a.getKeyConfiguration(), b.getKeyConfiguration()) &&
Arrays.equals(a.getQueryEntities(), b.getQueryEntities());
}
/**
* Check whether cache key configurations are equal..
*
* @param cfgs1 Config 1.
* @param cfgs2 Config 2.
* @return {@code True} if equal.
*/
public static boolean equalKeyConfiguration(CacheKeyConfiguration[] cfgs1, CacheKeyConfiguration[] cfgs2) {
if (cfgs1 == null && cfgs2 == null)
return true;
if (cfgs1 == null || cfgs2 == null)
return false;
if (cfgs1.length != cfgs2.length)
return false;
for (int i = 0; i < cfgs1.length; i++) {
CacheKeyConfiguration cfg1 = cfgs1[i];
CacheKeyConfiguration cfg2 = cfgs2[i];
if (!F.eq(cfg1.getTypeName(), cfg2.getTypeName()) ||
!F.eq(cfg1.getAffinityKeyFieldName(), cfg2.getAffinityKeyFieldName()))
return false;
}
return true;
}
}