View Javadoc

1   /*
2    *   Copyright (C) Christian Schulte, 2012-262
3    *   All rights reserved.
4    *
5    *   Redistribution and use in source and binary forms, with or without
6    *   modification, are permitted provided that the following conditions
7    *   are met:
8    *
9    *     o Redistributions of source code must retain the above copyright
10   *       notice, this list of conditions and the following disclaimer.
11   *
12   *     o Redistributions in binary form must reproduce the above copyright
13   *       notice, this list of conditions and the following disclaimer in
14   *       the documentation and/or other materials provided with the
15   *       distribution.
16   *
17   *   THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
18   *   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
19   *   AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
20   *   THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
21   *   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22   *   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23   *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24   *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25   *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26   *   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27   *
28   *   $JOMC: JavaLanguage.java 4681 2012-12-29 00:30:19Z schulte $
29   *
30   */
31  package org.jomc.model.test;
32  
33  import java.util.HashSet;
34  import java.util.Set;
35  
36  /**
37   * Java language support.
38   *
39   * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
40   * @version $JOMC: JavaLanguage.java 4681 2012-12-29 00:30:19Z schulte $
41   * @since 1.4
42   */
43  class JavaLanguage
44  {
45  
46      /**
47       * The Java Language Specification - Java SE 7 Edition - Chapter 18. Syntax
48       * <pre>
49       * BasicType:
50       *      byte
51       *      short
52       *      char
53       *      int
54       *      long
55       *      float
56       *      double
57       * </pre>
58       */
59      static final Set<String> BASIC_TYPES = new HashSet<String>( 8 );
60  
61      /**
62       * The Java Language Specification - Java SE 7 Edition - Chapter 3.10.3. Boolean Literals
63       * <pre>
64       * BooleanLiteral: one of
65       *      true false
66       * </pre>
67       */
68      static final Set<String> BOOLEAN_LITERALS = new HashSet<String>( 2 );
69  
70      /**
71       * The Java Language Specification - Java SE 7 Edition - Chapter 3.9. Keywords
72       * <pre>
73       * Keyword: one of
74       *      abstract   continue   for          new         switch
75       *      assert     default    if           package     synchronized
76       *      boolean    do         goto         private     this
77       *      break      double     implements   protected   throw
78       *      byte       else       import       public      throws
79       *      case       enum       instanceof   return      transient
80       *      catch      extends    int          short       try
81       *      char       final      interface    static      void
82       *      class      finally    long         strictfp    volatile
83       *      const      float      native       super       while
84       * </pre>
85       */
86      static final Set<String> KEYWORDS = new HashSet<String>( 50 );
87  
88      /**
89       * The Java Language Specification - Java SE 7 Edition - Chapter 3.10.7. The Null Literal
90       * <pre>
91       * NullLiteral:
92       *      null
93       * </pre>
94       */
95      static final String NULL_LITERAL = "null";
96  
97      static
98      {
99          // JLS - Java SE 7 Edition - Chapter 18. Syntax - BasicType
100         BASIC_TYPES.add( "boolean" );
101         BASIC_TYPES.add( "byte" );
102         BASIC_TYPES.add( "char" );
103         BASIC_TYPES.add( "double" );
104         BASIC_TYPES.add( "float" );
105         BASIC_TYPES.add( "short" );
106         BASIC_TYPES.add( "int" );
107         BASIC_TYPES.add( "long" );
108 
109         // JLS - Java SE 7 Edition - 3.10.3. Boolean Literals
110         BOOLEAN_LITERALS.add( "true" );
111         BOOLEAN_LITERALS.add( "false" );
112 
113         // JLS - Java SE 7 Edition - Chapter 3. Lexical Structure - 3.9. Keywords
114         KEYWORDS.add( "abstract" );
115         KEYWORDS.add( "assert" );
116         KEYWORDS.add( "boolean" );
117         KEYWORDS.add( "break" );
118         KEYWORDS.add( "byte" );
119         KEYWORDS.add( "case" );
120         KEYWORDS.add( "catch" );
121         KEYWORDS.add( "char" );
122         KEYWORDS.add( "class" );
123         KEYWORDS.add( "const" );
124         KEYWORDS.add( "continue" );
125         KEYWORDS.add( "default" );
126         KEYWORDS.add( "do" );
127         KEYWORDS.add( "double" );
128         KEYWORDS.add( "else" );
129         KEYWORDS.add( "enum" );
130         KEYWORDS.add( "extends" );
131         KEYWORDS.add( "final" );
132         KEYWORDS.add( "finally" );
133         KEYWORDS.add( "float" );
134         KEYWORDS.add( "for" );
135         KEYWORDS.add( "if" );
136         KEYWORDS.add( "goto" );
137         KEYWORDS.add( "implements" );
138         KEYWORDS.add( "import" );
139         KEYWORDS.add( "instanceof" );
140         KEYWORDS.add( "int" );
141         KEYWORDS.add( "interface" );
142         KEYWORDS.add( "long" );
143         KEYWORDS.add( "native" );
144         KEYWORDS.add( "new" );
145         KEYWORDS.add( "package" );
146         KEYWORDS.add( "private" );
147         KEYWORDS.add( "protected" );
148         KEYWORDS.add( "public" );
149         KEYWORDS.add( "return" );
150         KEYWORDS.add( "short" );
151         KEYWORDS.add( "static" );
152         KEYWORDS.add( "strictfp" );
153         KEYWORDS.add( "super" );
154         KEYWORDS.add( "switch" );
155         KEYWORDS.add( "synchronized" );
156         KEYWORDS.add( "this" );
157         KEYWORDS.add( "throw" );
158         KEYWORDS.add( "throws" );
159         KEYWORDS.add( "transient" );
160         KEYWORDS.add( "try" );
161         KEYWORDS.add( "void" );
162         KEYWORDS.add( "volatile" );
163         KEYWORDS.add( "while" );
164     }
165 
166 }