public DefaultGrailsDomainClassProperty(
      GrailsDomainClass domainClass, PropertyDescriptor descriptor) {
    this.domainClass = domainClass;
    // persistant by default
    this.persistant = true;
    this.name = descriptor.getName();
    this.naturalName = GrailsNameUtils.getNaturalName(descriptor.getName());
    this.type = descriptor.getPropertyType();
    this.identity = descriptor.getName().equals(IDENTITY);

    // establish if property is persistant
    if (domainClass != null) {
      // figure out if this property is inherited
      if (!domainClass.isRoot()) {
        this.inherited = GrailsClassUtils.isPropertyInherited(domainClass.getClazz(), this.name);
      }
      List transientProps = getTransients(domainClass);
      checkIfTransient(transientProps);

      establishFetchMode();
    }
  }
 public boolean isEnum() {
   return GrailsClassUtils.isJdk5Enum(getType());
 }