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]

Reply via email to