/**
* Copyright (c) 2009-2013, Andreas Hefti, anhefti@yahoo.de 
* All rights reserved.
*
* This software is licensed to you under the Apache License, Version 2.0
* (the "License"); You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* . Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* . Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* . Neither the name "InariUtils" nor the names of its contributors may be
* used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
package com.inari.commons.config;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/** Annotation for configured fields on a IConfigObject instance.
 *     Expects to a configuration property or reference on ConfigData of the specified IConfigObject instance
 *     The name, if it is set, expects the name of the configuration property in ConfigData.
 *     If the name is not set (empty) the name of the field will be the name of the configuration property.
 *     
 *     @author ahefti
 *
 */
@Retention( RetentionPolicy.RUNTIME )
@Target(  ElementType.FIELD )
public @interface Configured {
    
    /** The name if configuration property. If empty the field name will be the name of configuration property.
     *     @return The name if configuration property
     */
    public String name() default "";
    
    /** Indicates whether the configuration property is mandatory or not
     *     @return if the configuration property is mandatory
     */
    public boolean required() default false ;
    
    /** The type of the Configured field. Used on none instance-able Field typed
     *     E.g. List, Set... to define the specified instance type
     *     @return The type of the Configured field
     */
    public Class<?> type() default Object.class;
    
}

@@ -1,12 +1,90 @@
 /**
-%0A
+*****************************************************************************%0A 
 * Copyri
@@ -97,15 +97,10 @@
 ) 20
-09-2013
+15
 , An
@@ -116,15 +116,17 @@
 ti, 
-anhe
+inariso
 ft
-i
 @yah
@@ -136,67 +136,23 @@
 de %0A
-* All rights reserved.%0A*%0A* This software is licensed to you
+ * %0A * Licensed
  und
@@ -185,18 +185,16 @@
 sion 2.0
-%0A*
  (the %22L
@@ -202,16 +202,87 @@
 cense%22);
+%0A * you may not use this file except in compliance with the License.%0A *
  You may
@@ -314,19 +314,24 @@
 ense at%0A
-*%0A*
+ * %0A *  
  http://
@@ -370,1469 +370,411 @@
 2.0%0A
-*%0A* Redistribution and use in source and binary forms, with or without%0A* modification, are permitted provided that the following conditions are met:%0A*%0A* . Redistributions of source code must retain the above copyright notice, this%0A* list of conditions and the following disclaimer.%0A*%0A* . Redistributions in binary form must reproduce the above copyright notice
+ * %0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS
 ,%0A
+ 
 * 
-this list of conditions and the following disclaimer in the documentation%0A* and/or other materials provided with the distribution.%0A*%0A* . Neither the name %22InariUtils%22 nor the names of its contributors may be%0A* used to endorse or promote products derived from this software without%0A* specific prior written permission.%0A*%0A* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS %22AS IS%22%0A* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE%0A* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE%0A* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE%0A* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR%0A* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF%0A* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS%0A* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN%0A* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)%0A* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE%0A* POSSIBILITY OF SUCH DAMAGE.%0A
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A *****************************************************************************
 */%0Ap

Update Configured.java