/*
* @(#)BasicCompoundContext.java
*
* Copyright 2002 EGANTT LLP. All rights reserved.
* PROPRIETARY/QPL. Use is subject to license terms.
*/
package com.egantt.awt.graphics.context.compound;
import com.egantt.awt.graphics.context.CompoundContext;
import java.util.HashMap;
import java.util.Map;
/**
* A very simple implementation a trivial map
*/
public class BasicCompoundContext implements CompoundContext
{
protected static final String DEFAULT_GROUP = "defaultGroup";
protected final Map <Object, Map <String, Object>> attributes = new HashMap<Object, Map <String, Object>>();
//___________________________________________________________________________
public boolean put(String type, Object group, Object value)
{
Map<String, Object> attrib = this.attributes.get(group);
if (attrib == null)
{
attrib = new HashMap<String, Object>();
this.attributes.put(group, attrib);
}
attrib.put(type, value);
return true;
}
public boolean put(String type, Object value)
{
return put(type, DEFAULT_GROUP, value);
}
// __________________________________________________________________________
public Object get(Object key, Object type, Object group)
{
Map attrib = (Map) attributes.get(group);
if (attrib == null)
return group != DEFAULT_GROUP ? get(key, type, DEFAULT_GROUP) : null;
Object result = attrib.get(type);
return result != null || group == DEFAULT_GROUP
? result : get(key, type, DEFAULT_GROUP);
}
public Object get(Object key, Object type)
{
return get(key, type, DEFAULT_GROUP);
}
}