/*
* JacORB - a free Java ORB
*
* Copyright (C) 1997-2014 Gerald Brose / The JacORB Team.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
package org.jacorb.orb;
/**
* @author Gerald Brose, FU Berlin
*/
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.omg.CORBA.NamedValue;
public class NVList
extends org.omg.CORBA.NVList
{
private final List<NamedValue> list;
private final org.omg.CORBA.ORB orb;
NVList(org.omg.CORBA.ORB orb, int count)
{
super();
this.orb = orb;
this.list = Collections.synchronizedList(new ArrayList<NamedValue>(count));
}
public int count()
{
return list.size();
}
public org.omg.CORBA.NamedValue add( int item_flags)
{
org.omg.CORBA.NamedValue namedValue = orb.create_named_value("", null, item_flags);
list.add(namedValue);
return namedValue;
}
public org.omg.CORBA.NamedValue add_item(String item_name, int item_flags)
{
org.omg.CORBA.NamedValue namedValue = orb.create_named_value(item_name, null, item_flags);
list.add(namedValue);
return namedValue;
}
public org.omg.CORBA.NamedValue add_value(java.lang.String item_name,
org.omg.CORBA.Any value,
int item_flags )
{
org.omg.CORBA.NamedValue namedValue = orb.create_named_value(item_name, value, item_flags);
list.add(namedValue);
return namedValue;
}
public org.omg.CORBA.NamedValue item(int index) throws org.omg.CORBA.Bounds
{
try
{
return list.get(index);
}
catch (ArrayIndexOutOfBoundsException e)
{
throw new org.omg.CORBA.Bounds(e.toString());
}
}
public void remove(int index) throws org.omg.CORBA.Bounds
{
try
{
list.remove(index);
}
catch (ArrayIndexOutOfBoundsException e)
{
throw new org.omg.CORBA.Bounds(e.toString());
}
}
public Iterator<NamedValue> iterator()
{
return list.iterator();
}
}