package basics.utl;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import basics.testing.Units;
import basics.unexpected.Problem;

public class Empty
{
public static boolean is(String s)
{
   return s == null || s.trim().length() == 0;
}

public static boolean is(Object input)
{
   if(input == null)
      return true;
   return input.toString().length() == 0;
}

public static boolean is(String [] input)
{
   if(input == null)
      return true;
   for(String v : input)
      if(v.trim().length() > 0)
         return false;
   return true;
}

public static void throwsProblem(Object input, String msg) throws Problem
{
   if(Empty.is(input))
      throw new Problem(msg);
}

@SuppressWarnings("unchecked")
public static List list()
{
   return Collections.unmodifiableList(new ArrayList());
}

public static void unittest()
{
   String NULL = null;
   String EMPTY0 = "";
   String EMPTY1 = "   ";
   String v = " v ";
   Units.assertTrue(is(NULL), "NULL failed");
   Units.assertTrue(is(EMPTY0), "EMPTY0 failed");
   Units.assertTrue(is(EMPTY1), "EMPTY1 failed");
   Units.assertFalse(is(v), "v failed");
}
}
