protected MType getDictionaryType(MTypeContext context, Class<?> declaringType, Class<?> type, Type genericType, MTypeFactory root) {
if(null == genericType) {
return MDictionaryType.INSTANCE;
}
Type[] types = getDictionaryTypes(type, genericType);
Type keyType = types[0];
Type valType = types[1];
MType keyMType = getMType(context, declaringType, Types.getActualType(keyType), keyType, root);
MType valMType = getMType(context, declaringType, Types.getActualType(valType), valType, root);
return new MDictionaryType(keyMType, valMType);
}