KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > lib > lexer > test > simple > SimpleStringTokenId


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-2007 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.lib.lexer.test.simple;
21
22 import java.util.Collection JavaDoc;
23 import java.util.EnumSet JavaDoc;
24 import java.util.Map JavaDoc;
25 import org.netbeans.api.lexer.InputAttributes;
26 import org.netbeans.api.lexer.Language;
27 import org.netbeans.api.lexer.LanguagePath;
28 import org.netbeans.api.lexer.Token;
29 import org.netbeans.api.lexer.TokenId;
30 import org.netbeans.spi.lexer.LanguageEmbedding;
31 import org.netbeans.spi.lexer.LanguageHierarchy;
32 import org.netbeans.spi.lexer.Lexer;
33 import org.netbeans.spi.lexer.LexerRestartInfo;
34
35 /**
36  * Token ids for simple string embedding - copied from JavaStringTokenId
37  * for java string language.
38  *
39  * @author Miloslav Metelka
40  * @version 1.00
41  */

42 public enum SimpleStringTokenId implements TokenId {
43
44     TEXT("string"),
45     BACKSPACE("string-escape"),
46     FORM_FEED("string-escape"),
47     NEWLINE("string-escape"),
48     CR("string-escape"),
49     TAB("string-escape"),
50     SINGLE_QUOTE("string-escape"),
51     DOUBLE_QUOTE("string-escape"),
52     BACKSLASH("string-escape"),
53     OCTAL_ESCAPE("string-escape"),
54     OCTAL_ESCAPE_INVALID("string-escape-invalid"),
55     ESCAPE_SEQUENCE_INVALID("string-escape-invalid");
56
57     private final String JavaDoc primaryCategory;
58
59     SimpleStringTokenId() {
60         this(null);
61     }
62
63     SimpleStringTokenId(String JavaDoc primaryCategory) {
64         this.primaryCategory = primaryCategory;
65     }
66
67     public String JavaDoc primaryCategory() {
68         return primaryCategory;
69     }
70
71     private static final Language<SimpleStringTokenId> language
72     = new LanguageHierarchy<SimpleStringTokenId>() {
73         @Override JavaDoc
74         protected Collection JavaDoc<SimpleStringTokenId> createTokenIds() {
75             return EnumSet.allOf(SimpleStringTokenId.class);
76         }
77         
78         @Override JavaDoc
79         protected Map JavaDoc<String JavaDoc, Collection JavaDoc<SimpleStringTokenId>> createTokenCategories() {
80             return null; // no extra categories
81
}
82
83         @Override JavaDoc
84         public Lexer<SimpleStringTokenId> createLexer(LexerRestartInfo<SimpleStringTokenId> info) {
85             return new SimpleStringLexer(info);
86         }
87
88         @Override JavaDoc
89         public LanguageEmbedding<? extends TokenId> embedding(
90         Token<SimpleStringTokenId> token, LanguagePath languagePath, InputAttributes inputAttributes) {
91             return null; // No embedding
92
}
93         
94         @Override JavaDoc
95         protected String JavaDoc mimeType() {
96             return "text/x-simple-string";
97         }
98     }.language();
99
100     public static Language<SimpleStringTokenId> language() {
101         return language;
102     }
103
104     public void release() {
105     }
106
107 }
108
Popular Tags