All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.activitystream.underware.Trimmer Maven / Gradle / Ivy

Go to download

For a description please see https://github.com/activitystream/as-sdk-java

There is a newer version: 0.5.8
Show newest version
package com.activitystream.underware;

import java.util.Iterator;
import java.util.List;
import java.util.Map;

public class Trimmer {
    public static void trimMap(Map obj) {
        for (Iterator> iterator = obj.entrySet().iterator(); iterator.hasNext(); ) {
            Map.Entry entry = iterator.next();
            Object value = entry.getValue();
            trimmer(iterator, value);
        }
    }

    private static void trimmer(Iterator iterator, Object value) {
        if (value == null) {
            iterator.remove();
        } else if (List.class.isAssignableFrom(value.getClass())) {
            List listValue = (List) value;
            trimList(listValue);
            if (listValue.size() == 0) iterator.remove();
        } else if (Map.class.isAssignableFrom(value.getClass())) {
            Map listValue = (Map) value;
            trimMap(listValue);
            if (listValue.size() == 0) iterator.remove();
        }
    }

    private static void trimList(List value) {
        for (Iterator iterator = value.iterator(); iterator.hasNext(); ) {
            Object entry = iterator.next();
            trimmer(iterator, entry);
        }
    }
}