content: /*
   * Copyright 1999-2018 Alibaba Group Holding Ltd.
   *
   * 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 com.alibaba.nacos.config.server.model;
  
  import com.alibaba.nacos.config.server.constant.Constants;
  import com.alibaba.nacos.config.server.utils.SimpleReadWriteLock;
  import com.alibaba.nacos.config.server.utils.SingletonRepository.DataIdGroupIdCache;
  
  import java.util.List;
  import java.util.Map;
  
  /**
   * cache item
   *
   * @author Nacos
   */
  public class CacheItem {
  
      public CacheItem(String groupKey) {
          this.groupKey = DataIdGroupIdCache.getSingleton(groupKey);
      }
  
      public String getMd5() {
          return md5;
      }
  
      public void setMd5(String md5) {
          this.md5 = md5;
      }
  
      public long getLastModifiedTs() {
          return lastModifiedTs;
      }
  
      public void setLastModifiedTs(long lastModifiedTs) {
          this.lastModifiedTs = lastModifiedTs;
      }
  
      public boolean isBeta() {
          return isBeta;
      }
  
      public void setBeta(boolean isBeta) {
          this.isBeta = isBeta;
      }
  
      public String getMd54Beta() {
          return md54Beta;
      }
  
      public void setMd54Beta(String md54Beta) {
          this.md54Beta = md54Beta;
      }
  
      public List<String> getIps4Beta() {
          return ips4Beta;
      }
  
      public void setIps4Beta(List<String> ips4Beta) {
          this.ips4Beta = ips4Beta;
      }
  
      public long getLastModifiedTs4Beta() {
          return lastModifiedTs4Beta;
      }
  
      public void setLastModifiedTs4Beta(long lastModifiedTs4Beta) {
          this.lastModifiedTs4Beta = lastModifiedTs4Beta;
      }
  
      public SimpleReadWriteLock getRwLock() {
          return rwLock;
      }
  
      public void setRwLock(SimpleReadWriteLock rwLock) {
          this.rwLock = rwLock;
      }
  
      public String getGroupKey() {
          return groupKey;
      }
  
      public Map<String, String> getTagMd5() {
          return tagMd5;
      }
  
      public Map<String, Long> getTagLastModifiedTs() {
          return tagLastModifiedTs;
      }
  
      public void setTagMd5(Map<String, String> tagMd5) {
          this.tagMd5 = tagMd5;
      }
  
      public void setTagLastModifiedTs(Map<String, Long> tagLastModifiedTs) {
          this.tagLastModifiedTs = tagLastModifiedTs;
      }
  
      final String groupKey;
      public volatile String md5 = Constants.NULL;
      public volatile long lastModifiedTs;
  
      /**
       * use for beta
       */
      public volatile boolean isBeta = false;
      public volatile String md54Beta = Constants.NULL;
      public volatile List<String> ips4Beta;
      public volatile long lastModifiedTs4Beta;
      public volatile Map<String, String> tagMd5;
      public volatile Map<String, Long> tagLastModifiedTs;
      public SimpleReadWriteLock rwLock = new SimpleReadWriteLock();
  
  }
  