Author: johnh
Date: Wed Apr 14 03:46:42 2010
New Revision: 933851

URL: http://svn.apache.org/viewvc?rev=933851&view=rev
Log:
Adds numChanges counter to MutableContent.


Modified:
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/MutableContent.java
    
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/MutableContentTest.java

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/MutableContent.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/MutableContent.java?rev=933851&r1=933850&r2=933851&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/MutableContent.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/MutableContent.java
 Wed Apr 14 03:46:42 2010
@@ -35,6 +35,7 @@ public class MutableContent {
   private String content;
   private HttpResponse contentSource;
   private Document document;
+  private int numChanges;
   private final GadgetHtmlParser contentParser;
   private final Map<String, Object> pipelinedData;
 
@@ -53,7 +54,8 @@ public class MutableContent {
   public MutableContent(GadgetHtmlParser contentParser, String content) {
     this.contentParser = contentParser;
     this.content = content;
-    pipelinedData = Maps.newHashMap();
+    this.numChanges = 0;
+    this.pipelinedData = Maps.newHashMap();
   }
 
   /**
@@ -63,7 +65,7 @@ public class MutableContent {
   public MutableContent(GadgetHtmlParser contentParser, HttpResponse 
contentSource) {
     this.contentParser = contentParser;
     this.contentSource = contentSource;
-    pipelinedData = Maps.newHashMap();
+    this.pipelinedData = Maps.newHashMap();
   }
 
 
@@ -101,6 +103,7 @@ public class MutableContent {
       content = newContent;
       document = null;
       contentSource = null;
+      numChanges++;
     }
   }
 
@@ -113,6 +116,7 @@ public class MutableContent {
     if (document != null) {
       content = null;
       contentSource = null;
+      numChanges++;
     }
   }
   
@@ -139,6 +143,10 @@ public class MutableContent {
     }
     return document;
   }
+  
+  public int getNumChanges() {
+    return numChanges;
+  }
 
   /**
    * True if current state has a parsed document. Allows rewriters to switch 
mode based on

Modified: 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/MutableContentTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/MutableContentTest.java?rev=933851&r1=933850&r2=933851&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/MutableContentTest.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/MutableContentTest.java
 Wed Apr 14 03:46:42 2010
@@ -54,14 +54,19 @@ public class MutableContentTest {
 
     assertSame(content, mhc.getContent());
     assertSame(document, mhc.getDocument());
+    assertEquals(0, mhc.getNumChanges());
   }
 
   @Test
   public void modifyContentReflectedInTree() throws Exception {
+    assertEquals(0, mhc.getNumChanges());
     mhc.setContent("NEW CONTENT");
+    assertEquals(1, mhc.getNumChanges());
     Document document = mhc.getDocument();
     assertEquals(1, document.getChildNodes().getLength());
     assertEquals("NEW CONTENT", 
document.getChildNodes().item(0).getTextContent());
+    mhc.documentChanged();
+    assertEquals(2, mhc.getNumChanges());
   }
 
   @Test
@@ -70,12 +75,15 @@ public class MutableContentTest {
 
     // First child should be text node per other tests. Modify it.
     document.getFirstChild().getFirstChild().setTextContent("FOO CONTENT");
+    assertEquals(0, mhc.getNumChanges());
     MutableContent.notifyEdit(document);
+    assertEquals(1, mhc.getNumChanges());
     assertTrue(mhc.getContent().contains("FOO CONTENT"));
 
     // Do it again
     document.getFirstChild().getFirstChild().setTextContent("BAR CONTENT");
     MutableContent.notifyEdit(document);
+    assertEquals(2, mhc.getNumChanges());
     assertTrue(mhc.getContent().contains("BAR CONTENT"));
 
     // GadgetHtmlNode hasn't changed because string hasn't changed


Reply via email to