GNU Crypto B/W logo

 The GNU Crypto project

Java Coding Style

Java source code in the repository must be written in conformance to the Code Conventions for the Java Programming Language, as published by Sun with the following exceptions:

(the section numbers refer to the same in the above url)

3.1.1 Beginning Comments

All source files should begin with (a) the package statement, followed by (b) the project standard copyright notice:

package gnu.crypto.x.y.z;

// ----------------------------------------------------------------------------
// $Id: JavaStyle.html,v 1.3 2003/10/06 01:53:51 raif Exp $
//
// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of GNU Crypto.
//
// GNU Crypto is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2, or (at your option)
// any later version.
//
// GNU Crypto is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; see the file COPYING.  If not, write to the
//
//    Free Software Foundation Inc.,
//    59 Temple Place - Suite 330,
//    Boston, MA 02111-1307
//    USA
//
// Linking this library statically or dynamically with other modules is
// making a combined work based on this library.  Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
//
// As a special exception, the copyright holders of this library give
// you permission to link this library with independent modules to
// produce an executable, regardless of the license terms of these
// independent modules, and to copy and distribute the resulting
// executable under terms of your choice, provided that you also meet,
// for each linked independent module, the terms and conditions of the
// license of that module.  An independent module is a module which is
// not derived from or based on this library.  If you modify this
// library, you may extend this exception to your version of the
// library, but you are not obligated to do so.  If you do not wish to
// do so, delete this exception statement from your version.
// 
// --------------------------------------------------------------------------

4 - Indentation

Do not use tabs. Always use spaces. Three spaces should be used as the unit of indentation.

(in the manual, translate the "8-space" rule or references to "6 spaces").

4.1 Line Length

Avoid lines longer than 100 characters.

6.1 Number Per Line

Only use one space between the type and the identifier.

9 - Naming Conventions

In general, write it as you pronounce it. For example, we say "U R L" and not "Url" to refer to a Unified Resource Locator; an acceptable class name would then be "URLBlah" and not "UrlBlah".

Interfaces: Interface names always start with uppercase-i.

In addition to the above, classes and interfaces should follow a similar pattern to that of AClass.java.tmpl (for classes) and IAnInterface.java.tmpl (for interfaces).


Return to GNU's home page.

Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.

Please send comments on these web pages to webmasters@gnu.org, send other questions to gnu@gnu.org.

Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.


Last Modified: $Date: 2003/10/06 01:53:51 $