/**
  * Create a new JCR property definition from the given <code>QPropertyDefinition</code>.
  *
  * @param qPd A SPI property definition.
  * @return the corresponding JCR property definition.
  * @throws RepositoryException if an error occurs.
  */
 public PropertyDefinition create(QPropertyDefinition qPd) throws RepositoryException {
   PropertyDefinitionTemplate pt = ntMgr.createPropertyDefinitionTemplate();
   pt.setName(getJCRName(qPd.getName()));
   pt.setAutoCreated(qPd.isAutoCreated());
   pt.setMandatory(qPd.isMandatory());
   pt.setOnParentVersion(qPd.getOnParentVersion());
   pt.setProtected(qPd.isProtected());
   pt.setRequiredType(qPd.getRequiredType());
   pt.setMultiple(qPd.isMultiple());
   pt.setFullTextSearchable(qPd.isFullTextSearchable());
   pt.setValueConstraints(
       createValueConstraints(qPd.getRequiredType(), qPd.getValueConstraints()));
   pt.setAvailableQueryOperators(qPd.getAvailableQueryOperators());
   pt.setQueryOrderable(qPd.isQueryOrderable());
   pt.setDefaultValues(createValues(qPd.getDefaultValues()));
   return pt;
 }