code: private static AbstractPropertyDefinition<?> createPropDef(
          String id,
          String displayName,
          String description,
          PropertyType datatype,
          Cardinality cardinality,
          Updatability updateability,
          boolean inherited,
          boolean required) {
  
          AbstractPropertyDefinition<?> result = null;
  
          switch (datatype) {
              case BOOLEAN:
                  result = new PropertyBooleanDefinitionImpl();
                  break;
              case DATETIME:
                  result = new PropertyDateTimeDefinitionImpl();
                  break;
              case DECIMAL:
                  result = new PropertyDecimalDefinitionImpl();
                  break;
              case HTML:
                  result = new PropertyHtmlDefinitionImpl();
                  break;
              case ID:
                  result = new PropertyIdDefinitionImpl();
                  break;
              case INTEGER:
                  result = new PropertyIntegerDefinitionImpl();
                  break;
              case STRING:
                  result = new PropertyStringDefinitionImpl();
                  break;
              case URI:
                  result = new PropertyUriDefinitionImpl();
                  break;
              default:
                  throw new RuntimeException("Unknown datatype! Spec change?");
          }
  
          result.setId(id);
          result.setLocalName(id);
          result.setDisplayName(displayName);
          result.setDescription(description);
          result.setPropertyType(datatype);
          result.setCardinality(cardinality);
          result.setUpdatability(updateability);
          result.setIsInherited(Boolean.valueOf(inherited));
          result.setIsRequired(Boolean.valueOf(required));
          result.setIsQueryable(Boolean.FALSE);
          result.setIsOrderable(Boolean.FALSE);
          result.setQueryName(id);
          return result;
      }
docs: Creates a property definition.<p>
  
  @param id the property definition id
  @param displayName the property display name
  @param description the property description
  @param datatype the property type
  @param cardinality the property cardinality
  @param updateability the property updatability
  @param inherited the property inheritance status
  @param required true true if the property is required
  
  @return the property definition