Package com.tubeonfire.model.admin

Source Code of com.tubeonfire.model.admin.SiteConfigModel

package com.tubeonfire.model.admin;

import java.util.Collections;

import javax.cache.Cache;
import javax.cache.CacheException;
import javax.cache.CacheManager;

import com.googlecode.objectify.Objectify;
import com.googlecode.objectify.ObjectifyOpts;
import com.googlecode.objectify.ObjectifyService;
import com.tubeonfire.entity.SiteConfig;
import com.tubeonfire.util.IdUniqueHelper;

public class SiteConfigModel {
  private static Objectify ofy;

  private static boolean isRegisted = false;

  private static ObjectifyOpts opts = null;

  private static Cache cache = null;

  private static String cachePrefix = "SiteConfig";

  public static void init() {
    if (!isRegisted) {
      isRegisted = true;
      try {
        ObjectifyService.register(SiteConfig.class);
      } catch (Exception e) {
        isRegisted = false;
      }
      try {
        cache = CacheManager.getInstance().getCacheFactory()
            .createCache(Collections.emptyMap());
      } catch (CacheException e) {
        isRegisted = false;
      }
      opts = new ObjectifyOpts().setSessionCache(true);
    }
    ofy = ObjectifyService.begin(opts);
  }

  public SiteConfigModel() {
    init();
  }

  @SuppressWarnings("unchecked")
  public static void insert(SiteConfig obj) {
    init();
    if (cache != null) {
      cache.put(cachePrefix, obj);
    }
    ofy.put(obj);
  }

  public static void delete(SiteConfig obj) {
    init();
    if (cache != null && cache.containsKey(cachePrefix)) {
      cache.remove(cachePrefix);
    }
    ofy.delete(obj);
  }

  @SuppressWarnings("unchecked")
  public static SiteConfig get() {
    init();
    try {
      boolean cached = false;
      SiteConfig obj = new SiteConfig();
      if (cache != null) {
        try {
          obj = (SiteConfig) cache.get(cachePrefix);
          if (obj != null)
            cached = true;
        } catch (Exception e) {
          cached = false;
        }
      }
      if (!cached) {
        try {
          obj = (SiteConfig) ofy.query(SiteConfig.class).get();
          if (obj == null) {
            obj = new SiteConfig();
            obj.setId(IdUniqueHelper.getId());
            insert(obj);
          }
          cache.put(cachePrefix, obj);
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
      return obj;
    } catch (Exception e) {
      e.printStackTrace();
      return new SiteConfig();
    }
  }
}
TOP

Related Classes of com.tubeonfire.model.admin.SiteConfigModel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.