core/src/main/java/net/typedrest/BeanUtils.java
@SneakyThrows
    public static List<PropertyDescriptor> getProperties(Class<?> beanType) {
        LinkedList<PropertyDescriptor> properties = new LinkedList<>();
        for (PropertyDescriptor property : Introspector.getBeanInfo(beanType).getPropertyDescriptors()) {
            if (getAnnotation(beanType, property, Id.class).isPresent() || property.getName().equals("name")) {
                properties.addFirst(property);
            } else {
                properties.add(property);
            }
        }
        return properties;
    }
@SneakyThrows
    public static List<PropertyDescriptor> getProperties(Class<?> beanType) {
        LinkedList<PropertyDescriptor> properties = new LinkedList<>();
        for (PropertyDescriptor property : Introspector.getBeanInfo(beanType).getPropertyDescriptors()) {
            if (getAnnotation(beanType, property, Id.class).isPresent() || property.getName().equals("name")) {
                properties.addFirst(property);
            } else {
                properties.add(property);
            }
        }
        return properties;
    }
@ SneakyThrows public static List < PropertyDescriptor > getProperties ( Class < ? > beanType ) { LinkedList < PropertyDescriptor > properties = new LinkedList <> ( ) ; for ( PropertyDescriptor property : Introspector . getBeanInfo ( beanType ) . getPropertyDescriptors ( ) ) { if ( getAnnotation ( beanType , property , Id . class ) . isPresent ( ) || property . getName ( ) . equals ( "name" ) ) { properties . addFirst ( property ) ; } else { properties . add ( property ) ; } } return properties ; }
Lists all properties on a bean type. Ensures properties annotated with
{@link Id} or called "name" are always listed first.

@param beanType The type of bean to check for properties.
@return A list of properties.
Lists all properties on a bean type . Ensures properties annotated with { @link Id } or called name are always listed first .