blob: 9439351f68b04db9a2918dd4d48f358c65925790 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef __com_sun_star_util_XStringSubstitution_idl__
#define __com_sun_star_util_XStringSubstitution_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
#ifndef __com_sun_star_container_NoSuchElementException_idl__
#include <com/sun/star/container/NoSuchElementException.idl>
#endif
//=============================================================================
module com { module sun { module star { module util {
//=============================================================================
/** A common interface for substituting string variables with
other strings.
<p>
The substitution algorithm and the syntax for a string variable are
not part of this interface definition. Please look at the documentation
of the implementation that must specify these parameters.
</p>
@since OpenOffice 1.1.2
*/
published interface XStringSubstitution : com::sun::star::uno::XInterface
{
//-------------------------------------------------------------------------
/** Exchanges variables inside a given text with a substitution text
defined for the variables.
<p>
The method iterates through it's internal variables list to match the
variables in the given string. A match replaces the variable with the
string defined for this variable. If no variable can be found in the string
it will be returned unchanged. The behavior if a variable is found in
the string but it is unknown for the implementation depends on the parameter
bSubstRequired.
</p>
@param aText
A string containing variables that should be substituted.
@param bSubstRequired
Specifies if a successfull substitution is required. The
function throws a <type scope="com::sun::star::container">NoSuchElementException</type>
if it finds a variable that is unknown. In this case it is possible
that the returned string would not be what the caller expected!
@return
Returns a string based on <var>aText</var> where all variables were
exchanged with their value defined at calling time.
*/
string substituteVariables( [in] string aText, [in] boolean bSubstRequired )
raises( com::sun::star::container::NoSuchElementException );
//-------------------------------------------------------------------------
/** Tries to replace parts of aText with variables that represents
these sub strings.
<p>
The method iterates through it's internal variable list and tries to match
parts of the given string Tries to replace parts of <var>aText</var> with
variables that represents these sub strings.If more than one variable
matches the one with the longest matching sub string will be chosen.
</p>
@param aText
A string where known substrings should be replaced by variables.
@return
Returns the resubstituted string with variables for all parts
that could be replaced. The unchanged argument will be returned
if nothing can be resubtituted.
*/
string reSubstituteVariables( [in] string aText );
//-------------------------------------------------------------------------
/** Returns the current value of a variable.
<p>
The method iterates through it's internal variable list and tries to
find the given variable. If the variable is unkown a
<type scope="com::sun::star::container">NoSuchElementException</type>
is thrown.
</p>
@param variable
The name of a variable.
@return
Returns a string that represents the variable. If the
variable is unknown a <type scope="com::sun::star::container">NoSuchElementException</type>
is thrown.
*/
string getSubstituteVariableValue( [in] string variable )
raises (::com::sun::star::container::NoSuchElementException );
};
//=============================================================================
}; }; }; };
#endif