code: @Override
      public <E> SetAttribute<? super X, E> getSet(String paramName, Class<E> paramClass)
      {
          PluralAttribute<X, ?, ?> declaredAttrib = getDeclaredPluralAttribute(paramName);
  
          if (onCheckSetAttribute(declaredAttrib, paramClass))
          {
              return (SetAttribute<X, E>) declaredAttrib;
          }
  
          PluralAttribute<? super X, ?, ?> superAttrib = getPluralAttriute(paramName);
  
          if (onCheckSetAttribute(superAttrib, paramClass))
          {
              return (SetAttribute<? super X, E>) superAttrib;
  
          }
          throw new IllegalArgumentException(
                  "attribute of the given name and type is not present in the managed type, for name:" + paramName
                          + " , type:" + paramClass);
      }
docs: /*
  (non-Javadoc)
  
  @see javax.persistence.metamodel.ManagedType#getSet(java.lang.String,
  java.lang.Class)