Author: simoneg
Date: Tue Sep 8 16:19:40 2009
New Revision: 812575
URL: http://svn.apache.org/viewvc?rev=812575&view=rev
Log:
LABS-441 : added support for @MagReadOnly
Added:
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/MagReadOnly.java
Modified:
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/PropertyInfo.java
labs/magma/trunk/foundation-beans/src/test/java/org/apache/magma/beans/BeanDataTest.java
labs/magma/trunk/foundation-beans/src/test/java/org/apache/magma/beans/TestBean.java
Added:
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/MagReadOnly.java
URL:
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/MagReadOnly.java?rev=812575&view=auto
==============================================================================
---
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/MagReadOnly.java
(added)
+++
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/MagReadOnly.java
Tue Sep 8 16:19:40 2009
@@ -0,0 +1,13 @@
+package org.apache.magma.beans;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+
+...@retention(RetentionPolicy.RUNTIME)
+...@target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE})
+public @interface MagReadOnly {
+
+}
Modified:
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/PropertyInfo.java
URL:
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/PropertyInfo.java?rev=812575&r1=812574&r2=812575&view=diff
==============================================================================
---
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/PropertyInfo.java
(original)
+++
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/PropertyInfo.java
Tue Sep 8 16:19:40 2009
@@ -163,6 +163,13 @@
this.name = descriptor.getName();
Method readMethod = descriptor.getReadMethod();
Method writeMethod = descriptor.getWriteMethod();
+
+ if ((readMethod != null &&
readMethod.isAnnotationPresent(MagReadOnly.class)) ||
+ (writeMethod != null &&
writeMethod.isAnnotationPresent(MagReadOnly.class)) ||
+
beanClass.isAnnotationPresent(MagReadOnly.class)) {
+ writeMethod = null;
+ }
+
Consider consider = null;
if (readMethod != null) consider =
readMethod.getAnnotation(Consider.class);
if (consider == null && writeMethod != null) consider =
writeMethod.getAnnotation(Consider.class);
Modified:
labs/magma/trunk/foundation-beans/src/test/java/org/apache/magma/beans/BeanDataTest.java
URL:
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-beans/src/test/java/org/apache/magma/beans/BeanDataTest.java?rev=812575&r1=812574&r2=812575&view=diff
==============================================================================
---
labs/magma/trunk/foundation-beans/src/test/java/org/apache/magma/beans/BeanDataTest.java
(original)
+++
labs/magma/trunk/foundation-beans/src/test/java/org/apache/magma/beans/BeanDataTest.java
Tue Sep 8 16:19:40 2009
@@ -46,7 +46,7 @@
assertTrue(propertyNames.contains("privString"));
assertTrue(propertyNames.contains("class"));
- assertEquals(6, propertyNames.size());
+ assertEquals(7, propertyNames.size());
}
@Test
@@ -76,4 +76,11 @@
PropertyInfo property = bd.getProperty("maskedDate");
assertEquals(Date.class, property.getType());
}
+
+ @Test
+ public void roProperty() throws Exception {
+ PropertyInfo property = bd.getProperty("roProp");
+ assertTrue(property.isReadable());
+ assertFalse(property.isWriteable());
+ }
}
Modified:
labs/magma/trunk/foundation-beans/src/test/java/org/apache/magma/beans/TestBean.java
URL:
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-beans/src/test/java/org/apache/magma/beans/TestBean.java?rev=812575&r1=812574&r2=812575&view=diff
==============================================================================
---
labs/magma/trunk/foundation-beans/src/test/java/org/apache/magma/beans/TestBean.java
(original)
+++
labs/magma/trunk/foundation-beans/src/test/java/org/apache/magma/beans/TestBean.java
Tue Sep 8 16:19:40 2009
@@ -29,6 +29,15 @@
private List<String> aList;
private String maskedDate;
+ private String roProp;
+
+ public String getRoProp() {
+ return roProp;
+ }
+ @MagReadOnly
+ public void setRoProp(String roProp) {
+ this.roProp = roProp;
+ }
public String getPrivString() {
return privString;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]