1*2722ceddSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*2722ceddSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*2722ceddSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*2722ceddSAndrew Rist * distributed with this work for additional information 6*2722ceddSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*2722ceddSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*2722ceddSAndrew Rist * "License"); you may not use this file except in compliance 9*2722ceddSAndrew Rist * with the License. You may obtain a copy of the License at 10*2722ceddSAndrew Rist * 11*2722ceddSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*2722ceddSAndrew Rist * 13*2722ceddSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*2722ceddSAndrew Rist * software distributed under the License is distributed on an 15*2722ceddSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*2722ceddSAndrew Rist * KIND, either express or implied. See the License for the 17*2722ceddSAndrew Rist * specific language governing permissions and limitations 18*2722ceddSAndrew Rist * under the License. 19*2722ceddSAndrew Rist * 20*2722ceddSAndrew Rist *************************************************************/ 21*2722ceddSAndrew Rist 22*2722ceddSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 25cdf0e10cSrcweir #include "precompiled_desktop.hxx" 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include "cppuhelper/implbase4.hxx" 28cdf0e10cSrcweir #include "cppuhelper/implementationentry.hxx" 29cdf0e10cSrcweir #include "rtl/ustrbuf.hxx" 30cdf0e10cSrcweir #include "rtl/ustring.h" 31cdf0e10cSrcweir #include "rtl/ustring.hxx" 32cdf0e10cSrcweir #include "rtl/bootstrap.hxx" 33cdf0e10cSrcweir #include "sal/types.h" 34cdf0e10cSrcweir #include "sal/config.h" 35cdf0e10cSrcweir #include "boost/scoped_array.hpp" 36cdf0e10cSrcweir #include "com/sun/star/lang/XServiceInfo.hpp" 37cdf0e10cSrcweir #include "com/sun/star/lang/XInitialization.hpp" 38cdf0e10cSrcweir #include "com/sun/star/lang/WrappedTargetException.hpp" 39cdf0e10cSrcweir #include "com/sun/star/task/XJob.hpp" 40cdf0e10cSrcweir #include "com/sun/star/configuration/backend/XLayer.hpp" 41cdf0e10cSrcweir #include "com/sun/star/configuration/backend/XLayerHandler.hpp" 42cdf0e10cSrcweir #include "com/sun/star/configuration/backend/MalformedDataException.hpp" 43cdf0e10cSrcweir #include "com/sun/star/configuration/backend/TemplateIdentifier.hpp" 44cdf0e10cSrcweir #include "jvmfwk/framework.h" 45cdf0e10cSrcweir #include "jvmfwk.hxx" 46cdf0e10cSrcweir #include <stack> 47cdf0e10cSrcweir #include <stdio.h> 48cdf0e10cSrcweir 49cdf0e10cSrcweir #include "osl/thread.hxx" 50cdf0e10cSrcweir #define OUSTR(x) rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( x )) 51cdf0e10cSrcweir 52cdf0e10cSrcweir #define SERVICE_NAME "com.sun.star.migration.Java" 53cdf0e10cSrcweir #define IMPL_NAME "com.sun.star.comp.desktop.migration.Java" 54cdf0e10cSrcweir 55cdf0e10cSrcweir #define ENABLE_JAVA 1 56cdf0e10cSrcweir #define USER_CLASS_PATH 2 57cdf0e10cSrcweir 58cdf0e10cSrcweir namespace css = com::sun::star; 59cdf0e10cSrcweir using namespace rtl; 60cdf0e10cSrcweir using namespace com::sun::star::uno; 61cdf0e10cSrcweir using namespace com::sun::star::beans; 62cdf0e10cSrcweir using namespace com::sun::star::lang; 63cdf0e10cSrcweir using namespace com::sun::star::configuration::backend; 64cdf0e10cSrcweir 65cdf0e10cSrcweir namespace migration 66cdf0e10cSrcweir { 67cdf0e10cSrcweir 68cdf0e10cSrcweir class CJavaInfo 69cdf0e10cSrcweir { 70cdf0e10cSrcweir CJavaInfo(const CJavaInfo&); 71cdf0e10cSrcweir CJavaInfo& operator = (const CJavaInfo&); 72cdf0e10cSrcweir public: 73cdf0e10cSrcweir JavaInfo* pData; 74cdf0e10cSrcweir CJavaInfo(); 75cdf0e10cSrcweir ~CJavaInfo(); 76cdf0e10cSrcweir operator JavaInfo* (); 77cdf0e10cSrcweir }; 78cdf0e10cSrcweir 79cdf0e10cSrcweir CJavaInfo::CJavaInfo(): pData(NULL) 80cdf0e10cSrcweir { 81cdf0e10cSrcweir } 82cdf0e10cSrcweir 83cdf0e10cSrcweir CJavaInfo::~CJavaInfo() 84cdf0e10cSrcweir { 85cdf0e10cSrcweir jfw_freeJavaInfo(pData); 86cdf0e10cSrcweir } 87cdf0e10cSrcweir 88cdf0e10cSrcweir CJavaInfo::operator JavaInfo*() 89cdf0e10cSrcweir { 90cdf0e10cSrcweir return pData; 91cdf0e10cSrcweir } 92cdf0e10cSrcweir 93cdf0e10cSrcweir 94cdf0e10cSrcweir class JavaMigration : public ::cppu::WeakImplHelper4< 95cdf0e10cSrcweir css::lang::XServiceInfo, 96cdf0e10cSrcweir css::lang::XInitialization, 97cdf0e10cSrcweir css::task::XJob, 98cdf0e10cSrcweir css::configuration::backend::XLayerHandler> 99cdf0e10cSrcweir { 100cdf0e10cSrcweir public: 101cdf0e10cSrcweir // XServiceInfo 102cdf0e10cSrcweir virtual OUString SAL_CALL getImplementationName() 103cdf0e10cSrcweir throw (css::uno::RuntimeException); 104cdf0e10cSrcweir virtual sal_Bool SAL_CALL supportsService( const OUString & rServiceName ) 105cdf0e10cSrcweir throw (css::uno::RuntimeException); 106cdf0e10cSrcweir virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 107cdf0e10cSrcweir throw (css::uno::RuntimeException); 108cdf0e10cSrcweir 109cdf0e10cSrcweir //XInitialization 110cdf0e10cSrcweir virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) 111cdf0e10cSrcweir throw(css::uno::Exception, css::uno::RuntimeException); 112cdf0e10cSrcweir 113cdf0e10cSrcweir //XJob 114cdf0e10cSrcweir virtual css::uno::Any SAL_CALL execute( 115cdf0e10cSrcweir const css::uno::Sequence<css::beans::NamedValue >& Arguments ) 116cdf0e10cSrcweir throw (css::lang::IllegalArgumentException, css::uno::Exception, 117cdf0e10cSrcweir css::uno::RuntimeException); 118cdf0e10cSrcweir 119cdf0e10cSrcweir // XLayerHandler 120cdf0e10cSrcweir virtual void SAL_CALL startLayer() 121cdf0e10cSrcweir throw(::com::sun::star::lang::WrappedTargetException); 122cdf0e10cSrcweir 123cdf0e10cSrcweir virtual void SAL_CALL endLayer() 124cdf0e10cSrcweir throw( 125cdf0e10cSrcweir ::com::sun::star::configuration::backend::MalformedDataException, 126cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException ); 127cdf0e10cSrcweir 128cdf0e10cSrcweir virtual void SAL_CALL overrideNode( 129cdf0e10cSrcweir const rtl::OUString& aName, 130cdf0e10cSrcweir sal_Int16 aAttributes, 131cdf0e10cSrcweir sal_Bool bClear) 132cdf0e10cSrcweir throw( 133cdf0e10cSrcweir ::com::sun::star::configuration::backend::MalformedDataException, 134cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException ); 135cdf0e10cSrcweir 136cdf0e10cSrcweir virtual void SAL_CALL addOrReplaceNode( 137cdf0e10cSrcweir const rtl::OUString& aName, 138cdf0e10cSrcweir sal_Int16 aAttributes) 139cdf0e10cSrcweir throw( 140cdf0e10cSrcweir ::com::sun::star::configuration::backend::MalformedDataException, 141cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException ); 142cdf0e10cSrcweir 143cdf0e10cSrcweir virtual void SAL_CALL addOrReplaceNodeFromTemplate( 144cdf0e10cSrcweir const rtl::OUString& aName, 145cdf0e10cSrcweir const ::com::sun::star::configuration::backend::TemplateIdentifier& aTemplate, 146cdf0e10cSrcweir sal_Int16 aAttributes ) 147cdf0e10cSrcweir throw( 148cdf0e10cSrcweir ::com::sun::star::configuration::backend::MalformedDataException, 149cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException ); 150cdf0e10cSrcweir 151cdf0e10cSrcweir virtual void SAL_CALL endNode() 152cdf0e10cSrcweir throw( 153cdf0e10cSrcweir ::com::sun::star::configuration::backend::MalformedDataException, 154cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException ); 155cdf0e10cSrcweir 156cdf0e10cSrcweir virtual void SAL_CALL dropNode( 157cdf0e10cSrcweir const rtl::OUString& aName ) 158cdf0e10cSrcweir throw( 159cdf0e10cSrcweir ::com::sun::star::configuration::backend::MalformedDataException, 160cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException ); 161cdf0e10cSrcweir 162cdf0e10cSrcweir virtual void SAL_CALL overrideProperty( 163cdf0e10cSrcweir const rtl::OUString& aName, 164cdf0e10cSrcweir sal_Int16 aAttributes, 165cdf0e10cSrcweir const css::uno::Type& aType, 166cdf0e10cSrcweir sal_Bool bClear ) 167cdf0e10cSrcweir throw( 168cdf0e10cSrcweir ::com::sun::star::configuration::backend::MalformedDataException, 169cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException ); 170cdf0e10cSrcweir 171cdf0e10cSrcweir virtual void SAL_CALL setPropertyValue( 172cdf0e10cSrcweir const css::uno::Any& aValue ) 173cdf0e10cSrcweir throw( 174cdf0e10cSrcweir ::com::sun::star::configuration::backend::MalformedDataException, 175cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException ); 176cdf0e10cSrcweir 177cdf0e10cSrcweir virtual void SAL_CALL setPropertyValueForLocale( 178cdf0e10cSrcweir const css::uno::Any& aValue, 179cdf0e10cSrcweir const rtl::OUString& aLocale ) 180cdf0e10cSrcweir throw( 181cdf0e10cSrcweir ::com::sun::star::configuration::backend::MalformedDataException, 182cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException ); 183cdf0e10cSrcweir 184cdf0e10cSrcweir virtual void SAL_CALL endProperty() 185cdf0e10cSrcweir throw( 186cdf0e10cSrcweir ::com::sun::star::configuration::backend::MalformedDataException, 187cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException ); 188cdf0e10cSrcweir 189cdf0e10cSrcweir virtual void SAL_CALL addProperty( 190cdf0e10cSrcweir const rtl::OUString& aName, 191cdf0e10cSrcweir sal_Int16 aAttributes, 192cdf0e10cSrcweir const css::uno::Type& aType ) 193cdf0e10cSrcweir throw( 194cdf0e10cSrcweir ::com::sun::star::configuration::backend::MalformedDataException, 195cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException ); 196cdf0e10cSrcweir 197cdf0e10cSrcweir virtual void SAL_CALL addPropertyWithValue( 198cdf0e10cSrcweir const rtl::OUString& aName, 199cdf0e10cSrcweir sal_Int16 aAttributes, 200cdf0e10cSrcweir const css::uno::Any& aValue ) 201cdf0e10cSrcweir throw( 202cdf0e10cSrcweir ::com::sun::star::configuration::backend::MalformedDataException, 203cdf0e10cSrcweir ::com::sun::star::lang::WrappedTargetException ); 204cdf0e10cSrcweir 205cdf0e10cSrcweir 206cdf0e10cSrcweir 207cdf0e10cSrcweir //---------------- 208cdf0e10cSrcweir ~JavaMigration(); 209cdf0e10cSrcweir 210cdf0e10cSrcweir private: 211cdf0e10cSrcweir OUString m_sUserDir; 212cdf0e10cSrcweir css::uno::Reference< ::css::configuration::backend::XLayer> m_xLayer; 213cdf0e10cSrcweir 214cdf0e10cSrcweir void migrateJavarc(); 215cdf0e10cSrcweir typedef ::std::pair< ::rtl::OUString, sal_Int16> TElementType; 216cdf0e10cSrcweir typedef ::std::stack< TElementType > TElementStack; 217cdf0e10cSrcweir TElementStack m_aStack; 218cdf0e10cSrcweir 219cdf0e10cSrcweir }; 220cdf0e10cSrcweir 221cdf0e10cSrcweir JavaMigration::~JavaMigration() 222cdf0e10cSrcweir { 223cdf0e10cSrcweir OSL_ASSERT(m_aStack.empty()); 224cdf0e10cSrcweir } 225cdf0e10cSrcweir 226cdf0e10cSrcweir OUString jvmfwk_getImplementationName() 227cdf0e10cSrcweir { 228cdf0e10cSrcweir return OUSTR(IMPL_NAME); 229cdf0e10cSrcweir } 230cdf0e10cSrcweir 231cdf0e10cSrcweir css::uno::Sequence< OUString > jvmfwk_getSupportedServiceNames() 232cdf0e10cSrcweir { 233cdf0e10cSrcweir OUString str_name = OUSTR(SERVICE_NAME); 234cdf0e10cSrcweir return css::uno::Sequence< OUString >( &str_name, 1 ); 235cdf0e10cSrcweir } 236cdf0e10cSrcweir 237cdf0e10cSrcweir // XServiceInfo 238cdf0e10cSrcweir OUString SAL_CALL JavaMigration::getImplementationName() 239cdf0e10cSrcweir throw (css::uno::RuntimeException) 240cdf0e10cSrcweir { 241cdf0e10cSrcweir return jvmfwk_getImplementationName(); 242cdf0e10cSrcweir } 243cdf0e10cSrcweir 244cdf0e10cSrcweir sal_Bool SAL_CALL JavaMigration::supportsService( const OUString & rServiceName ) 245cdf0e10cSrcweir throw (css::uno::RuntimeException) 246cdf0e10cSrcweir { 247cdf0e10cSrcweir css::uno::Sequence< OUString > const & rSNL = getSupportedServiceNames(); 248cdf0e10cSrcweir OUString const * pArray = rSNL.getConstArray(); 249cdf0e10cSrcweir for ( sal_Int32 nPos = rSNL.getLength(); nPos--; ) 250cdf0e10cSrcweir { 251cdf0e10cSrcweir if (rServiceName.equals( pArray[ nPos ] )) 252cdf0e10cSrcweir return true; 253cdf0e10cSrcweir } 254cdf0e10cSrcweir return false; 255cdf0e10cSrcweir 256cdf0e10cSrcweir } 257cdf0e10cSrcweir 258cdf0e10cSrcweir css::uno::Sequence< OUString > SAL_CALL JavaMigration::getSupportedServiceNames() 259cdf0e10cSrcweir throw (css::uno::RuntimeException) 260cdf0e10cSrcweir { 261cdf0e10cSrcweir return jvmfwk_getSupportedServiceNames(); 262cdf0e10cSrcweir } 263cdf0e10cSrcweir 264cdf0e10cSrcweir //XInitialization ---------------------------------------------------------------------- 265cdf0e10cSrcweir void SAL_CALL JavaMigration::initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) 266cdf0e10cSrcweir throw(css::uno::Exception, css::uno::RuntimeException) 267cdf0e10cSrcweir { 268cdf0e10cSrcweir const css::uno::Any* pIter = aArguments.getConstArray(); 269cdf0e10cSrcweir const css::uno::Any* pEnd = pIter + aArguments.getLength(); 270cdf0e10cSrcweir css::uno::Sequence<css::beans::NamedValue> aOldConfigValues; 271cdf0e10cSrcweir css::beans::NamedValue aValue; 272cdf0e10cSrcweir for(;pIter != pEnd;++pIter) 273cdf0e10cSrcweir { 274cdf0e10cSrcweir *pIter >>= aValue; 275cdf0e10cSrcweir if (aValue.Name.equalsAscii("OldConfiguration")) 276cdf0e10cSrcweir { 277cdf0e10cSrcweir sal_Bool bSuccess = aValue.Value >>= aOldConfigValues; 278cdf0e10cSrcweir OSL_ENSURE(bSuccess == sal_True, "[Service implementation " IMPL_NAME 279cdf0e10cSrcweir "] XInitialization::initialize: Argument OldConfiguration has wrong type."); 280cdf0e10cSrcweir if (bSuccess) 281cdf0e10cSrcweir { 282cdf0e10cSrcweir const css::beans::NamedValue* pIter2 = aOldConfigValues.getConstArray(); 283cdf0e10cSrcweir const css::beans::NamedValue* pEnd2 = pIter2 + aOldConfigValues.getLength(); 284cdf0e10cSrcweir for(;pIter2 != pEnd2;++pIter2) 285cdf0e10cSrcweir { 286cdf0e10cSrcweir if ( pIter2->Name.equalsAscii("org.openoffice.Office.Java") ) 287cdf0e10cSrcweir { 288cdf0e10cSrcweir pIter2->Value >>= m_xLayer; 289cdf0e10cSrcweir break; 290cdf0e10cSrcweir } 291cdf0e10cSrcweir } 292cdf0e10cSrcweir } 293cdf0e10cSrcweir } 294cdf0e10cSrcweir else if (aValue.Name.equalsAscii("UserData")) 295cdf0e10cSrcweir { 296cdf0e10cSrcweir if ( !(aValue.Value >>= m_sUserDir) ) 297cdf0e10cSrcweir { 298cdf0e10cSrcweir OSL_ENSURE( 299cdf0e10cSrcweir false, 300cdf0e10cSrcweir "[Service implementation " IMPL_NAME 301cdf0e10cSrcweir "] XInitialization::initialize: Argument UserData has wrong type."); 302cdf0e10cSrcweir } 303cdf0e10cSrcweir } 304cdf0e10cSrcweir } 305cdf0e10cSrcweir 306cdf0e10cSrcweir } 307cdf0e10cSrcweir 308cdf0e10cSrcweir //XJob 309cdf0e10cSrcweir css::uno::Any SAL_CALL JavaMigration::execute( 310cdf0e10cSrcweir const css::uno::Sequence<css::beans::NamedValue >& ) 311cdf0e10cSrcweir throw (css::lang::IllegalArgumentException, css::uno::Exception, 312cdf0e10cSrcweir css::uno::RuntimeException) 313cdf0e10cSrcweir { 314cdf0e10cSrcweir migrateJavarc(); 315cdf0e10cSrcweir if (m_xLayer.is()) 316cdf0e10cSrcweir m_xLayer->readData(this); 317cdf0e10cSrcweir 318cdf0e10cSrcweir return css::uno::Any(); 319cdf0e10cSrcweir } 320cdf0e10cSrcweir 321cdf0e10cSrcweir void JavaMigration::migrateJavarc() 322cdf0e10cSrcweir { 323cdf0e10cSrcweir if (m_sUserDir.getLength() == 0) 324cdf0e10cSrcweir return; 325cdf0e10cSrcweir 326cdf0e10cSrcweir OUString sValue; 327cdf0e10cSrcweir rtl::Bootstrap javaini(m_sUserDir + OUSTR("/user/config/"SAL_CONFIGFILE("java"))); 328cdf0e10cSrcweir sal_Bool bSuccess = javaini.getFrom(OUSTR("Home"), sValue); 329cdf0e10cSrcweir OSL_ENSURE(bSuccess, "[Service implementation " IMPL_NAME 330cdf0e10cSrcweir "] XJob::execute: Could not get Home entry from java.ini/javarc."); 331cdf0e10cSrcweir if (bSuccess == sal_True && sValue.getLength() > 0) 332cdf0e10cSrcweir { 333cdf0e10cSrcweir //get the directory 334cdf0e10cSrcweir CJavaInfo aInfo; 335cdf0e10cSrcweir javaFrameworkError err = jfw_getJavaInfoByPath(sValue.pData, &aInfo.pData); 336cdf0e10cSrcweir 337cdf0e10cSrcweir if (err == JFW_E_NONE) 338cdf0e10cSrcweir { 339cdf0e10cSrcweir if (jfw_setSelectedJRE(aInfo) != JFW_E_NONE) 340cdf0e10cSrcweir { 341cdf0e10cSrcweir OSL_ENSURE(0, "[Service implementation " IMPL_NAME 342cdf0e10cSrcweir "] XJob::execute: jfw_setSelectedJRE failed."); 343cdf0e10cSrcweir fprintf(stderr, "\nCannot migrate Java. An error occured.\n"); 344cdf0e10cSrcweir } 345cdf0e10cSrcweir } 346cdf0e10cSrcweir else if (err == JFW_E_FAILED_VERSION) 347cdf0e10cSrcweir { 348cdf0e10cSrcweir fprintf(stderr, "\nCannot migrate Java settings because the version of the Java " 349cdf0e10cSrcweir "is not supported anymore.\n"); 350cdf0e10cSrcweir } 351cdf0e10cSrcweir } 352cdf0e10cSrcweir } 353cdf0e10cSrcweir 354cdf0e10cSrcweir 355cdf0e10cSrcweir // XLayerHandler 356cdf0e10cSrcweir void SAL_CALL JavaMigration::startLayer() 357cdf0e10cSrcweir throw(css::lang::WrappedTargetException) 358cdf0e10cSrcweir { 359cdf0e10cSrcweir } 360cdf0e10cSrcweir // ----------------------------------------------------------------------------- 361cdf0e10cSrcweir 362cdf0e10cSrcweir void SAL_CALL JavaMigration::endLayer() 363cdf0e10cSrcweir throw( 364cdf0e10cSrcweir MalformedDataException, 365cdf0e10cSrcweir WrappedTargetException ) 366cdf0e10cSrcweir { 367cdf0e10cSrcweir } 368cdf0e10cSrcweir // ----------------------------------------------------------------------------- 369cdf0e10cSrcweir 370cdf0e10cSrcweir void SAL_CALL JavaMigration::overrideNode( 371cdf0e10cSrcweir const ::rtl::OUString&, 372cdf0e10cSrcweir sal_Int16, 373cdf0e10cSrcweir sal_Bool) 374cdf0e10cSrcweir throw( 375cdf0e10cSrcweir MalformedDataException, 376cdf0e10cSrcweir WrappedTargetException ) 377cdf0e10cSrcweir 378cdf0e10cSrcweir { 379cdf0e10cSrcweir 380cdf0e10cSrcweir } 381cdf0e10cSrcweir // ----------------------------------------------------------------------------- 382cdf0e10cSrcweir 383cdf0e10cSrcweir void SAL_CALL JavaMigration::addOrReplaceNode( 384cdf0e10cSrcweir const ::rtl::OUString&, 385cdf0e10cSrcweir sal_Int16) 386cdf0e10cSrcweir throw( 387cdf0e10cSrcweir MalformedDataException, 388cdf0e10cSrcweir WrappedTargetException ) 389cdf0e10cSrcweir { 390cdf0e10cSrcweir 391cdf0e10cSrcweir } 392cdf0e10cSrcweir void SAL_CALL JavaMigration::endNode() 393cdf0e10cSrcweir throw( 394cdf0e10cSrcweir MalformedDataException, 395cdf0e10cSrcweir WrappedTargetException ) 396cdf0e10cSrcweir { 397cdf0e10cSrcweir } 398cdf0e10cSrcweir // ----------------------------------------------------------------------------- 399cdf0e10cSrcweir 400cdf0e10cSrcweir void SAL_CALL JavaMigration::dropNode( 401cdf0e10cSrcweir const ::rtl::OUString& ) 402cdf0e10cSrcweir throw( 403cdf0e10cSrcweir MalformedDataException, 404cdf0e10cSrcweir WrappedTargetException ) 405cdf0e10cSrcweir { 406cdf0e10cSrcweir } 407cdf0e10cSrcweir // ----------------------------------------------------------------------------- 408cdf0e10cSrcweir 409cdf0e10cSrcweir void SAL_CALL JavaMigration::overrideProperty( 410cdf0e10cSrcweir const ::rtl::OUString& aName, 411cdf0e10cSrcweir sal_Int16, 412cdf0e10cSrcweir const Type&, 413cdf0e10cSrcweir sal_Bool ) 414cdf0e10cSrcweir throw( 415cdf0e10cSrcweir MalformedDataException, 416cdf0e10cSrcweir WrappedTargetException ) 417cdf0e10cSrcweir { 418cdf0e10cSrcweir if (aName.equalsAscii("Enable")) 419cdf0e10cSrcweir m_aStack.push(TElementStack::value_type(aName,ENABLE_JAVA)); 420cdf0e10cSrcweir else if (aName.equalsAscii("UserClassPath")) 421cdf0e10cSrcweir m_aStack.push(TElementStack::value_type(aName, USER_CLASS_PATH)); 422cdf0e10cSrcweir } 423cdf0e10cSrcweir // ----------------------------------------------------------------------------- 424cdf0e10cSrcweir 425cdf0e10cSrcweir void SAL_CALL JavaMigration::setPropertyValue( 426cdf0e10cSrcweir const Any& aValue ) 427cdf0e10cSrcweir throw( 428cdf0e10cSrcweir MalformedDataException, 429cdf0e10cSrcweir WrappedTargetException ) 430cdf0e10cSrcweir { 431cdf0e10cSrcweir if ( !m_aStack.empty()) 432cdf0e10cSrcweir { 433cdf0e10cSrcweir switch (m_aStack.top().second) 434cdf0e10cSrcweir { 435cdf0e10cSrcweir case ENABLE_JAVA: 436cdf0e10cSrcweir { 437cdf0e10cSrcweir sal_Bool val = sal_Bool(); 438cdf0e10cSrcweir if ((aValue >>= val) == sal_False) 439cdf0e10cSrcweir throw MalformedDataException( 440cdf0e10cSrcweir OUSTR("[Service implementation " IMPL_NAME 441cdf0e10cSrcweir "] XLayerHandler::setPropertyValue received wrong type for Enable property"), 0, Any()); 442cdf0e10cSrcweir if (jfw_setEnabled(val) != JFW_E_NONE) 443cdf0e10cSrcweir throw WrappedTargetException( 444cdf0e10cSrcweir OUSTR("[Service implementation " IMPL_NAME 445cdf0e10cSrcweir "] XLayerHandler::setPropertyValue: jfw_setEnabled failed."), 0, Any()); 446cdf0e10cSrcweir 447cdf0e10cSrcweir break; 448cdf0e10cSrcweir } 449cdf0e10cSrcweir case USER_CLASS_PATH: 450cdf0e10cSrcweir { 451cdf0e10cSrcweir OUString cp; 452cdf0e10cSrcweir if ((aValue >>= cp) == sal_False) 453cdf0e10cSrcweir throw MalformedDataException( 454cdf0e10cSrcweir OUSTR("[Service implementation " IMPL_NAME 455cdf0e10cSrcweir "] XLayerHandler::setPropertyValue received wrong type for UserClassPath property"), 0, Any()); 456cdf0e10cSrcweir 457cdf0e10cSrcweir if (jfw_setUserClassPath(cp.pData) != JFW_E_NONE) 458cdf0e10cSrcweir throw WrappedTargetException( 459cdf0e10cSrcweir OUSTR("[Service implementation " IMPL_NAME 460cdf0e10cSrcweir "] XLayerHandler::setPropertyValue: jfw_setUserClassPath failed."), 0, Any()); 461cdf0e10cSrcweir break; 462cdf0e10cSrcweir } 463cdf0e10cSrcweir default: 464cdf0e10cSrcweir OSL_ASSERT(0); 465cdf0e10cSrcweir } 466cdf0e10cSrcweir } 467cdf0e10cSrcweir } 468cdf0e10cSrcweir // ----------------------------------------------------------------------------- 469cdf0e10cSrcweir 470cdf0e10cSrcweir void SAL_CALL JavaMigration::setPropertyValueForLocale( 471cdf0e10cSrcweir const Any&, 472cdf0e10cSrcweir const ::rtl::OUString& ) 473cdf0e10cSrcweir throw( 474cdf0e10cSrcweir MalformedDataException, 475cdf0e10cSrcweir WrappedTargetException ) 476cdf0e10cSrcweir { 477cdf0e10cSrcweir } 478cdf0e10cSrcweir // ----------------------------------------------------------------------------- 479cdf0e10cSrcweir 480cdf0e10cSrcweir void SAL_CALL JavaMigration::endProperty() 481cdf0e10cSrcweir throw( 482cdf0e10cSrcweir MalformedDataException, 483cdf0e10cSrcweir WrappedTargetException ) 484cdf0e10cSrcweir { 485cdf0e10cSrcweir if (!m_aStack.empty()) 486cdf0e10cSrcweir m_aStack.pop(); 487cdf0e10cSrcweir } 488cdf0e10cSrcweir // ----------------------------------------------------------------------------- 489cdf0e10cSrcweir 490cdf0e10cSrcweir void SAL_CALL JavaMigration::addProperty( 491cdf0e10cSrcweir const rtl::OUString&, 492cdf0e10cSrcweir sal_Int16, 493cdf0e10cSrcweir const Type& ) 494cdf0e10cSrcweir throw( 495cdf0e10cSrcweir MalformedDataException, 496cdf0e10cSrcweir WrappedTargetException ) 497cdf0e10cSrcweir { 498cdf0e10cSrcweir } 499cdf0e10cSrcweir // ----------------------------------------------------------------------------- 500cdf0e10cSrcweir 501cdf0e10cSrcweir void SAL_CALL JavaMigration::addPropertyWithValue( 502cdf0e10cSrcweir const rtl::OUString&, 503cdf0e10cSrcweir sal_Int16, 504cdf0e10cSrcweir const Any& ) 505cdf0e10cSrcweir throw( 506cdf0e10cSrcweir MalformedDataException, 507cdf0e10cSrcweir WrappedTargetException ) 508cdf0e10cSrcweir { 509cdf0e10cSrcweir } 510cdf0e10cSrcweir 511cdf0e10cSrcweir void SAL_CALL JavaMigration::addOrReplaceNodeFromTemplate( 512cdf0e10cSrcweir const rtl::OUString&, 513cdf0e10cSrcweir const TemplateIdentifier&, 514cdf0e10cSrcweir sal_Int16 ) 515cdf0e10cSrcweir throw( 516cdf0e10cSrcweir MalformedDataException, 517cdf0e10cSrcweir WrappedTargetException ) 518cdf0e10cSrcweir { 519cdf0e10cSrcweir } 520cdf0e10cSrcweir 521cdf0e10cSrcweir // ----------------------------------------------------------------------------- 522cdf0e10cSrcweir //ToDo enable java, user class path 523cdf0e10cSrcweir 524cdf0e10cSrcweir } //end namespace jfw 525cdf0e10cSrcweir 526