JSON Integration Adapter Code Review 1 Changes
Contents
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. |