Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

DeclarativeValueProvider.java 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. * Copyright 2000-2018 Vaadin Ltd.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  5. * use this file except in compliance with the License. You may obtain a copy of
  6. * the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  12. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  13. * License for the specific language governing permissions and limitations under
  14. * the License.
  15. */
  16. package com.vaadin.ui;
  17. import java.util.IdentityHashMap;
  18. import java.util.Map;
  19. import com.vaadin.data.ValueProvider;
  20. /**
  21. * Value provider class for declarative support.
  22. * <p>
  23. * Provides a straightforward mapping between an item and its value.
  24. *
  25. * @param <T>
  26. * item type
  27. */
  28. class DeclarativeValueProvider<T> implements ValueProvider<T, String> {
  29. private final Map<T, String> values = new IdentityHashMap<>();
  30. @Override
  31. public String apply(T t) {
  32. return values.get(t);
  33. }
  34. /**
  35. * Sets a {@code value} for the item {@code t}.
  36. *
  37. * @param t
  38. * a data item
  39. * @param value
  40. * a value for the item {@code t}
  41. */
  42. void addValue(T t, String value) {
  43. values.put(t, value);
  44. }
  45. }