Package com.extjs.gxt.ui.client.util

Source Code of com.extjs.gxt.ui.client.util.Params

/*
* Ext GWT - Ext for GWT
* Copyright(c) 2007, 2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
package com.extjs.gxt.ui.client.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.extjs.gxt.ui.client.js.JsObject;
import com.extjs.gxt.ui.client.js.JsUtil;
import com.google.gwt.core.client.JavaScriptObject;

/**
* Aggregates both a list of values and a map of named values. Allows methods to
* support both list and maps in a single parameter.
* <p>
* Note that only one type of values should be specified.
* </p>
*/
public class Params {

  private List<Object> values;
  private Map<String, Object> mapValues;

  public boolean isList = false;

  public boolean isMap = false;

  /**
   * Creates a new params instance.
   */
  public Params() {

  }

  /**
   * Creates a new params instance.
   *
   * @param values the initial values
   */
  public Params(Object... values) {
    for (int i = 0; i < values.length; i++) {
      add(values[i]);
    }
  }

  /**
   * Creates a new parameters instance.
   *
   * @param key the key
   * @param value the value
   */
  public Params(String key, Object value) {
    mapValues = new HashMap<String, Object>();
    mapValues.put(key, value);
  }

  /**
   * Creates a new params instance.
   *
   * @param values the initial values
   */
  public Params(Map<String, Object> values) {
    mapValues = values;
  }

  /**
   * Adds a value.
   *
   * @param value the value to add
   * @return this
   */
  public Params add(Object value) {
    isList = true;
    if (values == null) values = new ArrayList<Object>();
    values.add(value);
    return this;
  }

  /**
   * Sets a value.
   *
   * @param key the key
   * @param value the value
   * @return this
   */
  public Params set(String key, Object value) {
    isMap = true;
    if (value == null) return this;
    if (mapValues == null) {
      mapValues = new HashMap<String, Object>();
    }
    mapValues.put(key, value);
    return this;
  }

  public Map<String, Object> getMap() {
    return mapValues;
  }

  public List<Object> getList() {
    return values;
  }

  public JavaScriptObject getValues() {
    if (values != null) {
      return JsUtil.toJavaScriptArray(values.toArray());
    } else if (mapValues != null) {
      return JsUtil.toJavaScriptObject(mapValues);
    }
    return new JsObject().getJsObject();
  }

}
TOP

Related Classes of com.extjs.gxt.ui.client.util.Params

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.