1d1766043SAndrew Rist/**************************************************************
2*21947a42Smseidel *
3d1766043SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4d1766043SAndrew Rist * or more contributor license agreements.  See the NOTICE file
5d1766043SAndrew Rist * distributed with this work for additional information
6d1766043SAndrew Rist * regarding copyright ownership.  The ASF licenses this file
7d1766043SAndrew Rist * to you under the Apache License, Version 2.0 (the
8d1766043SAndrew Rist * "License"); you may not use this file except in compliance
9d1766043SAndrew Rist * with the License.  You may obtain a copy of the License at
10*21947a42Smseidel *
11d1766043SAndrew Rist *   http://www.apache.org/licenses/LICENSE-2.0
12*21947a42Smseidel *
13d1766043SAndrew Rist * Unless required by applicable law or agreed to in writing,
14d1766043SAndrew Rist * software distributed under the License is distributed on an
15d1766043SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16d1766043SAndrew Rist * KIND, either express or implied.  See the License for the
17d1766043SAndrew Rist * specific language governing permissions and limitations
18d1766043SAndrew Rist * under the License.
19*21947a42Smseidel *
20d1766043SAndrew Rist *************************************************************/
21d1766043SAndrew Rist
22d1766043SAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir#ifndef __com_sun_star_util_PathSubstitution_idl__
25cdf0e10cSrcweir#define __com_sun_star_util_PathSubstitution_idl__
26cdf0e10cSrcweir
27cdf0e10cSrcweir#ifndef __com_sun_star_util_XStringSubstitution_idl__
28cdf0e10cSrcweir#include <com/sun/star/util/XStringSubstitution.idl>
29cdf0e10cSrcweir#endif
30cdf0e10cSrcweir
31cdf0e10cSrcweir#ifndef __com_sun_star_container_XNameContainer_idl__
32cdf0e10cSrcweir#include <com/sun/star/container/XNameContainer.idl>
33cdf0e10cSrcweir#endif
34cdf0e10cSrcweir
35cdf0e10cSrcweir#ifndef __com_sun_star_container_XContainerListener_idl__
36cdf0e10cSrcweir#include <com/sun/star/container/XContainerListener.idl>
37cdf0e10cSrcweir#endif
38cdf0e10cSrcweir
39cdf0e10cSrcweir//=============================================================================
40cdf0e10cSrcweir
41cdf0e10cSrcweirmodule com {  module sun {  module star {  module  util {
42cdf0e10cSrcweir
43cdf0e10cSrcweir//=============================================================================
44cdf0e10cSrcweir
45cdf0e10cSrcweir/** A service to support the substitution and resubstitution of path variables.
46cdf0e10cSrcweir
47cdf0e10cSrcweir        <p>
48*21947a42Smseidel        A path variable must be specified with the following syntax: "$("&lt;variable-name&gt;")".
49cdf0e10cSrcweir        Path variables are not case sensitive and are always provided as a UCB-complient URL's
50cdf0e10cSrcweir        (for example: "file:///c:/temp" or "file:///usr/install"). This is mandatory to support an
51cdf0e10cSrcweir        optional remote file system.<br>
52cdf0e10cSrcweir        A user defined list of path variables is supported. This list is stored in the Office
53cdf0e10cSrcweir        configuration file (org/openoffice/Office/Substitution.xml). Please have a look at the
54cdf0e10cSrcweir        schema definition file which configuration structure this file uses.<br>
55cdf0e10cSrcweir        There is also a set of variables that have pre-defined values:
56cdf0e10cSrcweir        </p>
57cdf0e10cSrcweir        <dl>
58cdf0e10cSrcweir        <dt>$(inst)</dt>
59cdf0e10cSrcweir        <dd>Installation path of the Office Basis layer.</dd>
60cdf0e10cSrcweir        <dt>$(prog)</dt>
61cdf0e10cSrcweir        <dd>Program path of the Office Basis layer.</dd>
62cdf0e10cSrcweir    <dt>$(brandbaseurl)</dt>
637950f2afSmseidel    <dd>Installation path of the Office Brand layer.</dd>
64cdf0e10cSrcweir        <dt>$(user)</dt>
65cdf0e10cSrcweir        <dd>The user installation directory.</dd>
66cdf0e10cSrcweir        <dt>$(work)</dt>
67cdf0e10cSrcweir        <dd>The work directory of the user. Under Windows this would be the
68cdf0e10cSrcweir        "MyDocuments" subdirectory. Under Unix this would be the home-directory</dd>
69cdf0e10cSrcweir    <dt>$(home)</dt>
70cdf0e10cSrcweir        <dd>The home directory of the user. Under Unix this would be the home-
71cdf0e10cSrcweir            directory. Under Windows this would be the "Documents and Settings\<username>"
72cdf0e10cSrcweir         subdirectory.</dd>
73cdf0e10cSrcweir    <dt>$(temp)</dt>
74cdf0e10cSrcweir        <dd>The current temporary directory.</dd>
75cdf0e10cSrcweir    <dt>$(path)</dt>
76cdf0e10cSrcweir        <dd>The value of PATH environment variable.</dd>
77cdf0e10cSrcweir    <dt>$(lang)</dt>
78cdf0e10cSrcweir        <dd>The country code used by the Office, like 01=english, 49=german.</dd>
79cdf0e10cSrcweir        <dt>$(langid)</dt>
80cdf0e10cSrcweir        <dd>The language code used by the Office, like 0x0009=english, 0x0409=english us.</dd>
81cdf0e10cSrcweir    <dt>$(vlang)</dt>
82cdf0e10cSrcweir        <dd>The language used by the Office as a string. Like "german" for a german Office.</dd>
83cdf0e10cSrcweir        </dl>
84cdf0e10cSrcweir        <p>
85cdf0e10cSrcweir        Attention: Most predefined variables describe an absolute path.
86cdf0e10cSrcweir        The only exceptions are: $(lang), $(langid) and $(vlang).
87cdf0e10cSrcweir        Therefore the service implementation should only substitute variables which
88cdf0e10cSrcweir        are located at the start of a provided path string or are part of a multi-path.
89*21947a42Smseidel        This special service is not designed to be a text substitution but shall
90cdf0e10cSrcweir        provide (a) valid substituted path(s).
91cdf0e10cSrcweir        </p>
92cdf0e10cSrcweir
9334c958abSJürgen Schmidt    @since OpenOffice 1.1.2
94cdf0e10cSrcweir*/
95cdf0e10cSrcweir
96cdf0e10cSrcweirpublished service PathSubstitution
97cdf0e10cSrcweir{
98cdf0e10cSrcweir        //-------------------------------------------------------------------------
99cdf0e10cSrcweir        /** Interface to exchange path variables with defined paths and to resubstitute paths with path variables.
100cdf0e10cSrcweir
101cdf0e10cSrcweir                <p>
102a893be29SPedro Giffuni                To resubstitute path variables the caller must provide paths as UCB-compliant URL's.
103cdf0e10cSrcweir                </p>
104cdf0e10cSrcweir        */
105cdf0e10cSrcweir        interface com::sun::star::util::XStringSubstitution;
106cdf0e10cSrcweir};
107cdf0e10cSrcweir
108cdf0e10cSrcweir//=============================================================================
109cdf0e10cSrcweir
110cdf0e10cSrcweir}; }; }; };
111cdf0e10cSrcweir
112cdf0e10cSrcweir#endif
113