View Javadoc

1   /*
2    *  soapUI, copyright (C) 2004-2009 eviware.com 
3    *
4    *  soapUI is free software; you can redistribute it and/or modify it under the 
5    *  terms of version 2.1 of the GNU Lesser General Public License as published by 
6    *  the Free Software Foundation.
7    *
8    *  soapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
9    *  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
10   *  See the GNU Lesser General Public License for more details at gnu.org.
11   */
12  package com.eviware.soapui.model.util;
13  
14  import java.util.ArrayList;
15  import java.util.Arrays;
16  import java.util.List;
17  
18  import com.eviware.soapui.model.ModelItem;
19  
20  /***
21   * Utility for handling model item names.
22   * 
23   * @author Lars Høidahl
24   */
25  
26  public class ModelItemNames<T extends ModelItem>
27  {
28  	private List<T> elements;
29  
30  	public ModelItemNames( List<T> elements )
31  	{
32  		this.elements = new ArrayList<T>( elements );
33  	}
34  
35  	public ModelItemNames( T[] elements )
36  	{
37  		// Create an ArrayList to make sure that elements is modifyable.
38  		this.elements = new ArrayList<T>( Arrays.asList( elements ) );
39  	}
40  
41  	public String[] getNames()
42  	{
43  		ArrayList<String> list = getElementNameList();
44  		return list.toArray( new String[list.size()] );
45  	}
46  
47  	private ArrayList<String> getElementNameList()
48  	{
49  		ArrayList<String> elementNames = new ArrayList<String>();
50  		for( T element : elements )
51  		{
52  			elementNames.add( element.getName() );
53  		}
54  		return elementNames;
55  	}
56  
57  	public T getElement( String name )
58  	{
59  		int index = getElementNameList().indexOf( name );
60  		return elements.get( index );
61  	}
62  
63  	public void addElement( T element )
64  	{
65  		elements.add( element );
66  	}
67  
68  	public int getSize()
69  	{
70  		return elements.size();
71  	}
72  
73  	public String getNameAt( int i )
74  	{
75  		return elements.get( i ).getName();
76  	}
77  }