Author: cziegeler
Date: Tue Sep 3 06:08:57 2013
New Revision: 1519567
URL: http://svn.apache.org/r1519567
Log:
FELIX-3884 : Default value and options
Modified:
felix/trunk/metatype/changelog.txt
felix/trunk/metatype/src/main/java/org/apache/felix/metatype/AD.java
felix/trunk/metatype/src/main/java/org/apache/felix/metatype/MetaDataReader.java
Modified: felix/trunk/metatype/changelog.txt
URL:
http://svn.apache.org/viewvc/felix/trunk/metatype/changelog.txt?rev=1519567&r1=1519566&r2=1519567&view=diff
==============================================================================
--- felix/trunk/metatype/changelog.txt (original)
+++ felix/trunk/metatype/changelog.txt Tue Sep 3 06:08:57 2013
@@ -6,6 +6,7 @@ Changes from 1.0.6 to 1.0.8
* [FELIX-3757] - If an AttributeDefinition did not specify a minimum,
maximum or option values, it did not detect missing values;
* [FELIX-3758] - AttributeDefinition.validate() did not take non-zero
cardinality into consideration.
* [FELIX-4214] - Cache in BundleResources works only for a single metatype
properties file per bundle
+ * [FELIX-3884] - Default value and options
Changes from 1.0.4 to 1.0.6
Modified: felix/trunk/metatype/src/main/java/org/apache/felix/metatype/AD.java
URL:
http://svn.apache.org/viewvc/felix/trunk/metatype/src/main/java/org/apache/felix/metatype/AD.java?rev=1519567&r1=1519566&r2=1519567&view=diff
==============================================================================
--- felix/trunk/metatype/src/main/java/org/apache/felix/metatype/AD.java
(original)
+++ felix/trunk/metatype/src/main/java/org/apache/felix/metatype/AD.java Tue
Sep 3 06:08:57 2013
@@ -145,7 +145,7 @@ public class AD extends OptionalAttribut
* can be <code>null</code>.
*
* @return <code>null</code> if no validation is performed, <tt>""</tt> if
- * the value is accepted as valid, or a non-empty string
+ * the value is accepted as valid, or a non-empty string
* indicating a validation problem was found.
*
* @see ADValidator#validate(AD, String)
@@ -223,7 +223,7 @@ public class AD extends OptionalAttribut
*/
public void setDefaultValue(String defaultValue)
{
- this.defaultValue = splitList(defaultValue);
+ this.setDefaultValue( splitList(defaultValue) );
}
/**
@@ -243,11 +243,44 @@ public class AD extends OptionalAttribut
}
/**
- * @param defaultValue the defaultValue to set
+ * @param values the defaultValue to set
*/
- public void setDefaultValue(String[] defaultValue)
+ public void setDefaultValue(String[] values)
{
- this.defaultValue = (String[]) defaultValue.clone();
+ if ( values != null )
+ {
+ int count = 0;
+ for(int i=0; i<values.length; i++)
+ {
+ if ( "".equals(ADValidator.validate(this, values[i])) )
+ {
+ count++;
+ }
+ else
+ {
+ values[i] = null;
+ }
+ }
+ if ( count == 0 )
+ {
+ values = null;
+ }
+ else if ( count != values.length )
+ {
+ String[] filterValues = new String[count];
+ int index = 0;
+ for(int i=0; i<values.length; i++)
+ {
+ if ( values[i] != null )
+ {
+ filterValues[index] = values[i];
+ index++;
+ }
+ }
+ values = filterValues;
+ }
+ }
+ this.defaultValue = values;
}
/**
Modified:
felix/trunk/metatype/src/main/java/org/apache/felix/metatype/MetaDataReader.java
URL:
http://svn.apache.org/viewvc/felix/trunk/metatype/src/main/java/org/apache/felix/metatype/MetaDataReader.java?rev=1519567&r1=1519566&r2=1519567&view=diff
==============================================================================
---
felix/trunk/metatype/src/main/java/org/apache/felix/metatype/MetaDataReader.java
(original)
+++
felix/trunk/metatype/src/main/java/org/apache/felix/metatype/MetaDataReader.java
Tue Sep 3 06:08:57 2013
@@ -419,6 +419,11 @@ public class MetaDataReader
ad.setOptions( options );
+ // reset value to force an options check (FELIX-3884)
+ if ( ad.getDefaultValue() != null )
+ {
+ ad.setDefaultValue( ad.getDefaultValue() );
+ }
return ad;
}