package org.elixir_lang.navigation.item_presentation; import org.elixir_lang.structure_view.element.CallDefinition; import org.elixir_lang.structure_view.element.Timed; import org.elixir_lang.structure_view.element.modular.Modular; import org.jetbrains.annotations.NotNull; import java.util.HashMap; public class CallDefinitionByTuple extends HashMap<CallDefinition.Tuple, CallDefinition> { /** * Generates a {@link CallDefinition} for the given * {@link org.elixir_lang.structure_view.element.CallDefinition.Tuple} if it does not exist. */ @NotNull public CallDefinition putNew(@NotNull CallDefinition.Tuple tuple) { CallDefinition callDefinition = get(tuple); if (callDefinition == null) { callDefinition = new CallDefinition(tuple.modular, tuple.time, tuple.name, tuple.arity); put(tuple, callDefinition); } return callDefinition; } }