PageRenderTime 5ms CodeModel.GetById 1ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/hazelcast/src/main/java/com/hazelcast/merge/LatestUpdateMergePolicy.java

https://bitbucket.org/gabral6_gmailcom/hazelcast
Java | 36 lines | 16 code | 5 blank | 15 comment | 3 complexity | 650dd9020ba8358c92a7a729244cc901 MD5 | raw file
 1/*
 2 * Copyright (c) 2008-2013, Hazelcast, Inc. All Rights Reserved.
 3 *
 4 * Licensed under the Apache License, Version 2.0 (the "License");
 5 * you may not use this file except in compliance with the License.
 6 * You may obtain a copy of the License at
 7 *
 8 * http://www.apache.org/licenses/LICENSE-2.0
 9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.hazelcast.merge;
18
19import com.hazelcast.core.MapEntry;
20import com.hazelcast.impl.base.DataRecordEntry;
21
22public class LatestUpdateMergePolicy implements MergePolicy {
23    public static final String NAME = "hz.LATEST_UPDATE";
24
25    public Object merge(String mapName, MapEntry mergingEntry, MapEntry existingEntry) {
26        DataRecordEntry mergingDataEntry = (DataRecordEntry) mergingEntry;
27        DataRecordEntry existingDataEntry = (DataRecordEntry) existingEntry;
28        if (existingEntry == null || !existingDataEntry.hasValue()) {
29            return mergingDataEntry.getValueData();
30        }
31        return (mergingEntry.getLastUpdateTime() > existingEntry.getLastUpdateTime())
32                ? mergingDataEntry.getValueData()
33                : existingDataEntry.getValueData();
34    }
35}
36