diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2013-12-12 14:13:36 +0100 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2013-12-12 14:13:36 +0100 |
| commit | 428d828ca640d1348979f9982d1c0bc0a489a3b4 (patch) | |
| tree | a40b0f8fa46942f5e9d4c805a4df724ee5a5aa6b /src/main/java/com/c2kernel/property | |
| parent | d5d65f58e69424d898f88e8304a49f147d4036f6 (diff) | |
Properties preserve and respect the PropertyDescription 'isMutable'
property. This setting prevents the WriteProperty predefined step from
changing the property value when isMutable is false. WriteProperty also
requires the selected property to already exist - they should be created
either during Item instantiation or using AddC2KObject.
LDAPPropertyManager prepends the Property name in its entries with ! if
they are non mutable.
Various places around the kernel that create properties now set the
mutable field.
Fixes #150
Diffstat (limited to 'src/main/java/com/c2kernel/property')
3 files changed, 17 insertions, 6 deletions
diff --git a/src/main/java/com/c2kernel/property/Property.java b/src/main/java/com/c2kernel/property/Property.java index 3022cc5..6b7c4ee 100644 --- a/src/main/java/com/c2kernel/property/Property.java +++ b/src/main/java/com/c2kernel/property/Property.java @@ -17,6 +17,7 @@ public class Property implements C2KLocalObject {
private String mName;
private String mValue;
+ private boolean mMutable = true;
/**************************************************************************
@@ -24,18 +25,17 @@ public class Property implements C2KLocalObject **************************************************************************/
public Property()
{
- setName( "" );
- setValue( "" );
}
/**************************************************************************
*
**************************************************************************/
- public Property( String name, String value )
+ public Property( String name, String value, boolean mutable )
{
setName( name );
setValue( value );
+ setMutable( mutable );
}
/**************************************************************************
@@ -48,7 +48,17 @@ public class Property implements C2KLocalObject }
- /**************************************************************************
+ public boolean isMutable() {
+ return mMutable;
+ }
+
+
+ public void setMutable(boolean mMutable) {
+ this.mMutable = mMutable;
+ }
+
+
+/**************************************************************************
*
**************************************************************************/
@Override
diff --git a/src/main/java/com/c2kernel/property/PropertyDescription.java b/src/main/java/com/c2kernel/property/PropertyDescription.java index cd3b93c..c0b6df6 100644 --- a/src/main/java/com/c2kernel/property/PropertyDescription.java +++ b/src/main/java/com/c2kernel/property/PropertyDescription.java @@ -71,7 +71,7 @@ public class PropertyDescription public Property getProperty()
{
- return new Property(mName,mDefaultValue);
+ return new Property(mName, mDefaultValue, mIsMutable);
}
}
diff --git a/src/main/java/com/c2kernel/property/PropertyDescriptionList.java b/src/main/java/com/c2kernel/property/PropertyDescriptionList.java index a6c68e2..ed93008 100644 --- a/src/main/java/com/c2kernel/property/PropertyDescriptionList.java +++ b/src/main/java/com/c2kernel/property/PropertyDescriptionList.java @@ -55,7 +55,8 @@ public class PropertyDescriptionList extends CastorArrayList<PropertyDescription PropertyDescription pd = list.get(i);
String propName = pd.getName();
String propVal = pd.getDefaultValue();
- props.list.add( new Property(propName, propVal));
+ boolean isMutable = pd.getIsMutable();
+ props.list.add( new Property(propName, propVal, isMutable));
}
return props;
}
|
