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

com.greenpepper.shaded.com.vladsch.flexmark.util.collection.IndexedItemSetMapBase Maven / Gradle / Ivy

There is a newer version: 4.2.4
Show newest version
package com.greenpepper.shaded.com.vladsch.flexmark.util.collection;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public abstract class IndexedItemSetMapBase implements IndexedItemSetMap {
    protected final HashMap myBag;

    public IndexedItemSetMapBase() {
        this(0);
    }

    public IndexedItemSetMapBase(int capacity) {
        this.myBag = new HashMap();
    }

    @Override
    public abstract K mapKey(M key);
    @Override
    public abstract S newSet();
    @Override
    public abstract boolean addSetItem(S s, int item);
    @Override
    public abstract boolean removeSetItem(S s, int item);
    @Override
    public abstract boolean containsSetItem(S s, int item);

    @Override
    public boolean addItem(M key, int item) {
        K mapKey = mapKey(key);
        S itemSet = myBag.get(mapKey);
        if (itemSet == null) {
            itemSet = newSet();
            myBag.put(mapKey, itemSet);
        }
        return addSetItem(itemSet, item);
    }

    @Override
    public boolean removeItem(M key, int item) {
        K mapKey = mapKey(key);
        S itemSet = myBag.get(mapKey);
        return itemSet != null && removeSetItem(itemSet, item);
    }

    @Override
    public boolean containsItem(M key, int item) {
        K mapKey = mapKey(key);
        S itemSet = myBag.get(mapKey);
        return itemSet != null && containsSetItem(itemSet, item);
    }

    @Override
    public int size() {
        return myBag.size();
    }

    @Override
    public boolean isEmpty() {
        return myBag.isEmpty();
    }

    @Override
    public boolean containsKey(Object o) {
        return myBag.containsKey(o);
    }

    @Override
    public boolean containsValue(Object o) {
        return myBag.containsValue(o);
    }

    @Override
    public S get(Object o) {
        return myBag.get(o);
    }

    @Override
    public S put(K k, S vs) {
        return myBag.put(k, vs);
    }

    @Override
    public S remove(Object o) {
        return myBag.remove(o);
    }

    @Override
    public void putAll(Map map) {
        myBag.putAll(map);
    }

    @Override
    public void clear() {
        myBag.clear();
    }

    @Override
    public Set keySet() {
        return myBag.keySet();
    }

    @Override
    public Collection values() {
        return myBag.values();
    }

    @Override
    public Set> entrySet() {
        return myBag.entrySet();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy