nodal-cvs Mailing List for NODAL (Page 4)
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...> - 2004-11-15 19:22:18
|
Update of /cvsroot/nodal/nodal/j-src/storage/trans In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4642/storage/trans Modified Files: TransientRepository.java BareNode.java Log Message: Change name of RepoServices to RepoBackend throughout. o update references and field and method names Index: TransientRepository.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/trans/TransientRepository.java,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** TransientRepository.java 12 Nov 2004 19:23:25 -0000 1.33 --- TransientRepository.java 15 Nov 2004 19:21:58 -0000 1.34 *************** *** 27,31 **** import storage.framework.AbstractDocument; ! import storage.framework.AbstractRepoServices; import storage.framework.AbstractRepository; import storage.framework.AnchorNodeImpl; --- 27,31 ---- import storage.framework.AbstractDocument; ! import storage.framework.AbstractRepoBackend; import storage.framework.AbstractRepository; import storage.framework.AnchorNodeImpl; *************** *** 57,61 **** // Have to delay this since can't refer to this in super constructor boolean isAudited = audited.isAncestorOf(path); ! this.setServices(new Services(this, isAudited)); //System.err.println("Create " + this); --- 57,61 ---- // Have to delay this since can't refer to this in super constructor boolean isAudited = audited.isAncestorOf(path); ! this.setBackend(new Services(this, isAudited)); //System.err.println("Create " + this); *************** *** 71,75 **** */ public NodeContent.Editor createNode(NodeType type) { ! return services.createNode(type, null); } --- 71,75 ---- */ public NodeContent.Editor createNode(NodeType type) { ! return backend.createNode(type, null); } *************** *** 78,82 **** * TransientRepository. */ ! private static final class Services extends AbstractRepoServices { private TxnManager txnManager; --- 78,82 ---- * TransientRepository. */ ! private static final class Services extends AbstractRepoBackend { private TxnManager txnManager; Index: BareNode.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/trans/BareNode.java,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** BareNode.java 12 Nov 2004 19:23:25 -0000 1.30 --- BareNode.java 15 Nov 2004 19:21:58 -0000 1.31 *************** *** 57,61 **** private NodeContent.Editor initEdit() { // Create an Editor w/o asking permission ! return bareContent.initEdit(this, repo.services()); } --- 57,61 ---- private NodeContent.Editor initEdit() { // Create an Editor w/o asking permission ! return bareContent.initEdit(this, repo.getBackend()); } *************** *** 68,72 **** this.repo = repo; type = c.type(); ! nid = repo.services().createNodeID(this); cap = CapabilityImpl.createOwner(repo.user()); bareContent = c; --- 68,72 ---- this.repo = repo; type = c.type(); ! nid = repo.getBackend().createNodeID(this); cap = CapabilityImpl.createOwner(repo.user()); bareContent = c; *************** *** 105,109 **** public NodeContent content() { if (content == null && bareContent != null) { ! content = bareContent.nodeContent(this, repo.services(), null); } return content; --- 105,109 ---- public NodeContent content() { if (content == null && bareContent != null) { ! content = bareContent.nodeContent(this, repo.getBackend(), null); } return content; |
From: Lee I. <le...@us...> - 2004-11-15 19:22:18
|
Update of /cvsroot/nodal/nodal/j-src/storage/jar In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4642/storage/jar Modified Files: JarNode.java JarRepository.java Log Message: Change name of RepoServices to RepoBackend throughout. o update references and field and method names Index: JarRepository.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/jar/JarRepository.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** JarRepository.java 14 May 2004 17:31:30 -0000 1.10 --- JarRepository.java 15 Nov 2004 19:21:59 -0000 1.11 *************** *** 27,31 **** import org.nodal.util.Names; import org.nodal.util.Namespace; ! import storage.framework.AbstractRepoServices; import storage.framework.AbstractRepository; import storage.framework.AnchorNodeImpl; --- 27,31 ---- import org.nodal.util.Names; import org.nodal.util.Namespace; ! import storage.framework.AbstractRepoBackend; import storage.framework.AbstractRepository; import storage.framework.AnchorNodeImpl; *************** *** 53,57 **** // TODO Treat a whole JAR file as a Repository super(path, null); ! setServices(new Services()); this.url = new URL(path.toURLString()); this.connection = (JarURLConnection) url.openConnection(); --- 53,57 ---- // TODO Treat a whole JAR file as a Repository super(path, null); ! setBackend(new Services()); this.url = new URL(path.toURLString()); this.connection = (JarURLConnection) url.openConnection(); *************** *** 60,64 **** } ! class Services extends AbstractRepoServices { private Services() { super(JarRepository.this, null); --- 60,64 ---- } ! class Services extends AbstractRepoBackend { private Services() { super(JarRepository.this, null); *************** *** 68,72 **** * (non-Javadoc) * ! * @see storage.framework.AbstractRepoServices#createNode(org.nodal.type.NodeType, * org.nodal.model.Node) */ --- 68,72 ---- * (non-Javadoc) * ! * @see storage.framework.AbstractRepoBackend#createNode(org.nodal.type.NodeType, * org.nodal.model.Node) */ *************** *** 79,83 **** * (non-Javadoc) * ! * @see storage.framework.AbstractRepoServices#cloneNode(org.nodal.model.Node, * org.nodal.model.Node) */ --- 79,83 ---- * (non-Javadoc) * ! * @see storage.framework.AbstractRepoBackend#cloneNode(org.nodal.model.Node, * org.nodal.model.Node) */ *************** *** 97,101 **** * (non-Javadoc) * ! * @see storage.framework.AbstractRepoServices#txnManager() */ public TxnManager txnManager() { --- 97,101 ---- * (non-Javadoc) * ! * @see storage.framework.AbstractRepoBackend#txnManager() */ public TxnManager txnManager() { *************** *** 106,110 **** * (non-Javadoc) * ! * @see storage.framework.RepoServices#commitTxn(storage.framework.TxnResolver) */ public void commitTxn(TxnManager.Resolver txn) { --- 106,110 ---- * (non-Javadoc) * ! * @see storage.framework.RepoBackend#commitTxn(storage.framework.TxnResolver) */ public void commitTxn(TxnManager.Resolver txn) { Index: JarNode.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/jar/JarNode.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** JarNode.java 15 Sep 2004 20:57:16 -0000 1.4 --- JarNode.java 15 Nov 2004 19:21:59 -0000 1.5 *************** *** 38,42 **** private NodeContent.Editor initialize() { //System.out.println("Initialize " + this); ! return content.initEdit(this, repo.services()); } --- 38,42 ---- private NodeContent.Editor initialize() { //System.out.println("Initialize " + this); ! return content.initEdit(this, repo.getBackend()); } *************** *** 77,81 **** */ public NodeContent content() { ! return content.nodeContent(this, repo.services(), capability()); } --- 77,81 ---- */ public NodeContent content() { ! return content.nodeContent(this, repo.getBackend(), capability()); } |
From: Lee I. <le...@us...> - 2004-11-15 18:51:12
|
Update of /cvsroot/nodal/nodal/j-src/storage/memory In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30232/storage/memory Modified Files: memContent.java Log Message: Update a global backlink index whenever a Node.property assignment is changed. Index: memContent.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/memContent.java,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** memContent.java 14 May 2004 17:31:28 -0000 1.32 --- memContent.java 15 Nov 2004 18:51:03 -0000 1.33 *************** *** 32,35 **** --- 32,37 ---- import org.nodal.util.Name; import org.nodal.util.PropertyConstraintFailure; + + import storage.framework.EdgeIndex; import storage.framework.RepoServices; *************** *** 45,48 **** --- 47,52 ---- protected final CacheMap nodeContents; protected final Set allContents; + // NEXT Should this be Repo-based? + private static final EdgeIndex globalIndex = EdgeIndex.create (); protected memContent() { *************** *** 332,336 **** protected Node assignNode(NodeContent.Editor c, Object property, Node node) { node = seatNode(c, node); ! // NEXT Update indices to reflect new c.property = node relation. return node; } --- 336,340 ---- protected Node assignNode(NodeContent.Editor c, Object property, Node node) { node = seatNode(c, node); ! globalIndex.add (c.content(), property, node.bareNode()); return node; } |
From: Lee I. <le...@us...> - 2004-11-15 18:48:16
|
Update of /cvsroot/nodal/nodal/j-src/storage/framework In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29560/storage/framework Added Files: EdgeIndex.java Log Message: Add new class EdgeIndex for storing backlink sets. --- NEW FILE: EdgeIndex.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 Nov 15, 2004 by leei */ package storage.framework; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.nodal.model.Node; import org.nodal.model.NodeContent; /** * An index of (node,property,node) edges. * @author leei */ public class EdgeIndex { public final class Label { final Node node; final Object property; Label (Node node, Object property) { this.node = node; this.property = property; } public boolean equals (Object other) { Label otherLabel = (Label) other; return (node.equals(otherLabel.node) && property.equals (otherLabel.property)); } } /** * Create a new instance of the EdgeIndex class. * @return an EdgeIndex */ public static EdgeIndex create() { return new EdgeIndex(); } private Map backlinks; /** * */ private EdgeIndex() { backlinks = new HashMap (); } /** * Add a backlink to the Node dst on the edge (src,property). * @param src the source Node of the edge * @param property the property label for the edge * @param dst the destination Node of the edge */ public void add (NodeContent src, Object property, Node dst) { Label label = new Label (src.bareNode(), property); // Remove a (src,property,dst2) backlink Node prevDst = src.value(property).getNode(); this.remove (label, prevDst); // Access/create and augment the link set. Set links = (Set) backlinks.get (dst); if (links == null) { links = new HashSet(); backlinks.put(dst, links); } links.add (label); } /** * Remove a backlink to prevDst from EdgeLabel label. * @param label the label with the link * @param dst the destination Node for this link */ private void remove(Label label, Node dst) { Set links = (Set) backlinks.get (dst); if (links != null) { links.remove(label); } } /** * The Set of EdgeLabel values that link to the dst Node. * @param dst the destination Node of these links * @return a Set of EdgeLabel instances or null if none. */ public Set backlinks (Node dst) { return Collections.unmodifiableSet ((Set) backlinks.get (dst)); } } |
From: Lee I. <le...@us...> - 2004-11-12 19:25:00
|
Update of /cvsroot/nodal/j-test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15259 Modified Files: .cvsignore Log Message: Adjust to addition of Type.CreationFailure exception Index: .cvsignore =================================================================== RCS file: /cvsroot/nodal/j-test/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** .cvsignore 3 Oct 2004 19:42:25 -0000 1.1 --- .cvsignore 12 Nov 2004 19:24:50 -0000 1.2 *************** *** 1 **** --- 1,2 ---- bin + build |
From: Lee I. <le...@us...> - 2004-11-12 19:25:00
|
Update of /cvsroot/nodal/j-test/src/test/org/nodal/schemata/text/plain In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15259/src/test/org/nodal/schemata/text/plain Modified Files: TestEncTextPlain.java TestDecTextPlain.java Log Message: Adjust to addition of Type.CreationFailure exception Index: TestDecTextPlain.java =================================================================== RCS file: /cvsroot/nodal/j-test/src/test/org/nodal/schemata/text/plain/TestDecTextPlain.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TestDecTextPlain.java 3 Oct 2004 19:42:12 -0000 1.1 --- TestDecTextPlain.java 12 Nov 2004 19:24:51 -0000 1.2 *************** *** 25,28 **** --- 25,29 ---- import org.nodal.type.SequenceType; import org.nodal.type.Schema; + import org.nodal.type.Type; import org.nodal.util.IndexBoundsException; import org.nodal.util.PropertyConstraintFailure; *************** *** 60,68 **** } typeDoc = Types.createSchema("memory://audited/testme.nls"); ! sSeqType = typeDoc.createSequenceType(Types.STRING); //Special mode created by Lee to allow for node creation straight from the repo // o This node is used to create the factory for the decoder in the test ! n = repo.createNode(sSeqType); //Create a new decoder --- 61,74 ---- } typeDoc = Types.createSchema("memory://audited/testme.nls"); ! try { ! sSeqType = typeDoc.createSequenceType(Types.STRING); ! } catch (Type.CreationFailure e1) { ! e1.printStackTrace(); ! fail ("Cannot create sequence of strings: "+e1); ! } //Special mode created by Lee to allow for node creation straight from the repo // o This node is used to create the factory for the decoder in the test ! n = repo.createNode(sSeqType.asSequenceType()); //Create a new decoder Index: TestEncTextPlain.java =================================================================== RCS file: /cvsroot/nodal/j-test/src/test/org/nodal/schemata/text/plain/TestEncTextPlain.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TestEncTextPlain.java 3 Oct 2004 19:42:12 -0000 1.1 --- TestEncTextPlain.java 12 Nov 2004 19:24:51 -0000 1.2 *************** *** 24,27 **** --- 24,28 ---- import org.nodal.type.SequenceType; import org.nodal.type.Schema; + import org.nodal.type.Type; import org.nodal.util.ConstraintFailure; *************** *** 62,66 **** typeDoc = Types.createSchema("testme.nls"); ! sSeqType = typeDoc.createSequenceType(Types.STRING); //Special mode created by Lee to allow for node creation straight from the repo --- 63,72 ---- typeDoc = Types.createSchema("testme.nls"); ! try { ! sSeqType = typeDoc.createSequenceType(Types.STRING); ! } catch (Type.CreationFailure e1) { ! e1.printStackTrace(); ! fail ("Unable to create sequence of strings: "+e1); ! } //Special mode created by Lee to allow for node creation straight from the repo |
Update of /cvsroot/nodal/j-test/src/test/storage/memory In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15259/src/test/storage/memory Modified Files: TestPaths.java TestmemStringContent.java TestmemMapContent.java TestmemIntSequenceContent.java TestmemGenericSequenceContent.java TestBareSequence.java Log Message: Adjust to addition of Type.CreationFailure exception Index: TestmemGenericSequenceContent.java =================================================================== RCS file: /cvsroot/nodal/j-test/src/test/storage/memory/TestmemGenericSequenceContent.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TestmemGenericSequenceContent.java 3 Oct 2004 19:42:10 -0000 1.1 --- TestmemGenericSequenceContent.java 12 Nov 2004 19:24:50 -0000 1.2 *************** *** 17,20 **** --- 17,21 ---- import org.nodal.type.SequenceType; import org.nodal.type.Schema; + import org.nodal.type.Type; import org.nodal.util.ConstraintFailure; import org.nodal.util.IndexBoundsException; *************** *** 52,56 **** typeDoc = Types.openSchema ("testme.nds").edit (); ! intSeqType = typeDoc.createSequenceType (Types.SHORT); Node n = repo.createNode (intSeqType); --- 53,62 ---- typeDoc = Types.openSchema ("testme.nds").edit (); ! try { ! intSeqType = typeDoc.createSequenceType (Types.SHORT); ! } catch (Type.CreationFailure e1) { ! e1.printStackTrace(); ! fail ("Unable to create sequence of shorts: "+e1); ! } Node n = repo.createNode (intSeqType); Index: TestPaths.java =================================================================== RCS file: /cvsroot/nodal/j-test/src/test/storage/memory/TestPaths.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TestPaths.java 3 Oct 2004 19:42:10 -0000 1.1 --- TestPaths.java 12 Nov 2004 19:24:50 -0000 1.2 *************** *** 18,21 **** --- 18,22 ---- import org.nodal.type.SequenceType; import org.nodal.type.Schema; + import org.nodal.type.Type; import storage.trans.TransientRepository; *************** *** 47,51 **** typeDoc = Types.createSchema ("memory://transient/testme.nls").edit (); ! intSeqType = typeDoc.createSequenceType (Types.SHORT); //System.err.println ("Testing Paths: " + repo); --- 48,57 ---- 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); ! } //System.err.println ("Testing Paths: " + repo); Index: TestmemStringContent.java =================================================================== RCS file: /cvsroot/nodal/j-test/src/test/storage/memory/TestmemStringContent.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TestmemStringContent.java 3 Oct 2004 19:42:10 -0000 1.1 --- TestmemStringContent.java 12 Nov 2004 19:24:50 -0000 1.2 *************** *** 15,18 **** --- 15,19 ---- import org.nodal.type.SequenceType; import org.nodal.type.Schema; + import org.nodal.type.Type; import org.nodal.util.ConstraintFailure; import org.nodal.util.IndexBoundsException; *************** *** 49,53 **** typeDoc = Types.createSchema("memory://transient/testme.nls").edit(); ! charSeqType = typeDoc.createSequenceType(Types.CHARACTER); Node n = repo.createNode(charSeqType); --- 50,59 ---- 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); ! } Node n = repo.createNode(charSeqType); Index: TestmemIntSequenceContent.java =================================================================== RCS file: /cvsroot/nodal/j-test/src/test/storage/memory/TestmemIntSequenceContent.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TestmemIntSequenceContent.java 3 Oct 2004 19:42:10 -0000 1.1 --- TestmemIntSequenceContent.java 12 Nov 2004 19:24:50 -0000 1.2 *************** *** 15,18 **** --- 15,19 ---- import org.nodal.type.SequenceType; import org.nodal.type.Schema; + import org.nodal.type.Type; import org.nodal.util.ConstraintFailure; import org.nodal.util.IndexBoundsException; *************** *** 49,53 **** typeDoc = Types.createSchema("memory://transient/testme.nds").edit(); ! intSeqType = typeDoc.createSequenceType(Types.INTEGER); Node n = repo.createNode(intSeqType); --- 50,59 ---- 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); ! } Node n = repo.createNode(intSeqType); Index: TestBareSequence.java =================================================================== RCS file: /cvsroot/nodal/j-test/src/test/storage/memory/TestBareSequence.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TestBareSequence.java 3 Oct 2004 19:42:10 -0000 1.1 --- TestBareSequence.java 12 Nov 2004 19:24:50 -0000 1.2 *************** *** 24,27 **** --- 24,28 ---- import org.nodal.type.SequenceType; import org.nodal.type.Schema; + import org.nodal.type.Type; import org.nodal.util.ConstraintFailure; import org.nodal.util.IndexBoundsException; *************** *** 60,64 **** typeDoc = Types.createSchema("memory://transient/testme.nls").edit(); ! shortSeqType = typeDoc.createSequenceType(Types.SHORT); Node n = repo.createNode(shortSeqType); --- 61,70 ---- 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); ! } Node n = repo.createNode(shortSeqType); Index: TestmemMapContent.java =================================================================== RCS file: /cvsroot/nodal/j-test/src/test/storage/memory/TestmemMapContent.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TestmemMapContent.java 3 Oct 2004 19:42:10 -0000 1.1 --- TestmemMapContent.java 12 Nov 2004 19:24:50 -0000 1.2 *************** *** 15,22 **** import org.nodal.Types; import org.nodal.model.MapNode; ! import org.nodal.model.Node; import org.nodal.nav.Path.Failure; import org.nodal.type.MapType; import org.nodal.type.Schema; import org.nodal.util.ConstraintFailure; import org.nodal.util.Name; --- 15,23 ---- import org.nodal.Types; import org.nodal.model.MapNode; ! //import org.nodal.model.Node; import org.nodal.nav.Path.Failure; import org.nodal.type.MapType; import org.nodal.type.Schema; + import org.nodal.type.Type; import org.nodal.util.ConstraintFailure; import org.nodal.util.Name; *************** *** 25,28 **** --- 26,30 ---- /** * JUnit TestCase. + * * @testfamily JUnit * @testkind testcase *************** *** 43,48 **** /** ! * Sets up the fixture, for example, open a network connection. This method ! * is called before a test is executed. */ protected void setUp() { --- 45,50 ---- /** ! * Sets up the fixture, for example, open a network connection. This method is ! * called before a test is executed. */ protected void setUp() { *************** *** 53,61 **** } typeDoc = Types.openSchema("memory://transient/testme.nls").edit(); - mapType = typeDoc.createMapType(Types.NAME, Types.NODETYPE); - map0 = repo.createNode(mapType).asMapNode().editMap(); - map1 = repo.createNode(mapType).asMapNode().editMap(); - map2 = repo.createNode(mapType).asMapNode().editMap(); try { map0.setValue("a").set(map0); map0.setValue("b").set(map1); --- 55,64 ---- } typeDoc = Types.openSchema("memory://transient/testme.nls").edit(); try { + mapType = typeDoc.createMapType(Types.NAME, Types.NODETYPE); + map0 = repo.createNode(mapType).asMapNode().editMap(); + map1 = repo.createNode(mapType).asMapNode().editMap(); + map2 = repo.createNode(mapType).asMapNode().editMap(); + map0.setValue("a").set(map0); map0.setValue("b").set(map1); *************** *** 71,75 **** --- 74,83 ---- map2.setValue("F").set(map0); } catch (ConstraintFailure f) { + f.printStackTrace(); fail("Constraint failure in setUp: " + f); + } catch (Type.CreationFailure e) { + e.printStackTrace(); + fail("Type creation failure in setUp: " + e); + } } *************** *** 132,141 **** assertTrue(map2.value("F").valueEquals(map0)); } ! public void testPath0() { ! Node m0 = map0.value("a").getNode(); ! //System.err.println("map0 = " + map0.path()); //System.err.println("map0/a = " + m0.path()); //System.err.println("map0/a = " + m0.bareNode().path()); } ! } --- 140,149 ---- assertTrue(map2.value("F").valueEquals(map0)); } ! public void testPath0() { ! //Node m0 = map0.value("a").getNode(); ! //System.err.println("map0 = " + map0.path()); //System.err.println("map0/a = " + m0.path()); //System.err.println("map0/a = " + m0.bareNode().path()); } ! } \ No newline at end of file |
From: Lee I. <le...@us...> - 2004-11-12 19:24:10
|
Update of /cvsroot/nodal/nodal/j-src/storage/framework In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14839/storage/framework Modified Files: SimpleTxnBuilder.java AnchorNodeImpl.java AbstractNode.java ProxyNode.java Log Message: Add Type.CreationFailure exception when a type creation fails. Handle throughout. Index: ProxyNode.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/framework/ProxyNode.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** ProxyNode.java 2 Jun 2004 19:02:05 -0000 1.14 --- ProxyNode.java 12 Nov 2004 19:23:24 -0000 1.15 *************** *** 79,82 **** --- 79,86 ---- } + public boolean isAnchor () { + return target().isAnchor(); + } + public Node bareNode() { return this; Index: SimpleTxnBuilder.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/framework/SimpleTxnBuilder.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SimpleTxnBuilder.java 14 May 2004 17:31:24 -0000 1.2 --- SimpleTxnBuilder.java 12 Nov 2004 19:23:24 -0000 1.3 *************** *** 329,333 **** throw new RuntimeException("modifying a committed Txn"); } ! if (subj.repository() != repo) { throw new RuntimeException("storing a foreign transaction subject"); } --- 329,334 ---- throw new RuntimeException("modifying a committed Txn"); } ! // Can always store an Anchor ! if (subj.asAnchor() == null && subj.repository() != repo) { throw new RuntimeException("storing a foreign transaction subject"); } Index: AbstractNode.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/framework/AbstractNode.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** AbstractNode.java 15 Sep 2004 20:57:14 -0000 1.10 --- AbstractNode.java 12 Nov 2004 19:23:24 -0000 1.11 *************** *** 82,85 **** --- 82,89 ---- return null; } + + public boolean isAnchor() { + return asAnchor() != null; + } public MapNode asMapNode() { Index: AnchorNodeImpl.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/framework/AnchorNodeImpl.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AnchorNodeImpl.java 2 Sep 2004 19:11:29 -0000 1.4 --- AnchorNodeImpl.java 12 Nov 2004 19:23:24 -0000 1.5 *************** *** 15,25 **** /** ! * An Node that proxies another Node via a Path address. This is the ! * foundation for hypertextual reference in the data model. * * @author leei */ public class AnchorNodeImpl extends ProxyNode implements AnchorNode { ! public static AnchorNode create(Path path) { // TODO Cache AnchorNode wrt. path --- 15,25 ---- /** ! * An Node that proxies another Node via a Path address. This is the foundation ! * for hypertextual reference in the data model. * * @author leei */ public class AnchorNodeImpl extends ProxyNode implements AnchorNode { ! public static AnchorNode create(Path path) { // TODO Cache AnchorNode wrt. path *************** *** 46,50 **** /** * Constructor for an AnchorNode with absolute Path. ! * @param path an absolute Path */ private AnchorNodeImpl(Path path) { --- 46,52 ---- /** * Constructor for an AnchorNode with absolute Path. ! * ! * @param path ! * an absolute Path */ private AnchorNodeImpl(Path path) { *************** *** 54,60 **** /** * Constructor for an AnchorNode with a relative Path and context for ! * evaluation. ! * @param path a relative Path ! * @param context an absolute Path that path will be applied against */ private AnchorNodeImpl(Path path, Path context) { --- 56,65 ---- /** * Constructor for an AnchorNode with a relative Path and context for ! * evaluation. ! * ! * @param path ! * a relative Path ! * @param context ! * an absolute Path that path will be applied against */ private AnchorNodeImpl(Path path, Path context) { *************** *** 63,70 **** } ! /* (non-Javadoc) * @see storage.framework.ProxyNode#target() */ public Node target() { if (getter == null) { try { --- 68,87 ---- } ! /** ! * The bareNode() of an AnchorNode is the bareNode() of the anchor's target. ! * This definition ensures that ! */ ! public Node bareNode() { ! Node target = target(); ! return (target != null ? target.bareNode() : null); ! } ! ! /* ! * (non-Javadoc) ! * * @see storage.framework.ProxyNode#target() */ public Node target() { + // Compute the Getter for this Path if (getter == null) { try { *************** *** 81,90 **** } } return (getter != null ? getter.getNode() : null); } public Path path() { ! // TODO This should be the Path of the AnchorNode! ! return path; } --- 98,116 ---- } } + + // TODO Should this follow through? i.e. target() of the target? return (getter != null ? getter.getNode() : null); } public Path path() { ! try { ! if (context == null) { ! return path; ! } else { ! return context.apply(path); ! } ! } catch (Path.Failure f) { ! return null; ! } } *************** *** 100,102 **** return this; } ! } --- 126,132 ---- return this; } ! ! public boolean isAnchor() { ! return true; ! } ! } \ No newline at end of file |
From: Lee I. <le...@us...> - 2004-11-12 19:24:10
|
Update of /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14839/org/nodal/implementation/types Modified Files: RestrictionImpl.java SequenceTypeImpl.java RegexpRestrict.java MaxexRestrict.java MininRestrict.java MapTypeImpl.java TypeDoc.java RestrictionTypeImpl.java MaxinRestrict.java MinexRestrict.java FixedRestrict.java TypeEditorUtil.java TypeImpl.java Log Message: Add Type.CreationFailure exception when a type creation fails. Handle throughout. Index: RestrictionTypeImpl.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types/RestrictionTypeImpl.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** RestrictionTypeImpl.java 22 Apr 2004 22:19:40 -0000 1.19 --- RestrictionTypeImpl.java 12 Nov 2004 19:23:24 -0000 1.20 *************** *** 24,28 **** import org.nodal.type.RestrictionType; import org.nodal.type.Type; - import org.nodal.type.Restriction.CreationFailure; import org.nodal.util.Name; --- 24,27 ---- *************** *** 79,83 **** try { restrictions.add (RestrictionImpl.create(base(), name, args)); ! } catch (CreationFailure e) { // TODO Handle a problematic Restriction record System.err.println("Couldn't handle restriction: " + name.string()); --- 78,82 ---- try { restrictions.add (RestrictionImpl.create(base(), name, args)); ! } catch (Type.CreationFailure e) { // TODO Handle a problematic Restriction record System.err.println("Couldn't handle restriction: " + name.string()); *************** *** 496,500 **** // Methods from Editor public boolean addRestriction(String name, Map args) ! throws Restriction.CreationFailure { Restriction r = RestrictionImpl.create(type.restrictionOf(), name, args); return type.addRestriction(r); --- 495,499 ---- // Methods from Editor public boolean addRestriction(String name, Map args) ! throws Type.CreationFailure { Restriction r = RestrictionImpl.create(type.restrictionOf(), name, args); return type.addRestriction(r); *************** *** 506,510 **** public void addRestriction(String name, String[] args) ! throws Restriction.CreationFailure { Map argMap = new HashMap(); for (int i = 0; i < args.length; i += 2) { --- 505,509 ---- public void addRestriction(String name, String[] args) ! throws Type.CreationFailure { Map argMap = new HashMap(); for (int i = 0; i < args.length; i += 2) { Index: MaxinRestrict.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types/MaxinRestrict.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** MaxinRestrict.java 24 Jul 2003 23:40:44 -0000 1.8 --- MaxinRestrict.java 12 Nov 2004 19:23:24 -0000 1.9 *************** *** 25,29 **** class MaxinRestrict extends RestrictionImpl { static MaxinRestrict create (Type t, String val) ! throws Restriction.CreationFailure { Type base = t; if (t instanceof RestrictionType) { --- 25,29 ---- class MaxinRestrict extends RestrictionImpl { static MaxinRestrict create (Type t, String val) ! throws Type.CreationFailure { Type base = t; if (t instanceof RestrictionType) { *************** *** 44,50 **** } } catch (NumberFormatException e) { ! throw new Restriction.CreationFailure ("Invalid value "+val); } ! throw new Restriction.CreationFailure ("Invalid base type "+t); } --- 44,50 ---- } } catch (NumberFormatException e) { ! throw new Type.CreationFailure ("Invalid value "+val, e); } ! throw new Type.CreationFailure ("Invalid base type "+t); } *************** *** 141,145 **** protected Restriction create (Type context, Map args) ! throws Restriction.CreationFailure { String val = (String) args.get ("value"); return MaxinRestrict.create (context, val); --- 141,145 ---- protected Restriction create (Type context, Map args) ! throws Type.CreationFailure { String val = (String) args.get ("value"); return MaxinRestrict.create (context, val); Index: TypeEditorUtil.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types/TypeEditorUtil.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TypeEditorUtil.java 19 Apr 2004 23:59:19 -0000 1.5 --- TypeEditorUtil.java 12 Nov 2004 19:23:24 -0000 1.6 *************** *** 1,9 **** ! /* ! * ! * Distributed under the Apache Software License, Version 1.1 ! * (see below, or the file LICENSE for terms and conditions) ! * ! * Copyright (c) 2002 University of BC. All rights reserved. ! * */ --- 1,9 ---- ! /* ! * ! * Distributed under the Apache Software License, Version 1.1 (see below, or the ! * file LICENSE for terms and conditions) ! * ! * Copyright (c) 2002 University of BC. All rights reserved. ! * */ *************** *** 23,60 **** private TypeImpl t; ! TypeEditorUtil (TypeImpl t) { ! super (t); this.t = t; } ! public Type type () { return t; } // Implementation of methods from TypeFactory ! public MapType.Editor createMapType (Type keyType, Type valueType) { ! return t.doc.createMapType (keyType, valueType); } ! public SequenceType.Editor createSequenceType (Type itemType) { ! return t.doc.createSequenceType (itemType); } ! public SetType.Editor createSetType (Type itemType) { ! return t.doc.createSetType (itemType); } ! public RecordType.Editor createRecordType () { ! return t.doc.createRecordType (); } ! public RecordType.Editor createRecordType (RecordType ext) { ! return t.doc.createRecordType (ext); } ! public UnionType.Editor createUnionType () { ! return t.doc.createUnionType (); } ! public RestrictionType.Editor createRestrictionType (Type base) { ! return t.doc.createRestrictionType (base); } }; --- 23,64 ---- private TypeImpl t; ! TypeEditorUtil(TypeImpl t) { ! super(t); this.t = t; } ! public Type type() { ! return t; ! } // Implementation of methods from TypeFactory ! public MapType.Editor createMapType(Type keyType, Type valueType) ! throws Type.CreationFailure { ! return t.doc.createMapType(keyType, valueType); } ! public SequenceType.Editor createSequenceType(Type itemType) ! throws Type.CreationFailure { ! return t.doc.createSequenceType(itemType); } ! public SetType.Editor createSetType(Type itemType) { ! return t.doc.createSetType(itemType); } ! public RecordType.Editor createRecordType() { ! return t.doc.createRecordType(); } ! public RecordType.Editor createRecordType(RecordType ext) { ! return t.doc.createRecordType(ext); } ! public UnionType.Editor createUnionType() { ! return t.doc.createUnionType(); } ! public RestrictionType.Editor createRestrictionType(Type base) { ! return t.doc.createRestrictionType(base); } }; Index: RestrictionImpl.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types/RestrictionImpl.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** RestrictionImpl.java 16 Apr 2004 22:03:45 -0000 1.11 --- RestrictionImpl.java 12 Nov 2004 19:23:24 -0000 1.12 *************** *** 124,128 **** protected abstract Restriction create(Type context, Map args) ! throws Restriction.CreationFailure; } --- 124,128 ---- protected abstract Restriction create(Type context, Map args) ! throws Type.CreationFailure; } *************** *** 132,139 **** */ static Restriction create(Type context, String name, Map args) ! throws Restriction.CreationFailure { Factory factory = (Factory) REGISTRY.get(name); if (factory == null) { ! throw new Restriction.CreationFailure("no Restriction named " + name); } return factory.create(context, args); --- 132,139 ---- */ static Restriction create(Type context, String name, Map args) ! throws Type.CreationFailure { Factory factory = (Factory) REGISTRY.get(name); if (factory == null) { ! throw new Type.CreationFailure("no Restriction named " + name); } return factory.create(context, args); *************** *** 147,154 **** */ public static Restriction create(Type type, Name name, MapNode args) ! throws CreationFailure { Factory factory = (Factory) REGISTRY.get(name.string()); if (factory == null) { ! throw new Restriction.CreationFailure( "no Restriction named " + name.string()); } --- 147,154 ---- */ public static Restriction create(Type type, Name name, MapNode args) ! throws Type.CreationFailure { Factory factory = (Factory) REGISTRY.get(name.string()); if (factory == null) { ! throw new Type.CreationFailure( "no Restriction named " + name.string()); } Index: MininRestrict.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types/MininRestrict.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** MininRestrict.java 24 Jul 2003 23:40:44 -0000 1.8 --- MininRestrict.java 12 Nov 2004 19:23:24 -0000 1.9 *************** *** 25,29 **** class MininRestrict extends RestrictionImpl { static MininRestrict create (Type t, String val) ! throws Restriction.CreationFailure { Type base = t; if (t instanceof RestrictionType) { --- 25,29 ---- class MininRestrict extends RestrictionImpl { static MininRestrict create (Type t, String val) ! throws Type.CreationFailure { Type base = t; if (t instanceof RestrictionType) { *************** *** 44,50 **** } } catch (NumberFormatException e) { ! throw new Restriction.CreationFailure ("Invalid value "+val); } ! throw new Restriction.CreationFailure ("Invalid base type "+t); } --- 44,50 ---- } } catch (NumberFormatException e) { ! throw new Type.CreationFailure ("Invalid value "+val, e); } ! throw new Type.CreationFailure ("Invalid base type "+t); } *************** *** 141,145 **** protected Restriction create (Type context, Map args) ! throws Restriction.CreationFailure { String val = (String) args.get ("value"); return MininRestrict.create (context, val); --- 141,145 ---- protected Restriction create (Type context, Map args) ! throws Type.CreationFailure { String val = (String) args.get ("value"); return MininRestrict.create (context, val); Index: MapTypeImpl.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types/MapTypeImpl.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** MapTypeImpl.java 16 Apr 2004 22:03:45 -0000 1.15 --- MapTypeImpl.java 12 Nov 2004 19:23:24 -0000 1.16 *************** *** 1,9 **** ! /* ! * ! * Distributed under the Apache Software License, Version 1.1 ! * (see below, or the file LICENSE for terms and conditions) ! * ! * Copyright (c) 2002 University of BC. All rights reserved. ! * */ --- 1,9 ---- ! /* ! * ! * Distributed under the Apache Software License, Version 1.1 (see below, or the ! * file LICENSE for terms and conditions) ! * ! * Copyright (c) 2002 University of BC. All rights reserved. ! * */ *************** *** 11,14 **** --- 11,15 ---- import org.nodal.model.Getter; + import org.nodal.model.Node; import org.nodal.model.RecordNode; import org.nodal.type.MapType; *************** *** 20,40 **** final class MapTypeImpl extends NodeTypeImpl implements MapType { private abstract class MapImpl { ! abstract Type keyType (); ! abstract Type valueType (); abstract Type setKeyType(Type keyType); ! abstract Type setValueType (Type valueType); } ! private final class BareImpl extends MapImpl { private Type key; private Type value; ! BareImpl (Type key, Type value) { this.key = key; this.value = value; } ! ! Type keyType () { return key; } ! Type valueType () { return value; } ! synchronized Type setKeyType(Type keyType) { keyType = keyType.type(); // Resolve to base type --- 21,50 ---- final class MapTypeImpl extends NodeTypeImpl implements MapType { private abstract class MapImpl { ! abstract Type keyType(); ! ! abstract Type valueType(); ! abstract Type setKeyType(Type keyType); ! ! abstract Type setValueType(Type valueType); } ! private final class BareImpl extends MapImpl { private Type key; private Type value; ! ! BareImpl(Type key, Type value) { this.key = key; this.value = value; } ! ! Type keyType() { ! return key; ! } ! ! Type valueType() { ! return value; ! } ! synchronized Type setKeyType(Type keyType) { keyType = keyType.type(); // Resolve to base type *************** *** 43,46 **** --- 53,57 ---- return prev; } + synchronized Type setValueType(Type valueType) { valueType = valueType.type(); // Resolve to base type *************** *** 50,54 **** } } ! private final class NodeImpl extends MapImpl { private RecordNode record; --- 61,65 ---- } } ! private final class NodeImpl extends MapImpl { private RecordNode record; *************** *** 57,69 **** private RecordNode.Editor editor; ! NodeImpl (RecordNode record) { this.record = record; this.editor = record.editRecord(); this.keyGetter = record.field("keyType"); this.valueGetter = record.field("valueType"); ! initTypes (); } ! ! private void initTypes () { RecordNode keyNode = keyGetter.getNode().asRecordNode(); doc.createTypeFromRecord(keyNode); --- 68,108 ---- private RecordNode.Editor editor; ! NodeImpl(RecordNode record) { this.record = record; this.editor = record.editRecord(); this.keyGetter = record.field("keyType"); this.valueGetter = record.field("valueType"); ! initTypes(); } ! ! /** ! * Create a NodeImpl instance in a TypeDoc with keyType and valueType. ! * @param doc the TypeDoc within which this MapType will be included ! * @param keyType ! * @param valueType ! * @throws Type.CreationFailure if unable to create this MapType ! */ ! public NodeImpl(TypeDoc doc, Type keyType, Type valueType) ! throws Type.CreationFailure { ! RecordNode.Editor docEdit = doc.node().editRecord(); ! if (docEdit == null) { ! throw new Type.CreationFailure("Unable to edit " + doc); ! } ! ! try { ! this.editor = docEdit.createNode(TypeDoc.MAPREC_TYPE).editRecord(); ! this.record = editor.asRecordNode(); ! Node keyNode = ((TypeImpl) keyType).node(); ! editor.setField("keyType").setNode(keyNode); ! Node valueNode = ((TypeImpl) valueType).node(); ! editor.setField("valueType").setNode(valueNode); ! this.keyGetter = record.field("keyType"); ! this.valueGetter = record.field("valueType"); ! } catch (ConstraintFailure f) { ! throw new Type.CreationFailure("Unable to init field: ", f); ! } ! } ! ! private void initTypes() { RecordNode keyNode = keyGetter.getNode().asRecordNode(); doc.createTypeFromRecord(keyNode); *************** *** 71,81 **** doc.createTypeFromRecord(valNode); } ! Type keyType() { ! return typeForNode (keyGetter.getNode()); } Type valueType() { ! return typeForNode (valueGetter.getNode()); } --- 110,120 ---- doc.createTypeFromRecord(valNode); } ! Type keyType() { ! return typeForNode(keyGetter.getNode()); } Type valueType() { ! return typeForNode(valueGetter.getNode()); } *************** *** 106,110 **** } } ! private MapImpl impl; private Editor editor; --- 145,149 ---- } } ! private MapImpl impl; private Editor editor; *************** *** 112,120 **** /** * Create a new MapType with a given key Type and value Type. ! * @param doc the containing TypeDoc ! * @param key the key Type ! * @param value the value Type */ ! static MapTypeImpl create(TypeDoc doc, Type key, Type value) { return new MapTypeImpl(doc, key, value); } --- 151,166 ---- /** * Create a new MapType with a given key Type and value Type. ! * ! * @param doc ! * the containing TypeDoc ! * @param key ! * the key Type ! * @param value ! * the value Type ! * @throws Type.CreationFailure ! * if unable to construct the new MapType */ ! static MapTypeImpl create(TypeDoc doc, Type key, Type value) ! throws Type.CreationFailure { return new MapTypeImpl(doc, key, value); } *************** *** 122,147 **** /** * Create a new MapType with a given key Type and value type. ! * @param doc the containing TypeDoc ! * @param key the key Type ! * @param value the value Type */ ! private MapTypeImpl(TypeDoc doc, Type key, Type value) { super(doc, null); ! this.impl = new BareImpl (key.type(), value.type()); } /** * Create a new MapTypeImpl from the completed RecordNode ! * @param doc the containing TypeDoc ! * @param typeNode the RecordNode that describes this MapType */ private MapTypeImpl(TypeDoc doc, RecordNode typeNode) { super(doc, typeNode); ! this.impl = new NodeImpl (typeNode); } void associateRecord(RecordNode record) { attachNode(record.bareNode()); ! this.impl = new NodeImpl (record); } --- 168,205 ---- /** * Create a new MapType with a given key Type and value type. ! * ! * @param doc ! * the containing TypeDoc ! * @param key ! * the key Type ! * @param value ! * the value Type */ ! private MapTypeImpl(TypeDoc doc, Type key, Type value) ! throws Type.CreationFailure { super(doc, null); ! if (TypeDoc.isBootstrapped()) { ! this.impl = new NodeImpl(doc, key, value); ! } else { ! this.impl = new BareImpl(key.type(), value.type()); ! } } /** * Create a new MapTypeImpl from the completed RecordNode ! * ! * @param doc ! * the containing TypeDoc ! * @param typeNode ! * the RecordNode that describes this MapType */ private MapTypeImpl(TypeDoc doc, RecordNode typeNode) { super(doc, typeNode); ! this.impl = new NodeImpl(typeNode); } void associateRecord(RecordNode record) { attachNode(record.bareNode()); ! this.impl = new NodeImpl(record); } *************** *** 150,153 **** --- 208,212 ---- return keyType(); } + public final Type valueType(Object property) { return valueType(); *************** *** 162,166 **** return impl.keyType(); } ! public Type valueType() { return impl.valueType(); --- 221,225 ---- return impl.keyType(); } ! public Type valueType() { return impl.valueType(); *************** *** 168,172 **** protected synchronized Type setKeyType(Type keyType) { ! return impl.setKeyType (keyType.type()); } --- 227,231 ---- protected synchronized Type setKeyType(Type keyType) { ! return impl.setKeyType(keyType.type()); } *************** *** 183,189 **** } ! private static class Editor ! extends NodeTypeEditorUtil ! implements MapType.Editor { private MapTypeImpl map; --- 242,248 ---- } ! private static class Editor extends NodeTypeEditorUtil ! implements ! MapType.Editor { private MapTypeImpl map; *************** *** 201,204 **** --- 260,264 ---- return map.propertyType(); } + public final Type valueType(Object property) { return map.valueType(property); *************** *** 208,211 **** --- 268,272 ---- return map.keyType(); } + public Type valueType() { return map.valueType(); *************** *** 216,219 **** --- 277,281 ---- return map.setKeyType(keyType); } + public Type setValueType(Type valueType) { return map.setValueType(valueType); *************** *** 258,261 **** --- 320,324 ---- return toString(false); } + public String declString() { return toString(true); *************** *** 270,276 **** if (t instanceof MapType) { MapType mt = (MapType) t; ! return ( ! this.equals(mt) ! || (keyType().acceptsType(mt.keyType()) && valueType().acceptsType(mt.valueType()))); } return false; --- 333,338 ---- if (t instanceof MapType) { MapType mt = (MapType) t; ! return (this.equals(mt) || (keyType().acceptsType(mt.keyType()) && valueType() ! .acceptsType(mt.valueType()))); } return false; *************** *** 286,288 **** return new MapTypeImpl(doc, typeNode); } ! } --- 348,350 ---- return new MapTypeImpl(doc, typeNode); } ! } \ No newline at end of file Index: SequenceTypeImpl.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types/SequenceTypeImpl.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** SequenceTypeImpl.java 16 Apr 2004 22:03:45 -0000 1.15 --- SequenceTypeImpl.java 12 Nov 2004 19:23:24 -0000 1.16 *************** *** 1,9 **** ! /* ! * ! * Distributed under the Apache Software License, Version 1.1 ! * (see below, or the file LICENSE for terms and conditions) ! * ! * Copyright (c) 2002 University of BC. All rights reserved. ! * */ --- 1,9 ---- ! /* ! * ! * Distributed under the Apache Software License, Version 1.1 (see below, or the ! * file LICENSE for terms and conditions) ! * ! * Copyright (c) 2002 University of BC. All rights reserved. ! * */ *************** *** 22,32 **** private abstract class SequenceImpl { abstract Type itemType(); ! abstract Type setItemType (Type newType); } ! private final class BareImpl extends SequenceImpl { private Type itemType; ! BareImpl (Type itemType) { this.itemType = itemType.type(); } --- 22,33 ---- private abstract class SequenceImpl { abstract Type itemType(); ! ! abstract Type setItemType(Type newType); } ! private final class BareImpl extends SequenceImpl { private Type itemType; ! BareImpl(Type itemType) { this.itemType = itemType.type(); } *************** *** 42,52 **** } } ! private final class NodeImpl extends SequenceImpl { private RecordNode record; private Getter itemGetter; private RecordNode.Editor editor; ! ! NodeImpl (RecordNode record) { this.record = record; this.editor = record.editRecord(); --- 43,53 ---- } } ! private final class NodeImpl extends SequenceImpl { private RecordNode record; private Getter itemGetter; private RecordNode.Editor editor; ! ! NodeImpl(RecordNode record) { this.record = record; this.editor = record.editRecord(); *************** *** 55,65 **** } ! private void initTypes () { Node itemNode = itemGetter.getNode(); doc.createTypeFromRecord(itemNode.asRecordNode()); } ! Type itemType() { ! return typeForNode (itemGetter.getNode()); } --- 56,92 ---- } ! /** ! * Create a NodeImpl instance in a TypeDoc with itemType. ! * ! * @param doc ! * the TypeDoc within which this SequenceType will be included ! * @param keyType ! * @throws Type.CreationFailure ! * if unable to create this SequenceType ! */ ! public NodeImpl(TypeDoc doc, Type itemType) throws Type.CreationFailure { ! RecordNode.Editor docEdit = doc.node().editRecord(); ! if (docEdit == null) { ! throw new Type.CreationFailure("Unable to edit " + doc); ! } ! ! try { ! this.editor = docEdit.createNode(TypeDoc.SEQREC_TYPE).editRecord(); ! this.record = editor.asRecordNode(); ! Node itemNode = ((TypeImpl) itemType).node(); ! editor.setField("itemType").setNode(itemNode); ! this.itemGetter = record.field("itemType"); ! } catch (ConstraintFailure f) { ! throw new Type.CreationFailure("Unable to init field: ", f); ! } ! } ! ! private void initTypes() { Node itemNode = itemGetter.getNode(); doc.createTypeFromRecord(itemNode.asRecordNode()); } ! Type itemType() { ! return typeForNode(itemGetter.getNode()); } *************** *** 69,73 **** TypeImpl itemImpl = (TypeImpl) newType; try { ! editor.setField ("itemType").setNode(itemImpl.node()); } catch (ConstraintFailure e) { return null; --- 96,100 ---- TypeImpl itemImpl = (TypeImpl) newType; try { ! editor.setField("itemType").setNode(itemImpl.node()); } catch (ConstraintFailure e) { return null; *************** *** 77,85 **** } } ! private SequenceImpl impl; private Editor editor; ! static SequenceTypeImpl create(TypeDoc doc, Type item) { return new SequenceTypeImpl(doc, item); } --- 104,112 ---- } } ! private SequenceImpl impl; private Editor editor; ! static SequenceTypeImpl create(TypeDoc doc, Type item) throws CreationFailure { return new SequenceTypeImpl(doc, item); } *************** *** 89,105 **** } ! private SequenceTypeImpl(TypeDoc d, Type e) { super(d, null); ! this.impl = new BareImpl (e); } private SequenceTypeImpl(TypeDoc doc, RecordNode record) { super(doc, record); ! this.impl = new NodeImpl (record); } void associateRecord(RecordNode record) { attachNode(record.bareNode()); ! this.impl = new NodeImpl (record); } --- 116,136 ---- } ! private SequenceTypeImpl(TypeDoc d, Type e) throws CreationFailure { super(d, null); ! if (TypeDoc.isBootstrapped()) { ! this.impl = new NodeImpl(d, e); ! } else { ! this.impl = new BareImpl(e); ! } } private SequenceTypeImpl(TypeDoc doc, RecordNode record) { super(doc, record); ! this.impl = new NodeImpl(record); } void associateRecord(RecordNode record) { attachNode(record.bareNode()); ! this.impl = new NodeImpl(record); } *************** *** 108,111 **** --- 139,143 ---- return TypeImpl.INTEGER; } + public final Type valueType(Object property) { return itemType(); *************** *** 122,126 **** protected synchronized Type setItemType(Type itemType) { ! return impl.setItemType (itemType); } --- 154,158 ---- protected synchronized Type setItemType(Type itemType) { ! return impl.setItemType(itemType); } *************** *** 133,139 **** } ! private static class Editor ! extends NodeTypeEditorUtil ! implements SequenceType.Editor { private SequenceTypeImpl seq; --- 165,171 ---- } ! private static class Editor extends NodeTypeEditorUtil ! implements ! SequenceType.Editor { private SequenceTypeImpl seq; *************** *** 146,149 **** --- 178,182 ---- return seq.propertyType(); } + public final Type valueType(Object property) { return seq.valueType(property); *************** *** 189,192 **** --- 222,226 ---- return toString(false); } + public String declString() { return toString(true); *************** *** 220,222 **** return false; } ! } --- 254,256 ---- return false; } ! } \ No newline at end of file Index: TypeImpl.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types/TypeImpl.java,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** TypeImpl.java 16 Apr 2004 22:03:45 -0000 1.31 --- TypeImpl.java 12 Nov 2004 19:23:24 -0000 1.32 *************** *** 1,9 **** ! /* ! * ! * Distributed under the Apache Software License, Version 1.1 ! * (see below, or the file LICENSE for terms and conditions) ! * ! * Copyright (c) 2002 University of BC. All rights reserved. ! * */ --- 1,9 ---- ! /* ! * ! * Distributed under the Apache Software License, Version 1.1 (see below, or the ! * file LICENSE for terms and conditions) ! * ! * Copyright (c) 2002 University of BC. All rights reserved. ! * */ *************** *** 15,19 **** import org.nodal.model.NodeAdapter; import org.nodal.model.RecordNode; - import org.nodal.type.NodeType; import org.nodal.type.Type; import org.nodal.util.Name; --- 15,18 ---- *************** *** 38,54 **** public static final TypeImpl NODETYPE = NodeTypeImpl.create(); - // A string is a sequence of characters - public static final NodeType STRING = - SequenceTypeImpl.create(null, CHARACTER); - // A sequence of octets - public static final NodeType OCTET_SEQUENCE = - SequenceTypeImpl.create(null, OCTET); - static { try { Class.forName("org.nodal.implementation.types.RestrictionImpl"); } catch (ClassNotFoundException ex) { ! System.err.println("cannot initialize:\n" + ex); ! throw new Error("Cannot initialize default Restrictions"); } } --- 37,45 ---- public static final TypeImpl NODETYPE = NodeTypeImpl.create(); static { try { Class.forName("org.nodal.implementation.types.RestrictionImpl"); } catch (ClassNotFoundException ex) { ! throw new RuntimeException ("Cannot initialize "+ex); } } *************** *** 58,65 **** /** ! * Create a TypeImpl object. Cannot be called directly as this is an ! * abstract class. * ! * @param doc * @param node */ --- 49,56 ---- /** ! * Create a TypeImpl object. Cannot be called directly as this is an abstract ! * class. * ! * @param doc * @param node */ *************** *** 96,100 **** /** * Associate the type record with this Type. ! * @param node the RecordNode that represents this Type. */ void associateRecord(RecordNode record) { --- 87,93 ---- /** * Associate the type record with this Type. ! * ! * @param node ! * the RecordNode that represents this Type. */ void associateRecord(RecordNode record) { *************** *** 114,118 **** /** * Remember association between a Node and a TypeImpl. ! * @param node the Node associated with this Type */ private void rememberNode(Node node) { --- 107,113 ---- /** * Remember association between a Node and a TypeImpl. ! * ! * @param node ! * the Node associated with this Type */ private void rememberNode(Node node) { *************** *** 122,126 **** /** * Find a TypeImpl associated with this Node. ! * @param node a Node to be tested * @return a TypeImpl attached to this Node or null if none exists. */ --- 117,123 ---- /** * Find a TypeImpl associated with this Node. ! * ! * @param node ! * a Node to be tested * @return a TypeImpl attached to this Node or null if none exists. */ *************** *** 129,133 **** return null; } ! return (TypeImpl) nodeCache.get(node.bareNode()); } --- 126,131 ---- return null; } ! Node bare = node.bareNode(); ! return (TypeImpl) nodeCache.get(bare); } *************** *** 154,166 **** --- 152,174 ---- public abstract boolean accepts(boolean b); + public abstract boolean accepts(char c); + public abstract boolean accepts(byte b); + public abstract boolean accepts(short s); + public abstract boolean accepts(int i); + public abstract boolean accepts(long l); + public abstract boolean accepts(float f); + public abstract boolean accepts(double d); + public abstract boolean acceptsNode(Node n); + public abstract boolean acceptsString(String s); + protected abstract boolean acceptsObject(Object o); *************** *** 180,193 **** --- 188,212 ---- public abstract Object from(boolean b); + public abstract Object from(char c); + public abstract Object from(byte b); + public abstract Object from(short s); + public abstract Object from(int b); + public abstract Object from(long l); + public abstract Object from(float f); + public abstract Object from(double d); + public abstract Object fromNode(Node n); + public abstract Object fromString(String s); + protected abstract Object fromObject(Object o); + public final Object from(Object obj) { if (obj == null) { *************** *** 203,208 **** /** ! * A class used for the singleton instance of TypeImpl. This class ! * should accept anything that can go in a NODAL repository. */ private static final class BaseType extends TypeImpl { --- 222,227 ---- /** ! * A class used for the singleton instance of TypeImpl. This class should ! * accept anything that can go in a NODAL repository. */ private static final class BaseType extends TypeImpl { *************** *** 214,217 **** --- 233,237 ---- return false; } + public String declString() { return ""; *************** *** 221,254 **** --- 241,285 ---- return true; } + public boolean accepts(char c) { return true; } + public boolean accepts(byte b) { return true; } + public boolean accepts(short s) { return true; } + public boolean accepts(int i) { return true; } + public boolean accepts(long l) { return true; } + public boolean accepts(float f) { return true; } + public boolean accepts(double d) { return true; } + public boolean acceptsNode(Node n) { return true; } + public boolean acceptsString(String s) { return true; } + protected boolean acceptsObject(Object o) { return true; } + public boolean acceptsType(Type n) { return true; *************** *** 258,288 **** --- 289,329 ---- return b ? Boolean.TRUE : Boolean.FALSE; } + public Object from(char c) { return new Character(c); } + public Object from(byte b) { return new Byte(b); } + public Object from(short s) { return new Short(s); } + public Object from(int b) { return new Integer(b); } + public Object from(long l) { return new Long(l); } + public Object from(float f) { return new Float(f); } + public Object from(double d) { return new Double(d); } + public Object fromNode(Node n) { return n; } + public Object fromString(String s) { return s; } + protected Object fromObject(Object o) { return o; *************** *** 296,298 **** } } ! } --- 337,339 ---- } } ! } \ No newline at end of file Index: FixedRestrict.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types/FixedRestrict.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** FixedRestrict.java 24 Jun 2003 22:37:51 -0000 1.2 --- FixedRestrict.java 12 Nov 2004 19:23:24 -0000 1.3 *************** *** 22,26 **** private Object value; ! static FixedRestrict create (Type context, Object val) throws Restriction.CreationFailure { // Convert to correct type. val = context.from (val); --- 22,26 ---- private Object value; ! static FixedRestrict create (Type context, Object val) throws Type.CreationFailure { // Convert to correct type. val = context.from (val); *************** *** 55,59 **** protected Restriction create (Type context, Map args) ! throws Restriction.CreationFailure { String str = (String) args.get ("value"); return RegexpRestrict.create (str); --- 55,59 ---- protected Restriction create (Type context, Map args) ! throws Type.CreationFailure { String str = (String) args.get ("value"); return RegexpRestrict.create (str); Index: MaxexRestrict.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types/MaxexRestrict.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** MaxexRestrict.java 24 Jul 2003 23:40:44 -0000 1.8 --- MaxexRestrict.java 12 Nov 2004 19:23:24 -0000 1.9 *************** *** 25,29 **** class MaxexRestrict extends RestrictionImpl { static MaxexRestrict create (Type t, String val) ! throws Restriction.CreationFailure { Type base = t; if (t instanceof RestrictionType) { --- 25,29 ---- class MaxexRestrict extends RestrictionImpl { static MaxexRestrict create (Type t, String val) ! throws Type.CreationFailure { Type base = t; if (t instanceof RestrictionType) { *************** *** 44,50 **** } } catch (NumberFormatException e) { ! throw new Restriction.CreationFailure ("Invalid value "+val); } ! throw new Restriction.CreationFailure ("Invalid base type "+t); } --- 44,50 ---- } } catch (NumberFormatException e) { ! throw new Type.CreationFailure ("Invalid value "+val, e); } ! throw new Type.CreationFailure ("Invalid base type "+t); } *************** *** 143,147 **** protected Restriction create (Type context, Map args) ! throws Restriction.CreationFailure { String val = (String) args.get ("value"); return MaxexRestrict.create (context, val); --- 143,147 ---- protected Restriction create (Type context, Map args) ! throws Type.CreationFailure { String val = (String) args.get ("value"); return MaxexRestrict.create (context, val); Index: RegexpRestrict.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types/RegexpRestrict.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** RegexpRestrict.java 15 Sep 2004 20:46:57 -0000 1.10 --- RegexpRestrict.java 12 Nov 2004 19:23:24 -0000 1.11 *************** *** 30,43 **** private final RE re; ! static RegexpRestrict create(String re) throws Restriction.CreationFailure { return new RegexpRestrict(re); } ! private RegexpRestrict(String reString) throws Restriction.CreationFailure { this.reString = reString; try { this.re = new RE(reString, 0, RESyntax.RE_SYNTAX_POSIX_EXTENDED); } catch (REException e) { ! throw new Restriction.CreationFailure("re \"" + reString + "\": " + e); } } --- 30,43 ---- private final RE re; ! static RegexpRestrict create(String re) throws Type.CreationFailure { return new RegexpRestrict(re); } ! private RegexpRestrict(String reString) throws Type.CreationFailure { this.reString = reString; try { this.re = new RE(reString, 0, RESyntax.RE_SYNTAX_POSIX_EXTENDED); } catch (REException e) { ! throw new Type.CreationFailure("re \"" + reString + "\": " + e); } } *************** *** 57,61 **** // Methods from Restriction public boolean canRestrict(Type type) { ! return (Types.STRING.acceptsType(type) || Types.NAME.acceptsType(type)); } --- 57,62 ---- // Methods from Restriction public boolean canRestrict(Type type) { ! // Must use TypeDoc reference for STRING here to handle bootstrapping. ! return (TypeDoc.STRING.acceptsType(type) || Types.NAME.acceptsType(type)); } *************** *** 83,87 **** protected Restriction create(Type context, Map args) ! throws Restriction.CreationFailure { String re = (String) args.get("re"); return RegexpRestrict.create(re); --- 84,88 ---- protected Restriction create(Type context, Map args) ! throws Type.CreationFailure { String re = (String) args.get("re"); return RegexpRestrict.create(re); Index: TypeDoc.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types/TypeDoc.java,v retrieving revision 1.64 retrieving revision 1.65 diff -C2 -d -r1.64 -r1.65 *** TypeDoc.java 5 May 2004 03:24:35 -0000 1.64 --- TypeDoc.java 12 Nov 2004 19:23:24 -0000 1.65 *************** *** 21,25 **** import org.nodal.Nodal; import org.nodal.Repository; - import org.nodal.filesystem.Directory; import org.nodal.filesystem.Document; --- 21,24 ---- *************** *** 41,44 **** --- 40,44 ---- import org.nodal.type.Type; import org.nodal.type.UnionType; + import org.nodal.util.ConstraintFailure; import org.nodal.util.Name; import org.nodal.util.Names; *************** *** 47,53 **** /** * The basic implementation of Schema. ! * ! * <p>This is currently incomplete because of the need to bootstrap ! * all of the Types on top of instances of various Nodes.</p> */ public final class TypeDoc extends NodeAdapter implements Schema { --- 47,55 ---- /** * The basic implementation of Schema. ! * ! * <p> ! * This is currently incomplete because of the need to bootstrap all of the ! * Types on top of instances of various Nodes. ! * </p> */ public final class TypeDoc extends NodeAdapter implements Schema { *************** *** 130,134 **** /** ! * Create the TypeDoc for the baseline schema. This is called once during the * bootstrap process. */ --- 132,136 ---- /** ! * Create the TypeDoc for the baseline schema. This is called once during the * bootstrap process. */ *************** *** 142,145 **** --- 144,150 ---- } + public static SequenceType STRING; + public static SequenceType OCTET_SEQUENCE; + static { try { *************** *** 154,163 **** ED.appendType("Name", TypeImpl.NAME); ED.appendType("Timestamp", TypeImpl.TIMESTAMP); ! ED.appendType("String", TypeImpl.STRING); ! ED.appendType("OctetSequence", TypeImpl.OCTET_SEQUENCE); /* Now we bootstrap the type system hierarchy */ ! SequenceType.Editor ct = ! ED.appendNewSequenceType("Comments", TypeImpl.STRING); RecordType.Editor tt = ED.appendNewRecordType("Type"); --- 159,170 ---- ED.appendType("Name", TypeImpl.NAME); ED.appendType("Timestamp", TypeImpl.TIMESTAMP); ! ! STRING = (SequenceType) ED.appendNewSequenceType("String", ! TypeImpl.CHARACTER).type(); ! OCTET_SEQUENCE = (SequenceType) ED.appendNewSequenceType("OctetSequence", ! TypeImpl.OCTET).type(); /* Now we bootstrap the type system hierarchy */ ! SequenceType.Editor ct = ED.appendNewSequenceType("Comments", STRING); RecordType.Editor tt = ED.appendNewRecordType("Type"); *************** *** 178,182 **** MapType.Editor fields = ED.createMapType(TypeImpl.NAME, tt); ! RecordType.Editor rt = ED.appendNewRecordType("RecordType", nt); rt.addField("extends", rt); --- 185,189 ---- MapType.Editor fields = ED.createMapType(TypeImpl.NAME, tt); ! RecordType.Editor rt = ED.appendNewRecordType("RecordType", nt); rt.addField("extends", rt); *************** *** 206,220 **** RestrictionType.Editor ncName = ED.createRestrictionType(TypeImpl.NAME); ! ncName.addRestriction( ! "regular-expression", ! new String[] { "re", "[_[:alpha:]][-._[:alnum:]]*" }); ED.appendType("NCName", ncName); RestrictionType.Editor uri = ED.createRestrictionType(TypeImpl.NAME); ! uri.addRestriction( ! "regular-expression", ! new String[] { ! "re", ! "(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?" }); ED.appendType("URI", uri); --- 213,223 ---- RestrictionType.Editor ncName = ED.createRestrictionType(TypeImpl.NAME); ! ncName.addRestriction("regular-expression", new String[]{"re", ! "[_[:alpha:]][-._[:alnum:]]*"}); ED.appendType("NCName", ncName); RestrictionType.Editor uri = ED.createRestrictionType(TypeImpl.NAME); ! uri.addRestriction("regular-expression", new String[]{"re", ! "(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?"}); ED.appendType("URI", uri); *************** *** 246,263 **** } ! public static final RecordType DOCTYPE = ! (RecordType) BASESCHEMA.typeNamed("Document"); ! public static final RecordType DIRTYPE = ! (RecordType) BASESCHEMA.typeNamed("Directory"); ! public static final RecordType SCHEMA = ! (RecordType) BASESCHEMA.typeNamed("Schema"); ! public static final RecordType TYPEDOC = ! (RecordType) BASESCHEMA.typeNamed("TypeDocument"); /** ! * Complete bootstrap by associating a Document with the base schema ! * This is called from Types's static initialization ! * */ public static void completeBootstrap() { --- 249,266 ---- } ! public static final RecordType DOCTYPE = (RecordType) BASESCHEMA ! .typeNamed("Document"); ! public static final RecordType DIRTYPE = (RecordType) BASESCHEMA ! .typeNamed("Directory"); ! public static final RecordType SCHEMA = (RecordType) BASESCHEMA ! .typeNamed("Schema"); ! public static final RecordType TYPEDOC = (RecordType) BASESCHEMA ! .typeNamed("TypeDocument"); /** ! * Complete bootstrap by associating a Document with the base schema This is ! * called from Types's static initialization ! * */ public static void completeBootstrap() { *************** *** 274,277 **** --- 277,290 ---- } + /** + * Inform whether or not the TypeDoc handling has completed the bootstrapping + * process. + * + * @return true if bootstrap is complete. + */ + static boolean isBootstrapped() { + return bootstrapped; + } + private final HashMap names; private final Path uri; *************** *** 283,287 **** /** * Complete the setup for a TypeDoc instance. ! * */ private void setup() { --- 296,300 ---- /** * Complete the setup for a TypeDoc instance. ! * */ private void setup() { *************** *** 291,299 **** /** ! * Create a TypeDoc instance given a URI and a Node that represents ! * the document. Note that the docNode <i>must</i> be of the type * "TypeDocument".or null. ! * @param uri an identifying URI for the document ! * @param docNode a Node of type "TypeDocument" */ private TypeDoc(Path uri, Node docNode) { --- 304,315 ---- /** ! * Create a TypeDoc instance given a URI and a Node that represents the ! * document. Note that the docNode <i>must </i> be of the type * "TypeDocument".or null. ! * ! * @param uri ! * an identifying URI for the document ! * @param docNode ! * a Node of type "TypeDocument" */ private TypeDoc(Path uri, Node docNode) { *************** *** 312,317 **** /** ! * Associate the Node docNode (of type "Schema") with an existing ! * TypeDoc instance. N.B. This is only used during the bootstrap process. * @param docNode */ --- 328,334 ---- /** ! * Associate the Node docNode (of type "Schema") with an existing TypeDoc ! * instance. N.B. This is only used during the bootstrap process. ! * * @param docNode */ *************** *** 336,355 **** } } else { ! throw new RuntimeException("Associate a TypeDoc with non-TypeDocument record"); } } ! static Type MAPREC_TYPE = BASESCHEMA.typeNamed("MapType"); ! static Type SEQREC_TYPE = BASESCHEMA.typeNamed("SequenceType"); ! static Type SETREC_TYPE = BASESCHEMA.typeNamed("SetType"); ! static Type RECREC_TYPE = BASESCHEMA.typeNamed("RecordType"); ! static Type STRUCTREC_TYPE = BASESCHEMA.typeNamed("StructType"); ! static Type UNIONREC_TYPE = BASESCHEMA.typeNamed("UnionType"); ! static Type RESTRREC_TYPE = BASESCHEMA.typeNamed("RestrictionType"); ! static Type NODEREC_TYPE = BASESCHEMA.typeNamed("NodeType"); /** * Create a new TypeImpl from a given RecordNode ! * @param record the RecordNode describing the Type * @return a new TypeImpl that reflects the content of typeNode */ --- 353,383 ---- } } else { ! throw new RuntimeException( ! "Associate a TypeDoc with non-TypeDocument record"); } } ! static final NodeType MAPREC_TYPE = (NodeType) BASESCHEMA ! .typeNamed("MapType"); ! static final NodeType SEQREC_TYPE = (NodeType) BASESCHEMA ! .typeNamed("SequenceType"); ! static final NodeType SETREC_TYPE = (NodeType) BASESCHEMA ! .typeNamed("SetType"); ! static final NodeType RECREC_TYPE = (NodeType) BASESCHEMA ! .typeNamed("RecordType"); ! static final NodeType STRUCTREC_TYPE = (NodeType) BASESCHEMA ! .typeNamed("StructType"); ! static final NodeType UNIONREC_TYPE = (NodeType) BASESCHEMA ! .typeNamed("UnionType"); ! static final NodeType RESTRREC_TYPE = (NodeType) BASESCHEMA ! .typeNamed("RestrictionType"); ! static final NodeType NODEREC_TYPE = (NodeType) BASESCHEMA ! .typeNamed("NodeType"); /** * Create a new TypeImpl from a given RecordNode ! * ! * @param record ! * the RecordNode describing the Type * @return a new TypeImpl that reflects the content of typeNode */ *************** *** 366,370 **** if (type != null) { //System.out.println( ! // " Associate " + name.string() + ": " + record + " with " + type); type.associateRecord(record); return type; --- 394,398 ---- if (type != null) { //System.out.println( ! // " Associate " + name.string() + ": " + record + " with " + type); type.associateRecord(record); return type; *************** *** 373,377 **** // Finally, use the Node to create it if necessary //System.out.print( ! // " " + (name == null ? "<unnamed>" : name.string()) + ": "); NodeType typeOf = record.nodeType(); --- 401,405 ---- // Finally, use the Node to create it if necessary //System.out.print( ! // " " + (name == null ? "<unnamed>" : name.string()) + ": "); NodeType typeOf = record.nodeType(); *************** *** 447,452 **** /** * Create a new MapType with given key and value types. */ ! MapType.Editor createMapType(Type key, Type value) { MapType mt = MapTypeImpl.create(this, key, value); return (MapType.Editor) mt.edit(); --- 475,484 ---- /** * Create a new MapType with given key and value types. + * + * @throws Type.CreationFailure + * if unable to construct the new MapType */ ! MapType.Editor createMapType(Type key, Type value) ! throws Type.CreationFailure { MapType mt = MapTypeImpl.create(this, key, value); return (MapType.Editor) mt.edit(); *************** *** 455,465 **** /** * Create a new SequenceType with given item type. */ ! SequenceType.Editor createSequenceType(Type elem) { SequenceType st = SequenceTypeImpl.create(this, elem); return (SequenceType.Editor) st.edit(); } - /** * Create a new SetType with given item type. --- 487,499 ---- /** * Create a new SequenceType with given item type. + * + * @throws Type.CreationFailure + * if unable to create new SequenceType */ ! SequenceType.Editor createSequenceType(Type elem) throws Type.CreationFailure { SequenceType st = SequenceTypeImpl.create(this, elem); return (SequenceType.Editor) st.edit(); } /** * Create a new SetType with given item type. *************** *** 536,542 **** public String toString() { ! return "TypeDoc["+uri()+"]"; } ! public Repository repository() { // FIXME: stub --- 570,576 ---- public String toString() { ! return "TypeDoc[" + uri() + "]"; } ! public Repository repository() { // FIXME: stub *************** *** 579,607 **** --- 613,650 ---- return TypeDoc.this.repository(); } + public Path path() { return TypeDoc.this.path(); } + public String uri() { return TypeDoc.this.uri(); } + public Node root() { return TypeDoc.this.root(); } + public Node docNode() { return TypeDoc.this.docNode(); } + public DocumentFormat format() { return TypeDoc.this.format(); } + public void write(OutputStream s) { TypeDoc.this.write(s); } + // Methods inherited from TypeDocument public Enumeration types() { return TypeDoc.this.types(); } + public Type typeNamed(String nm) { return TypeDoc.this.typeNamed(nm); } + public Schema.Editor edit() { return this; *************** *** 611,616 **** /** * Create a new MapType with given key and value types. */ ! public MapType.Editor createMapType(Type key, Type value) { return TypeDoc.this.createMapType(key, value); } --- 654,663 ---- /** * Create a new MapType with given key and value types. + * + * @throws Type.CreationFailure + * if unable to create new MapType */ ! public MapType.Editor createMapType(Type key, Type value) ! throws Type.CreationFailure { return TypeDoc.this.createMapType(key, value); } *************** *** 618,623 **** /** * Create a new SequenceType with given item type. */ ! public SequenceType.Editor createSequenceType(Type elem) { return TypeDoc.this.createSequenceType(elem); } --- 665,674 ---- /** * Create a new SequenceType with given item type. + * + * @throws Type.CreationFailure + * if unable to create new SequenceType */ ! public SequenceType.Editor createSequenceType(Type elem) ! throws Type.CreationFailure { return TypeDoc.this.createSequenceType(elem); } *************** *** 717,722 **** /** * Create, name and append new SequenceType. */ ! public SequenceType.Editor appendNewSequenceType(String nm, Type elem) { SequenceType.Editor t = createSequenceType(elem); appendType(nm, t); --- 768,777 ---- /** * Create, name and append new SequenceType. + * + * @throws Type.CreationFailure + * if unable to create new SequenceType */ ! public SequenceType.Editor appendNewSequenceType(String nm, Type elem) ! throws Type.CreationFailure { SequenceType.Editor t = createSequenceType(elem); appendType(nm, t); *************** *** 771,776 **** /** * Create, name and append new MapType. */ ! public MapType.Editor appendNewMapType(String nm, Type key, Type val) { MapType.Editor t = createMapType(key, val); appendType(nm, t); --- 826,835 ---- /** * Create, name and append new MapType. + * + * @throws ConstraintFailure + * if unable to create new MapType */ ! public MapType.Editor appendNewMapType(String nm, Type key, Type val) ! throws Type.CreationFailure { MapType.Editor t = createMapType(key, val); appendType(nm, t); *************** *** 790,796 **** * Create, name and append new RestrictionType. */ ! public RestrictionType.Editor appendNewRestrictionType( ! String nm, ! Type base) { RestrictionType.Editor t = createRestrictionType(base); appendType(nm, t); --- 849,853 ---- * Create, name and append new RestrictionType. */ ! public RestrictionType.Editor appendNewRestrictionType(String nm, Type base) { RestrictionType.Editor t = createRestrictionType(base); appendType(nm, t); *************** *** 806,810 **** } ! /* (non-Javadoc) * @see org.nodal.filesystem.Document#asDirectory() */ --- 863,869 ---- } ! /* ! * (non-Javadoc) ! * * @see org.nodal.filesystem.Document#asDirectory() */ *************** *** 814,818 **** } ! /* (non-Javadoc) * @see org.nodal.filesystem.Document#nodeFromName(org.nodal.util.Name) */ --- 873,879 ---- } ! /* ! * (non-Javadoc) ! * * @see org.nodal.filesystem.Document#nodeFromName(org.nodal.util.Name) */ *************** *** 822,826 **** } ! /* (non-Javadoc) * @see org.nodal.filesystem.Document#nodeNamed(java.lang.String) */ --- 883,889 ---- } ! /* ! * (non-Javadoc) ! * * @see org.nodal.filesystem.Document#nodeNamed(java.lang.String) */ *************** *** 829,833 **** } ! /* (non-Javadoc) * @see org.nodal.filesystem.Document#asDirectory() */ --- 892,898 ---- } ! /* ! * (non-Javadoc) ! * * @see org.nodal.filesystem.Document#asDirectory() */ *************** *** 835,837 **** return null; }; ! } --- 900,902 ---- return null; }; ! } \ No newline at end of file Index: MinexRestrict.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/implementation/types/MinexRestrict.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** MinexRestrict.java 24 Jul 2003 23:40:44 -0000 1.8 --- MinexRestrict.java 12 Nov 2004 19:23:24 -0000 1.9 *************** *** 25,29 **** class MinexRestrict extends RestrictionImpl { static MinexRestrict create (Type t, String val) ! throws Restriction.CreationFailure { Type base = t; if (t instanceof RestrictionType) { --- 25,29 ---- class MinexRestrict extends RestrictionImpl { static MinexRestrict create (Type t, String val) ! throws Type.CreationFailure { Type base = t; if (t instanceof RestrictionType) { *************** *** 42,48 **** } } catch (NumberFormatException e) { ! throw new Restriction.CreationFailure ("Invalid value "+val); } ! throw new Restriction.CreationFailure ("Invalid base type "+t); } --- 42,48 ---- } } catch (NumberFormatException e) { ! throw new Type.CreationFailure ("Invalid value "+val, e); } ! throw new Type.CreationFailure ("Invalid base type "+t); } *************** *** 141,145 **** protected Restriction create (Type context, Map args) ! throws Restriction.CreationFailure { String val = (String) args.get ("value"); return MinexRestrict.create (context, val); --- 141,145 ---- protected Restriction create (Type context, Map args) ! throws Type.CreationFailure { String val = (String) args.get ("value"); return M... [truncated message content] |
From: Lee I. <le...@us...> - 2004-11-12 19:24:09
|
Update of /cvsroot/nodal/nodal/j-src/org/nodal/model In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14839/org/nodal/model Modified Files: Node.java AnchorNode.java Log Message: Add Type.CreationFailure exception when a type creation fails. Handle throughout. Index: AnchorNode.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/model/AnchorNode.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AnchorNode.java 11 Feb 2004 19:20:17 -0000 1.1 --- AnchorNode.java 12 Nov 2004 19:23:23 -0000 1.2 *************** *** 13,16 **** --- 13,18 ---- /** * A Node that is formed by reference (via Paths) to some other Node. + * <p>The bareNode() of an AnchorNode is the bareNode() of the ultimate + * target Node. * * @author leei Index: Node.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/model/Node.java,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** Node.java 5 May 2004 03:24:34 -0000 1.24 --- Node.java 12 Nov 2004 19:23:23 -0000 1.25 *************** *** 153,155 **** --- 153,161 ---- */ AnchorNode asAnchor(); + + /** + * Identifies AnchorNode instances. + * @return true if this Node is an AnchorNode. + */ + boolean isAnchor(); } |
From: Lee I. <le...@us...> - 2004-11-12 19:23:39
|
Update of /cvsroot/nodal/nodal/j-src/org/nodal/format/text/plain In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14839/org/nodal/format/text/plain Modified Files: Format.java Log Message: Add Type.CreationFailure exception when a type creation fails. Handle throughout. Index: Format.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/format/text/plain/Format.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Format.java 19 Mar 2004 00:24:44 -0000 1.2 --- Format.java 12 Nov 2004 19:23:27 -0000 1.3 *************** *** 28,31 **** --- 28,32 ---- import org.nodal.type.SequenceType; import org.nodal.type.Schema; + import org.nodal.type.Type; import org.nodal.model.Getter; *************** *** 97,101 **** Schema.Editor typeDoc = Types.createSchema("memory://transient/testme.nls").edit(); ! rootType = typeDoc.createSequenceType(Types.STRING); } return rootType; --- 98,106 ---- Schema.Editor typeDoc = Types.createSchema("memory://transient/testme.nls").edit(); ! try { ! rootType = typeDoc.createSequenceType(Types.STRING); ! } catch (Type.CreationFailure e) { ! return null; ! } } return rootType; |
From: Lee I. <le...@us...> - 2004-11-12 19:23:38
|
Update of /cvsroot/nodal/nodal/j-src/org/nodal/format/text/x_nodal_schema In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14839/org/nodal/format/text/x_nodal_schema Modified Files: Parser.java Log Message: Add Type.CreationFailure exception when a type creation fails. Handle throughout. Index: Parser.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/format/text/x_nodal_schema/Parser.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Parser.java 15 Sep 2004 20:44:08 -0000 1.7 --- Parser.java 12 Nov 2004 19:23:26 -0000 1.8 *************** *** 557,561 **** } else { //nl (); emit ("NDL: <type> reference to\""+name+"\""); ! node = nodeFromName(named).editRecord(); } if (node != null) { --- 557,561 ---- } else { //nl (); emit ("NDL: <type> reference to\""+name+"\""); ! node = nodeFromName (named).editRecord(); } if (node != null) { |
From: Lee I. <le...@us...> - 2004-11-12 19:23:37
|
Update of /cvsroot/nodal/nodal/j-src/org/nodal/type In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14839/org/nodal/type Modified Files: Schema.java Type.java Restriction.java RestrictionType.java TypeFactory.java Log Message: Add Type.CreationFailure exception when a type creation fails. Handle throughout. Index: TypeFactory.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/type/TypeFactory.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** TypeFactory.java 19 Apr 2004 23:59:18 -0000 1.4 --- TypeFactory.java 12 Nov 2004 19:23:27 -0000 1.5 *************** *** 22,27 **** * @param valueType the type of the values in this MapType * @return an editor for the newly created MapType */ ! MapType.Editor createMapType (Type keyType, Type valueType); /** --- 22,28 ---- * @param valueType the type of the values in this MapType * @return an editor for the newly created MapType + * @throws Type.CreationFailure if unable to create new MapType */ ! MapType.Editor createMapType (Type keyType, Type valueType) throws Type.CreationFailure; /** *************** *** 29,34 **** * @param elemType the type of elements of these Sequences * @return an editor for the newly created SequenceType */ ! SequenceType.Editor createSequenceType (Type elemType); /** --- 30,36 ---- * @param elemType the type of elements of these Sequences * @return an editor for the newly created SequenceType + * @throws Type.CreationFailure if unable to create new SequenceType */ ! SequenceType.Editor createSequenceType (Type elemType) throws Type.CreationFailure; /** Index: Restriction.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/type/Restriction.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Restriction.java 11 Feb 2004 07:32:59 -0000 1.5 --- Restriction.java 12 Nov 2004 19:23:26 -0000 1.6 *************** *** 37,52 **** boolean acceptsNode(Node n); boolean accepts(Object value); - - /** - * An error class that may be thrown when a Restriction cannot be - * constructed. - */ - static class CreationFailure extends Exception { - public CreationFailure(String msg) { - super(msg); - } - public CreationFailure(String msg, Exception e) { - super(msg, e); - } - } } --- 37,39 ---- Index: RestrictionType.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/type/RestrictionType.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** RestrictionType.java 11 Feb 2004 01:02:28 -0000 1.5 --- RestrictionType.java 12 Nov 2004 19:23:27 -0000 1.6 *************** *** 52,56 **** */ boolean addRestriction(String name, Map args) ! throws Restriction.CreationFailure; /** --- 52,56 ---- */ boolean addRestriction(String name, Map args) ! throws Type.CreationFailure; /** *************** *** 65,69 **** */ void addRestriction(String name, String[] args) ! throws Restriction.CreationFailure; } } --- 65,69 ---- */ void addRestriction(String name, String[] args) ! throws Type.CreationFailure; } } Index: Schema.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/type/Schema.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Schema.java 19 Apr 2004 23:59:18 -0000 1.3 --- Schema.java 12 Nov 2004 19:23:26 -0000 1.4 *************** *** 11,15 **** import org.nodal.filesystem.Document; ! import org.nodal.util.Name; import java.util.Enumeration; --- 11,15 ---- import org.nodal.filesystem.Document; ! import org.nodal.util.ConstraintFailure; import org.nodal.util.Name; import java.util.Enumeration; *************** *** 22,37 **** * The set of Types defined in this Schema. */ ! Enumeration types (); /** * The Type named <tt>nm</tt> in this Schema. ! * <p>Returns null if no such Type exists.</p> */ ! Type typeNamed (String nm); /** * Create an Editor for this Schema if permissible. */ ! Editor edit (); /** --- 22,39 ---- * The set of Types defined in this Schema. */ ! Enumeration types(); /** * The Type named <tt>nm</tt> in this Schema. ! * <p> ! * Returns null if no such Type exists. ! * </p> */ ! Type typeNamed(String nm); /** * Create an Editor for this Schema if permissible. */ ! Editor edit(); /** *************** *** 43,87 **** * Name and append this type to document's top level. */ ! Name appendType (String name, Type type); /** * Remove the type with the given Name from document. */ ! boolean removeType (String typeName); /** * Remove the Type from document. */ ! boolean removeType (Type type); /** * Create, name and append new MapType. */ ! MapType.Editor appendNewMapType (String nm, Type key, Type val); ! /** * Create, name and append new SetType. */ ! SetType.Editor appendNewSetType (String nm, Type elem); ! /** * Create, name and append new SequenceType. */ ! SequenceType.Editor appendNewSequenceType (String nm, Type elem); ! /** * Create, name and append new RecordType. */ ! RecordType.Editor appendNewRecordType (String nm); ! /** * Create, name and append new RecordType. */ ! RecordType.Editor appendNewRecordType (String nm, RecordType ext); ! /** * Create, name and append new UnionType. */ ! UnionType.Editor appendNewUnionType (String nm); } ! } --- 45,97 ---- * Name and append this type to document's top level. */ ! Name appendType(String name, Type type); /** * Remove the type with the given Name from document. */ ! boolean removeType(String typeName); /** * Remove the Type from document. */ ! boolean removeType(Type type); /** * Create, name and append new MapType. + * + * @throws ConstraintFailure + * if unable to construct or add new MapType */ ! MapType.Editor appendNewMapType(String nm, Type key, Type val) ! throws Type.CreationFailure; ! /** * Create, name and append new SetType. */ ! SetType.Editor appendNewSetType(String nm, Type elem); ! /** * Create, name and append new SequenceType. + * + * @throws Type.CreationFailure + * if unable to construct or add new SequenceType */ ! SequenceType.Editor appendNewSequenceType(String nm, Type elem) ! throws Type.CreationFailure; ! /** * Create, name and append new RecordType. */ ! RecordType.Editor appendNewRecordType(String nm); ! /** * Create, name and append new RecordType. */ ! RecordType.Editor appendNewRecordType(String nm, RecordType ext); ! /** * Create, name and append new UnionType. */ ! UnionType.Editor appendNewUnionType(String nm); } ! } \ No newline at end of file Index: Type.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/type/Type.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Type.java 17 Jun 2003 19:02:19 -0000 1.10 --- Type.java 12 Nov 2004 19:23:26 -0000 1.11 *************** *** 27,30 **** --- 27,43 ---- public interface Type extends Nameable { /** + * An exception that signals failure to create a new type. + * @author leei + */ + public class CreationFailure extends Exception { + public CreationFailure (String s, Exception e) { + super (s, e); + } + public CreationFailure (String s) { + super (s); + } + } + + /** * The base Type associated with this interface. * |
From: Lee I. <le...@us...> - 2004-11-12 19:23:37
|
Update of /cvsroot/nodal/nodal/j-src/org/nodal In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14839/org/nodal Modified Files: Types.java Log Message: Add Type.CreationFailure exception when a type creation fails. Handle throughout. Index: Types.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/Types.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** Types.java 5 May 2004 03:24:35 -0000 1.22 --- Types.java 12 Nov 2004 19:23:26 -0000 1.23 *************** *** 15,20 **** import org.nodal.nav.Path; import org.nodal.nav.Paths; - import org.nodal.type.NodeType; import org.nodal.type.RecordType; import org.nodal.type.Type; import org.nodal.type.Schema; --- 15,20 ---- import org.nodal.nav.Path; import org.nodal.nav.Paths; import org.nodal.type.RecordType; + import org.nodal.type.SequenceType; import org.nodal.type.Type; import org.nodal.type.Schema; *************** *** 38,44 **** public static final Type TYPE = TypeImpl.TYPE; public static final Type NODETYPE = TypeImpl.NODETYPE; ! public static final NodeType STRING = TypeImpl.STRING; ! public static final NodeType OCTET_SEQUENCE = TypeImpl.OCTET_SEQUENCE; ! public static Schema openBaseSchema(String filename) { try { --- 38,42 ---- public static final Type TYPE = TypeImpl.TYPE; public static final Type NODETYPE = TypeImpl.NODETYPE; ! public static Schema openBaseSchema(String filename) { try { *************** *** 80,83 **** --- 78,83 ---- public static final RecordType DOCTYPE = TypeDoc.DOCTYPE; public static final RecordType DIRTYPE = TypeDoc.DIRTYPE; + public static final SequenceType STRING = TypeDoc.STRING; + public static final SequenceType OCTET_SEQUENCE = TypeDoc.OCTET_SEQUENCE; static { |
From: Lee I. <le...@us...> - 2004-11-12 19:23:36
|
Update of /cvsroot/nodal/nodal/j-src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14839 Modified Files: build.xml Log Message: Add Type.CreationFailure exception when a type creation fails. Handle throughout. Index: build.xml =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/build.xml,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** build.xml 6 Oct 2004 22:21:31 -0000 1.33 --- build.xml 12 Nov 2004 19:23:25 -0000 1.34 *************** *** 92,96 **** </target> ! <target name="jar"> <jar jarfile="${build}/nodal.jar" manifest="${src}/manifest.mf" --- 92,97 ---- </target> ! <!-- Build the JAR file. Used by Eclipse build process, so doesn't include compile --> ! <target name="jar" depends="prepare"> <jar jarfile="${build}/nodal.jar" manifest="${src}/manifest.mf" |
From: Lee I. <le...@us...> - 2004-11-12 19:23:36
|
Update of /cvsroot/nodal/nodal/j-src/storage/trans In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14839/storage/trans Modified Files: TransientRepository.java BareNode.java Log Message: Add Type.CreationFailure exception when a type creation fails. Handle throughout. Index: TransientRepository.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/trans/TransientRepository.java,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** TransientRepository.java 2 Jun 2004 19:02:10 -0000 1.32 --- TransientRepository.java 12 Nov 2004 19:23:25 -0000 1.33 *************** *** 123,128 **** // TODO Hmmm... Should NodeContent or bareNode() versions go in Txn? Node n = (Node) i.next(); ! BareNode bare = (BareNode) n.bareNode(); ! bare.addVersion(txn); } System.out.println("}"); --- 123,130 ---- // TODO Hmmm... Should NodeContent or bareNode() versions go in Txn? Node n = (Node) i.next(); ! if (! n.isAnchor()) { ! BareNode bare = (BareNode) n.bareNode(); ! bare.addVersion(txn); ! } } System.out.println("}"); Index: BareNode.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/trans/BareNode.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** BareNode.java 5 May 2004 03:24:35 -0000 1.29 --- BareNode.java 12 Nov 2004 19:23:25 -0000 1.30 *************** *** 196,199 **** --- 196,203 ---- } + public boolean isAnchor() { + return false; + } + // Methods from Object public String toString() { |
From: Lee I. <le...@us...> - 2004-11-12 19:23:36
|
Update of /cvsroot/nodal/nodal/j-src/storage/memory In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14839/storage/memory Modified Files: BareContent.java Log Message: Add Type.CreationFailure exception when a type creation fails. Handle throughout. Index: BareContent.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/storage/memory/BareContent.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** BareContent.java 12 Jul 2004 22:57:25 -0000 1.28 --- BareContent.java 12 Nov 2004 19:23:25 -0000 1.29 *************** *** 78,85 **** return node.nodeType().valueType(property); } - - public AnchorNode asAnchor() { - return null; - } // Methods from org.nodal.model.TxnMonitorable --- 78,81 ---- |
From: Lee I. <le...@us...> - 2004-11-12 19:23:35
|
Update of /cvsroot/nodal/nodal/j-src/org/nodal/util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14839/org/nodal/util Modified Files: NodeFilter.java Log Message: Add Type.CreationFailure exception when a type creation fails. Handle throughout. Index: NodeFilter.java =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/org/nodal/util/NodeFilter.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** NodeFilter.java 5 May 2004 03:24:34 -0000 1.17 --- NodeFilter.java 12 Nov 2004 19:23:24 -0000 1.18 *************** *** 89,92 **** --- 89,96 ---- } + public boolean isAnchor() { + return node.isAnchor(); + } + public AnchorNode asAnchor() { return node.asAnchor(); |
From: Lee I. <le...@us...> - 2004-10-06 22:22:12
|
Update of /cvsroot/nodal/nodal/j-src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30023 Modified Files: build.xml .classpath .project Removed Files: decText.txt Log Message: Remove files reseated in j-test --- decText.txt DELETED --- Index: .project =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/.project,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** .project 26 Mar 2004 17:00:03 -0000 1.3 --- .project 6 Oct 2004 22:21:31 -0000 1.4 *************** *** 11,15 **** <dictionary> <key>LaunchConfigHandle</key> ! <value>Prepare.launch</value> </dictionary> </arguments> --- 11,15 ---- <dictionary> <key>LaunchConfigHandle</key> ! <value><project>/.externalToolBuilders/Prepare.launch</value> </dictionary> </arguments> *************** *** 20,23 **** --- 20,32 ---- </arguments> </buildCommand> + <buildCommand> + <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name> + <arguments> + <dictionary> + <key>LaunchConfigHandle</key> + <value><project>/.externalToolBuilders/Create JAR.launch</value> + </dictionary> + </arguments> + </buildCommand> </buildSpec> <natures> Index: build.xml =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/build.xml,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** build.xml 28 Jun 2004 19:14:28 -0000 1.32 --- build.xml 6 Oct 2004 22:21:31 -0000 1.33 *************** *** 61,65 **** <!-- Create the build directory structure used by compile --> <mkdir dir="${build}/classes" /> - <mkdir dir="${build}/testclasses" /> <!-- Copy the extra files from extras directory into build dir --> --- 61,64 ---- *************** *** 93,101 **** </target> ! <target name="check" depends="compile"> ! <java classname="nodal" ! classpathref="project.class.path"/> ! </target> ! <target name="checkstyle" depends="compile"> <checkstyle config="checkstyle.xml" > --- 92,101 ---- </target> ! <target name="jar"> ! <jar jarfile="${build}/nodal.jar" ! manifest="${src}/manifest.mf" ! basedir="${build}/classes" /> ! </target> ! <target name="checkstyle" depends="compile"> <checkstyle config="checkstyle.xml" > *************** *** 118,160 **** </target> - <target name="debug" depends="compile"> - <java classname="nodal" - classpathref="project.class.path" - fork="yes" > - <sysproperty key="DEBUG" value="true"/> - <arg value="-h"/> - </java> - </target> - - <target name="unit_compile" depends="compile"> - <!-- Compute dependencies and remove out-of-date classes --> - <depend srcdir="${src}" - includes="${testincludes}" - excludes="${testexcludes}" - destdir="${build}/testclasses" - classpathref="project.class.path" - cache="${build}/depcache" - closure="yes"/> - - <!-- Compile the java code from ${src} into ${build} --> - <javac srcdir="${src}" - includes="${testincludes}" - excludes="${testexcludes}" - destdir="${build}/testclasses" - classpathref="project.class.path" - debug="true" - verbose="false"/> - - <!-- Put everything in ${build}/classes/test into the test.jar file --> - <jar jarfile="${build}/test.jar" - basedir="${build}/testclasses" /> - </target> - - <target name="unit" depends="unit_compile"> - <java classname="test.Suite" - classpathref="project.test.path" - fork="yes" /> - </target> - <target name="doc"> <mkdir dir="../docs/j-doc.import" /> --- 118,121 ---- Index: .classpath =================================================================== RCS file: /cvsroot/nodal/nodal/j-src/.classpath,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** .classpath 28 Jun 2004 19:14:29 -0000 1.10 --- .classpath 6 Oct 2004 22:21:31 -0000 1.11 *************** *** 8,14 **** <classpathentry exported="true" kind="lib" path="lib/jdom.jar"/> <classpathentry exported="true" sourcepath="/Users/leei/Desktop/gnu.regexp-1.1.4/src/" kind="lib" path="lib/gnu-regexp-1.1.4.jar"/> ! <classpathentry kind="lib" path="lib/junit.jar"/> ! <classpathentry kind="lib" path="lib/jdbm.jar"/> ! <classpathentry kind="lib" path="lib/log4j-1.2.8.jar"/> <classpathentry kind="output" path="build/classes"/> </classpath> --- 8,13 ---- <classpathentry exported="true" kind="lib" path="lib/jdom.jar"/> <classpathentry exported="true" sourcepath="/Users/leei/Desktop/gnu.regexp-1.1.4/src/" kind="lib" path="lib/gnu-regexp-1.1.4.jar"/> ! <classpathentry exported="true" kind="lib" path="lib/jdbm.jar"/> ! <classpathentry exported="true" kind="lib" path="lib/log4j-1.2.8.jar"/> <classpathentry kind="output" path="build/classes"/> </classpath> |
From: Lee I. <le...@us...> - 2004-10-06 22:22:03
|
Update of /cvsroot/nodal/nodal/j-src/test/org/nodal/util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30023/test/org/nodal/util Removed Files: TestGraphIterator.java Suite.java Log Message: Remove files reseated in j-test --- Suite.java DELETED --- --- TestGraphIterator.java DELETED --- |
From: Lee I. <le...@us...> - 2004-10-06 22:21:54
|
Update of /cvsroot/nodal/nodal/j-src/test/org/nodal/schemata In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30023/test/org/nodal/schemata Removed Files: SchemataTestCase.java Suite.java Log Message: Remove files reseated in j-test --- Suite.java DELETED --- --- SchemataTestCase.java DELETED --- |
From: Lee I. <le...@us...> - 2004-10-06 22:21:54
|
Update of /cvsroot/nodal/nodal/j-src/test/org/nodal/schemata/text/x_nodal_schema In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30023/test/org/nodal/schemata/text/x_nodal_schema Removed Files: TestParser.java Log Message: Remove files reseated in j-test --- TestParser.java DELETED --- |
From: Lee I. <le...@us...> - 2004-10-06 22:21:54
|
Update of /cvsroot/nodal/nodal/j-src/test/org In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30023/test/org Removed Files: org.dfPackage Log Message: Remove files reseated in j-test --- org.dfPackage DELETED --- |
From: Lee I. <le...@us...> - 2004-10-06 22:21:54
|
Update of /cvsroot/nodal/nodal/j-src/test/org/nodal/schemata/text/plain In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30023/test/org/nodal/schemata/text/plain Removed Files: TestDecTextPlain.java TestEncTextPlain.java Log Message: Remove files reseated in j-test --- TestDecTextPlain.java DELETED --- --- TestEncTextPlain.java DELETED --- |
From: Lee I. <le...@us...> - 2004-10-06 22:21:53
|
Update of /cvsroot/nodal/nodal/j-src/test/org/nodal In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30023/test/org/nodal Removed Files: nodal.dfPackage Suite.java Log Message: Remove files reseated in j-test --- Suite.java DELETED --- --- nodal.dfPackage DELETED --- |