All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.gs.collections.impl.map.fixed.AbstractMemoryEfficientMutableMap Maven / Gradle / Ivy

Go to download

GS Collections is a collections framework for Java. It has JDK-compatible List, Set and Map implementations with a rich API and set of utility classes that work with any JDK compatible Collections, Arrays, Maps or Strings. The iteration protocol was inspired by the Smalltalk collection framework.

There is a newer version: 7.0.3
Show newest version
/*
 * Copyright 2014 Goldman Sachs.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.gs.collections.impl.map.fixed;

import java.util.Map;

import com.gs.collections.api.block.function.Function;
import com.gs.collections.api.block.function.Function0;
import com.gs.collections.api.block.function.Function2;
import com.gs.collections.api.block.predicate.Predicate2;
import com.gs.collections.api.block.procedure.Procedure;
import com.gs.collections.api.map.FixedSizeMap;
import com.gs.collections.api.map.MutableMap;
import com.gs.collections.api.tuple.Pair;
import com.gs.collections.impl.list.fixed.ArrayAdapter;
import com.gs.collections.impl.map.mutable.AbstractMutableMap;
import com.gs.collections.impl.map.mutable.UnifiedMap;

abstract class AbstractMemoryEfficientMutableMap
        extends AbstractMutableMap
        implements FixedSizeMap
{
    public V put(K key, V value)
    {
        throw new UnsupportedOperationException("Cannot call put() on " + this.getClass().getSimpleName());
    }

    public V remove(Object key)
    {
        throw new UnsupportedOperationException("Cannot call remove() on " + this.getClass().getSimpleName());
    }

    public void putAll(Map map)
    {
        throw new UnsupportedOperationException("Cannot call putAll() on " + this.getClass().getSimpleName());
    }

    public void clear()
    {
        throw new UnsupportedOperationException("Cannot call clear() on " + this.getClass().getSimpleName());
    }

    public V removeKey(K key)
    {
        throw new UnsupportedOperationException("Cannot call removeKey() on " + this.getClass().getSimpleName());
    }

    public  MutableMap collectKeysAndValues(
            Iterable iterable,
            Function keyFunction,
            Function valueFunction)
    {
        throw new UnsupportedOperationException("Cannot call collectKeysAndValues() on " + this.getClass().getSimpleName());
    }

    @Override
    public V updateValue(K key, Function0 factory, Function function)
    {
        throw new UnsupportedOperationException(this.getClass().getSimpleName() + ".updateValue() not implemented yet");
    }

    @Override
    public 

V updateValueWith(K key, Function0 factory, Function2 function, P parameter) { throw new UnsupportedOperationException(this.getClass().getSimpleName() + ".updateValueWith() not implemented yet"); } public MutableMap newEmpty() { return UnifiedMap.newMap(); } @Override public MutableMap newEmpty(int capacity) { return UnifiedMap.newMap(capacity); } @Override public MutableMap withAllKeyValues(Iterable> keyValues) { MutableMap map = this; for (Pair keyVal : keyValues) { map = map.withKeyValue(keyVal.getOne(), keyVal.getTwo()); } return map; } @Override public MutableMap withAllKeyValueArguments(Pair... keyValues) { return this.withAllKeyValues(ArrayAdapter.adapt(keyValues)); } @Override public MutableMap withoutAllKeys(Iterable keys) { MutableMap map = this; for (K key : keys) { map = map.withoutKey(key); } return map; } @Override public FixedSizeMap tap(Procedure procedure) { this.forEach(procedure); return this; } @Override public abstract FixedSizeMap select(Predicate2 predicate); @Override public abstract FixedSizeMap collectValues(Function2 function); @Override public abstract FixedSizeMap collect(Function2> function); @Override public abstract FixedSizeMap reject(Predicate2 predicate); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy