Josh Elser created ACCUMULO-2832:
------------------------------------

             Summary: Improve DefaultFormatter for reuse and object creation
                 Key: ACCUMULO-2832
                 URL: https://issues.apache.org/jira/browse/ACCUMULO-2832
             Project: Accumulo
          Issue Type: Improvement
          Components: shell
            Reporter: Josh Elser
            Priority: Trivial


The DefaultFormatter is the class that is used to convert an 
{{Entry<Key,Value>}} to the line of text displayed in the shell. Most notably, 
it encodes non-printable ASCII data as hex.

For users who want to implement their own Formatter, they do not have access to 
the same formatting methods that the DefaultFormatter uses because of the 
visibility modifiers on the methods. These methods should be available for use 
by other classes. Letting classes extend the DefaultFormatter would be even 
better.

Additionally, in the DefaultFormatter, in the method {{public static String 
formatEntry(Entry<Key,Value>, DateFormat)}}, a StringBuilder is used to reduce 
the number of intermediate String objects that are created for each 
concatenation; however, the methods to get each component of the Key will 
create a new {{Text}} object each time.

Method invocations like

{code}
key.getRow()
{code}

Should be replaced with:

{code}
Text buffer = new Text();
key.getRow(buffer);
{code}

Where a single {{Text}} object is reused for the entire method.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to