##### Coverage Report - org.apache.commons.configuration.beanutils.BeanDeclaration

Classes in this File | Line Coverage | Branch Coverage | Complexity

BeanDeclaration

N/A | N/A

N/A | N/A

1.0;1

1

     /*

2

      * Licensed to the Apache Software Foundation (ASF) under one or more

3

      * contributor license agreements.  See the NOTICE file distributed with

4

      * this work for additional information regarding copyright ownership.

5

      * The ASF licenses this file to You under the Apache License, Version 2.0

6

      * (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

      *

9

      *     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.commons.configuration.beanutils;

18

19

     import java.util.Map;

20

21

     /**

22

      * <p>

23

      * Definition of an interface for declaring a bean in a configuration file.

24

      * </p>

25

      * <p>

26

      * Commons Configurations allows to define beans (i.e. simple Java objects) in

27

      * configuration files, which can be created at runtime. This is especially

28

      * useful if you program against interfaces and want to define the concrete

29

      * implementation class is a configuration file.

30

      * </p>

31

      * <p>

32

      * This interface defines methods for retrieving all information about a bean

33

      * that should be created from a configuration file, e.g. the bean's properties

34

      * or the factory to use for creating the instance. With different

35

      * implementations different &quot;layouts&quot; of bean declarations can be

36

      * supported. For instance if an XML configuration file is used, all features of

37

      * XML (e.g. attributes, nested elements) can be used to define the bean. In a

38

      * properties file the declaration format is more limited. The purpose of this

39

      * interface is to abstract from the concrete declaration format.

40

      * </p>

41

      *

42

      * @since 1.3

43

      * @author Oliver Heger

44

      * @version $Id: BeanDeclaration.java 439648 2006-09-02 20:42:10Z oheger $

45

      */

46

     public interface BeanDeclaration

47

     {

48

         /**

49

          * Returns the name of the <code>BeanFactory</code> that should be used

50

          * for creating the bean instance. This can be <b>null</b>, then a default

51

          * factory will be used.

52

          *

53

          * @return the name of the bean factory

54

          */

55

         String getBeanFactoryName();

56

57

         /**

58

          * Here an arbitrary object can be returned that will be passed to the bean

59

          * factory. Its meaning is not further specified. The purpose of this

60

          * additional parameter is to support a further configuration of the bean

61

          * factory that can be placed directly at the bean declaration.

62

          *

63

          * @return a parameter for the bean factory

64

          */

65

         Object getBeanFactoryParameter();

66

67

         /**

68

          * Returns the name of the bean class, from which an instance is to be

69

          * created. This value must be defined unless a default class is provided

70

          * for the bean creation operation.

71

          *

72

          * @return the name of the bean class

73

          */

74

         String getBeanClassName();

75

76

         /**

77

          * Returns a map with properties that should be initialized on the newly

78

          * created bean. The map's keys are the names of the properties; the

79

          * corresponding values are the properties' values. The return value can be

80

          * <b>null</b> if no properties should be set.

81

          *

82

          * @return a map with properties to be initialized

83

          */

84

         Map getBeanProperties();

85

86

         /**

87

          * Returns a map with declarations for beans that should be set as

88

          * properties of the newly created bean. This allows for complex

89

          * initialization szenarios: a bean for a bean that contains complex

90

          * properties (e.g. other beans) can have nested declarations for defining

91

          * these complex properties. The returned map's key are the names of the

92

          * properties to initialze. The values are <code>BeanDeclaration</code>

93

          * implementations. They will be treated like this declaration (in a

94

          * recursive manner), and the resulting beans are assigned to the

95

          * corresponding properties.

96

          *

97

          * @return a map with nested bean declarations

98

          */

99

         Map getNestedBeanDeclarations();

100

     }