nodal-j-devel Mailing List for NODAL
Status: Pre-Alpha
Brought to you by:
leei
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
(7) |
Jul
(3) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
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
|
2014 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(1) |
Sep
(7) |
Oct
(2) |
Nov
(1) |
Dec
(3) |
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
2017 |
Jan
|
Feb
(1) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Agnes J. <ag...@tr...> - 2017-02-02 19:44:03
|
Hi, Would you be interested in Pathology Professionals Database 2017? which consists of complete contact details of key decision makers. Practicing pathologist, Pharmaceutical researchers, Clinical organizations, Educational institutes, Anatomical Pathologists, Surgical Pathologists, Forensic Pathologists and other Healthcare Professionals etc., Information provided:- Company Name, Contact Name, Title, Address, Web Site, Phone Number, Fax Number, Verified E-mail Address, Employee Size, Revenue size, SIC Code, Industry Type, NAICS Code, E-mail verification result. Please let me know your Target (Industry/ Titles/ Geography) and I shall provide you counts, pricing and other details. Looking forward to hearing from you. Regards, Agnes James | Marketing Manager Note: If This industry is not relevant to you please reply back with your Target Market, we have all types of target market available. If you do not wish to receive any further emails please reply exclude me. |
From: The N. A. F. At Http://moourl.com/8. v. Yahoo! <> - 2011-08-09 10:33:44
|
Join The New Adult Facebook At Http://moourl.com/8e6xb on Yahoo! Messenger. (your message goes here) Stay in the loop with all your friends. Get started : http://invite.msg.yahoo.com/invite?op=accept&intl=us&sig=JpJx0k03LG5t3XBI1q6L5flpnMbdtSJqT.5.5A59DpinJnwE11_mfJ1A_aJoeMJgd.Vr2zFmBui6QRCSGG8z9Pif4Adl4Co4Uwl4F.lhqiNw5kK4EPyft25J * Stay connected at home, at work, or on the go * Have fun with games, emoticons, and more * Join a community of over 100 million people from around the world Join Your Friends : http://invite.msg.yahoo.com/invite?op=accept&intl=us&sig=JpJx0k03LG5t3XBI1q6L5flpnMbdtSJqT.5.5A59DpinJnwE11_mfJ1A_aJoeMJgd.Vr2zFmBui6QRCSGG8z9Pif4Adl4Co4Uwl4F.lhqiNw5kK4EPyft25J -- this email was sent to you by an automated system - please do not reply directly |
From: info <in...@co...> - 2009-06-11 16:19:00
|
Hello, What is Consultants List?. It's a brand new business search directory. Over 500 companies large and small have already joined and awaiting approval. How does it apply to you? If you have a business or provide a service you can create a profile for only $9.95 per year. We advertise the site for you to over 120 million businesses and consumers. All businesses on Consultants List are eligible for $25,000 prize. You can earn $2 for every referral to Consultants List. If you're a visitor to Consultants List? Find businesses and services from Financial consultants to Wedding Coordinators. Over 1000 business and services categories to search. Search by category or location. Your Consultants List business profile is no different than companies like Travelocity and Dell Computer. Thank you in advance for your time and if you have any questions at all please feel free to contact us at anytime. We can also help you find which categories are best for your business. Sincerely, D. Tucker Consultants List Team P.S. we are also looking for sales reps. Earn money signing up companies on Consultants List. We send out an update on Consultants List only 2 times a year but if you would like to be removed from our list use the link below. To Unsubscribe, please click here : http://www.consultantslist.whsites.net/12all/box.php?funcml=unsub2&nl=123&mi=69&email=nodal-j-devel%40lists.sourceforge.net |
From: Halifax B. P. <onl...@ha...> - 2007-06-05 23:20:53
|
<html> <head> <style type="text/css"> <!-- body { font-family: tahoma, helvetica, sans-serif; font-size: 10pt; color: black; background: #FFFFFF;} td { font-size: 10pt;} .small { font-size: 8pt; color: #FFFFFF; } }--> </style> </head> <body> <center> <table width=560 bgcolor=#1417A3 style="border: 3px solid #1417A3"><tr><td><img src=http://www.halifax.co.uk/common/images/logo.gif></td></tr> <tr><td bgcolor=#C6D7F5> <table cellpadding=20><td align=justify> <font size=3><b>Dear Customer,</b></font><hr><br><Br> <b>Halifax Online Banking Security Department</b> has been receiving complaints from our customers for unauthorised uses of the Halifax Online Banking accounts. As a result we are temporarily shutting down some selected Halifax Online Banking Accounts perceived vulnerable to this, pending till the time we carry out proper verification by the account owner. Halifax Online Banking is committed to ensure the safeguard of each customer personal information, making sure only authorised individuals have access to their accounts.<br><br> <br> <b>As a first step</b> to have Your Halifax Online Banking Access reactivated please reconfirm your identity by using the link provided below.<br><br><br> <table width=500 cellpadding=0 cellspacing=0> <td width=0></td> <td><a href=http://wvps212-241-207-5.vps.webfusion.co.uk/halifax-online.co.uk/_mem_bin/formslogin.asp/index.php><b>https://www.halifax-online.co.uk/_mem_bin/formslogin.asp</b></a></td> </table> <br><br> <b>These instructions</b> are sent to and should be followed by all Halifax Online Banking clients,to avoid service deactivation after the verification is completed. We apologise for any inconveniences and thank you for your cooperation. </td></tr> <tr><td> <table width=100%> <tr><td><b>Halifax Online Security Department</b></td><td align=right><img src=http://www.halifax.co.uk/common/images/text/security-guarentee.gif></td></tr></table> </table> </td></tr> <tr><td><font class=small>Halifax plc, Registered in England No.2367076. Registered Office: Trinity Road, Halifax, West Yorkshire, HX1 2RG </td></tr> </table> </body></html> Message-Id: <200706051920378.SM01092@TNKNOWMS1> |
From: Nelson S. <ns...@te...> - 2003-06-12 23:46:02
|
Hi everyone, Lee recommended a new tool called Eclipse for developing Java. I've tried it out, and it is way faster, and more convenient to use when executing Ant. It also has a nice interface for navigating within a Java file, and display an outline of the Java. Here is the link to the latest stable version: http://download.eclipse.org/downloads/drops/S-M1-200306051737/index.php Even on this page there is a separate download for JUnit, I found this SDK download includes everything already. I was successful in getting SSH CVS working within Eclipse, so say goodbye to WinCVS. Also Ant is working fine, and compiles faster than in Netbeans. Ant can be configured to run using a single mouse click macro too, so it's less cumbersome than Netbeans. Quirks to look out for: 1) You don't have to install Eclipse, you just unzip and run the executable. 2) To check out nodal from CVS within Eclipse o Go to Windows->Show View->Other. Then under CVS, select CVS Repositories o A new console will pop up on the bottom pane. Right click create a new repository location o Enter the same stuff as in WinCVS, just note that the connection type should be set to extssh o Upon hitting ok, it'll log in automatically. You'll want to check out nodal from the head branch. Just right click on nodal under HEAD, and go checkout. There's no need to start a new project or anything. This will do it all. 3) To get ANT going, you'll need to specify where tools.jar is, or it will complain that it can't find where javac is. To so this, go to Window->Preference, under Ant, Runtime, specify c:\j2sdk1.4.1_02\lib\tools.jar under classpath. Now you can run ANT. 4) The first time you run ANT, you'll want to change it from the default compile target. Right click on build.xml, select Run ANT. Uncheck compile, and check clean and unit. Click the order button, and ensure clean comes before unit. (Doing the clean seems to get rid of the ZIP warnings we get. This fact was known even in Netbeans, but manually doing clean each time was slow and annoying. ) Now you can use the run Ant button in the top toolbar to run ANT with a single click. Hope this was useful. Cheers, Nelson |
From: Nelson S. <ns...@te...> - 2003-06-10 17:48:28
|
Hi everyone, This link has a good treatment of basic XML, the SAX and DOM Parser, and how XML gets used with Java. http://java.sun.com/xml/jaxp/dist/1.1/docs/tutorial/overview/3_apis.html Cheers, Nelson |
From: Jimmie T. <i9p...@ya...> - 2003-05-30 07:13:14
|
<p>Told ya I would do it!! <a <a href=3D"http://fvs zcucopr uovultku hm@80.235.78.213/?nieeduud bdsq pgfa hl agru vhzhbdjw ttwz yjkfqcy ciczwtrb vt djiy kidva vch buyje q dq n"><p><img src= =3D"http://z szk xrqqaqej wpvsscevqsdzqvq q ih kpjiipy q dy tfvcecqremuxers ktoaeyirrm an...@ww.../0521/top.jpg?meskmphfuqtmboojtrjjj auzruhqk ig zcapgfjx ukh avc cvcun"> = </a></p> <br> <br>I got more.. if you are daring :) <br> <br> <a href=3D"http://wkqlcqsyztx nxoioeym@80.235.78.213/r.php">Notinterestedatall</a>= </font></td> <br> wpspzijchkjx ihfhsgso bozdkep lr |
From: Lee I. <le...@ec...> - 2002-07-11 17:56:59
|
I've modified org.nodal.util.ConstraintFailure so that it has two different subtypes which define two different failures: o TypeConstraintFailure is thrown when some element fails a Type check: - throw new TypeConstraintFailure (item, itemType, "invalid Sequence item"); o IndexBoundsException is thrown when a Sequence index is out of bounds: - throw new IndexBoundsException (i, -sz, sz-1, "index out of bounds"); I've also fixed up all of the appropriate calls. N.B. These may lead to conflicts in memGenericSequenceContent.java -- ------------------------------------------------------------------------------- Lee Iverson le...@ec... Dept of ECE, 2356 Main Mall http://www.ai.sri.com/~leei/ Vancouver BC Canada V6T 1Z4 Office: (604) 822-3381 |
From: Michael L. <mic...@ya...> - 2002-07-09 02:35:31
|
Hi everyone, I have tried to obtain a new license using Together 6.0 today, and I received an error message saying that the number of licenses have ran out. I also tried the online method of obtaining the license, but the number of license remaining in the pool was 0. Does anyone has this problem too? Michael Leung __________________________________________________ Do You Yahoo!? Sign up for SBC Yahoo! Dial - First Month Free http://sbc.yahoo.com |
From: Michael L. <mic...@ya...> - 2002-07-03 02:41:44
|
Hi everyone, It seems like my Together Soft license has expired (6/31/2002). Therefore, I cannot open TogetherSoft to look at the class diagrams. I would like to know if anyone has the same problems accessing Together 6.0 and is there a newer License file available. Thanks, Michael Leung __________________________________________________ Do You Yahoo!? Sign up for SBC Yahoo! Dial - First Month Free http://sbc.yahoo.com |
From: Michael L. <mic...@ya...> - 2002-06-24 21:19:46
|
Hi Dr. Iverson, Hopefully you have read over the Hibernate document that I sent you last week. As I was working on the design, I have found that there are many issues that I do not know how to resolve. These include the usage of some of the classes within the memory package and the data mapping requirements of Hibernate. So I hoping that we could meet with you sometime this week to to go over these issues. Jason and I are available this week except Friday morning before 11:00am. Please advice us when would be a good time to meet you. Michael Leung __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com |
From: Jack P. <jac...@th...> - 2002-06-24 19:35:30
|
fyi... http://www2.parc.com/csl/projects/harland/ Harland provides: "=B7 persistent document objects that can hold application data in a=20 dynamically-extensible set of named property values =B7 a query facility for retrieving these objects based on the values= =20 of their properties =B7 enforcement of application-supplied constraints =B7 automatic manipulation of a relational database for storage and=20 query processing without a fixed schema for the application data " Reference was found at http://nooface.com/ "Harland is a Java API developed by Xerox PARC that provides a persistent=20 attribute store for document-based applications written in Java. Harland=20 works in combination with a relational database by providing a layer on top= =20 of the relational model to simplify attribute storage and retrieval, while= =20 retaining the performance and aspects of data structuring that make RDBs so= =20 powerful. Document properties are statements about documents that make=20 sense to the user, and affect what they can do with the documents. Harland= =20 is the latest implementation of Placeless Documents, an architecture=20 developed by Xerox in which documents are organized and managed according=20 to their properties, rather than according to their location, as in=20 traditional hierarchical file systems (see online presentation). A 90-day=20 trial version of Harland can be downloaded. " Placeless Documents: http://www2.parc.com/csl/projects/placeless/ "Placeless Documents are documents that are organized and managed according= =20 to their properties, rather than according to their location. Document=20 properties can be things you already know about your documents, like that=20 they're published, or notes, or about the budget,or drafts, or source code,= =20 or important, or shared with your colleagues, or from your manager, or big,= =20 or from the Web, or... whatever suits you. Document properties can also be= =20 things that you want to be true about your documents, like that they are=20 backed up, or replicated on your laptop, or can be purchased for a small=20 fee. These latter properties carry the code to implement or interface with= =20 the desired functionality. Document properties are statements about your=20 documents that make sense to you, and affect what you're going to do with=20 the documents. " "Our vision is one of customizable, context-aware management of integrated= =20 information spaces, which: =B7 integrate information components from many sources: repositories= =20 (WWW, mail, file systems), devices (scanners, video-cameras, television,=20 phone), and dynamic processes (workflow, source code management systems,=20 search engines, and dynamic document content), =B7 allow customizable organization of the information based on=20 properties of that information, e.g., budget related, read at home, shared= =20 with John, and From: pet...@pa..., =B7 allow information properties to be arbitrary objects specified=20 through many different mechanisms: explicitly by the users themselves,=20 captured by physical context sensors, inferred from usage, automatically=20 generated by content analysis, etc. =B7 allow information properties to be active and carry behaviors to= =20 automate information work, enabling functionality like fax to John at 5pm=20 each day, translate to English, notarized, backed-up in Utah for safety,= etc. =B7 scale to sizes anywhere between an individual and the enterprise, =B7 are available at all locations required by the users, and =B7 protect the privacy and intellectual property of users. In this world the focus is on information, customization, and functionality= =20 that extends beyond the abilities of monolithic applications. Essentially,= =20 information carries the behaviors and semantics needed to operate on it.=20 Information is independent of location and becomes responsive to the=20 environments it is used in and the contexts of individual users, and it is= =20 managed independently by both its consumers and providers. " |
From: Michael L. <mic...@ya...> - 2002-06-21 00:40:11
|
Hi Dr. Iverson and Jason, I have put together a summary of the useful feature's and possible usage of Hibernate in the NODAL project. The summary leaves out the Hibernate features that are not considered for the NODAL project. I do not have a precise Java implementation on how to utilize the Hibernate framework because the documentation on the web site does not explain most of Hibernate's classes in detail. However I have written down some possible ways to use Hibernate in the summary. I'll try to find other sources to help me with using Hibernate as well. Please look over the document and if I have any missing or incorrect information about NODAL or Hibernate in the document, please advice me. Thanks, Michael Leung __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com |
From: Lee I. <le...@ec...> - 2002-06-17 01:06:32
|
[Note that I'm forwarding this reply to nodal-j-devel so that it's a bit more public. Are you guys subscribed yet? If not, please do so and reply to the message via the mailing list. This way, these things get publicly archived.] The vision that I have of this is that a Repository is a collection of Nodes. If a Node is native to the Repository then its "home" is that repository otherwise it is a "reference" Node with a home elsewhere. The way we can tell the difference between these two conditions is by the Node id (nid) of the Node. Each Repository has a URI and Namespace associated with it (e.g. http://sf.nodal.net/repos). The nid of a Node is a Name in some Namespace and this Namespace identifies a Repository! Now, a Node's content may be cached in a non-native Repository, but any modifications made to it need to be done via the home Repository. If we were to take this requirement to mean that any changes involved a roundtrip to the server before we could see them, then this would be unusable. Instead, we reflect changes in the most local referring Repository and then forward change requests to the home. Some time later, when we receive a notification of an update from the home repository, we notice that it is simply an acknowledgement that the change that we initiated has been completed. Consider the example of a Node that's home is on a http-accessible network repository. We have a cached reference to it available in the memory, and when we make changes to that we compose a transaction that gets sent to the home repository. In fact, we batch transactions so that local changes don't get submitted until you commit the changes. And of course, you can bet your bippy that other people may be trying to change things at the same time :-) That's going to be one of the really fun challenges. Begin forwarded message: > From: Michael Leung <mic...@ya...> > Date: Fri Jun 14, 2002 01:40:22 PM America/Vancouver > To: Lee Iverson <le...@ec...> > Subject: Accessing Nodes from Database > > Hi Dr.Iverson, > > When I was thinking about the design of the Java > Interfaces for accessing node contents in a database, > I am not sure about how the Java Interfaces can > manipulate the data. For example, if I were to edit a > node, the Interface should first connect to the > database and retrieve the data. After that, does the > Interface retain the content in the memory so changes > would be made to the content in memory instead of the > database? And at the end, contents are saved back to > the database. Another way is to update the content > directly in the database every time a user changes the > data. > > Also, do I have to assume there could be more than one > person accessing and editing the same node at the same > time? > > Michael Leung > > __________________________________________________ > Do You Yahoo!? > Yahoo! - Official partner of 2002 FIFA World Cup > http://fifaworldcup.yahoo.com > |
From: Lee I. <le...@ec...> - 2002-06-05 20:21:51
|
Another Java database solution (besides Castor) could be Hibernate at http://hibernate.sf.net You could check this one out too. -- ------------------------------------------------------------------------------- Lee Iverson le...@ec... Dept of ECE, 2356 Main Mall http://www.ai.sri.com/~leei/ Vancouver BC Canada V6T 1Z4 Office: (604) 822-3381 |
From: Lee I. <le...@ec...> - 2002-06-03 23:40:20
|
On Mon, 2002-06-03 at 11:20, Jason Cheung wrote: > Hello everyone, > > According to George Stewart, the developer from Osage, the Osage project > is pretty much dead. He recommended people to use Castor instead. > http://sourceforge.net/forum/forum.php?thread_id=139688&forum_id=27193 > > I went to the Castor Page (http://castor.exolab.org/) and here's something > about the project: > > - Castor XML: Java object model to and from XML > - Generate source code from an XML Schema > - Castor JDO: Java object persistence to RDBMS > - Castor DAX: Java object persistence to LDAP > - Castor DSML: LDAP directory exchange through XML > - XML-based mapping file specify the mapping between one model and another > > - Support for schema-less Java to XML binding > - In memory caching and write-at-commit reduces JDBC operations > - Two phase commit transactions, object rollback and deadlock detection > - OQL query mapping to SQL queries > - EJB container managed persistence provider for OpenEJB > > By the way, Castor is open source too. > > Dr. Iverson, would you please take a look at the Castor Project at > http://castor.exolab.org/ and let us know if we should switch to Castor? Yes, Castor was also something I had looked at in the past but wasn't too sure whether it was too heavyweight. I'd be very interested in having you look at it in more detail. -- ------------------------------------------------------------------------------- Lee Iverson le...@ec... Dept of ECE, 2356 Main Mall http://www.ai.sri.com/~leei/ Vancouver BC Canada V6T 1Z4 Office: (604) 822-3381 |
From: Jason C. <jas...@ya...> - 2002-06-03 18:20:09
|
Hello everyone, According to George Stewart, the developer from Osage, the Osage project is pretty much dead. He recommended people to use Castor instead. http://sourceforge.net/forum/forum.php?thread_id=139688&forum_id=27193 I went to the Castor Page (http://castor.exolab.org/) and here's something about the project: - Castor XML: Java object model to and from XML - Generate source code from an XML Schema - Castor JDO: Java object persistence to RDBMS - Castor DAX: Java object persistence to LDAP - Castor DSML: LDAP directory exchange through XML - XML-based mapping file specify the mapping between one model and another - Support for schema-less Java to XML binding - In memory caching and write-at-commit reduces JDBC operations - Two phase commit transactions, object rollback and deadlock detection - OQL query mapping to SQL queries - EJB container managed persistence provider for OpenEJB By the way, Castor is open source too. Dr. Iverson, would you please take a look at the Castor Project at http://castor.exolab.org/ and let us know if we should switch to Castor? Thanks, Jason __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com |
From: Lee I. <le...@te...> - 2002-05-30 17:46:01
|
A wonderful description of many of the issues surrounding XML Namespaces can be found both on Slashdot (a shortened version) and on the MSDN developers website at: http://msdn.microsoft.com/library/default.asp?url=/library/en- us/dnexxml/html/xml05202002.asp Well worth the effort. |
From: Lee I. <le...@te...> - 2002-05-30 04:25:36
|
[Where can I reference this from?] The basic principle here is that we make various permissions for an Object conform to different interfaces to that same object. Each different interface encapsulates the operations possible when a particular permission is available. The canonical example of this is the Node interface, which at its base has no access to content, modification or privacy management. It simply represents an ability to identify itself. In order to access any of the other properties of a Node, it is necessary to access a different interface, and each such access involves a possible permission check. interface Node { Name nid (); NodeContent content(); NodeEditor edit(); NodeHistory history(); NodeManager manage(); }; For security reasons, it should not be possible to type-cast the Node interface into a NodeEditor without having gone through the edit() method (that is to create a full implementation of all of the possible interfaces for a Node as part of a single implementation of Node). Now, there are two possible ways to manage the relationship between the facet (e.g. NodeContent) and the top-level interface (e.g. Node). The first would be to have no particular relationship at all and to simply have a pointer back to the parent interface from the facet. For example: interface NodeContent : Content { Node node(); // Pointer to node such that this = node.content() }; The other option is to inherit the parent interface from the facet. For example: interface NodeContent : Node, Content { }; Since we cannot get to the NodeContent interface without going through Node (and this is another principle of isolation of the permission checking/granting methods that we should conform to), it seems artificial and unwieldy for the client to have to think in terms of two separate interface pointers when we are really talking about an object for which we have extended our view. We thus prefer the inheritance method, and will adopt it throughout our design. |
From: Lee I. <le...@te...> - 2002-05-30 04:24:04
|
A note to explain the organizing principle behind the Getter/Setter interfaces. Requirements: o A structure for organizing access to elements of the collections that the Node data types represent. o Must minimize need to check permissions for particular data access or modification checks, since these checks may be expensive (client-server roundtrip?) o Wish to remove unnecessary type conversions, and in particular to eliminate the need to convert to/from Object wrappers for fundamental data types simply in order to pass arbitrarily typed arguments. Solution: Getter and Setter interfaces as mediators of the data access and modification operations. A Getter is an interface that allows read access to data of a particular type. The generic Getter interface converts from that type to an Object via the get() method and provides a String conversion operator via the getString() method. interface Getter { Object get(); String getString(); }; Thus, a data access primitive will return a Getter object as a promise that the user will be able to obtain the current value at any later point in time by simply calling the get() method. Moreover, the permission check for access is performed when the Getter is constructed, thus obviating the need to explicitly check permissions every time the get() method is called. Finally, the Getter can be extended by making it an Observable object, thus allowing a client application to register its interest in changes to the value of the Getter and to be notified of these changes at any later time. An example interface (from NODAL): interface Content { Type type(); int size(); Enumeration properties(); Getter value(Object property); }; interface RecordContent : Content { Getter field (Name fieldName); }; And a usage example: void walkContent (Node n) { Content content = n.content(); Enumeration e = content.properties(); while (e.hasMoreElements()) { Object property = e.nextElement(); Object value = content.value(property).get(); } } N.B. In C++ it is natural to present the Getter interface as a smart pointer type, with the dereference operator*() analogous to the get() method. As far as the optimization of accesses and reduction of type conversion, it is possible, and very useful, to be able to extend the interface by providing type-specific Getter interfaces that allow direct access to the fundamental data types enclosed by the Getter. For example: interface CharGetter : Getter { char getChar (); }; In addition, we can cascade some of these interfaces whenever data conversions would happen automatically w/o loss of precision. For example: interface ByteGetter : Getter { byte getByte(); }; interface ShortGetter : ByteGetter { short getShort(); }; interface IntegerGetter : ShortGetter { int getInt(); }; interface FloatGetter : Getter { float getFloat(); }; interface DoubleGetter : FloatGetter { double getDouble(); }; Now, data access methods can create and return any of these type-specific Getter objects while still conforming to a method signature that specifies it should return a Getter. The client can then, either through direct knowledge or tentatively check for the availability of the efficient, direct interfaces in appropriate cases. For modifying values, there is an analogous Setter interface: interface Setter : Getter { Object set (Object value); Object setString (String value); }; Thus a data modifying primitive will return a Setter object that encapsulates the ability to modify a given value in a given way at some later time. The data object will thus check permissions when the Setter is requested and can potentially forgo such checks when the set() method is later called. Note that the Setter inherits from Getter. This is based on the assumption, inherent in the NODAL security/privacy system, that write/modifcation access is never granted w/o read access. In virtually all cases it makes sense to treat these access primitives in this hierarchical fashion and it makes virtually every aspect of the system easier to manipulate by making this assumption. (Of course it is possible to reconsider this conclusion). Finally it is possible, and appropriate, to subclass the Setter interface in exactly the same type-specific way as we did for the Getter interface, thus providing us with a means to bypass the Object wrap/unwrap process inherent in the generic set() interface. An example: interface NodeEditor : NodeContent { Setter setProperty (Object property); }; |
From: Jason C. <jas...@ya...> - 2002-05-25 05:39:42
|
Hi everyone, It seems that when we checked out the NODAL module earlier, all the codes are set to "Read Only". Thus, Together interpreted the files as "locked". There are two ways to resolve this problem: 1. Manually change all downloaded files to read/write by clearing the "Read-only" box in the file properties. (Right click the files -> Select Properties) 2. Re-checkout all the code using WinCVS. Please go to Admin -> Preferences -> Globals Tab -> Clear the "Checkout Read-Only" option before checking out. Jason __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com |