JSON Integration Adapter Code Review 1 Changes

From CDOT Wiki
Revision as of 11:41, 10 August 2011 by Gbatumbya (talk | contribs) (Created page with 'category: NexJ Current Projects category: NexJ Express JSON Message Adapter ===== General ===== {| border="1" cellpadding="4" cellspacing="2" style="border: 1px solid bl…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


General
Issue Description Status
Exception TODO Complete exceptions marked by TODO
Document methods fully in javadoc style Document every method fully in javadoc style. Also document parameters, and use full English sentences. Make sure special settings like root mode or mode are well documented enough to use
Make sure exceptions output the correct message part. Make sure exceptions output the correct message part, for example the inner part, rather than always the root part. More specific is better.
Remove spaces after new Object[]{(remove space here)} Remove spaces after the curly brackets for all exceptions.
Add a newline after creating each object or after each decision construct. Add newlines to conform to NexJ coding style.
Space before break keyword. Put a space before all break keywords.


Design Document
Issue Description Status
Update design Design document should reflect all special settings of JSON parser and formatter. Specifically, any normally standard features which are not implemented by the JSON parser/formatter should be noted.


JSONMessagePartMapping
Issue Description Status
Use Hashholder instead of HashSet Use HashHolder in the XMLJSONMessagePartLoader instead of HashSet and whenever appropriate replace HashSet with HashHolder
Change 0x000 for byte For root modes, change 0xXXX to a cast to byte. Also do not use leading zeroes.
Remove StringParsre from JSONMessagePartMapping Either remove StringParser from the mapping, or use it in formatting primitives. Do not leave it in if it is not used.
Create class called RootJSONMessagePartMapping Create a class called RootJSONMessagePartMapping for each CompositeMessagePart. This root JSON mapping will handle the "mode" for each CompositeMessagePart.
Allow root modes for each CompositeMessagePart Rename root mode to mode, so that each CompositeMessagePart can use every type of mode.
Rename m_sFormat Rename the variable m_sFormat if not used (or use it and keep the name).


JSONMessageParser
Issue Description Status
Remove/Use InvocationContextAware Do not implement the invocation context aware interface if not used by the class. Or, use the interface for formatting of primitives.
Name methods XXXPart, not XXXNode Rename methods to be XXXPart, for example as writeCompositeMessagePart, instead of writeCompositeMessageNode.
Wrap fail Wrap all instances of fail with IntegrationException.
Override JSONParse Override parse method of JSONParser in the JSONMessageParser class. Do this to avoid changing JSONParser.
Use primitive formatter when reading. When reading information in from a stream in the formatter, use primitive formatter to determine the correct format of a primitive.


JSONMessageFormatter
Issue Description Status
Format primitive values before outputting to writers. Use the StringFormatter to format primitive values before outputting to the writer. For example, timestamps must be formatted before outputting to the writer.
Pass enumerations into formatMessageRoot Do not use member/class variables for storing information unless absolutely necessary. Prefer to pass parameters around so that objects do not grow large as the parser/formatter iterates.