mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
43 lines
1.1 KiB
Java
43 lines
1.1 KiB
Java
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() + "]");
|
|
}
|
|
}
|