@Override
  @XmlTransient
  public Collection<String> getPropertyNames() {
    try {
      Map<String, PropertyDescriptor> descr =
          ReflectUtil.getPropertyDescriptors(getClass(), exceptions);

      return descr.keySet();
    } catch (IntrospectionException p_ex) {
      throw new RuntimeException(p_ex);
    }
  }
 private PropertyDescriptor getPropertyDescriptor(String p_propertyName)
     throws IntrospectionException {
   return ReflectUtil.getPropertyDescriptor(getClass(), p_propertyName, exceptions);
 }