001    /*******************************************************************************
002     * Portions created by Sebastian Thomschke are copyright (c) 2005-2011 Sebastian
003     * Thomschke.
004     * 
005     * All Rights Reserved. This program and the accompanying materials
006     * are made available under the terms of the Eclipse Public License v1.0
007     * which accompanies this distribution, and is available at
008     * http://www.eclipse.org/legal/epl-v10.html
009     * 
010     * Contributors:
011     *     Sebastian Thomschke - initial implementation.
012     *     Chris Pheby - inspectInterfaces
013     *******************************************************************************/
014    package net.sf.oval.configuration.pojo.elements;
015    
016    import java.util.Set;
017    
018    /**
019     * @author Sebastian Thomschke
020     */
021    public class ClassConfiguration extends ConfigurationElement
022    {
023            private static final long serialVersionUID = 1L;
024    
025            /**
026             * class type
027             */
028            public Class< ? > type;
029    
030            /**
031             * object level constraints configuration
032             */
033            public ObjectConfiguration objectConfiguration;
034    
035            /**
036             * field constraints configuration
037             */
038            public Set<FieldConfiguration> fieldConfigurations;
039    
040            /**
041             * constructor constraints configuration
042             */
043            public Set<ConstructorConfiguration> constructorConfigurations;
044    
045            /**
046             * method constraints configuration
047             */
048            public Set<MethodConfiguration> methodConfigurations;
049    
050            /**
051             * Automatically apply field constraints to the corresponding parameters
052             * of constructors declared within the same class. A corresponding
053             * parameter is a parameter with the same name and type as the field.
054             */
055            public Boolean applyFieldConstraintsToConstructors;
056    
057            /**
058             * Automatically apply field constraints to the parameters of the
059             * corresponding setter methods declared within the same class. A
060             * corresponding setter method is a method following the JavaBean
061             * convention and its parameter has as the same type as the field.
062             */
063            public Boolean applyFieldConstraintsToSetters;
064    
065            /**
066             * Declares if parameter values of constructors and methods are expected to be not null.
067             * This can be weakened by using the @net.sf.oval.constraint.exclusion.Nullable annotation on specific parameters.
068             */
069            public Boolean assertParametersNotNull;
070    
071            /**
072             * Specifies if invariants are checked prior and after calls to
073             * non-private methods and constructors.
074             */
075            public Boolean checkInvariants;
076    
077            /**
078             * Specifies whether annotations can be applied to interfaces that this class implements,
079             * supporting a documentation function
080             */
081            public Boolean inspectInterfaces;
082    }