public static String[] getNames(Named[] objects) { String[] result = new String[objects.length]; for (int i = 0; i < objects.length; i++) result[i] = objects[i].getName(); return result; }
public static int indexOf(String name, Named[] objects) { for (int i = 0; i < objects.length; i++) if (name.equals(objects[i].getName())) return i; return -1; }
public NameMap(E... elements) { super(elements.length); for (E element : elements) super.put(element.getName(), element); }
public void put(E item) { super.put(item.getName(), item); }
public NameMap(Collection<E> prototype) { super(prototype.size()); for (E item : prototype) super.put(item.getName(), item); }
public static int indexOf(String name, List<? extends Named> objects) { for (int i = 0; i < objects.size(); i++) if (name.equals(objects.get(i).getName())) return i; return -1; }
public static <T extends Collection<? extends Named>> List<String> getNames(T objects) { List<String> result = new ArrayList<String>(objects.size()); for (Named object : objects) result.add(object.getName()); return result; }
public static <T extends Named> T findByName(String name, T[] array) { for (T item : array) if (NullSafeComparator.equals(item.getName(), name)) return item; return null; }
@Override public boolean accept(Named candidate) { return nameFilter.accept(candidate.getName()); }
public static <T extends Named> List<T> find(List<T> list, Filter<String> filter) { List<T> result = new ArrayList<T>(); for (T object : list) if (filter.accept(object.getName())) result.add(object); return result; }