/*
* JacORB - a free Java ORB
*
* Copyright (C) 1999-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.portableInterceptor;
import org.omg.PortableInterceptor.IORInfo;
/**
* This class extends the standard defined interface of the IORInfo
* object given to each IORInterceptor during creation of new IORs.
* It provides convenience methods to modify the newly created IOR.
* @author Marc Heide
*/
public interface IORInfoExt extends IORInfo
{
/**
* This method adds a further profile to an IOR.
* By using this method it is possible to append e.g. further IIOP
* profiles. The added profile is marshalled after all profiles
* already existing in profile list.
* @param profile the profile to add
*/
void add_profile(org.omg.ETF.Profile profile);
/**
* This method returns the number of profiles of the given type.
* The returned value can be used to iterate over the existing
* profiles of given type (get_profile()).
* @param tag profile tag, e.g. TAG_INTERNET_IOP.value
* @return number of profiles of given tag
*/
int get_number_of_profiles(int tag);
/**
* Returns the profile with the given tag at the given position.
* Following rule must apply to parameter position:<p>
* <code> 0 <= position < get_number_of_profiles(tag) </code><p>
* @param tag tag of profile, e.g. TAG_INTERNET_IOP.value
* @param position position in IOR
* @return profile
* @exception ArrayIndexOutOfBoundsException if position is
* out of range
*/
org.omg.ETF.Profile get_profile(int tag, int position);
/**
* Returns the first profile with the given tag (position == 0).
* If no profile with given tag exists, null is returned.
* @param tag tag of profile, e.g. TAG_INTERNET_IOP.value
* @return first profile or null if no profile with given
* tag exists
*/
org.omg.ETF.Profile get_profile(int tag);
}