Package com.cxy.redisclient.service

Source Code of com.cxy.redisclient.service.FavoriteService

package com.cxy.redisclient.service;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.cxy.redisclient.domain.Favorite;
import com.cxy.redisclient.integration.ConfigFile;

public class FavoriteService {
  public int add(int id, String name, String favorite) {
    try {
      int fid = Integer.parseInt(ConfigFile
          .readMaxId(ConfigFile.FAVORITE_MAXID)) + 1;
      ConfigFile.write(ConfigFile.FAVORITE + fid, favorite);
      ConfigFile.write(ConfigFile.FAVORITE_NAME + fid, name);
      ConfigFile.write(ConfigFile.FAVORITE_SERVER + fid,
          String.valueOf(id));

     
      ConfigFile.write(ConfigFile.FAVORITE_MAXID, String.valueOf(fid));

      return fid;
    } catch (IOException e) {
      throw new RuntimeException(e.getLocalizedMessage());
    }
  }

  public void delete(int fid) {
    try {
      ConfigFile.delete(ConfigFile.FAVORITE + fid);
      ConfigFile.delete(ConfigFile.FAVORITE_SERVER + fid);
    } catch (IOException e) {
      throw new RuntimeException(e.getLocalizedMessage());
    }
  }

  public Favorite listById(int fid) {
    try {
      Favorite favorite = null;
      if (ConfigFile.read(ConfigFile.FAVORITE + fid) != null)
        favorite = new Favorite(fid, Integer.parseInt(ConfigFile
            .read(ConfigFile.FAVORITE_SERVER + fid)),
            ConfigFile.read(ConfigFile.FAVORITE_NAME + fid),
            ConfigFile.read(ConfigFile.FAVORITE + fid));

      return favorite;
    } catch (IOException e) {
      throw new RuntimeException(e.getLocalizedMessage());
    }
  }

  public List<Favorite> listAll() {
    try {
      int amount = Integer.parseInt(ConfigFile
          .readMaxId(ConfigFile.FAVORITE_MAXID));
      List<Favorite> favorites = new ArrayList<Favorite>();
      for (int i = 1; i <= amount; i++) {
        Favorite favorite = listById(i);
        if (favorite != null)
          favorites.add(favorite);
      }

      return favorites;
    } catch (IOException e) {
      throw new RuntimeException(e.getLocalizedMessage());
    }
  }

  public void updateList(List<Favorite> favorites) {
    List<Favorite> allFavorite = listAll();
    for (Favorite favorite : allFavorite) {
      Favorite newFavorite = find(favorite.getFid(), favorites);
      if (newFavorite == null)
        delete(favorite.getFid());
      else {
        if (!favorite.getName().equals(newFavorite.getName()))
          updateName(favorite.getFid(), newFavorite.getName());
      }
    }
  }

  private Favorite find(int fid, List<Favorite> favorites) {
    for (Favorite favorite : favorites) {
      if (favorite.getFid() == fid)
        return favorite;
    }
    return null;
  }

  public void updateName(int fid, String name) {
    try {
      ConfigFile.write(ConfigFile.FAVORITE_NAME + fid, name);
    } catch (IOException e) {
      throw new RuntimeException(e.getLocalizedMessage());
    }
  }
}
TOP

Related Classes of com.cxy.redisclient.service.FavoriteService

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.