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

com.hubspot.jinjava.objects.collections.PyList Maven / Gradle / Ivy

There is a newer version: 2.7.4
Show newest version
package com.hubspot.jinjava.objects.collections;

import com.google.common.collect.ForwardingList;
import com.hubspot.jinjava.objects.PyWrapper;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;

public class PyList extends ForwardingList implements PyWrapper {
  private List list;

  public PyList(List list) {
    this.list = list;
  }

  @Override
  protected List delegate() {
    return list;
  }

  public List toList() {
    return list;
  }

  public boolean append(Object e) {
    return add(e);
  }

  public void insert(int i, Object e) {
    add(i, e);
  }

  public boolean extend(PyList e) {
    return addAll(e.list);
  }

  public Object pop() {
    return remove(list.size() - 1);
  }

  public Object pop(int index) {
    return remove(index);
  }

  public long count(Object o) {
    return stream().filter(object -> Objects.equals(object, o)).count();
  }

  public void reverse() {
    Collections.reverse(list);
  }

  public PyList copy() {
    return new PyList(new ArrayList<>(list));
  }

  public int index(Object o) {
    return indexOf(o);
  }

  public int index(Object o, int begin, int end) {
    for (int i = begin; i < end; i++) {
      if (Objects.equals(o, get(i))) {
        return i;
      }
    }
    return -1;
  }
}