@Override public boolean applies(PropertyPath path, TypeContext typeContext) { return typeContext.type.isSubTypeOf(LocalDate.class); }
@Override public boolean applies(PropertyPath path, TypeContext typeContext) { return typeContext.type.isSubTypeOf(DateTime.class); }
@Override public boolean applies(PropertyPath path, TypeContext typeContext) { return typeContext.type.isSubTypeOf(Instant.class); }
@Override public boolean applies(PropertyPath path, TypeContext typeContext) { return typeContext.type.isSubTypeOf(LocalDate.class); }
@Override public boolean applies(PropertyPath path, TypeContext typeContext) { return typeContext.type.isSubTypeOf(LocalDateTime.class); }
@Override public boolean isReadableFrom(TypeDescriptor typeDescriptor) { return typeDescriptor.isSubTypeOf(field.getDeclaringClass()); }
@Override public boolean isWritableFrom(TypeDescriptor typeDescriptor) { return typeDescriptor.isSubTypeOf(field.getDeclaringClass()); }
public boolean applies(TypeDescriptor typeDescriptor) { return typeDescriptor.isSubTypeOf(method.getDeclaringClass()); }
@Override public boolean applies(@Nullable PropertyPath path, TypeContext typeContext) { TypeDescriptor typeDescriptor = typeContext.type; if (matchSubClasses) { return typeDescriptor.isSubTypeOf(type); } else { return typeDescriptor.getRawType().equals(type); } }
public boolean isSubTypeOf(TypeDescriptor type) { return isSubTypeOf(type.getRawType()); }
private PolymorphicObjectType(BasicObjectType root, List<BasicObjectType> subclasses) { this.root = Check.notNull(root, "root"); Check.notNullOrEmpty(subclasses, "subclasses"); ImmutableMap.Builder<String, BasicObjectType> aliases = ImmutableMap.builder(); ImmutableMap.Builder<Class<?>, BasicObjectType> classes = ImmutableMap.builder(); aliases.put(root.getAlias(), root); classes.put(root.getType().getRawType(), root); for (BasicObjectType subclass : subclasses) { if (!subclass.getType().isSubTypeOf(root.getType())) { throw new IllegalArgumentException("Expected " + subclass.getType() + " to be a subclass of the root entity " + root.getType()); } aliases.put(subclass.getAlias(), subclass); classes.put(subclass.getType().getRawType(), subclass); } typesByAlias = aliases.build(); typesByClass = classes.build(); }