question: adds the given variable to the given index . if a variable which is being added is already in a index , it is moved to the new index . this information is used specifically by algorithm such as purify and mim build . the first variation only put an integer associated with the index , i.e. , the clusterings forms a partition where the integer represents the index id for the corresponding variable . the second variation associates a list of integers with each observed variable . when reading clustering information , one has to pay attention if the object retrieved is an integer or a list of integers . concode_field_sep long serialVersionUID concode_elem_sep Map<String,Integer> clusters concode_elem_sep Map<Integer,String> names concode_elem_sep int numClusters concode_field_sep Clusters serializableInstance concode_elem_sep int numClustersStored concode_elem_sep List<String> getVarsNotInCluster concode_elem_sep String getClusterName concode_elem_sep boolean isEmpty concode_elem_sep void removeFromClusters concode_elem_sep void setNumClusters concode_elem_sep String newClusterName concode_elem_sep List<String> getCluster concode_elem_sep void setClusterName concode_elem_sep Map<String,Integer> getClusters concode_elem_sep void readObject concode_elem_sep int hashCode concode_elem_sep boolean equals concode_elem_sep int getNumClusters concode_elem_sep String toString concode_elem_sep boolean isClustersBounded
target: void function ( int arg0 , String arg1 ) { if ( isClustersBounded ( ) && arg0 >= getNumClusters ( ) ) { throw new IllegalArgumentException ( ) ; } clusters . put ( arg1 , arg0 ) ; }