public String getKeyType() { return getInternal().getKeyType(); }
/** * Accessor for the key type for this Map. * @return Name of key type. */ public String getKeyType() { return mmd.getMap().getKeyType(); }
private Object getMapKeyForReturnValue(AbstractMemberMetaData mmd, Object value) { String keyType = mmd.getMap().getKeyType(); Class keyCls = ec.getClassLoaderResolver().classForName(keyType); if (keyCls == Long.class || keyCls == Double.class || keyCls == Float.class || keyCls == Integer.class || keyCls == Short.class || keyCls == String.class) { return value; } else if (Enum.class.isAssignableFrom(keyCls)) { return Enum.valueOf(keyCls, (String)value); } else { throw new NucleusException("Dont currently support persistence/retrieval of maps with keys of type " + keyType); } }
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())
public Class<K> getKeyJavaType() { return owner.model.getClassLoaderResolver().classForName(mmd.getMap().getKeyType()); }
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; }
public <K, V> MapAttribute<? super X, K, V> getMap(String attr, Class<K> keyType, Class<V> valueType) { AttributeImpl<X, ?> theAttr = (AttributeImpl<X, ?>) attributes.get(attr); if (theAttr == null) { throw new IllegalArgumentException("Attribute " + attr + " was not found in class"); } AbstractMemberMetaData mmd = theAttr.getMetadata(); if (!Map.class.isAssignableFrom(mmd.getType())) { throw new IllegalArgumentException("Attribute " + attr + " isnt a Map"); } Class keyCls = model.getClassLoaderResolver().classForName(mmd.getMap().getKeyType()); if (!keyType.isAssignableFrom(keyCls)) { throw new IllegalArgumentException("Attribute " + attr + " doesn't have a Map with Key of type " + keyType.getName()); } Class valueCls = model.getClassLoaderResolver().classForName(mmd.getMap().getValueType()); if (!valueType.isAssignableFrom(valueCls)) { throw new IllegalArgumentException("Attribute " + attr + " doesn't have a Map with Value of type " + valueType.getName()); } return (MapAttribute<? super X, K, V>)theAttr; }
/** * Initialize this JavaTypeMapping with the given DatastoreAdapter for the given metadata. * @param table The datastore container storing this mapping (if any) * @param clr the ClassLoaderResolver * @param fmd FieldMetaData for the field to be mapped (if any) */ public void initialize(AbstractMemberMetaData fmd, Table table, ClassLoaderResolver clr) { initialize(fmd, table, clr, fmd.getKeyMetaData().getEmbeddedMetaData(), fmd.getMap().getKeyType(), ObjectProvider.EMBEDDED_MAP_KEY_PC); } }
public Type<K> getKeyType() { Class keyCls = owner.model.getClassLoaderResolver().classForName(mmd.getMap().getKeyType()); return owner.model.getType(keyCls); } }
Class keyType = clr.classForName(ammd.getMap().getKeyType()); Class valType = clr.classForName(ammd.getMap().getValueType()); Iterator iter = ((List)value).iterator();
public <K, V> MapAttribute<X, K, V> getDeclaredMap(String attr, Class<K> keyType, Class<V> valueType) { AttributeImpl<X, ?> theAttr = (AttributeImpl<X, ?>) attributes.get(attr); if (theAttr == null) { throw new IllegalArgumentException("Attribute " + attr + " was not found in class"); } AbstractMemberMetaData mmd = theAttr.getMetadata(); if (!Map.class.isAssignableFrom(mmd.getType())) { throw new IllegalArgumentException("Attribute " + attr + " isnt a Map"); } Class keyCls = model.getClassLoaderResolver().classForName(mmd.getMap().getKeyType()); if (!keyType.isAssignableFrom(keyCls)) { throw new IllegalArgumentException("Attribute " + attr + " doesn't have a Map with Key of type " + keyType.getName()); } Class valueCls = model.getClassLoaderResolver().classForName(mmd.getMap().getValueType()); if (!valueType.isAssignableFrom(valueCls)) { throw new IllegalArgumentException("Attribute " + attr + " doesn't have a Map with Value of type " + valueType.getName()); } Class thisCls = model.getClassLoaderResolver().classForName(cmd.getFullClassName()); if (mmd.getMemberRepresented().getDeclaringClass() != thisCls) { throw new IllegalArgumentException("Attribute " + attr + " isn't defined in " + cmd.getFullClassName()); } return (MapAttribute<X, K, V>)theAttr; }
@Override public ValueMetadata setConverter(AttributeConverter<?, ?> conv) { String valType = ((AbstractMemberMetaData)getInternal().getParent()).getMap().getKeyType(); Class valCls = getInternal().getMetaDataManager().getNucleusContext().getClassLoaderResolver(null).classForName(valType); Class attrType = JDOTypeConverterUtils.getAttributeTypeForAttributeConverter(conv.getClass(), valCls); Class dbType = JDOTypeConverterUtils.getDatastoreTypeForAttributeConverter(conv.getClass(), attrType, null); // Register the TypeConverter under the name of the AttributeConverter class JDOTypeConverter typeConv = new JDOTypeConverter(conv); TypeManager typeMgr = getInternal().getMetaDataManager().getNucleusContext().getTypeManager(); typeMgr.registerConverter(conv.getClass().getName(), typeConv, attrType, dbType, false, null); getInternal().addExtension(MetaData.EXTENSION_MEMBER_TYPE_CONVERTER_NAME, conv.getClass().getName()); return this; }
@Override public KeyMetadata setConverter(AttributeConverter<?, ?> conv) { String keyType = ((AbstractMemberMetaData)getInternal().getParent()).getMap().getKeyType(); Class keyCls = getInternal().getMetaDataManager().getNucleusContext().getClassLoaderResolver(null).classForName(keyType); Class attrType = JDOTypeConverterUtils.getAttributeTypeForAttributeConverter(conv.getClass(), keyCls); Class dbType = JDOTypeConverterUtils.getDatastoreTypeForAttributeConverter(conv.getClass(), attrType, null); // Register the TypeConverter under the name of the AttributeConverter class JDOTypeConverter typeConv = new JDOTypeConverter(conv); TypeManager typeMgr = getInternal().getMetaDataManager().getNucleusContext().getTypeManager(); typeMgr.registerConverter(conv.getClass().getName(), typeConv, attrType, dbType, false, null); getInternal().addExtension(MetaData.EXTENSION_MEMBER_TYPE_CONVERTER_NAME, conv.getClass().getName()); return this; }
String keyType = ownerFmd.getMap().getKeyType(); baseName = keyType.substring(keyType.lastIndexOf('.') + 1);
this.type = mmd.getMap().getKeyType();
fieldTypeName = mmd.getMap().getKeyType();
@Override public Class getJavaType() { ClassLoaderResolver clr = storeMgr.getNucleusContext().getClassLoaderResolver(null); if (mmd != null) { if (roleForMember == FieldRole.ROLE_COLLECTION_ELEMENT) { return clr.classForName(mmd.getCollection().getElementType()); } else if (roleForMember == FieldRole.ROLE_ARRAY_ELEMENT) { return clr.classForName(mmd.getArray().getElementType()); } else if (roleForMember == FieldRole.ROLE_MAP_KEY) { return clr.classForName(mmd.getMap().getKeyType()); } else if (roleForMember == FieldRole.ROLE_MAP_VALUE) { return clr.classForName(mmd.getMap().getValueType()); } return mmd.getType(); } return clr.classForName(type); }
if (mmd != null && mmd.getMap() != null) Class keyCls = stmt.getQueryGenerator().getClassLoaderResolver().classForName(mmd.getMap().getKeyType()); stmt.getQueryGenerator().bindParameter(keyExpr.getParameterName(), keyCls);
mapTbl = storeMgr.getDatastoreClass(mmd.getMap().getKeyType(), clr); if (mmd.getMappedBy() != null)
mapTbl = storeMgr.getDatastoreClass(mmd.getMap().getKeyType(), clr); if (mmd.getMappedBy() != null)