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

io.pebbletemplates.pebble.template.GlobalContext Maven / Gradle / Ivy

The newest version!
package io.pebbletemplates.pebble.template;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class GlobalContext implements Map {

  private final ScopeChain scopeChain;

  public GlobalContext(ScopeChain scopeChain) {
    this.scopeChain = scopeChain;
  }

  @Override
  public Object get(Object key) {
    List globalScopes = this.scopeChain.getGlobalScopes();
    String keyAsString = String.valueOf(key);
    for (Scope scope : globalScopes) {
      Object result = scope.get(keyAsString);
      if (result != null) {
        return result;
      } else if (scope.containsKey(keyAsString)) {
        return null;
      }
    }

    return null;
  }

  @Override
  public boolean isEmpty() {
    return false;
  }

  @Override
  public int size() {
    throw new UnsupportedOperationException();
  }

  @Override
  public boolean containsKey(Object key) {
    throw new UnsupportedOperationException();
  }

  @Override
  public boolean containsValue(Object value) {
    throw new UnsupportedOperationException();
  }

  @Override
  public Object put(String key, Object value) {
    throw new UnsupportedOperationException();
  }

  @Override
  public Object remove(Object key) {
    throw new UnsupportedOperationException();
  }

  @Override
  public void putAll(Map m) {
    throw new UnsupportedOperationException();
  }

  @Override
  public void clear() {
    throw new UnsupportedOperationException();
  }

  @Override
  public Set keySet() {
    throw new UnsupportedOperationException();
  }

  @Override
  public Collection values() {
    throw new UnsupportedOperationException();
  }

  @Override
  public Set> entrySet() {
    throw new UnsupportedOperationException();
  }
}