com.avaje.ebeaninternal.server.deploy.BeanCollectionUtil Maven / Gradle / Ivy
package com.avaje.ebeaninternal.server.deploy;
import java.util.Collection;
import java.util.Map;
import javax.persistence.PersistenceException;
import com.avaje.ebean.bean.BeanCollection;
/**
* Utility methods for BeanCollections.
*/
public class BeanCollectionUtil {
/**
* Return the details of the collection or map taking care to avoid
* unnecessary fetching of the data.
*/
public static Collection> getActualEntries(Object o) {
if (o == null) {
return null;
}
if (o instanceof BeanCollection>) {
BeanCollection> bc = (BeanCollection>) o;
if (!bc.isPopulated()) {
return null;
}
// For maps this is a collection of Map.Entry, otherwise it
// returns a collection of beans
return bc.getActualEntries();
}
if (o instanceof Map, ?>) {
// yes, we want the entrySet (to set the keys)
return ((Map, ?>) o).entrySet();
} else if (o instanceof Collection>) {
return ((Collection>) o);
}
throw new PersistenceException("expecting a Map or Collection but got [" + o.getClass().getName() + "]");
}
}