| This codebase follows the Oracle "Code Conventions for the Java |
| Programming Language". See the following link: |
| |
| http://www.oracle.com/technetwork/java/codeconvtoc-136057.html |
| |
| In addition, this project has several rules that are more specific: |
| |
| - No line should use more than 79 characters |
| - No tabs, only spaces |
| - All indents should be 2 spaces (or 4 when there is confusion) |
| |
| if (<short expression>) { |
| return true; |
| } |
| |
| if (<very, very, very long expression that continues and wraps around this |
| line, use 4 spaces on this following line>) { |
| return true; |
| } |
| |
| - Given there are many generic types, there will be long class definitions. |
| Wrap the line as follows: |
| |
| public class BspServiceMaster<I extends WritableComparable, V extends Writable, |
| E extends Writable, M extends Writable> extends BspService<I, V, E, M> |
| implements CentralizedServiceMaster<I, V, E, M> { |
| /** Class logger */ |
| private static final Logger LOG = Logger.getLogger(BspServiceMaster.class); |
| } |
| |
| - All while/if/else must have brackets, even if there there is only a one |
| line statement following. 'else' and 'else if' are expected to line up |
| with the '}'. For example: |
| |
| if (condition) { |
| statement; |
| } |
| |
| if (condition) { |
| statement; |
| } else { |
| statement; |
| } |
| |
| - Any use of LOG should be enclosed with an is*Enabled() method. For example: |
| |
| if (LOG.isInfoEnabled()) { |
| LOG.info("something happened"); |
| } |
| |
| - All classes, members, and member methods should have Javadoc in the following |
| style. C-style comments for javadoc and // comments for non-javadoc. Also, |
| the comment block should have a line break that separates the comment |
| section and the @ section. See below. |
| |
| /** |
| * This is an example class |
| */ |
| public class Giraffe { |
| /** Number of spots on my giraffe */ |
| private int spots; |
| /** |
| * Example horribly long comment that wraps around the line. If it is very, |
| * very, very long. |
| */ |
| private int feet; |
| |
| /** |
| * How many seconds to travel a number of steps |
| * |
| * @param steps Steps to travel |
| * @param stepsPerSec Steps a giraffe travels every second |
| * @return Number of seconds |
| */ |
| public static int secToTravel(int steps, int stepsPerSec) { |
| // Simple formula to get time to travel |
| return steps / stepsPerSec; |
| } |
| } |
| |
| - When using synchronized statements, there should not be a space between |
| 'synchronized' and '('. For example: |
| |
| public foo() { |
| synchronized(bar) { |
| } |
| } |
| |
| - Class members should not begin with 'm_' or '_' |
| - No warnings allowed, but be as specific as possible with warning suppression |
| - Prefer to avoid abbreviations when reasonable (i.e. 'msg' vs 'message') |
| - Static variable names should be entirely capitalized and seperated by '_' |
| (i.e. private static int FOO_BAR_BAR = 2) |
| - Non-static variable and method names should not begin capitalized and should only use |
| alphanumeric characters (i.e. int fooBarBar) |
| - All classnames begin capitalized then use lower casing (i.e. class FooBarBar) |