nodal-cvs Mailing List for NODAL (Page 2)
Status: Pre-Alpha
Brought to you by:
leei
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(69) |
Jun
(153) |
Jul
(129) |
Aug
(70) |
Sep
(94) |
Oct
(105) |
Nov
(31) |
Dec
(34) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(7) |
Feb
(40) |
Mar
(68) |
Apr
(27) |
May
(107) |
Jun
(202) |
Jul
(74) |
Aug
(5) |
Sep
(25) |
Oct
(40) |
Nov
(43) |
Dec
(73) |
2004 |
Jan
(63) |
Feb
(40) |
Mar
(104) |
Apr
(34) |
May
(33) |
Jun
(18) |
Jul
(12) |
Aug
(2) |
Sep
(24) |
Oct
(52) |
Nov
(44) |
Dec
(4) |
2005 |
Jan
(42) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2008 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(5) |
Jun
|
Jul
|
Aug
(6) |
Sep
(3) |
Oct
|
Nov
|
Dec
(1) |
2014 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
(1) |
Sep
(6) |
Oct
(5) |
Nov
(8) |
Dec
(3) |
2015 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Lee I. <le...@us...> - 2005-01-08 00:54:59
|
Update of /cvsroot/nodal/j-test/src/test/org/nodal/util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1818/src/test/org/nodal/util Modified Files: TestGraphIterator.java Log Message: Reflect IOException throws from Repository and Document access. Index: TestGraphIterator.java =================================================================== RCS file: /cvsroot/nodal/j-test/src/test/org/nodal/util/TestGraphIterator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TestGraphIterator.java 3 Oct 2004 19:42:11 -0000 1.1 --- TestGraphIterator.java 8 Jan 2005 00:54:50 -0000 1.2 *************** *** 39,44 **** private void checkResource (String rname) throws Path.Failure { URL url = Nodal.class.getClassLoader().getResource(rname); ! Document doc = Nodal.openDocument(url.toExternalForm()); ! checkDocument (doc); } --- 39,50 ---- private void checkResource (String rname) throws Path.Failure { URL url = Nodal.class.getClassLoader().getResource(rname); ! ! try { ! Document doc = Nodal.openDocument(url.toExternalForm()); ! checkDocument (doc); ! } catch (Exception e) { ! fail(); ! } ! } |
From: Lee I. <le...@us...> - 2005-01-08 00:54:59
|
Update of /cvsroot/nodal/j-test/src/test/storage/memory In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1818/src/test/storage/memory Modified Files: TestPaths.java TestmemMapContent.java TestmemIntSequenceContent.java TestBareSequence.java TestmemOperator.java TestmemStringContent.java TestmemGenericSequenceContent.java Log Message: Reflect IOException throws from Repository and Document access. Index: TestmemGenericSequenceContent.java =================================================================== RCS file: /cvsroot/nodal/j-test/src/test/storage/memory/TestmemGenericSequenceContent.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TestmemGenericSequenceContent.java 12 Nov 2004 19:24:50 -0000 1.2 --- TestmemGenericSequenceContent.java 8 Jan 2005 00:54:49 -0000 1.3 *************** *** 3,6 **** --- 3,7 ---- package test.storage.memory; + import java.io.IOException; import java.util.Vector; *************** *** 14,18 **** import org.nodal.model.Setter; import org.nodal.nav.Path; [...1487 lines suppressed...] } }; ! public void testExecuteReplaceRange_case5back() { ! ! Vector originVec = cloneContent(); try { ! executeReplaceRange(-(iseq.size() + 9), -1, new Integer(8)); ! fail("expected ConstraintFailure"); ! } catch (ConstraintFailure e) { //must go here because of out-of-range reference //System.err.println("Caught ConstraintFailure: " + e.getMessage()); ! } finally { //the content should be unchanged ! compareSequences(originVec); } }; ! ! } \ No newline at end of file Index: TestPaths.java =================================================================== RCS file: /cvsroot/nodal/j-test/src/test/storage/memory/TestPaths.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TestPaths.java 12 Nov 2004 19:24:50 -0000 1.2 --- TestPaths.java 8 Jan 2005 00:54:49 -0000 1.3 *************** *** 10,13 **** --- 10,15 ---- package test.storage.memory; + import java.io.IOException; + import junit.framework.TestCase; *************** *** 15,19 **** import org.nodal.Types; import org.nodal.model.Node; ! import org.nodal.nav.Path.Failure; import org.nodal.type.SequenceType; import org.nodal.type.Schema; --- 17,21 ---- import org.nodal.Types; import org.nodal.model.Node; ! import org.nodal.nav.Path; import org.nodal.type.SequenceType; import org.nodal.type.Schema; *************** *** 22,26 **** import storage.trans.TransientRepository; ! /** JUnit TestCase. * @testfamily JUnit * @testkind testcase --- 24,30 ---- import storage.trans.TransientRepository; ! /** ! * JUnit TestCase. ! * * @testfamily JUnit * @testkind testcase *************** *** 33,56 **** protected TransientRepository repo; ! public TestPaths(String name) { super(name); } ! /** Sets up the fixture, for example, open a network connection. ! * This method is called before a test is executed. */ protected void setUp() { try { ! repo = (TransientRepository) Nodal.openRepository ("memory://transient"); ! } catch (Failure e) { ! fail(); ! } ! typeDoc = Types.createSchema ("memory://transient/testme.nls").edit (); ! try { ! intSeqType = typeDoc.createSequenceType (Types.SHORT); } catch (Type.CreationFailure e1) { e1.printStackTrace(); ! fail ("Unable to create sequence of shorts: "+e1); } --- 37,63 ---- protected TransientRepository repo; ! public TestPaths(String name) { super(name); } ! /** ! * Sets up the fixture, for example, open a network connection. This method is ! * called before a test is executed. ! */ protected void setUp() { try { ! repo = (TransientRepository) Nodal.openRepository("memory://transient"); ! typeDoc = Types.createSchema("memory://transient/testme.nls").edit(); ! ! intSeqType = typeDoc.createSequenceType(Types.SHORT); ! } catch (Path.Failure e) { ! fail(); } catch (Type.CreationFailure e1) { e1.printStackTrace(); ! fail("Unable to create sequence of shorts: " + e1); ! } catch (IOException e) { ! fail(); } *************** *** 58,71 **** } ! /** Tears down the fixture, for example, close a network connection. ! * This method is called after a test is executed. */ protected void tearDown() { ! repo.close (); } ! public void testBarePaths () { ! Node n = repo.createNode (intSeqType); ! //System.err.println (n.path ()); } ! } --- 65,80 ---- } ! /** ! * Tears down the fixture, for example, close a network connection. This ! * method is called after a test is executed. ! */ protected void tearDown() { ! repo.close(); } ! public void testBarePaths() { ! Node n = repo.createNode(intSeqType); ! //System.err.println (n.path ()); } ! } \ No newline at end of file Index: TestmemStringContent.java =================================================================== RCS file: /cvsroot/nodal/j-test/src/test/storage/memory/TestmemStringContent.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TestmemStringContent.java 12 Nov 2004 19:24:50 -0000 1.2 --- TestmemStringContent.java 8 Jan 2005 00:54:49 -0000 1.3 *************** *** 3,6 **** --- 3,8 ---- package test.storage.memory; + import java.io.IOException; + import junit.framework.TestCase; *************** *** 12,16 **** import org.nodal.model.SequenceNode; import org.nodal.model.Setter; ! import org.nodal.nav.Path.Failure; import org.nodal.type.SequenceType; import org.nodal.type.Schema; --- 14,18 ---- import org.nodal.model.SequenceNode; import org.nodal.model.Setter; ! import org.nodal.nav.Path; import org.nodal.type.SequenceType; import org.nodal.type.Schema; *************** *** 22,30 **** import storage.trans.TransientRepository; ! /** JUnit TestCase. * @testfamily JUnit * @testkind testcase * @testsetup Default TestCase ! * @testedclass org.nodal.storage.memory.memGenericSequenceContent*/ public class TestmemStringContent extends TestCase { protected Schema.Editor typeDoc; --- 24,35 ---- import storage.trans.TransientRepository; ! /** ! * JUnit TestCase. ! * * @testfamily JUnit * @testkind testcase * @testsetup Default TestCase ! * @testedclass org.nodal.storage.memory.memGenericSequenceContent ! */ public class TestmemStringContent extends TestCase { protected Schema.Editor typeDoc; *************** *** 40,58 **** } ! /** Sets up the fixture, for example, open a network connection. ! * This method is called before a test is executed. */ protected void setUp() { try { repo = (TransientRepository) Nodal.openRepository("memory://transient"); - } catch (Failure e) { - fail(); - } ! typeDoc = Types.createSchema("memory://transient/testme.nls").edit(); ! try { charSeqType = typeDoc.createSequenceType(Types.CHARACTER); } catch (Type.CreationFailure e1) { e1.printStackTrace(); ! fail ("Unable to create sequence of characters: "+e1); } --- 45,66 ---- } ! /** ! * Sets up the fixture, for example, open a network connection. This method is ! * called before a test is executed. ! */ protected void setUp() { try { repo = (TransientRepository) Nodal.openRepository("memory://transient"); ! typeDoc = Types.createSchema("memory://transient/testme.nls").edit(); ! charSeqType = typeDoc.createSequenceType(Types.CHARACTER); + } catch (Path.Failure e) { + fail(); } catch (Type.CreationFailure e1) { e1.printStackTrace(); ! fail("Unable to create sequence of characters: " + e1); ! } catch (IOException e) { ! fail(); } *************** *** 73,78 **** } ! /** Tears down the fixture, for example, close a network connection. ! * This method is called after a test is executed. */ protected void tearDown() { repo.close(); --- 81,88 ---- } ! /** ! * Tears down the fixture, for example, close a network connection. This ! * method is called after a test is executed. ! */ protected void tearDown() { repo.close(); *************** *** 97,101 **** private StringBuffer cloneContent() { try { ! return new StringBuffer (((CharSeq) cseqAll.get()).toString()); } catch (PropertyConstraintFailure f) { fail("cseqAll.get() failed"); --- 107,111 ---- private StringBuffer cloneContent() { try { ! return new StringBuffer(((CharSeq) cseqAll.get()).toString()); } catch (PropertyConstraintFailure f) { fail("cseqAll.get() failed"); *************** *** 159,163 **** fail("Caught ConstraintFailure: " + e.getMessage()); } finally { ! //System.out.println (" cseq.str = \""+cseq.str+"\""); //System.out.println (" origin = \""+originStr+"\""); compareSequences(originStr); --- 169,173 ---- fail("Caught ConstraintFailure: " + e.getMessage()); } finally { ! //System.out.println (" cseq.str = \""+cseq.str+"\""); //System.out.println (" origin = \""+originStr+"\""); compareSequences(originStr); *************** *** 183,187 **** //boolean tmp = true; StringBuffer originStr = cloneContent(); ! //copy the original content for validation later //manually append val into the original content originStr.append(testStr12); --- 193,197 ---- //boolean tmp = true; StringBuffer originStr = cloneContent(); ! //copy the original content for validation later //manually append val into the original content originStr.append(testStr12); *************** *** 207,211 **** StringBuffer originStr = cloneContent(); ! //copy the original content for validation later //manually convert the backward index to forward one --- 217,221 ---- StringBuffer originStr = cloneContent(); ! //copy the original content for validation later //manually convert the backward index to forward one *************** *** 221,230 **** fail("Caught ConstraintFailure: " + e.getMessage()); } finally { ! //System.out.println (" cseq.str = \""+cseq.str+"\""); //System.out.println (" origin = \""+originStr+"\""); compareSequences(originStr); } ! } else ! fail("Sequence is too short for backward reference"); } --- 231,239 ---- fail("Caught ConstraintFailure: " + e.getMessage()); } finally { ! //System.out.println (" cseq.str = \""+cseq.str+"\""); //System.out.println (" origin = \""+originStr+"\""); compareSequences(originStr); } ! } else fail("Sequence is too short for backward reference"); } *************** *** 235,239 **** StringBuffer originStr = cloneContent(); ! //copy the original content for validation later originStr.insert((cseq.size() / 2 + 1), testStr22); //--------case (4)--------------- --- 244,248 ---- StringBuffer originStr = cloneContent(); ! //copy the original content for validation later originStr.insert((cseq.size() / 2 + 1), testStr22); //--------case (4)--------------- *************** *** 254,258 **** StringBuffer originStr = cloneContent(); ! //copy the original content for validation later //--------case (5)--------------- //System.err.println("originStr: " + originStr); --- 263,267 ---- StringBuffer originStr = cloneContent(); ! //copy the original content for validation later //--------case (5)--------------- //System.err.println("originStr: " + originStr); *************** *** 302,306 **** StringBuffer originStr = cloneContent(); ! //copy the original content for validation later originStr.insert(cseq.size() - 1, testStr22); //--------case (2)--------------- --- 311,315 ---- StringBuffer originStr = cloneContent(); ! //copy the original content for validation later originStr.insert(cseq.size() - 1, testStr22); //--------case (2)--------------- *************** *** 321,325 **** StringBuffer originStr = cloneContent(); ! //copy the original content for validation later //manually convert the backward index to forward one //System.err.println("originStr: " + originStr); --- 330,334 ---- StringBuffer originStr = cloneContent(); ! //copy the original content for validation later //manually convert the backward index to forward one //System.err.println("originStr: " + originStr); *************** *** 337,351 **** compareSequences(originStr); } ! } else ! fail("Sequence is too short for backward reference"); }; public void testInsertBefore_case4() { ! //System.err.println("***test case 4 for executeInsertBefore (int, object)"); String testStr24 = "yzq"; StringBuffer originStr = cloneContent(); ! //copy the original content for validation later originStr.insert((cseq.size() / 2), testStr24); //System.err.println("originStr: " + originStr); --- 346,360 ---- compareSequences(originStr); } ! } else fail("Sequence is too short for backward reference"); }; public void testInsertBefore_case4() { ! //System.err.println("***test case 4 for executeInsertBefore (int, ! // object)"); String testStr24 = "yzq"; StringBuffer originStr = cloneContent(); ! //copy the original content for validation later originStr.insert((cseq.size() / 2), testStr24); //System.err.println("originStr: " + originStr); *************** *** 366,370 **** StringBuffer originStr = cloneContent(); ! //copy the original content for validation later //System.err.println("originStr: " + originStr); //--------case (5)--------------- --- 375,379 ---- StringBuffer originStr = cloneContent(); ! //copy the original content for validation later //System.err.println("originStr: " + originStr); //--------case (5)--------------- *************** *** 389,393 **** StringBuffer originStr = cloneContent(); ! //copy the original content for validation later //System.err.println("###originStr: " + originStr); int originStrSize = originStr.length(); --- 398,402 ---- StringBuffer originStr = cloneContent(); ! //copy the original content for validation later //System.err.println("###originStr: " + originStr); int originStrSize = originStr.length(); *************** *** 398,412 **** try { //System.err.println("cseq.size() "+cseq.size()); ! //Remove all the elements in the midde, i.e. exclude the first and last element executeRemoveRange(1, cseq.size() - 2); } catch (ConstraintFailure e) { fail("Caught ConstraintFailure: " + e.getMessage()); } finally { ! //System.out.println(" cseq.str: \""+cseq.str+"\""); //System.out.println("originStr: \""+originStr+"\""); compareSequences(originStr); } ! } else ! fail("Sequence is too short to remove a subset of it"); }; --- 407,421 ---- try { //System.err.println("cseq.size() "+cseq.size()); ! //Remove all the elements in the midde, i.e. exclude the first and last ! // element executeRemoveRange(1, cseq.size() - 2); } catch (ConstraintFailure e) { fail("Caught ConstraintFailure: " + e.getMessage()); } finally { ! //System.out.println(" cseq.str: \""+cseq.str+"\""); //System.out.println("originStr: \""+originStr+"\""); compareSequences(originStr); } ! } else fail("Sequence is too short to remove a subset of it"); }; *************** *** 450,454 **** StringBuffer originStr = cloneContent(); ! //copy the original content for validation later //System.err.println("originStr: " + originStr); //--------case (4)--------------- --- 459,463 ---- StringBuffer originStr = cloneContent(); ! //copy the original content for validation later //System.err.println("originStr: " + originStr); //--------case (4)--------------- *************** *** 473,477 **** public void testReplaceRange_case1() { ! //copy the original content for validation later StringBuffer originStr = cloneContent(); //explicitly set the first element to be a 'd' --- 482,486 ---- public void testReplaceRange_case1() { ! //copy the original content for validation later StringBuffer originStr = cloneContent(); //explicitly set the first element to be a 'd' *************** *** 494,498 **** public void testReplaceRange_case2() { ! //--------case (2)--------------- // Create a vector for insert // the vector contains 3 elements --- 503,507 ---- public void testReplaceRange_case2() { ! //--------case (2)--------------- // Create a vector for insert // the vector contains 3 elements *************** *** 513,517 **** public void testReplaceRange_case3() { ! //build the result vector explicitly for testing StringBuffer originStr = cloneContent(); int originStrSize = originStr.length(); --- 522,526 ---- public void testReplaceRange_case3() { ! //build the result vector explicitly for testing StringBuffer originStr = cloneContent(); int originStrSize = originStr.length(); *************** *** 519,525 **** originStr.insert(1, 'e'); //System.err.println("originStr: " + originStr); ! //--------case (3)--------------- if (cseq.size() > 3) { ! // System.err.println("test case 3 for executeReplaceRange(int, int, Object)"); try { --- 528,535 ---- originStr.insert(1, 'e'); //System.err.println("originStr: " + originStr); ! //--------case (3)--------------- if (cseq.size() > 3) { ! // System.err.println("test case 3 for executeReplaceRange(int, int, ! // Object)"); try { *************** *** 530,535 **** compareSequences(originStr); } ! } else ! fail("Sequence is too short to replace a subset of it"); }; --- 540,544 ---- compareSequences(originStr); } ! } else fail("Sequence is too short to replace a subset of it"); }; *************** *** 537,543 **** public void testReplaceRange_case4() { ! //--------case (4)--------------- if (cseq.size() > 3) { ! //System.err.println("test case 4 for executeReplaceRange(int, int, Object)"); //System.err.println("cseq.str: "+cseq.str); // Create a vector for insert --- 546,553 ---- public void testReplaceRange_case4() { ! //--------case (4)--------------- if (cseq.size() > 3) { ! //System.err.println("test case 4 for executeReplaceRange(int, int, ! // Object)"); //System.err.println("cseq.str: "+cseq.str); // Create a vector for insert *************** *** 545,549 **** String testStr = "lkjh"; //System.err.println("Build Successful"); ! //build the result vector explicitly for testing StringBuffer originStr = cloneContent(); int originStrSize = originStr.length(); --- 555,559 ---- String testStr = "lkjh"; //System.err.println("Build Successful"); ! //build the result vector explicitly for testing StringBuffer originStr = cloneContent(); int originStrSize = originStr.length(); *************** *** 561,566 **** compareSequences(originStr); } ! } else ! fail("Sequence is too short to replace a subset of it"); }; --- 571,575 ---- compareSequences(originStr); } ! } else fail("Sequence is too short to replace a subset of it"); }; *************** *** 570,574 **** //--------case (5)--------------- ! //System.err.println("test case 5 for executeReplaceRange(int, int, Object)"); try { executeReplaceRange(0, cseq.size() + 6, new Integer(8)); --- 579,584 ---- //--------case (5)--------------- ! //System.err.println("test case 5 for executeReplaceRange(int, int, ! // Object)"); try { executeReplaceRange(0, cseq.size() + 6, new Integer(8)); *************** *** 590,594 **** StringBuffer originStr = cloneContent(); ! //copy the original content for validation later originStr.setCharAt(originStr.length() - 1, 'h'); //System.err.println("originStr: " + originStr); --- 600,604 ---- StringBuffer originStr = cloneContent(); ! //copy the original content for validation later originStr.setCharAt(originStr.length() - 1, 'h'); //System.err.println("originStr: " + originStr); *************** *** 623,627 **** fail("Caught ConstraintFailure: " + e.getMessage()); } finally { ! //System.out.println (" cseq.str = \""+cseq.str+"\""); //System.out.println (" origin = \""+originStr+"\""); compareSequences(originStr); --- 633,637 ---- fail("Caught ConstraintFailure: " + e.getMessage()); } finally { ! //System.out.println (" cseq.str = \""+cseq.str+"\""); //System.out.println (" origin = \""+originStr+"\""); compareSequences(originStr); *************** *** 632,644 **** StringBuffer originStr = cloneContent(); ! //System.err.println("originStr: " + originStr); removeRange(originStr, 0, cseq.size() - 3); originStr.insert(0, 'e'); ! //System.err.println("originStr: " + originStr); ! //--------case (3)--------------- if (cseq.size() > 3) { ! //System.err.println("test case 3 (backward reference) for executeReplaceRange(int, int, Object)"); try { ! executeReplaceRange(- (cseq.size()), -3, new Character('e')); } catch (ConstraintFailure e) { fail("Caught ConstraintFailure: " + e.getMessage()); --- 642,655 ---- StringBuffer originStr = cloneContent(); ! //System.err.println("originStr: " + originStr); removeRange(originStr, 0, cseq.size() - 3); originStr.insert(0, 'e'); ! //System.err.println("originStr: " + originStr); ! //--------case (3)--------------- if (cseq.size() > 3) { ! //System.err.println("test case 3 (backward reference) for ! // executeReplaceRange(int, int, Object)"); try { ! executeReplaceRange(-(cseq.size()), -3, new Character('e')); } catch (ConstraintFailure e) { fail("Caught ConstraintFailure: " + e.getMessage()); *************** *** 646,663 **** compareSequences(originStr); } ! } else ! fail("Sequence is too short to replace a subset of it"); }; ////////////////////////// public void testReplaceRange_case4back() { ! //--------case (4)--------------- if (cseq.size() > 3) { ! //System.err.println("test case 4 (backward reference) for executeReplaceRange(int, int, Object)"); // Create a vector for insert // the vector contains 3 elements String testStr = "zxcv"; ! //build the result vector explicitly for testing StringBuffer originStr = cloneContent(); removeRange(originStr, 0, cseq.size() - 3); --- 657,675 ---- compareSequences(originStr); } ! } else fail("Sequence is too short to replace a subset of it"); }; + ////////////////////////// public void testReplaceRange_case4back() { ! //--------case (4)--------------- if (cseq.size() > 3) { ! //System.err.println("test case 4 (backward reference) for ! // executeReplaceRange(int, int, Object)"); // Create a vector for insert // the vector contains 3 elements String testStr = "zxcv"; ! //build the result vector explicitly for testing StringBuffer originStr = cloneContent(); removeRange(originStr, 0, cseq.size() - 3); *************** *** 665,669 **** try { ! executeReplaceRange(- (cseq.size()), -3, testStr); } catch (ConstraintFailure e) { fail("Caught ConstraintFailure: " + e.getMessage()); --- 677,681 ---- try { ! executeReplaceRange(-(cseq.size()), -3, testStr); } catch (ConstraintFailure e) { fail("Caught ConstraintFailure: " + e.getMessage()); *************** *** 671,676 **** compareSequences(originStr); } ! } else ! fail("Sequence is too short to replace a subset of it"); }; --- 683,687 ---- compareSequences(originStr); } ! } else fail("Sequence is too short to replace a subset of it"); }; *************** *** 679,689 **** StringBuffer originStr = cloneContent(); //--------case (5)--------------- ! //System.err.println("test case 5 (backward reference) for executeReplaceRange(int, int, Object)"); try { ! executeReplaceRange(- (cseq.size() + 9), -1, new Integer(8)); fail("expected ConstraintFailure"); } catch (IndexBoundsException e) { //must go here since out-of-range exception ! //System.err.println("Caught ConstraintFailure: " + e.getMessage()); } catch (ConstraintFailure e) { fail("unexpected ConstraintFailure"); --- 690,701 ---- StringBuffer originStr = cloneContent(); //--------case (5)--------------- ! //System.err.println("test case 5 (backward reference) for ! // executeReplaceRange(int, int, Object)"); try { ! executeReplaceRange(-(cseq.size() + 9), -1, new Integer(8)); fail("expected ConstraintFailure"); } catch (IndexBoundsException e) { //must go here since out-of-range exception ! //System.err.println("Caught ConstraintFailure: " + e.getMessage()); } catch (ConstraintFailure e) { fail("unexpected ConstraintFailure"); *************** *** 693,695 **** } }; ! } --- 705,707 ---- } }; ! } \ No newline at end of file Index: TestmemIntSequenceContent.java =================================================================== RCS file: /cvsroot/nodal/j-test/src/test/storage/memory/TestmemIntSequenceContent.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TestmemIntSequenceContent.java 12 Nov 2004 19:24:50 -0000 1.2 --- TestmemIntSequenceContent.java 8 Jan 2005 00:54:49 -0000 1.3 *************** *** 3,6 **** --- 3,8 ---- package test.storage.memory; + import java.io.IOException; + import junit.framework.TestCase; *************** *** 12,16 **** import org.nodal.model.Setter; import org.nodal.nav.Path; - import org.nodal.nav.Path.Failure; import org.nodal.type.SequenceType; import org.nodal.type.Schema; --- 14,17 ---- *************** *** 22,30 **** import storage.trans.TransientRepository; ! /** JUnit TestCase. * @testfamily JUnit * @testkind testcase * @testsetup Default TestCase ! * @testedclass org.nodal.storage.memory.memIntSequenceContent*/ public final class TestmemIntSequenceContent extends TestCase { protected Schema.Editor typeDoc; --- 23,34 ---- import storage.trans.TransientRepository; ! /** ! * JUnit TestCase. ! * * @testfamily JUnit * @testkind testcase * @testsetup Default TestCase ! * @testedclass org.nodal.storage.memory.memIntSequenceContent ! */ public final class TestmemIntSequenceContent extends TestCase { protected Schema.Editor typeDoc; *************** *** 40,58 **** } ! /** Sets up the fixture, for example, open a network connection. ! * This method is called before a test is executed. */ protected void setUp() { try { repo = (TransientRepository) Nodal.openRepository("memory://transient"); - } catch (Failure e) { - fail(); - } ! typeDoc = Types.createSchema("memory://transient/testme.nds").edit(); ! try { intSeqType = typeDoc.createSequenceType(Types.INTEGER); } catch (Type.CreationFailure e1) { e1.printStackTrace(); ! fail ("Unable to create sequence of integers: "+e1); } --- 44,65 ---- } ! /** ! * Sets up the fixture, for example, open a network connection. This method is ! * called before a test is executed. ! */ protected void setUp() { try { repo = (TransientRepository) Nodal.openRepository("memory://transient"); ! typeDoc = Types.createSchema("memory://transient/testme.nds").edit(); ! intSeqType = typeDoc.createSequenceType(Types.INTEGER); } catch (Type.CreationFailure e1) { e1.printStackTrace(); ! fail("Unable to create sequence of integers: " + e1); ! } catch (Path.Failure e) { ! fail(); ! } catch (IOException e) { ! fail(); } *************** *** 63,67 **** //insert the initial content into the empty "iseq" object ! int testVec[] = { 1, 3, 5, 7, 9, 11 }; try { --- 70,74 ---- //insert the initial content into the empty "iseq" object ! int testVec[] = {1, 3, 5, 7, 9, 11}; try { *************** *** 74,79 **** } ! /** Tears down the fixture, for example, close a network connection. ! * This method is called after a test is executed. */ protected void tearDown() { repo.close(); --- 81,88 ---- } ! /** ! * Tears down the fixture, for example, close a network connection. This ! * method is called after a test is executed. ! */ protected void tearDown() { repo.close(); *************** *** 96,116 **** } ! public void testRange () { // The full range Getter range1 = iseq.range(0, -1); Path path1 = range1.path(); ! System.out.println (range1+".path() = "+path1); ! // Partial range Getter range2 = iseq.range(0, 3); Path path2 = range2.path(); ! System.out.println (range2+".path() = "+path2); ! Getter range3 = iseq.range(0, -1); Path path3 = range3.path(); ! System.out.println (range2+".path() = "+path3); ! assertTrue (path1 == path3); } ! private void checkIndex(int i) throws IndexBoundsException { iseq.item(i); --- 105,125 ---- } ! public void testRange() { // The full range Getter range1 = iseq.range(0, -1); Path path1 = range1.path(); ! System.out.println(range1 + ".path() = " + path1); ! // Partial range Getter range2 = iseq.range(0, 3); Path path2 = range2.path(); ! System.out.println(range2 + ".path() = " + path2); ! Getter range3 = iseq.range(0, -1); Path path3 = range3.path(); ! System.out.println(range2 + ".path() = " + path3); ! assertTrue(path1 == path3); } ! private void checkIndex(int i) throws IndexBoundsException { iseq.item(i); *************** *** 121,126 **** s.append("["); for (int i = 0; i < v.length; ++i) { ! if (i > 0) ! s.append(" "); s.append(v[i]); } --- 130,134 ---- s.append("["); for (int i = 0; i < v.length; ++i) { ! if (i > 0) s.append(" "); s.append(v[i]); } *************** *** 158,165 **** public void testInsertAfter_case1() { ! int testVec11[] = { 2, 4, 6 }; //--------case (1)--------------- ! int[] originVec = { 1, 2, 4, 6, 3, 5, 7, 9, 11 }; //System.err.println("originVec: " + originVec); --- 166,173 ---- public void testInsertAfter_case1() { ! int testVec11[] = {2, 4, 6}; //--------case (1)--------------- ! int[] originVec = {1, 2, 4, 6, 3, 5, 7, 9, 11}; //System.err.println("originVec: " + originVec); *************** *** 187,192 **** public void testInsertAfter_case2() { ! int testVec12[] = { 8, 10, 12 }; ! int originArr[] = { 1, 3, 5, 7, 9, 11, 8, 10, 12 }; //System.err.println("test case 2 for executeInsertAfter(int, Object)"); --- 195,200 ---- public void testInsertAfter_case2() { ! int testVec12[] = {8, 10, 12}; ! int originArr[] = {1, 3, 5, 7, 9, 11, 8, 10, 12}; //System.err.println("test case 2 for executeInsertAfter(int, Object)"); *************** *** 203,209 **** public void testInsertAfter_case3() { ! int testVec13[] = { 14, 16, 18 }; ! int originArr[] = { 1, 3, 5, 7, 9, 14, 16, 18, 11 }; ! //--------case (3)--------------- try { executeInsertAfter(-2, testVec13); --- 211,217 ---- public void testInsertAfter_case3() { ! int testVec13[] = {14, 16, 18}; ! int originArr[] = {1, 3, 5, 7, 9, 14, 16, 18, 11}; ! //--------case (3)--------------- try { executeInsertAfter(-2, testVec13); *************** *** 217,222 **** public void testInsertAfter_case4() { ! int testVec22[] = { 20, 22, 24 }; ! int originArr[] = { 1, 3, 5, 7, 20, 22, 24, 9, 11 }; try { --- 225,230 ---- public void testInsertAfter_case4() { ! int testVec22[] = {20, 22, 24}; ! int originArr[] = {1, 3, 5, 7, 20, 22, 24, 9, 11}; try { *************** *** 231,236 **** public void testInsertAfter_case5() { ! int testVec15[] = { 26, 28, 30 }; ! int originArr[] = { 1, 3, 5, 7, 9, 11 }; try { executeInsertAfter(iseq.size() + 6, testVec15); --- 239,244 ---- public void testInsertAfter_case5() { ! int testVec15[] = {26, 28, 30}; ! int originArr[] = {1, 3, 5, 7, 9, 11}; try { executeInsertAfter(iseq.size() + 6, testVec15); *************** *** 252,257 **** public void testInsertBefore_case1() { ! int testVec21[] = { 32, 34, 36 }; ! int originArr[] = { 32, 34, 36, 1, 3, 5, 7, 9, 11 }; try { --- 260,265 ---- public void testInsertBefore_case1() { ! int testVec21[] = {32, 34, 36}; ! int originArr[] = {32, 34, 36, 1, 3, 5, 7, 9, 11}; try { *************** *** 266,271 **** public void testInsertBefore_case2() { ! int testVec22[] = { 38, 40, 42 }; ! int originArr[] = { 1, 3, 5, 7, 9, 38, 40, 42, 11 }; try { --- 274,279 ---- public void testInsertBefore_case2() { ! int testVec22[] = {38, 40, 42}; ! int originArr[] = {1, 3, 5, 7, 9, 38, 40, 42, 11}; try { *************** *** 280,285 **** public void testInsertBefore_case3() { ! int testVec23[] = { 44, 46, 48 }; ! int originArr[] = { 1, 3, 5, 7, 44, 46, 48, 9, 11 }; try { --- 288,293 ---- public void testInsertBefore_case3() { ! int testVec23[] = {44, 46, 48}; ! int originArr[] = {1, 3, 5, 7, 44, 46, 48, 9, 11}; try { *************** *** 294,299 **** public void testInsertBefore_case4() { ! int testVec24[] = { 50, 52, 54 }; ! int originArr[] = { 1, 3, 5, 50, 52, 54, 7, 9, 11 }; try { executeInsertBefore(iseq.size() / 2, testVec24); --- 302,307 ---- public void testInsertBefore_case4() { ! int testVec24[] = {50, 52, 54}; ! int originArr[] = {1, 3, 5, 50, 52, 54, 7, 9, 11}; try { executeInsertBefore(iseq.size() / 2, testVec24); *************** *** 307,312 **** public void testInsertBefore_case5() { ! int testVec25[] = { 56, 58, 60 }; ! int originArr[] = { 1, 3, 5, 7, 9, 11 }; try { executeInsertBefore(iseq.size() + 6, testVec25); --- 315,320 ---- public void testInsertBefore_case5() { ! int testVec25[] = {56, 58, 60}; ! int originArr[] = {1, 3, 5, 7, 9, 11}; try { executeInsertBefore(iseq.size() + 6, testVec25); *************** *** 324,328 **** //============================================================================== public void testRemoveRange_case1() { ! int originArr[] = { 1, 11 }; try { --- 332,336 ---- //============================================================================== public void testRemoveRange_case1() { ! int originArr[] = {1, 11}; try { *************** *** 351,355 **** public void testRemoveRange_case3() { ! int originArr[] = { 1, 3, 5, 9, 11 }; try { executeRemoveRange(iseq.size() / 2, iseq.size() / 2); --- 359,363 ---- public void testRemoveRange_case3() { ! int originArr[] = {1, 3, 5, 9, 11}; try { executeRemoveRange(iseq.size() / 2, iseq.size() / 2); *************** *** 363,367 **** public void testRemoveRange_case5() { ! int originArr[] = { 3, 5, 7, 9, 11 }; try { executeRemoveRange(0, 0); --- 371,375 ---- public void testRemoveRange_case5() { ! int originArr[] = {3, 5, 7, 9, 11}; try { executeRemoveRange(0, 0); *************** *** 375,379 **** public void testRemoveRange_case4() { ! int originArr[] = { 1, 3, 5, 7, 9, 11 }; try { executeRemoveRange(0, iseq.size() + 5); --- 383,387 ---- public void testRemoveRange_case4() { ! int originArr[] = {1, 3, 5, 7, 9, 11}; try { executeRemoveRange(0, iseq.size() + 5); *************** *** 393,398 **** public void testReplaceRange_case1() { ! int originArr[] = { 8, 3, 5, 7, 9, 11 }; ! //System.err.println (" now: arr = " + iseq.size()); try { --- 401,406 ---- public void testReplaceRange_case1() { ! int originArr[] = {8, 3, 5, 7, 9, 11}; ! //System.err.println (" now: arr = " + iseq.size()); try { *************** *** 408,413 **** public void testReplaceRange_case2() { //System.err.println("~~~~~~~~~~~~~~~~~testcase 2 for replace range"); ! int testVec[] = { 42, 44, 46 }; ! int originArr[] = { 42, 44, 46, 3, 5, 7, 9, 11 }; try { --- 416,421 ---- public void testReplaceRange_case2() { //System.err.println("~~~~~~~~~~~~~~~~~testcase 2 for replace range"); ! int testVec[] = {42, 44, 46}; ! int originArr[] = {42, 44, 46, 3, 5, 7, 9, 11}; try { *************** *** 421,428 **** public void testReplaceRange_case3() { ! //System.err.println("~~~~~~~~~~~~~~~~~testcase 3 for replace range"); ! int originArr[] = { 1, 5 }; if (iseq.size() > 3) { ! //System.err.println("test case 3 for executeReplaceRange(int, int, Object)"); try { --- 429,437 ---- public void testReplaceRange_case3() { ! //System.err.println("~~~~~~~~~~~~~~~~~testcase 3 for replace range"); ! int originArr[] = {1, 5}; if (iseq.size() > 3) { ! //System.err.println("test case 3 for executeReplaceRange(int, int, ! // Object)"); try { *************** *** 433,438 **** compareSequences(originArr); } ! } else ! fail("Sequence is too short to replace a subset of it"); }; --- 442,446 ---- compareSequences(originArr); } ! } else fail("Sequence is too short to replace a subset of it"); }; *************** *** 440,445 **** public void testReplaceRange_case4() { //System.err.println("~~~~~~~~~~~~~~~~~testcase 4 for replace range"); ! int testVec[] = { 48, 50, 52 }; ! int originArr[] = { 1, 48, 50, 52 }; try { executeReplaceRange(1, iseq.size() - 1, testVec); --- 448,453 ---- public void testReplaceRange_case4() { //System.err.println("~~~~~~~~~~~~~~~~~testcase 4 for replace range"); ! int testVec[] = {48, 50, 52}; ! int originArr[] = {1, 48, 50, 52}; try { executeReplaceRange(1, iseq.size() - 1, testVec); *************** *** 454,461 **** //System.err.println("~~~~~~~Test case 5 for replace range"); ! int originArr[] = { 1, 3, 5, 7, 9, 11 }; //--------case (5)--------------- ! //System.err.println("test case 5 for executeReplaceRange(int, int, Object)"); try { executeReplaceRange(0, iseq.size() + 6, new Integer(8)); --- 462,470 ---- //System.err.println("~~~~~~~Test case 5 for replace range"); ! int originArr[] = {1, 3, 5, 7, 9, 11}; //--------case (5)--------------- ! //System.err.println("test case 5 for executeReplaceRange(int, int, ! // Object)"); try { executeReplaceRange(0, iseq.size() + 6, new Integer(8)); *************** *** 474,478 **** public void testReplaceRange_case1back() { ! int originArr[] = { 1, 3, 5, 7, 9, 8 }; try { executeReplaceRange(-1, -1, new Integer(8)); --- 483,487 ---- public void testReplaceRange_case1back() { ! int originArr[] = {1, 3, 5, 7, 9, 8}; try { executeReplaceRange(-1, -1, new Integer(8)); *************** *** 486,491 **** public void testReplaceRange_case2back() { ! int testVec[] = { 10, 12, 14, 16 }; ! int originArr[] = { 1, 3, 5, 7, 10, 12, 14, 16, 11 }; try { executeReplaceRange(-2, -2, testVec); --- 495,500 ---- public void testReplaceRange_case2back() { ! int testVec[] = {10, 12, 14, 16}; ! int originArr[] = {1, 3, 5, 7, 10, 12, 14, 16, 11}; try { executeReplaceRange(-2, -2, testVec); *************** *** 498,507 **** public void testReplaceRange_case3back() { ! int originArr[] = { 5, 9, 11 }; if (iseq.size() > 3) { ! //System.err.println("test case 3 (backward reference) for executeReplaceRange(int, int, Object)"); try { ! executeReplaceRange(- (iseq.size()), -3, new Integer(5)); } catch (ConstraintFailure e) { fail("Caught ConstraintFailure: " + e.getMessage()); --- 507,517 ---- public void testReplaceRange_case3back() { ! int originArr[] = {5, 9, 11}; if (iseq.size() > 3) { ! //System.err.println("test case 3 (backward reference) for ! // executeReplaceRange(int, int, Object)"); try { ! executeReplaceRange(-(iseq.size()), -3, new Integer(5)); } catch (ConstraintFailure e) { fail("Caught ConstraintFailure: " + e.getMessage()); *************** *** 509,523 **** compareSequences(originArr); } ! } else ! fail("Sequence is too short to replace a subset of it"); }; public void testReplaceRange_case4back() { ! int testVec[] = { 22, 24, 26, 28 }; ! int originArr[] = { 22, 24, 26, 28, 9, 11 }; if (iseq.size() > 3) { try { ! executeReplaceRange(- (iseq.size()), -3, testVec); } catch (ConstraintFailure e) { fail("Caught ConstraintFailure: " + e.getMessage()); --- 519,532 ---- compareSequences(originArr); } ! } else fail("Sequence is too short to replace a subset of it"); }; public void testReplaceRange_case4back() { ! int testVec[] = {22, 24, 26, 28}; ! int originArr[] = {22, 24, 26, 28, 9, 11}; if (iseq.size() > 3) { try { ! executeReplaceRange(-(iseq.size()), -3, testVec); } catch (ConstraintFailure e) { fail("Caught ConstraintFailure: " + e.getMessage()); *************** *** 525,536 **** compareSequences(originArr); } ! } else ! fail("Sequence is too short to replace a subset of it"); }; public void testReplaceRange_case5back() { ! int originArr[] = { 1, 3, 5, 7, 9, 11 }; try { ! executeReplaceRange(- (iseq.size() + 9), -1, new Integer(8)); fail("expected ConstraintFailure"); } catch (IndexBoundsException e) { --- 534,544 ---- compareSequences(originArr); } ! } else fail("Sequence is too short to replace a subset of it"); }; public void testReplaceRange_case5back() { ! int originArr[] = {1, 3, 5, 7, 9, 11}; try { ! executeReplaceRange(-(iseq.size() + 9), -1, new Integer(8)); fail("expected ConstraintFailure"); } catch (IndexBoundsException e) { *************** *** 545,547 **** }; ! } --- 553,555 ---- }; ! } \ No newline at end of file Index: TestBareSequence.java =================================================================== RCS file: /cvsroot/nodal/j-test/src/test/storage/memory/TestBareSequence.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TestBareSequence.java 12 Nov 2004 19:24:50 -0000 1.2 --- TestBareSequence.java 8 Jan 2005 00:54:49 -0000 1.3 *************** *** 10,13 **** --- 10,14 ---- package test.storage.memory; + import java.io.IOException; import java.util.Vector; *************** *** 21,25 **** import org.nodal.model.Setter; import org.nodal.model.ShortSeq; ! import org.nodal.nav.Path.Failure; import org.nodal.type.SequenceType; import org.nodal.type.Schema; --- 22,26 ---- import org.nodal.model.Setter; import org.nodal.model.ShortSeq; ! import org.nodal.nav.Path; import org.nodal.type.SequenceType; import org.nodal.type.Schema; *************** *** 32,40 **** import storage.trans.TransientRepository; ! /** JUnit TestCase. * @testfamily JUnit * @testkind testcase * @testsetup Default TestCase ! * @testedclass org.nodal.storage.memory.memGenericSequenceContent*/ public final class TestBareSequence extends TestCase { protected Schema.Editor typeDoc; --- 33,44 ---- import storage.trans.TransientRepository; ! /** ! * JUnit TestCase. ! * * @testfamily JUnit * @testkind testcase * @testsetup Default TestCase ! * @testedclass org.nodal.storage.memory.memGenericSequenceContent ! */ public final class TestBareSequence extends TestCase { protected Schema.Editor typeDoc; *************** *** 51,69 **** } ! /** Sets up the fixture, for example, open a network connection. ! * This method is called before a test is executed. */ protected void setUp() { try { repo = (TransientRepository) Nodal.openRepository("memory://transient"); - } catch (Failure e) { - fail(); - } ! typeDoc = Types.createSchema("memory://transient/testme.nls").edit(); ! try { shortSeqType = typeDoc.createSequenceType(Types.SHORT); } catch (Type.CreationFailure e1) { e1.printStackTrace(); ! fail ("Unable to create sequence of strings: "+e1); } --- 55,76 ---- } ! /** ! * Sets up the fixture, for example, open a network connection. This method is ! * called before a test is executed. ! */ protected void setUp() { try { repo = (TransientRepository) Nodal.openRepository("memory://transient"); ! typeDoc = Types.createSchema("memory://transient/testme.nls").edit(); ! shortSeqType = typeDoc.createSequenceType(Types.SHORT); + } catch (Path.Failure e) { + fail(); } catch (Type.CreationFailure e1) { e1.printStackTrace(); ! fail("Unable to create sequence of strings: " + e1); ! } catch (IOException e) { ! fail(); } *************** *** 74,78 **** //insert the initial content into the empty "sseq" object ! short[] testVec = { 1, 3, 5, 7, 9, 11 }; try { --- 81,85 ---- //insert the initial content into the empty "sseq" object ! short[] testVec = {1, 3, 5, 7, 9, 11}; try { *************** *** 84,89 **** } ! /** Tears down the fixture, for example, close a network connection. ! * This method is called after a test is executed. */ protected void tearDown() { repo.close(); --- 91,98 ---- } ! /** ! * Tears down the fixture, for example, close a network connection. This ! * method is called after a test is executed. ! */ protected void tearDown() { repo.close(); *************** *** 162,166 **** testVec11.add(2, new Short((short) 6)); ! short[] originVec = { 1, 2, 4, 6, 3, 5, 7, 9, 11 }; //--------case (1)--------------- --- 171,175 ---- testVec11.add(2, new Short((short) 6)); ! short[] originVec = {1, 2, 4, 6, 3, 5, 7, 9, 11}; //--------case (1)--------------- *************** *** 195,199 **** testVec12.add(2, new Short((short) 12)); ! short originVec[] = { 1, 3, 5, 7, 9, 11, 8, 10, 12 }; //--------case (2)--------------- --- 204,208 ---- testVec12.add(2, new Short((short) 12)); ! short originVec[] = {1, 3, 5, 7, 9, 11, 8, 10, 12}; //--------case (2)--------------- *************** *** 217,221 **** testVec13.add(2, new Short((short) 18)); ! short originVec[] = { 1, 3, 5, 7, 9, 14, 16, 18, 11 }; //--------case (3)--------------- --- 226,230 ---- testVec13.add(2, new Short((short) 18)); ! short originVec[] = {1, 3, 5, 7, 9, 14, 16, 18, 11}; //--------case (3)--------------- *************** *** 228,233 **** compareSequences(originVec); } ! } else ! fail("Sequence is too short for backward reference"); } --- 237,241 ---- compareSequences(originVec); } ! } else fail("Sequence is too short for backward reference"); } *************** *** 239,243 **** testVec22.add(2, new Short((short) 24)); ! short originArr[] = { 1, 3, 5, 7, 20, 22, 24, 9, 11 }; //--------case (4)--------------- --- 247,251 ---- testVec22.add(2, new Short((short) 24)); ! short originArr[] = {1, 3, 5, 7, 20, 22, 24, 9, 11}; //--------case (4)--------------- *************** *** 261,265 **** short[] originVec = cloneContent(); ! //copy the original content for validation later //--------case (5)--------------- //System.err.println("originVec: " + originVec); --- 269,273 ---- short[] originVec = cloneContent(); ! //copy the original content for validation later //--------case (5)--------------- //System.err.println("originVec: " + originVec); *************** *** 287,291 **** testVec21.add(2, new Short((short) 36)); ! short originVec[] = { 32, 34, 36, 1, 3, 5, 7, 9, 11 }; //--------case (1)--------------- --- 295,299 ---- testVec21.add(2, new Short((short) 36)); ! short originVec[] = {32, 34, 36, 1, 3, 5, 7, 9, 11}; //--------case (1)--------------- *************** *** 308,312 **** testVec22.add(2, new Short((short) 42)); ! short originVec[] = { 1, 3, 5, 7, 9, 38, 40, 42, 11 }; //--------case (2)--------------- --- 316,320 ---- testVec22.add(2, new Short((short) 42)); ! short originVec[] = {1, 3, 5, 7, 9, 38, 40, 42, 11}; //--------case (2)--------------- *************** *** 329,333 **** testVec23.add(2, new Short((short) 18)); ! short originVec[] = { 1, 3, 5, 7, 14, 16, 18, 9, 11 }; //--------case (3)--------------- --- 337,341 ---- testVec23.add(2, new Short((short) 18)); ! short originVec[] = {1, 3, 5, 7, 14, 16, 18, 9, 11}; //--------case (3)--------------- *************** *** 342,347 **** compareSequences(originVec); } ! } else ! fail("Sequence is too short for backward reference"); }; --- 350,354 ---- compareSequences(originVec); } ! } else fail("Sequence is too short for backward reference"); }; *************** *** 349,353 **** public void testInsertBefore_case4() { ! //System.err.println("***test case 4 for executeInsertBefore (int, object)"); Vector testVec24 = new Vector(3); testVec24.add(0, new Short((short) 50)); --- 356,361 ---- public void testInsertBefore_case4() { ! //System.err.println("***test case 4 for executeInsertBefore (int, ! // object)"); Vector testVec24 = new Vector(3); testVec24.add(0, new Short((short) 50)); *************** *** 355,359 **** testVec24.add(2, new Short((short) 54)); ! short originVec[] = { 1, 3, 5, 50, 52, 54, 7, 9, 11 }; //System.err.println("originVec: " + originVec); --- 363,367 ---- testVec24.add(2, new Short((short) 54)); ! short originVec[] = {1, 3, 5, 50, 52, 54, 7, 9, 11}; //System.err.println("originVec: " + originVec); *************** *** 377,381 **** short[] originVec = cloneContent(); ! //copy the original content for validation later //System.err.println("originVec: " + originVec); //--------case (5)--------------- --- 385,389 ---- short[] originVec = cloneContent(); ! //copy the original content for validation later //System.err.println("originVec: " + originVec); //--------case (5)--------------- *************** *** 398,402 **** public void testRemoveRange_case1() { ! short originVec[] = { 1, 11 }; //System.err.println("originVec: " + originVec); --- 406,410 ---- public void testRemoveRange_case1() { ! short originVec[] = {1, 11}; //System.err.println("originVec: " + originVec); *************** *** 407,411 **** try { //System.err.println("sseq.size() "+sseq.size()); ! //Remove all the elements in the midde, i.e. exclude the first and last element executeRemoveRange(1, sseq.size() - 2); } catch (ConstraintFailure e) { --- 415,420 ---- try { //System.err.println("sseq.size() "+sseq.size()); ! //Remove all the elements in the midde, i.e. exclude the first and last ! // element executeRemoveRange(1, sseq.size() - 2); } catch (ConstraintFailure e) { *************** *** 415,420 **** compareSequences(originVec); } ! } else ! fail("Sequence is too short to remove a subset of it"); }; --- 424,428 ---- compareSequences(originVec); } ! } else fail("Sequence is too short to remove a subset of it"); }; *************** *** 435,439 **** public void testRemoveRange_case3() { ! short originVec[] = { 1, 3, 5, 9, 11 }; //System.err.println("originVec: " + originVec); --- 443,447 ---- public void testRemoveRange_case3() { ! short originVec[] = {1, 3, 5, 9, 11}; //System.err.println("originVec: " + originVec); *************** *** 452,456 **** public void testRemoveRange_case5() { ! short originArr[] = { 3, 5, 7, 9, 11 }; try { executeRemoveRange(0, 0); --- 460,464 ---- public void testRemoveRange_case5() { ! short originArr[] = {3, 5, 7, 9, 11}; try { executeRemoveRange(0, 0); *************** *** 464,468 **** public void testRemoveRange_case4() { ! short originArr[] = { 1, 3, 5, 7, 9, 11 }; try { executeRemoveRange(0, sseq.size() + 5); --- 472,476 ---- public void testRemoveRange_case4() { ! short originArr[] = {1, 3, 5, 7, 9, 11}; try { executeRemoveRange(0, sseq.size() + 5); *************** *** 483,492 **** public void testReplaceRange_case1() { ! short originVec[] = { 8, 3, 5, 7, 9, 11 }; //System.err.println("originVec: " + originVec); //--------case (1)--------------- //replace the first element with an integer 8 ! //System.err.println("test case 1 for executeReplaceRange(int, int, Object)"); try { executeReplaceRange(0, 0, new Short((short) 8)); --- 491,501 ---- public void testReplaceRange_case1() { ! short originVec[] = {8, 3, 5, 7, 9, 11}; //System.err.println("originVec: " + originVec); //--------case (1)--------------- //replace the first element with an integer 8 ! //System.err.println("test case 1 for executeReplaceRange(int, int, ! // Object)"); try { executeReplaceRange(0, 0, new Short((short) 8)); *************** *** 503,507 **** public void testReplaceRange_case2() { ! //--------case (2)--------------- // Create a vector for insert // the vector contains 3 elements --- 512,516 ---- public void testReplaceRange_case2() { ! //--------case (2)--------------- // Create a vector for insert // the vector contains 3 elements *************** *** 510,514 **** testVec.add(1, new Short((short) 44)); testVec.add(2, new Short((short) 46)); ! short originVec[] = { 42, 44, 46, 3, 5, 7, 9, 11 }; try { --- 519,523 ---- testVec.add(1, new Short((short) 44)); testVec.add(2, new Short((short) 46)); ! short originVec[] = {42, 44, 46, 3, 5, 7, 9, 11}; try { *************** *** 523,532 **** public void testReplaceRange_case3() { ! short originVec[] = { 1, 5 }; //System.err.println("originVec: " + originVec); ! //--------case (3)--------------- if (sseq.size() > 3) { ! // System.err.println("test case 3 for executeReplaceRange(int, int, Object)"); try { --- 532,542 ---- public void testReplaceRange_case3() { ! short originVec[] = {1, 5}; //System.err.println("originVec: " + originVec); ! //--------case (3)--------------- if (sseq.size() > 3) { ! // System.err.println("test case 3 for executeReplaceRange(int, int, ! // Object)"); try { *************** *** 537,542 **** compareSequences(originVec); } ! } else ! fail("Sequence is too short to replace a subset of it"); }; --- 547,551 ---- compareSequences(originVec); } ! } else fail("Sequence is too short to replace a subset of it"); }; *************** *** 544,550 **** public void testReplaceRange_case4() { ! //--------case (4)--------------- if (sseq.size() > 3) { ! //System.err.println("test case 4 for executeReplaceRange(int, int, Object)"); //System.err.println("sseq.vec: "+sseq.vec); // Create a vector for insert --- 553,560 ---- public void testReplaceRange_case4() { ! //--------case (4)--------------- if (sseq.size() > 3) { ! //System.err.println("test case 4 for executeReplaceRange(int, int, ! // Object)"); //System.err.println("sseq.vec: "+sseq.vec); // Create a vector for insert *************** *** 556,560 **** testVec.add(3, new Short((short) 17)); ! short originVec[] = { 1, 11, 13, 15, 17 }; //System.err.println("finally originVec: "+originVec); --- 566,570 ---- testVec.add(3, new Short((short) 17)); ! short originVec[] = {1, 11, 13, 15, 17}; //System.err.println("finally originVec: "+originVec); *************** *** 566,571 **** compareSequences(originVec); } ! } else ! fail("Sequence is too short to replace a subset of it"); }; --- 576,580 ---- compareSequences(originVec); } ! } else fail("Sequence is too short to replace a subset of it"); }; *************** *** 575,579 **** //--------case (5)--------------- ! //System.err.println("test case 5 for executeReplaceRange(int, int, Object)"); try { executeReplaceRange(0, sseq.size() + 6, new Short((short) 8)); --- 584,589 ---- //--------case (5)--------------- ! //System.err.println("test case 5 for executeReplaceRange(int, int, ! // Object)"); try { executeReplaceRange(0, sseq.size() + 6, new Short((short) 8)); *************** *** 594,603 **** public void testReplaceRange_case1back() { ! short originVec[] = { 1, 3, 5, 7, 9, 8 }; //System.err.println("originVec: " + originVec); //--------case (1)--------------- //replace the last element with an integer 8 ! //System.err.println("test case 1 (backward reference) for executeReplaceRange(int, int, Object)"); try { executeReplaceRange(-1, -1, new Short((short) 8)); --- 604,614 ---- public void testReplaceRange_case1back() { ! short originVec[] = {1, 3, 5, 7, 9, 8}; //System.err.println("originVec: " + originVec); //--------case (1)--------------- //replace the last element with an integer 8 ! //System.err.println("test case 1 (backward reference) for ! // executeReplaceRange(int, int, Object)"); try { executeReplaceRange(-1, -1, new Short((short) 8)); *************** *** 612,617 **** public void testReplaceRange_case2back() { ! //--------case (2)--------------- ! //System.err.println("test case 2 (backward reference) for executeReplaceRange(int, int, Object)"); // Create a vector for insert // the vector contains 3 elements --- 623,62... [truncated message content] |
Update of /cvsroot/nodal/nodal/j-src/storage/memory In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv969/storage/memory Modified Files: OpReplaceRange.java OpInsertAfter.java BareSet.java OpAnchor.java memNodeMapContent.java memLiteralSetContent.java OpRemoveRange.java memLiteralMapContent.java OpAdd.java memNodeSetContent.java memByteSequenceContent.java memSetContent.java memIntSequenceContent.java OpInsertBefore.java memDoubleSequenceContent.java OpCreate.java OpRemove.java OpSetField.java memShortSequenceContent.java BareSequence.java memGenericSequenceContent.java memBoolSequenceContent.java memRecordContent.java MemContentI.java memMapContent.java memStringContent.java AbstractOperator.java OpClone.java BareMap.java memFloatSequenceContent.java memSequenceContent.java memLongSequenceContent.java OpSetValue.java BareRecord.java Added Files: AbstractNodeContent.java AbstractContent.java Removed Files: memContent.java BareContent.java Log Message: Major refactoring around AbstractNode.Backend interface. Index: memLiteralMapContent.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/memLiteralMapContent.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** memLiteralMapContent.java 16 Nov 2004 20:46:18 -0000 1.2 --- memLiteralMapContent.java 8 Jan 2005 00:51:07 -0000 1.3 *************** *** 69,73 **** } ! void opSetValue(Object key, Object val, BareContent.Editor c) throws ConstraintFailure { // Check types and convert if necessary --- 69,73 ---- } ! void opSetValue(Object key, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { // Check types and convert if necessary Index: BareMap.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/BareMap.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** BareMap.java 16 Nov 2004 19:25:35 -0000 1.16 --- BareMap.java 8 Jan 2005 00:51:08 -0000 1.17 *************** *** 13,28 **** import org.nodal.model.MapNode; - import org.nodal.model.Node; import org.nodal.model.NodeContent; import org.nodal.security.Capability; import storage.framework.AbstractRepository; ! public abstract class BareMap extends BareContent implements MapNode { protected memMapContent map; protected MapNode.Editor editMap; ! BareMap(Node n, memMapContent m, Capability cap, AbstractRepository.Backend f) { ! super(n, m, cap, f); map = m; editMap = null; --- 13,28 ---- import org.nodal.model.MapNode; import org.nodal.model.NodeContent; import org.nodal.security.Capability; + import storage.framework.AbstractNode; import storage.framework.AbstractRepository; ! public abstract class BareMap extends AbstractNodeContent implements MapNode { protected memMapContent map; protected MapNode.Editor editMap; ! BareMap(AbstractNode.Backend backend, memMapContent m, Capability cap, AbstractRepository.Backend f) { ! super(backend, m, cap, f); map = m; editMap = null; Index: memDoubleSequenceContent.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/memDoubleSequenceContent.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** memDoubleSequenceContent.java 16 Nov 2004 20:46:19 -0000 1.20 --- memDoubleSequenceContent.java 8 Jan 2005 00:51:08 -0000 1.21 *************** *** 146,150 **** // Implementation of StSequenceEditor methods ! protected Setter itemSetter(int i, BareContent.Editor c, NodeManager mgr) throws IndexBoundsException { return new DoubleSetterUtil(itemGetter(i, c), new IndexSetter(i, c, mgr)); --- 146,150 ---- // Implementation of StSequenceEditor methods ! protected Setter itemSetter(int i, AbstractNodeContent.Editor c, NodeManager mgr) throws IndexBoundsException { return new DoubleSetterUtil(itemGetter(i, c), new IndexSetter(i, c, mgr)); *************** *** 153,160 **** private class IndexSetter implements DoubleSetterUtil.DoubleSetter { private int idx; ! private BareContent.Editor content; private NodeManager mgr; ! IndexSetter(int i, BareContent.Editor c, NodeManager mgr) { idx = i; this.content = c; --- 153,160 ---- private class IndexSetter implements DoubleSetterUtil.DoubleSetter { private int idx; ! private AbstractNodeContent.Editor content; private NodeManager mgr; ! IndexSetter(int i, AbstractNodeContent.Editor c, NodeManager mgr) { idx = i; this.content = c; *************** *** 186,190 **** * Automatically converts to a valid value if necessary. */ ! void opSetItem(int i, Object v, BareContent.Editor c) throws ConstraintFailure { // Convert to something close to Double --- 186,190 ---- * Automatically converts to a valid value if necessary. */ ! void opSetItem(int i, Object v, AbstractNodeContent.Editor c) throws ConstraintFailure { // Convert to something close to Double *************** *** 200,204 **** * Set an item value with full checking of validity of value or index. */ ! void opSetItem(int i, double v, BareContent.Editor c) throws ConstraintFailure { checkIndex(i); --- 200,204 ---- * Set an item value with full checking of validity of value or index. */ ! void opSetItem(int i, double v, AbstractNodeContent.Editor c) throws ConstraintFailure { checkIndex(i); *************** *** 214,218 **** * must have already been done. */ ! private synchronized void opSetItemUnchecked(int i, double v, BareContent.Editor c) throws ConstraintFailure { if (i < 0) { --- 214,218 ---- * must have already been done. */ ! private synchronized void opSetItemUnchecked(int i, double v, AbstractNodeContent.Editor c) throws ConstraintFailure { if (i < 0) { *************** *** 224,228 **** synchronized void opReplaceRange(int startIndex, int endIndex, Object val, ! BareContent.Editor c) throws ConstraintFailure { DoubleSeq seq = (val == null ? null : DoubleSeqUtil.create(val)); if (seq != null) { --- 224,228 ---- synchronized void opReplaceRange(int startIndex, int endIndex, Object val, ! AbstractNodeContent.Editor c) throws ConstraintFailure { DoubleSeq seq = (val == null ? null : DoubleSeqUtil.create(val)); if (seq != null) { *************** *** 256,260 **** } ! synchronized void opInsertBefore(int index, Object val, BareContent.Editor c) throws ConstraintFailure { if (val == null) { --- 256,260 ---- } ! synchronized void opInsertBefore(int index, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { if (val == null) { *************** *** 266,270 **** } ! synchronized void opInsertAfter(int index, Object val, BareContent.Editor c) throws ConstraintFailure { if (val == null) { --- 266,270 ---- } ! synchronized void opInsertAfter(int index, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { if (val == null) { Index: memSetContent.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/memSetContent.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** memSetContent.java 16 Nov 2004 20:46:18 -0000 1.8 --- memSetContent.java 8 Jan 2005 00:51:08 -0000 1.9 *************** *** 13,17 **** import org.nodal.model.Getter; - import org.nodal.model.Node; import org.nodal.model.NodeContent; import org.nodal.model.SetContent; --- 13,16 ---- *************** *** 34,37 **** --- 33,38 ---- import org.nodal.util.SetterUtil; import org.nodal.util.TypeConstraintFailure; + + import storage.framework.AbstractNode; import storage.framework.AbstractRepository; *************** *** 39,45 **** * The canonical implementation of a SetContent object in memory. This * implementation also contains subclasses for implementing Set and SetEditor ! * given a Node that is using this class as its memContent. */ ! public abstract class memSetContent extends memContent { protected final SetType setType; protected final CacheMap getters; --- 40,46 ---- * The canonical implementation of a SetContent object in memory. This * implementation also contains subclasses for implementing Set and SetEditor ! * given a Node that is using this class as its AbstractContent. */ ! public abstract class memSetContent extends AbstractContent { protected final SetType setType; protected final CacheMap getters; *************** *** 70,74 **** private SetNode.Editor editor; ! MyNodeContent(Node n, Capability cap, AbstractRepository.Backend f) { super(n, memSetContent.this, cap, f); editor = null; --- 71,75 ---- private SetNode.Editor editor; ! MyNodeContent(AbstractNode.Backend n, Capability cap, AbstractRepository.Backend f) { super(n, memSetContent.this, cap, f); editor = null; *************** *** 77,81 **** public SetNode.Editor editSet() { if (editor == null && cap.allowEdit()) { ! editor = new MyNodeEditor(this, backend); } return editor; --- 78,82 ---- public SetNode.Editor editSet() { if (editor == null && cap.allowEdit()) { ! editor = new MyNodeEditor(this, repoBackend); } return editor; *************** *** 227,231 **** } ! private final class MyNodeEditor extends BareContent.Editor implements SetNode.Editor { --- 228,232 ---- } ! private final class MyNodeEditor extends AbstractNodeContent.Editor implements SetNode.Editor { *************** *** 317,321 **** } ! protected NodeContent createNodeContent(Node n, Capability cap, AbstractRepository.Backend s) { return new MyNodeContent(n, cap, s); } --- 318,322 ---- } ! protected NodeContent createNodeContent(AbstractNode.Backend n, Capability cap, AbstractRepository.Backend s) { return new MyNodeContent(n, cap, s); } *************** *** 324,331 **** public abstract Set asSet(); ! abstract boolean opAdd(Object v, BareContent.Editor c) throws ConstraintFailure; ! abstract boolean opRemove(Object k, BareContent.Editor c); ! final void opSetValue(Object key, Object val, BareContent.Editor c) throws ConstraintFailure { // Check types and convert if necessary key = checkItemType(key); --- 325,332 ---- public abstract Set asSet(); ! abstract boolean opAdd(Object v, AbstractNodeContent.Editor c) throws ConstraintFailure; ! abstract boolean opRemove(Object k, AbstractNodeContent.Editor c); ! final void opSetValue(Object key, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { // Check types and convert if necessary key = checkItemType(key); Index: BareSequence.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/BareSequence.java,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** BareSequence.java 16 Nov 2004 19:25:36 -0000 1.24 --- BareSequence.java 8 Jan 2005 00:51:08 -0000 1.25 *************** *** 10,14 **** import org.nodal.model.Getter; - import org.nodal.model.Node; import org.nodal.model.NodeContent; import org.nodal.model.Seq; --- 10,13 ---- *************** *** 17,28 **** import org.nodal.util.IndexBoundsException; import org.nodal.util.PropertyConstraintFailure; import storage.framework.AbstractRepository; //import java.util.Enumeration; ! public abstract class BareSequence extends BareContent implements SequenceNode { protected final MemSequenceContentI seq; ! BareSequence(Node n, memSequenceContent s, Capability cap, AbstractRepository.Backend f) { ! super(n, s, cap, f); seq = s; } --- 16,29 ---- import org.nodal.util.IndexBoundsException; import org.nodal.util.PropertyConstraintFailure; + + import storage.framework.AbstractNode; import storage.framework.AbstractRepository; //import java.util.Enumeration; ! public abstract class BareSequence extends AbstractNodeContent implements SequenceNode { protected final MemSequenceContentI seq; ! BareSequence(AbstractNode.Backend backend, memSequenceContent s, Capability cap, AbstractRepository.Backend f) { ! super(backend, s, cap, f); seq = s; } Index: MemContentI.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/MemContentI.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** MemContentI.java 16 Nov 2004 20:46:18 -0000 1.4 --- MemContentI.java 8 Jan 2005 00:51:08 -0000 1.5 *************** *** 95,99 **** * applyTo method of the memOperator. */ ! void modify(AbstractOperator op, BareContent.Editor c) throws InvalidOperator, ConstraintFailure; } \ No newline at end of file --- 95,99 ---- * applyTo method of the memOperator. */ ! void modify(AbstractOperator op, AbstractNodeContent.Editor c) throws InvalidOperator, ConstraintFailure; } \ No newline at end of file Index: memFloatSequenceContent.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/memFloatSequenceContent.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** memFloatSequenceContent.java 16 Nov 2004 20:46:18 -0000 1.20 --- memFloatSequenceContent.java 8 Jan 2005 00:51:08 -0000 1.21 *************** *** 146,150 **** // Implementation of StSequenceEditor methods ! protected Setter itemSetter(int i, BareContent.Editor c, NodeManager mgr) throws IndexBoundsException { return new FloatSetterUtil(itemGetter(i, c), new IndexSetter(i, c, mgr)); --- 146,150 ---- // Implementation of StSequenceEditor methods ! protected Setter itemSetter(int i, AbstractNodeContent.Editor c, NodeManager mgr) throws IndexBoundsException { return new FloatSetterUtil(itemGetter(i, c), new IndexSetter(i, c, mgr)); *************** *** 153,160 **** private final class IndexSetter implements FloatSetterUtil.FloatSetter { private final int idx; ! private final BareContent.Editor content; private final NodeManager mgr; ! IndexSetter(int i, BareContent.Editor c, NodeManager mgr) { this.idx = i; this.content = c; --- 153,160 ---- private final class IndexSetter implements FloatSetterUtil.FloatSetter { private final int idx; ! private final AbstractNodeContent.Editor content; private final NodeManager mgr; ! IndexSetter(int i, AbstractNodeContent.Editor c, NodeManager mgr) { this.idx = i; this.content = c; *************** *** 186,190 **** * Automatically converts to a valid value if necessary. */ ! void opSetItem(int i, Object v, BareContent.Editor c) throws ConstraintFailure { // Convert to something close to Double --- 186,190 ---- * Automatically converts to a valid value if necessary. */ ! void opSetItem(int i, Object v, AbstractNodeContent.Editor c) throws ConstraintFailure { // Convert to something close to Double *************** *** 200,204 **** * Set an item value with full checking of validity of value or index. */ ! void opSetItem(int i, float v, BareContent.Editor c) throws ConstraintFailure { checkIndex(i); Type itemType = type.itemType(); --- 200,204 ---- * Set an item value with full checking of validity of value or index. */ ! void opSetItem(int i, float v, AbstractNodeContent.Editor c) throws ConstraintFailure { checkIndex(i); Type itemType = type.itemType(); *************** *** 213,217 **** * must have already been done. */ ! private synchronized void opSetItemUnchecked(int i, float v, BareContent.Editor c) throws ConstraintFailure { if (i < 0) { --- 213,217 ---- * must have already been done. */ ! private synchronized void opSetItemUnchecked(int i, float v, AbstractNodeContent.Editor c) throws ConstraintFailure { if (i < 0) { *************** *** 223,227 **** synchronized void opReplaceRange(int startIndex, int endIndex, Object val, ! BareContent.Editor c) throws ConstraintFailure { FloatSeq seq = (val == null ? null : FloatSeqUtil.create(val)); if (seq != null) { --- 223,227 ---- synchronized void opReplaceRange(int startIndex, int endIndex, Object val, ! AbstractNodeContent.Editor c) throws ConstraintFailure { FloatSeq seq = (val == null ? null : FloatSeqUtil.create(val)); if (seq != null) { *************** *** 255,259 **** } ! synchronized void opInsertBefore(int index, Object val, BareContent.Editor c) throws ConstraintFailure { if (val == null) { --- 255,259 ---- } ! synchronized void opInsertBefore(int index, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { if (val == null) { *************** *** 265,269 **** } ! synchronized void opInsertAfter(int index, Object val, BareContent.Editor c) throws ConstraintFailure { if (val == null) { --- 265,269 ---- } ! synchronized void opInsertAfter(int index, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { if (val == null) { Index: OpAnchor.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/OpAnchor.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** OpAnchor.java 16 Nov 2004 20:46:18 -0000 1.2 --- OpAnchor.java 8 Jan 2005 00:51:07 -0000 1.3 *************** *** 105,114 **** } ! void applyTo(memContent content, BareContent.Editor c) throws InvalidOperator, ConstraintFailure { throw new InvalidOperator("invalid OpAnchor on " + content); } ! AbstractOperator invertOn(memContent content, NodeContent c) throws InvalidOperator, ConstraintFailure { return this; --- 105,114 ---- } ! void applyTo(AbstractContent content, AbstractNodeContent.Editor c) throws InvalidOperator, ConstraintFailure { throw new InvalidOperator("invalid OpAnchor on " + content); } ! AbstractOperator invertOn(AbstractContent content, NodeContent c) throws InvalidOperator, ConstraintFailure { return this; Index: OpAdd.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/OpAdd.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** OpAdd.java 16 Nov 2004 20:46:18 -0000 1.2 --- OpAdd.java 8 Jan 2005 00:51:08 -0000 1.3 *************** *** 23,31 **** public Object value () { return val; } ! void applyTo (memContent content, BareContent.Editor c) throws InvalidOperator, ConstraintFailure { content.opAdd (val, c); } ! AbstractOperator invertOn (memContent content, NodeContent c) throws InvalidOperator, ConstraintFailure { return content.invertAdd (val, c); --- 23,31 ---- public Object value () { return val; } ! void applyTo (AbstractContent content, AbstractNodeContent.Editor c) throws InvalidOperator, ConstraintFailure { content.opAdd (val, c); } ! AbstractOperator invertOn (AbstractContent content, NodeContent c) throws InvalidOperator, ConstraintFailure { return content.invertAdd (val, c); Index: OpSetField.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/OpSetField.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** OpSetField.java 16 Nov 2004 20:46:19 -0000 1.2 --- OpSetField.java 8 Jan 2005 00:51:08 -0000 1.3 *************** *** 40,48 **** } ! void applyTo(memContent content, BareContent.Editor c) throws InvalidOperator, ConstraintFailure { content.opSetField(field, newValue, c); } ! AbstractOperator invertOn(memContent content, NodeContent node) throws InvalidOperator, PropertyConstraintFailure { return content.invertSetField(field, node); --- 40,48 ---- } ! void applyTo(AbstractContent content, AbstractNodeContent.Editor c) throws InvalidOperator, ConstraintFailure { content.opSetField(field, newValue, c); } ! AbstractOperator invertOn(AbstractContent content, NodeContent node) throws InvalidOperator, PropertyConstraintFailure { return content.invertSetField(field, node); Index: OpInsertAfter.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/OpInsertAfter.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** OpInsertAfter.java 16 Nov 2004 20:46:18 -0000 1.2 --- OpInsertAfter.java 8 Jan 2005 00:51:07 -0000 1.3 *************** *** 26,34 **** public Object value () { return newValue; } ! void applyTo (memContent content, BareContent.Editor c) throws InvalidOperator, ConstraintFailure { content.opInsertAfter (index, newValue, c); } ! AbstractOperator invertOn (memContent content, NodeContent c) throws InvalidOperator, ConstraintFailure { return content.invertInsertAfter (index, newValue, c); --- 26,34 ---- public Object value () { return newValue; } ! void applyTo (AbstractContent content, AbstractNodeContent.Editor c) throws InvalidOperator, ConstraintFailure { content.opInsertAfter (index, newValue, c); } ! AbstractOperator invertOn (AbstractContent content, NodeContent c) throws InvalidOperator, ConstraintFailure { return content.invertInsertAfter (index, newValue, c); Index: OpRemove.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/OpRemove.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** OpRemove.java 16 Nov 2004 20:46:19 -0000 1.3 --- OpRemove.java 8 Jan 2005 00:51:08 -0000 1.4 *************** *** 24,32 **** public Object key () { return key; } ! void applyTo (memContent content, BareContent.Editor c) throws InvalidOperator, ConstraintFailure { content.opRemove (key, c); } ! AbstractOperator invertOn (memContent content, NodeContent c) throws InvalidOperator, PropertyConstraintFailure { return content.invertRemoveKey (key, c); --- 24,32 ---- public Object key () { return key; } ! void applyTo (AbstractContent content, AbstractNodeContent.Editor c) throws InvalidOperator, ConstraintFailure { content.opRemove (key, c); } ! AbstractOperator invertOn (AbstractContent content, NodeContent c) throws InvalidOperator, PropertyConstraintFailure { return content.invertRemoveKey (key, c); Index: memLiteralSetContent.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/memLiteralSetContent.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** memLiteralSetContent.java 16 Nov 2004 20:46:18 -0000 1.2 --- memLiteralSetContent.java 8 Jan 2005 00:51:07 -0000 1.3 *************** *** 73,77 **** } ! boolean opRemove (Object key, BareContent.Editor c) { key = checkItemType(key); // Notify interested parties --- 73,77 ---- } ! boolean opRemove (Object key, AbstractNodeContent.Editor c) { key = checkItemType(key); // Notify interested parties *************** *** 81,85 **** } ! boolean opAdd(Object val, BareContent.Editor c) throws ConstraintFailure { val = checkValue(val); // Notify any interested values --- 81,85 ---- } ! boolean opAdd(Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { val = checkValue(val); // Notify any interested values Index: memShortSequenceContent.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/memShortSequenceContent.java,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** memShortSequenceContent.java 16 Nov 2004 20:46:19 -0000 1.21 --- memShortSequenceContent.java 8 Jan 2005 00:51:08 -0000 1.22 *************** *** 145,149 **** // Implementation of StSequenceEditor methods ! protected Setter itemSetter(int i, BareContent.Editor c, NodeManager mgr) throws IndexBoundsException { return new ShortSetterUtil(itemGetter(i, c), new IndexSetter(i, c, mgr)); --- 145,149 ---- // Implementation of StSequenceEditor methods ! protected Setter itemSetter(int i, AbstractNodeContent.Editor c, NodeManager mgr) throws IndexBoundsException { return new ShortSetterUtil(itemGetter(i, c), new IndexSetter(i, c, mgr)); *************** *** 152,159 **** private final class IndexSetter implements ShortSetterUtil.ShortSetter { private final int idx; ! private final BareContent.Editor content; private final NodeManager mgr; ! IndexSetter(int i, BareContent.Editor c, NodeManager mgr) { this.idx = i; this.content = c; --- 152,159 ---- private final class IndexSetter implements ShortSetterUtil.ShortSetter { private final int idx; ! private final AbstractNodeContent.Editor content; private final NodeManager mgr; ! IndexSetter(int i, AbstractNodeContent.Editor c, NodeManager mgr) { this.idx = i; this.content = c; *************** *** 182,186 **** * Automatically converts to a valid value if necessary. */ ! void opSetItem(int i, Object v, BareContent.Editor c) throws ConstraintFailure { checkIndex(i); --- 182,186 ---- * Automatically converts to a valid value if necessary. */ ! void opSetItem(int i, Object v, AbstractNodeContent.Editor c) throws ConstraintFailure { checkIndex(i); *************** *** 197,201 **** * Set an item value with full checking of validity of value or index. */ ! void opSetItem(int i, short v, BareContent.Editor c) throws ConstraintFailure { checkIndex(i); Type itemType = type.itemType(); --- 197,201 ---- * Set an item value with full checking of validity of value or index. */ ! void opSetItem(int i, short v, AbstractNodeContent.Editor c) throws ConstraintFailure { checkIndex(i); Type itemType = type.itemType(); *************** *** 220,224 **** synchronized void opReplaceRange(int startIndex, int endIndex, Object val, ! BareContent.Editor c) throws ConstraintFailure { ShortSeq seq = (val == null ? null : ShortSeqUtil.create(val)); if (seq != null) { --- 220,224 ---- synchronized void opReplaceRange(int startIndex, int endIndex, Object val, ! AbstractNodeContent.Editor c) throws ConstraintFailure { ShortSeq seq = (val == null ? null : ShortSeqUtil.create(val)); if (seq != null) { *************** *** 250,254 **** } ! synchronized void opInsertBefore(int index, Object val, BareContent.Editor c) throws ConstraintFailure { if (val == null) { --- 250,254 ---- } ! synchronized void opInsertBefore(int index, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { if (val == null) { *************** *** 260,264 **** } ! synchronized void opInsertAfter(int index, Object val, BareContent.Editor c) throws ConstraintFailure { if (val == null) { --- 260,264 ---- } ! synchronized void opInsertAfter(int index, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { if (val == null) { Index: OpInsertBefore.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/OpInsertBefore.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** OpInsertBefore.java 16 Nov 2004 20:46:19 -0000 1.2 --- OpInsertBefore.java 8 Jan 2005 00:51:08 -0000 1.3 *************** *** 26,34 **** public Object value () { return newValue; } ! void applyTo (memContent content, BareContent.Editor c) throws InvalidOperator, ConstraintFailure { content.opInsertBefore (index, newValue, c); } ! AbstractOperator invertOn (memContent content, NodeContent c) throws InvalidOperator, ConstraintFailure { return content.invertInsertBefore (index, content, c); --- 26,34 ---- public Object value () { return newValue; } ! void applyTo (AbstractContent content, AbstractNodeContent.Editor c) throws InvalidOperator, ConstraintFailure { content.opInsertBefore (index, newValue, c); } ! AbstractOperator invertOn (AbstractContent content, NodeContent c) throws InvalidOperator, ConstraintFailure { return content.invertInsertBefore (index, content, c); Index: OpRemoveRange.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/OpRemoveRange.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** OpRemoveRange.java 16 Nov 2004 20:46:18 -0000 1.2 --- OpRemoveRange.java 8 Jan 2005 00:51:07 -0000 1.3 *************** *** 26,34 **** public int endIndex () { return endIndex; } ! void applyTo (memContent content, BareContent.Editor c) throws InvalidOperator, ConstraintFailure { content.opRemoveRange (startIndex, endIndex, c); } ! AbstractOperator invertOn (memContent content, NodeContent c) throws InvalidOperator, ConstraintFailure { return content.invertRemoveRange (startIndex, endIndex, c); --- 26,34 ---- public int endIndex () { return endIndex; } ! void applyTo (AbstractContent content, AbstractNodeContent.Editor c) throws InvalidOperator, ConstraintFailure { content.opRemoveRange (startIndex, endIndex, c); } ! AbstractOperator invertOn (AbstractContent content, NodeContent c) throws InvalidOperator, ConstraintFailure { return content.invertRemoveRange (startIndex, endIndex, c); Index: BareRecord.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/BareRecord.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** BareRecord.java 16 Nov 2004 19:25:36 -0000 1.22 --- BareRecord.java 8 Jan 2005 00:51:08 -0000 1.23 *************** *** 11,15 **** import org.nodal.model.Getter; - import org.nodal.model.Node; import org.nodal.model.NodeContent; import org.nodal.model.RecordNode; --- 11,14 ---- *************** *** 19,31 **** import org.nodal.util.PropertyConstraintFailure; import storage.framework.AbstractRepository; //import java.util.Enumeration; ! public abstract class BareRecord extends BareContent implements RecordNode { protected final MemRecordContentI record; ! BareRecord(Node n, memRecordContent r, Capability cap, AbstractRepository.Backend f) { ! super(n, r, cap, f); record = r; } --- 18,31 ---- import org.nodal.util.PropertyConstraintFailure; + import storage.framework.AbstractNode; import storage.framework.AbstractRepository; //import java.util.Enumeration; ! public abstract class BareRecord extends AbstractNodeContent implements RecordNode { protected final MemRecordContentI record; ! BareRecord(AbstractNode.Backend backend, memRecordContent r, Capability cap, AbstractRepository.Backend f) { ! super(backend, r, cap, f); record = r; } Index: OpClone.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/OpClone.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** OpClone.java 16 Nov 2004 20:46:18 -0000 1.2 --- OpClone.java 8 Jan 2005 00:51:08 -0000 1.3 *************** *** 29,38 **** public Node source () { return source; } ! void applyTo (memContent content, BareContent.Editor c) throws InvalidOperator { throw new InvalidOperator ("invalid OpClone on "+content); } // The inverse of a creation Operator is itself. ! AbstractOperator invertOn (memContent content, NodeContent c) { return this; } --- 29,38 ---- public Node source () { return source; } ! void applyTo (AbstractContent content, AbstractNodeContent.Editor c) throws InvalidOperator { throw new InvalidOperator ("invalid OpClone on "+content); } // The inverse of a creation Operator is itself. ! AbstractOperator invertOn (AbstractContent content, NodeContent c) { return this; } Index: memNodeSetContent.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/memNodeSetContent.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** memNodeSetContent.java 16 Nov 2004 20:46:18 -0000 1.2 --- memNodeSetContent.java 8 Jan 2005 00:51:08 -0000 1.3 *************** *** 77,81 **** } ! boolean opRemove (Object key, BareContent.Editor c) { key = checkItemType(key); // Notify interested parties --- 77,81 ---- } ! boolean opRemove (Object key, AbstractNodeContent.Editor c) { key = checkItemType(key); // Notify interested parties *************** *** 89,93 **** } ! boolean opAdd(Object val, BareContent.Editor c) throws ConstraintFailure { val = checkValue(val); val = c.assignNode(val, (Node) val); --- 89,93 ---- } ! boolean opAdd(Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { val = checkValue(val); val = c.assignNode(val, (Node) val); Index: memIntSequenceContent.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/memIntSequenceContent.java,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** memIntSequenceContent.java 16 Nov 2004 20:46:19 -0000 1.47 --- memIntSequenceContent.java 8 Jan 2005 00:51:08 -0000 1.48 *************** *** 144,148 **** // Implementation of StSequenceEditor methods ! protected Setter itemSetter(int i, BareContent.Editor c, NodeManager mgr) throws IndexBoundsException { return new IntSetterUtil(itemGetter(i, c), new IndexSetter(i, c, mgr)); --- 144,148 ---- // Implementation of StSequenceEditor methods ! protected Setter itemSetter(int i, AbstractNodeContent.Editor c, NodeManager mgr) throws IndexBoundsException { return new IntSetterUtil(itemGetter(i, c), new IndexSetter(i, c, mgr)); *************** *** 151,158 **** private class IndexSetter implements IntSetterUtil.IntSetter { private int idx; ! private final BareContent.Editor content; private final NodeManager mgr; ! IndexSetter(int i, BareContent.Editor c, NodeManager mgr) { idx = i; this.content = c; --- 151,158 ---- private class IndexSetter implements IntSetterUtil.IntSetter { private int idx; ! private final AbstractNodeContent.Editor content; private final NodeManager mgr; ! IndexSetter(int i, AbstractNodeContent.Editor c, NodeManager mgr) { idx = i; this.content = c; *************** *** 181,185 **** * Automatically converts to a valid value if necessary. */ ! void opSetItem(int i, Object v, BareContent.Editor c) throws ConstraintFailure { checkIndex(i); --- 181,185 ---- * Automatically converts to a valid value if necessary. */ ! void opSetItem(int i, Object v, AbstractNodeContent.Editor c) throws ConstraintFailure { checkIndex(i); *************** *** 196,200 **** * Set an item value with full checking of validity of value or index. */ ! void opSetItem(int i, int v, BareContent.Editor c) throws ConstraintFailure { checkIndex(i); Type itemType = type.itemType(); --- 196,200 ---- * Set an item value with full checking of validity of value or index. */ ! void opSetItem(int i, int v, AbstractNodeContent.Editor c) throws ConstraintFailure { checkIndex(i); Type itemType = type.itemType(); *************** *** 219,223 **** synchronized void opReplaceRange(int startIndex, int endIndex, Object val, ! BareContent.Editor c) throws ConstraintFailure { IntSeq seq = (val == null ? null : IntSeqUtil.create(val)); if (seq != null) { --- 219,223 ---- synchronized void opReplaceRange(int startIndex, int endIndex, Object val, ! AbstractNodeContent.Editor c) throws ConstraintFailure { IntSeq seq = (val == null ? null : IntSeqUtil.create(val)); if (seq != null) { *************** *** 249,253 **** } ! synchronized void opInsertBefore(int index, Object val, BareContent.Editor c) throws ConstraintFailure { if (val == null) { --- 249,253 ---- } ! synchronized void opInsertBefore(int index, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { if (val == null) { *************** *** 259,263 **** } ! synchronized void opInsertAfter(int index, Object val, BareContent.Editor c) throws ConstraintFailure { if (val == null) { --- 259,263 ---- } ! synchronized void opInsertAfter(int index, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { if (val == null) { Index: memNodeMapContent.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/memNodeMapContent.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** memNodeMapContent.java 16 Nov 2004 20:46:18 -0000 1.2 --- memNodeMapContent.java 8 Jan 2005 00:51:07 -0000 1.3 *************** *** 62,66 **** } ! void opRemoveKey(Object key, BareContent.Editor c) throws PropertyConstraintFailure { key = checkKeyType(key); --- 62,66 ---- } ! void opRemoveKey(Object key, AbstractNodeContent.Editor c) throws PropertyConstraintFailure { key = checkKeyType(key); *************** *** 74,78 **** } ! void opSetValue(Object key, Object val, BareContent.Editor c) throws ConstraintFailure { // Check types and convert if necessary --- 74,78 ---- } ! void opSetValue(Object key, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { // Check types and convert if necessary --- BareContent.java DELETED --- --- memContent.java DELETED --- Index: memBoolSequenceContent.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/memBoolSequenceContent.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** memBoolSequenceContent.java 16 Nov 2004 20:46:18 -0000 1.22 --- memBoolSequenceContent.java 8 Jan 2005 00:51:08 -0000 1.23 *************** *** 145,149 **** // Implementation of StSequenceEditor methods ! protected Setter itemSetter(int i, BareContent.Editor c, NodeManager mgr) throws IndexBoundsException { return new BooleanSetterUtil(itemGetter(i, c), new IndexSetter(i, c, mgr)); --- 145,149 ---- // Implementation of StSequenceEditor methods ! protected Setter itemSetter(int i, AbstractNodeContent.Editor c, NodeManager mgr) throws IndexBoundsException { return new BooleanSetterUtil(itemGetter(i, c), new IndexSetter(i, c, mgr)); *************** *** 153,159 **** private int idx; private NodeManager mgr; ! private BareContent.Editor content; ! IndexSetter(int i, BareContent.Editor c, NodeManager mgr) { this.idx = i; this.mgr = mgr; --- 153,159 ---- private int idx; private NodeManager mgr; ! private AbstractNodeContent.Editor content; ! IndexSetter(int i, AbstractNodeContent.Editor c, NodeManager mgr) { this.idx = i; this.mgr = mgr; *************** *** 181,185 **** } ! void opSetItem(int i, Object v, BareContent.Editor c) throws ConstraintFailure { checkIndex(i); --- 181,185 ---- } ! void opSetItem(int i, Object v, AbstractNodeContent.Editor c) throws ConstraintFailure { checkIndex(i); *************** *** 196,200 **** * Set an item value with full checking of validity of value or index. */ ! void opSetItem(int i, boolean v, BareContent.Editor c) throws ConstraintFailure { checkIndex(i); --- 196,200 ---- * Set an item value with full checking of validity of value or index. */ ! void opSetItem(int i, boolean v, AbstractNodeContent.Editor c) throws ConstraintFailure { checkIndex(i); *************** *** 210,214 **** * must have already been done. */ ! private synchronized void opSetItemUnchecked(int i, boolean v, BareContent.Editor c) { if (i < 0) { i = normalizeIndex(i); --- 210,214 ---- * must have already been done. */ ! private synchronized void opSetItemUnchecked(int i, boolean v, AbstractNodeContent.Editor c) { if (i < 0) { i = normalizeIndex(i); *************** *** 219,223 **** synchronized void opReplaceRange(int startIndex, int endIndex, Object val, ! BareContent.Editor c) throws ConstraintFailure { BooleanSeq seq = (val == null ? null : BooleanSeqUtil.create(val)); if (seq != null) { --- 219,223 ---- synchronized void opReplaceRange(int startIndex, int endIndex, Object val, ! AbstractNodeContent.Editor c) throws ConstraintFailure { BooleanSeq seq = (val == null ? null : BooleanSeqUtil.create(val)); if (seq != null) { *************** *** 251,255 **** } ! synchronized void opInsertBefore(int index, Object val, BareContent.Editor c) throws ConstraintFailure { if (val == null) { --- 251,255 ---- } ! synchronized void opInsertBefore(int index, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { if (val == null) { *************** *** 261,265 **** } ! synchronized void opInsertAfter(int index, Object val, BareContent.Editor c) throws ConstraintFailure { if (val == null) { --- 261,265 ---- } ! synchronized void opInsertAfter(int index, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { if (val == null) { Index: memStringContent.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/memStringContent.java,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** memStringContent.java 16 Nov 2004 20:46:18 -0000 1.40 --- memStringContent.java 8 Jan 2005 00:51:08 -0000 1.41 *************** *** 161,165 **** } ! protected Setter itemSetter(int i, BareContent.Editor c, NodeManager mgr) throws IndexBoundsException { return new CharSetterUtil(itemGetter(i, c), new IndexSetter(i, c, mgr)); --- 161,165 ---- } ! protected Setter itemSetter(int i, AbstractNodeContent.Editor c, NodeManager mgr) throws IndexBoundsException { return new CharSetterUtil(itemGetter(i, c), new IndexSetter(i, c, mgr)); *************** *** 169,175 **** private final int idx; private final NodeManager mgr; ! private final BareContent.Editor content; ! IndexSetter(int i, BareContent.Editor c, NodeManager mgr) { this.idx = i; this.content = c; --- 169,175 ---- private final int idx; private final NodeManager mgr; ! private final AbstractNodeContent.Editor content; ! IndexSetter(int i, AbstractNodeContent.Editor c, NodeManager mgr) { this.idx = i; this.content = c; *************** *** 199,203 **** * Automatically converts to a valid value if necessary. */ ! void opSetItem(int i, Object v, BareContent.Editor c) throws ConstraintFailure { checkIndex(i); --- 199,203 ---- * Automatically converts to a valid value if necessary. */ ! void opSetItem(int i, Object v, AbstractNodeContent.Editor c) throws ConstraintFailure { checkIndex(i); *************** *** 214,218 **** * Set an item value with full checking of validity of value or index. */ ! void opSetItem(int i, char ch, BareContent.Editor c) throws ConstraintFailure { checkIndex(i); Type itemType = type.itemType(); --- 214,218 ---- * Set an item value with full checking of validity of value or index. */ ! void opSetItem(int i, char ch, AbstractNodeContent.Editor c) throws ConstraintFailure { checkIndex(i); Type itemType = type.itemType(); *************** *** 249,253 **** */ synchronized void opReplaceRange(int start, int end, Object val, ! BareContent.Editor c) throws ConstraintFailure { CharSeq seq = CharSeqUtil.create(val); checkSeq(seq); --- 249,253 ---- */ synchronized void opReplaceRange(int start, int end, Object val, ! AbstractNodeContent.Editor c) throws ConstraintFailure { CharSeq seq = CharSeqUtil.create(val); checkSeq(seq); *************** *** 284,288 **** } ! synchronized void opInsertBefore(int index, Object val, BareContent.Editor c) throws ConstraintFailure { CharSeq seq = CharSeqUtil.create(val); --- 284,288 ---- } ! synchronized void opInsertBefore(int index, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { CharSeq seq = CharSeqUtil.create(val); *************** *** 295,299 **** } ! synchronized void opInsertAfter(int index, Object val, BareContent.Editor c) throws ConstraintFailure { CharSeq seq = CharSeqUtil.create(val); --- 295,299 ---- } ! synchronized void opInsertAfter(int index, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { CharSeq seq = CharSeqUtil.create(val); Index: memSequenceContent.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/memSequenceContent.java,v retrieving revision 1.71 retrieving revision 1.72 diff -C2 -d -r1.71 -r1.72 *** memSequenceContent.java 16 Nov 2004 20:46:18 -0000 1.71 --- memSequenceContent.java 8 Jan 2005 00:51:08 -0000 1.72 *************** *** 14,18 **** import org.nodal.model.Getter; import org.nodal.model.InvalidOperator; - import org.nodal.model.Node; import org.nodal.model.NodeContent; import org.nodal.model.Operator; --- 14,17 ---- *************** *** 50,54 **** * @author Lee Iverson <le...@ec...> */ ! abstract class memSequenceContent extends memContent implements MemSequenceContentI { --- 49,53 ---- * @author Lee Iverson <le...@ec...> */ ! abstract class memSequenceContent extends AbstractContent implements MemSequenceContentI { *************** *** 102,106 **** * Called by BareNode to create a NodeContent object. */ ! protected NodeContent createNodeContent(Node n, Capability cap, AbstractRepository.Backend f) { return new MyNodeContent(n, cap, f); --- 101,105 ---- * Called by BareNode to create a NodeContent object. */ ! protected NodeContent createNodeContent(AbstractNode.Backend n, Capability cap, AbstractRepository.Backend f) { return new MyNodeContent(n, cap, f); *************** *** 110,114 **** private SequenceNode.Editor editor; ! MyNodeContent(Node n, Capability cap, AbstractRepository.Backend f) { super(n, memSequenceContent.this, cap, f); editor = null; --- 109,113 ---- private SequenceNode.Editor editor; ! MyNodeContent(AbstractNode.Backend n, Capability cap, AbstractRepository.Backend f) { super(n, memSequenceContent.this, cap, f); editor = null; *************** *** 253,258 **** } ! // Implementation of opSetValue from memContent ! void opSetValue(Object k, Object value, BareContent.Editor c) throws ConstraintFailure { if (k instanceof Byte || k instanceof Short || k instanceof Integer) { --- 252,257 ---- } ! // Implementation of opSetValue from AbstractContent ! void opSetValue(Object k, Object value, AbstractNodeContent.Editor c) throws ConstraintFailure { if (k instanceof Byte || k instanceof Short || k instanceof Integer) { *************** *** 266,285 **** throws IndexBoundsException; ! protected abstract Setter itemSetter(int i, BareContent.Editor c, NodeManager mgr) throws IndexBoundsException; ! abstract void opSetItem(int i, Object val, BareContent.Editor c) throws ConstraintFailure; abstract void opReplaceRange(int startIndex, int endIndex, Object val, ! BareContent.Editor c) throws ConstraintFailure; ! abstract void opInsertBefore(int index, Object val, BareContent.Editor c) throws ConstraintFailure; ! abstract void opInsertAfter(int index, Object val, BareContent.Editor c) throws ConstraintFailure; ! final void opRemoveRange(int startIndex, int endIndex, BareContent.Editor c) throws ConstraintFailure { checkRange(startIndex, endIndex); --- 265,284 ---- throws IndexBoundsException; ! protected abstract Setter itemSetter(int i, AbstractNodeContent.Editor c, NodeManager mgr) throws IndexBoundsException; ! abstract void opSetItem(int i, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure; abstract void opReplaceRange(int startIndex, int endIndex, Object val, ! AbstractNodeContent.Editor c) throws ConstraintFailure; ! abstract void opInsertBefore(int index, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure; ! abstract void opInsertAfter(int index, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure; ! final void opRemoveRange(int startIndex, int endIndex, AbstractNodeContent.Editor c) throws ConstraintFailure { checkRange(startIndex, endIndex); *************** *** 348,352 **** } ! protected final class MyNodeEditor extends BareContent.Editor implements SequenceNode.Editor { --- 347,351 ---- } ! protected final class MyNodeEditor extends AbstractNodeContent.Editor implements SequenceNode.Editor { *************** *** 443,449 **** private final int end; private final NodeManager nodeMgr; ! private final BareContent.Editor node; ! ReplaceRangeSetter(int s, int e, BareContent.Editor c, NodeManager mgr) { start = s; end = e; --- 442,448 ---- private final int end; private final NodeManager nodeMgr; ! private final AbstractNodeContent.Editor node; ! ReplaceRangeSetter(int s, int e, AbstractNodeContent.Editor c, NodeManager mgr) { start = s; end = e; *************** *** 736,740 **** } ! public void modify(AbstractOperator op, BareContent.Editor c) throws InvalidOperator, ConstraintFailure { // NEXT Hmmm... This is troublesome. Do I have to pull these apart? --- 735,739 ---- } ! public void modify(AbstractOperator op, AbstractNodeContent.Editor c) throws InvalidOperator, ConstraintFailure { // NEXT Hmmm... This is troublesome. Do I have to pull these apart? Index: OpReplaceRange.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/OpReplaceRange.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** OpReplaceRange.java 16 Nov 2004 20:46:18 -0000 1.2 --- OpReplaceRange.java 8 Jan 2005 00:51:07 -0000 1.3 *************** *** 29,37 **** public Object value () { return newValue; } ! void applyTo (memContent content, BareContent.Editor c) throws InvalidOperator, ConstraintFailure { content.opReplaceRange (startIndex, endIndex, newValue, c); } ! AbstractOperator invertOn (memContent content, NodeContent c) throws InvalidOperator, ConstraintFailure { return content.invertReplaceRange (startIndex, endIndex, content, c); --- 29,37 ---- public Object value () { return newValue; } ! void applyTo (AbstractContent content, AbstractNodeContent.Editor c) throws InvalidOperator, ConstraintFailure { content.opReplaceRange (startIndex, endIndex, newValue, c); } ! AbstractOperator invertOn (AbstractContent content, NodeContent c) throws InvalidOperator, ConstraintFailure { return content.invertReplaceRange (startIndex, endIndex, content, c); Index: OpCreate.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/OpCreate.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** OpCreate.java 16 Nov 2004 20:46:19 -0000 1.2 --- OpCreate.java 8 Jan 2005 00:51:08 -0000 1.3 *************** *** 31,40 **** public NodeType type () { return type; } ! void applyTo (memContent content, BareContent.Editor c) throws InvalidOperator { throw new InvalidOperator ("invalid OpCreate on "+content); } // The inverse of a creation Operator is itself. ! AbstractOperator invertOn (memContent content, NodeContent c) { return this; } --- 31,40 ---- public NodeType type () { return type; } ! void applyTo (AbstractContent content, AbstractNodeContent.Editor c) throws InvalidOperator { throw new InvalidOperator ("invalid OpCreate on "+content); } // The inverse of a creation Operator is itself. ! AbstractOperator invertOn (AbstractContent content, NodeContent c) { return this; } Index: BareSet.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/BareSet.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** BareSet.java 16 Nov 2004 19:25:35 -0000 1.3 --- BareSet.java 8 Jan 2005 00:51:07 -0000 1.4 *************** *** 11,26 **** import java.util.Set; - import org.nodal.model.Node; import org.nodal.model.NodeContent; import org.nodal.model.SetNode; import org.nodal.security.Capability; import storage.framework.AbstractRepository; ! public abstract class BareSet extends BareContent implements SetNode { protected memSetContent set; protected SetNode.Editor editSet; ! BareSet(Node n, memSetContent s, Capability cap, AbstractRepository.Backend f) { ! super(n, s, cap, f); set = s; editSet = null; --- 11,27 ---- import java.util.Set; import org.nodal.model.NodeContent; import org.nodal.model.SetNode; import org.nodal.security.Capability; + + import storage.framework.AbstractNode; import storage.framework.AbstractRepository; ! public abstract class BareSet extends AbstractNodeContent implements SetNode { protected memSetContent set; protected SetNode.Editor editSet; ! BareSet(AbstractNode.Backend backend, memSetContent s, Capability cap, AbstractRepository.Backend f) { ! super(backend, s, cap, f); set = s; editSet = null; Index: memByteSequenceContent.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/memByteSequenceContent.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** memByteSequenceContent.java 16 Nov 2004 20:46:18 -0000 1.20 --- memByteSequenceContent.java 8 Jan 2005 00:51:08 -0000 1.21 *************** *** 147,151 **** // Implementation of StSequenceEditor methods ! protected Setter itemSetter(int i, BareContent.Editor c, NodeManager mgr) throws IndexBoundsException { return new ByteSetterUtil(itemGetter(i, c), new IndexSetter(i, c, mgr)); --- 147,151 ---- // Implementation of StSequenceEditor methods ! protected Setter itemSetter(int i, AbstractNodeContent.Editor c, NodeManager mgr) throws IndexBoundsException { return new ByteSetterUtil(itemGetter(i, c), new IndexSetter(i, c, mgr)); *************** *** 155,161 **** private int idx; private NodeManager mgr; ! private final BareContent.Editor content; ! IndexSetter(int i, BareContent.Editor c, NodeManager mgr) { this.idx = i; this.content = c; --- 155,161 ---- private int idx; private NodeManager mgr; ! private final AbstractNodeContent.Editor content; ! IndexSetter(int i, AbstractNodeContent.Editor c, NodeManager mgr) { this.idx = i; this.content = c; *************** *** 187,191 **** * Automatically converts to a valid value if necessary. */ ! void opSetItem(int i, Object v, BareContent.Editor c) throws ConstraintFailure { checkIndex(i); --- 187,191 ---- * Automatically converts to a valid value if necessary. */ ! void opSetItem(int i, Object v, AbstractNodeContent.Editor c) throws ConstraintFailure { checkIndex(i); *************** *** 202,206 **** * Set an item value with full checking of validity of value or index. */ ! void opSetItem(int i, byte v, BareContent.Editor c) throws ConstraintFailure { checkIndex(i); Type itemType = type.itemType(); --- 202,206 ---- * Set an item value with full checking of validity of value or index. */ ! void opSetItem(int i, byte v, AbstractNodeContent.Editor c) throws ConstraintFailure { checkIndex(i); Type itemType = type.itemType(); *************** *** 215,219 **** * must have already been done. */ ! private synchronized void opSetItemUnchecked(int i, byte v, BareContent.Editor c) throws ConstraintFailure { if (i < 0) { --- 215,219 ---- * must have already been done. */ ! private synchronized void opSetItemUnchecked(int i, byte v, AbstractNodeContent.Editor c) throws ConstraintFailure { if (i < 0) { *************** *** 225,229 **** synchronized void opReplaceRange(int startIndex, int endIndex, Object val, ! BareContent.Editor c) throws ConstraintFailure { ByteSeq seq = (val == null ? null : ByteSeqUtil.create(val)); if (seq != null) { --- 225,229 ---- synchronized void opReplaceRange(int startIndex, int endIndex, Object val, ! AbstractNodeContent.Editor c) throws ConstraintFailure { ByteSeq seq = (val == null ? null : ByteSeqUtil.create(val)); if (seq != null) { *************** *** 257,261 **** } ! synchronized void opInsertBefore(int index, Object val, BareContent.Editor c) throws ConstraintFailure { if (val == null) { --- 257,261 ---- } ! synchronized void opInsertBefore(int index, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { if (val == null) { *************** *** 267,271 **** } ! synchronized void opInsertAfter(int index, Object val, BareContent.Editor c) throws ConstraintFailure { if (val == null) { --- 267,271 ---- } ! synchronized void opInsertAfter(int index, Object val, AbstractNodeContent.Editor c) throws ConstraintFailure { if (val == null) { Index: memRecordContent.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/memRecordContent.java,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** memRecordContent.java 16 Nov 2004 20:46:18 -0000 1.66 --- memRecordContent.java 8 Jan 2005 00:51:08 -0000 1.67 *************** *** 35,38 **** --- 35,40 ---- import org.nodal.util.SetterUtil; import org.nodal.util.TypeConstraintFailure; + + import storage.framework.AbstractNode; import storage.framework.AbstractRepository; *************** *** 43,47 **** * @author leei */ ! final class memRecordContent extends memContent implements MemRecordContentI { protected final RecordType recordType; protected final Rec... [truncated message content] |
From: Lee I. <le...@us...> - 2005-01-08 00:51:56
|
Update of /cvsroot/nodal/nodal/j-src/storage/trans In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv969/storage/trans Modified Files: TransientDriver.java TransientRepository.java BareNode.java Log Message: Major refactoring around AbstractNode.Backend interface. Index: TransientRepository.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/trans/TransientRepository.java,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** TransientRepository.java 4 Jan 2005 18:20:51 -0000 1.37 --- TransientRepository.java 8 Jan 2005 00:51:09 -0000 1.38 *************** *** 10,13 **** --- 10,14 ---- package storage.trans; + import java.io.IOException; import java.util.Iterator; *************** *** 20,24 **** import org.nodal.nav.Path; import org.nodal.nav.Paths; - import org.nodal.nav.Path.Failure; import org.nodal.type.NodeType; import org.nodal.util.Name; --- 21,24 ---- *************** *** 45,58 **** static Path audited; ! TransientRepository(Path path) throws Path.Failure { ! super(path.apply("/"), null); ! ! if (audited == null) { ! audited = Paths.parse("memory://audited"); ! } ! ! // Have to delay this since can't refer to this in super constructor ! boolean isAudited = audited.isAncestorOf(path); ! this.setBackend(new Backend(this, isAudited)); //System.err.println("Create " + this); --- 45,50 ---- static Path audited; ! TransientRepository(Path path) throws IOException, Path.Failure { ! super(path.apply("/")); //System.err.println("Create " + this); *************** *** 65,68 **** --- 57,74 ---- /** + * Refer to Path to determine if this is an audited Repository. + * @return + * @throws Path.Failure + */ + private boolean isAudited () { + if (audited == null) { + audited = Paths.safeParse("memory://audited"); + } + + // Have to delay this since can't refer to this in super constructor + return audited.isAncestorOf(path); + } + + /** * Open up a shortcut to Node creation for bootstrapping and testing. */ *************** *** 71,93 **** } /** * Private local class for providing the MemNodeFactory service for the * TransientRepository. */ ! private static final class Backend extends AbstractBackend { private TxnManager txnManager; ! Backend(TransientRepository repo, boolean audited) { // No Store! super(repo, null); ! txnManager = (audited ? SimpleTxnManager.create(this) : null); } public NodeContent.Editor createNode(NodeType type, Node context) { ! return BareNode.createNode((TransientRepository) repo, type); } public NodeContent.Editor cloneNode(Node node, Node context) { ! return BareNode.cloneNode((TransientRepository) repo, node); } --- 77,103 ---- } + protected final AbstractRepository.Backend createBackend () { + return new Backend (this); + } + /** * Private local class for providing the MemNodeFactory service for the * TransientRepository. */ ! static final class Backend extends AbstractBackend { private TxnManager txnManager; ! Backend(TransientRepository repo) { // No Store! super(repo, null); ! txnManager = (repo.isAudited() ? SimpleTxnManager.create(this) : null); } public NodeContent.Editor createNode(NodeType type, Node context) { ! return BareNode.createNode(this, type); } public NodeContent.Editor cloneNode(Node node, Node context) { ! return BareNode.cloneNode(this, node); } *************** *** 132,135 **** --- 142,149 ---- return; } + + public synchronized Name nextID() { + return ns.name("t" + (nextIdx++)); + } } *************** *** 141,149 **** public Directory filesystem() { if (fs == null) { ! NodeContent.Editor fsNode = BareNode.createNode(this, Types.DIRTYPE); try { Path baseDir = path().apply("/"); fs = DocFromNode.createFromDocNode(baseDir, fsNode).asDirectory(); ! } catch (Failure e) { throw new RuntimeException(e); } --- 155,163 ---- public Directory filesystem() { if (fs == null) { ! NodeContent.Editor fsNode = BareNode.createNode((Backend) backend, Types.DIRTYPE); try { Path baseDir = path().apply("/"); fs = DocFromNode.createFromDocNode(baseDir, fsNode).asDirectory(); ! } catch (Path.Failure e) { throw new RuntimeException(e); } Index: TransientDriver.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/trans/TransientDriver.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** TransientDriver.java 5 Dec 2003 21:35:53 -0000 1.6 --- TransientDriver.java 8 Jan 2005 00:51:09 -0000 1.7 *************** *** 10,13 **** --- 10,15 ---- package storage.trans; + import java.io.IOException; + import org.nodal.Nodal; import org.nodal.Repository; *************** *** 66,71 **** * unaudited (i.e. without a transaction record), whereas if it is of the * form memory://audited. */ ! public Repository openRepository(Path path) { try { --- 68,74 ---- * unaudited (i.e. without a transaction record), whereas if it is of the * form memory://audited. + * @throws IOException */ ! public Repository openRepository(Path path) throws IOException { try { Index: BareNode.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/trans/BareNode.java,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** BareNode.java 15 Nov 2004 19:21:58 -0000 1.31 --- BareNode.java 8 Jan 2005 00:51:09 -0000 1.32 *************** *** 1,14 **** /* ! * ! * Distributed under the Apache Software License, Version 1.1 ! * (see below, or the file LICENSE for terms and conditions) ! * ! * Copyright (c) 2002 University of British Columbia. All rights reserved. ! * */ package storage.trans; - import org.nodal.Repository; import org.nodal.model.AnchorNode; import org.nodal.model.MapNode; --- 1,13 ---- /* ! * ! * Distributed under the Apache Software License, Version 1.1 (see below, or the ! * file LICENSE for terms and conditions) ! * ! * Copyright (c) 2002 University of British Columbia. All rights reserved. ! * */ package storage.trans; import org.nodal.model.AnchorNode; import org.nodal.model.MapNode; *************** *** 26,44 **** import org.nodal.type.NodeType; import org.nodal.util.CapabilityImpl; - import org.nodal.util.Name; import org.nodal.util.NodeFilter; import org.nodal.util.Timestamp; import org.nodal.util.User; ! import storage.memory.memContent; ! final class BareNode implements Node { ! protected final TransientRepository repo; ! protected final Name nid; ! protected final NodeType type; protected Capability cap; - protected Path path; ! protected memContent bareContent; protected NodeContent content; --- 25,40 ---- import org.nodal.type.NodeType; import org.nodal.util.CapabilityImpl; import org.nodal.util.NodeFilter; import org.nodal.util.Timestamp; import org.nodal.util.User; ! import storage.memory.AbstractContent; ! import storage.framework.AbstractNode; ! final class BareNode extends AbstractNode { ! protected final TransientRepository.Backend repo; protected Capability cap; ! protected AbstractContent bareContent; protected NodeContent content; *************** *** 48,53 **** protected Version oldest; ! static NodeContent.Editor createNode(TransientRepository repo, NodeType t) { ! return new BareNode(repo, memContent.create(t)).initEdit(); } --- 44,56 ---- protected Version oldest; ! static NodeContent.Editor createNode(TransientRepository.Backend repo, ! NodeType t) { ! return new BareNode(repo, AbstractContent.create(t)).initEdit(); ! } ! ! private class Backend extends AbstractNode.BackendImpl { ! Backend(BareNode node) { ! super(node); ! } } *************** *** 57,76 **** private NodeContent.Editor initEdit() { // Create an Editor w/o asking permission ! return bareContent.initEdit(this, repo.getBackend()); } ! static NodeContent.Editor cloneNode(TransientRepository repo, Node n) { NodeContent content = n.content(); ! return new BareNode(repo, memContent.ingest(content)).initEdit(); } ! private BareNode(TransientRepository repo, memContent c) { this.repo = repo; ! type = c.type(); ! nid = repo.getBackend().createNodeID(this); ! cap = CapabilityImpl.createOwner(repo.user()); bareContent = c; content = null; - path = null; history = null; newest = null; --- 60,77 ---- private NodeContent.Editor initEdit() { // Create an Editor w/o asking permission ! return bareContent.initEdit(backend, repo); } ! static NodeContent.Editor cloneNode(TransientRepository.Backend repo, Node n) { NodeContent content = n.content(); ! return new BareNode(repo, AbstractContent.ingest(content)).initEdit(); } ! private BareNode(TransientRepository.Backend repo, AbstractContent c) { ! super(repo.repository(), c.type(), repo.nextID()); this.repo = repo; ! cap = CapabilityImpl.createOwner(repo.repository().user()); bareContent = c; content = null; history = null; newest = null; *************** *** 79,109 **** // Methods from org.nodal.model.Node - public Repository repository() { - return repo; - } public Capability capability() { return cap; } ! public Name id() { ! return nid; ! } ! public NodeType nodeType() { ! return type; ! } public Node bareNode() { return this; } ! public Path path() { ! // Lazy calculation... ! if (path == null) { ! path = Paths.directPath(this, repo.path(), nid); ! } ! return path; } public NodeContent content() { if (content == null && bareContent != null) { ! content = bareContent.nodeContent(this, repo.getBackend(), null); } return content; --- 80,98 ---- // Methods from org.nodal.model.Node public Capability capability() { return cap; } ! public Node bareNode() { return this; } ! protected Path createPath() { ! return Paths.directPath(this, repo.repository().path(), id()); } public NodeContent content() { if (content == null && bareContent != null) { ! content = bareContent.nodeContent(backend, repo, null); } return content; *************** *** 126,130 **** } - public SetNode asSetNode() { NodeContent c = content(); --- 115,118 ---- *************** *** 175,179 **** } - public SetNode.Editor editSet() { NodeContent.Editor ed = edit(); --- 163,166 ---- *************** *** 199,203 **** return false; } ! // Methods from Object public String toString() { --- 186,190 ---- return false; } ! // Methods from Object public String toString() { *************** *** 207,215 **** /** * Add a new version history item to this Node. ! * @param txn the Txn that is being committed. */ void addVersion(Txn txn) { // List is the subjectList(Node) list, a List of TxnOps. ! System.out.println(this +" add version."); newest = new Version(this, newest, txn); if (oldest == null) { --- 194,204 ---- /** * Add a new version history item to this Node. ! * ! * @param txn ! * the Txn that is being committed. */ void addVersion(Txn txn) { // List is the subjectList(Node) list, a List of TxnOps. ! System.out.println(this + " add version."); newest = new Version(this, newest, txn); if (oldest == null) { *************** *** 226,230 **** } ! /* (non-Javadoc) * @see org.nodal.model.NodeHistory#versions() */ --- 215,221 ---- } ! /* ! * (non-Javadoc) ! * * @see org.nodal.model.NodeHistory#versions() */ *************** *** 237,253 **** --- 228,249 ---- * * Created on Oct 20, 2003 + * * @author leei */ private static final class VersionIter implements NodeVersion.Iterator { NodeVersion here; + VersionIter(NodeVersion here) { this.here = here; } + public boolean hasNext() { return here != null; } + public Object next() { return nextVersion(); } + public NodeVersion nextVersion() { NodeVersion next = here; *************** *** 255,258 **** --- 251,255 ---- return next; } + public void remove() { throw new UnsupportedOperationException(); *************** *** 262,267 **** /** ! * Return the version of this Node that was active at the time specified ! * or null. * @see org.nodal.model.NodeHistory#dated(org.nodal.util.Timestamp) */ --- 259,265 ---- /** ! * Return the version of this Node that was active at the time specified or ! * null. ! * * @see org.nodal.model.NodeHistory#dated(org.nodal.util.Timestamp) */ *************** *** 274,278 **** } ! /* (non-Javadoc) * @see org.nodal.model.NodeHistory#newestVersion() */ --- 272,278 ---- } ! /* ! * (non-Javadoc) ! * * @see org.nodal.model.NodeHistory#newestVersion() */ *************** *** 281,285 **** } ! /* (non-Javadoc) * @see org.nodal.model.NodeHistory#oldestVersion() */ --- 281,287 ---- } ! /* ! * (non-Javadoc) ! * * @see org.nodal.model.NodeHistory#oldestVersion() */ *************** *** 289,298 **** } ! private static final class Version ! extends NodeFilter ! implements NodeVersion { private Version prev; private Version next; private Txn txn; Version(BareNode node, Version prev, Txn txn) { super(node); --- 291,299 ---- } ! private static final class Version extends NodeFilter implements NodeVersion { private Version prev; private Version next; private Txn txn; + Version(BareNode node, Version prev, Txn txn) { super(node); *************** *** 308,312 **** return node.content(); } ! // TODO: Create on demand. // Make sure that this is uneditable content. return null; --- 309,313 ---- return node.content(); } ! // TODO: Create on demand. // Make sure that this is uneditable content. return null; *************** *** 327,331 **** } ! /* (non-Javadoc) * @see org.nodal.model.NodeVersion#user() */ --- 328,334 ---- } ! /* ! * (non-Javadoc) ! * * @see org.nodal.model.NodeVersion#user() */ *************** *** 334,338 **** } ! /* (non-Javadoc) * @see org.nodal.model.NodeVersion#timestamp() */ --- 337,343 ---- } ! /* ! * (non-Javadoc) ! * * @see org.nodal.model.NodeVersion#timestamp() */ *************** *** 341,345 **** } ! /* (non-Javadoc) * @see org.nodal.model.NodeVersion#txn() */ --- 346,352 ---- } ! /* ! * (non-Javadoc) ! * * @see org.nodal.model.NodeVersion#txn() */ |
From: Lee I. <le...@us...> - 2005-01-08 00:51:56
|
Update of /cvsroot/nodal/nodal/j-src/org/nodal/nav In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv969/org/nodal/nav Modified Files: DirElementOp.java AsDirectoryOp.java OpaqueFragmentOp.java Paths.java Path.java NodeOp.java Log Message: Major refactoring around AbstractNode.Backend interface. Index: Paths.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/nav/Paths.java,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** Paths.java 2 Sep 2004 23:21:43 -0000 1.42 --- Paths.java 8 Jan 2005 00:51:09 -0000 1.43 *************** *** 21,24 **** --- 21,25 ---- import org.nodal.model.Getter; import org.nodal.model.Node; + import org.nodal.nav.Path.Failure; import org.nodal.util.CacheMap; import org.nodal.util.GetterUtil; *************** *** 732,734 **** --- 733,751 ---- return RangeOp.create(start, end); } + + /** + * A version of {@link #parse(String)} that returns null on Failure. + * This should only be + * used in circumstances where we know that the parse will not fail. + * + * @param string a Path string + * @return a parsed Path or null if failed + */ + public static Path safeParse(String string) { + try { + return Paths.parse(string); + } catch (Failure e) { + return null; + } + } } \ No newline at end of file Index: AsDirectoryOp.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/nav/AsDirectoryOp.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** AsDirectoryOp.java 21 Jun 2004 20:06:20 -0000 1.9 --- AsDirectoryOp.java 8 Jan 2005 00:51:09 -0000 1.10 *************** *** 10,13 **** --- 10,15 ---- package org.nodal.nav; + import java.io.IOException; + import org.nodal.Nodal; import org.nodal.Types; *************** *** 136,140 **** } // If that doesn't work, then go directly to the Document. ! Document doc = Nodal.openDocument(pg); if (doc != null && doc.asDirectory() != null) { return new NodeGetter(pg, doc.docNode()); --- 138,147 ---- } // If that doesn't work, then go directly to the Document. ! Document doc; ! try { ! doc = Nodal.openDocument(pg); ! } catch (IOException e) { ! throw new Path.Failure ("Unable to bind: ", e); ! } if (doc != null && doc.asDirectory() != null) { return new NodeGetter(pg, doc.docNode()); Index: Path.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/nav/Path.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** Path.java 25 Aug 2004 22:07:45 -0000 1.18 --- Path.java 8 Jan 2005 00:51:09 -0000 1.19 *************** *** 140,143 **** --- 140,151 ---- super(s); } + + /** + * @param s + * @param e + */ + public Failure(String s, Exception e) { + super (s, e); + } } Index: DirElementOp.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/nav/DirElementOp.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** DirElementOp.java 17 Jul 2004 18:01:58 -0000 1.14 --- DirElementOp.java 8 Jan 2005 00:51:09 -0000 1.15 *************** *** 10,13 **** --- 10,14 ---- package org.nodal.nav; + import java.io.IOException; import java.util.WeakHashMap; import org.nodal.Nodal; *************** *** 127,131 **** } // If that doesn't work, then go directly to the Document. ! Document doc = Nodal.openDocument(pg); if (doc != null) { return new NodeGetter(pg, doc.docNode()); --- 128,137 ---- } // If that doesn't work, then go directly to the Document. ! Document doc; ! try { ! doc = Nodal.openDocument(pg); ! } catch (IOException e) { ! throw new Path.Failure ("Unable to bind: ", e); ! } if (doc != null) { return new NodeGetter(pg, doc.docNode()); Index: NodeOp.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/nav/NodeOp.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** NodeOp.java 25 Aug 2004 22:07:45 -0000 1.10 --- NodeOp.java 8 Jan 2005 00:51:09 -0000 1.11 *************** *** 9,12 **** --- 9,14 ---- package org.nodal.nav; + import java.io.IOException; + import org.nodal.Nodal; import org.nodal.filesystem.Document; *************** *** 38,43 **** } ! public Getter bindFrom (Path path) { ! Document doc = Nodal.openDocument(path); return Paths.NodeGetter.create(doc.nodeNamed(nid)); } --- 40,50 ---- } ! public Getter bindFrom (Path path) throws Path.Failure { ! Document doc; ! try { ! doc = Nodal.openDocument(path); ! } catch (IOException e) { ! throw new Path.Failure ("Unable to bind: ", e); ! } return Paths.NodeGetter.create(doc.nodeNamed(nid)); } Index: OpaqueFragmentOp.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/nav/OpaqueFragmentOp.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** OpaqueFragmentOp.java 25 Aug 2004 22:07:45 -0000 1.3 --- OpaqueFragmentOp.java 8 Jan 2005 00:51:09 -0000 1.4 *************** *** 9,12 **** --- 9,14 ---- package org.nodal.nav; + import java.io.IOException; + import org.nodal.Nodal; import org.nodal.filesystem.Document; *************** *** 104,108 **** */ public Getter bindFrom(Path pg) throws Path.Failure { ! Document doc = Nodal.openDocument(pg); if (doc != null) { DocumentFormat format = doc.format(); --- 106,115 ---- */ public Getter bindFrom(Path pg) throws Path.Failure { ! Document doc; ! try { ! doc = Nodal.openDocument(pg); ! } catch (IOException e) { ! throw new Path.Failure ("Unable to bind: ", e); ! } if (doc != null) { DocumentFormat format = doc.format(); |
From: Lee I. <le...@us...> - 2005-01-08 00:51:56
|
Update of /cvsroot/nodal/nodal/j-src/storage/http In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv969/storage/http Modified Files: HttpNode.java HttpRepository.java Log Message: Major refactoring around AbstractNode.Backend interface. Index: HttpRepository.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/http/HttpRepository.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** HttpRepository.java 4 Jan 2005 18:20:53 -0000 1.18 --- HttpRepository.java 8 Jan 2005 00:51:10 -0000 1.19 *************** *** 32,35 **** --- 32,36 ---- * * Created on Nov 5, 2003 + * * @author leei */ *************** *** 39,46 **** * * Created on Nov 5, 2003 * @author leei */ ! private final class Backend extends AbstractBackend { ! /** * @param repo --- 40,47 ---- * * Created on Nov 5, 2003 + * * @author leei */ ! final class Backend extends AbstractBackend { /** * @param repo *************** *** 51,69 **** } ! /* (non-Javadoc) ! * @see storage.framework.RepoBackend#createNode(org.nodal.type.NodeType, org.nodal.model.Node) */ public NodeContent.Editor createNode(NodeType type, Node context) { ! return HttpNode.create (HttpRepository.this, type, context); } ! /* (non-Javadoc) ! * @see storage.framework.RepoBackend#cloneNode(org.nodal.model.Node, org.nodal.model.Node) */ public NodeContent.Editor cloneNode(Node node, Node context) { ! return HttpNode.clone (HttpRepository.this, node, context); } ! ! /* (non-Javadoc) * @see storage.framework.RepoBackend#txnManager() */ --- 52,78 ---- } ! /* ! * (non-Javadoc) ! * ! * @see storage.framework.RepoBackend#createNode(org.nodal.type.NodeType, ! * org.nodal.model.Node) */ public NodeContent.Editor createNode(NodeType type, Node context) { ! return HttpNode.create(this, type, context); } ! /* ! * (non-Javadoc) ! * ! * @see storage.framework.RepoBackend#cloneNode(org.nodal.model.Node, ! * org.nodal.model.Node) */ public NodeContent.Editor cloneNode(Node node, Node context) { ! return HttpNode.clone(this, node, context); } ! ! /* ! * (non-Javadoc) ! * * @see storage.framework.RepoBackend#txnManager() */ *************** *** 72,80 **** } ! /* (non-Javadoc) * @see storage.framework.RepoBackend#commitTxn(storage.memory.TxnResolver) */ public void commitTxn(TxnManager.Resolver txn) { } } --- 81,98 ---- } ! /* ! * (non-Javadoc) ! * * @see storage.framework.RepoBackend#commitTxn(storage.memory.TxnResolver) */ public void commitTxn(TxnManager.Resolver txn) { } + + /** + * @return + */ + Name nextId() { + return ns.name("n" + nextId++); + } } *************** *** 84,103 **** private int nextId; /** * Create a Repository that communicvates via HTTP. ! * @param uri the URI of this Repository */ HttpRepository(Path path) throws IOException { ! super(path, null); ! setBackend(new Backend()); this.url = new URL(path.toURLString()); HttpURLConnection.setFollowRedirects(true); this.connection = (HttpURLConnection) url.openConnection(); ! this.ns = Names.getNamespace (path); //connection.setRequestMethod("HEAD"); //connection.connect(); } ! /* (non-Javadoc) * @see org.nodal.Repository#close() */ --- 102,128 ---- private int nextId; + protected final AbstractRepository.Backend createBackend() { + return new Backend(); + } + /** * Create a Repository that communicvates via HTTP. ! * ! * @param uri ! * the URI of this Repository */ HttpRepository(Path path) throws IOException { ! super(path); this.url = new URL(path.toURLString()); HttpURLConnection.setFollowRedirects(true); this.connection = (HttpURLConnection) url.openConnection(); ! this.ns = Names.getNamespace(path); //connection.setRequestMethod("HEAD"); //connection.connect(); } ! /* ! * (non-Javadoc) ! * * @see org.nodal.Repository#close() */ *************** *** 107,111 **** } ! public Document document (Path abs, Path rel) { try { URL docURL = new URL(url, rel.toURLString()); --- 132,136 ---- } ! public Document document(Path abs, Path rel) { try { URL docURL = new URL(url, rel.toURLString()); *************** *** 117,121 **** for (Iterator i = hdrs.keySet().iterator(); i.hasNext();) { Object key = i.next(); ! String val = conn.getHeaderField((String)key); System.out.println(" : " + key + " = " + val); } --- 142,146 ---- for (Iterator i = hdrs.keySet().iterator(); i.hasNext();) { Object key = i.next(); ! String val = conn.getHeaderField((String) key); System.out.println(" : " + key + " = " + val); } *************** *** 124,129 **** System.out.println(" : content-length: " + conn.getContentLength()); ! SBNStreamLoader sbnLoader = ! new SBNStreamLoader (backend, abs, conn.getInputStream(), conn.getContentType()); return StreamBasedNode.loadDocument(sbnLoader); } catch (IOException e) { --- 149,154 ---- System.out.println(" : content-length: " + conn.getContentLength()); ! SBNStreamLoader sbnLoader = new SBNStreamLoader(backend, abs, conn ! .getInputStream(), conn.getContentType()); return StreamBasedNode.loadDocument(sbnLoader); } catch (IOException e) { *************** *** 131,141 **** } } ! ! /** ! * @return ! */ ! Name nextId() { ! return ns.name ("n"+nextId++); ! } ! ! } --- 156,158 ---- } } ! } \ No newline at end of file Index: HttpNode.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/http/HttpNode.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** HttpNode.java 15 Nov 2004 19:21:58 -0000 1.3 --- HttpNode.java 8 Jan 2005 00:51:10 -0000 1.4 *************** *** 18,22 **** import org.nodal.util.CapabilityImpl; import storage.framework.AbstractNode; ! import storage.memory.memContent; /** --- 18,22 ---- import org.nodal.util.CapabilityImpl; import storage.framework.AbstractNode; ! import storage.memory.AbstractContent; /** *************** *** 25,32 **** class HttpNode extends AbstractNode { static NodeContent.Editor create( ! HttpRepository repo, NodeType type, Node context) { ! return new HttpNode(repo, type).initialize(); } --- 25,32 ---- class HttpNode extends AbstractNode { static NodeContent.Editor create( ! HttpRepository.Backend repoBackend, NodeType type, Node context) { ! return new HttpNode(repoBackend, type).initialize(); } *************** *** 37,45 **** private NodeContent.Editor initialize() { //System.out.println("Initialize " + this); ! return content.initEdit(this, repo.getBackend()); } static NodeContent.Editor clone( ! HttpRepository repo, Node cloned, Node context) { --- 37,45 ---- private NodeContent.Editor initialize() { //System.out.println("Initialize " + this); ! return content.initEdit(backend, repoBackend); } static NodeContent.Editor clone( ! HttpRepository.Backend repoBackend, Node cloned, Node context) { *************** *** 47,59 **** } ! private memContent content; ! /** * @param repo * @param type */ ! private HttpNode(HttpRepository repo, NodeType type) { ! super(repo, type, repo.nextId()); ! content = memContent.create(type); } --- 47,71 ---- } ! private AbstractContent content; ! private HttpRepository.Backend repoBackend; ! ! static class Backend extends AbstractNode.BackendImpl { ! Backend (HttpNode node) { ! super (node); ! } ! } ! ! protected final AbstractNode.Backend createBackend () { ! return new Backend (this); ! } ! /** * @param repo * @param type */ ! private HttpNode(HttpRepository.Backend repoBackend, NodeType type) { ! super(repoBackend.repository(), type, repoBackend.nextId()); ! this.repoBackend = repoBackend; ! this.content = AbstractContent.create(type); } *************** *** 76,80 **** */ public NodeContent content() { ! return content.nodeContent(this, repo.getBackend(), capability()); } --- 88,92 ---- */ public NodeContent content() { ! return content.nodeContent(backend, repoBackend, capability()); } |
From: Lee I. <le...@us...> - 2005-01-08 00:51:25
|
Update of /cvsroot/nodal/nodal/j-src/org/nodal/format/text/plain In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv969/org/nodal/format/text/plain Modified Files: Format.java Log Message: Major refactoring around AbstractNode.Backend interface. Index: Format.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/format/text/plain/Format.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Format.java 12 Nov 2004 19:23:27 -0000 1.3 --- Format.java 8 Jan 2005 00:51:14 -0000 1.4 *************** *** 41,74 **** /** ! * <p>This is the basic implementation of ! * the text/plain schema encoder and decoder. ! * ! * <p>The decoder takes in a stream and converts it into a Node sequence of strings, ! * while stripping the end of line character from each line. Using the node factory ! * passed to the decode function to create the root node, each subsequent line of ! * text is read in and stored as new Node appended to the sequence. ! * ! * <p>e.g. ! * <p> root Node --| ! * <p> - Node.content -> String -> "Line 1" ! * <p> - Node.content -> String -> "Line 2" ! * <p> - Node.content -> String -> "Line 3" ! * ! * <p>The encoder takes in the root Node of the Nodal representation of the text ! * document and then traverses the node tree, extracting the string content from ! * each node. It then writes the strings to an output stream, adding a line * seperator after each one. After all the nodes in the tree have been examined, ! * it flushes and returns the output stream. ! * ! * <p>e.g. ! * <p> Assuming the above example as the input to the encoder, the output stream * will look like this: ! * <p> Line1 ! * <p> Line2 ! * <p> Line3 ! * ! * * @author Maryam Razavi ! * @author Nelson Siu <ns...@ec...> */ --- 41,85 ---- /** ! * <p> ! * This is the basic implementation of the text/plain schema encoder and ! * decoder. ! * ! * <p> ! * The decoder takes in a stream and converts it into a Node sequence of ! * strings, while stripping the end of line character from each line. Using the ! * node factory passed to the decode function to create the root node, each ! * subsequent line of text is read in and stored as new Node appended to the ! * sequence. ! * ! * <p> ! * e.g. ! * <p> ! * root Node --| ! * <p>- Node.content -> String -> "Line 1" ! * <p>- Node.content -> String -> "Line 2" ! * <p>- Node.content -> String -> "Line 3" ! * ! * <p> ! * The encoder takes in the root Node of the Nodal representation of the text ! * document and then traverses the node tree, extracting the string content from ! * each node. It then writes the strings to an output stream, adding a line * seperator after each one. After all the nodes in the tree have been examined, ! * it flushes and returns the output stream. ! * ! * <p> ! * e.g. ! * <p> ! * Assuming the above example as the input to the encoder, the output stream * will look like this: ! * <p> ! * Line1 ! * <p> ! * Line2 ! * <p> ! * Line3 * ! * * ! * @author Maryam Razavi ! * @author Nelson Siu <ns...@ec...> */ *************** *** 96,105 **** public NodeType rootType() { if (rootType == null) { - Schema.Editor typeDoc = - Types.createSchema("memory://transient/testme.nls").edit(); try { rootType = typeDoc.createSequenceType(Types.STRING); } catch (Type.CreationFailure e) { return null; } } --- 107,119 ---- public NodeType rootType() { if (rootType == null) { try { + // NEXT Do this properly! + Schema.Editor typeDoc = Types.createSchema( + "memory://transient/testme.nls").edit(); rootType = typeDoc.createSequenceType(Types.STRING); } catch (Type.CreationFailure e) { return null; + } catch (IOException e) { + return null; } } *************** *** 125,133 **** /** ! * Encodes the Nodal representation of a text/plain document into an ! * output stream. ! * @var stream The output stream to write the result to. ! * @var root The root Node of the Nodal representation of the document. ! */ public OutputStream encode(OutputStream stream, Node root) { Getter mySeqGetter = null; --- 139,148 ---- /** ! * Encodes the Nodal representation of a text/plain document into an output ! * stream. ! * ! * @var stream The output stream to write the result to. ! * @var root The root Node of the Nodal representation of the document. ! */ public OutputStream encode(OutputStream stream, Node root) { Getter mySeqGetter = null; *************** *** 142,146 **** for (int i = 0; i < mySeqSize; i++) { try { ! // Retreive the next element in the string sequence mySeqGetter = mySeq.item(i); } catch (IndexBoundsException e) { --- 157,161 ---- for (int i = 0; i < mySeqSize; i++) { try { ! // Retreive the next element in the string sequence mySeqGetter = mySeq.item(i); } catch (IndexBoundsException e) { *************** *** 198,205 **** /** ! * Decodes a text input stream and converts the file to a Nodal representation. ! * @var stream The NodeType that will be assigned to the new Node. ! * @var root The NodeFactory from which the new nodal document will be created ! */ public Node decode(InputStream stream, NodeFactory root) { nodeEd = root.createNode(rootType()); --- 213,223 ---- /** ! * Decodes a text input stream and converts the file to a Nodal ! * representation. ! * ! * @var stream The NodeType that will be assigned to the new Node. ! * @var root The NodeFactory from which the new nodal document will be ! * created ! */ public Node decode(InputStream stream, NodeFactory root) { nodeEd = root.createNode(rootType()); *************** *** 215,220 **** while ((lineBuffer = br.readLine()) != null) { // Create STRING Node and append it. ! SequenceNode.Editor str = ! sSeqEd.createNode(Types.STRING).editSequence(); str.insertAfter(-1).set(lineBuffer); setter.set(str.bareNode()); --- 233,238 ---- while ((lineBuffer = br.readLine()) != null) { // Create STRING Node and append it. ! SequenceNode.Editor str = sSeqEd.createNode(Types.STRING) ! .editSequence(); str.insertAfter(-1).set(lineBuffer); setter.set(str.bareNode()); |
From: Lee I. <le...@us...> - 2005-01-08 00:51:24
|
Update of /cvsroot/nodal/nodal/j-src/org/nodal In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv969/org/nodal Modified Files: Types.java Nodal.java RepositoryDriver.java Log Message: Major refactoring around AbstractNode.Backend interface. Index: Nodal.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/Nodal.java,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** Nodal.java 25 Mar 2004 21:52:34 -0000 1.23 --- Nodal.java 8 Jan 2005 00:51:13 -0000 1.24 *************** *** 13,16 **** --- 13,17 ---- //import org.nodal.implementation.memory.RepositoryImpl; + import java.io.IOException; import java.util.Enumeration; import java.util.Vector; *************** *** 69,74 **** * @param nm a Name to identify the Node * @return a Node if there is one accessible from this Name or null */ ! public static Node nodeNamed(Name nm) { if (nm.isGlobal()) { return null; --- 70,76 ---- * @param nm a Name to identify the Node * @return a Node if there is one accessible from this Name or null + * @throws IOException */ ! public static Node nodeNamed(Name nm) throws IOException { if (nm.isGlobal()) { return null; *************** *** 86,91 **** * @param docPath an absolute Path defining a Document * @return a Document containing the Path requested or null */ ! public static Document openDocument(Path docPath) { try { Repository repo = openRepository(docPath); --- 88,94 ---- * @param docPath an absolute Path defining a Document * @return a Document containing the Path requested or null + * @throws IOException */ ! public static Document openDocument(Path docPath) throws IOException { try { Repository repo = openRepository(docPath); *************** *** 107,112 **** * @return a Document containing the Path requested or null * @throws Path.Failure if the uri is an invalid Path */ ! public static Document openDocument(String uri) throws Path.Failure { Path path = Paths.parse(uri); return openDocument(path); --- 110,116 ---- * @return a Document containing the Path requested or null * @throws Path.Failure if the uri is an invalid Path + * @throws IOException */ ! public static Document openDocument(String uri) throws Path.Failure, IOException { Path path = Paths.parse(uri); return openDocument(path); *************** *** 117,123 **** * @param path a Path to attach this Document to. * @return a new Document object with this Path * @throws RuntimeException if a Document already ex */ ! public static Document createDocument(Path path, DocumentFormat format) { Path dirPath = path.parent(); Document dirDoc = openDocument(dirPath); --- 121,129 ---- * @param path a Path to attach this Document to. * @return a new Document object with this Path + * @throws IOException * @throws RuntimeException if a Document already ex */ ! public static Document createDocument(Path path, DocumentFormat format) ! throws IOException { Path dirPath = path.parent(); Document dirDoc = openDocument(dirPath); *************** *** 140,146 **** * @param uri a String naming a Repository * @return the Repository containing the named resource ! * @throws Path.Failure if the uri is an invalid Path */ ! public static Repository openRepository(String uri) throws Path.Failure { Path path = Paths.parse(uri); return openRepository(path); --- 146,153 ---- * @param uri a String naming a Repository * @return the Repository containing the named resource ! * @throws Failure ! * @throws IOException */ ! public static Repository openRepository(String uri) throws Path.Failure, IOException { Path path = Paths.parse(uri); return openRepository(path); *************** *** 154,159 **** * @param path an absolute Path naming a Repository * @return the Repository containing the named resource */ ! public static Repository openRepository(Path path) throws Path.Failure { // First, check the cache of Repositories Repository r = AbstractRepository.existingRepository(path); --- 161,168 ---- * @param path an absolute Path naming a Repository * @return the Repository containing the named resource + * @throws Path.Failure if the Path given is invalid + * @throws IOException */ ! public static Repository openRepository(Path path) throws Path.Failure, IOException { // First, check the cache of Repositories Repository r = AbstractRepository.existingRepository(path); Index: RepositoryDriver.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/RepositoryDriver.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** RepositoryDriver.java 9 Jan 2004 00:42:50 -0000 1.5 --- RepositoryDriver.java 8 Jan 2005 00:51:13 -0000 1.6 *************** *** 10,13 **** --- 10,15 ---- package org.nodal; + import java.io.IOException; + import org.nodal.nav.Path; *************** *** 39,43 **** * @return an open Repository containing this URL or null if unable * to open */ ! Repository openRepository (Path path); } --- 41,46 ---- * @return an open Repository containing this URL or null if unable * to open + * @throws IOException */ ! Repository openRepository (Path path) throws IOException; } Index: Types.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/Types.java,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** Types.java 12 Nov 2004 19:23:26 -0000 1.23 --- Types.java 8 Jan 2005 00:51:13 -0000 1.24 *************** *** 10,13 **** --- 10,15 ---- package org.nodal; + import java.io.IOException; + import org.nodal.implementation.types.TypeDoc; import org.nodal.implementation.types.TypeImpl; *************** *** 43,56 **** Path basePath = BASESCHEMA.path().apply(filename); return openSchema(basePath); ! } catch (Path.Failure e) { ! return null; } } ! public static Schema openSchema(Path path) { return TypeDoc.openSchema(path); } ! public static Schema openSchema(String uri) { try { Path path = Paths.parse(uri); --- 45,58 ---- Path basePath = BASESCHEMA.path().apply(filename); return openSchema(basePath); ! } catch (Exception e) { ! throw new RuntimeException (e); } } ! public static Schema openSchema(Path path) throws IOException { return TypeDoc.openSchema(path); } ! public static Schema openSchema(String uri) throws IOException { try { Path path = Paths.parse(uri); *************** *** 61,69 **** } ! public static Schema.Editor createSchema(Path path) { return TypeDoc.createSchema(path); } ! public static Schema.Editor createSchema(String uri) { try { Path path = Paths.parse(uri); --- 63,71 ---- } ! public static Schema.Editor createSchema(Path path) throws IOException { return TypeDoc.createSchema(path); } ! public static Schema.Editor createSchema(String uri) throws IOException { try { Path path = Paths.parse(uri); |
From: Lee I. <le...@us...> - 2005-01-08 00:51:24
|
Update of /cvsroot/nodal/nodal/j-src/storage/file In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv969/storage/file Modified Files: FileDirMap.java FileRepository.java FileDocument.java FileNode.java Log Message: Major refactoring around AbstractNode.Backend interface. Index: FileDirMap.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/file/FileDirMap.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** FileDirMap.java 4 Jan 2005 18:20:50 -0000 1.6 --- FileDirMap.java 8 Jan 2005 00:51:12 -0000 1.7 *************** *** 24,27 **** --- 24,28 ---- import org.nodal.util.ConstraintFailure; import org.nodal.util.Name; + import storage.framework.AbstractNode; import storage.framework.GeneratedNode; *************** *** 39,45 **** private Path docPath; private long updated; ! FileDirMap(FileRepository repo, Path docPath, Name id, File file) { ! super(repo, (NodeType) Types.DIRTYPE.fieldType("root"), id); this.file = file; this.docPath = docPath; --- 40,48 ---- private Path docPath; private long updated; + private FileRepository.Backend repoBackend; ! FileDirMap(FileRepository.Backend repoBackend, Path docPath, Name id, File file) { ! super(repoBackend.repository(), (NodeType) Types.DIRTYPE.fieldType("root"), id); ! this.repoBackend = repoBackend; this.file = file; this.docPath = docPath; *************** *** 47,53 **** boolean canRead = file.canRead(); boolean canWrite = file.canWrite(); ! this.cap = CapabilityImpl.createReadWrite(repo.user(), canRead, canWrite); } protected boolean outofdate() { long mod = file.lastModified(); --- 50,76 ---- boolean canRead = file.canRead(); boolean canWrite = file.canWrite(); ! this.cap = CapabilityImpl.createReadWrite(repoBackend.repository().user(), canRead, canWrite); } + private static class BackendImpl extends AbstractNode.BackendImpl { + BackendImpl (FileDirMap node) { + super (node); + } + + public boolean localPrecommit() { + // TODO Check for permission to perform action(s) + return true; + } + + public boolean localPostcommit() { + // TODO Perform the particular action! + return true; + } + } + + protected AbstractNode.Backend createBackend () { + return new BackendImpl (this); + } + protected boolean outofdate() { long mod = file.lastModified(); *************** *** 61,65 **** org.nodal.model.MapNode.Editor mapEditor = editor.editMap(); try { - FileRepository fileRepo = (FileRepository) repo; File[] names = file.listFiles(); HashSet newFiles = new HashSet(); --- 84,87 ---- *************** *** 74,78 **** } else { // No match: Document added. ! Document doc = FileDocument.loadDocument(fileRepo, f); mapEditor.setValue(f.getName()).setNode(doc.docNode()); } --- 96,100 ---- } else { // No match: Document added. ! Document doc = FileDocument.loadDocument(repoBackend.fileRepository(), f); mapEditor.setValue(f.getName()).setNode(doc.docNode()); } *************** *** 83,87 **** for (Iterator i = files.iterator(); i.hasNext();) { File f = (File) i.next(); ! Document doc = FileDocument.loadDocument(fileRepo, f); mapEditor.removeKey(doc.docNode()); } --- 105,109 ---- for (Iterator i = files.iterator(); i.hasNext();) { File f = (File) i.next(); ! Document doc = FileDocument.loadDocument(repoBackend.fileRepository(), f); mapEditor.removeKey(doc.docNode()); } Index: FileNode.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/file/FileNode.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** FileNode.java 18 Nov 2004 23:29:17 -0000 1.11 --- FileNode.java 8 Jan 2005 00:51:12 -0000 1.12 *************** *** 19,25 **** import org.nodal.util.CapabilityImpl; import org.nodal.util.Name; import storage.framework.AbstractNode; import storage.framework.AbstractRepository; ! import storage.memory.memContent; /** --- 19,26 ---- import org.nodal.util.CapabilityImpl; import org.nodal.util.Name; + import storage.framework.AbstractNode; import storage.framework.AbstractRepository; ! import storage.memory.AbstractContent; /** *************** *** 32,37 **** protected final Path docPath; protected final File fileContext; ! protected final FileRepository fileRepo; ! protected final memContent bareContent; private NodeContent content; private Capability cap; --- 33,38 ---- protected final Path docPath; protected final File fileContext; ! protected final FileRepository.Backend repoBackend; ! protected final AbstractContent bareContent; private NodeContent content; private Capability cap; *************** *** 48,53 **** * @return a new FileNode */ ! static NodeContent.Editor createNode(AbstractRepository.Backend svc, Path docPath, Name id, ! NodeType type, FileNode fcontext) { return createNode(svc, docPath, id, type, fcontext.fileContext); } --- 49,54 ---- * @return a new FileNode */ ! static NodeContent.Editor createNode(AbstractRepository.Backend svc, ! Path docPath, Name id, NodeType type, FileNode fcontext) { return createNode(svc, docPath, id, type, fcontext.fileContext); } *************** *** 64,73 **** * @return a new FileNode of the given type */ ! static NodeContent.Editor createNode(AbstractRepository.Backend svc, Path docPath, Name id, ! NodeType t, File fileContext) { ! memContent c = memContent.create(t); ! FileNode fnode = new FileNode((FileRepository) svc.repository(), docPath, ! id, c, fileContext); ! return c.initEdit(fnode, svc); } --- 65,73 ---- * @return a new FileNode of the given type */ ! static NodeContent.Editor createNode(AbstractRepository.Backend svc, ! Path docPath, Name id, NodeType t, File fileContext) { ! AbstractContent c = AbstractContent.create(t); ! FileNode fnode = new FileNode((FileRepository.Backend) svc, docPath, id, c, fileContext); ! return c.initEdit(fnode.backend, svc); } *************** *** 81,90 **** * @return a new FileNode with the cloned context */ ! static NodeContent.Editor cloneNode(AbstractRepository.Backend services, Path docPath, ! Name id, Node node, FileNode fcontext) { ! memContent c = memContent.ingest(node.content()); ! FileNode fnode = new FileNode(fcontext.fileRepo, docPath, id, c, fcontext.fileContext); ! return c.initEdit(fnode, services); } --- 81,90 ---- * @return a new FileNode with the cloned context */ ! static NodeContent.Editor cloneNode(AbstractRepository.Backend services, ! Path docPath, Name id, Node node, FileNode fcontext) { ! AbstractContent c = AbstractContent.ingest(node.content()); ! FileNode fnode = new FileNode(fcontext.repoBackend, docPath, id, c, fcontext.fileContext); ! return c.initEdit(fnode.backend, services); } *************** *** 104,111 **** * a File reference to provide context for this Node */ ! protected FileNode(FileRepository repo, Path docPath, Name id, memContent c, ! File file) { ! super(repo, c.type(), id); ! this.fileRepo = repo; this.docPath = docPath; this.fileContext = file; --- 104,111 ---- * a File reference to provide context for this Node */ ! protected FileNode(FileRepository.Backend repoBackend, Path docPath, Name id, ! AbstractContent c, File file) { ! super(repoBackend.repository(), c.type(), id); ! this.repoBackend = repoBackend; this.docPath = docPath; this.fileContext = file; *************** *** 126,130 **** public NodeContent content() { if (content == null && bareContent != null) { ! content = bareContent.nodeContent(this, fileRepo.getBackend(), null); } return content; --- 126,130 ---- public NodeContent content() { if (content == null && bareContent != null) { ! content = bareContent.nodeContent(backend, repoBackend, null); } return content; *************** *** 150,154 **** } ! /* (non-Javadoc) * @see storage.file.FileNodeContext#docPath() */ --- 150,156 ---- } ! /* ! * (non-Javadoc) ! * * @see storage.file.FileNodeContext#docPath() */ *************** *** 157,168 **** } ! /* (non-Javadoc) * @see storage.file.FileNodeContext#fileRepository() */ public final FileRepository fileRepository() { ! return fileRepo; } ! /* (non-Javadoc) * @see storage.file.FileNodeContext#fileContext() */ --- 159,174 ---- } ! /* ! * (non-Javadoc) ! * * @see storage.file.FileNodeContext#fileRepository() */ public final FileRepository fileRepository() { ! return repoBackend.fileRepository(); } ! /* ! * (non-Javadoc) ! * * @see storage.file.FileNodeContext#fileContext() */ Index: FileRepository.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/file/FileRepository.java,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** FileRepository.java 4 Jan 2005 18:20:50 -0000 1.31 --- FileRepository.java 8 Jan 2005 00:51:12 -0000 1.32 *************** *** 55,66 **** * @param repo * @param store */ ! protected Backend(FileRepository repo, File file /* , Store store */ ! ) { ! super(repo, pathFromFile(file), null); ! frepo = repo; this.file = file; } private Path path() { return path; --- 55,70 ---- * @param repo * @param store + * @throws IOException */ ! protected Backend(FileRepository frepo, File file) { ! super(frepo, frepo.path, null); ! this.frepo = frepo; this.file = file; } + final FileRepository fileRepository() { + return frepo; + } + private Path path() { return path; *************** *** 144,161 **** // For each Node, find all associated Documents and save them. FileNode fnode = (FileNode) subj; ! if (fileSet.add (fnode.fileContext)) { Document doc = FileDocument.loadDocument(frepo, fnode.fileContext); ! System.out.println("Save document "+doc); } } } } ! /* ! * (non-Javadoc) ! * @see storage.framework.AbstractRepository.Backend#addEdge(org.nodal.model.NodeContent, java.lang.Object, org.nodal.model.Node) */ ! public void addEdge (NodeContent src, Object property, Node dest) { ! super.addEdge (src, property, dest); // Gather Document->FileNode associations Node bareSrc = src.bareNode(); --- 148,167 ---- // For each Node, find all associated Documents and save them. FileNode fnode = (FileNode) subj; ! if (fileSet.add(fnode.fileContext)) { Document doc = FileDocument.loadDocument(frepo, fnode.fileContext); ! System.out.println("Save document " + doc); } } } } ! /* ! * (non-Javadoc) ! * ! * @see storage.framework.AbstractRepository.Backend#addEdge(org.nodal.model.NodeContent, ! * java.lang.Object, org.nodal.model.Node) */ ! public void addEdge(NodeContent src, Object property, Node dest) { ! super.addEdge(src, property, dest); // Gather Document->FileNode associations Node bareSrc = src.bareNode(); *************** *** 163,167 **** FileNode destFileNode = (FileNode) dest; FileNode srcFileNode = (FileNode) bareSrc; ! System.out.println("Link from "+srcFileNode+"->"+destFileNode); } } --- 169,173 ---- FileNode destFileNode = (FileNode) dest; FileNode srcFileNode = (FileNode) bareSrc; ! System.out.println("Link from " + srcFileNode + "->" + destFileNode); } } *************** *** 169,175 **** private File rootFile; - private CacheMap backends; private CacheMap idMap; ! /** * Create a Repository that communicvates via HTTP. --- 175,180 ---- private File rootFile; private CacheMap idMap; ! /** * Create a Repository that communicvates via HTTP. *************** *** 179,186 **** */ FileRepository(Path path) throws IOException { ! super(path, null); // Remove file: prefix from pathname. String rootName = path.toURLString().substring(5); ! this.rootFile = new File(rootName); // Check that file exists and is a directory. --- 184,201 ---- */ FileRepository(Path path) throws IOException { ! super(path); ! ! this.rootFile = getRootFile(); ! ! //System.out.println ("Create "+this); ! ! // Create the ID->Node map for permanent IDs ! idMap = new CacheMap(); ! } ! ! private File getRootFile() throws IOException { // Remove file: prefix from pathname. String rootName = path.toURLString().substring(5); ! File rootFile = new File(rootName); // Check that file exists and is a directory. *************** *** 193,216 **** // Canonicalize the file. ! rootFile = rootFile.getCanonicalFile(); ! ! // Cannot initialize this until rootFile established. ! backends = new CacheMap(); ! setBackend(backend(rootFile)); ! //System.out.println ("Create "+this); ! // Create the ID->Node map for permanent IDs ! idMap = new CacheMap(); } ! Backend backend(File file) { ! Backend svc = (Backend) backends.get(file); ! if (svc == null) { ! svc = new Backend(this, file); ! backends.put(file, svc); } ! return svc; } ! /* * (non-Javadoc) --- 208,229 ---- // Canonicalize the file. ! return rootFile.getCanonicalFile(); ! } ! private static CacheMap backends = new CacheMap(); ! ! protected AbstractRepository.Backend createBackend() throws IOException { ! return createBackend(getRootFile()); } ! Backend createBackend(File file) { ! Backend backend = (Backend) backends.get(file); ! if (backend == null) { ! backend = new Backend (this, file); ! backends.put(file, backend); } ! return backend; } ! /* * (non-Javadoc) *************** *** 242,249 **** } - NodeFactory nodeFactory(File f) { - return backend(f).nodeFactory(); - } - static Path pathFromFile(File file) { try { --- 255,258 ---- Index: FileDocument.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/file/FileDocument.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** FileDocument.java 4 Jan 2005 18:20:50 -0000 1.22 --- FileDocument.java 8 Jan 2005 00:51:12 -0000 1.23 *************** *** 73,77 **** } else if (file.isDirectory()) { Path path = FileRepository.pathFromFile(file); ! FileRepository.Backend svc = repo.backend(file); NodeFactory factory = svc.nodeFactory(); RecordNode.Editor docEditor = factory.createNode(Types.DIRTYPE) --- 73,77 ---- } else if (file.isDirectory()) { Path path = FileRepository.pathFromFile(file); ! FileRepository.Backend svc = repo.createBackend(file); NodeFactory factory = svc.nodeFactory(); RecordNode.Editor docEditor = factory.createNode(Types.DIRTYPE) *************** *** 79,83 **** try { docEditor.setField("root").set( ! new FileDirMap(repo, path, svc.nextID(), file)); } catch (ConstraintFailure e) { throw new RuntimeException("Failed setting directory root", e); --- 79,83 ---- try { docEditor.setField("root").set( ! new FileDirMap(svc, path, svc.nextID(), file)); } catch (ConstraintFailure e) { throw new RuntimeException("Failed setting directory root", e); *************** *** 146,150 **** this.repo = repo; this.file = file; ! this.svc = repo.backend(file); this.reloading = false; } --- 146,150 ---- this.repo = repo; this.file = file; ! this.svc = repo.createBackend(file); this.reloading = false; } *************** *** 156,160 **** svc = new LoadRepoServices(repo, file); } else { ! svc = repo.backend(file); } } --- 156,160 ---- svc = new LoadRepoServices(repo, file); } else { ! svc = repo.createBackend(file); } } |
From: Lee I. <le...@us...> - 2005-01-08 00:51:24
|
Update of /cvsroot/nodal/nodal/j-src/storage/jar In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv969/storage/jar Modified Files: JarRepository.java JarNode.java Log Message: Major refactoring around AbstractNode.Backend interface. Index: JarRepository.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/jar/JarRepository.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** JarRepository.java 4 Jan 2005 18:20:54 -0000 1.14 --- JarRepository.java 8 Jan 2005 00:51:13 -0000 1.15 *************** *** 50,55 **** private JarRepository(Path path) throws IOException { // TODO Treat a whole JAR file as a Repository ! super(path, null); ! setBackend(new Backend()); this.url = new URL(path.toURLString()); this.connection = (JarURLConnection) url.openConnection(); --- 50,54 ---- private JarRepository(Path path) throws IOException { // TODO Treat a whole JAR file as a Repository ! super(path); this.url = new URL(path.toURLString()); this.connection = (JarURLConnection) url.openConnection(); *************** *** 58,61 **** --- 57,64 ---- } + protected AbstractRepository.Backend createBackend () { + return new Backend (); + } + class Backend extends AbstractBackend { private Backend() { *************** *** 71,75 **** public NodeContent.Editor createNode(NodeType type, Node context) { //System.out.println("Create JarNode (" + type + ")"); ! return JarNode.create(JarRepository.this, type, context); } --- 74,78 ---- public NodeContent.Editor createNode(NodeType type, Node context) { //System.out.println("Create JarNode (" + type + ")"); ! return JarNode.create(this, type, context); } *************** *** 100,103 **** --- 103,114 ---- public void commitTxn(TxnManager.Resolver txn) { } + + + /** + * @return + */ + Name nextId() { + return ns.name("n" + idNumber++); + } } *************** *** 127,137 **** /** - * @return - */ - public Name nextId() { - return ns.name("n" + idNumber++); - } - - /** * @param path * @return --- 138,141 ---- Index: JarNode.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/jar/JarNode.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** JarNode.java 15 Nov 2004 19:21:59 -0000 1.5 --- JarNode.java 8 Jan 2005 00:51:13 -0000 1.6 *************** *** 19,23 **** import storage.framework.AbstractNode; ! import storage.memory.memContent; /** --- 19,23 ---- import storage.framework.AbstractNode; ! import storage.memory.AbstractContent; /** *************** *** 26,33 **** class JarNode extends AbstractNode { static NodeContent.Editor create( ! JarRepository repo, NodeType type, Node context) { ! return new JarNode(repo, type).initialize(); } --- 26,33 ---- class JarNode extends AbstractNode { static NodeContent.Editor create( ! JarRepository.Backend repoBackend, NodeType type, Node context) { ! return new JarNode(repoBackend, type).initialize(); } *************** *** 38,46 **** private NodeContent.Editor initialize() { //System.out.println("Initialize " + this); ! return content.initEdit(this, repo.getBackend()); } static NodeContent.Editor clone( ! JarRepository repo, Node cloned, Node context) { --- 38,46 ---- private NodeContent.Editor initialize() { //System.out.println("Initialize " + this); ! return content.initEdit(backend, repoBackend); } static NodeContent.Editor clone( ! JarRepository repoBackend, Node cloned, Node context) { *************** *** 48,60 **** } ! private memContent content; ! /** * @param repo * @param type */ ! private JarNode(JarRepository repo, NodeType type) { ! super(repo, type, repo.nextId()); ! content = memContent.create(type); } --- 48,72 ---- } ! private AbstractContent content; ! private JarRepository.Backend repoBackend; ! ! static class Backend extends AbstractNode.BackendImpl { ! Backend (JarNode node) { ! super (node); ! } ! } ! ! protected final AbstractNode.Backend createBackend () { ! return new Backend (this); ! } ! /** * @param repo * @param type */ ! private JarNode(JarRepository.Backend repoBackend, NodeType type) { ! super(repoBackend.repository(), type, repoBackend.nextId()); ! this.repoBackend = repoBackend; ! content = AbstractContent.create(type); } *************** *** 77,81 **** */ public NodeContent content() { ! return content.nodeContent(this, repo.getBackend(), capability()); } --- 89,93 ---- */ public NodeContent content() { ! return content.nodeContent(backend, repoBackend, capability()); } |
From: Lee I. <le...@us...> - 2005-01-08 00:51:23
|
Update of /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv969/org/nodal/implementation/types Modified Files: TypeDoc.java Log Message: Major refactoring around AbstractNode.Backend interface. Index: TypeDoc.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types/TypeDoc.java,v retrieving revision 1.65 retrieving revision 1.66 diff -C2 -d -r1.65 -r1.66 *** TypeDoc.java 12 Nov 2004 19:23:24 -0000 1.65 --- TypeDoc.java 8 Jan 2005 00:51:13 -0000 1.66 *************** *** 10,13 **** --- 10,14 ---- package org.nodal.implementation.types; + import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; *************** *** 105,109 **** static final Schema.Editor ED = BASESCHEMA.edit(); ! public static Schema.Editor createSchema(Path path) { TypeDoc tdoc = openSchema(path); if (tdoc == null) { --- 106,110 ---- static final Schema.Editor ED = BASESCHEMA.edit(); ! public static Schema.Editor createSchema(Path path) throws IOException { TypeDoc tdoc = openSchema(path); if (tdoc == null) { *************** *** 118,122 **** } ! public static TypeDoc openSchema(Path path) { TypeDoc doc = (TypeDoc) typeDocs.get(path); if (doc == null) { --- 119,123 ---- } ! public static TypeDoc openSchema(Path path) throws IOException { TypeDoc doc = (TypeDoc) typeDocs.get(path); if (doc == null) { *************** *** 271,275 **** BASESCHEMA.associateBase(base.docNode()); bootstrapped = true; ! } catch (Path.Failure e) { throw new RuntimeException(e); } --- 272,276 ---- BASESCHEMA.associateBase(base.docNode()); bootstrapped = true; ! } catch (Exception e) { throw new RuntimeException(e); } |
From: Lee I. <le...@us...> - 2005-01-08 00:51:23
|
Update of /cvsroot/nodal/nodal/j-src/storage/framework In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv969/storage/framework Modified Files: GeneratedNode.java AbstractRepository.java AbstractNode.java Log Message: Major refactoring around AbstractNode.Backend interface. Index: AbstractNode.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/framework/AbstractNode.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** AbstractNode.java 12 Nov 2004 19:23:24 -0000 1.11 --- AbstractNode.java 8 Jan 2005 00:51:12 -0000 1.12 *************** *** 25,28 **** --- 25,31 ---- */ public abstract class AbstractNode implements Node { + /** + * The NodeType of this AbstractNode. + */ protected final NodeType type; protected final AbstractRepository repo; *************** *** 30,36 **** --- 33,113 ---- private Name id; + /** + * A backend interface to allow access to private functionality for this + * AbstractNode. See the Design Pattern "Backend Interface" in my weblog. + * @author leei + */ + public interface Backend { + /** + * The Node for which this is a Backend. + * @return the Node for which this is a Backend. + */ + AbstractNode node(); + + /** + * Called when a local transaction {@link org.nodal.model.Txn} has initiated a + * commit() but has not yet completed this. If this method returns false then + * the commit will be aborted. + * @return false if the transaction must be aborted. + */ + boolean localPrecommit(); + + /** + * Called when a local transaction has completed a commit() and should perform + * any actions associated with the transaction (e.g. a filesystem Directory node + * needs to link or unlink a file). The default action is to create a new + * version record in the Node. If this method returns false, then the + * transaction is rolled back. + * @return false if the transaction should be rolled back. + */ + boolean localPostcommit(); + + /** + * Called when a remotely initiated transaction completes. This should be used + * to update a local version of a remote Node or respond to a transaction that + * has already occurred remotely. This will typically update local indices to + * reflect the changes that have occurred remotely. + */ + void remotePostcommit(); + }; + + /** + * The canonical implementation of the Backend interface for an AbstractNode. + * Specializing or extending this class allows a subclass to provide specific + * behaviors for certain private functionality. + * @author leei + */ + protected static class BackendImpl implements Backend { + private final AbstractNode node; + protected BackendImpl (AbstractNode node) { + this.node = node; + } + + public final AbstractNode node () { return node; } + + public boolean localPrecommit() { + return true; + } + + public boolean localPostcommit() { + // TODO Generate new version record for this Node + return true; + } + + public void remotePostcommit() { + // Empty. + } + } + + protected final Backend backend; + + protected Backend createBackend () { + return new BackendImpl (this); + } + protected AbstractNode(AbstractRepository repo, NodeType type, Name id) { this.repo = repo; this.type = type; + this.backend = createBackend(); setID(id); } Index: GeneratedNode.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/framework/GeneratedNode.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** GeneratedNode.java 15 Nov 2004 19:21:57 -0000 1.5 --- GeneratedNode.java 8 Jan 2005 00:51:12 -0000 1.6 *************** *** 17,21 **** import org.nodal.util.Name; ! import storage.memory.memContent; /** --- 17,21 ---- import org.nodal.util.Name; ! import storage.memory.AbstractContent; /** *************** *** 48,57 **** if (nodeContent == null) { // Create returnable content ! memContent content = memContent.create(type); ! nodeContent = content.nodeContent(this, repo.backend, null); // Create and update content from generator Capability cap = CapabilityImpl.createOwner(repo.user()); ! updateEditor = content.nodeContent(this, repo.backend, cap).edit(); updateContent(updateEditor); } else if (outofdate()) { --- 48,57 ---- if (nodeContent == null) { // Create returnable content ! AbstractContent content = AbstractContent.create(type); ! nodeContent = content.nodeContent(backend, repo.backend, null); // Create and update content from generator Capability cap = CapabilityImpl.createOwner(repo.user()); ! updateEditor = content.nodeContent(backend, repo.backend, cap).edit(); updateContent(updateEditor); } else if (outofdate()) { Index: AbstractRepository.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/framework/AbstractRepository.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** AbstractRepository.java 18 Nov 2004 23:29:18 -0000 1.18 --- AbstractRepository.java 8 Jan 2005 00:51:12 -0000 1.19 *************** *** 9,12 **** --- 9,13 ---- package storage.framework; + import java.io.IOException; import java.io.OutputStream; import org.nodal.Repository; *************** *** 60,68 **** protected final Path path; ! protected AbstractBackend backend; ! protected AbstractRepository(Path path, AbstractBackend services) { this.path = path; ! this.backend = services; this.repoIDMap = new CacheMap(); --- 61,71 ---- protected final Path path; ! protected final Backend backend; ! protected abstract Backend createBackend () throws IOException; ! ! protected AbstractRepository(Path path) throws IOException { this.path = path; ! this.backend = createBackend(); this.repoIDMap = new CacheMap(); *************** *** 74,89 **** } - protected final void setBackend(AbstractBackend services) { - // Ensure that it is only set once. - if (this.backend != null && this.backend != services) { - throw new RuntimeException(this + ".backend initialized twice"); - } - this.backend = services; - } - - public final AbstractBackend getBackend() { - return backend; - } - public Repository login(String user, String key) { // FIXME: stub --- 77,80 ---- *************** *** 249,253 **** * @return the Repository providing these backend */ ! Repository repository(); /** --- 240,244 ---- * @return the Repository providing these backend */ ! AbstractRepository repository(); /** *************** *** 283,286 **** --- 274,284 ---- */ void addEdge (NodeContent src, Object property, Node dest); + + /** + * Recover the Node named nid. + * @param nid the Name of a Node in this Repository + * @return the Node with Name nid or null if unavailable. + */ + Node recoverNodeNamed(Name nid); } *************** *** 296,300 **** protected final Path path; protected final Namespace ns; ! private int nextIdx; protected AbstractBackend(AbstractRepository repo, Path path, Store store) { --- 294,298 ---- protected final Path path; protected final Namespace ns; ! protected int nextIdx; protected AbstractBackend(AbstractRepository repo, Path path, Store store) { *************** *** 354,358 **** * Return the Repository associated with these backend. */ ! public final Repository repository() { return repo; } --- 352,356 ---- * Return the Repository associated with these backend. */ ! public final AbstractRepository repository() { return repo; } |
From: Lee I. <le...@us...> - 2005-01-08 00:51:22
|
Update of /cvsroot/nodal/nodal/j-src/org/nodal/model In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv969/org/nodal/model Modified Files: Txn.java Log Message: Major refactoring around AbstractNode.Backend interface. Index: Txn.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/model/Txn.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Txn.java 9 Jan 2004 00:42:50 -0000 1.5 --- Txn.java 8 Jan 2005 00:51:12 -0000 1.6 *************** *** 59,62 **** --- 59,66 ---- Set subjects (); + interface TxnOpList extends List { + + } + /** * A List of the TxnOp entries that share the same subject in this |
From: Lee I. <le...@us...> - 2005-01-04 18:21:53
|
Update of /cvsroot/nodal/nodal/j-src/storage/framework In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16538/storage/framework Modified Files: SimpleTxnManager.java DocFromURL.java DocFromNode.java DirFromNode.java StreamBasedNode.java Added Files: SBNURLLoader.java SBNStreamLoader.java Removed Files: SBNStreamServices.java SBNURLServices.java Log Message: Name changes in storage.framework for clarity. * SBNStreamServices -> SBNStreamLoader * SBNURLServices -> SBNURLLoader * etc. Index: DocFromNode.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/framework/DocFromNode.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** DocFromNode.java 5 May 2004 03:24:35 -0000 1.15 --- DocFromNode.java 4 Jan 2005 18:20:52 -0000 1.16 *************** *** 67,71 **** AbstractDocument doc = getDocument(path); if (doc == null) { ! doc = createDoc(path, node); } return doc; --- 67,71 ---- AbstractDocument doc = getDocument(path); if (doc == null) { ! doc = createFromDocNode(path, node); } return doc; *************** *** 87,91 **** Document doc = getDocument(path); if (doc == null) { ! doc = createDoc(path, node, format); } return doc; --- 87,91 ---- Document doc = getDocument(path); if (doc == null) { ! doc = createFromDocNodeAndFormat(path, node, format); } return doc; *************** *** 101,105 **** * @return a new DocFromNode that uses this Node and Path to represent it */ ! public static DocFromNode createDoc(Path path, NodeContent node) { DocFromNode doc = null; Type type = node.nodeType(); --- 101,105 ---- * @return a new DocFromNode that uses this Node and Path to represent it */ ! public static DocFromNode createFromDocNode(Path path, NodeContent node) { DocFromNode doc = null; Type type = node.nodeType(); *************** *** 126,130 **** * @return a new DocFromNode that uses this Node to represent it */ ! public static DocFromNode createDoc( Path path, NodeContent node, --- 126,130 ---- * @return a new DocFromNode that uses this Node to represent it */ ! public static DocFromNode createFromDocNodeAndFormat( Path path, NodeContent node, Index: DocFromURL.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/framework/DocFromURL.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** DocFromURL.java 2 Jun 2004 19:02:05 -0000 1.5 --- DocFromURL.java 4 Jan 2005 18:20:52 -0000 1.6 *************** *** 25,33 **** * @param format */ ! public static Document createDoc(AbstractRepository repo, Path path) throws IOException { URL url = new URL(path.toURLString()); ! SBNURLServices services = new SBNURLServices(repo, path, url); ! return StreamBasedNode.createStreamDoc(services); } } --- 25,33 ---- * @param format */ ! public static Document loadDocument(AbstractRepository repo, Path path) throws IOException { URL url = new URL(path.toURLString()); ! SBNURLLoader services = new SBNURLLoader(repo, path, url); ! return StreamBasedNode.loadDocument(services); } } Index: SimpleTxnManager.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/framework/SimpleTxnManager.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** SimpleTxnManager.java 9 Dec 2004 19:26:21 -0000 1.5 --- SimpleTxnManager.java 4 Jan 2005 18:20:52 -0000 1.6 *************** *** 32,61 **** */ public final class SimpleTxnManager implements TxnManager { ! public static TxnManager create(AbstractRepository.Backend services, TxnBuilderFactory factory) { ! return new SimpleTxnManager(services, factory); } ! public static TxnManager create(AbstractRepository.Backend services) { ! return create (services, SimpleTxnBuilder.factory()); } ! private final AbstractRepository.Backend services; private final TxnBuilderFactory factory; ! private TxnBuilder current; ! private SimpleTxnManager(AbstractRepository.Backend services, TxnBuilderFactory factory) { ! this.services = services; this.factory = factory; ! this.current = factory.create(this); } public Repository repository() { ! return services.repository(); } public void notifyCommitted(TxnManager.Resolver resolver) { ! services.commitTxn(resolver); ! this.current = factory.create(this); } --- 32,73 ---- */ public final class SimpleTxnManager implements TxnManager { ! /** ! * Create a SimpleTxnManager by providing a Backend from an AbstractRepository ! * and a TxnBuilderFactory. ! * @param repoBackend an AbstractRepository.Backend ! * @param factory a TxnBuilderFactory for creating TxnBuilder instances ! * @return a new SimpleTxnManager ! */ ! public static TxnManager create(AbstractRepository.Backend repoBackend, TxnBuilderFactory factory) { ! return new SimpleTxnManager(repoBackend, factory); } ! /** ! * Create a SimpleTxnManager by providing a Backend from an AbstractRepository. ! * @param repoBackend an AbstractRepository.Backend ! * @return a new SimpleTxnManager ! */ ! public static TxnManager create(AbstractRepository.Backend repoBackend) { ! return create (repoBackend, SimpleTxnBuilder.factory()); } ! private final AbstractRepository.Backend repoBackend; private final TxnBuilderFactory factory; ! private TxnBuilder currentBuilder; ! private SimpleTxnManager(AbstractRepository.Backend repoBackend, TxnBuilderFactory factory) { ! this.repoBackend = repoBackend; this.factory = factory; ! this.currentBuilder = factory.create(this); } public Repository repository() { ! return repoBackend.repository(); } public void notifyCommitted(TxnManager.Resolver resolver) { ! repoBackend.commitTxn(resolver); ! this.currentBuilder = factory.create(this); } *************** *** 66,70 **** */ public Txn txn() { ! return current.txn(); } --- 78,82 ---- */ public Txn txn() { ! return currentBuilder.txn(); } *************** *** 76,80 **** */ public TxnOp addOpCreate(NodeContent newNode, Node ctx, NodeType t) { ! return current.addOpCreate(newNode, ctx, t); } --- 88,92 ---- */ public TxnOp addOpCreate(NodeContent newNode, Node ctx, NodeType t) { ! return currentBuilder.addOpCreate(newNode, ctx, t); } *************** *** 86,90 **** */ public TxnOp addOpClone(NodeContent newNode, Node ctx, Node n) { ! return current.addOpClone(newNode, ctx, n); } --- 98,102 ---- */ public TxnOp addOpClone(NodeContent newNode, Node ctx, Node n) { ! return currentBuilder.addOpClone(newNode, ctx, n); } *************** *** 96,100 **** */ public TxnOp addOpAnchor(AnchorNode newNode, Path path, Path context) { ! return current.addOpAnchor(newNode, path, context); } --- 108,112 ---- */ public TxnOp addOpAnchor(AnchorNode newNode, Path path, Path context) { ! return currentBuilder.addOpAnchor(newNode, path, context); } *************** *** 106,110 **** */ public TxnOp addOpAnchor(AnchorNode newNode, Path absolute) { ! return current.addOpAnchor(newNode, absolute); } --- 118,122 ---- */ public TxnOp addOpAnchor(AnchorNode newNode, Path absolute) { ! return currentBuilder.addOpAnchor(newNode, absolute); } *************** *** 116,120 **** */ public TxnOp addOpSetValue(NodeContent subj, Object k, Object v) { ! return current.addOpSetValue(subj, k, v); } --- 128,132 ---- */ public TxnOp addOpSetValue(NodeContent subj, Object k, Object v) { ! return currentBuilder.addOpSetValue(subj, k, v); } *************** *** 126,130 **** */ public TxnOp addOpRemove(NodeContent subj, Object k) { ! return current.addOpRemove(subj, k); } --- 138,142 ---- */ public TxnOp addOpRemove(NodeContent subj, Object k) { ! return currentBuilder.addOpRemove(subj, k); } *************** *** 136,140 **** */ public TxnOp addOpSetField(NodeContent subj, Name n, Object v) { ! return current.addOpSetField(subj, n, v); } --- 148,152 ---- */ public TxnOp addOpSetField(NodeContent subj, Name n, Object v) { ! return currentBuilder.addOpSetField(subj, n, v); } *************** *** 147,151 **** public TxnOp addOpReplaceRange(NodeContent subj, int startIndex, int endIndex, Object v) { ! return current.addOpReplaceRange(subj, startIndex, endIndex, v); } --- 159,163 ---- public TxnOp addOpReplaceRange(NodeContent subj, int startIndex, int endIndex, Object v) { ! return currentBuilder.addOpReplaceRange(subj, startIndex, endIndex, v); } *************** *** 157,161 **** */ public TxnOp addOpRemoveRange(NodeContent subj, int startIndex, int endIndex) { ! return current.addOpRemoveRange(subj, startIndex, endIndex); } --- 169,173 ---- */ public TxnOp addOpRemoveRange(NodeContent subj, int startIndex, int endIndex) { ! return currentBuilder.addOpRemoveRange(subj, startIndex, endIndex); } *************** *** 167,171 **** */ public TxnOp addOpInsertBefore(NodeContent subj, int index, Object v) { ! return current.addOpInsertBefore(subj, index, v); } --- 179,183 ---- */ public TxnOp addOpInsertBefore(NodeContent subj, int index, Object v) { ! return currentBuilder.addOpInsertBefore(subj, index, v); } *************** *** 177,181 **** */ public TxnOp addOpInsertAfter(NodeContent subj, int index, Object v) { ! return current.addOpInsertAfter(subj, index, v); } --- 189,193 ---- */ public TxnOp addOpInsertAfter(NodeContent subj, int index, Object v) { ! return currentBuilder.addOpInsertAfter(subj, index, v); } *************** *** 187,191 **** */ public TxnOp addOpAdd(NodeContent subj, Object v) { ! return current.addOpAdd(subj, v); } --- 199,203 ---- */ public TxnOp addOpAdd(NodeContent subj, Object v) { ! return currentBuilder.addOpAdd(subj, v); } *************** *** 196,200 **** */ public boolean retractOp(TxnOp op) { ! return current.retractOp(op); } --- 208,212 ---- */ public boolean retractOp(TxnOp op) { ! return currentBuilder.retractOp(op); } *************** *** 205,209 **** */ public boolean commit() { ! return current.commit(); } ! } --- 217,221 ---- */ public boolean commit() { ! return currentBuilder.commit(); } ! } \ No newline at end of file Index: DirFromNode.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/framework/DirFromNode.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** DirFromNode.java 9 Dec 2004 19:26:21 -0000 1.16 --- DirFromNode.java 4 Jan 2005 18:20:52 -0000 1.17 *************** *** 150,154 **** Path newPath = Paths.createDirElementOp(name).applyTo(path()); editor.setValue(name).set(newNode); ! return createDoc(newPath, newNode, format()).asDirectory(); } catch (ConstraintFailure e) { throw new RuntimeException(e); --- 150,154 ---- Path newPath = Paths.createDirElementOp(name).applyTo(path()); editor.setValue(name).set(newNode); ! return createFromDocNodeAndFormat(newPath, newNode, format()).asDirectory(); } catch (ConstraintFailure e) { throw new RuntimeException(e); *************** *** 169,173 **** Path newPath = Paths.createDirElementOp(name).applyTo(path()); editor.setValue(name).set(newNode); ! return createDoc(newPath, newNode, format); } catch (ConstraintFailure e) { throw new RuntimeException(e); --- 169,173 ---- Path newPath = Paths.createDirElementOp(name).applyTo(path()); editor.setValue(name).set(newNode); ! return createFromDocNodeAndFormat(newPath, newNode, format); } catch (ConstraintFailure e) { throw new RuntimeException(e); *************** *** 200,204 **** try { Path newPath = Paths.createDirElementOp(name).applyTo(path()); ! return createDoc(newPath, doc.docNode().content(), doc.format()); } catch (Failure e) { throw new RuntimeException(e); --- 200,204 ---- try { Path newPath = Paths.createDirElementOp(name).applyTo(path()); ! return createFromDocNodeAndFormat(newPath, doc.docNode().content(), doc.format()); } catch (Failure e) { throw new RuntimeException(e); *************** *** 360,362 **** return "Directory<" + path().toURLString() + ">"; } ! } --- 360,362 ---- return "Directory<" + path().toURLString() + ">"; } ! } \ No newline at end of file --- NEW FILE: SBNStreamLoader.java --- /* * Distributed under the Apache Software License, Version 1.1 (see below, or the * file LICENSE for terms and conditions) * * Copyright (c) 2004 University of British Columbia. All rights reserved. * * Created on Feb 20, 2004 by leei */ package storage.framework; import java.io.IOException; import java.io.InputStream; import java.util.Map; import org.nodal.model.Node; import org.nodal.model.NodeFactory; import org.nodal.nav.Path; import org.nodal.util.Name; public class SBNStreamLoader extends BasicNodeFactory implements StreamBasedNode.Loader { protected String mimeType; protected final InputStream stream; protected final Path path; protected final AbstractRepository.Backend svc; protected boolean reloading; public SBNStreamLoader(AbstractRepository.Backend svc, Path path, InputStream stream, String mimeType) throws IOException { super(svc, svc.txnManager()); this.svc = svc; this.path = path; this.stream = stream; this.mimeType = mimeType; this.reloading = false; } public String mimeType() { return mimeType; } public void setReloading (boolean reloading) { this.reloading = reloading; } /* * (non-Javadoc) * * @see storage.framework.StreamBasedNode.Loader#repoServices() */ public AbstractRepository.Backend repoBackend() { return svc; } /* * (non-Javadoc) * * @see storage.framework.StreamBasedNode.Loader#path() */ public Path path() { return path; } /* * (non-Javadoc) * * @see storage.framework.StreamBasedNode.Loader#inputStream() */ public InputStream inputStream() { return stream; } /* * (non-Javadoc) * * @see storage.framework.StreamBasedNode.Loader#nodeFactory() */ public NodeFactory nodeFactory() { return this; } /* (non-Javadoc) * @see storage.framework.StreamBasedNode.Loader#nidList() */ public Map getNIDMap() { return null; } /* (non-Javadoc) * @see storage.framework.StreamBasedNode.Loader#nidList() */ public void saveNIDMap(Map map) { } /* (non-Javadoc) * @see storage.framework.StreamBasedNode.Loader#renameNode(org.nodal.model.Node, org.nodal.util.Name) */ public boolean renameNode(Node node, Name nid) { return false; } } Index: StreamBasedNode.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/framework/StreamBasedNode.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** StreamBasedNode.java 16 Nov 2004 19:25:35 -0000 1.15 --- StreamBasedNode.java 4 Jan 2005 18:20:52 -0000 1.16 *************** *** 39,43 **** public class StreamBasedNode extends ProxyNode implements Node { private NodeContent node; ! private LoadServices services; private DocumentFormat format; --- 39,43 ---- public class StreamBasedNode extends ProxyNode implements Node { private NodeContent node; ! private Loader loader; private DocumentFormat format; *************** *** 49,60 **** * @author leei */ ! public interface LoadServices { /** ! * Notify this set of LoadServices that we are reloading a Document with ! * known Node identities. * * @param reloading * a boolean establishing whether or not we are reloading a ! * Document with these LoadServices */ void setReloading(boolean reloading); --- 49,60 ---- * @author leei */ ! public interface Loader { /** ! * Notify this Loader that we are reloading a Document with known Node ! * identities. * * @param reloading * a boolean establishing whether or not we are reloading a ! * Document with these Loader */ void setReloading(boolean reloading); *************** *** 119,140 **** /** ! * Create a Document from a given set of StreamBasedNode.LoadServices. * ! * @param backend ! * a set of StreamBasedNode.LoadServices that can define a Document ! * creation environment. */ ! public static Document createStreamDoc(LoadServices services) ! throws IOException { ! NodeContent.Editor node = StreamBasedNode.createDocStreamNode(services); ! DocumentFormat format = DocumentFormat.Registry.get(services.mimeType()); ! return DocFromNode.createDoc(services.path(), node, format); } ! public static RecordNode.Editor createDocStreamNode(LoadServices services) { try { ! RecordNode.Editor docNode = AbstractDocument.createDocumentNode(services ! .nodeFactory(), services.mimeType()); ! Node root = new StreamBasedNode(services); docNode.setField("root").setNode(root); return docNode; --- 119,147 ---- /** ! * Load Document from a given StreamBasedNode.Loader. * ! * @param loader ! * a StreamBasedNode.Loader that can define a Document creation ! * environment. */ ! public static Document loadDocument(Loader loader) throws IOException { ! NodeContent.Editor node = StreamBasedNode.rootFromLoader(loader); ! DocumentFormat format = DocumentFormat.Registry.get(loader.mimeType()); ! return DocFromNode.createFromDocNodeAndFormat(loader.path(), node, format); } ! /** ! * Create a Document.root Node that will be associated with a given Loader. ! * ! * @param loader ! * a StreamBasedNode.Loader that defines a Document loading ! * environment ! * @return the root Node of the Document specified ! */ ! public static RecordNode.Editor rootFromLoader(Loader loader) { try { ! RecordNode.Editor docNode = AbstractDocument.createDocumentNode(loader ! .nodeFactory(), loader.mimeType()); ! Node root = new StreamBasedNode(loader); docNode.setField("root").setNode(root); return docNode; *************** *** 144,149 **** } ! private StreamBasedNode(LoadServices services) { ! this.services = services; } --- 151,156 ---- } ! private StreamBasedNode(Loader loader) { ! this.loader = loader; } *************** *** 154,158 **** */ public Repository repository() { ! return services.repoBackend().repository(); } --- 161,165 ---- */ public Repository repository() { ! return loader.repoBackend().repository(); } *************** *** 206,225 **** private DocumentFormat format() { if (format == null) { ! format = DocumentFormat.Registry.get(services.mimeType()); } return format; } protected NodeContent loadStream() throws IOException { DocumentFormat.Decoder dec = format().decoder(); // This may be necessary to establish context ! dec.setURI(services.path().toURLString()); // Load and decode the document graph ! InputStream in = services.inputStream(); try { ! Map nidMap = services.getNIDMap(); boolean restoring = (nidMap != null); ! services.setReloading(restoring); ! NodeFactory factory = services.nodeFactory(); Node root = dec.decode(in, factory); // Restore the correct set of Node IDs if possible --- 213,242 ---- private DocumentFormat format() { if (format == null) { ! format = DocumentFormat.Registry.get(loader.mimeType()); } return format; } + /** + * Load a document root Node from a stream. Checks to determine whether this + * is a reload (in which case we must make an effort to restore previously + * allocated Node ids) or a first time load (in which case Node ids are + * created). + * + * @return The contents of the root Node + * @throws IOException + * if reading the stream produces one + */ protected NodeContent loadStream() throws IOException { DocumentFormat.Decoder dec = format().decoder(); // This may be necessary to establish context ! dec.setURI(loader.path().toURLString()); // Load and decode the document graph ! InputStream in = loader.inputStream(); try { ! Map nidMap = loader.getNIDMap(); boolean restoring = (nidMap != null); ! loader.setReloading(restoring); ! NodeFactory factory = loader.nodeFactory(); Node root = dec.decode(in, factory); // Restore the correct set of Node IDs if possible *************** *** 239,243 **** --- 256,264 ---- /** + * Save a record of the Path->Node.id mapping. This is used to restore Node + * ids when the Document is reloaded at a later date. + * * @param root + * the root Node of the Document * @throws IOException */ *************** *** 255,261 **** nidMap.put(path, node.id()); } ! services.saveNIDMap(nidMap); } private void restoreNIDs(Map nidMap, Node root) throws IOException { GraphIterator iter = new GraphIterator(root); --- 276,292 ---- nidMap.put(path, node.id()); } ! loader.saveNIDMap(nidMap); } + /** + * Restore the Node ids of a set of Nodes given the Path->Node.id mapping as + * saved by {@link saveNIDs(Node)}. + * + * @param nidMap + * the Map from Path->Node.id + * @param root + * the root Node of the Document + * @throws IOException + */ private void restoreNIDs(Map nidMap, Node root) throws IOException { GraphIterator iter = new GraphIterator(root); *************** *** 272,279 **** defer = new HashMap(); } ! System.out.println ("Defer rename "+path+" => "+node); defer.put(path, node); } else { ! services.renameNode(node, nid); nidMap.remove(path); } --- 303,310 ---- defer = new HashMap(); } ! System.out.println("Defer rename " + path + " => " + node); defer.put(path, node); } else { ! loader.renameNode(node, nid); nidMap.remove(path); } *************** *** 290,294 **** Name nid = (Name) nidMap.get(path); if (nid != null) { ! services.renameNode(node, nid); nidMap.remove(path); changed = true; --- 321,325 ---- Name nid = (Name) nidMap.get(path); if (nid != null) { ! loader.renameNode(node, nid); nidMap.remove(path); changed = true; *************** *** 306,309 **** --- 337,345 ---- } + /** + * The target Node of this proxy. This StreamBasedNode will initially leave + * the target Node unspecified and then create and initialize it only when + * this method is called. + */ protected Node target() { // TODO Check for need to update --- SBNStreamServices.java DELETED --- --- NEW FILE: SBNURLLoader.java --- /* * Distributed under the Apache Software License, Version 1.1 * (see below, or the file LICENSE for terms and conditions) * * Copyright (c) 2004 University of British Columbia. All rights reserved. * * Created on Feb 20, 2004 by leei */ package storage.framework; import java.io.IOException; import java.net.URL; import java.net.URLConnection; import org.nodal.nav.Path; public class SBNURLLoader extends SBNStreamLoader { URL url; public SBNURLLoader(AbstractRepository repo, Path path, URL url) throws IOException { super (repo.backend, path, url.openConnection().getInputStream(), null); this.url = url; } public String mimeType() { if (mimeType == null) { String name = url.getPath(); mimeType = StreamBasedNode.guessContentTypeFromName(name); //System.out.println(name + ": MIME guess " + mimeType); if (mimeType == null) { try { mimeType = URLConnection.guessContentTypeFromStream(stream); //System.out.println(name + ": MIME guess " + mimeType); } catch (IOException e) { // TODO Handle inputStream read failure ; } } if (mimeType == null) { mimeType = "application/octet-stream"; //System.out.println(name + ": MIME default " + mimeType); } } return mimeType; } } --- SBNURLServices.java DELETED --- |
From: Lee I. <le...@us...> - 2005-01-04 18:21:48
|
Update of /cvsroot/nodal/nodal/j-src/storage/http In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16538/storage/http Modified Files: HttpRepository.java Log Message: Name changes in storage.framework for clarity. * SBNStreamServices -> SBNStreamLoader * SBNURLServices -> SBNURLLoader * etc. Index: HttpRepository.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/http/HttpRepository.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** HttpRepository.java 18 Nov 2004 23:29:18 -0000 1.17 --- HttpRepository.java 4 Jan 2005 18:20:53 -0000 1.18 *************** *** 25,29 **** import storage.framework.AbstractRepository; ! import storage.framework.SBNStreamServices; import storage.framework.StreamBasedNode; import storage.framework.TxnManager; --- 25,29 ---- import storage.framework.AbstractRepository; ! import storage.framework.SBNStreamLoader; import storage.framework.StreamBasedNode; import storage.framework.TxnManager; *************** *** 124,130 **** System.out.println(" : content-length: " + conn.getContentLength()); ! SBNStreamServices sbnServices = ! new SBNStreamServices (backend, abs, conn.getInputStream(), conn.getContentType()); ! return StreamBasedNode.createStreamDoc(sbnServices); } catch (IOException e) { return null; --- 124,130 ---- System.out.println(" : content-length: " + conn.getContentLength()); ! SBNStreamLoader sbnLoader = ! new SBNStreamLoader (backend, abs, conn.getInputStream(), conn.getContentType()); ! return StreamBasedNode.loadDocument(sbnLoader); } catch (IOException e) { return null; |
From: Lee I. <le...@us...> - 2005-01-04 18:21:45
|
Update of /cvsroot/nodal/nodal/j-src/storage/jar In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16538/storage/jar Modified Files: JarRepository.java Log Message: Name changes in storage.framework for clarity. * SBNStreamServices -> SBNStreamLoader * SBNURLServices -> SBNURLLoader * etc. Index: JarRepository.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/jar/JarRepository.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** JarRepository.java 18 Nov 2004 23:29:18 -0000 1.13 --- JarRepository.java 4 Jan 2005 18:20:54 -0000 1.14 *************** *** 110,114 **** System.out.println(this + ".document(" + rel + ") = " + abs); try { ! return DocFromURL.createDoc(this, abs); } catch (MalformedURLException e) { throw new Path.Failure("Malformed URL: " + abs); --- 110,114 ---- System.out.println(this + ".document(" + rel + ") = " + abs); try { ! return DocFromURL.loadDocument(this, abs); } catch (MalformedURLException e) { throw new Path.Failure("Malformed URL: " + abs); |
From: Lee I. <le...@us...> - 2005-01-04 18:21:43
|
Update of /cvsroot/nodal/nodal/j-src/storage/file In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16538/storage/file Modified Files: FileRepository.java FileDocument.java FileDirMap.java Log Message: Name changes in storage.framework for clarity. * SBNStreamServices -> SBNStreamLoader * SBNURLServices -> SBNURLLoader * etc. Index: FileDirMap.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/file/FileDirMap.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** FileDirMap.java 18 Nov 2004 23:29:17 -0000 1.5 --- FileDirMap.java 4 Jan 2005 18:20:50 -0000 1.6 *************** *** 74,78 **** } else { // No match: Document added. ! Document doc = FileDocument.create(fileRepo, f); mapEditor.setValue(f.getName()).setNode(doc.docNode()); } --- 74,78 ---- } else { // No match: Document added. ! Document doc = FileDocument.loadDocument(fileRepo, f); mapEditor.setValue(f.getName()).setNode(doc.docNode()); } *************** *** 83,87 **** for (Iterator i = files.iterator(); i.hasNext();) { File f = (File) i.next(); ! Document doc = FileDocument.create(fileRepo, f); mapEditor.removeKey(doc.docNode()); } --- 83,87 ---- for (Iterator i = files.iterator(); i.hasNext();) { File f = (File) i.next(); ! Document doc = FileDocument.loadDocument(fileRepo, f); mapEditor.removeKey(doc.docNode()); } Index: FileRepository.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/file/FileRepository.java,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** FileRepository.java 18 Nov 2004 23:29:16 -0000 1.30 --- FileRepository.java 4 Jan 2005 18:20:50 -0000 1.31 *************** *** 145,149 **** FileNode fnode = (FileNode) subj; if (fileSet.add (fnode.fileContext)) { ! Document doc = FileDocument.create(frepo, fnode.fileContext); System.out.println("Save document "+doc); } --- 145,149 ---- FileNode fnode = (FileNode) subj; if (fileSet.add (fnode.fileContext)) { ! Document doc = FileDocument.loadDocument(frepo, fnode.fileContext); System.out.println("Save document "+doc); } *************** *** 235,239 **** String fname = url.getPath(); File f = new File(fname); ! Document doc = FileDocument.create(this, f); return doc; } catch (MalformedURLException e) { --- 235,239 ---- String fname = url.getPath(); File f = new File(fname); ! Document doc = FileDocument.loadDocument(this, f); return doc; } catch (MalformedURLException e) { Index: FileDocument.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/file/FileDocument.java,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** FileDocument.java 16 Nov 2004 19:25:36 -0000 1.21 --- FileDocument.java 4 Jan 2005 18:20:50 -0000 1.22 *************** *** 54,58 **** * @return a Document associated with this File or null if doesn't exist */ ! static Document create(FileRepository repo, File file) { // Proceed only with canonical files. if (false) { --- 54,58 ---- * @return a Document associated with this File or null if doesn't exist */ ! static Document loadDocument(FileRepository repo, File file) { // Proceed only with canonical files. if (false) { *************** *** 87,91 **** LoadServices services = new LoadServices(repo, file); NodeContent.Editor docNode = StreamBasedNode ! .createDocStreamNode(services); doc = DocFromNode.reuseOrCreateDoc(services.path(), docNode); } --- 87,91 ---- LoadServices services = new LoadServices(repo, file); NodeContent.Editor docNode = StreamBasedNode ! .rootFromLoader(services); doc = DocFromNode.reuseOrCreateDoc(services.path(), docNode); } *************** *** 96,100 **** /** ! * An implementation of StreamBasedNode.LoadServices based on a File in a * FileRepository. * --- 96,100 ---- /** ! * An implementation of StreamBasedNode.Loader based on a File in a * FileRepository. * *************** *** 105,109 **** private static final class LoadServices implements ! StreamBasedNode.LoadServices { private InputStream inputStream; private FileRepository repo; --- 105,109 ---- private static final class LoadServices implements ! StreamBasedNode.Loader { private InputStream inputStream; private FileRepository repo; *************** *** 179,183 **** * (non-Javadoc) * ! * @see storage.framework.StreamBasedDocument.LoadServices#inputStream() */ public InputStream inputStream() { --- 179,183 ---- * (non-Javadoc) * ! * @see storage.framework.StreamBasedDocument.Loader#inputStream() */ public InputStream inputStream() { *************** *** 195,199 **** * (non-Javadoc) * ! * @see storage.framework.StreamBasedDocument.LoadServices#mimeType() */ public String mimeType() { --- 195,199 ---- * (non-Javadoc) * ! * @see storage.framework.StreamBasedDocument.Loader#mimeType() */ public String mimeType() { *************** *** 244,248 **** * (non-Javadoc) * ! * @see storage.framework.StreamBasedNode.LoadServices#nidList() */ public Map getNIDMap() { --- 244,248 ---- * (non-Javadoc) * ! * @see storage.framework.StreamBasedNode.Loader#nidList() */ public Map getNIDMap() { *************** *** 276,280 **** * (non-Javadoc) * ! * @see storage.framework.StreamBasedNode.LoadServices#renameNode(org.nodal.model.Node, * org.nodal.util.Name) */ --- 276,280 ---- * (non-Javadoc) * ! * @see storage.framework.StreamBasedNode.Loader#renameNode(org.nodal.model.Node, * org.nodal.util.Name) */ |
From: Lee I. <le...@us...> - 2005-01-04 18:21:36
|
Update of /cvsroot/nodal/nodal/j-src/storage/trans In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16538/storage/trans Modified Files: TransientRepository.java Log Message: Name changes in storage.framework for clarity. * SBNStreamServices -> SBNStreamLoader * SBNURLServices -> SBNURLLoader * etc. Index: TransientRepository.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/trans/TransientRepository.java,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** TransientRepository.java 18 Nov 2004 23:29:18 -0000 1.36 --- TransientRepository.java 4 Jan 2005 18:20:51 -0000 1.37 *************** *** 144,148 **** try { Path baseDir = path().apply("/"); ! fs = DocFromNode.createDoc(baseDir, fsNode).asDirectory(); } catch (Failure e) { throw new RuntimeException(e); --- 144,148 ---- try { Path baseDir = path().apply("/"); ! fs = DocFromNode.createFromDocNode(baseDir, fsNode).asDirectory(); } catch (Failure e) { throw new RuntimeException(e); |
From: Lee I. <le...@us...> - 2005-01-04 18:21:14
|
Update of /cvsroot/nodal/nodal/j-src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16538 Modified Files: .cvsignore Log Message: Name changes in storage.framework for clarity. * SBNStreamServices -> SBNStreamLoader * SBNURLServices -> SBNURLLoader * etc. Index: .cvsignore =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/.cvsignore,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** .cvsignore 16 Apr 2002 02:19:53 -0000 1.1.1.1 --- .cvsignore 4 Jan 2005 18:20:53 -0000 1.2 *************** *** 1 **** --- 1,2 ---- build + nodal.vpp* |
From: Lee I. <le...@us...> - 2005-01-04 18:18:07
|
Update of /cvsroot/nodal/nodal/j-src/org/nodal/model In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15775/org/nodal/model Modified Files: TxnBuilder.java Log Message: Minor spelling correction in comment. Index: TxnBuilder.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/model/TxnBuilder.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** TxnBuilder.java 13 May 2004 23:22:24 -0000 1.4 --- TxnBuilder.java 4 Jan 2005 18:17:53 -0000 1.5 *************** *** 102,106 **** /** * Retract a TxnOp from this Txn. Fails if the TxnOp was not ! * produced by and addOp on this TxnBuilder. * @param op the TxnOp to be retracted * @return true if successful --- 102,106 ---- /** * Retract a TxnOp from this Txn. Fails if the TxnOp was not ! * produced by an addOp on this TxnBuilder. * @param op the TxnOp to be retracted * @return true if successful |
From: Lee I. <le...@us...> - 2004-12-09 19:28:03
|
Update of /cvsroot/nodal/nodal/j-src/org/nodal/util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12278/org/nodal/util Modified Files: FloatSeqUtil.java CharSeqUtil.java ByteSeqUtil.java SeqUtil.java LongSeqUtil.java IntSeqUtil.java BooleanSeqUtil.java DoubleSeqUtil.java ShortSeqUtil.java Log Message: Disambiguate SeqType -> Seq.SeqType Index: ShortSeqUtil.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/util/ShortSeqUtil.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** ShortSeqUtil.java 15 Jul 2004 04:47:57 -0000 1.10 --- ShortSeqUtil.java 9 Dec 2004 19:27:46 -0000 1.11 *************** *** 61,68 **** /** ! * Class implementing the conversion of charAt output to Object. */ private abstract static class BaseSeq extends NumSeq { ! public final SeqType type() { return SeqType.SHORT; } public final Object elementAt (int i) { --- 61,68 ---- /** ! * Class implementing the conversion of shortAt output to Object. */ private abstract static class BaseSeq extends NumSeq { ! public final Seq.SeqType type() { return Seq.SeqType.SHORT; } public final Object elementAt (int i) { *************** *** 73,76 **** --- 73,77 ---- str.append (shortAt (i)); } + public abstract short shortAt(int i); public final int intAt (int i) { return shortAt(i); } public final long longAt (int i) { return shortAt(i); } Index: CharSeqUtil.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/util/CharSeqUtil.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** CharSeqUtil.java 15 Jul 2004 04:47:57 -0000 1.11 --- CharSeqUtil.java 9 Dec 2004 19:27:46 -0000 1.12 *************** *** 63,67 **** private abstract static class BaseSeq implements CharSeq { ! public final SeqType type() { return SeqType.CHARACTER; } public Object elementAt (int i) { --- 63,67 ---- private abstract static class BaseSeq implements CharSeq { ! public final Seq.SeqType type() { return Seq.SeqType.CHARACTER; } public Object elementAt (int i) { Index: DoubleSeqUtil.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/util/DoubleSeqUtil.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** DoubleSeqUtil.java 15 Jul 2004 04:47:57 -0000 1.10 --- DoubleSeqUtil.java 9 Dec 2004 19:27:46 -0000 1.11 *************** *** 79,83 **** */ private abstract static class BaseSeq extends NumSeq { ! public final SeqType type() { return SeqType.DOUBLE; } public Object elementAt (int i) { --- 79,85 ---- */ private abstract static class BaseSeq extends NumSeq { ! public final Seq.SeqType type() { return Seq.SeqType.DOUBLE; } ! ! public abstract double doubleAt(int i); public Object elementAt (int i) { Index: LongSeqUtil.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/util/LongSeqUtil.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** LongSeqUtil.java 15 Jul 2004 04:47:57 -0000 1.6 --- LongSeqUtil.java 9 Dec 2004 19:27:46 -0000 1.7 *************** *** 87,94 **** */ private abstract static class BaseSeq extends NumSeq { ! public final SeqType type() { ! return SeqType.LONG; } public final double doubleAt (int i) { return longAt(i); --- 87,96 ---- */ private abstract static class BaseSeq extends NumSeq { ! public final Seq.SeqType type() { ! return Seq.SeqType.LONG; } + public abstract long longAt(int i); + public final double doubleAt (int i) { return longAt(i); Index: SeqUtil.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/util/SeqUtil.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** SeqUtil.java 15 Jul 2004 04:47:57 -0000 1.8 --- SeqUtil.java 9 Dec 2004 19:27:46 -0000 1.9 *************** *** 146,150 **** ArraySeq (Object[] a, int start) { arr = a; st = start; len = a.length-st; } ArraySeq (Object[] a, int start, int end) { arr = a; st = start; len = end-start+1; } ! public final SeqType type() { return SeqType.OBJECT; } public final int size () { return len; } public final Object elementAt (int i) { return arr[st+i]; } --- 146,150 ---- ArraySeq (Object[] a, int start) { arr = a; st = start; len = a.length-st; } ArraySeq (Object[] a, int start, int end) { arr = a; st = start; len = end-start+1; } ! public final Seq.SeqType type() { return Seq.SeqType.OBJECT; } public final int size () { return len; } public final Object elementAt (int i) { return arr[st+i]; } Index: FloatSeqUtil.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/util/FloatSeqUtil.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** FloatSeqUtil.java 15 Jul 2004 04:47:57 -0000 1.10 --- FloatSeqUtil.java 9 Dec 2004 19:27:38 -0000 1.11 *************** *** 64,68 **** */ private abstract static class BaseSeq extends NumSeq { ! public final SeqType type() { return SeqType.FLOAT; } public Object elementAt (int i) { --- 64,68 ---- */ private abstract static class BaseSeq extends NumSeq { ! public final Seq.SeqType type() { return Seq.SeqType.FLOAT; } public Object elementAt (int i) { *************** *** 70,73 **** --- 70,75 ---- } + public abstract float floatAt(int i); + public final double doubleAt (int i) { return floatAt(i); } Index: ByteSeqUtil.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/util/ByteSeqUtil.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** ByteSeqUtil.java 15 Jul 2004 04:47:57 -0000 1.12 --- ByteSeqUtil.java 9 Dec 2004 19:27:46 -0000 1.13 *************** *** 73,77 **** */ private abstract static class BaseSeq extends NumSeq { ! public final SeqType type() { return SeqType.BYTE; } public Object elementAt(int i) { --- 73,79 ---- */ private abstract static class BaseSeq extends NumSeq { ! public final Seq.SeqType type() { return Seq.SeqType.BYTE; } ! ! public abstract byte byteAt(int i); public Object elementAt(int i) { Index: IntSeqUtil.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/util/IntSeqUtil.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** IntSeqUtil.java 15 Jul 2004 04:47:57 -0000 1.11 --- IntSeqUtil.java 9 Dec 2004 19:27:46 -0000 1.12 *************** *** 71,76 **** */ private abstract static class BaseSeq extends NumSeq { ! public final SeqType type() { ! return SeqType.INT; } --- 71,76 ---- */ private abstract static class BaseSeq extends NumSeq { ! public final Seq.SeqType type() { ! return Seq.SeqType.INT; } *************** *** 79,82 **** --- 79,84 ---- } + public abstract int intAt(int i); + public final long longAt(int i) { return intAt(i); Index: BooleanSeqUtil.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/util/BooleanSeqUtil.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** BooleanSeqUtil.java 15 Jul 2004 04:47:57 -0000 1.11 --- BooleanSeqUtil.java 9 Dec 2004 19:27:46 -0000 1.12 *************** *** 44,48 **** private abstract static class BaseSeq implements BooleanSeq { ! public final SeqType type() { return SeqType.BOOLEAN; } public final Object elementAt (int i) { --- 44,48 ---- private abstract static class BaseSeq implements BooleanSeq { ! public final Seq.SeqType type() { return Seq.SeqType.BOOLEAN; } public final Object elementAt (int i) { |
From: Lee I. <le...@us...> - 2004-12-09 19:26:31
|
Update of /cvsroot/nodal/nodal/j-src/storage/framework In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11793/storage/framework Modified Files: ProxyNode.java Store.java DirFromNode.java SimpleTxnManager.java Log Message: Disambiguate various nested interfaces. Index: ProxyNode.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/framework/ProxyNode.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** ProxyNode.java 12 Nov 2004 19:23:24 -0000 1.15 --- ProxyNode.java 9 Dec 2004 19:26:21 -0000 1.16 *************** *** 227,231 **** } ! abstract public Editor edit(); public MapNode.Editor editMap() { --- 227,231 ---- } ! abstract public NodeContent.Editor edit(); public MapNode.Editor editMap() { *************** *** 387,391 **** public NodeContent.Editor edit() { ! return editMap(); } --- 387,391 ---- public NodeContent.Editor edit() { ! return editSet(); } Index: SimpleTxnManager.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/framework/SimpleTxnManager.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** SimpleTxnManager.java 16 Nov 2004 19:25:35 -0000 1.4 --- SimpleTxnManager.java 9 Dec 2004 19:26:21 -0000 1.5 *************** *** 55,59 **** } ! public void notifyCommitted(Resolver resolver) { services.commitTxn(resolver); this.current = factory.create(this); --- 55,59 ---- } ! public void notifyCommitted(TxnManager.Resolver resolver) { services.commitTxn(resolver); this.current = factory.create(this); *************** *** 207,209 **** return current.commit(); } ! } \ No newline at end of file --- 207,209 ---- return current.commit(); } ! } Index: Store.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/framework/Store.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Store.java 5 Nov 2003 23:39:53 -0000 1.2 --- Store.java 9 Dec 2004 19:26:21 -0000 1.3 *************** *** 37,41 **** */ boolean registerNode (Node node, UpdateNode updateCB); ! }; /** --- 37,41 ---- */ boolean registerNode (Node node, UpdateNode updateCB); ! } /** Index: DirFromNode.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/framework/DirFromNode.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** DirFromNode.java 2 Jun 2004 19:02:05 -0000 1.15 --- DirFromNode.java 9 Dec 2004 19:26:21 -0000 1.16 *************** *** 247,251 **** * @see org.nodal.filesystem.Directory#edit() */ ! public Editor edit() { return this; } --- 247,251 ---- * @see org.nodal.filesystem.Directory#edit() */ ! public Directory.Editor edit() { return this; } *************** *** 360,362 **** return "Directory<" + path().toURLString() + ">"; } ! } \ No newline at end of file --- 360,362 ---- return "Directory<" + path().toURLString() + ">"; } ! } |
From: Lee I. <le...@us...> - 2004-12-09 19:07:52
|
Update of /cvsroot/nodal/nodal/j-src/org/nodal/nav In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6990/org/nodal/nav Modified Files: DocLink.java SchemeOp.java Link.java FragmentOpLink.java FragmentLink.java Log Message: Disambiguate Failure -> Path.Failure Index: FragmentLink.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/nav/FragmentLink.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** FragmentLink.java 25 Aug 2004 22:07:45 -0000 1.19 --- FragmentLink.java 9 Dec 2004 19:07:33 -0000 1.20 *************** *** 85,89 **** } ! private Path extendFromParent(Path p) throws Failure { if (PARENT_LINK == null) { PARENT_LINK = Paths.FPARENT_OP.applyTo(DocLink.EMPTY_LINK); --- 85,89 ---- } ! private Path extendFromParent(Path p) throws Path.Failure { if (PARENT_LINK == null) { PARENT_LINK = Paths.FPARENT_OP.applyTo(DocLink.EMPTY_LINK); *************** *** 114,116 **** s.append(')'); } ! } \ No newline at end of file --- 114,116 ---- s.append(')'); } ! } Index: SchemeOp.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/nav/SchemeOp.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** SchemeOp.java 21 Jun 2004 20:06:20 -0000 1.10 --- SchemeOp.java 9 Dec 2004 19:07:33 -0000 1.11 *************** *** 38,42 **** throws Path.Failure { if (!(op instanceof SchemeOp)) { ! throw new Failure("SchemeLink must use a SchemeOp"); } return new SchemeLink(op); --- 38,42 ---- throws Path.Failure { if (!(op instanceof SchemeOp)) { ! throw new Path.Failure("SchemeLink must use a SchemeOp"); } return new SchemeLink(op); Index: DocLink.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/nav/DocLink.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** DocLink.java 2 Sep 2004 19:02:35 -0000 1.19 --- DocLink.java 9 Dec 2004 19:07:33 -0000 1.20 *************** *** 24,28 **** * if unable to create the specified Link */ ! static final Link create(Link parent, PathOperator op) throws Failure { return Link.create(parent, op, DocLink.CREATOR); } --- 24,28 ---- * if unable to create the specified Link */ ! static final Link create(Link parent, PathOperator op) throws Path.Failure { return Link.create(parent, op, DocLink.CREATOR); } *************** *** 87,96 **** try { return new EmptyLink(); ! } catch (Failure e) { return null; } } ! private EmptyLink() throws Failure { super(null, Paths.DHERE_OP); } --- 87,96 ---- try { return new EmptyLink(); ! } catch (Path.Failure e) { return null; } } ! private EmptyLink() throws Path.Failure { super(null, Paths.DHERE_OP); } *************** *** 104,108 **** } ! public Path apply(PathOperator op) throws Failure { return Link.create(this, op, DocLink.CREATOR); } --- 104,108 ---- } ! public Path apply(PathOperator op) throws Path.Failure { return Link.create(this, op, DocLink.CREATOR); } *************** *** 234,238 **** public Path difference(Path other) throws Path.Failure { if (isAbsolute() != other.isAbsolute()) { ! throw new Failure("Attempt to take difference of incompatible paths."); } if (this.isAncestorOf(other)) { --- 234,238 ---- public Path difference(Path other) throws Path.Failure { if (isAbsolute() != other.isAbsolute()) { ! throw new Path.Failure("Attempt to take difference of incompatible paths."); } if (this.isAncestorOf(other)) { *************** *** 304,308 **** } ! private Path extendFromParent(Path p) throws Failure { if (PARENT_LINK == null) { PARENT_LINK = Paths.DPARENT_OP.applyTo(Paths.EMPTY_PATH); --- 304,308 ---- } ! private Path extendFromParent(Path p) throws Path.Failure { if (PARENT_LINK == null) { PARENT_LINK = Paths.DPARENT_OP.applyTo(Paths.EMPTY_PATH); *************** *** 310,312 **** return PARENT_LINK.apply(Paths.ASDIR_OP).apply(p); } ! } \ No newline at end of file --- 310,312 ---- return PARENT_LINK.apply(Paths.ASDIR_OP).apply(p); } ! } Index: FragmentOpLink.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/nav/FragmentOpLink.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** FragmentOpLink.java 2 Sep 2004 19:02:35 -0000 1.3 --- FragmentOpLink.java 9 Dec 2004 19:07:33 -0000 1.4 *************** *** 26,30 **** * if unable to create the specified Link */ ! static final FragmentLink create(Link parent, PathOperator op) throws Failure { return (FragmentLink) Link.create(parent, op, FragmentOpLink.CREATOR); } --- 26,30 ---- * if unable to create the specified Link */ ! static final FragmentLink create(Link parent, PathOperator op) throws Path.Failure { return (FragmentLink) Link.create(parent, op, FragmentOpLink.CREATOR); } *************** *** 114,116 **** } } ! } \ No newline at end of file --- 114,116 ---- } } ! } Index: Link.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/nav/Link.java,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** Link.java 15 Sep 2004 20:47:51 -0000 1.33 --- Link.java 9 Dec 2004 19:07:33 -0000 1.34 *************** *** 94,98 **** * if unable to create the specified Link */ ! static Link create(Link parent, PathOperator op, Creator c) throws Failure { Map linkCache; // Access the linkCache for this parent. --- 94,98 ---- * if unable to create the specified Link */ ! static Link create(Link parent, PathOperator op, Creator c) throws Path.Failure { Map linkCache; // Access the linkCache for this parent. *************** *** 345,347 **** } } ! } \ No newline at end of file --- 345,347 ---- } } ! } |
From: Lee I. <le...@us...> - 2004-12-09 19:05:32
|
Update of /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6400/org/nodal/implementation/types Modified Files: RestrictionTypeImpl.java Log Message: Disambiguate Editor to RestrictionType.Editor Index: RestrictionTypeImpl.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types/RestrictionTypeImpl.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** RestrictionTypeImpl.java 12 Nov 2004 19:23:24 -0000 1.20 --- RestrictionTypeImpl.java 9 Dec 2004 19:05:22 -0000 1.21 *************** *** 102,106 **** private RecordNode record; ! private Editor editor; /** --- 102,106 ---- private RecordNode record; ! private RestrictionType.Editor editor; /** *************** *** 462,466 **** } ! public Editor edit() { if (editor == null) { editor = new MyEditor(this); --- 462,466 ---- } ! public RestrictionType.Editor edit() { if (editor == null) { editor = new MyEditor(this); *************** *** 471,475 **** private static final class MyEditor extends TypeEditorUtil ! implements Editor { private RestrictionTypeImpl type; --- 471,475 ---- private static final class MyEditor extends TypeEditorUtil ! implements RestrictionType.Editor { private RestrictionTypeImpl type; *************** *** 489,493 **** return type.restrictions(); } ! public Editor edit() { return this; } --- 489,493 ---- return type.restrictions(); } ! public RestrictionType.Editor edit() { return this; } |
From: Lee I. <le...@us...> - 2004-11-18 23:44:15
|
Update of /cvsroot/nodal/j-test/src/test/org/nodal/schemata/text/xml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18569/src/test/org/nodal/schemata/text/xml Modified Files: TestXML.java Log Message: Change reference from "text/xml" to "application/xml" Index: TestXML.java =================================================================== RCS file: /cvsroot/nodal/j-test/src/test/org/nodal/schemata/text/xml/TestXML.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TestXML.java 3 Oct 2004 19:42:26 -0000 1.1 --- TestXML.java 18 Nov 2004 23:44:02 -0000 1.2 *************** *** 44,48 **** repo = (TransientRepository) Nodal.openRepository("memory://transient"); NodeFactory factory = repo.createNode(Types.DOCTYPE); ! DocumentFormat format = DocumentFormat.Registry.get("text/xml"); super.setUp(format, factory); } --- 44,48 ---- repo = (TransientRepository) Nodal.openRepository("memory://transient"); NodeFactory factory = repo.createNode(Types.DOCTYPE); ! DocumentFormat format = DocumentFormat.Registry.get("application/xml"); super.setUp(format, factory); } |