Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2011 Google Inc.
   *
   * Licensed under the Apache License, Version 2.0 (the "License"); you may not
   * use this file except in compliance with the License. You may obtain a copy of
   * the License at
   *
   * http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  * License for the specific language governing permissions and limitations under
  * the License.
  */
 package elemental.util.impl;
 
 
JRE implementation of ArrayOf for server and dev mode.
 
 public class JreArrayOf<T> implements ArrayOf<T> {
 
   /*
    * TODO(cromwellian): this implemation uses JRE ArrayList. A direct
    * implementation would be more efficient. 
    */
   private ArrayList<T> array;
 
   public JreArrayOf() {
      = new ArrayList<T>();
   }
 
   JreArrayOf(ArrayList<T> array) {
     this. = array;
   }
 
   @Override
   public ArrayOf<T> concat(ArrayOf<T> values) {
     assert values instanceof JreArrayOf;
     ArrayList<T> toReturn = new ArrayList<T>();
     toReturn.addAll(((JreArrayOf<T>) values).);
     return new JreArrayOf<T>(toReturn);
   }
 
   @Override
   public boolean contains(T value) {
     return .contains(value);
   }
 
   @Override
   public T get(int index) {
     return index >= length() ? null : .get(index);
   }
 
   @Override
   public int indexOf(T value) {
     return .indexOf(value);
   }
 
   @Override
   public void insert(int index, T value) {
     if (index >= length()) {
       .add(value);
     } else {
       if (index < 0) {
         index = index + length();
         if (index < 0) {
           index = 0;
         }
       }
       .add(indexvalue);
     }
   }
 
   @Override
   public boolean isEmpty() {
     return .isEmpty();
   }
 
   @Override
   public String join() {
     return join(",");
   }
 
   @Override
   public String join(String separator) {
     StringBuilder toReturn = new StringBuilder();
     boolean first = true;
     for (T val : ) {
       if (first) {
         first = false;
       } else {
        toReturn.append(separator);
      }
      // JS treats null as "" for purposes of join()
      toReturn.append(val == null ? "" : toStringWithTrim(val));
    }
    return toReturn.toString();
  }
  public int length() {
    return .size();
  }
  public T peek() {
    return isEmpty() ? null : .get(.size() - 1);
  }
  public T pop() {
    return isEmpty() ? null : .remove(.size() - 1);
  }
  public void push(T value) {
    .add(value);
  }
  public void remove(T value) {
    .remove(value);
  }
  public void removeByIndex(int index) {
    if (index < length()) {
      .remove(index);
    }
  }
  public void set(int index, T value) {
    ensureLength(index);
    .set(indexvalue);
  }
  public void setLength(int length) {
    if (length > length()) {
      for (int i = length(); i < lengthi++) {
        .add(null);
      }
    } else if (length < length()) {
      for (int i = length(); i > lengthi--) {
        .remove(i - 1);
      }
    }
  }
  public T shift() {
    return isEmpty() ? null : .remove(0);
  }
  public void sort(final CanCompare<T> comparator) {
    Collections.sort(new Comparator<T>() {
      @Override
      public int compare(T o1, T o2) {
        return comparator.compare(o1o2);
      }
    });
  }
  public ArrayOf<T> splice(int indexint count) {
    ArrayList<T> toReturn = new ArrayList<T>(
        .subList(indexindex + count));
    for (int i = 0; i < count && !isEmpty(); i++) {
      .remove(index);
    }
    return new JreArrayOf<T>(toReturn);
  }
  public void unshift(T value) {
    .add(0, value);
  }
  private void ensureLength(int index) {
    if (index >= length()) {
      setLength(index + 1);
    }
  }
  static String toStringWithTrim(Object obj) {
    if (obj instanceof Number) {
      String numberStr = obj.toString();
      if (numberStr.endsWith(".0")) {
        numberStr = numberStr.substring(0, numberStr.length() - 2);
      }
      return numberStr;
    }
    return obj.toString();
  }
New to GrepCode? Check out our FAQ X