private Object convertPojoMapToDatastoreValue( ClassLoaderResolver clr, AbstractMemberMetaData ammd, Map value) { if (value == null) { return null; } List result = Utils.newArrayList(); Iterator entryIter = value.entrySet().iterator(); Class keyType = clr.classForName(ammd.getMap().getKeyType()); Class valType = clr.classForName(ammd.getMap().getValueType()); while (entryIter.hasNext()) { Map.Entry entry = (Map.Entry)entryIter.next(); Object key = entry.getKey(); Function keyFunc = pojoToDatastoreTypeFunction.get(keyType); if (keyFunc != null) { result.add(keyFunc.apply(key)); } else { result.add(key); } Object val = entry.getValue(); Function valFunc = pojoToDatastoreTypeFunction.get(valType); if (valFunc != null) { result.add(valFunc.apply(val)); } else { result.add(val); } } return result; }
boolean persistableKey = (mmd.getMap().getKeyClassMetaData(clr, ec.getMetaDataManager()) != null); boolean persistableVal = (mmd.getMap().getValueClassMetaData(clr, ec.getMetaDataManager()) != null); List keysValues = Utils.newArrayList(); Iterator<Map.Entry> entryIter = map.entrySet().iterator();
public String getXMLForMetaData(MapMetaData mapmd, String prefix, String indent) str.append(prefix).append("<map key-type=\"").append(mapmd.getKeyType()).append("\" value-type=\"").append(mapmd.getValueType()).append("\""); if (mapmd.isEmbeddedKey()) str.append(" embedded-key=\"").append(mapmd.isEmbeddedKey()).append("\""); if (mapmd.isEmbeddedValue()) str.append(" embedded-value=\"").append(mapmd.isEmbeddedValue()).append("\""); if (mapmd.isDependentKey()) str.append(" dependent-key=\"").append(mapmd.isDependentKey()).append("\""); if (mapmd.isDependentValue()) str.append(" dependent-value=\"").append(mapmd.isDependentValue()).append("\""); if (mapmd.isSerializedKey()) str.append(" serialized-key=\"").append(mapmd.isSerializedKey()).append("\""); if (mapmd.isSerializedValue()) str.append(" serialized-value=\"").append(mapmd.isSerializedValue()).append("\""); processExtensions(mapmd.getExtensions(), str, prefix, indent);
/** * Accessor for whether the value is a persistable(serialised) * @return Whether the value is PC and is serialised */ public boolean isSerialisedValuePC() { if (mmd.getMap() != null && mmd.getMap().isSerializedValue() && mmd.getMap().valueIsPersistent()) { return true; } return false; }
/** * Accessor for whether the key is a persistable(serialised) * @return Whether the key is PC and is serialised */ public boolean isSerialisedKeyPC() { if (mmd.getMap() != null && mmd.getMap().isSerializedKey() && mmd.getMap().keyIsPersistent()) { return true; } return false; }
if (mapmd.getMapType() == MapType.MAP_TYPE_JOIN) if (mapmd.getValueClassMetaData(clr) != null && !mapmd.isEmbeddedValue()) DatastoreClass valTable = storeMgr.getDatastoreClass(mapmd.getValueType(), clr); SQLTable valueSqlTbl = stmt.getTable(mapJoinAlias+"_VALUE"); if (valueSqlTbl == null) else if (mapmd.getMapType() == MapType.MAP_TYPE_KEY_IN_VALUE) DatastoreClass valTable = storeMgr.getDatastoreClass(mapmd.getValueType(), clr); AbstractClassMetaData valCmd = mmd.getMap().getValueClassMetaData(clr); JavaTypeMapping mapTblOwnerMapping; if (mmd.getMappedBy() != null) else if (mapmd.getMapType() == MapType.MAP_TYPE_VALUE_IN_KEY) DatastoreClass keyTable = storeMgr.getDatastoreClass(mapmd.getKeyType(), clr); AbstractClassMetaData keyCmd = mmd.getMap().getKeyClassMetaData(clr); JavaTypeMapping mapTblOwnerMapping; if (mmd.getMappedBy() != null) AbstractMemberMetaData valKeyMmd = mapmd.getKeyClassMetaData(clr).getMetaDataForMember(mmd.getValueMetaData().getMappedBy()); JavaTypeMapping valueMapping = keyTable.getMemberMapping(valKeyMmd); return exprFactory.newExpression(stmt, keySqlTbl, valueMapping);
if (mapmd.getMapType() == MapType.MAP_TYPE_JOIN) cmd = mapmd.getKeyClassMetaData(clr); if (!mapmd.isEmbeddedKey() && !mapmd.isSerializedKey()) DatastoreClass keyTable = storeMgr.getDatastoreClass(mapmd.getKeyType(), clr); sqlTbl = stmt.join(getDefaultJoinTypeForNavigation(), sqlMapping.table, mapTable.getKeyMapping(), keyTable, null, keyTable.getIdMapping(), null, null, true); mapping = keyTable.getIdMapping(); cmd = mapmd.getValueClassMetaData(clr); if (!mapmd.isEmbeddedValue() && !mapmd.isSerializedValue()) DatastoreClass valueTable = storeMgr.getDatastoreClass(mapmd.getValueType(), clr); sqlTbl = stmt.join(getDefaultJoinTypeForNavigation(), sqlMapping.table, mapTable.getValueMapping(), valueTable, null, valueTable.getIdMapping(), null, null, true); mapping = valueTable.getIdMapping(); if (!mapmd.isEmbeddedValue() && !mapmd.isSerializedValue()) else if (mapmd.getMapType() == MapType.MAP_TYPE_KEY_IN_VALUE) AbstractClassMetaData keyCmd = mapmd.getKeyClassMetaData(clr); String keyMappedBy = mmd.getKeyMetaData().getMappedBy(); mapping = ((DatastoreClass)sqlTbl.getTable()).getMemberMapping(keyMappedBy); DatastoreClass keyTable = storeMgr.getDatastoreClass(mapmd.getKeyType(), clr); sqlTbl = stmt.join(getDefaultJoinTypeForNavigation(), sqlMapping.table, mapping, keyTable, null, keyTable.getIdMapping(), null, null, true); mapping = keyTable.getIdMapping(); else if (mapmd.getMapType() == MapType.MAP_TYPE_VALUE_IN_KEY)
else if (mmd.getMap().valueIsPersistent()) referencedTable = storeMgr.getDatastoreClass(mmd.getMap().getValueType(), clr); if (referencedTable != null) else if (mmd.getMap().keyIsPersistent()) referencedTable = storeMgr.getDatastoreClass(mmd.getMap().getKeyType(), clr); if (referencedTable != null)
if (mmd.getMap().isSerializedKey() || mmd.getMap().isSerializedValue()) if (mmd.getMap().keyIsPersistent()) keyCmd = mmd.getMap().getKeyClassMetaData(clr); if (keyCmd == null) if (mmd.getMap().valueIsPersistent()) valCmd = mmd.getMap().getValueClassMetaData(clr); if (valCmd == null) boolean valSet = true; if (mmd.getMap().keyIsPersistent()) if (mmd.getMap().valueIsPersistent())
ClassLoaderResolver clr = stmt.getQueryGenerator().getClassLoaderResolver(); AbstractMemberMetaData mmd = mapExpr.getJavaTypeMapping().getMemberMetaData(); AbstractClassMetaData keyCmd = mmd.getMap().getKeyClassMetaData(clr); if (mmd.getMap().getMapType() == MapType.MAP_TYPE_JOIN) else if (mmd.getMap().getMapType() == MapType.MAP_TYPE_KEY_IN_VALUE) AbstractClassMetaData valCmd = mmd.getMap().getValueClassMetaData(clr); DatastoreClass valTbl = storeMgr.getDatastoreClass(valCmd.getFullClassName(), clr); AbstractMemberMetaData valKeyMmd = valCmd.getMetaDataForMember(mmd.getKeyMetaData().getMappedBy()); else if (mmd.getMap().getMapType() == MapType.MAP_TYPE_VALUE_IN_KEY)
public String getKeyType() { return getInternal().getKeyType(); }
AbstractClassMetaData keyCmd = mmd.getMap().getKeyClassMetaData(clr); AbstractClassMetaData valCmd = mmd.getMap().getValueClassMetaData(clr); String propNameKey = Neo4jStoreManager.RELATIONSHIP_FIELD_NAME; if (relationType == RelationType.MANY_TO_MANY_BI && mmd.getMappedBy() != null) if (!mmd.getMap().keyIsPersistent() && mmd.getMap().valueIsPersistent()) else if (mmd.getMap().keyIsPersistent() && !mmd.getMap().valueIsPersistent())
/** * Accessor for the value type for this Map. * @return Name of value type. */ public String getValueType() { return mmd.getMap().getValueType(); }
if (mmd.getMap().keyIsPersistent() || mmd.getMap().valueIsPersistent()) if (mmd.getMap().keyIsPersistent() && entry.getKey() != null) if (mmd.getMap().valueIsPersistent() && entry.getValue() != null)
boolean serialised = (mmd.hasMap() && mmd.getMap().isSerializedKey()); boolean embedded = (mmd.hasMap() && mmd.getMap().isEmbeddedKey()); boolean embeddedPC = (mmd.hasMap() && mmd.getMap().keyIsPersistent() && mmd.getMap().isEmbeddedKey()) || (mmd.getKeyMetaData() != null && mmd.getKeyMetaData().getEmbeddedMetaData() != null); boolean keyPC = (mmd.hasMap() && mmd.getMap().keyIsPersistent()); Class keyCls = clr.classForName(mmd.getMap().getKeyType()); boolean keyReference = ClassUtils.isReferenceType(keyCls);
boolean serialised = (mmd.hasMap() && mmd.getMap().isSerializedValue()); boolean embedded = (mmd.hasMap() && mmd.getMap().isEmbeddedValue()); boolean embeddedPC = (mmd.hasMap() && mmd.getMap().valueIsPersistent() && mmd.getMap().isEmbeddedValue()) || (mmd.getValueMetaData() != null && mmd.getValueMetaData().getEmbeddedMetaData() != null); boolean valuePC = (mmd.hasMap() && mmd.getMap().valueIsPersistent()); Class valueCls = clr.classForName(mmd.getMap().getValueType()); boolean valueReference = ClassUtils.isReferenceType(valueCls);
if (ownerMmd.getMap().getMapType() == MapType.MAP_TYPE_JOIN) ownerMapping = ((JoinTable)mapTbl).getOwnerMapping(); else if (ownerMmd.getMap().getMapType() == MapType.MAP_TYPE_KEY_IN_VALUE) AbstractClassMetaData valueCmd = storeMgr.getNucleusContext().getMetaDataManager().getMetaDataForClass(ownerMmd.getMap().getValueType(), clr); mapTbl = storeMgr.getDatastoreClass(ownerMmd.getMap().getValueType(), clr); if (ownerMmd.getMappedBy() != null) else if (ownerMmd.getMap().getMapType() == MapType.MAP_TYPE_VALUE_IN_KEY) AbstractClassMetaData keyCmd = storeMgr.getNucleusContext().getMetaDataManager().getMetaDataForClass(ownerMmd.getMap().getKeyType(), clr); mapTbl = storeMgr.getDatastoreClass(ownerMmd.getMap().getKeyType(), clr); if (ownerMmd.getMappedBy() != null)
if (mmd.getMap().isSerializedValue()) if (!mmd.getMap().keyIsPersistent() && mmd.getMap().valueIsPersistent()) else if (mmd.getMap().keyIsPersistent() && !mmd.getMap().valueIsPersistent()) while (mapEntryIter.hasNext()) if (mmd.getMap().isSerializedKey())
if (ownerMemberMetaData.getMap().isDependentKey() || ownerMemberMetaData.getMap().isDependentValue()) if (api.isPersistable(entry.getKey()) && mapmd.isDependentKey() && !mapmd.isEmbeddedKey()) if (api.isPersistable(entry.getValue()) && mapmd.isDependentValue() && !mapmd.isEmbeddedValue())
return (mmd.getMap() != null ? mmd.getMap().isSerializedKey() : false); return (mmd.getMap() != null ? mmd.getMap().isSerializedValue() : false);