private void stageArrayList()

in facebook-share/src/main/java/com/facebook/share/ShareApi.java [457:515]


  private void stageArrayList(
      final ArrayList arrayList,
      final CollectionMapper.OnMapValueCompleteListener onArrayListStagedListener) {
    final JSONArray stagedObject = new JSONArray();
    final CollectionMapper.Collection<Integer> collection =
        new CollectionMapper.Collection<Integer>() {
          @Override
          public Iterator<Integer> keyIterator() {
            final int size = arrayList.size();
            final Mutable<Integer> current = new Mutable<Integer>(0);
            return new Iterator<Integer>() {
              @Override
              public boolean hasNext() {
                return current.value < size;
              }

              @Override
              public Integer next() {
                return current.value++;
              }

              @Override
              public void remove() {}
            };
          }

          @Override
          public Object get(Integer key) {
            return arrayList.get(key);
          }

          @Override
          public void set(
              Integer key, Object value, CollectionMapper.OnErrorListener onErrorListener) {
            try {
              stagedObject.put(key, value);
            } catch (final JSONException ex) {
              String message = ex.getLocalizedMessage();
              if (message == null) {
                message = "Error staging object.";
              }
              onErrorListener.onError(new FacebookException(message));
            }
          }
        };
    final CollectionMapper.OnMapperCompleteListener onStagedArrayMapperCompleteListener =
        new CollectionMapper.OnMapperCompleteListener() {
          @Override
          public void onComplete() {
            onArrayListStagedListener.onComplete(stagedObject);
          }

          @Override
          public void onError(FacebookException exception) {
            onArrayListStagedListener.onError(exception);
          }
        };
    stageCollectionValues(collection, onStagedArrayMapperCompleteListener);
  }