Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
08e61e95
Kaydet (Commit)
08e61e95
authored
Kas 09, 2001
tarafından
Bertram Nolte
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
#87796# Added an example for a minimal UNO component.
üst
ff4c86ff
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
364 additions
and
0 deletions
+364
-0
MinimalComponent.idl
odk/examples/java/MinimalComponent/MinimalComponent.idl
+73
-0
MinimalComponent.java
odk/examples/java/MinimalComponent/MinimalComponent.java
+240
-0
TestMinimalComponent.java
odk/examples/java/MinimalComponent/TestMinimalComponent.java
+51
-0
No files found.
odk/examples/java/MinimalComponent/MinimalComponent.idl
0 → 100644
Dosyayı görüntüle @
08e61e95
/*************************************************************************
*
*
$
RCSfile
:
MinimalComponent
.
idl
,
v
$
*
*
$
Revision
:
1.1
$
*
*
last
change
:
$
Author
:
bnolte
$
$
Date
:
2001
-
11
-
09
09
:
07
:
01
$
*
*
The
Contents
of
this
file
are
made
available
subject
to
the
terms
of
*
either
of
the
following
licenses
*
*
-
GNU
Lesser
General
Public
License
Version
2.1
*
-
Sun
Industry
Standards
Source
License
Version
1.1
*
*
Sun
Microsystems
Inc
.
,
October
,
2000
*
*
GNU
Lesser
General
Public
License
Version
2.1
*
=============================================
*
Copyright
2000
by
Sun
Microsystems
,
Inc
.
*
901
San
Antonio
Road
,
Palo
Alto
,
CA
94303
,
USA
*
*
This
library
is
free
software
; you can redistribute it and/or
*
modify
it
under
the
terms
of
the
GNU
Lesser
General
Public
*
License
version
2.1
,
as
published
by
the
Free
Software
Foundation
.
*
*
This
library
is
distributed
in
the
hope
that
it
will
be
useful
,
*
but
WITHOUT
ANY
WARRANTY
; without even the implied warranty of
*
MERCHANTABILITY
or
FITNESS
FOR
A
PARTICULAR
PURPOSE
.
See
the
GNU
*
Lesser
General
Public
License
for
more
details
.
*
*
You
should
have
received
a
copy
of
the
GNU
Lesser
General
Public
*
License
along
with
this
library
; if not, write to the Free Software
*
Foundation
,
Inc
.
,
59
Temple
Place
,
Suite
330
,
Boston
,
*
MA
02111
-
1307
USA
*
*
*
Sun
Industry
Standards
Source
License
Version
1.1
*
=================================================
*
The
contents
of
this
file
are
subject
to
the
Sun
Industry
Standards
*
Source
License
Version
1.1
(
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
.
openoffice.org/license.html.
*
*
Software
provided
under
this
License
is
provided
on
an
"AS IS"
basis
,
*
WITHOUT
WARRANTY
OF
ANY
KIND
,
EITHER
EXPRESSED
OR
IMPLIED
,
INCLUDING
,
*
WITHOUT
LIMITATION
,
WARRANTIES
THAT
THE
SOFTWARE
IS
FREE
OF
DEFECTS
,
*
MERCHANTABLE
,
FIT
FOR
A
PARTICULAR
PURPOSE
,
OR
NON
-
INFRINGING
.
*
See
the
License
for
the
specific
provisions
governing
your
rights
and
*
obligations
concerning
the
Software
.
*
*
The
Initial
Developer
of
the
Original
Code
is
:
Sun
Microsystems
,
Inc
.
*
*
Copyright
:
2000
by
Sun
Microsystems
,
Inc
.
*
*
All
Rights
Reserved
.
*
*
Contributor
(
s
):
_______________________________________
*
*
************************************************************************/
#
ifndef
__org_OpenOffice_MinimalComponent_idl__
#
define
__org_OpenOffice_MinimalComponent_idl__
#
include
<
com
/
sun
/
star
/
uno
/
XInterface
.
idl>
module
org
{
module
OpenOffice
{
service
MinimalComponent
{
}
;
}
;
}
;
#
endif
odk/examples/java/MinimalComponent/MinimalComponent.java
0 → 100644
Dosyayı görüntüle @
08e61e95
/*************************************************************************
*
* $RCSfile: MinimalComponent.java,v $
*
* $Revision: 1.1 $
*
* last change: $Author: bnolte $ $Date: 2001-11-09 09:07:08 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
*
* - GNU Lesser cp General Public License Version 2.1
* - Sun Industry Standards Source License Version 1.1
*
* Sun Microsystems Inc., October, 2000
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2000 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
*
* Sun Industry Standards Source License Version 1.1
* =================================================
* The contents of this file are subject to the Sun Industry Standards
* Source License Version 1.1 (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.openoffice.org/license.html.
*
* Software provided under this License is provided on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
* See the License for the specific provisions governing your rights and
* obligations concerning the Software.
*
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
*
* Copyright: 2000 by Sun Microsystems, Inc.
*
* All Rights Reserved.
*
* Contributor(s): _______________________________________
*
*
************************************************************************/
import
com.sun.star.comp.loader.FactoryHelper
;
import
com.sun.star.lang.XMultiServiceFactory
;
import
com.sun.star.lang.XSingleServiceFactory
;
import
com.sun.star.uno.UnoRuntime
;
import
com.sun.star.registry.XRegistryKey
;
import
com.sun.star.lang.XInitialization
;
import
com.sun.star.lang.XTypeProvider
;
import
com.sun.star.lang.XServiceInfo
;
import
com.sun.star.uno.Type
;
/** This class capsulates the class, that implements the minimal component, a
* factory for creating the service (<CODE>__getServiceFactory</CODE>) and a
* method, that writes the information into the given registry key
* (<CODE>__writeRegistryServiceInfo</CODE>).
* @version $Date: 2001-11-09 09:07:08 $
* @author Bertram Nolte
*/
public
class
MinimalComponent
{
/** This class implements the component. At least the interfaces XServiceInfo,
* XTypeProvider, and XInitialization should be provided by the service.
*/
public
static
class
MinimalComponentImplementation
implements
XInitialization
,
XTypeProvider
,
XServiceInfo
{
/** The service name, that must be used to get an instance of this service.
*/
static
private
final
String
__serviceName
=
"org.OpenOffice.MinimalComponent"
;
/** The service manager, that gives access to all registered services.
*/
private
XMultiServiceFactory
xmultiservicefactory
;
/** The constructor of the inner class has a XMultiServiceFactory parameter.
* @param xmultiservicefactoryInitialization A special service factory
* could be introduced while initializing.
*/
public
MinimalComponentImplementation
(
XMultiServiceFactory
xmultiservicefactoryInitialization
)
{
xmultiservicefactory
=
xmultiservicefactoryInitialization
;
}
/** This method is a member of the interface for initializing an object
* directly after its creation.
* @param object This array of arbitrary objects will be passed to the
* component after its creation.
* @throws Exception Every exception will not be handled, but will be
* passed to the caller.
*/
public
void
initialize
(
Object
[]
object
)
throws
com
.
sun
.
star
.
uno
.
Exception
{
xmultiservicefactory
=
(
XMultiServiceFactory
)
UnoRuntime
.
queryInterface
(
XMultiServiceFactory
.
class
,
object
[
0
]
);
}
/** Provides a sequence of all types (usually interface types)
* provided by the object.
* @return Sequence of all types (usually interface types) provided by the
* service.
*/
public
Type
[]
getTypes
()
{
Type
[]
typeReturn
=
{};
try
{
typeReturn
=
new
Type
[]
{
new
Type
(
XTypeProvider
.
class
),
new
Type
(
XServiceInfo
.
class
),
new
Type
(
XInitialization
.
class
)
};
}
catch
(
Exception
exception
)
{
System
.
err
.
println
(
exception
);
}
return
(
typeReturn
);
}
/** This method returns an array of all supported service names.
* @return Array of supported service names.
*/
public
String
[]
getSupportedServiceNames
()
{
String
[]
stringSupportedServiceNames
=
new
String
[
1
];
stringSupportedServiceNames
[
0
]
=
__serviceName
;
return
(
stringSupportedServiceNames
);
}
/** This method returns true, if the given service will be
* supported by the component.
* @param stringService Service name.
* @return True, if the given service name will be supported.
*/
public
boolean
supportsService
(
String
stringService
)
{
boolean
booleanSupportsService
=
false
;
if
(
stringService
.
equals
(
__serviceName
)
)
{
booleanSupportsService
=
true
;
}
return
(
booleanSupportsService
);
}
/** Return the class name of the component.
* @return Class name of the component.
*/
public
String
getImplementationName
()
{
return
(
MinimalComponentImplementation
.
class
.
getName
()
);
}
/** This method returns an array of bytes, that can be used to
* unambiguously distinguish between two sets of types, e.g.
* to realise hashing functionality when the object is introspected.
* Two objects that return the same ID also have to return
* the same set of types in getTypes(). If an unique
* implementation Id cannot be provided this method has to
* return an empty sequence. Important: If the object
* aggregates other objects the ID has to be unique for the
* whole combination of objects.
* @return Array of bytes, in order to distinguish between two sets.
*/
public
byte
[]
getImplementationId
()
{
byte
[]
byteReturn
=
{};
try
{
byteReturn
=
new
String
(
""
+
this
.
hashCode
()
).
getBytes
();
}
catch
(
Exception
exception
)
{
System
.
err
.
println
(
exception
);
}
return
(
byteReturn
);
}
}
/** Gives a factory for creating the service.
* This method is called by the <code>JavaLoader</code>
* <p>
* @return Returns a <code>XSingleServiceFactory</code> for creating the
* component.
* @see com.sun.star.comp.loader.JavaLoader#
* @param stringImplementationName The implementation name of the component.
* @param xmultiservicefactory The service manager, who gives access to every
* known service.
* @param xregistrykey Makes structural information (except regarding tree
* structures) of a single
* registry key accessible.
*/
public
static
XSingleServiceFactory
__getServiceFactory
(
String
stringImplementationName
,
XMultiServiceFactory
xmultiservicefactory
,
XRegistryKey
xregistrykey
)
{
XSingleServiceFactory
xsingleservicefactory
=
null
;
if
(
stringImplementationName
.
equals
(
MinimalComponentImplementation
.
class
.
getName
()
)
)
xsingleservicefactory
=
FactoryHelper
.
getServiceFactory
(
MinimalComponentImplementation
.
class
,
MinimalComponentImplementation
.
__serviceName
,
xmultiservicefactory
,
xregistrykey
);
return
xsingleservicefactory
;
}
/** Writes the service information into the given registry key.
* This method is called by the <code>JavaLoader</code>.
* @return returns true if the operation succeeded
* @see com.sun.star.comp.loader.JavaLoader#
* @param xregistrykey Makes structural information (except regarding tree
* structures) of a single
* registry key accessible.
*/
public
static
boolean
__writeRegistryServiceInfo
(
XRegistryKey
xregistrykey
)
{
return
FactoryHelper
.
writeRegistryServiceInfo
(
MinimalComponentImplementation
.
class
.
getName
(),
MinimalComponentImplementation
.
__serviceName
,
xregistrykey
);
}
}
odk/examples/java/MinimalComponent/TestMinimalComponent.java
0 → 100644
Dosyayı görüntüle @
08e61e95
import
com.sun.star.lang.XMultiServiceFactory
;
import
com.sun.star.lang.XSingleServiceFactory
;
import
com.sun.star.uno.UnoRuntime
;
import
com.sun.star.container.XSet
;
import
com.sun.star.lang.XServiceInfo
;
import
MinimalComponent
;
public
class
TestMinimalComponent
{
public
static
void
main
(
String
args
[])
{
try
{
/* Bootstraps a servicemanager with the jurt base components
registered */
XMultiServiceFactory
xmultiservicefactory
=
com
.
sun
.
star
.
comp
.
helper
.
Bootstrap
.
createSimpleServiceManager
();
// Querying for the interface XSet on XMultiServiceFactory
XSet
xsetMultiServiceFactory
=
(
XSet
)
UnoRuntime
.
queryInterface
(
XSet
.
class
,
xmultiservicefactory
);
// Getting the XSingleServiceFactory for the minimal component
XSingleServiceFactory
xsingleservicefactoryMinimalComponent
=
MinimalComponent
.
__getServiceFactory
(
"MinimalComponent$MinimalComponentImplementation"
,
xmultiservicefactory
,
null
);
// Inserting the XSingleServiceFactory into the container
xsetMultiServiceFactory
.
insert
(
xsingleservicefactoryMinimalComponent
);
// Creating an instance of the minimal component
Object
objectMinimalComponent
=
xmultiservicefactory
.
createInstance
(
"org.OpenOffice.MinimalComponent"
);
XServiceInfo
xserviceinfoMinimalComponent
=
(
XServiceInfo
)
UnoRuntime
.
queryInterface
(
XServiceInfo
.
class
,
objectMinimalComponent
);
System
.
out
.
println
(
xserviceinfoMinimalComponent
.
getImplementationName
()
);
// Removing the XSingleServiceFactory of the minimal Component from the container
xsetMultiServiceFactory
.
remove
(
xsingleservicefactoryMinimalComponent
);
System
.
exit
(
0
);
}
catch
(
Exception
exception
)
{
System
.
err
.
println
(
exception
);
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment