Repository: cayenne Updated Branches: refs/heads/master 4caa3900a -> f2438a359
cleanup Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/f2438a35 Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/f2438a35 Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/f2438a35 Branch: refs/heads/master Commit: f2438a359d8cab6672a3e0226c3706f180d2d5de Parents: 4caa390 Author: Nikita Timofeev <stari...@gmail.com> Authored: Tue Feb 21 18:34:55 2017 +0300 Committer: Nikita Timofeev <stari...@gmail.com> Committed: Tue Feb 21 18:34:55 2017 +0300 ---------------------------------------------------------------------- .../validation/EJBQLStatementValidator.java | 25 ++--- .../modeler/editor/EjbqlQueryScriptsTab.java | 19 ++-- .../components/textpane/JCayenneTextPane.java | 89 ++++++----------- .../swing/components/textpane/TextPaneView.java | 100 ++++++------------- .../textpane/syntax/SyntaxConstant.java | 22 ++-- 5 files changed, 86 insertions(+), 169 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cayenne/blob/f2438a35/cayenne-project/src/main/java/org/apache/cayenne/project/validation/EJBQLStatementValidator.java ---------------------------------------------------------------------- diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/validation/EJBQLStatementValidator.java b/cayenne-project/src/main/java/org/apache/cayenne/project/validation/EJBQLStatementValidator.java index 6ac0110..921fe20 100644 --- a/cayenne-project/src/main/java/org/apache/cayenne/project/validation/EJBQLStatementValidator.java +++ b/cayenne-project/src/main/java/org/apache/cayenne/project/validation/EJBQLStatementValidator.java @@ -51,28 +51,19 @@ public class EJBQLStatementValidator { if (cause != null) { try { - Field tokenField = cause.getClass().getField( - "currentToken"); - + Field tokenField = cause.getClass().getField("currentToken"); Object token = tokenField.get(cause); Field nextTokenField = token.getClass().getField("next"); Object nextToken = nextTokenField.get(token); - Field beginColumnField = nextToken.getClass().getField( - "beginColumn"); - Field beginLineField = nextToken.getClass().getField( - "beginLine"); - Field endColumnField = nextToken.getClass().getField( - "endColumn"); - Field endLineField = nextToken.getClass().getField( - "endLine"); + Field beginColumnField = nextToken.getClass().getField("beginColumn"); + Field beginLineField = nextToken.getClass().getField("beginLine"); + Field endColumnField = nextToken.getClass().getField("endColumn"); + Field endLineField = nextToken.getClass().getField("endLine"); Field imageField = nextToken.getClass().getField("image"); - message.setBeginColumn((Integer) beginColumnField - .get(nextToken)); - message.setBeginLine((Integer) beginLineField - .get(nextToken)); - message.setEndColumn((Integer) endColumnField - .get(nextToken)); + message.setBeginColumn((Integer) beginColumnField.get(nextToken)); + message.setBeginLine((Integer) beginLineField.get(nextToken)); + message.setEndColumn((Integer) endColumnField.get(nextToken)); message.setEndLine((Integer) endLineField.get(nextToken)); message.setImage((String) imageField.get(nextToken)); message.setLength(message.getImage().length()); http://git-wip-us.apache.org/repos/asf/cayenne/blob/f2438a35/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlQueryScriptsTab.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlQueryScriptsTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlQueryScriptsTab.java index 003e674..404fb81 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlQueryScriptsTab.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EjbqlQueryScriptsTab.java @@ -71,7 +71,7 @@ public class EjbqlQueryScriptsTab extends JPanel implements DocumentListener { public void insertUpdate(DocumentEvent e) { try { - String text = scriptArea.getDocument().getText(e.getOffset(), 1).toString(); + String text = scriptArea.getDocument().getText(e.getOffset(), 1); if (text.equals(" ") || text.equals("\n") || text.equals("\t")) { getQuery().setEjbql(scriptArea.getText()); validateEJBQL(); @@ -118,7 +118,6 @@ public class EjbqlQueryScriptsTab extends JPanel implements DocumentListener { } public void keyReleased(KeyEvent e) { - if ((pasteOrCut && e.getKeyCode() == KeyEvent.VK_CONTROL) || e.getKeyCode() == KeyEvent.VK_DELETE) { scriptArea.removeHighlightText(); getQuery().setEjbql(scriptArea.getText()); @@ -171,12 +170,8 @@ public class EjbqlQueryScriptsTab extends JPanel implements DocumentListener { return; } - String testTemp = null; - if (text != null) { - testTemp = text.trim(); - if (testTemp.length() == 0) { - text = null; - } + if (text != null && text.trim().isEmpty()) { + text = null; } // Compare the value before modifying the query - text area @@ -226,8 +221,8 @@ public class EjbqlQueryScriptsTab extends JPanel implements DocumentListener { class EJBQLValidationThread extends Thread { - boolean running; - Object timer = new Object(); + volatile boolean running; + final Object timer = new Object(); int previousCaretPosition; int validateCaretPosition; @@ -251,13 +246,13 @@ public class EjbqlQueryScriptsTab extends JPanel implements DocumentListener { synchronized (timer) { try { timer.wait(DELAY); - } catch (InterruptedException e) { + } catch (InterruptedException ignored) { } } } } - public void terminate() { + void terminate() { synchronized (timer) { running = false; timer.notify(); http://git-wip-us.apache.org/repos/asf/cayenne/blob/f2438a35/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java index 9e8b073..93c0aaf 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java @@ -57,8 +57,6 @@ public class JCayenneTextPane extends JPanel { private int startYPositionToolTip; private int endYPositionToolTip; - public boolean repaint; - public JScrollPane getScrollPane() { return scrollPane; } @@ -87,14 +85,11 @@ public class JCayenneTextPane extends JPanel { public int getStartPositionInDocument() { return pane.viewToModel(scrollPane.getViewport().getViewPosition()); - // starting pos - // in document } public int getEndPositionInDocument() { - return pane.viewToModel(new Point(scrollPane.getViewport().getViewPosition().x - + pane.getWidth(), scrollPane.getViewport().getViewPosition().y - + pane.getHeight())); + return pane.viewToModel(new Point(scrollPane.getViewport().getViewPosition().x + pane.getWidth(), + scrollPane.getViewport().getViewPosition().y + pane.getHeight())); } public void repaintPane() { @@ -104,7 +99,7 @@ public class JCayenneTextPane extends JPanel { /** * Return an int containing the wrapped line index at the given position * - * @param int pos + * @param pos int * @return int */ public int getLineNumber(int pos) { @@ -114,8 +109,7 @@ public class JCayenneTextPane extends JPanel { try { Rectangle caretCoords = pane.modelToView(pos); y = (int) caretCoords.getY(); - } - catch (BadLocationException ex) { + } catch (BadLocationException ex) { logObj.warn("Error: ", ex); } @@ -127,8 +121,8 @@ public class JCayenneTextPane extends JPanel { /** * Return an int position at the given line number and symbol position in this line * - * @param int posInLine - * @param int line + * @param posInLine int + * @param line int * @return int * @throws BadLocationException */ @@ -152,15 +146,14 @@ public class JCayenneTextPane extends JPanel { public JCayenneTextPane(SyntaxConstant syntaxConstant) { super(); - Dimension dimention = new Dimension(15, 15); - setMinimumSize(dimention); - setPreferredSize(dimention); - setMinimumSize(dimention); + Dimension dimension = new Dimension(15, 15); + setMinimumSize(dimension); + setPreferredSize(dimension); + setMinimumSize(dimension); setBackground(new Color(245, 238, 238)); setBorder(null); pane = new JTextPaneScrollable(new EditorKit(syntaxConstant)) { - public void paint(Graphics g) { super.paint(g); JCayenneTextPane.this.repaint(); @@ -172,23 +165,19 @@ public class JCayenneTextPane extends JPanel { scrollPane = new JScrollPane(pane); scrollPane.setBorder(BorderFactory.createLineBorder(new Color(115, 115, 115))); - this.painter = new UnderlineHighlighterForText.UnderlineHighlightPainter( - Color.red); + this.painter = new UnderlineHighlighterForText.UnderlineHighlightPainter(Color.red); pane.getDocument().addDocumentListener(new DocumentListener() { - public void insertUpdate(DocumentEvent evt) { try { - String text = pane.getText(evt.getOffset(), 1).toString(); + String text = pane.getText(evt.getOffset(), 1); if (text.equals("/") || text.equals("*")) { removeHighlightText(); pane.repaint(); - } - if (text.equals(" ") || text.equals("\t") || text.equals("\n")) { + } else if (text.equals(" ") || text.equals("\t") || text.equals("\n")) { pane.repaint(); } - } - catch (Exception e) { + } catch (Exception e) { logObj.warn("Error: ", e); } } @@ -198,7 +187,6 @@ public class JCayenneTextPane extends JPanel { public void changedUpdate(DocumentEvent evt) { } - }); } @@ -212,10 +200,10 @@ public class JCayenneTextPane extends JPanel { /** * set underlines text in JCayenneTextPane * - * @param int line - starting line for underlined text - * @param int lastIndex - starting position in line for underlined text - * @param int size - * @param String message - text for toolTip, contains the text of the error + * @param line int - starting line for underlined text + * @param lastIndex int - starting position in line for underlined text + * @param size int + * @param message String - text for toolTip, contains the text of the error */ public void setHighlightText(int line, int lastIndex, int size, String message) { @@ -228,21 +216,17 @@ public class JCayenneTextPane extends JPanel { highlighter.addHighlight(position, positionEnd, painter); setToolTipPosition(line, message); repaintPane(); - } - catch (BadLocationException e) { + } catch (BadLocationException e) { logObj.warn("Error: ", e); } - } - else { + } else { setToolTipPosition(0, ""); } } public void removeHighlightText(Highlighter highlighter) { - Highlighter.Highlight[] highlights = highlighter.getHighlights(); - for (int i = 0; i < highlights.length; i++) { - Highlighter.Highlight h = highlights[i]; + for (Highlighter.Highlight h : highlights) { if (h.getPainter() instanceof UnderlineHighlighterForText.UnderlineHighlightPainter) { highlighter.removeHighlight(h); } @@ -250,22 +234,15 @@ public class JCayenneTextPane extends JPanel { } public void setToolTipPosition(int line, String string) { - if (line != 0) { int height = pane.getFontMetrics(pane.getFont()).getHeight(); int start = (line - 1) * height; this.endYPositionToolTip = start; this.startYPositionToolTip = start + height; setTooltipTextError(string); - if (string != "") { - imageError = true; - } - else { - imageError = false; - } + imageError = !"".equals(string); setToolTipText(""); - } - else { + } else { this.endYPositionToolTip = -1; this.startYPositionToolTip = -1; setTooltipTextError(""); @@ -289,8 +266,7 @@ public class JCayenneTextPane extends JPanel { + "<body bgcolor='#FFEBCD' text='black'>" + htmlText + "</body>"; - } - else { + } else { setCursor(Cursor.getDefaultCursor()); return null; } @@ -311,8 +287,7 @@ public class JCayenneTextPane extends JPanel { super.paint(g); int start = getStartPositionInDocument(); - int end = getEndPositionInDocument(); - // end pos in doc + int end = getEndPositionInDocument(); // end pos in doc // translate offsets to lines Document doc = pane.getDocument(); @@ -326,23 +301,20 @@ public class JCayenneTextPane extends JPanel { try { if (pane.modelToView(start) == null) { starting_y = -1; - } - else { + } else { starting_y = pane.modelToView(start).y - scrollPane.getViewport().getViewPosition().y + fontHeight - fontDesc; } - } - catch (Exception e1) { + } catch (Exception e1) { logObj.warn("Error: ", e1); } for (int line = startline, y = starting_y; line <= endline; y += fontHeight, line++) { Color color = g.getColor(); - if (line - 1 == doc.getDefaultRootElement().getElementIndex( - pane.getCaretPosition())) { + if (line - 1 == doc.getDefaultRootElement().getElementIndex(pane.getCaretPosition())) { g.setColor(new Color(224, 224, 255)); g.fillRect(0, y - fontHeight + 3, 30, fontHeight + 1); } @@ -354,7 +326,6 @@ public class JCayenneTextPane extends JPanel { g.setColor(color); } - } public Document getDocument() { @@ -363,9 +334,7 @@ public class JCayenneTextPane extends JPanel { class JTextPaneScrollable extends JTextPane { - - - public JTextPaneScrollable(EditorKit editorKit) { + JTextPaneScrollable(EditorKit editorKit) { // Set editor kit this.setEditorKitForContentType(editorKit.getContentType(), editorKit); this.setContentType(editorKit.getContentType()); http://git-wip-us.apache.org/repos/asf/cayenne/blob/f2438a35/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/TextPaneView.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/TextPaneView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/TextPaneView.java index 331a2e0..f61b8fe 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/TextPaneView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/TextPaneView.java @@ -47,6 +47,7 @@ public class TextPaneView extends PlainView { private static SyntaxStyle syntaxStyleComment; private static HashMap<Pattern, SyntaxStyle> patternValue; + private static TextPaneStyleMap style = new TextPaneStyleMap(); static { patternSyntaxStyle = new HashMap<>(); @@ -54,66 +55,37 @@ public class TextPaneView extends PlainView { } public TextPaneView(Element elem, SyntaxConstant syntaxConstants) { - super(elem); getDocument().putProperty(PlainDocument.tabSizeAttribute, 4); - TextPaneStyleMap style = new TextPaneStyleMap(); - - if (patternSyntaxStyle.size() == 0) { - - String[] keywords = syntaxConstants.getKEYWORDS(); - String[] keywords2 = syntaxConstants.getKEYWORDS2(); - String[] operators = syntaxConstants.getOPERATORS(); - String[] types = syntaxConstants.getTYPES(); - for (int i = 0; i < keywords.length; i++) { - String patern = "(" + keywords[i] + ")"; - patternSyntaxStyle.put(Pattern.compile(patern, Pattern.UNICODE_CASE - | Pattern.CASE_INSENSITIVE), style.syntaxStyleMap - .get(TextPaneStyleTypes.KEYWORDS)); - } - for (int i = 0; i < keywords2.length; i++) { - String patern = "(" + keywords2[i] + ")"; - patternSyntaxStyle.put(Pattern.compile(patern, Pattern.UNICODE_CASE - | Pattern.CASE_INSENSITIVE), style.syntaxStyleMap - .get(TextPaneStyleTypes.KEYWORDS2)); - } - for (int i = 0; i < operators.length; i++) { - String patern = "(" + operators[i] + ")"; - patternSyntaxStyle.put(Pattern.compile(patern, Pattern.UNICODE_CASE - | Pattern.CASE_INSENSITIVE), style.syntaxStyleMap - .get(TextPaneStyleTypes.KEYWORDS)); - } - for (int i = 0; i < types.length; i++) { - String patern = "(" + types[i] + ")"; - patternSyntaxStyle.put(Pattern.compile(patern, Pattern.UNICODE_CASE - | Pattern.CASE_INSENSITIVE), style.syntaxStyleMap - .get(TextPaneStyleTypes.TYPE)); - } + if (patternSyntaxStyle.isEmpty()) { + addConstants(syntaxConstants.getKEYWORDS(), TextPaneStyleTypes.KEYWORDS); + addConstants(syntaxConstants.getKEYWORDS2(), TextPaneStyleTypes.KEYWORDS2); + addConstants(syntaxConstants.getOPERATORS(), TextPaneStyleTypes.KEYWORDS); + addConstants(syntaxConstants.getTYPES(), TextPaneStyleTypes.TYPE); } - if (patternValue.size() == 0) { + if (patternValue.isEmpty()) { patternValue.put( - Pattern.compile(SQLSyntaxConstants.NUMBER_TEXT), - style.syntaxStyleMap.get(TextPaneStyleTypes.NUMBER)); - // patternValue.put(Pattern.compile(SQLSyntaxConstants.STRING_TEXT, - // Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE), - // style.sqlSyntaxStyleMap.get(SQLStyleTypes.STRING)); + Pattern.compile(SQLSyntaxConstants.NUMBER_TEXT), style.syntaxStyleMap.get(TextPaneStyleTypes.NUMBER)); } - patternComment = Pattern.compile( - SQLSyntaxConstants.COMMENT_TEXT, - Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE); - patternCommentStart = Pattern.compile( - SQLSyntaxConstants.COMMENT_TEXT_START, - Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE); - + patternComment = Pattern.compile(SQLSyntaxConstants.COMMENT_TEXT, Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE); + patternCommentStart = Pattern.compile(SQLSyntaxConstants.COMMENT_TEXT_START, Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE); syntaxStyleComment = style.syntaxStyleMap.get(TextPaneStyleTypes.COMMENT); } + private void addConstants(String[] constants, TextPaneStyleTypes type) { + for (String keyword : constants) { + String patern = "(" + keyword + ")"; + patternSyntaxStyle.put( + Pattern.compile(patern, Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE), + style.syntaxStyleMap.get(type)); + } + } + @Override - protected int drawUnselectedText(Graphics graphics, int x, int y, int p0, int p1) - throws BadLocationException { + protected int drawUnselectedText(Graphics graphics, int x, int y, int p0, int p1) throws BadLocationException { boolean lineComment = false; Map<Integer, Integer> comment = new HashMap<>(); @@ -139,36 +111,30 @@ public class TextPaneView extends PlainView { } } - int j = 0; for (Map.Entry<Integer, Integer> entry : comment.entrySet()) { if (p0 >= entry.getKey() && p1 <= entry.getValue()) { lineComment = true; break; - } - else if (p0 <= entry.getKey() && p1 >= entry.getValue()) { + } else if (p0 <= entry.getKey() && p1 >= entry.getValue()) { commentInLine.put(entry.getKey() - p0, entry.getValue() - p0); - } - else if (p0 <= entry.getKey() + } else if (p0 <= entry.getKey() && p1 >= entry.getKey() && p1 < entry.getValue()) { commentInLine.put(entry.getKey() - p0, p1 - p0); - } - else if (p0 <= entry.getValue() + } else if (p0 <= entry.getValue() && p1 >= entry.getValue() && p0 > entry.getKey()) { commentInLine.put(0, entry.getValue() - p0); } - j++; } - SortedMap<Integer, Integer> startMap = new TreeMap<Integer, Integer>(); - SortedMap<Integer, SyntaxStyle> syntaxStyleMap = new TreeMap<Integer, SyntaxStyle>(); + SortedMap<Integer, Integer> startMap = new TreeMap<>(); + SortedMap<Integer, SyntaxStyle> syntaxStyleMap = new TreeMap<>(); if (lineComment) { startMap.put(0, text.length()); syntaxStyleMap.put(0, syntaxStyleComment); - } - else { + } else { for (Map.Entry<Integer, Integer> entryCommentInLine : commentInLine .entrySet()) { startMap.put(entryCommentInLine.getKey(), entryCommentInLine.getValue()); @@ -205,23 +171,20 @@ public class TextPaneView extends PlainView { } for (Map.Entry<Pattern, SyntaxStyle> entry : patternValue.entrySet()) { - Matcher matcher = entry.getKey().matcher(text); - while (matcher.find()) { if ((text.length() == matcher.end() || text.charAt(matcher.end()) == ' ' || text.charAt(matcher.end()) == ')' - || text.charAt(matcher.end()) == '\t' || text.charAt(matcher - .end()) == '\n') + || text.charAt(matcher.end()) == '\t' + || text.charAt(matcher.end()) == '\n') && (matcher.start() == 0 || text.charAt(matcher.start() - 1) == '\t' || text.charAt(matcher.start() - 1) == ' ' - || text.charAt(matcher.start() - 1) == '=' || text - .charAt(matcher.start() - 1) == '(')) { + || text.charAt(matcher.start() - 1) == '=' + || text.charAt(matcher.start() - 1) == '(')) { boolean inComment = false; - for (Map.Entry<Integer, Integer> entryCommentInLine : commentInLine - .entrySet()) { + for (Map.Entry<Integer, Integer> entryCommentInLine : commentInLine.entrySet()) { if (matcher.start() >= entryCommentInLine.getKey() && matcher.end() <= entryCommentInLine.getValue()) { inComment = true; @@ -238,7 +201,6 @@ public class TextPaneView extends PlainView { // TODO: check the map for overlapping parts int i = 0; - // Colour the parts for (Map.Entry<Integer, Integer> entry : startMap.entrySet()) { int start = entry.getKey(); http://git-wip-us.apache.org/repos/asf/cayenne/blob/f2438a35/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/syntax/SyntaxConstant.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/syntax/SyntaxConstant.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/syntax/SyntaxConstant.java index 9165aa7..bc9ed17 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/syntax/SyntaxConstant.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/syntax/SyntaxConstant.java @@ -23,21 +23,21 @@ import java.awt.Font; public interface SyntaxConstant { - public static Font DEFAULT_FONT = new Font("Courier", Font.PLAIN, 14); - public static Color DEFAULT_COLOR = Color.black; - public static String COMMENT_TEXT = "(?:/\\*(?:[^*]|(?:\\*+[^*/]))*\\*+/)|(?://.*)"; - public static final String COMMENT_TEXT_START = "/\\*.?"; - public static String STRING_TEXT = "'[^']*'"; - public static String NUMBER_TEXT = "\\d+"; + Font DEFAULT_FONT = new Font("Courier", Font.PLAIN, 14); + Color DEFAULT_COLOR = Color.black; + String COMMENT_TEXT = "(?:/\\*(?:[^*]|(?:\\*+[^*/]))*\\*+/)|(?://.*)"; + String COMMENT_TEXT_START = "/\\*.?"; + String STRING_TEXT = "'[^']*'"; + String NUMBER_TEXT = "\\d+"; - public String[] getKEYWORDS(); + String[] getKEYWORDS(); - public String[] getKEYWORDS2(); + String[] getKEYWORDS2(); - public String[] getTYPES(); + String[] getTYPES(); - public String[] getOPERATORS(); + String[] getOPERATORS(); - public String getContentType(); + String getContentType(); }