1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski package com.sun.star.script.framework.provider;
25*b1cdbd2cSJim Jagielski 
26*b1cdbd2cSJim Jagielski import java.util.StringTokenizer;
27*b1cdbd2cSJim Jagielski 
28*b1cdbd2cSJim Jagielski import java.lang.reflect.Method;
29*b1cdbd2cSJim Jagielski 
30*b1cdbd2cSJim Jagielski import com.sun.star.frame.XModel;
31*b1cdbd2cSJim Jagielski import com.sun.star.uno.IQueryInterface;
32*b1cdbd2cSJim Jagielski 
33*b1cdbd2cSJim Jagielski public class PathUtils {
34*b1cdbd2cSJim Jagielski 
35*b1cdbd2cSJim Jagielski     public static String FILE_URL_PREFIX;
36*b1cdbd2cSJim Jagielski     public static String BOOTSTRAP_NAME;
37*b1cdbd2cSJim Jagielski     private static boolean m_windows = false;
38*b1cdbd2cSJim Jagielski 
39*b1cdbd2cSJim Jagielski     static {
40*b1cdbd2cSJim Jagielski         // detect if windows platform
41*b1cdbd2cSJim Jagielski         if (System.getProperty("os.name").startsWith("Windows"))
42*b1cdbd2cSJim Jagielski             m_windows = true;
43*b1cdbd2cSJim Jagielski 
44*b1cdbd2cSJim Jagielski         FILE_URL_PREFIX = m_windows ? "file:///" : "file://";
45*b1cdbd2cSJim Jagielski         BOOTSTRAP_NAME = m_windows ? "bootstrap.ini" : "bootstraprc";
46*b1cdbd2cSJim Jagielski     }
getOidForModel( XModel xModel )47*b1cdbd2cSJim Jagielski     public static String getOidForModel( XModel xModel )
48*b1cdbd2cSJim Jagielski     {
49*b1cdbd2cSJim Jagielski         String oid = new String("");
50*b1cdbd2cSJim Jagielski         if ( xModel != null )
51*b1cdbd2cSJim Jagielski         {
52*b1cdbd2cSJim Jagielski             try
53*b1cdbd2cSJim Jagielski             {
54*b1cdbd2cSJim Jagielski                 Method getOid = IQueryInterface.class.getMethod("getOid", (java.lang.Class[])null);
55*b1cdbd2cSJim Jagielski                 if ( getOid != null )
56*b1cdbd2cSJim Jagielski                 {
57*b1cdbd2cSJim Jagielski                     oid = (String)getOid.invoke( xModel, new Object[0] );
58*b1cdbd2cSJim Jagielski                 }
59*b1cdbd2cSJim Jagielski 
60*b1cdbd2cSJim Jagielski             }
61*b1cdbd2cSJim Jagielski             catch ( Exception ignore )
62*b1cdbd2cSJim Jagielski             {
63*b1cdbd2cSJim Jagielski             }
64*b1cdbd2cSJim Jagielski         }
65*b1cdbd2cSJim Jagielski         return oid;
66*b1cdbd2cSJim Jagielski     }
make_url( String baseUrl, String url )67*b1cdbd2cSJim Jagielski     static  public String make_url( String baseUrl, String url )
68*b1cdbd2cSJim Jagielski     {
69*b1cdbd2cSJim Jagielski         StringBuffer buff = new StringBuffer( baseUrl.length() + url.length() );        buff.append( baseUrl );
70*b1cdbd2cSJim Jagielski         StringTokenizer t = new StringTokenizer( url, "/");
71*b1cdbd2cSJim Jagielski         while ( t.hasMoreElements() )
72*b1cdbd2cSJim Jagielski         {
73*b1cdbd2cSJim Jagielski            if ( buff.charAt( buff.length() - 1 ) != '/' )
74*b1cdbd2cSJim Jagielski            {
75*b1cdbd2cSJim Jagielski                buff.append('/');
76*b1cdbd2cSJim Jagielski            }
77*b1cdbd2cSJim Jagielski            buff.append( java.net.URLEncoder.encode( (String)t.nextElement() ) );        }
78*b1cdbd2cSJim Jagielski         return buff.toString();
79*b1cdbd2cSJim Jagielski     }
80*b1cdbd2cSJim Jagielski 
PathUtils()81*b1cdbd2cSJim Jagielski     private PathUtils() {
82*b1cdbd2cSJim Jagielski     }
83*b1cdbd2cSJim Jagielski }
84