@Override
        public boolean equals(final Object o) {
            if (this == o) {
                return true;
            }

            if (o == null || getClass() != o.getClass()) {
                return false;
            }

            final CacheKey cacheKey = (CacheKey)o;
            if (destClass != null ? !destClass.equals(cacheKey.destClass) : cacheKey.destClass != null) {
                return false;
            }

            if (srcClass != null ? !srcClass.equals(cacheKey.srcClass) : cacheKey.srcClass != null) {
                return false;
            }

            return mapId != null ? mapId.equals(cacheKey.mapId) : cacheKey.mapId == null;
        }
Create a key based on destination and source class types
@param destClass destination class being mapped
@param srcClass source class being mapped
@param mapId map id being used by mapping
@return created key
core/src/main/java/com/github/dozermapper/core/cache/CacheKeyFactory.java