package com.infinite.focus.server.utils;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

public class AppUtils {

	public static boolean isNullOrEmpty(String text) {

		if (text == null || text.trim().isEmpty()) {
			return true;
		}

		return false;
	}
	
	public static boolean isNotNullOrEmpty(String text) {

		if (text == null || text.trim().isEmpty()) {
			return false;
		}

		return true;
	}
	
	public static <E> boolean isNullOrEmpty(List<E> list) {

		if (list == null || list.isEmpty()) {
			return true;
		}

		return false;
	}
	
	public static <E> boolean isNotNullOrEmpty(List<E> list) {

		if (list == null || list.isEmpty()) {
			return false;
		}

		return true;
	}
	
	public static <E> boolean isNullOrEmpty(LinkedHashSet<E> list) {

		if (list == null || list.isEmpty()) {
			return true;
		}

		return false;
	}
	
	public static <E> boolean isNotNullOrEmpty(LinkedHashSet<E> list) {

		if (list == null || list.isEmpty()) {
			return false;
		}

		return true;
	}
	
	public static <E> boolean isNotNullOrEmpty(Set<E> list) {

		if (list == null || list.isEmpty()) {
			return false;
		}

		return true;
	}
	
	public static <T> void addValueTotMap(LinkedHashMap<String, List<T>> map, String key, T value) {
		if (map.containsKey(key)) {
			map.get(key).add(value);
		}
	}
	
	public static List<Long>  convertCommaSeparatedStringIdsToLongIds(String commaSepartedStringIds){
		
		List<Long> ids = new ArrayList<>();
		
		if(isNotNullOrEmpty(commaSepartedStringIds)) {
			for (String id : Arrays.asList(commaSepartedStringIds.split("\\s*,\\s*"))) {
				ids.add(Long.valueOf(id));
			}
		}
		
		return ids;
	}
}
