@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);
    }
@ 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 ) ; }
/*
(non-Javadoc)

@see
javax.persistence.metamodel.ManagedType#getDeclaredMap(java.lang.String,
java.lang.Class, java.lang.Class)