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

org.javersion.util.PersistentSortedMap Maven / Gradle / Ivy

There is a newer version: 0.15.3
Show newest version
/*
 * Copyright 2013 Samppa Saarela
 *
 * 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 org.javersion.util;

import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

import javax.annotation.concurrent.Immutable;

@Immutable
public interface PersistentSortedMap extends PersistentMap {

    @Override
    PersistentSortedMap assoc(K key, V value);

    @Override
    PersistentSortedMap assocAll(Map map);

    @Override
    PersistentSortedMap assocAll(Iterable> entries);

    @Override
    PersistentSortedMap merge(K key, V value, Merger> merger);

    @Override
    PersistentSortedMap mergeAll(Map map, Merger> merger);

    @Override
    PersistentSortedMap mergeAll(Iterable> entries, Merger> merger);

    @Override
    PersistentSortedMap dissoc(Object key);

    @Override
    PersistentSortedMap dissoc(Object key, Merger> merger);

    @Override
    MutableSortedMap toMutableMap();

    @Override
    // TODO: SortedMap
    Map asMap();

    Iterator> iterator(boolean asc);

    Iterable> range(K from, K to);

    Iterable> range(K from, K to, boolean asc);

    Iterable> range(final K from, final boolean fromInclusive, final K to, final boolean toInclusive);

    Iterable> range(final K from, final boolean fromInclusive, final K to, final boolean toInclusive, final boolean asc);

    Map.Entry getFirstEntry();

    Map.Entry getLastEntry();

    Map.Entry higherEntry(K key);

    Map.Entry ceilingEntry(K key);

    Map.Entry lowerEntry(K key);

    Map.Entry floorEntry(K key);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy