KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > ruby > lexer > RubyCommentTokenId


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19 package org.netbeans.modules.ruby.lexer;
20
21 import java.util.Collection JavaDoc;
22 import java.util.EnumSet JavaDoc;
23 import java.util.Map JavaDoc;
24
25 import org.netbeans.modules.ruby.lexer.RubyCommentLexer;
26 import org.netbeans.api.lexer.Language;
27 import org.netbeans.api.lexer.TokenId;
28 import org.netbeans.spi.lexer.LanguageHierarchy;
29 import org.netbeans.spi.lexer.Lexer;
30 import org.netbeans.spi.lexer.LexerRestartInfo;
31
32 /**
33  * Token ids for comments
34  *
35  * @author Miloslav Metelka
36  * @author Tor Norbye
37  */

38 public enum RubyCommentTokenId implements TokenId {
39     COMMENT_TEXT("comment"),
40     COMMENT_TODO("todo"),
41     COMMENT_RDOC("rdoc"),
42     COMMENT_LINK("comment-link"),
43     COMMENT_BOLD("comment-bold"),
44     COMMENT_ITALIC("comment-italic"),
45     COMMENT_HTMLTAG("dochtml");
46     
47     private final String JavaDoc primaryCategory;
48
49     RubyCommentTokenId() {
50         this(null);
51     }
52
53     RubyCommentTokenId(String JavaDoc primaryCategory) {
54         this.primaryCategory = primaryCategory;
55     }
56
57     public String JavaDoc primaryCategory() {
58         return primaryCategory;
59     }
60
61     private static final Language<RubyCommentTokenId> language =
62         new LanguageHierarchy<RubyCommentTokenId>() {
63                 @Override JavaDoc
64                 protected Collection JavaDoc<RubyCommentTokenId> createTokenIds() {
65                     return EnumSet.allOf(RubyCommentTokenId.class);
66                 }
67
68                 @Override JavaDoc
69                 protected Map JavaDoc<String JavaDoc, Collection JavaDoc<RubyCommentTokenId>> createTokenCategories() {
70                     return null; // no extra categories
71
}
72
73                 @Override JavaDoc
74                 protected Lexer<RubyCommentTokenId> createLexer(
75                     LexerRestartInfo<RubyCommentTokenId> info) {
76                     return new RubyCommentLexer(info);
77                 }
78
79                 @Override JavaDoc
80                 public String JavaDoc mimeType() {
81                     return "text/x-ruby-comment";
82                 }
83             }.language();
84
85     public static Language<RubyCommentTokenId> language() {
86         return language;
87     }
88 }
89
Popular Tags