+ return internal == other.internal && resource.equals(other.resource) && name.equals(other.name)
+ && objectEquals(type, other.type);
+ }
+
+ private boolean objectEquals(Object o1, Object o2) {
+ if (o1 == o2) return true;
+ if (o1 == null && o2 == null) return true;
+ if (o1 == null || o2 == null) return false;
+ return o1.equals(o2);