/**
  * @param key
  * @param value
  * @see edu.utah.further.core.api.chain.AttributeContainer#setAttribute(java.lang.String,
  *     java.lang.Object)
  */
 @Override
 public void setAttribute(final String key, final Object value) {
   mainContainer.setAttribute(key, value);
 }
 /**
  * Overlay an attribute container over the current main attribute container.
  *
  * @param container attribute container to add (overlay) to this object
  */
 private void addContainer(final AttributeContainer container) {
   this.mainContainer.addAttributes(container.getAttributes());
 }
 /** @see edu.utah.further.core.api.chain.AttributeContainer#removeAllAttributes() */
 @Override
 public void removeAllAttributes() {
   mainContainer.removeAllAttributes();
 }
 /**
  * @param key
  * @see edu.utah.further.core.api.chain.AttributeContainer#removeAttribute(java.lang.String)
  */
 @Override
 public void removeAttribute(final String key) {
   mainContainer.removeAttribute(key);
 }
 /**
  * @param <T>
  * @param name
  * @return
  * @see edu.utah.further.core.api.chain.AttributeContainer#getAttribute(java.lang.String)
  */
 @Override
 public <T> T getAttribute(final String name) {
   return mainContainer.<T>getAttribute(name);
 }
 /**
  * @return
  * @see edu.utah.further.core.api.chain.AttributeContainer#getAttributeNames()
  */
 @Override
 public Set<String> getAttributeNames() {
   return mainContainer.getAttributeNames();
 }
 /**
  * @param map
  * @see edu.utah.further.core.api.chain.AttributeContainer#addAttributes(java.util.Map)
  */
 @Override
 public void addAttributes(final Map<String, ?> map) {
   mainContainer.addAttributes(map);
 }
 /**
  * @param attributes
  * @see edu.utah.further.core.api.chain.AttributeContainer#setAttributes(java.util.Map)
  */
 @Override
 public void setAttributes(final Map<String, ?> attributes) {
   mainContainer.setAttributes(attributes);
 }
 /**
  * @return
  * @see edu.utah.further.core.api.chain.AttributeContainer#getAttributes()
  */
 @Override
 public Map<String, Object> getAttributes() {
   return mainContainer.getAttributes();
 }
 /**
  * @param label
  * @param value
  * @see
  *     edu.utah.further.core.api.chain.AttributeContainer#setAttribute(edu.utah.further.core.api.context.Labeled,
  *     java.lang.Object)
  */
 @Override
 public void setAttribute(final Labeled label, final Object value) {
   mainContainer.setAttribute(label, value);
 }
 /**
  * @param <T>
  * @param label
  * @return
  * @see
  *     edu.utah.further.core.api.chain.AttributeContainer#getAttribute(edu.utah.further.core.api.context.Labeled)
  */
 @Override
 public <T> T getAttribute(final Labeled label) {
   return mainContainer.<T>getAttribute(label);
 }