Package org.apache.solr.common.params

# Class ModifiableSolrParams

java.lang.Object
org.apache.solr.common.params.SolrParams
org.apache.solr.common.params.ModifiableSolrParams

All Implemented Interfaces:
  `Serializable`, `Iterable<Map.Entry<String,String[]>>`, `MapSerializable`, `MapWriter`, `NavigableObject`, `org.noggit.JSONWriter.Writable`

Direct Known Subclasses:
  `SolrQuery`

public class ModifiableSolrParams extends SolrParams
This class is similar to `MultiMapSolrParams` except you can edit the parameters after it is initialized. It has helper functions to set/add integer and boolean param values.

Since:
  solr 1.3
See Also:
  - Serialized Form

## Nested Class Summary

## Nested classes/interfaces inherited from interface org.apache.solr.common.MapWriter

`MapWriter.EntryWriter`

## Field Summary

### Fields inherited from interface org.apache.solr.common.MapWriter

`EMPTY`

## Constructor Summary

Constructors
Constructor
Description
`ModifiableSolrParams()`
`ModifiableSolrParams(Map<String,String[]> v)`
Constructs a new ModifiableSolrParams directly using the provided Map<String,String[]>
`ModifiableSolrParams(SolrParams params)`
Constructs a new ModifiableSolrParams, copying values from an existing SolrParams

## Method Summary

Modifier and Type
Method
Description
`ModifiableSolrParams`
`add(String name, String... val)`
Add the given values to any existing name
`void`
`add(SolrParams params)`
Add all the params provided in the parameter to this params.
`void`
`clear()`
clear all parameters
`String`
`get(String param)`
Returns the first String value of a param, or null if not set.
`Map<String,String[]>`
`getMap()`
`Set<String>`
`getParameterNames()`
`Iterator<String>`
`getParameterNamesIterator()`
Returns an Iterator over the parameter names.
`String[]`
`getParams(String param)`
returns an array of the String values of a param, or null if no mapping for the param exists.
`Iterator<Map.Entry<String,String[]>>`
`iterator()`
Returns an Iterator of `Map.Entry` providing a multi-map view.
`static ModifiableSolrParams`
`of(SolrParams params)`
If the input params are of type ModifiableSolrParams, returns the input, otherwise, constructs a new ModifiableSolrParams, copying values from the given params.
`String[]`
`remove(String name)`
remove a field at the given name
`boolean`
`remove(String name, String value)`
remove the given value for the given name
`ModifiableSolrParams`
`set(String name, boolean val)`
`ModifiableSolrParams`
`set(String name, int val)`
`ModifiableSolrParams`
`set(String name, String... val)`
Replace any existing parameter with the given name.
`ModifiableSolrParams`
`setNonNull(String name, Object val)`
`int`
`size()`

### Methods inherited from class org.apache.solr.common.params.SolrParams

`equals, fpname, get, getBool, getBool, getDouble, getDouble, getFieldBool, getFieldBool, getFieldDouble, getFieldDouble, getFieldFloat, getFieldFloat, getFieldInt, getFieldInt, getFieldParam, getFieldParam, getFieldParams, getFloat, getFloat, getInt, getInt, getLong, getLong, getPrimitiveBool, getPrimitiveFieldBool, getPrimitiveFieldFloat, getPrimitiveInt, hashCode, of, of, required, stream, toLocalParamsString, toNamedList, toQueryString, toString, wrapAppended, wrapDefaults, writeMap`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.lang.Iterable

`forEach, spliterator`

### Methods inherited from interface org.apache.solr.common.MapWriter

`jsonStr, toMap, write`

### Methods inherited from interface org.apache.solr.common.NavigableObject

`_forEachEntry, _forEachEntry, _forEachEntry, _get, _get, _getStr, _getStr, _size`

## Constructor Details

### ModifiableSolrParams

public ModifiableSolrParams()

### ModifiableSolrParams

public ModifiableSolrParams(Map<String,String[]> v)
Constructs a new ModifiableSolrParams directly using the provided Map<String,String[]>

### ModifiableSolrParams

public ModifiableSolrParams(SolrParams params)
Constructs a new ModifiableSolrParams, copying values from an existing SolrParams

## Method Details

### of

public static ModifiableSolrParams of(SolrParams params)
If the input params are of type ModifiableSolrParams, returns the input, otherwise, constructs a new ModifiableSolrParams, copying values from the given params. If params is null, returns an empty ModifiableSolrParams instance.

### size

public int size()

### getMap

public Map<String,String[]> getMap()

### setNonNull

public ModifiableSolrParams setNonNull(String name, Object val)

### set

public ModifiableSolrParams set(String name, String... val)
Replace any existing parameter with the given name. if val==null remove key from params completely.

### set

public ModifiableSolrParams set(String name, int val)

### set

public ModifiableSolrParams set(String name, boolean val)

### add

public ModifiableSolrParams add(String name, String... val)
Add the given values to any existing name

Parameters:
  `name` - Key
  `val` - Array of value(s) added to the name. NOTE: If val is null or a member of val is null, then a corresponding null reference will be included when a get method is called on the key later.
Returns:
  this

### add

public void add(SolrParams params)
Add all the params provided in the parameter to this params. Any current value(s) for the same key will be overridden.

### remove

public String[] remove(String name)
remove a field at the given name

### clear

public void clear()
clear all parameters

### remove

public boolean remove(String name, String value)
remove the given value for the given name

Returns:
  true if the item was removed, false if null or not present

### get

public String get(String param)
Description copied from class: `SolrParams`
Returns the first String value of a param, or null if not set. To get all, call `SolrParams.getParams(String)` instead.

Specified by:
  `get` in class `SolrParams`

### getParameterNamesIterator

public Iterator<String> getParameterNamesIterator()
Description copied from class: `SolrParams`
Returns an Iterator over the parameter names. If you were to call a getter for this parameter, you should get a non-null value. Since you probably want the value, consider using Java 5 for-each style instead for convenience since a SolrParams implements `Iterable`.

Specified by:
  `getParameterNamesIterator` in class `SolrParams`

### getParameterNames

public Set<String> getParameterNames()

### getParams

public String[] getParams(String param)
Description copied from class: `SolrParams`
returns an array of the String values of a param, or null if no mapping for the param exists.

Specified by:
  `getParams` in class `SolrParams`

### iterator

public Iterator<Map.Entry<String,String[]>> iterator()
Description copied from class: `SolrParams`
Returns an Iterator of `Map.Entry` providing a multi-map view. Treat it as read-only.

Specified by:
  `iterator` in interface `Iterable<Map.Entry<String,String[]>>`
Overrides:
  `iterator` in class `SolrParams`