1 # -*- Mode
: C
++; tab
-width
: 8; indent
-tabs
-mode
: nil
; c
-basic
-offset
: 2 -*- */
2 # ***** BEGIN LICENSE BLOCK
*****
3 # Version
: MPL
1.1/GPL 2.0/LGPL
2.1
5 # The contents
of this file are subject to the Mozilla Public License Version
6 # 1.1 (the
"License"); you may not
use this file except
in compliance
with
7 # the License
. You may obtain a copy
of the License at
8 # http
://www.mozilla.org/MPL/
10 # Software distributed under the License is distributed on an
"AS IS" basis
,
11 # WITHOUT WARRANTY OF ANY KIND
, either express or implied
. See the License
12 # for the specific language governing rights and limitations under the
15 # The Original Code is the Generic Component Factory
.
17 # The Initial Developer
of the Original Code is Google Inc
.
18 # Portions created by the Initial Developer are
Copyright (C
) 2006
19 # the Initial Developer
. All Rights Reserved
.
22 # Ben Goodger
<beng
@google
.com
>
24 # Alternatively
, the contents
of this file may be used under the terms
of
25 # either the GNU General Public License Version
2 or
later (the
"GPL"), or
26 # the GNU Lesser General Public License Version
2.1 or
later (the
"LGPL"),
27 # in which
case the provisions
of the GPL or the LGPL are applicable instead
28 # of those above
. If you wish to allow
use of your version
of this file only
29 # under the terms
of either the GPL or the LGPL
, and not to allow others to
30 # use your version
of this file under the terms
of the MPL
, indicate your
31 # decision by deleting the provisions above and replace them
with the notice
32 # and other provisions required by the GPL or the LGPL
. If you
do not
delete
33 # the provisions above
, a recipient may
use your version
of this file under
34 # the terms
of any one
of the MPL
, the GPL or the LGPL
.
36 # ***** END LICENSE BLOCK
***** */
39 * An object implementing nsIFactory that can construct other objects upon
40 * createInstance, passing a set of parameters to that object's constructor.
42 function GenericComponentFactory(ctor
, params
) {
44 this._params
= params
;
46 GenericComponentFactory
.prototype = {
50 createInstance
: function GCF_createInstance(outer
, iid
) {
52 throw Cr
.NS_ERROR_NO_AGGREGATION
;
53 return (new this._ctor(this._params
)).QueryInterface(iid
);
56 QueryInterface
: function GCF_QueryInterface(iid
) {
57 if (iid
.equals(Ci
.nsIFactory
) ||
58 iid
.equals(Ci
.nsISupports
))
60 throw Cr
.NS_ERROR_NO_INTERFACE
;