01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: package org.apache.wicket.injection;
18:
19: /**
20: * Abstract injector that allows subclasses to provide IFieldValueFactory
21: * pragmatically by implementing getFieldValueFactory(). Allows for injectors
22: * that can be used with inject(Object obj) call instead of inject(Object obj,
23: * IFieldValueFactory factory), thereby allowing for default factories.
24: *
25: * @author Igor Vaynberg (ivaynberg)
26: *
27: */
28: public abstract class ConfigurableInjector extends Injector {
29: /**
30: * Injects proxies using IFieldValueFactory obtained by calling
31: * getFieldValueFactory() method
32: *
33: * @param object
34: * object to be injected
35: * @return Object that was injected - used for chainig
36: */
37: public Object inject(Object object) {
38: return inject(object, getFieldValueFactory());
39: }
40:
41: /**
42: * Return the field value factory that will be used to inject objects
43: *
44: * @return field value locator factory that will be used to inject objects
45: */
46: abstract protected IFieldValueFactory getFieldValueFactory();
47: }
|