@Override public ValueProvider<PropertyBox, V> getGetter() { return pb -> (valueProvider != null) ? valueProvider.getPropertyValue(pb) : pb.getValue(property); }
@Override public String apply(PropertyBox source) { return property.present(property.getValueProvider().getPropertyValue(source)); }
/** * Get the value of given <code>property</code> using given <code>propertyBox</code>. * @param <T> Property type * @param propertyBox The PropertyBox value (may be null) * @param property The property for which to obtain the value * @return Optional property value, empty if the given PropertyBox was <code>null</code> */ protected <T> Optional<T> getPropertyValue(PropertyBox propertyBox, Property<T> property) { if (propertyBox != null) { // check vitual property if (VirtualProperty.class.isAssignableFrom(property.getClass())) { if (((VirtualProperty<T>) property).getValueProvider() != null) { return Optional.ofNullable( ((VirtualProperty<T>) property).getValueProvider().getPropertyValue(propertyBox)); } return null; } // get the property value if (propertyBox.containsValue(property)) { return Optional.ofNullable(propertyBox.getValue(property)); } } return Optional.empty(); }
/** * Get the value of given <code>property</code> using given <code>propertyBox</code>. * @param <T> Property type * @param propertyBox PropertyBox * @param property Property * @return Property value */ protected <T> T getPropertyValue(PropertyBox propertyBox, Property<T> property) { if (VirtualProperty.class.isAssignableFrom(property.getClass())) { if (((VirtualProperty<T>) property).getValueProvider() != null) { return ((VirtualProperty<T>) property).getValueProvider().getPropertyValue(propertyBox); } return null; } if (propertyBox.contains(property)) { return propertyBox.getValue(property); } return null; }
/** * Get the value of given <code>property</code> using given <code>propertyBox</code>. * @param <T> Property type * @param propertyBox PropertyBox * @param property Property * @return Property value */ protected <T> T getPropertyValue(PropertyBox propertyBox, Property<T> property) { if (VirtualProperty.class.isAssignableFrom(property.getClass())) { if (((VirtualProperty<T>) property).getValueProvider() != null) { return ((VirtualProperty<T>) property).getValueProvider().getPropertyValue(propertyBox); } return null; } if (propertyBox.containsValue(property)) { return propertyBox.getValue(property); } return null; }
/** * Get the value of given <code>property</code> using given <code>propertyBox</code>. * @param <T> Property type * @param propertyBox PropertyBox * @param property Property * @return Property value */ protected <T> T getPropertyValue(PropertyBox propertyBox, Property<T> property) { if (VirtualProperty.class.isAssignableFrom(property.getClass())) { if (((VirtualProperty<T>) property).getValueProvider() != null) { return ((VirtualProperty<T>) property).getValueProvider().getPropertyValue(propertyBox); } return null; } if (propertyBox.containsValue(property)) { return propertyBox.getValue(property); } return null; }
/** * Get the value of given <code>property</code> using given <code>propertyBox</code>. * @param <T> Property type * @param propertyBox PropertyBox * @param property Property * @return Property value */ protected <T> T getPropertyValue(PropertyBox propertyBox, Property<T> property) { if (VirtualProperty.class.isAssignableFrom(property.getClass())) { if (((VirtualProperty<T>) property).getValueProvider() != null) { return ((VirtualProperty<T>) property).getValueProvider().getPropertyValue(propertyBox); } return null; } if (propertyBox.contains(property)) { return propertyBox.getValue(property); } return null; }
/** * Get the value of given <code>property</code> using given <code>propertyBox</code>. * @param <T> Property type * @param propertyBox PropertyBox * @param property Property * @return Property value */ protected <T> T getPropertyValue(PropertyBox propertyBox, Property<T> property) { if (VirtualProperty.class.isAssignableFrom(property.getClass())) { if (((VirtualProperty<T>) property).getValueProvider() != null) { return ((VirtualProperty<T>) property).getValueProvider().getPropertyValue(propertyBox); } return null; } if (propertyBox.contains(property)) { return propertyBox.getValue(property); } return null; }
/** * Get value of a {@link VirtualProperty} using {@link PropertyValueProvider#getPropertyValue(PropertyBox)}. * @param <T> Property type * @param property Property * @return Property value * @throws PropertyAccessException Error obtaining property value from provider */ protected <T> T getValueProviderPropertyValue(VirtualProperty<T> property) throws PropertyAccessException { PropertyValueProvider<T> valueProvider = property.getValueProvider(); if (valueProvider == null) { throw new PropertyReadException(property, "Property " + property + " declares to provide a value using a PropertyValueProvider, but returned PropertyValueProvider is null"); } try { return valueProvider.getPropertyValue(this); } catch (Exception e) { throw new PropertyReadException(property, e); } }
@Override public ItemListingColumnBuilder<PropertyBox, Property<?>, PropertyListing, DatastorePropertyListingBuilder> withComponentColumn( VirtualProperty<? extends Component> property) { ObjectUtils.argumentNotNull(property, "VirtualProperty must be not null"); final ItemListingColumn<Property<?>, PropertyBox, ?> column = builder.getInstance() .addPropertyColumn(property); column.setRenderer(new ComponentRenderer<>(item -> property.getValueProvider().getPropertyValue(item))); return new DefaultItemListingColumnBuilder<>(property, builder.getInstance(), this); }
@Override public ItemListingColumnBuilder<PropertyBox, Property<?>, PropertyListing, PropertyListingBuilder> withComponentColumn( VirtualProperty<? extends Component> property) { ObjectUtils.argumentNotNull(property, "VirtualProperty must be not null"); final ItemListingColumn<Property<?>, PropertyBox, ?> column = getInstance().addPropertyColumn(property); column.setRenderer(new ComponentRenderer<>(item -> property.getValueProvider().getPropertyValue(item))); return new DefaultItemListingColumnBuilder<>(property, getInstance(), getConfigurator()); }