Open main menu

CDOT Wiki β

Changes

JSON Integration Adapter Code Review 1 Changes

4,116 bytes added, 12:41, 10 August 2011
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…'
[[category: NexJ Current Projects]]
[[category: NexJ Express JSON Message Adapter]]

===== General =====
{| border="1" cellpadding="4" cellspacing="2" style="border: 1px solid black;border-collapse:collapse;"
|-
! 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 =====
{| border="1" cellpadding="4" cellspacing="2" style="border: 1px solid black;border-collapse:collapse;"
|-
! 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 =====

{| border="1" cellpadding="4" cellspacing="2" style="border: 1px solid black;border-collapse:collapse;"
|-
! 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 =====
{| border="1" cellpadding="4" cellspacing="2" style="border: 1px solid black;border-collapse:collapse;"
|-
! 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 =====
{| border="1" cellpadding="4" cellspacing="2" style="border: 1px solid black;border-collapse:collapse;"
|-
! 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.
|
|}
1
edit