dp.sh.Brushes.Java = function()
{
    var keywords = 'abstract assert boolean break byte case catch char class const ' +
                   'continue default do double else enum extends ' +
                   'false final finally float for goto if implements import ' +
                   'instanceof int interface long native new null ' +
                   'package private protected public return ' +
                   'short static strictfp super switch synchronized this throw throws true ' +
                   'transient try void volatile while';

    this.regexList = [
    { regex: dp.sh.RegexLib.SingleLineCComments,                            css: 'comment' },        // one line comments
    { regex: dp.sh.RegexLib.MultiLineCComments,                                css: 'comment' },        // multiline comments
    { regex: dp.sh.RegexLib.DoubleQuotedString,                                css: 'string' },        // strings
    { regex: dp.sh.RegexLib.SingleQuotedString,                                css: 'string' },        // strings
    { regex: new RegExp('\\b([\\d]+(\\.[\\d]+)?|0x[a-f0-9]+)\\b', 'gi'),    css: 'number' },        // numbers
    { regex: new RegExp('(?!\\@interface\\b)\\@[\\$\\w]+\\b', 'g'),            css: 'annotation' },    // annotation @anno
    { regex: new RegExp('\\@interface\\b', 'g'),                            css: 'keyword' },        // @interface keyword
    { regex: new RegExp(this.GetKeywords(keywords), 'gm'),                    css: 'keyword' }        // java keyword
            ];

    this.CssClass = 'dp-j';
    this.Style = '.dp-j .annotation { color: #646464; }' +
                 '.dp-j .number { color: #C00000; }';
}

dp.sh.Brushes.Java.prototype = new dp.sh.Highlighter();
dp.sh.Brushes.Java.Aliases = ['java'];

