You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by si...@apache.org on 2009/09/08 18:19:40 UTC

svn commit: r812575 - in /labs/magma/trunk/foundation-beans/src: main/java/org/apache/magma/beans/ test/java/org/apache/magma/beans/

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: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org