ossiejhmoore icon

Untitled

ossiejhmoore | PRO | 03/15/18 09:07:03 PM UTC | 0 ⭐ | 442 👁️ | Never ⏰ | []
Java |

4.2 KB

|

None

|

0 👍

/

0 👎

OUTPUT:
 
====  using isNullOrEmpty ====
Convict: Joe Jacobs
Alises : [Joey, Nails]
Crimes : [Major, Minor]
 
Convict: Moe Mandy
Alises : No known alises
Crimes : [Major]
 
Convict: Unknown
Alises : [Larry]
Crimes : [Minor]
 
====  using getDefaultIfNull ====
Convict: Joe Jacobs
Alises : [Joey, Nails]
Crimes : [Major, Minor]
 
Convict: Moe Mandy
Alises : No known alises
Crimes : [Major]
 
Convict: Unknown
Alises : [Larry]
Crimes : [Minor]
 
CODE:
 
package deleteme;
 
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
 
public class DeleteMe {
 
    public static void main(String[] args) {
        showExample();
    }
 
    private static class Crime {
 
        private String name;
 
        public String getName() {
            return name;
        }
 
        public void setName(String name) {
            this.name = name;
        }
 
        @Override
        public String toString() {
            return getName();
        }
    }
 
    private static class Convict {
 
        private String name;
        private List<String> alises;
        private List<Crime> crimes;
 
        public String getName() {
            return name;
        }
 
        public void setName(String name) {
            this.name = name;
        }
 
        public List<String> getAlises() {
            return alises;
        }
 
        public void setAlises(List<String> alises) {
            this.alises = alises;
        }
 
        public List<Crime> getCrimes() {
            return crimes;
        }
 
        public void setCrimes(List<Crime> crimes) {
            this.crimes = crimes;
        }
    }
 
    public static void showExample() {
        Crime minor = new Crime();
        minor.setName("Minor");
 
        Crime major = new Crime();
        major.setName("Major");
 
        Convict joe = new Convict();
        joe.setName("Joe Jacobs");
        joe.setAlises(Arrays.asList(new String[]{"Joey", "Nails"}));
        joe.setCrimes(Arrays.asList(new Crime[]{major, minor}));
 
        Convict moe = new Convict();
        moe.setName("Moe Mandy");
        moe.setCrimes(Arrays.asList(new Crime[]{major}));
 
        Convict larry = new Convict();
        larry.setAlises(Arrays.asList(new String[]{"Larry"}));
        larry.setCrimes(Arrays.asList(new Crime[]{minor}));
 
        List<Convict> convicts = Arrays.asList(new Convict[]{joe, moe, larry});
 
        //using only the isNullOrEmpty
        System.out.println("====  using isNullOrEmpty ====");
        for (Convict convict : convicts) {
            System.out.printf("Convict: %s%n", isNullOrEmpty(convict.getName()) ? "Unknown" : convict.getName());
            System.out.printf("Alises : %s%n", isNullOrEmpty(convict.getAlises()) ? "No known alises" : convict.getAlises());
            System.out.printf("Crimes : %s%n%n", isNullOrEmpty(convict.getCrimes()) ? "No known crimes" : convict.getCrimes());
        }
 
        //using the conveninece method for get default if null
        System.out.println("====  using getDefaultIfNull ====");
        for (Convict convict : convicts) {
            System.out.printf("Convict: %s%n", getDefaultIfNull(convict.getName(), "Unknown"));
            System.out.printf("Alises : %s%n", getDefaultIfNull(convict.getAlises(), "No known alises"));
            System.out.printf("Crimes : %s%n%n", getDefaultIfNull(convict.getCrimes(), "No known crimes"));
        }
 
    }
 
    public static Object getDefaultIfNull(Object o, Object ifNullUseThis) {
        return (isNullOrEmpty(o) ? ifNullUseThis : o);
    }
 
    public static boolean isNullOrEmpty(Object o) {
        boolean isNullOrEmpty = true;
        if (o != null) {
            if (String.class.isAssignableFrom(o.getClass())) {
                isNullOrEmpty = ((String) o).isEmpty();
            } else if (Collection.class.isAssignableFrom(o.getClass())) {
                isNullOrEmpty = ((Collection) o).isEmpty();
            } else if (o.getClass().isArray()) {
                isNullOrEmpty = (((Object[]) o).length == 0);
            } else {
                isNullOrEmpty = String.valueOf(o).isEmpty();
            }
        }
        return isNullOrEmpty;
    }
}

Comments