package com.revolsys.collection; import java.util.function.Consumer; import java.util.function.Function; public interface NameProxy { static boolean acceptName(final Object object, final Consumer<String> consumer) { final String name = getName(object); if (name != null) { consumer.accept(name); return true; } return false; } static <V> V applyName(final Object object, final Function<String, V> function) { return applyName(object, function, null); } static <V> V applyName(final Object object, final Function<String, V> function, final V defaultValue) { final String name = getName(object); if (name != null) { return function.apply(name); } return defaultValue; } static boolean equalsName(final Object object, final String otherName) { final String name = getName(object); if (name == null) { return otherName == null; } else { return name.equals(otherName); } } static String getName(final Object object) { if (object instanceof NameProxy) { final NameProxy proxy = (NameProxy)object; return proxy.getName(); } return null; } String getName(); }