Package org.mongodb.morphia.mapping.lazy.proxy

Examples of org.mongodb.morphia.mapping.lazy.proxy.ProxiedEntityReferenceList


                                 final Reference refAnn, final Mapper mapper) {
        if (fieldValue != null) {
            final List values = new ArrayList();

            if (ProxyHelper.isProxy(fieldValue) && ProxyHelper.isUnFetched(fieldValue)) {
                final ProxiedEntityReferenceList p = (ProxiedEntityReferenceList) fieldValue;
                final List<Key<?>> getKeysAsList = p.__getKeysAsList();
                for (final Key<?> key : getKeysAsList) {
                    addValue(values, key, mapper, refAnn.idOnly());
                }
            } else {
View Full Code Here


        if (refAnn.lazy() && LazyFeatureDependencies.assertDependencyFullFilled()) {
            final Object dbVal = mf.getDbObjectValue(dbObject);
            if (dbVal != null) {
                references = mapper.getProxyFactory()
                                   .createListProxy(references, referenceObjClass, refAnn.ignoreMissing(), mapper.getDatastoreProvider());
                final ProxiedEntityReferenceList referencesAsProxy = (ProxiedEntityReferenceList) references;

                if (dbVal instanceof List) {
                    final List<Object> refList = (List) dbVal;
                    final List<DBRef> dbRefList = (List) dbVal;
                    final DatastoreImpl dsi = (DatastoreImpl) mapper.getDatastoreProvider().get();
                    final List<Key<Object>> keys = refAnn.idOnly()
                                                   ? dsi.getKeysByManualRefs(referenceObjClass, refList)
                                                   : dsi.getKeysByRefs(dbRefList);

                    if (keys.size() != refList.size()) {
                        final String msg = "Some of the references could not be fetched for " + mf.getFullName() + ". " + refList + " != "
                                           + keys;
                        if (!refAnn.ignoreMissing()) {
                            throw new MappingException(msg);
                        } else {
                            LOG.warning(msg);
                        }
                    }

                    referencesAsProxy.__addAll(keys);
                } else {
                    if (!exists(mf.getSubClass(), dbVal, cache, mapper, refAnn.idOnly())) {
                        final String msg = "The reference(" + dbVal.toString() + ") could not be fetched for " + mf.getFullName();
                        if (!refAnn.ignoreMissing()) {
                            throw new MappingException(msg);
                        } else {
                            LOG.warning(msg);
                        }
                    } else {
                        referencesAsProxy.__add(refAnn.idOnly()
                                                ? mapper.manualRefToKey(referenceObjClass, dbVal)
                                                : mapper.refToKey((DBRef) dbVal));
                    }
                }
            }
View Full Code Here

TOP

Related Classes of org.mongodb.morphia.mapping.lazy.proxy.ProxiedEntityReferenceList

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.