Skip to content

Commit

Permalink
Rhino now supports DOM properties, but we need to cast to JavaScript …
Browse files Browse the repository at this point in the history
…string.

Checks type during XML plist serialization.
  • Loading branch information
Tom Robinson committed Jan 21, 2009
1 parent 19a4140 commit 86cc38c
Showing 1 changed file with 7 additions and 15 deletions.
22 changes: 7 additions & 15 deletions Objective-J/plist.js
Expand Up @@ -26,6 +26,7 @@ kCFPropertyListBinaryFormat_v1_0 = 200;
kCFPropertyList280NorthFormat_v1_0 = -1000;

OBJJPlistParseException = "OBJJPlistParseException";
OBJJPlistSerializeException = "OBJJPlistSerializeException";

var kCFPropertyList280NorthMagicNumber = "280NPLIST";

Expand Down Expand Up @@ -193,27 +194,15 @@ var XML_XML = "xml",
PLIST_NUMBER_INTEGER = "integer";
PLIST_DATA = "data";

#if RHINO

#define NODE_NAME(anXMLNode) (String(anXMLNode.getNodeName()))
#define NODE_TYPE(anXMLNode) (anXMLNode.getNodeType())
#define NODE_VALUE(anXMLNode) (String(anXMLNode.getNodeValue()))
#define FIRST_CHILD(anXMLNode) (anXMLNode.getFirstChild())
#define NEXT_SIBLING(anXMLNode) (anXMLNode.getNextSibling())
#define PARENT_NODE(anXMLNode) (anXMLNode.getParentNode())
#define DOCUMENT_ELEMENT(aDocument) (aDocument.getDocumentElement())

#else

#define NODE_NAME(anXMLNode) (anXMLNode.nodeName)
#define NODE_NAME(anXMLNode) (String(anXMLNode.nodeName))
#define NODE_TYPE(anXMLNode) (anXMLNode.nodeType)
#define NODE_VALUE(anXMLNode) (anXMLNode.nodeValue)
#define NODE_VALUE(anXMLNode) (String(anXMLNode.nodeValue))
#define FIRST_CHILD(anXMLNode) (anXMLNode.firstChild)
#define NEXT_SIBLING(anXMLNode) (anXMLNode.nextSibling)
#define PARENT_NODE(anXMLNode) (anXMLNode.parentNode)
#define DOCUMENT_ELEMENT(aDocument) (aDocument.documentElement)

#endif

#define IS_OF_TYPE(anXMLNode, aType) (NODE_NAME(anXMLNode) == aType)
#define IS_PLIST(anXMLNode) IS_OF_TYPE(anXMLNode, PLIST_PLIST)
Expand Down Expand Up @@ -473,8 +462,11 @@ var _CPPropertyListAppendXMLData = function(XMLData, aPlist)
else if (aPlist.slice)
_CPArrayAppendXMLData(XMLData, aPlist);

else
else if (aPlist._keys)
_CPDictionaryAppendXMLData(XMLData, aPlist);
else
objj_exception_throw(new objj_exception(OBJJPlistSerializeException, "*** unknown plist ("+aPlist+") type: " + type));

}

// 280 North Plist Format
Expand Down

0 comments on commit 86cc38c

Please sign in to comment.