org.statmantis.util.MapUtils.java Source code

Java tutorial

Introduction

Here is the source code for org.statmantis.util.MapUtils.java

Source

/*
 * Copyright 2010 Chad Retz
 * 
 * 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.statmantis.util;

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

import org.apache.commons.collections15.Transformer;

/**
 * Extension of {@link org.apache.commons.collections15.MapUtils}
 * 
 * @author Chad Retz
 */
public final class MapUtils extends org.apache.commons.collections15.MapUtils {

    public static <T, U> Entry<T, U> createEntry(final T key, final U value) {
        return new Entry<T, U>() {
            private U entryValue = value;

            @Override
            public T getKey() {
                return key;
            }

            @Override
            public U getValue() {
                return entryValue;
            }

            @Override
            public U setValue(U entryValue) {
                this.entryValue = entryValue;
                return entryValue;
            }
        };
    }

    public static <T, U, V, W> Map<V, W> transform(Map<T, U> original,
            Transformer<Entry<T, U>, Entry<V, W>> transformer) {
        Map<V, W> ret = new HashMap<V, W>(original.size());
        //TODO: Fail, can't add to an entry set idiot!
        ret.entrySet().addAll(CollectionUtils.transform(original.entrySet(), transformer));
        return ret;
    }

    private MapUtils() {
    }
}