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

com.undefinedlabs.scope.context.SharedContextMap Maven / Gradle / Ivy

package com.undefinedlabs.scope.context;

import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

public class SharedContextMap {

  public static final ImmutableContext.Key SHARED_CONTEXT_MAP_KEY =
      ImmutableContext.key("scope-shared-context-map-key");

  private final String id;
  private final Map map;

  public SharedContextMap() {
    this(UUID.randomUUID().toString(), new HashMap());
  }

  public SharedContextMap(final String id, final Map map) {
    this.id = id;
    this.map = map;
  }

  public String getId() {
    return id;
  }

  public Map getMap() {
    return map;
  }

  public boolean isEmpty() {
    return map.isEmpty();
  }

  public Object put(final String key, final Object value) {
    return map.put(key, value);
  }

  public Object get(final String key) {
    return map.get(key);
  }

  @Override
  public boolean equals(final Object o) {
    if (this == o) {
      return true;
    }

    if (o == null || getClass() != o.getClass()) {
      return false;
    }

    final SharedContextMap that = (SharedContextMap) o;

    return new EqualsBuilder().append(id, that.id).isEquals();
  }

  @Override
  public int hashCode() {
    return new HashCodeBuilder(17, 37).append(id).toHashCode();
  }

  @Override
  public String toString() {
    return new ToStringBuilder(this).append("id", id).append("map", map).toString();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy