blob: e1d50af5edc9457172002dd37f313297556603fd [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2021 jkubitz and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* jkubitz - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.internal.compiler.util;
import java.util.Collection;
import java.util.stream.Collectors;
public interface CharArrayMapper<V> extends Cloneable {
public boolean containsKey(char[] key);
public V get(char[] key);
/** @return the previous value **/
public V put(char[] key, V value);
/** @return the number of keys **/
public int size();
/**
* Returns a copied collection of values.
*
* @return all values in undefined order. The order is not guaranteed to be stable.
**/
public Collection<V> values();
/**
* Returns a copied collection of keys.
*
* @return all keys in undefined order. The order is not guaranteed to be stable.
**/
public Collection<char[]> keys();
public static <V> String toString(CharArrayMapper<V> map) {
return map.keys().stream().map(k -> new String(k) + "->" + map.get(k)) //$NON-NLS-1$
.collect(Collectors.joining("\n")); //$NON-NLS-1$
}
}