code: @Override
      public <K, V> MapAttribute<X, K, V> getDeclaredMap(String paramName, Class<K> keyClazz, Class<V> valueClazz)
      {
          PluralAttribute<X, ?, ?> declaredAttrib = getDeclaredPluralAttribute(paramName);
  
          if (onCheckMapAttribute(declaredAttrib, valueClazz))
          {
              if (valueClazz != null && valueClazz.equals(((MapAttribute<X, K, V>) declaredAttrib).getKeyJavaType()))
              {
                  return (MapAttribute<X, K, V>) declaredAttrib;
  
              }
          }
  
          throw new IllegalArgumentException(
                  "attribute of the given name and type is not present in the managed MapAttribute type, for name:"
                          + paramName + " , value type:" + valueClazz + "key tpye:" + keyClazz);
      }
docs: /*
  (non-Javadoc)
  
  @see
  javax.persistence.metamodel.ManagedType#getDeclaredMap(java.lang.String,
  java.lang.Class, java.lang.Class)