aboutsummaryrefslogtreecommitdiffstats
path: root/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/Property.java
diff options
context:
space:
mode:
Diffstat (limited to 'client-compiler/src/com/vaadin/server/widgetsetutils/metadata/Property.java')
-rw-r--r--client-compiler/src/com/vaadin/server/widgetsetutils/metadata/Property.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/Property.java b/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/Property.java
index f07b1c29fd..0c849bead5 100644
--- a/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/Property.java
+++ b/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/Property.java
@@ -24,7 +24,7 @@ import com.google.gwt.core.ext.typeinfo.JPrimitiveType;
import com.google.gwt.core.ext.typeinfo.JType;
import com.google.gwt.user.rebind.SourceWriter;
-public abstract class Property {
+public abstract class Property implements Comparable<Property> {
private final String name;
private final JClassType beanType;
private final JType propertyType;
@@ -107,6 +107,20 @@ public abstract class Property {
+ getName().hashCode();
}
+ @Override
+ public int compareTo(Property o) {
+ int comp = getName().compareTo(o.getName());
+ if (comp == 0) {
+ comp = getBeanType().getQualifiedSourceName().compareTo(
+ o.getBeanType().getQualifiedSourceName());
+ }
+ if (comp == 0) {
+ comp = getClass().getCanonicalName().compareTo(
+ o.getClass().getCanonicalName());
+ }
+ return comp;
+ }
+
public abstract <T extends Annotation> T getAnnotation(
Class<T> annotationClass);