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#ifndef __com_sun_star_resource_XStringResourcePersistence_idl__ 24*b1cdbd2cSJim Jagielski#define __com_sun_star_resource_XStringResourcePersistence_idl__ 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_resource_XStringResourceManager_idl__ 27*b1cdbd2cSJim Jagielski#include <com/sun/star/resource/XStringResourceManager.idl> 28*b1cdbd2cSJim Jagielski#endif 29*b1cdbd2cSJim Jagielski 30*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_embed_XStorage_idl__ 31*b1cdbd2cSJim Jagielski#include <com/sun/star/embed/XStorage.idl> 32*b1cdbd2cSJim Jagielski#endif 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_task_XInteractionHandler_idl__ 35*b1cdbd2cSJim Jagielski#include <com/sun/star/task/XInteractionHandler.idl> 36*b1cdbd2cSJim Jagielski#endif 37*b1cdbd2cSJim Jagielski 38*b1cdbd2cSJim Jagielski 39*b1cdbd2cSJim Jagielski//============================================================================= 40*b1cdbd2cSJim Jagielski 41*b1cdbd2cSJim Jagielskimodule com { module sun { module star { module resource { 42*b1cdbd2cSJim Jagielski 43*b1cdbd2cSJim Jagielski//============================================================================= 44*b1cdbd2cSJim Jagielski/** 45*b1cdbd2cSJim Jagielski Interface derived from XStringResourceManager containing 46*b1cdbd2cSJim Jagielski basic persistence functionality limited to operations that 47*b1cdbd2cSJim Jagielski are independend from a associated location or storage. 48*b1cdbd2cSJim Jagielski 49*b1cdbd2cSJim Jagielski @see <type>XStringResourceManager</type>. 50*b1cdbd2cSJim Jagielski*/ 51*b1cdbd2cSJim Jagielskipublished interface XStringResourcePersistence: com::sun::star::resource::XStringResourceManager 52*b1cdbd2cSJim Jagielski{ 53*b1cdbd2cSJim Jagielski /** 54*b1cdbd2cSJim Jagielski Stores all string table data respectively all data modified since 55*b1cdbd2cSJim Jagielski the last call to <member>store</member> to the location or storage 56*b1cdbd2cSJim Jagielski associated with the StringResourceManager. Each locale is stored 57*b1cdbd2cSJim Jagielski in a single file following the format of Java properties files. 58*b1cdbd2cSJim Jagielski 59*b1cdbd2cSJim Jagielski This interface is supported by the services 60*b1cdbd2cSJim Jagielski <type>StringResourceWithLocation</type> and 61*b1cdbd2cSJim Jagielski <type>StringResourceWithStorage</type> 62*b1cdbd2cSJim Jagielski 63*b1cdbd2cSJim Jagielski The StringResourceWithLocation is initialised with an URL 64*b1cdbd2cSJim Jagielski specifying a location used to load data from and store data to, 65*b1cdbd2cSJim Jagielski see <type>StringResourceWithLocation</type>. 66*b1cdbd2cSJim Jagielski 67*b1cdbd2cSJim Jagielski The StringResourceWithStorage is initialised with an in- 68*b1cdbd2cSJim Jagielski stance of <type scope="com::sun::star::embed">XStorage</type> 69*b1cdbd2cSJim Jagielski used to load data from and store data to, 70*b1cdbd2cSJim Jagielski see <type>StringResourceWithStorage</type>. 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski If the string table isn't modified (see <member>isModified</member>) 73*b1cdbd2cSJim Jagielski this method does nothing. 74*b1cdbd2cSJim Jagielski 75*b1cdbd2cSJim Jagielski This method can throw all exceptions thrown by the methods of 76*b1cdbd2cSJim Jagielski <type scope="com::sun::star::embed">XStorage</type> respectively 77*b1cdbd2cSJim Jagielski a <type scope="com::sun::star::ucb">CommandAbortedException in 78*b1cdbd2cSJim Jagielski case of a StringResourceWithLocation for all exceptions that are 79*b1cdbd2cSJim Jagielski not handled by a previously specified 80*b1cdbd2cSJim Jagielski <type scope="com::sun::star::task">XInteractionHandler</type>. 81*b1cdbd2cSJim Jagielski The handler to be used for the store operation can be specified 82*b1cdbd2cSJim Jagielski during initialisation of <type>StringResourceWithLocation</type>. 83*b1cdbd2cSJim Jagielski 84*b1cdbd2cSJim Jagielski @throws <type scope="com::sun::star::lang">NoSupportException</type> 85*b1cdbd2cSJim Jagielski if no URL or no valid storage are provided. 86*b1cdbd2cSJim Jagielski */ 87*b1cdbd2cSJim Jagielski void store() 88*b1cdbd2cSJim Jagielski raises( com::sun::star::lang::NoSupportException, 89*b1cdbd2cSJim Jagielski com::sun::star::uno::Exception ); 90*b1cdbd2cSJim Jagielski 91*b1cdbd2cSJim Jagielski 92*b1cdbd2cSJim Jagielski /** 93*b1cdbd2cSJim Jagielski provides the current modify state of the StringResourceManager instance. 94*b1cdbd2cSJim Jagielski 95*b1cdbd2cSJim Jagielski @return 96*b1cdbd2cSJim Jagielski <TRUE/> if the string table has changed since the last call to 97*b1cdbd2cSJim Jagielski <member>store</member> or, if supported 98*b1cdbd2cSJim Jagielski <code>XStringResourceWithStorage::storeAsStorage</code>. 99*b1cdbd2cSJim Jagielski <FALSE/> if the table hasn't changed. 100*b1cdbd2cSJim Jagielski */ 101*b1cdbd2cSJim Jagielski boolean isModified(); 102*b1cdbd2cSJim Jagielski 103*b1cdbd2cSJim Jagielski 104*b1cdbd2cSJim Jagielski /** 105*b1cdbd2cSJim Jagielski Sets the comment stored first in each locale data file. 106*b1cdbd2cSJim Jagielski 107*b1cdbd2cSJim Jagielski This interface method can be used to overwrite the comment used 108*b1cdbd2cSJim Jagielski during initialisation of the services 109*b1cdbd2cSJim Jagielski <type>StringResourceWithLocation</type> or 110*b1cdbd2cSJim Jagielski <type>StringResourceWithStorage</type> 111*b1cdbd2cSJim Jagielski 112*b1cdbd2cSJim Jagielski @param Comment 113*b1cdbd2cSJim Jagielski Comment stored first in each properties file followed by a line 114*b1cdbd2cSJim Jagielski feed character. The line feed character is added automatically 115*b1cdbd2cSJim Jagielski and hasn't to be part of the comment string. The caller is re- 116*b1cdbd2cSJim Jagielski sponsible that the passed string is a valid comment in a Java 117*b1cdbd2cSJim Jagielski properties file, e.g. "# My strings". The string may be empty. 118*b1cdbd2cSJim Jagielski */ 119*b1cdbd2cSJim Jagielski void setComment( [in] string Comment ); 120*b1cdbd2cSJim Jagielski 121*b1cdbd2cSJim Jagielski 122*b1cdbd2cSJim Jagielski /** 123*b1cdbd2cSJim Jagielski Stores all string table data to the provided storage. 124*b1cdbd2cSJim Jagielski 125*b1cdbd2cSJim Jagielski Calling this method does not affect the association with a location 126*b1cdbd2cSJim Jagielski (in case of a <type>StringResourceWithLocation</type> instance) 127*b1cdbd2cSJim Jagielski repectively with a storage (in case of a 128*b1cdbd2cSJim Jagielski <type>StringResourceWithStorage</type> instance). 129*b1cdbd2cSJim Jagielski The modified state isn't affected either. 130*b1cdbd2cSJim Jagielski 131*b1cdbd2cSJim Jagielski This method can be used to make a copy of the current string 132*b1cdbd2cSJim Jagielski table data to a storage. This method can throw all exceptions 133*b1cdbd2cSJim Jagielski thrown by the methods of <type scope="com::sun::star::embed">XStorage</type> 134*b1cdbd2cSJim Jagielski 135*b1cdbd2cSJim Jagielski @param Storage 136*b1cdbd2cSJim Jagielski all string table data will be stored to this storage. 137*b1cdbd2cSJim Jagielski 138*b1cdbd2cSJim Jagielski @param BaseName 139*b1cdbd2cSJim Jagielski Base string for the file names used to store the locale data. 140*b1cdbd2cSJim Jagielski The locale data is stored in Java properties files also following 141*b1cdbd2cSJim Jagielski the corresponding naming sceme. The files will be named like this: 142*b1cdbd2cSJim Jagielski "[BaseName]_[Language]_[Country].properties", 143*b1cdbd2cSJim Jagielski e.g. "MyBaseName_en_US.properties" 144*b1cdbd2cSJim Jagielski If an empty string is passed for BaseName, "strings" will be used 145*b1cdbd2cSJim Jagielski as BaseName. 146*b1cdbd2cSJim Jagielski 147*b1cdbd2cSJim Jagielski @param Comment 148*b1cdbd2cSJim Jagielski Comment stored first in each properties file, 149*b1cdbd2cSJim Jagielski for a detailed description see <member>setComment</member>. 150*b1cdbd2cSJim Jagielski 151*b1cdbd2cSJim Jagielski This method can throw all exceptions thrown by the methods of 152*b1cdbd2cSJim Jagielski <type scope="com::sun::star::embed">XStorage</type> 153*b1cdbd2cSJim Jagielski */ 154*b1cdbd2cSJim Jagielski void storeToStorage( [in] ::com::sun::star::embed::XStorage Storage, 155*b1cdbd2cSJim Jagielski [in] string BaseName, [in] string Comment ) 156*b1cdbd2cSJim Jagielski raises ( com::sun::star::uno::Exception ); 157*b1cdbd2cSJim Jagielski 158*b1cdbd2cSJim Jagielski 159*b1cdbd2cSJim Jagielski /** 160*b1cdbd2cSJim Jagielski Stores all string table data to the location specified by the 161*b1cdbd2cSJim Jagielski passed URL string. 162*b1cdbd2cSJim Jagielski 163*b1cdbd2cSJim Jagielski Calling this method does not affect the association with a location 164*b1cdbd2cSJim Jagielski (in case of a <type>StringResourceWithLocation</type> instance) 165*b1cdbd2cSJim Jagielski repectively with a storage (in case of a 166*b1cdbd2cSJim Jagielski <type>StringResourceWithStorage</type> instance). 167*b1cdbd2cSJim Jagielski The modified state isn't affected either. 168*b1cdbd2cSJim Jagielski 169*b1cdbd2cSJim Jagielski This method can be used to make a copy of the current string 170*b1cdbd2cSJim Jagielski table data to a location. 171*b1cdbd2cSJim Jagielski 172*b1cdbd2cSJim Jagielski @param URL 173*b1cdbd2cSJim Jagielski the location the string table data should be stored to. 174*b1cdbd2cSJim Jagielski 175*b1cdbd2cSJim Jagielski @param BaseName 176*b1cdbd2cSJim Jagielski Base string for the file names used to store the locale data. 177*b1cdbd2cSJim Jagielski The locale data is stored in Java properties files also following 178*b1cdbd2cSJim Jagielski the corresponding naming sceme. The files will be named like this: 179*b1cdbd2cSJim Jagielski "[BaseName]_[Language]_[Country].properties", 180*b1cdbd2cSJim Jagielski e.g. "MyBaseName_en_US.properties" 181*b1cdbd2cSJim Jagielski If an empty string is passed for BaseName, "strings" will be used 182*b1cdbd2cSJim Jagielski as BaseName. 183*b1cdbd2cSJim Jagielski 184*b1cdbd2cSJim Jagielski @param Comment 185*b1cdbd2cSJim Jagielski Comment stored first in each properties file, 186*b1cdbd2cSJim Jagielski for a detailed description see <member>setComment</member>. 187*b1cdbd2cSJim Jagielski 188*b1cdbd2cSJim Jagielski @param Handler 189*b1cdbd2cSJim Jagielski a <type scope="com::sun::star::task">XInteractionHandler</type>. 190*b1cdbd2cSJim Jagielski It will be passed to ucb handle exceptions. Exceptions not processed 191*b1cdbd2cSJim Jagielski by this handler will be passed as com::sun::star::uno::Exception. If 192*b1cdbd2cSJim Jagielski this parameter is null this applies to all exceptions thrown by ucb. 193*b1cdbd2cSJim Jagielski 194*b1cdbd2cSJim Jagielski @see com::sun::star::task::InteractionHandler 195*b1cdbd2cSJim Jagielski */ 196*b1cdbd2cSJim Jagielski void storeToURL( [in] string URL, [in] string BaseName, [in] string Comment, 197*b1cdbd2cSJim Jagielski [in] com::sun::star::task::XInteractionHandler Handler ) 198*b1cdbd2cSJim Jagielski raises( com::sun::star::uno::Exception ); 199*b1cdbd2cSJim Jagielski 200*b1cdbd2cSJim Jagielski 201*b1cdbd2cSJim Jagielski /** 202*b1cdbd2cSJim Jagielski Returns a sequence of byte representing the complete string resource 203*b1cdbd2cSJim Jagielski in a binary format. 204*b1cdbd2cSJim Jagielski 205*b1cdbd2cSJim Jagielski This method is intended to support datatransfer functionality, e.g. provided 206*b1cdbd2cSJim Jagielski by <type scope="com::sun::star::datatransfer">XTransferable</type> and 207*b1cdbd2cSJim Jagielski related interfaces. 208*b1cdbd2cSJim Jagielski 209*b1cdbd2cSJim Jagielski See <member>importBinary</member>). 210*b1cdbd2cSJim Jagielski 211*b1cdbd2cSJim Jagielski @return a sequence of byte representing the string resource. 212*b1cdbd2cSJim Jagielski */ 213*b1cdbd2cSJim Jagielski sequence<byte> exportBinary(); 214*b1cdbd2cSJim Jagielski 215*b1cdbd2cSJim Jagielski 216*b1cdbd2cSJim Jagielski /** 217*b1cdbd2cSJim Jagielski Initializes the string resource with binary data. This method 218*b1cdbd2cSJim Jagielski expects the data format returned by <member>exportBinary</member>. 219*b1cdbd2cSJim Jagielski 220*b1cdbd2cSJim Jagielski All locales and strings previously added to the string resource 221*b1cdbd2cSJim Jagielski will be deleted. So after calling this method the string resource 222*b1cdbd2cSJim Jagielski only contains the locales and strings specified in the binary data. 223*b1cdbd2cSJim Jagielski 224*b1cdbd2cSJim Jagielski This method is intended to support datatransfer functionality, e.g. provided 225*b1cdbd2cSJim Jagielski by <type scope="com::sun::star::datatransfer">XTransferable</type> and 226*b1cdbd2cSJim Jagielski related interfaces. 227*b1cdbd2cSJim Jagielski 228*b1cdbd2cSJim Jagielski See <member>importBinary</member>). 229*b1cdbd2cSJim Jagielski 230*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::IllegalArgumentException 231*b1cdbd2cSJim Jagielski if Data is empty or does not meet the binary format returned by 232*b1cdbd2cSJim Jagielski the current or earlier version of <member>exportBinary</member>). 233*b1cdbd2cSJim Jagielski */ 234*b1cdbd2cSJim Jagielski void importBinary( [in] sequence<byte> Data ) 235*b1cdbd2cSJim Jagielski raises ( com::sun::star::lang::IllegalArgumentException ); 236*b1cdbd2cSJim Jagielski 237*b1cdbd2cSJim Jagielski}; 238*b1cdbd2cSJim Jagielski 239*b1cdbd2cSJim Jagielski//============================================================================= 240*b1cdbd2cSJim Jagielski 241*b1cdbd2cSJim Jagielski}; }; }; }; 242*b1cdbd2cSJim Jagielski 243*b1cdbd2cSJim Jagielski#endif 244