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

org.robobinding.attribute.ChildAttributeResolverMappings Maven / Gradle / Ivy

package org.robobinding.attribute;

import static org.robobinding.util.Preconditions.checkNotBlank;

import java.util.Map;

import org.robobinding.internal.guava.Maps;
import org.robobinding.internal.guava.Preconditions;

/**
 * 
 * @since 1.0
 * @version $Revision: 1.0 $
 * @author Cheng Wei
 */
public class ChildAttributeResolverMappings {
    private Map childAttributeResolvers;

    public ChildAttributeResolverMappings() {
	childAttributeResolvers = Maps.newHashMap();
    }

    public void map(ChildAttributeResolver resolver, String attribute) {
	checkNotBlank(attribute, "Attribute cannot be empty");
	Preconditions.checkNotNull(resolver, "Resolver cannot be null");

	childAttributeResolvers.put(attribute, resolver);
    }

    public ChildAttributeResolver resolverFor(String attribute) {
	if (childAttributeResolvers.containsKey(attribute)) {
	    return childAttributeResolvers.get(attribute);
	} else {
	    throw new RuntimeException("A ChildAttributeResolver for '" + attribute + "' is not specified");
	}
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy