Buix-commits
Threads by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- 1440 discussions
r1385 - in jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing: . widget
by sletellier@users.labs.libre-entreprise.org May 6, 2009
by sletellier@users.labs.libre-entreprise.org May 6, 2009
May 6, 2009
Author: sletellier
Date: 2009-05-05 00:02:46 +0000 (Tue, 05 May 2009)
New Revision: 1385
Added:
jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/widget/
jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/widget/ErrorDialogUI.jaxx
Log:
Adding ErrorDialog widget
Added: jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/widget/ErrorDialogUI.jaxx
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/widget/ErrorDialogUI.jaxx (rev 0)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/widget/ErrorDialogUI.jaxx 2009-05-05 00:02:46 UTC (rev 1385)
@@ -0,0 +1,66 @@
+<JDialog title='observe.title.error.dialog' modal='true'>
+ <script><![CDATA[
+protected static ErrorDialogUI instance;
+public static void init(Frame frame) {
+ disposeUI();
+ instance = new ErrorDialogUI(frame);
+ instance.setModalityType(ModalityType.TOOLKIT_MODAL);
+}
+public static void showError(Exception e) {
+ if (instance == null) {
+ instance = new ErrorDialogUI();
+ }
+ instance.getErrorMessage().setText(e.getMessage());
+ StringWriter w = new StringWriter();
+ e.printStackTrace(new PrintWriter(w));
+ instance.getErrorStack().setText(w.toString());
+ instance.getErrorStack().setCaretPosition(0);
+ instance.pack();
+ jaxx.runtime.SwingUtil.center(instance.getContextValue(JFrame.class,"parent"), instance);
+ instance.setVisible(true);
+}
+public static void disposeUI() {
+ instance=null;
+}
+
+public ErrorDialogUI(Frame frame) {
+ super(frame);
+ if (frame!=null) {
+ setContextValue(frame);
+ setContextValue(frame,"parent");
+ }
+
+}
+
+JRootPane rootPane = getRootPane();
+rootPane.setDefaultButton(close);
+rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
+rootPane.getActionMap().put("close", close.getAction());
+ ]]></script>
+ <Table>
+ <row fill='both'>
+ <cell>
+ <JPanel>
+ <JLabel text='observe.message.error.dialog'/>
+ </JPanel>
+ </cell>
+ </row>
+ <row fill='both'>
+ <cell>
+ <JLabel id='errorMessage'/>
+ </cell>
+ </row>
+ <row fill='both' weightx='1' weighty='1'>
+ <cell>
+ <JScrollPane width='600' height='200'>
+ <JTextArea id='errorStack' editable='false' font-size='9'/>
+ </JScrollPane>
+ </cell>
+ </row>
+ <row fill='horizontal'>
+ <cell>
+ <JButton id='close' text='observe.action.close' onActionPerformed='dispose()'/>
+ </cell>
+ </row>
+ </Table>
+</JDialog>
2
1
r1386 - in jaxx/trunk: . jaxx-runtime-api jaxx-runtime-swing jaxx-runtime-swing/src/main/java/jaxx/runtime jaxx-runtime-swing/src/main/java/jaxx/runtime/swing jaxx-runtime-swing/src/main/resources/icons jaxx-runtime-swing-widget jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor jaxx-runtime-swing-widget/src/main/resources/i18n jaxx-runtime-validator jaxx-runtime-validator/src/main/java/jaxx/runtime/validator
by tchemit@users.labs.libre-entreprise.org May 6, 2009
by tchemit@users.labs.libre-entreprise.org May 6, 2009
May 6, 2009
Author: tchemit
Date: 2009-05-06 05:44:44 +0000 (Wed, 06 May 2009)
New Revision: 1386
Added:
jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/EntityComboBox.jaxx
jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/EntityComboBoxHandler.java
jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/ErrorDialogUI.jaxx
jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/TimeEditor.css
jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/TimeEditor.jaxx
jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/TimeEditorHandler.java
jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/BooleanCellRenderer.java
jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/EmptyNumberTableCellRenderer.java
jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/EnumTableCellRenderer.java
jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/MyDefaultCellEditor.java
jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/OneClicListSelectionModel.java
jaxx/trunk/jaxx-runtime-swing/src/main/resources/icons/action-delete.png
Modified:
jaxx/trunk/changelog.txt
jaxx/trunk/jaxx-runtime-api/changelog.txt
jaxx/trunk/jaxx-runtime-api/pom.xml
jaxx/trunk/jaxx-runtime-swing-widget/pom.xml
jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-en_GB.properties
jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-fr_FR.properties
jaxx/trunk/jaxx-runtime-swing/changelog.txt
jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/SwingUtil.java
jaxx/trunk/jaxx-runtime-validator/changelog.txt
jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/BeanValidator.java
jaxx/trunk/pom.xml
Log:
add some stuff from ObServe + more (see in changelogs...)
TODO : make an example for new editors
Modified: jaxx/trunk/changelog.txt
===================================================================
--- jaxx/trunk/changelog.txt 2009-05-05 00:02:46 UTC (rev 1385)
+++ jaxx/trunk/changelog.txt 2009-05-06 05:44:44 UTC (rev 1386)
@@ -1,4 +1,5 @@
1.5
+ * 20090506 [chemit] - super-pom has no dependencies, use lutinutil 1.0.5
* 20090404 [chemit] - introduce module jaxx-runtime-swing-widget for swing widgets designed with jaxx.
1.4
Modified: jaxx/trunk/jaxx-runtime-api/changelog.txt
===================================================================
--- jaxx/trunk/jaxx-runtime-api/changelog.txt 2009-05-05 00:02:46 UTC (rev 1385)
+++ jaxx/trunk/jaxx-runtime-api/changelog.txt 2009-05-06 05:44:44 UTC (rev 1386)
@@ -1,3 +1,6 @@
+1.5
+ * 20090506 [chemit] - super-pom has no dependencies
+
1.3 chemit 20090409
* 20090404 [chemit] - introduce DataContext class
* 20090331 [chemit] - introduce DecoratorUtils class
Modified: jaxx/trunk/jaxx-runtime-api/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-api/pom.xml 2009-05-05 00:02:46 UTC (rev 1385)
+++ jaxx/trunk/jaxx-runtime-api/pom.xml 2009-05-06 05:44:44 UTC (rev 1386)
@@ -19,6 +19,11 @@
<dependencies>
<dependency>
+ <groupId>org.codelutin</groupId>
+ <artifactId>lutinutil</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
</dependency>
Modified: jaxx/trunk/jaxx-runtime-swing/changelog.txt
===================================================================
--- jaxx/trunk/jaxx-runtime-swing/changelog.txt 2009-05-05 00:02:46 UTC (rev 1385)
+++ jaxx/trunk/jaxx-runtime-swing/changelog.txt 2009-05-06 05:44:44 UTC (rev 1386)
@@ -1,3 +1,6 @@
+1.5
+ * 20090506 [chemit] - add some usefull renderer and other stuffs
+
1.3 chemit 20090409
* 20090404 [chemit] - introduce dimension factory in SwingUtil for min and max dimensions
* 20090327 [chemit] - add javax help mecanism
Modified: jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/SwingUtil.java
===================================================================
--- jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/SwingUtil.java 2009-05-05 00:02:46 UTC (rev 1385)
+++ jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/SwingUtil.java 2009-05-06 05:44:44 UTC (rev 1386)
@@ -32,15 +32,22 @@
import java.util.Map.Entry;
import java.util.NoSuchElementException;
import java.util.Properties;
+import javax.swing.DefaultListCellRenderer;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
+import javax.swing.JList;
import javax.swing.JRootPane;
import javax.swing.JTabbedPane;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.table.DefaultTableCellRenderer;
+import jaxx.runtime.swing.BooleanCellRenderer;
+import jaxx.runtime.swing.DecoratorTableCellRenderer;
+import jaxx.runtime.swing.EmptyNumberTableCellRenderer;
+import jaxx.runtime.swing.EnumTableCellRenderer;
import jaxx.runtime.swing.I18nTableCellRenderer;
import jaxx.runtime.swing.Item;
import jaxx.runtime.swing.JAXXComboBox;
@@ -197,12 +204,12 @@
* @param component the component to box
* @return the {@link org.jdesktop.jxlayer.JXLayer} boxing the component
*/
- public static JXLayer boxComponentWithJxLayer(JComponent component) {
- JXLayer layer = getLayer(component);
+ public static JXLayer<?> boxComponentWithJxLayer(JComponent component) {
+ JXLayer<?> layer = getLayer(component);
if (layer != null) {
return layer;
}
- layer = new org.jdesktop.jxlayer.JXLayer();
+ layer = new org.jdesktop.jxlayer.JXLayer<JComponent>();
layer.add(component);
return layer;
}
@@ -234,7 +241,7 @@
public static boolean isLayered(JComponent comp) {
Container parent = comp.getParent();
- return parent != null && parent instanceof JXLayer;
+ return parent != null && parent instanceof JXLayer<?>;
}
/**
@@ -250,7 +257,7 @@
* @param container le container ou rechercher les composants d'edition
* @return le dictionnaire des composants recherches.
*/
- public static Map<String, JComponent> lookingForEditor(Class clazz, Container container) {
+ public static Map<String, JComponent> lookingForEditor(Class<?> clazz, Container container) {
Map<String, JComponent> result = new HashMap<String, JComponent>();
try {
// looking for all component with name set
@@ -552,8 +559,8 @@
if (rect == null || rect.width == 0 || rect.height == 0) {
rect = comp.getBounds();
}
- if (comp instanceof JXLayer) {
- JXLayer layer = (JXLayer) comp;
+ if (comp instanceof JXLayer<?>) {
+ JXLayer<?> layer = (JXLayer<?>) comp;
comp = layer.getView();
}
if (comp instanceof Container) {
@@ -575,8 +582,8 @@
if (rect == null || rect.width == 0 || rect.height == 0) {
rect = comp.getBounds();
}
- if (comp instanceof JXLayer) {
- JXLayer layer = (JXLayer) comp;
+ if (comp instanceof JXLayer<?>) {
+ JXLayer<?> layer = (JXLayer<?>) comp;
comp = layer.getView();
}
if (comp instanceof Container) {
@@ -592,4 +599,56 @@
return cont;
}
}
+
+ /**
+ * Génère un renderer de liste graphique basée sur un décorateur donné.
+ *
+ * @param <O> le type des données gérées par le décorateur
+ * @param decorator le décorateur à encapsuler
+ * @return le nouveau renderer
+ * @see Decorator
+ */
+ public static <O> DefaultListCellRenderer newDecoratedListCellRenderer(final Decorator<O> decorator) {
+ return new DefaultListCellRenderer() {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+ String decorated;
+ if (value instanceof String) {
+ decorated = (String) value;
+ } else {
+ decorated = decorator.toString(value);
+ }
+ JComponent component = (JComponent) super.getListCellRendererComponent(list, decorated, index, isSelected, cellHasFocus);
+ return component;
+ }
+ };
+ }
+
+ public static TableCellRenderer newDeleteCellRenderer(DefaultTableCellRenderer renderer) {
+ Icon icon = UIManager.getIcon("Table.removeIcon");
+ if (icon == null) {
+ // try with default icon
+ icon = createActionIcon("delete");
+ }
+ return new BooleanCellRenderer(renderer, icon);
+ }
+
+ public static TableCellRenderer newBooleanTableCellRenderer(DefaultTableCellRenderer renderer) {
+ return new BooleanCellRenderer(renderer);
+ }
+
+ public static DecoratorTableCellRenderer newDecorateTableCellRenderer(TableCellRenderer renderer, Decorator<?> decorator) {
+ return new DecoratorTableCellRenderer(renderer, decorator);
+ }
+
+ public static EmptyNumberTableCellRenderer newEmptyNumberTableCellRenderer(TableCellRenderer renderer) {
+ return new EmptyNumberTableCellRenderer(renderer);
+ }
+
+ public static <E extends Enum<E>> EnumTableCellRenderer<E> newEnumTableCellRenderer(TableCellRenderer renderer,Class<E> enumClass) {
+ return new EnumTableCellRenderer<E>(renderer,enumClass);
+ }
}
Added: jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/BooleanCellRenderer.java
===================================================================
--- jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/BooleanCellRenderer.java (rev 0)
+++ jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/BooleanCellRenderer.java 2009-05-06 05:44:44 UTC (rev 1386)
@@ -0,0 +1,61 @@
+package jaxx.runtime.swing;
+
+import javax.swing.Icon;
+import javax.swing.JCheckBox;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTable;
+import javax.swing.table.TableCellRenderer;
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Component;
+
+/** @author chemit
+ * @since 1.5
+ */
+public class BooleanCellRenderer extends JPanel implements TableCellRenderer {
+
+ private static final long serialVersionUID = 1L;
+ protected TableCellRenderer defaultDelegate;
+ protected JCheckBox checkBox;
+
+ public BooleanCellRenderer(TableCellRenderer delegate) {
+ //super(new BorderLayout());
+ this.checkBox = new JCheckBox();
+ add(checkBox, BorderLayout.CENTER);
+ checkBox.setHorizontalAlignment(JLabel.CENTER);
+ checkBox.setBorderPainted(true);
+ this.defaultDelegate = delegate;
+ }
+
+ public BooleanCellRenderer(TableCellRenderer delegate, Icon icon) {
+ //super(new BorderLayout());
+ this.checkBox = new JCheckBox(icon);
+ add(checkBox, BorderLayout.NORTH);
+ checkBox.setHorizontalAlignment(JLabel.CENTER);
+ checkBox.setVerticalTextPosition(JLabel.TOP);
+ checkBox.setBorderPainted(true);
+ this.defaultDelegate = delegate;
+ }
+
+ @Override
+ public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+ ((JComponent) defaultDelegate).setBackground(null);
+ JComponent render = (JComponent) defaultDelegate.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
+ if (isSelected) {
+ setForeground(table.getSelectionForeground());
+ setBackground(table.getSelectionBackground());
+ } else {
+ setForeground(render.getForeground());
+ setBackground(render.getBackground());
+ //fixme make this works... and remove the test
+ if (row % 2 == 1) {
+ setBackground(Color.WHITE);
+ }
+ }
+ checkBox.setSelected((value != null && (Boolean) value));
+ setBorder(render.getBorder());
+ return this;
+ }
+}
Added: jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/EmptyNumberTableCellRenderer.java
===================================================================
--- jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/EmptyNumberTableCellRenderer.java (rev 0)
+++ jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/EmptyNumberTableCellRenderer.java 2009-05-06 05:44:44 UTC (rev 1386)
@@ -0,0 +1,37 @@
+package jaxx.runtime.swing;
+
+import javax.swing.JTable;
+import javax.swing.table.TableCellRenderer;
+import java.awt.Component;
+import javax.swing.table.DefaultTableCellRenderer;
+
+/**
+ * A {@link TableCellRenderer} which does not display numbers when they are
+ * equals to 0.
+ *
+ * @author chemit
+ * @since 1.5
+ */
+public class EmptyNumberTableCellRenderer implements TableCellRenderer {
+
+ protected final Integer ZERO = 0;
+ protected final Float ZEROF = 0F;
+ protected final Double ZEROD = 0D;
+ private TableCellRenderer delegate;
+
+ public EmptyNumberTableCellRenderer() {
+ this(new DefaultTableCellRenderer());
+ }
+
+ public EmptyNumberTableCellRenderer(TableCellRenderer delegate) {
+ this.delegate = delegate;
+ }
+
+ @Override
+ public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+ if (value == null || ZERO.equals(value) || ZEROF.equals(value) || ZEROD.equals(value)) {
+ value = null;
+ }
+ return delegate.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
+ }
+}
Added: jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/EnumTableCellRenderer.java
===================================================================
--- jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/EnumTableCellRenderer.java (rev 0)
+++ jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/EnumTableCellRenderer.java 2009-05-06 05:44:44 UTC (rev 1386)
@@ -0,0 +1,47 @@
+package jaxx.runtime.swing;
+
+import javax.swing.JTable;
+import javax.swing.table.TableCellRenderer;
+import java.awt.Component;
+import java.util.EnumSet;
+
+/**
+ *
+ *
+ * A {@link TableCellRenderer} which displays enum values from their ordinal value.
+ *
+ * @param <E> le type de l'énumération.
+ *
+ * @author chemit
+ * @since 1.5
+ */
+public class EnumTableCellRenderer<E extends Enum<E>> implements TableCellRenderer {
+
+ private TableCellRenderer delegate;
+ private EnumSet<E> enumValues;
+
+ public EnumTableCellRenderer(TableCellRenderer delegate, Class<E> enumClass) {
+ this.delegate = delegate;
+ this.enumValues = EnumSet.allOf(enumClass);
+ }
+
+ @Override
+ public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+
+ if (value != null) {
+ //FIXME : should be also able to read it by name ?
+ Integer ordinal = Integer.valueOf(value + "");
+ if (ordinal == -1) {
+ value = null;
+ } else {
+ for (E enumValue : enumValues) {
+ if (ordinal == enumValue.ordinal()) {
+ value = enumValue;
+ break;
+ }
+ }
+ }
+ }
+ return delegate.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
+ }
+}
\ No newline at end of file
Added: jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/MyDefaultCellEditor.java
===================================================================
--- jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/MyDefaultCellEditor.java (rev 0)
+++ jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/MyDefaultCellEditor.java 2009-05-06 05:44:44 UTC (rev 1386)
@@ -0,0 +1,104 @@
+package jaxx.runtime.swing;
+
+import org.codelutin.util.EnumEditor;
+
+import javax.swing.DefaultCellEditor;
+import javax.swing.Icon;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JTable;
+import javax.swing.JTextField;
+import javax.swing.table.TableCellEditor;
+import java.awt.Component;
+
+/**
+ * @author chemit
+ * @since 1.5
+ */
+public class MyDefaultCellEditor extends DefaultCellEditor {
+
+ private static final long serialVersionUID = 1L;
+
+ public static TableCellEditor newTextEditor() {
+ return new MyDefaultCellEditor(new JTextField());
+ }
+
+ public static TableCellEditor newBooleanEditor() {
+ return new MyDefaultCellEditor(new JCheckBox());
+ }
+
+ public static TableCellEditor newListEditor() {
+ return newListEditor(new JComboBox());
+ }
+
+ public static TableCellEditor newListEditor(JComboBox editor) {
+ return new MyDefaultCellEditor(editor);
+ }
+
+ public static TableCellEditor newEnumEditor(EnumEditor editor) {
+ return new MyDefaultCellEditor(editor) {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public Object getCellEditorValue() {
+ Object value = super.getCellEditorValue();
+ if (value != null) {
+ value = ((Enum) value).ordinal();
+ } else {
+ value = -1;
+ }
+ return value;
+ }
+ };
+ }
+
+ public static TableCellEditor newBooleanEditor(Icon icon) {
+ return new MyDefaultCellEditor(new JCheckBox(icon));
+ }
+
+ public static TableCellEditor newBooleanEditor(Icon icon, boolean requireSelect) {
+ TableCellEditor cellEditor = newBooleanEditor(icon);
+ ((MyDefaultCellEditor) cellEditor).setRequireSelect(requireSelect);
+ return cellEditor;
+ }
+
+ public static TableCellEditor newBooleanEditor(boolean requireSelect) {
+ TableCellEditor cellEditor = newBooleanEditor();
+ ((MyDefaultCellEditor) cellEditor).setRequireSelect(requireSelect);
+ return cellEditor;
+ }
+ protected boolean requireSelect = true;
+
+ @Override
+ public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
+ if (!isSelected && requireSelect) {
+ // force to have select the cell before editing, a way to not modify edition for nothing...
+ return null;
+ }
+ return super.getTableCellEditorComponent(table, value, isSelected, row, column);
+ }
+
+ public boolean isRequireSelect() {
+ return requireSelect;
+ }
+
+ public void setRequireSelect(boolean requireSelect) {
+ this.requireSelect = requireSelect;
+ }
+
+ protected MyDefaultCellEditor(JTextField textField) {
+ super(textField);
+ setClickCountToStart(1);
+ }
+
+ protected MyDefaultCellEditor(JCheckBox checkBox) {
+ super(checkBox);
+ setClickCountToStart(1);
+ }
+
+ protected MyDefaultCellEditor(JComboBox comboBox) {
+ super(comboBox);
+ setClickCountToStart(1);
+ }
+}
Added: jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/OneClicListSelectionModel.java
===================================================================
--- jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/OneClicListSelectionModel.java (rev 0)
+++ jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/OneClicListSelectionModel.java 2009-05-06 05:44:44 UTC (rev 1386)
@@ -0,0 +1,181 @@
+package jaxx.runtime.swing;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.swing.ListModel;
+import javax.swing.ListSelectionModel;
+import javax.swing.event.ListSelectionListener;
+import java.util.Arrays;
+
+/**
+ * @author chemit
+ * @since 1.5
+ */
+public class OneClicListSelectionModel implements ListSelectionModel {
+
+ /** to use log facility, just put in your code: log.info("..."); */
+ static private Log log = LogFactory.getLog(OneClicListSelectionModel.class);
+ protected ListSelectionModel delegate;
+ protected final ListModel model;
+ private boolean[] _states;
+
+ public OneClicListSelectionModel(ListSelectionModel delegate, ListModel model) {
+ this.delegate = delegate;
+ this.model = model;
+ delegate.clearSelection();
+ }
+
+ protected boolean[] getStates(int selectedIndex) {
+ int max = model.getSize();
+ if (_states == null || _states.length != max) {
+ _states = new boolean[max];
+ } else {
+ Arrays.fill(_states, false);
+ }
+ for (int i = 0; i < max; i++) {
+ _states[i] = i != selectedIndex && delegate.isSelectedIndex(i);
+ }
+ return _states;
+ }
+
+ @Override
+ public void setSelectionInterval(int index0, int index1) {
+ if (index0 != index1) {
+ // not a single selection (come from a click)
+ // use default behaviour
+ delegate.setSelectionInterval(index0, index1);
+ return;
+ }
+ delegate.setValueIsAdjusting(true);
+
+ try {
+ int max = model.getSize();
+
+ if (log.isDebugEnabled()) {
+ log.debug("single [index:" + index0 + "] [selected:" + isSelectedIndex(index0) + "] [size:" + max + "] [anchor:" + delegate.getAnchorSelectionIndex() + "] [lead:" + delegate.getLeadSelectionIndex() + "]");
+ }
+
+ if (!isSelectedIndex(index0)) {
+ // select it
+ delegate.addSelectionInterval(index0, index1);
+ return;
+ }
+ if (max == index0) {
+ // last selected index, so can directly remove it
+ delegate.removeIndexInterval(index0, index0);
+ return;
+ }
+
+ // must recompute the selection removing only the index0 item
+ boolean[] state = getStates(index0);
+
+ if (log.isDebugEnabled()) {
+ log.debug("state : " + Arrays.toString(state));
+ }
+ delegate.clearSelection();
+ for (int i = 0; i < max; i++) {
+ if (state[i]) {
+ delegate.addSelectionInterval(i, i);
+ }
+ }
+ } finally {
+ delegate.setValueIsAdjusting(false);
+ }
+ }
+
+ @Override
+ public void addSelectionInterval(int index0, int index1) {
+ delegate.addSelectionInterval(index0, index1);
+ }
+
+ @Override
+ public void removeSelectionInterval(int index0, int index1) {
+ delegate.removeSelectionInterval(index0, index1);
+ }
+
+ @Override
+ public int getMinSelectionIndex() {
+ return delegate.getMinSelectionIndex();
+ }
+
+ @Override
+ public int getMaxSelectionIndex() {
+ return delegate.getMaxSelectionIndex();
+ }
+
+ @Override
+ public boolean isSelectedIndex(int index) {
+ return delegate.isSelectedIndex(index);
+ }
+
+ @Override
+ public int getAnchorSelectionIndex() {
+ return delegate.getAnchorSelectionIndex();
+ }
+
+ @Override
+ public void setAnchorSelectionIndex(int index) {
+ delegate.setAnchorSelectionIndex(index);
+ }
+
+ @Override
+ public int getLeadSelectionIndex() {
+ return delegate.getLeadSelectionIndex();
+ }
+
+ @Override
+ public void setLeadSelectionIndex(int index) {
+ delegate.setLeadSelectionIndex(index);
+ }
+
+ @Override
+ public void clearSelection() {
+ delegate.clearSelection();
+ }
+
+ @Override
+ public boolean isSelectionEmpty() {
+ return delegate.isSelectionEmpty();
+ }
+
+ @Override
+ public void insertIndexInterval(int index, int length, boolean before) {
+ delegate.insertIndexInterval(index, length, before);
+ }
+
+ @Override
+ public void removeIndexInterval(int index0, int index1) {
+ delegate.removeIndexInterval(index0, index1);
+ }
+
+ @Override
+ public void setValueIsAdjusting(boolean valueIsAdjusting) {
+ delegate.setValueIsAdjusting(valueIsAdjusting);
+ }
+
+ @Override
+ public boolean getValueIsAdjusting() {
+ return delegate.getValueIsAdjusting();
+ }
+
+ @Override
+ public void setSelectionMode(int selectionMode) {
+ delegate.setSelectionMode(selectionMode);
+ }
+
+ @Override
+ public int getSelectionMode() {
+ return delegate.getSelectionMode();
+ }
+
+ @Override
+ public void addListSelectionListener(ListSelectionListener x) {
+ delegate.addListSelectionListener(x);
+ }
+
+ @Override
+ public void removeListSelectionListener(ListSelectionListener x) {
+ delegate.removeListSelectionListener(x);
+ }
+}
Added: jaxx/trunk/jaxx-runtime-swing/src/main/resources/icons/action-delete.png
===================================================================
(Binary files differ)
Property changes on: jaxx/trunk/jaxx-runtime-swing/src/main/resources/icons/action-delete.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: jaxx/trunk/jaxx-runtime-swing-widget/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/pom.xml 2009-05-05 00:02:46 UTC (rev 1385)
+++ jaxx/trunk/jaxx-runtime-swing-widget/pom.xml 2009-05-06 05:44:44 UTC (rev 1386)
@@ -1,3 +1,4 @@
+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -25,6 +26,16 @@
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.swinglabs</groupId>
+ <artifactId>swingx</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.swinglabs</groupId>
+ <artifactId>swing-worker</artifactId>
+ </dependency>
+
</dependencies>
<!-- ************************************************************* -->
@@ -93,7 +104,7 @@
</goals>
</execution>
</executions>
- </plugin>
+ </plugin>
</plugins>
</build>
Added: jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/EntityComboBox.jaxx
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/EntityComboBox.jaxx (rev 0)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/EntityComboBox.jaxx 2009-05-06 05:44:44 UTC (rev 1386)
@@ -0,0 +1,110 @@
+<Table fill='both' insets='0'
+ onFocusGained='combobox.requestFocus()'
+ onFocusLost='hidePopup()'>
+
+<!--fill='both' insets='0'-->
+ <!-- auto complete property -->
+ <Boolean id='autoComplete' javaBean='false'/>
+
+ <!-- show reset property -->
+ <Boolean id='showReset' javaBean='false'/>
+
+ <!-- show decorator property -->
+ <Boolean id='showDecorator' javaBean='true'/>
+
+ <Boolean id='editable' javaBean='true'/>
+
+ <!-- bean property linked state -->
+ <String id='property' javaBean='""'/>
+
+ <!-- bean property -->
+ <Object id='bean' javaBean='null'/>
+
+ <!-- selectedItem property -->
+ <Object id='selectedItem' javaBean='null'/>
+
+ <!-- sort index property -->
+ <Integer id='index' javaBean='0'/>
+
+ <!-- datas of the combo-box -->
+ <java.util.List id='data' javaBean='null'/>
+
+ <!-- model of sorted property -->
+ <ButtonGroup id='indexes' useToolTipText='true'
+ onStateChanged='setIndex((Integer)indexes.getSelectedValue())'/>
+
+ <!-- ui handler -->
+ <EntityComboBoxHandler id='handler' constructorParams='this'/>
+
+ <String id='selectedToolTipText' javaBean='null'/>
+
+ <String id='notSelectedToolTipText' javaBean='null'/>
+
+ <String id='popupTitleText' javaBean='null'/>
+
+ <String id='i18nPrefix' javaBean='"observe.common."'/>
+
+ <!-- popup to change sorted property-->
+ <JPopupMenu id='popup'
+ border='{new TitledBorder(_("entitycombobox.popup.title"))}'
+ onPopupMenuWillBecomeInvisible='getChangeDecorator().setSelected(false)'
+ onPopupMenuCanceled='getChangeDecorator().setSelected(false)'>
+ <JLabel id='popupLabel'/>
+ <JSeparator/>
+ </JPopupMenu>
+
+ <script><![CDATA[
+import static org.codelutin.i18n.I18n.n_;
+
+public static final String DEFAULT_POPUP_LABEL = n_("entitycombobox.popup.label");
+
+public static final String DEFAULT_SELECTED_TOOLTIP = n_("entitycombobox.sort.on");
+
+public static final String DEFAULT_NOT_SELECTED_TOOLTIP = n_("entitycombobox.sort.off");
+
+public <O> void init(jaxx.runtime.JXPathDecorator<O> decorator, java.util.List<O> data) {
+ handler.init(decorator, data);
+}
+
+protected void hidePopup() {
+ if (popup.isVisible()) {
+ popup.setVisible(false);
+ }
+}
+]]>
+ </script>
+ <row>
+ <cell anchor='west'>
+ <!-- le boutton pour reinitialiser la valeur sélectionnée -->
+ <JToolBar floatable='false' borderPainted='false' visible='{isShowReset()}'>
+ <JButton actionIcon='combobox-reset'
+ toolTipText='entitycombobox.action.reset.tip'
+ focusable='false'
+ focusPainted='false'
+ enabled='{isEnabled()}'
+ onActionPerformed='setSelectedItem(null)'/>
+ </JToolBar>
+
+ </cell>
+ <cell weightx='1'>
+ <!-- la liste déroulante -->
+ <JComboBox id='combobox'
+ selectedItem='{getSelectedItem()}'
+ enabled='{isEnabled()}'
+ editable='{isEditable()}'
+ onFocusGained='hidePopup()'
+ onItemStateChanged='setSelectedItem(combobox.getSelectedItem())'/>
+ </cell>
+ <cell anchor='east' fill='both' insets='0'>
+ <!-- le boutton pour changer le tri -->
+ <JToolBar floatable='false' borderPainted='false' visible='{isShowDecorator()}'>
+ <JToggleButton id='changeDecorator'
+ actionIcon='combobox-sort'
+ toolTipText='entitycombobox.action.sort.tip'
+ focusable='false'
+ focusPainted='false'
+ onActionPerformed='getHandler().togglePopup()'/>
+ </JToolBar>
+ </cell>
+ </row>
+</Table>
Added: jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/EntityComboBoxHandler.java
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/EntityComboBoxHandler.java (rev 0)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/EntityComboBoxHandler.java 2009-05-06 05:44:44 UTC (rev 1386)
@@ -0,0 +1,454 @@
+package jaxx.runtime.swing;
+
+import java.awt.Component;
+import jaxx.runtime.JXPathDecorator;
+import jaxx.runtime.MultiJXPathDecorator;
+import jaxx.runtime.Util;
+import jaxx.runtime.SwingUtil;
+import org.apache.commons.beanutils.PropertyUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import static org.codelutin.i18n.I18n._;
+import static org.codelutin.i18n.I18n.n_;
+import org.jdesktop.swingx.autocomplete.ObjectToStringConverter;
+
+import javax.swing.JPopupMenu;
+import javax.swing.JRadioButtonMenuItem;
+import javax.swing.JToggleButton;
+import javax.swing.SwingUtilities;
+import javax.swing.text.Document;
+import javax.swing.text.JTextComponent;
+import java.awt.Dimension;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
+import java.beans.Introspector;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Method;
+import java.util.List;
+import javax.swing.JComboBox;
+import jaxx.runtime.Decorator;
+import org.jdesktop.swingx.autocomplete.AutoCompletePropertyChangeListener;
+
+/**
+ * Le handler d'un {@link EntityComboBox}.
+ * <p/>
+ * Note: ce handler n'est pas staeless et n'est donc pas partageable entre plusieurs ui.
+ *
+ * @param <O> le type des objet contenus dans le modèle du composant.
+ *
+ * @author chemit
+ * @see EntityComboBox
+ */
+public class EntityComboBoxHandler<O> implements PropertyChangeListener {
+
+ public static final Log log = LogFactory.getLog(EntityComboBoxHandler.class);
+ public static final String SELECTED_ITEM_PROPERTY = "selectedItem";
+ public static final String INDEX_PROPERTY = "index";
+ public static final String AUTO_COMPLETE_PROPERTY = "autoComplete";
+ public static final String DATA_PROPERTY = "data";
+ /** ui if the handler */
+ protected EntityComboBox ui;
+ /** the mutator method on the property of boxed bean in the ui */
+ protected Method mutator;
+ /** the original document of the combbo box editor (keep it to make possible undecorate) */
+ protected Document originalDocument;
+ /** the convertor used to auto-complete */
+ protected ObjectToStringConverter convertor;
+ /** the decorator of data */
+ protected MultiJXPathDecorator<O> decorator;
+ protected boolean init;
+
+ public EntityComboBoxHandler(EntityComboBox ui) {
+ this.ui = ui;
+ }
+ protected final FocusListener EDITOR_TEXT_COMP0NENT_FOCUSLISTENER = new FocusListener() {
+
+ @Override
+ public void focusGained(FocusEvent e) {
+ if (log.isDebugEnabled()) {
+ log.debug("close popup from " + e);
+ }
+ ui.getPopup().setVisible(false);
+ }
+
+ @Override
+ public void focusLost(FocusEvent e) {
+ }
+ };
+
+ /**
+ * Initialise le handler de l'ui
+ *
+ * @param decorator le decorateur a utiliser
+ * @param data la liste des données a gérer
+ */
+ public void init(JXPathDecorator<O> decorator, List<O> data) {
+
+ if (init) {
+ throw new IllegalStateException("can not init the handler twice");
+ }
+ init = true;
+ if (decorator == null) {
+ throw new NullPointerException("can not have a null decorator as parameter");
+ }
+
+ JAXXButtonGroup indexes = ui.getIndexes();
+
+ MultiJXPathDecorator<O> d;
+ if (decorator instanceof MultiJXPathDecorator<?>) {
+ // should clone decorator ?
+ d = (MultiJXPathDecorator<O>) decorator;
+ } else {
+ d = MultiJXPathDecorator.newDecorator(decorator.getInternalClass(), decorator.getInitialExpression(), " - ");
+ }
+ this.decorator = d;
+
+ // init combobox renderer base on given decorator
+ ui.getCombobox().setRenderer(Util.newDecoratedListCellRenderer(d));
+
+ this.convertor = newDecoratedObjectToStringConverter(d);
+
+ // keep a trace of original document (to make possible reverse autom-complete)
+ JTextComponent editorComponent = (JTextComponent) ui.getCombobox().getEditor().getEditorComponent();
+ this.originalDocument = editorComponent.getDocument();
+
+ // build popup
+ preparePopup(d);
+
+ ui.autoComplete = true;
+
+ ui.addPropertyChangeListener(this);
+
+ // set datas
+ ui.setData(data);
+
+ // select sort button
+ indexes.setSelectedButton(ui.getIndex());
+ }
+
+ /** Toggle the popup visible state. */
+ public void togglePopup() {
+ boolean newValue = !ui.getPopup().isVisible();
+
+ if (log.isTraceEnabled()) {
+ log.trace(newValue);
+ }
+
+ if (!newValue) {
+ if (ui.getPopup() != null) {
+ ui.getPopup().setVisible(false);
+ }
+ return;
+ }
+ SwingUtilities.invokeLater(new Runnable() {
+
+ @Override
+ public void run() {
+ ui.getPopup().pack();
+ Dimension dim = ui.getPopup().getPreferredSize();
+ JToggleButton invoker = ui.getChangeDecorator();
+ ui.getPopup().show(invoker, (int) (invoker.getPreferredSize().getWidth() - dim.getWidth()), invoker.getHeight());
+ }
+ });
+ }
+
+ /**
+ * Modifie l'état autoComplete de l'ui.
+ *
+ * @param oldValue l'ancienne valeur
+ * @param newValue la nouvelle valeur
+ */
+ protected void setAutoComplete(Boolean oldValue, Boolean newValue) {
+ oldValue = oldValue != null && oldValue;
+ newValue = newValue != null && newValue;
+ if (oldValue == newValue) {
+ return;
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("autocomplete state : <" + oldValue + " to " + newValue + ">");
+ }
+ if (!newValue) {
+ JTextComponent editorComponent = (JTextComponent) ui.getCombobox().getEditor().getEditorComponent();
+ editorComponent.removeFocusListener(EDITOR_TEXT_COMP0NENT_FOCUSLISTENER);
+ undecorate(ui.getCombobox(), originalDocument);
+ } else {
+ decorate(ui.getCombobox(), convertor);
+ JTextComponent editorComponent = (JTextComponent) ui.getCombobox().getEditor().getEditorComponent();
+ editorComponent.addFocusListener(EDITOR_TEXT_COMP0NENT_FOCUSLISTENER);
+ }
+ }
+
+ /**
+ * Modifie l'index du décorateur
+ *
+ * @param oldValue l'ancienne valeur
+ * @param newValue la nouvelle valeur
+ */
+ @SuppressWarnings({"unchecked"})
+ protected void setIndex(Integer oldValue, Integer newValue) {
+ if (newValue.equals(oldValue)) {
+ return;
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("check state : <" + oldValue + " to " + newValue + ">");
+ }
+
+ // change decorator context
+ decorator.setContextIndex(newValue);
+
+ // keep selected item
+ Object previousSelectedItem = ui.getSelectedItem();
+ Boolean wasAutoComplete = ui.isAutoComplete();
+
+ if (wasAutoComplete) {
+ ui.setAutoComplete(false);
+ }
+
+ // remove autocomplete
+ if (previousSelectedItem != null) {
+ ui.getCombobox().setSelectedItem(null);
+ ui.selectedItem = null;
+ }
+
+
+ try {
+ // Sort data with the decorator jxpath tokens.
+ JXPathDecorator.sort(decorator, ui.getData(), newValue);
+ } catch (Exception e) {
+ log.warn(e.getMessage(), e);
+ //System.out.println("newValue :: "+decorator+" : "+newValue);
+ //System.out.println("datas :: "+ui.getData());
+ }
+
+ // reload the model
+ SwingUtil.fillComboBox(ui.getCombobox(), ui.getData(), null);
+
+ if (wasAutoComplete) {
+ ui.setAutoComplete(true);
+ }
+
+ if (previousSelectedItem != null) {
+ ui.setSelectedItem(previousSelectedItem);
+ }
+
+ ui.getCombobox().requestFocus();
+ }
+
+ /**
+ * Modifie la valeur sélectionnée dans la liste déroulante.
+ *
+ * @param oldValue l'ancienne valeur
+ * @param newValue la nouvelle valeur
+ */
+ protected void setSelectedItem(Object oldValue, Object newValue) {
+ if (ui.getBean() == null) {
+ return;
+ }
+
+ if (newValue == null) {
+ if (ui.getCombobox().getSelectedItem() == null) {
+ return;
+ }
+ ui.getCombobox().setSelectedItem(null);
+
+ if (ui.isAutoComplete()) {
+ ui.setAutoComplete(false);
+ ui.setAutoComplete(true);
+ }
+
+ if (oldValue == null) {
+ return;
+ }
+ }
+ if (log.isDebugEnabled()) {
+ log.debug(ui.getProperty() + " on " + ui.getBean().getClass() + " :: " + oldValue + " to " + newValue);
+ }
+
+ try {
+ Method mut = getMutator();
+ if (mut != null) {
+ mut.invoke(ui.getBean(), newValue);
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /** @return le document de l'éditeur avant complétion. */
+ public Document getOriginalDocument() {
+ return originalDocument;
+ }
+
+ public MultiJXPathDecorator<O> getDecorator() {
+ return decorator;
+ }
+
+ /**
+ * Creation de l'ui pour modifier le décorateur.
+ *
+ * @param decorator le decorateur a utiliser
+ */
+ protected void preparePopup(MultiJXPathDecorator<?> decorator) {
+ String selectedTip = ui.getSelectedToolTipText();
+ if (selectedTip == null) {
+ // use default selected tip text
+ selectedTip = EntityComboBox.DEFAULT_SELECTED_TOOLTIP;
+ }
+ String notSelectedTip = ui.getNotSelectedToolTipText();
+ if (notSelectedTip == null) {
+ // use default selected tip text
+ notSelectedTip = EntityComboBox.DEFAULT_NOT_SELECTED_TOOLTIP;
+ }
+ JPopupMenu popup = ui.getPopup();
+
+ //Container container = ui.getIndexesContainer();
+ for (int i = 0, max = decorator.getNbContext(); i < max; i++) {
+ String property = ui.getI18nPrefix() + decorator.getProperty(i);
+// String property = "observe.common." + decorator.getProperty(i);
+ String propertyI18n = _(property);
+ JRadioButtonMenuItem button = new JRadioButtonMenuItem(propertyI18n);
+ button.putClientProperty(JAXXButtonGroup.BUTTON8GROUP_CLIENT_PROPERTY, ui.getIndexes());
+ button.putClientProperty(JAXXButtonGroup.VALUE_CLIENT_PROPERTY, i);
+ popup.add(button);
+ if (selectedTip != null) {
+ button.putClientProperty(JAXXButtonGroup.SELECTED_TIP_CLIENT_PROPERTY, _(selectedTip, propertyI18n));
+ }
+ if (notSelectedTip != null) {
+ button.putClientProperty(JAXXButtonGroup.NOT_SELECTED_TIP_CLIENT_PROPERTY, _(notSelectedTip, propertyI18n));
+ }
+ button.setSelected(false);
+ ui.getIndexes().add(button);
+ }
+ String title = ui.getPopupTitleText();
+ if (title == null) {
+ // use default popup title
+ title = EntityComboBox.DEFAULT_POPUP_LABEL;
+
+ Class<?> internalClass = decorator.getInternalClass();
+ String beanI18nKey;
+ if (internalClass == null) {
+ beanI18nKey = n_("entitycombobox.unknown.type");
+ } else {
+ beanI18nKey = ui.getI18nPrefix() + Introspector.decapitalize(internalClass.getSimpleName());
+ //beanI18nKey = "observe.common." + Introspector.decapitalize(internalClass.getSimpleName());
+ }
+ String beanI18n = _(beanI18nKey);
+ title = _(title, beanI18n);
+ } else {
+ title = _(title);
+ }
+ ui.getPopupLabel().setText(title);
+ ui.getPopup().setLabel(title);
+ ui.getPopup().invalidate();
+ }
+
+ public Class<?> getTargetClass() {
+ Method m = getMutator();
+ return m == null ? null : m.getParameterTypes()[0];
+ }
+
+ /** @return le mutateur a utiliser pour modifier le bean associé. */
+ protected Method getMutator() {
+ if (mutator == null) {
+ Object bean = ui.getBean();
+ if (bean == null) {
+ throw new NullPointerException("could not find bean in " + ui);
+ }
+ String property = ui.getProperty();
+ if (property == null) {
+ throw new NullPointerException("could not find property in " + ui);
+ }
+
+ try {
+ PropertyDescriptor descriptor = PropertyUtils.getPropertyDescriptor(bean, property);
+ if (descriptor != null) {
+ mutator = descriptor.getWriteMethod();
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ return mutator;
+ }
+
+ /**
+ * Encapsule un {@link Decorator} dans un {@link ObjectToStringConverter}.
+ *
+ * @param decorator le decorateur a encapsuler.
+ * @return le converter encapsule dans un {@link ObjectToStringConverter}
+ */
+ public static ObjectToStringConverter newDecoratedObjectToStringConverter(final Decorator<?> decorator) {
+
+ return new ObjectToStringConverter() {
+
+ @Override
+ public String getPreferredStringForItem(Object item) {
+ return item instanceof String ? (String) item : (item == null ? "" : decorator.toString(item));
+ }
+ };
+ }
+
+ /**
+ * Ajout l'auto-complétion sur une liste déroulante, en utilisant le
+ * converteur donné pour afficher les données.
+ *
+ * @param combo la combo à décorer
+ * @param convertor le converter utilisé pour afficher les données.
+ */
+ public static void decorate(JComboBox combo, ObjectToStringConverter convertor) {
+
+ org.jdesktop.swingx.autocomplete.AutoCompleteDecorator.decorate(combo, convertor);
+ }
+
+ /**
+ * Désactive l'aut-complétion sur une liste déroulante, en y repositionnant
+ * le modèle du document d'édition d'avant auto-complétion.
+ *
+ * @param combo la liste déroulante à décorer
+ * @param originalDocument le document original de l'édtieur de la
+ * liste déroulante.
+ */
+ public static void undecorate(JComboBox combo, Document originalDocument) {
+
+ // has not to be editable
+ combo.setEditable(false);
+
+ // configure the text component=editor component
+ Component c = combo.getEditor().getEditorComponent();
+ JTextComponent editorComponent = (JTextComponent) c;
+ editorComponent.setDocument(originalDocument);
+ editorComponent.setText(null);
+ //remove old property change listener
+ for (PropertyChangeListener l : c.getPropertyChangeListeners("editor")) {
+ if (l instanceof AutoCompletePropertyChangeListener) {
+ c.removePropertyChangeListener("editor", l);
+ }
+ }
+ }
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ String propertyName = evt.getPropertyName();
+
+ if (SELECTED_ITEM_PROPERTY.equals(propertyName)) {
+ setSelectedItem(evt.getOldValue(), evt.getNewValue());
+ return;
+ }
+
+ if (INDEX_PROPERTY.equals(propertyName)) {
+ setIndex((Integer) evt.getOldValue(), (Integer) evt.getNewValue());
+ return;
+ }
+ if (AUTO_COMPLETE_PROPERTY.equals(propertyName)) {
+ setAutoComplete((Boolean) evt.getOldValue(), (Boolean) evt.getNewValue());
+ return;
+ }
+ if (DATA_PROPERTY.equals(propertyName)) {
+ // list has changed, force reload of index
+ setIndex(-1, ui.getIndex());
+ }
+
+ }
+}
Added: jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/ErrorDialogUI.jaxx
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/ErrorDialogUI.jaxx (rev 0)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/ErrorDialogUI.jaxx 2009-05-06 05:44:44 UTC (rev 1386)
@@ -0,0 +1,66 @@
+<JDialog title='errorUI.title' modal='true'>
+ <script><![CDATA[
+protected static ErrorDialogUI instance;
+public static void init(Frame frame) {
+ disposeUI();
+ instance = new ErrorDialogUI(frame);
+ instance.setModalityType(ModalityType.TOOLKIT_MODAL);
+}
+public static void showError(Exception e) {
+ if (instance == null) {
+ instance = new ErrorDialogUI();
+ }
+ instance.getErrorMessage().setText(e.getMessage());
+ StringWriter w = new StringWriter();
+ e.printStackTrace(new PrintWriter(w));
+ instance.getErrorStack().setText(w.toString());
+ instance.getErrorStack().setCaretPosition(0);
+ instance.pack();
+ jaxx.runtime.SwingUtil.center(instance.getContextValue(JFrame.class,"parent"), instance);
+ instance.setVisible(true);
+}
+public static void disposeUI() {
+ instance=null;
+}
+
+public ErrorDialogUI(Frame frame) {
+ super(frame);
+ if (frame!=null) {
+ setContextValue(frame);
+ setContextValue(frame,"parent");
+ }
+
+}
+
+JRootPane rootPane = getRootPane();
+rootPane.setDefaultButton(close);
+rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
+rootPane.getActionMap().put("close", close.getAction());
+ ]]></script>
+ <Table>
+ <row fill='both'>
+ <cell>
+ <JPanel>
+ <JLabel text='errorUI.message'/>
+ </JPanel>
+ </cell>
+ </row>
+ <row fill='both'>
+ <cell>
+ <JLabel id='errorMessage'/>
+ </cell>
+ </row>
+ <row fill='both' weightx='1' weighty='1'>
+ <cell>
+ <JScrollPane width='600' height='200'>
+ <JTextArea id='errorStack' editable='false' font-size='9'/>
+ </JScrollPane>
+ </cell>
+ </row>
+ <row fill='horizontal'>
+ <cell>
+ <JButton id='close' text='errorUI.action.close' onActionPerformed='dispose()'/>
+ </cell>
+ </row>
+ </Table>
+</JDialog>
Added: jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/TimeEditor.css
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/TimeEditor.css (rev 0)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/TimeEditor.css 2009-05-06 05:44:44 UTC (rev 1386)
@@ -0,0 +1,31 @@
+#title{
+ text:{getLabel()};
+ horizontalAlignment:center;
+}
+
+#hour{
+ value:{getTimeModel()/60};
+ enabled:{isEnabled()};
+ model:{new SpinnerNumberModel(0,0,23,1)};
+}
+
+#labelH {
+ text:"H";
+ horizontalAlignment:center;
+}
+#minute{
+ value:{getTimeModel()%60};
+ enabled:{isEnabled()};
+ model:{new SpinnerNumberModel(0,0,59,1)};
+}
+
+#slider{
+ font-size: 11;
+ paintTicks:true;
+ paintLabels:true;
+ majorTickSpacing:60;
+ minorTickSpacing:30;
+ value:{getTimeModel()};
+ enabled:{isEnabled()};
+ model:{new DefaultBoundedRangeModel(0,1,0,60*24)};
+}
Added: jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/TimeEditor.jaxx
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/TimeEditor.jaxx (rev 0)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/TimeEditor.jaxx 2009-05-06 05:44:44 UTC (rev 1386)
@@ -0,0 +1,56 @@
+
+<JPanel layout='{new BorderLayout()}'>
+
+ <style source='TimeEditor.css'/>
+
+ <!-- bean property -->
+ <String id='property' javaBean='""'/>
+
+ <!-- title -->
+ <String id='label' javaBean='""'/>
+
+ <!-- bean -->
+ <Object id='bean' javaBean='null'/>
+
+ <!-- time model -->
+ <Integer id="timeModel" javaBean='0'/>
+
+ <!-- the real date -->
+ <java.util.Date id="date" javaBean='null'/>
+
+ <!-- ui handler -->
+ <TimeEditorHandler id='handler' constructorParams='this'/>
+
+ <script><![CDATA[
+public void init() {
+ handler.init();
+}
+]]>
+ </script>
+
+ <Table constraints='BorderLayout.NORTH' fill='horizontal' insets='0'>
+ <row>
+ <cell>
+ <JLabel id='title'/>
+ </cell>
+ <cell weightx='1'>
+ <JLabel/>
+ </cell>
+ <cell>
+ <JSpinner id='hour'
+ onStateChanged='setTimeModel((Integer)hour.getValue()* 60 + timeModel % 60)'/>
+ </cell>
+ <cell>
+ <JLabel id='labelH'/>
+ </cell>
+ <cell>
+ <JSpinner id='minute'
+ onStateChanged='setTimeModel((timeModel / 60) * 60 + (Integer) minute.getValue())'/>
+ </cell>
+ </row>
+ </Table>
+
+ <JSlider id='slider' constraints='BorderLayout.SOUTH'
+ onStateChanged='if (!slider.getValueIsAdjusting()) setTimeModel(slider.getValue());'/>
+
+</JPanel>
Added: jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/TimeEditorHandler.java
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/TimeEditorHandler.java (rev 0)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/TimeEditorHandler.java 2009-05-06 05:44:44 UTC (rev 1386)
@@ -0,0 +1,204 @@
+package jaxx.runtime.swing.editor;
+
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import org.apache.commons.beanutils.PropertyUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.swing.JLabel;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Method;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Dictionary;
+import java.util.Hashtable;
+import java.util.Map;
+import javax.swing.JSlider;
+import javax.swing.plaf.basic.BasicSliderUI;
+
+/** @author chemit */
+public class TimeEditorHandler {
+
+ public static final Log log = LogFactory.getLog(TimeEditorHandler.class);
+ public static final String BEAN_PROPERTY = "bean";
+ public static final String PROPERTY_PROPERTY = "property";
+ public static final String DATE_PROPERTY = "date";
+ public static final String TIME_MODEL_PROPERTY = "timeModel";
+ /** editor ui */
+ protected TimeEditor editor;
+ /** the mutator method on the property of boxed bean in the editor */
+ protected Method mutator;
+ protected Calendar calendar;
+
+ public TimeEditorHandler(TimeEditor ui) {
+ this.editor = ui;
+ this.calendar = Calendar.getInstance();
+ }
+
+ public void init() {
+
+ if (editor.getBean() == null) {
+ throw new NullPointerException("can not have a null bean in ui " + editor);
+ }
+
+ // create slider labels
+ Map<Integer, JLabel> labelTable = new Hashtable<Integer, JLabel>();
+ for (int i = 0; i < 25; i += 2) {
+ labelTable.put(i * 60, new JLabel(i + ""));
+ }
+ JSlider slider = editor.getSlider();
+ slider.setLabelTable((Dictionary<?,?>) labelTable);
+
+ MouseAdapter m = new MouseAdapter() {
+
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ // set the value
+ int value = getSliderValue(e);
+ JSlider slider = (JSlider) e.getComponent();
+ slider.setValueIsAdjusting(true);
+ slider.setValue(value);
+ slider.setValueIsAdjusting(false);
+ showToolTip(e);
+ e.consume();
+ }
+
+ @Override
+ public void mouseDragged(MouseEvent e) {
+ showToolTip(e);
+ }
+
+ @Override
+ public void mouseEntered(MouseEvent e) {
+ showToolTip(e);
+ }
+
+ @Override
+ public void mouseMoved(MouseEvent e) {
+ showToolTip(e);
+ }
+
+ @Override
+ public void mouseReleased(MouseEvent e) {
+ showToolTip(e);
+ }
+
+ int getSliderValue(MouseEvent e) {
+ JSlider slider = (JSlider) e.getSource();
+ int value = -1;
+ if (slider.getUI() instanceof BasicSliderUI) {
+ BasicSliderUI ui = (BasicSliderUI) slider.getUI();
+ value = slider.getOrientation() == JSlider.HORIZONTAL
+ ? ui.valueForXPosition(e.getX())
+ : ui.valueForYPosition(e.getY());
+ }
+ return value;
+ }
+
+ void showToolTip(MouseEvent e) {
+
+ int value = getSliderValue(e);
+ if (value == -1) {
+ return;
+ }
+ int h = value / 60;
+ int m = value % 60;
+
+ String text = "";
+ if (h < 10) {
+ text = "0";
+ }
+ text += h + " : ";
+ if (m < 10) {
+ text += "0";
+ }
+ text += m;
+
+ JSlider slider = (JSlider) e.getSource();
+ slider.setToolTipText(text);
+
+ }
+ };
+ slider.addMouseListener(m);
+ slider.addMouseMotionListener(m);
+
+ // listen when date changes (should come from outside)
+ editor.addPropertyChangeListener(DATE_PROPERTY, new PropertyChangeListener() {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ Date date = (Date) evt.getNewValue();
+
+ if (date == null) {
+ return;
+ }
+ calendar.setTime(date);
+ int hours = calendar.get(Calendar.HOUR_OF_DAY);
+ int minutes = calendar.get(Calendar.MINUTE);
+ if (log.isDebugEnabled()) {
+ log.debug("date changed : new value " + hours + ":" + minutes);
+ }
+ getEditor().setTimeModel((hours * 60) + minutes);
+ }
+ });
+
+ // listen when time model changes (should come from editor)
+ editor.addPropertyChangeListener(TIME_MODEL_PROPERTY, new PropertyChangeListener() {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ Integer time = (Integer) evt.getNewValue();
+ int hours = time / 60;
+ int minutes = time % 60;
+ calendar.set(Calendar.HOUR_OF_DAY, hours);
+ calendar.set(Calendar.MINUTE, minutes);
+ setDate(null, calendar.getTime());
+ }
+ });
+ }
+
+ public TimeEditor getEditor() {
+ return editor;
+ }
+
+ protected void setDate(Date oldValue, Date newValue) {
+ if (editor.getBean() == null) {
+ return;
+ }
+
+ if (log.isDebugEnabled()) {
+ log.debug(editor.getProperty() + " on " + editor.getBean().getClass() + " :: " + oldValue + " to " + newValue);
+ }
+
+ try {
+ getMutator().invoke(editor.getBean(), newValue);
+
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ protected Method getMutator() {
+ if (mutator == null) {
+ Object bean = editor.getBean();
+ if (bean == null) {
+ throw new NullPointerException("could not find bean in " + editor);
+ }
+ String property = editor.getProperty();
+ if (property == null) {
+ throw new NullPointerException("could not find property in " + editor);
+ }
+
+ try {
+ PropertyDescriptor descriptor = PropertyUtils.getPropertyDescriptor(bean, property);
+ mutator = descriptor.getWriteMethod();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ return mutator;
+ }
+}
\ No newline at end of file
Modified: jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-en_GB.properties
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-en_GB.properties 2009-05-05 00:02:46 UTC (rev 1385)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-en_GB.properties 2009-05-06 05:44:44 UTC (rev 1386)
@@ -10,8 +10,21 @@
8=
9=
H=
+entitycombobox.action.reset.tip=
+entitycombobox.action.sort.tip=
+entitycombobox.popup.label=
+entitycombobox.popup.title=
+entitycombobox.sort.off=
+entitycombobox.sort.on=
+entitycombobox.unknown.type=
+errorUI.action.close=
+errorUI.message=
+errorUI.title=
numbereditor.action.reset.tip=Reset
numbereditor.action.show.tip=Show numeric panel
numbereditor.clearAll=C
numbereditor.clearOne=CE
numbereditor.toggleSign=+/-
+observe.action.close=
+observe.message.error.dialog=
+observe.title.error.dialog=
Modified: jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-fr_FR.properties
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-fr_FR.properties 2009-05-05 00:02:46 UTC (rev 1385)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-fr_FR.properties 2009-05-06 05:44:44 UTC (rev 1386)
@@ -10,6 +10,16 @@
8=
9=
H=
+entitycombobox.action.reset.tip=R\u00E9initialiser la valeur de la liste d\u00E9roulante
+entitycombobox.action.sort.tip=Modifier le tri de la liste d\u00E9roulante
+entitycombobox.popup.label=Objet '%1$s'
+entitycombobox.popup.title=Modifier le tri
+entitycombobox.sort.off=Cliquer pour activer le tri sur la propri\u00E9t\u00E9 '%1$s'
+entitycombobox.sort.on=Le tri est effectu\u00E9 sur la propri\u00E9t\u00E9 '%1$s'
+entitycombobox.unknown.type=Objet de type inconnu
+errorUI.action.close=Fermer
+errorUI.message=Une erreur est survenue \!
+errorUI.title=Erreur...
numbereditor.action.reset.tip=R\u00E9initialiser
numbereditor.action.show.tip=Afficher le pav\u00E9 num\u00E9rique
numbereditor.clearAll=C
Modified: jaxx/trunk/jaxx-runtime-validator/changelog.txt
===================================================================
--- jaxx/trunk/jaxx-runtime-validator/changelog.txt 2009-05-05 00:02:46 UTC (rev 1385)
+++ jaxx/trunk/jaxx-runtime-validator/changelog.txt 2009-05-06 05:44:44 UTC (rev 1386)
@@ -1,4 +1,5 @@
1.5
+ * 20090506 [chemit] - on chained validation, do not changed parentValidator changed state
* 20090503 [chemit] - add a new property collectionFieldName on CollectionFieldExpression validator to be able to validate a collection but not for a collection field
- add doRevalidate on BeanValidator to validate and update internal states (validate method does not update internal state and should be used in outside...)
Modified: jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/BeanValidator.java
===================================================================
--- jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/BeanValidator.java 2009-05-05 00:02:46 UTC (rev 1385)
+++ jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/BeanValidator.java 2009-05-06 05:44:44 UTC (rev 1386)
@@ -380,7 +380,13 @@
if (parentValidator != null) {
// chained validation
- parentValidator.l.propertyChange(null);
+ // the parent validator should not be changed from this validation
+ boolean wasModified = parentValidator.isChanged();
+ parentValidator.doValidate();
+ if (!wasModified) {
+ // push back old state
+ parentValidator.setChanged(false);
+ }
}
}
Modified: jaxx/trunk/pom.xml
===================================================================
--- jaxx/trunk/pom.xml 2009-05-05 00:02:46 UTC (rev 1385)
+++ jaxx/trunk/pom.xml 2009-05-06 05:44:44 UTC (rev 1386)
@@ -34,12 +34,12 @@
<module>jaxx-example</module>
</modules>
- <dependencies>
+ <!--dependencies>
<dependency>
<groupId>org.codelutin</groupId>
<artifactId>lutinutil</artifactId>
</dependency>
- </dependencies>
+ </dependencies-->
<dependencyManagement>
<dependencies>
@@ -121,6 +121,18 @@
<version>3.0.1</version>
</dependency>
+ <dependency>
+ <groupId>org.swinglabs</groupId>
+ <artifactId>swingx</artifactId>
+ <version>${swingx.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.swinglabs</groupId>
+ <artifactId>swing-worker</artifactId>
+ <version>1.1</version>
+ </dependency>
+
</dependencies>
</dependencyManagement>
@@ -147,10 +159,11 @@
<labs.project>buix</labs.project>
<!-- libs version -->
- <lutinutil.version>1.0.3</lutinutil.version>
+ <lutinutil.version>1.0.5</lutinutil.version>
<jaxx.version>${project.version}</jaxx.version>
<i18n.version>0.11</i18n.version>
<lutinpluginutil.version>0.4</lutinpluginutil.version>
+ <swingx.version>0.9.6</swingx.version>
<maven.version>2.0.10</maven.version>
</properties>
1
0
r1384 - in jaxx/trunk: jaxx-example/src/main/java/jaxx/demo jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor
by sletellier@users.labs.libre-entreprise.org May 4, 2009
by sletellier@users.labs.libre-entreprise.org May 4, 2009
May 4, 2009
Author: sletellier
Date: 2009-05-04 23:55:44 +0000 (Mon, 04 May 2009)
New Revision: 1384
Modified:
jaxx/trunk/jaxx-example/src/main/java/jaxx/demo/NumberEditorDemo.jaxx
jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/NumberEditorHandler.java
Log:
Determine si la propriete concernee est un float
Modified: jaxx/trunk/jaxx-example/src/main/java/jaxx/demo/NumberEditorDemo.jaxx
===================================================================
--- jaxx/trunk/jaxx-example/src/main/java/jaxx/demo/NumberEditorDemo.jaxx 2009-05-04 23:09:13 UTC (rev 1383)
+++ jaxx/trunk/jaxx-example/src/main/java/jaxx/demo/NumberEditorDemo.jaxx 2009-05-04 23:55:44 UTC (rev 1384)
@@ -95,8 +95,7 @@
model='{demoModel.getPositifFloat()}'
autoPopup='false'
showPopupButton='true'
- showReset='true'
- useFloat='true'/>
+ showReset='true'/>
</cell>
<cell>
<NumberEditor id='positifFloatEditor2'
@@ -106,8 +105,7 @@
model='{demoModel.getPositifFloat()}'
autoPopup='true'
showPopupButton='true'
- showReset='true'
- useFloat='true'/>
+ showReset='true'/>
</cell>
</row>
<row>
@@ -123,8 +121,7 @@
autoPopup='false'
showPopupButton='true'
showReset='true'
- useSign='true'
- useFloat='true'/>
+ useSign='true'/>
</cell>
<cell>
<NumberEditor id='normalFloatEditor2'
@@ -135,32 +132,9 @@
autoPopup='true'
showPopupButton='true'
showReset='true'
- useSign='true'
- useFloat='true'/>
+ useSign='true'/>
</cell>
</row>
- <row>
- <cell>
-
- </cell>
- <cell>
-
- </cell>
- <cell>
-
- </cell>
- </row>
- <row>
- <cell>
-
- </cell>
- <cell>
-
- </cell>
- <cell>
-
- </cell>
- </row>
</Table>
</DemoPanel>
Modified: jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/NumberEditorHandler.java
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/NumberEditorHandler.java 2009-05-04 23:09:13 UTC (rev 1383)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/NumberEditorHandler.java 2009-05-04 23:55:44 UTC (rev 1384)
@@ -33,13 +33,15 @@
public static final String MODEL_PROPERTY = "model";
public static final String AUTO_POPUP_PROPERTY = "autoPopup";
public static final String POPUP_VISIBLE_PROPERTY = "popupVisible";
- public static final String USE_FLOAT_PROPERTY = "useFloat";
+// public static final String USE_FLOAT_PROPERTY = "useFloat";
public static final String USE_SIGN_PROPERTY = "useSign";
public static final String VALIDATE_PROPERTY = "validate";
/** editor ui */
protected NumberEditor editor;
/** the mutator method on the property of boxed bean in the editor */
protected Method mutator;
+ /** the getter method on the property */
+ protected Method getter;
/** a flag to known if mutator accept null value */
protected Boolean acceptNull;
@@ -72,6 +74,11 @@
}
});
editor.getTextField().addMouseListener(new PopupListener());
+
+ // Determine si c'est un float
+ Class type = getGetter().getReturnType();
+ editor.setUseFloat(!type.equals(Integer.class) && !type.equals(int.class));
+
/*if (editor.getResetButton().getIcon() == null) {
editor.getResetButton().setIcon(SwingUtil.createActionIcon("numbereditor-reset"));
}
@@ -141,8 +148,8 @@
} else if (s.endsWith(".")) {
s += "0";
endWithDot = true;
- } else if (s.length() == 1 && s.startsWith("-")) {
- s += "0";
+ } else if (editor.isUseSign() && s.length() == 1 && s.startsWith("-")) {
+ s = "0";
isLess = true;
}
@@ -186,10 +193,12 @@
if (log.isDebugEnabled()) {
log.debug("can apply new model value : " + newValue);
}
- if (!isLess){
- // on peut mettre a jour le model
- editor.setModel(newValue);
+ if (isLess){
+ editor.setModelText("-");
+ return;
}
+ // on peut mettre a jour le model
+ editor.setModel(newValue);
if (endWithDot) {
editor.setModelText(s.substring(0, s.length() - 1));
field.setCaretPosition(oldPosition);
@@ -208,7 +217,12 @@
oldPosition--;
}
field.setText(text);
- field.setCaretPosition(oldPosition);
+ try {
+ field.setCaretPosition(oldPosition);
+ }
+ catch(IllegalArgumentException ex){
+ log.debug("CaretPosition is invalid for position : " + oldPosition, ex);
+ }
}
/**
@@ -383,6 +397,27 @@
return mutator;
}
+ protected Method getGetter() {
+ if (getter == null) {
+ Object bean = editor.getBean();
+ if (bean == null) {
+ throw new NullPointerException("could not find bean in " + editor);
+ }
+ String property = editor.getProperty();
+ if (property == null) {
+ throw new NullPointerException("could not find property in " + editor);
+ }
+
+ try {
+ PropertyDescriptor descriptor = PropertyUtils.getPropertyDescriptor(bean, property);
+ getter = descriptor.getReadMethod();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ return getter;
+ }
+
public Boolean getAcceptNull() {
if (acceptNull == null) {
Method m = getMutator();
1
0
r1382 - in jaxx/trunk: jaxx-example jaxx-example/src/main/java/jaxx/demo jaxx-example/src/main/resources jaxx-example/src/main/resources/i18n jaxx-runtime-swing-widget jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor jaxx-runtime-swing-widget/src/main/resources jaxx-runtime-swing-widget/src/main/resources/i18n jaxx-runtime-swing-widget/src/main/resources/icons
by tchemit@users.labs.libre-entreprise.org May 4, 2009
by tchemit@users.labs.libre-entreprise.org May 4, 2009
May 4, 2009
Author: tchemit
Date: 2009-05-04 19:39:58 +0000 (Mon, 04 May 2009)
New Revision: 1382
Added:
jaxx/trunk/jaxx-example/src/main/java/jaxx/demo/NumberEditorDemo.jaxx
jaxx/trunk/jaxx-example/src/main/java/jaxx/demo/NumberEditorDemoModel.java
jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/
jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/NumberEditor.jaxx
jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/NumberEditorHandler.java
jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/NumberEditorPopup.css
jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/icons/
jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/icons/action-numbereditor-calculator.png
jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/icons/action-numbereditor-reset.png
jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/icons/action-numbereditor-validate.png
Modified:
jaxx/trunk/jaxx-example/pom.xml
jaxx/trunk/jaxx-example/src/main/java/jaxx/demo/JAXXDemo.jaxx
jaxx/trunk/jaxx-example/src/main/resources/i18n/jaxx-example-en_GB.properties
jaxx/trunk/jaxx-example/src/main/resources/i18n/jaxx-example-fr_FR.properties
jaxx/trunk/jaxx-example/src/main/resources/log4j.properties
jaxx/trunk/jaxx-runtime-swing-widget/pom.xml
jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-en_GB.properties
jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-fr_FR.properties
Log:
add NumberEditor + do example
Modified: jaxx/trunk/jaxx-example/pom.xml
===================================================================
--- jaxx/trunk/jaxx-example/pom.xml 2009-05-04 16:50:00 UTC (rev 1381)
+++ jaxx/trunk/jaxx-example/pom.xml 2009-05-04 19:39:58 UTC (rev 1382)
@@ -1,3 +1,4 @@
+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -54,6 +55,9 @@
<maven.jar.main.class>jaxx.demo.JAXXDemo</maven.jar.main.class>
+ <jaxx.addProjectClassPath>true</jaxx.addProjectClassPath>
+ <jaxx.addSourcesToClassPath>true</jaxx.addSourcesToClassPath>
+
<!-- jnlp -->
<keystorepath>${codelutin.keystorepath}</keystorepath>
<keystorealias>CodeLutin</keystorealias>
Modified: jaxx/trunk/jaxx-example/src/main/java/jaxx/demo/JAXXDemo.jaxx
===================================================================
--- jaxx/trunk/jaxx-example/src/main/java/jaxx/demo/JAXXDemo.jaxx 2009-05-04 16:50:00 UTC (rev 1381)
+++ jaxx/trunk/jaxx-example/src/main/java/jaxx/demo/JAXXDemo.jaxx 2009-05-04 19:39:58 UTC (rev 1382)
@@ -1,9 +1,13 @@
<Application title="JAXX Demo" width='1024' height='800' defaultCloseOperation='exit_on_close'>
<script><![CDATA[
-org.codelutin.i18n.I18n.init();
+static {
+org.codelutin.i18n.I18n.init("fr", "FR");
+}
void $afterCompleteSetup() {
+
+
try { jaxx.runtime.SwingUtil.initNimbusLoookAndFeel(); } catch (Exception e) { log.error(e.getMessage(), e); }
SwingUtilities.invokeLater(new Runnable() {
@Override
@@ -81,6 +85,9 @@
</item>
<item value='{dataBindingDemo}'/>
<item value='{boxedDecoratorDemo}'/>
+ <item value='Editors'>
+ <item value='{numberEditorDemo}'/>
+ </item>
</item>
</JTree>
</JScrollPane>
@@ -113,6 +120,7 @@
<CounterDemo id='counterDemo' constraints='counterDemo.getLabel()'/>
<CalculatorDemo id='calculatorDemo' constraints='calculatorDemo.getLabel()'/>
<BoxedDecoratorDemo id='boxedDecoratorDemo' constraints='boxedDecoratorDemo.getLabel()'/>
+ <NumberEditorDemo id='numberEditorDemo' constraints='numberEditorDemo.getLabel()'/>
</JPanel>
</JSplitPane>
</Application>
\ No newline at end of file
Added: jaxx/trunk/jaxx-example/src/main/java/jaxx/demo/NumberEditorDemo.jaxx
===================================================================
--- jaxx/trunk/jaxx-example/src/main/java/jaxx/demo/NumberEditorDemo.jaxx (rev 0)
+++ jaxx/trunk/jaxx-example/src/main/java/jaxx/demo/NumberEditorDemo.jaxx 2009-05-04 19:39:58 UTC (rev 1382)
@@ -0,0 +1,166 @@
+
+<DemoPanel>
+ <script><![CDATA[
+import jaxx.runtime.swing.editor.NumberEditor;
+
+void $afterCompleteSetup() {
+ positifIntegerEditor.init();
+ positifIntegerEditor2.init();
+ normalIntegerEditor.init();
+ normalIntegerEditor2.init();
+ positifFloatEditor.init();
+ positifFloatEditor2.init();
+ normalFloatEditor.init();
+ normalFloatEditor2.init();
+}
+]]>
+ </script>
+
+ <!-- model -->
+ <NumberEditorDemoModel id='demoModel'/>
+
+ <Table id='demoPanel' insets='0' fill='both'>
+ <row>
+ <cell weightx='0.5'>
+ <JLabel horizontalAlignment='center' text='numbereditor.type'/>
+ </cell>
+ <cell weightx='0.25'>
+ <JLabel horizontalAlignment='center' text='numbereditor.without.auto.popup'/>
+ </cell>
+ <cell weightx='0.25'>
+ <JLabel horizontalAlignment='center' text='numbereditor.with.auto.popup'/>
+ </cell>
+ </row>
+ <row>
+ <cell>
+ <JLabel text='{_("numbereditor.positive.int", demoModel.getPositifInteger())}'/>
+ </cell>
+ <cell>
+ <NumberEditor id='positifIntegerEditor'
+ property='positifInteger'
+ constructorParams='this'
+ bean='{demoModel}'
+ model='{demoModel.getPositifInteger()}'
+ autoPopup='false'
+ showPopupButton='true'
+ showReset='true'/>
+ </cell>
+ <cell>
+ <NumberEditor id='positifIntegerEditor2'
+ property='positifInteger'
+ constructorParams='this'
+ bean='{demoModel}'
+ model='{demoModel.getPositifInteger()}'
+ autoPopup='true'
+ showPopupButton='true'
+ showReset='true'/>
+ </cell>
+ </row>
+ <row>
+ <cell>
+ <JLabel text='{_("numbereditor.normal.int", demoModel.getNormalInteger())}'/>
+ </cell>
+ <cell>
+ <NumberEditor id='normalIntegerEditor'
+ property='normalInteger'
+ constructorParams='this'
+ bean='{demoModel}'
+ model='{demoModel.getNormalInteger()}'
+ autoPopup='false'
+ showPopupButton='true'
+ showReset='true'
+ useSign='true'/>
+ </cell>
+ <cell>
+ <NumberEditor id='normalIntegerEditor2'
+ property='normalInteger'
+ constructorParams='this'
+ bean='{demoModel}'
+ model='{demoModel.getNormalInteger()}'
+ autoPopup='true'
+ showPopupButton='true'
+ showReset='true'
+ useSign='true'/>
+ </cell>
+ </row>
+ <row>
+ <cell>
+ <JLabel text='{_("numbereditor.positive.float", demoModel.getPositifFloat())}'/>
+ </cell>
+ <cell>
+ <NumberEditor id='positifFloatEditor'
+ property='positifFloat'
+ constructorParams='this'
+ bean='{demoModel}'
+ model='{demoModel.getPositifFloat()}'
+ autoPopup='false'
+ showPopupButton='true'
+ showReset='true'
+ useFloat='true'/>
+ </cell>
+ <cell>
+ <NumberEditor id='positifFloatEditor2'
+ property='positifFloat'
+ constructorParams='this'
+ bean='{demoModel}'
+ model='{demoModel.getPositifFloat()}'
+ autoPopup='true'
+ showPopupButton='true'
+ showReset='true'
+ useFloat='true'/>
+ </cell>
+ </row>
+ <row>
+ <cell>
+ <JLabel text='{_("numbereditor.normal.float", demoModel.getNormalFloat())}'/>
+ </cell>
+ <cell>
+ <NumberEditor id='normalFloatEditor'
+ property='normalFloat'
+ constructorParams='this'
+ bean='{demoModel}'
+ model='{demoModel.getNormalFloat()}'
+ autoPopup='false'
+ showPopupButton='true'
+ showReset='true'
+ useSign='true'
+ useFloat='true'/>
+ </cell>
+ <cell>
+ <NumberEditor id='normalFloatEditor2'
+ property='normalFloat'
+ constructorParams='this'
+ bean='{demoModel}'
+ model='{demoModel.getNormalFloat()}'
+ autoPopup='true'
+ showPopupButton='true'
+ showReset='true'
+ useSign='true'
+ useFloat='true'/>
+ </cell>
+ </row>
+ <row>
+ <cell>
+
+ </cell>
+ <cell>
+
+ </cell>
+ <cell>
+
+ </cell>
+ </row>
+ <row>
+ <cell>
+
+ </cell>
+ <cell>
+
+ </cell>
+ <cell>
+
+ </cell>
+ </row>
+ </Table>
+
+</DemoPanel>
Added: jaxx/trunk/jaxx-example/src/main/java/jaxx/demo/NumberEditorDemoModel.java
===================================================================
--- jaxx/trunk/jaxx-example/src/main/java/jaxx/demo/NumberEditorDemoModel.java (rev 0)
+++ jaxx/trunk/jaxx-example/src/main/java/jaxx/demo/NumberEditorDemoModel.java 2009-05-04 19:39:58 UTC (rev 1382)
@@ -0,0 +1,78 @@
+package jaxx.demo;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+/**
+ *
+ * @author chemit
+ * @since 1.5
+ */
+public class NumberEditorDemoModel {
+
+ protected PropertyChangeSupport p;
+ protected int positifInteger;
+ protected int normalInteger;
+ protected float positifFloat;
+ protected float normalFloat;
+
+ public NumberEditorDemoModel() {
+ p = new PropertyChangeSupport(this);
+ }
+
+ public float getNormalFloat() {
+ return normalFloat;
+ }
+
+ public int getNormalInteger() {
+ return normalInteger;
+ }
+
+ public float getPositifFloat() {
+ return positifFloat;
+ }
+
+ public int getPositifInteger() {
+ return positifInteger;
+ }
+
+ public void setNormalFloat(float normalFloat) {
+ float old = this.normalFloat;
+ this.normalFloat = normalFloat;
+ p.firePropertyChange("normalFloat", old, normalFloat);
+ }
+
+ public void setNormalInteger(int normalInteger) {
+ int old = this.normalInteger;
+ this.normalInteger = normalInteger;
+ p.firePropertyChange("normalInteger", old, normalInteger);
+ }
+
+ public void setPositifFloat(float positifFloat) {
+ float old = this.positifFloat;
+ this.positifFloat = positifFloat;
+ p.firePropertyChange("positifFloat", old, positifFloat);
+ }
+
+ public void setPositifInteger(int positifInteger) {
+ int old = this.positifInteger;
+ this.positifInteger = positifInteger;
+ p.firePropertyChange("positifInteger", old, positifInteger);
+ }
+
+ public void addPropertyChangeListener(PropertyChangeListener listener) {
+ p.addPropertyChangeListener(listener);
+ }
+
+ public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
+ p.addPropertyChangeListener(propertyName, listener);
+ }
+
+ public void removePropertyChangeListener(PropertyChangeListener listener) {
+ p.removePropertyChangeListener(listener);
+ }
+
+ public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
+ p.removePropertyChangeListener(propertyName, listener);
+ }
+}
Modified: jaxx/trunk/jaxx-example/src/main/resources/i18n/jaxx-example-en_GB.properties
===================================================================
--- jaxx/trunk/jaxx-example/src/main/resources/i18n/jaxx-example-en_GB.properties 2009-05-04 16:50:00 UTC (rev 1381)
+++ jaxx/trunk/jaxx-example/src/main/resources/i18n/jaxx-example-en_GB.properties 2009-05-04 19:39:58 UTC (rev 1382)
@@ -106,6 +106,18 @@
form2.text=Form2 \: text
form2.text2=Form2 \: text2
no\ layer=
+numbereditor.normal.float=
+numbereditor.normal.float.value=
+numbereditor.normal.int=
+numbereditor.normal.int.value=
+numbereditor.positive.float=
+numbereditor.positive.float.value=
+numbereditor.positive.int=
+numbereditor.positive.int.value=
+numbereditor.positive.integer=Simple positive integer editor
+numbereditor.type=
+numbereditor.with.auto.popup=
+numbereditor.without.auto.popup=
valid=
validator.field=Champ
validator.field.header.tip=
Modified: jaxx/trunk/jaxx-example/src/main/resources/i18n/jaxx-example-fr_FR.properties
===================================================================
--- jaxx/trunk/jaxx-example/src/main/resources/i18n/jaxx-example-fr_FR.properties 2009-05-04 16:50:00 UTC (rev 1381)
+++ jaxx/trunk/jaxx-example/src/main/resources/i18n/jaxx-example-fr_FR.properties 2009-05-04 19:39:58 UTC (rev 1382)
@@ -106,6 +106,13 @@
form2.text=Form2 \: text
form2.text2=Form2 \: text2
no\ layer=
+numbereditor.normal.float=D\u00E9cimal primitif \: [%1$s]
+numbereditor.normal.int=Entier primitif \: [%1$s]
+numbereditor.positive.float=D\u00E9cimal primitif positif \: [%1$s]
+numbereditor.positive.int=Entier primitif positif \: [%1$s]
+numbereditor.type=Type d'\u00E9diteur
+numbereditor.with.auto.popup=Avec popup auto
+numbereditor.without.auto.popup=Sans popup auto
valid=
validator.field=
validator.field.header.tip=
Modified: jaxx/trunk/jaxx-example/src/main/resources/log4j.properties
===================================================================
--- jaxx/trunk/jaxx-example/src/main/resources/log4j.properties 2009-05-04 16:50:00 UTC (rev 1381)
+++ jaxx/trunk/jaxx-example/src/main/resources/log4j.properties 2009-05-04 19:39:58 UTC (rev 1382)
@@ -5,5 +5,6 @@
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n
-log4j.logger.examples=DEBUG
+log4j.logger.demo=DEBUG
log4j.logger.jaxx=INFO
+log4j.logger.org.codelutin=INFO
Modified: jaxx/trunk/jaxx-runtime-swing-widget/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/pom.xml 2009-05-04 16:50:00 UTC (rev 1381)
+++ jaxx/trunk/jaxx-runtime-swing-widget/pom.xml 2009-05-04 19:39:58 UTC (rev 1382)
@@ -32,7 +32,7 @@
<!-- ************************************************************* -->
<name>${project.artifactId}</name>
- <description>Jaxx Examples</description>
+ <description>Jaxx runtime swing widgets</description>
<!-- ************************************************************* -->
<!-- *** Build Settings ****************************************** -->
@@ -57,25 +57,6 @@
</resource>
</resources>
- <pluginManagement>
- <plugins>
-
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <configuration>
- <archive>
- <manifest>
- <addClasspath>true</addClasspath>
- <classpathPrefix>./lib/</classpathPrefix>
- </manifest>
- </archive>
- </configuration>
- </plugin>
-
- </plugins>
-
- </pluginManagement>
-
<plugins>
<plugin>
@@ -112,15 +93,8 @@
</goals>
</execution>
</executions>
- </plugin>
+ </plugin>
- <plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <outputDirectory>${project.build.directory}/lib</outputDirectory>
- </configuration>
- </plugin>
-
</plugins>
</build>
Added: jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/NumberEditor.jaxx
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/NumberEditor.jaxx (rev 0)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/NumberEditor.jaxx 2009-05-04 19:39:58 UTC (rev 1382)
@@ -0,0 +1,152 @@
+
+<JPanel layout='{new BorderLayout()}'
+ onFocusGained='textField.requestFocus()'
+ onFocusLost='setPopupVisible(false);popup.setVisible(false);'
+ onMouseExited='setPopupVisible(false);popup.setVisible(false);'>
+
+ <!-- onFocusGained='if (autoPopup) setPopupVisible(true); textField.requestFocus();'-->
+
+ <!-- bean property associated with the editing value -->
+ <String id='property' javaBean='""'/>
+
+ <!-- bean property -->
+ <Object id='bean' javaBean='null'/>
+
+ <!-- editor model -->
+ <Number id="model" javaBean='null'/>
+
+ <!-- useFloat property -->
+ <Boolean id='useFloat' javaBean='false'/>
+
+ <!-- useSign property -->
+ <Boolean id='useSign' javaBean='false'/>
+
+ <!-- autoPopup property -->
+ <Boolean id='autoPopup' javaBean='false'/>
+
+ <!-- showPopupButton property -->
+ <Boolean id='showPopupButton' javaBean='true'/>
+
+ <!-- show reset property -->
+ <Boolean id='showReset' javaBean='false'/>
+
+ <!-- internal editor model as text -->
+ <String id="modelText" javaBean='""'/>
+
+ <!-- internal state -->
+ <Boolean id='popupVisible' javaBean='false'/>
+
+ <!-- ui handler -->
+ <NumberEditorHandler id='handler' constructorParams='this'/>
+
+ <!-- popup digital number editor -->
+ <JPopupMenu id='popup'
+ onPopupMenuWillBecomeVisible='button.setSelected(true)'
+ onPopupMenuWillBecomeInvisible='button.setSelected(false)'
+ onPopupMenuCanceled='button.setSelected(false)'>
+ <style source='NumberEditorPopup.css'/>
+ <JPanel layout='{new GridLayout(4,4)}'
+ border='{BorderFactory.createEmptyBorder(4, 4, 4, 4)}'
+ background='{Color.WHITE}'>
+ <JButton text='7' onActionPerformed='addChar(event)' styleClass='digit'/>
+ <JButton text='8' onActionPerformed='addChar(event)' styleClass='digit'/>
+ <JButton text='9' onActionPerformed='addChar(event)' styleClass='digit'/>
+ <JButton text='numbereditor.clearAll' onActionPerformed='setModel(null)' styleClass='clear'
+ enabled='{!getModelText().isEmpty()}'/>
+
+
+ <JButton text='4' onActionPerformed='addChar(event)' styleClass='digit'/>
+ <JButton text='5' onActionPerformed='addChar(event)' styleClass='digit'/>
+ <JButton text='6' onActionPerformed='addChar(event)' styleClass='digit'/>
+ <JButton text='numbereditor.clearOne' onActionPerformed='getHandler().removeChar()' styleClass='clear'
+ enabled='{!(getModelText().isEmpty() || textField.getCaretPosition() ==0 )}'/>
+
+ <JButton text='1' onActionPerformed='addChar(event)' styleClass='digit'/>
+ <JButton text='2' onActionPerformed='addChar(event)' styleClass='digit'/>
+ <JButton text='3' onActionPerformed='addChar(event)' styleClass='digit'/>
+
+ <JButton enabled="false"/>
+
+ <JButton text='0' onActionPerformed='addChar(event)' styleClass='digit'
+ enabled='{!getEditor().getModelText().equals("0")}'/>
+
+ <JButton id='toggleSign' text='numbereditor.toggleSign' styleClass='operator'
+ onActionPerformed='getHandler().toggleSign()'
+ enabled='{isUseSign() && !getEditor().getModelText().isEmpty()}'/>
+
+ <JButton id='dot' text='.' styleClass='operator'
+ onActionPerformed='addChar(event)'
+ enabled='{isUseFloat() && getEditor().getModelText().indexOf(".") == -1 }'/>
+
+ <JButton actionIcon='numbereditor-validate' onActionPerformed="getHandler().validate()"/>
+ </JPanel>
+ </JPopupMenu>
+ <script><![CDATA[
+public void init() {
+ handler.init();
+}
+
+public NumberEditor getEditor() {
+ return this;
+}
+
+public void addChar(ActionEvent event) {
+ getHandler().addChar(((JButton)event.getSource()).getText());
+}
+
+void showPopup() {
+ if ( popupVisible || autoPopup ) {
+ if (!popupVisible) {
+ setPopupVisible(true);
+ } else if (!getPopup().isVisible()) {
+ getHandler().setPopupVisible(true);
+ }
+ }
+}
+
+]]>
+ </script>
+
+ <JToolBar floatable='false'
+ borderPainted='false'
+ visible='{isShowReset()}'
+ constraints='BorderLayout.WEST'>
+ <JButton id='resetButton'
+ actionIcon='numbereditor-reset'
+ toolTipText='numbereditor.action.reset.tip'
+ focusable='false'
+ focusPainted='false'
+ enabled='{isEnabled()}'
+ onActionPerformed='setModel(null)'/>
+ </JToolBar>
+
+ <JTextField id='textField'
+ constraints='BorderLayout.CENTER'
+ text='{getModelText()}'
+ enabled='{isEnabled()}'
+ onKeyReleased='getHandler().setModel(textField.getText())'
+ onFocusGained='showPopup()'/>
+
+ <!--JFormattedTextField id='textField' constraints='BorderLayout.CENTER'
+ text='{getModelText()}'
+ enabled='{isEnabled()}'
+ onKeyReleased='getHandler().setModel(textField.getText())'
+ focusLostBehavior='0'
+ onFocusGained='showPopup()'/-->
+
+ <JToolBar constraints='BorderLayout.EAST'
+ floatable='false'
+ opaque='false'
+ borderPainted='false'
+ visible='{isShowPopupButton()}'
+ maximumSize='{new Dimension(24,24)}'>
+ <JToggleButton id='button'
+ focusable='false'
+ focusPainted='false'
+ actionIcon='numbereditor-calculator'
+ toolTipText='numbereditor.action.show.tip'
+ enabled='{isEnabled()}'
+ onActionPerformed='getHandler().setPopupVisible(!popup.isVisible())'/>
+ </JToolBar>
+
+</JPanel>
\ No newline at end of file
Added: jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/NumberEditorHandler.java
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/NumberEditorHandler.java (rev 0)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/NumberEditorHandler.java 2009-05-04 19:39:58 UTC (rev 1382)
@@ -0,0 +1,394 @@
+package jaxx.runtime.swing.editor;
+
+import java.awt.Dimension;
+import javax.swing.JTextField;
+import org.apache.commons.beanutils.PropertyUtils;
+import org.apache.commons.lang.math.NumberUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.swing.SwingUtilities;
+import javax.swing.text.BadLocationException;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Method;
+import javax.swing.JToggleButton;
+
+/**
+ * Le handler de l'éditeur graphique de nombres.
+ * <p/>
+ * Note: Ce handler n'est pas staless, et chaque ui possède le sien.
+ *
+ * @author chemit
+ * @see NumberEditor
+ */
+public class NumberEditorHandler {
+
+ public static final Log log = LogFactory.getLog(NumberEditorHandler.class);
+ public static final String BEAN_PROPERTY = "bean";
+ public static final String PROPERTY_PROPERTY = "property";
+ public static final String MODEL_PROPERTY = "model";
+ public static final String AUTO_POPUP_PROPERTY = "autoPopup";
+ public static final String POPUP_VISIBLE_PROPERTY = "popupVisible";
+ public static final String USE_FLOAT_PROPERTY = "useFloat";
+ public static final String USE_SIGN_PROPERTY = "useSign";
+ public static final String VALIDATE_PROPERTY = "validate";
+ /** editor ui */
+ protected NumberEditor editor;
+ /** the mutator method on the property of boxed bean in the editor */
+ protected Method mutator;
+ /** a flag to known if mutator accept null value */
+ protected Boolean acceptNull;
+
+ public NumberEditorHandler(NumberEditor ui) {
+ this.editor = ui;
+ }
+
+ /** initialise l'ui et les listeners d'évènements. */
+ public void init() {
+
+ if (editor.getBean() == null) {
+ throw new NullPointerException("can not have a null bean in ui " + editor);
+ }
+
+ editor.addPropertyChangeListener(MODEL_PROPERTY, new PropertyChangeListener() {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ if (log.isDebugEnabled()) {
+ log.debug("set new model " + evt.getNewValue() + " for " + editor.getProperty());
+ }
+ setModel((Number) evt.getOldValue(), (Number) evt.getNewValue());
+ }
+ });
+ editor.addPropertyChangeListener(POPUP_VISIBLE_PROPERTY, new PropertyChangeListener() {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ setPopupVisible((Boolean) evt.getNewValue());
+ }
+ });
+ editor.getTextField().addMouseListener(new PopupListener());
+ /*if (editor.getResetButton().getIcon() == null) {
+ editor.getResetButton().setIcon(SwingUtil.createActionIcon("numbereditor-reset"));
+ }
+ if (editor.getButton().getIcon() == null) {
+ editor.getButton().setIcon(SwingUtil.createActionIcon("numbereditor-calculator"));
+ }*/
+ }
+
+ /**
+ * Affiche ou cache la popup.
+ *
+ * @param newValue la nouvelle valeur de visibilité de la popup.
+ */
+ public void setPopupVisible(Boolean newValue) {
+
+ if (log.isTraceEnabled()) {
+ log.trace(newValue);
+ }
+
+ if (newValue == null || !newValue) {
+ editor.getPopup().setVisible(false);
+ return;
+ }
+ SwingUtilities.invokeLater(new Runnable() {
+
+ @Override
+ public void run() {
+ JToggleButton invoker = editor.getButton();
+ Dimension dim = editor.getPopup().getPreferredSize();
+ editor.getPopup().show(invoker, (int) (invoker.getPreferredSize().getWidth() - dim.getWidth()), invoker.getHeight());
+ editor.getTextField().requestFocus();
+ }
+ });
+ }
+
+ /**
+ * Modifie le modèle de la donnée à éditer à partir d'un evenement clavier
+ *
+ * TODO utiliser une filtre sur les donnes en entrees pour ne pas a avoir
+ * faire les tests ici.
+ *
+ * @param s la nouvelle valeur du modèle
+ */
+ public void setModel(String s) {
+
+ String text = editor.getModelText();
+ if (text.equals(s)) {
+ // le modeèle n'a pas changé, rien a faire sur le modèle
+ if (log.isDebugEnabled()) {
+ log.debug("modelText is the same, skip !");
+ }
+ return;
+ }
+
+ boolean canApply = false;
+
+ boolean endWithDot = false;
+
+ Number newValue = null;
+
+ if (s.trim().isEmpty()) {
+ // le champ est vide donc c'est la valeur null a reaffecter
+ s = null;
+ canApply = true;
+ } else if (s.endsWith(".")) {
+ s += "0";
+ endWithDot = true;
+ }
+
+ if (s != null && NumberUtils.isNumber(s)) {
+
+ // on a un nombre valide
+
+ try {
+ Float f = Float.parseFloat(s);
+ if (!editor.isUseSign() && (s.startsWith("-"))) {
+ if (log.isDebugEnabled()) {
+ log.debug("will skip since can not allow sign on this editor but was " + f);
+ }
+ } else {
+
+ if (!editor.isUseFloat() && s.contains(".")) {
+ if (log.isDebugEnabled()) {
+ log.debug("will skip since can not allow float on this editor but was " + f);
+ }
+ } else {
+ // ok on peut utilise ce modele
+ if (editor.isUseFloat()) {
+ newValue = f;
+ } else {
+ newValue = f.intValue();
+ }
+ canApply = true;
+ }
+ }
+
+ } catch (NumberFormatException e) {
+ // rien a faire
+ log.debug(e);
+ }
+ }
+ JTextField field = editor.getTextField();
+
+ int oldPosition = field.getCaretPosition();
+
+ if (canApply) {
+ if (log.isDebugEnabled()) {
+ log.debug("can apply new model value : " + newValue);
+ }
+ // on peut mettre a jour le model
+ editor.setModel(newValue);
+ if (endWithDot) {
+ editor.setModelText(s.substring(0, s.length() - 1));
+ field.setCaretPosition(oldPosition);
+ }
+ return;
+ }
+
+ // on ne peut pas appliquer, on repositionne l'ancien texte
+ // dans l'éditeur
+
+ if (log.isDebugEnabled()) {
+ log.debug("invalid text " + s + " reput old text " + text);
+ }
+
+ if (oldPosition > 0) {
+ oldPosition--;
+ }
+ field.setText(text);
+ field.setCaretPosition(oldPosition);
+ }
+
+ /**
+ * Ajoute le caractère donné à l'endroit où est le curseur dans la zone de
+ * saisie et met à jour le modèle.
+ *
+ * @param s le caractère à ajouter.
+ */
+ public void addChar(String s) {
+ char c = s.charAt(0);
+ try {
+ editor.getTextField().getDocument().insertString(editor.getTextField().getCaretPosition(), c + "", null);
+ setModel(editor.getTextField().getText());
+ //setModel(editor.getModelText() + c);
+
+ } catch (BadLocationException e) {
+ log.warn(e);
+ }
+ }
+
+ /**
+ * Supprime le caractère juste avant le curseur du modèle (textuel) et
+ * met à jour la zone de saisie.
+ */
+ public void removeChar() {
+ String s = editor.getModelText();
+ int position = editor.getTextField().getCaretPosition();
+ if (position < 1 || s.isEmpty()) {
+ if (log.isDebugEnabled()) {
+ log.debug("cannot remove when caret on first position or text empty");
+ }
+ // on est au debut du doc, donc rien a faire
+ return;
+ }
+ try {
+ editor.getTextField().getDocument().remove(position - 1, 1);
+ } catch (BadLocationException ex) {
+ // ne devrait jamais arrive vu qu'on a fait le controle...
+ log.debug(ex);
+ return;
+ }
+ String newText = editor.getTextField().getText();
+ if (log.isDebugEnabled()) {
+ log.debug("text updated : " + newText);
+ }
+ position--;
+ editor.getTextField().setCaretPosition(position);
+ setModel(newText);
+ }
+
+ /**
+ * Permute le signe dans la zone de saisie et
+ * dans le modèle.
+ */
+ public void toggleSign() {
+ String newValue = editor.getModelText();
+
+ if (newValue.startsWith("-")) {
+ setModel(newValue.substring(1));
+ } else {
+ setModel("-" + newValue);
+ }
+ }
+
+ /** @return l'éditeur au quel est rattaché le handler. */
+ public NumberEditor getEditor() {
+ return editor;
+ }
+
+ protected void setModel(Number oldValue, Number newValue) {
+ if (editor.getBean() == null) {
+ return;
+ }
+
+ if (log.isDebugEnabled()) {
+ log.debug(editor.getProperty() + " on " + editor.getBean().getClass() + " :: " + oldValue + " to " + newValue);
+ }
+
+ try {
+ if (newValue == null && !getAcceptNull()) {
+ // valeur nulle sur une propriete primitive
+ // on ne peut pas utiliser la valeur null, mais 0 à la place
+ if (editor.isUseFloat()) {
+ getMutator().invoke(editor.getBean(), 0.0f);
+ } else {
+ getMutator().invoke(editor.getBean(), 0);
+ }
+
+ } else {
+ getMutator().invoke(editor.getBean(), newValue);
+ }
+ String strValue;
+ if (newValue == null) {
+ strValue = "";
+ } else {
+ strValue = newValue + "";
+ if (editor.isUseFloat()) {
+ Float n = Float.parseFloat(strValue);
+ if (((float) n.intValue()) == n) {
+ strValue = n.intValue() + "";
+ }
+ }
+ }
+
+ editor.setModelText(strValue);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ protected void validate() {
+
+ setPopupVisible(false);
+ // fire validate property (to be able to notify listeners)
+ editor.firePropertyChange(VALIDATE_PROPERTY, null, true);
+ }
+
+ protected class PopupListener extends MouseAdapter {
+
+ @Override
+ public void mousePressed(MouseEvent e) {
+ maybeShowPopup(e);
+ }
+
+ @Override
+ public void mouseReleased(MouseEvent e) {
+ maybeShowPopup(e);
+ }
+
+ protected void maybeShowPopup(MouseEvent e) {
+ if (!e.isPopupTrigger()) {
+ return;
+ }
+ if (editor.isAutoPopup()) {
+ if (editor.isPopupVisible()) {
+ if (!editor.getPopup().isVisible()) {
+ setPopupVisible(true);
+ }
+ // popup already visible
+
+ } else {
+ // set popup auto
+ editor.setPopupVisible(true);
+
+ }
+ } else {
+ if (editor.isPopupVisible()) {
+ setPopupVisible(true);
+ }
+ }
+ }
+ }
+
+ protected Method getMutator() {
+ if (mutator == null) {
+ Object bean = editor.getBean();
+ if (bean == null) {
+ throw new NullPointerException("could not find bean in " + editor);
+ }
+ String property = editor.getProperty();
+ if (property == null) {
+ throw new NullPointerException("could not find property in " + editor);
+ }
+
+ try {
+ PropertyDescriptor descriptor = PropertyUtils.getPropertyDescriptor(bean, property);
+ mutator = descriptor.getWriteMethod();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ return mutator;
+ }
+
+ public Boolean getAcceptNull() {
+ if (acceptNull == null) {
+ Method m = getMutator();
+ if (m == null) {
+ // should never happens
+ throw new IllegalStateException("could not find the mutator");
+ }
+ Class<?> returnType = m.getParameterTypes()[0];
+ acceptNull = !returnType.isPrimitive();
+ if (log.isDebugEnabled()) {
+ log.debug(acceptNull + " for mutator " + m.getName() + " type : " + returnType);
+ }
+ }
+ return acceptNull;
+ }
+}
\ No newline at end of file
Added: jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/NumberEditorPopup.css
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/NumberEditorPopup.css (rev 0)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/editor/NumberEditorPopup.css 2009-05-04 19:39:58 UTC (rev 1382)
@@ -0,0 +1,25 @@
+JButton {
+ font-size: 14;
+ focusPainted: false;
+ focusable: false;
+}
+
+JButton.digit {
+ foreground: blue;
+}
+
+JButton.operator {
+ foreground: #009900;
+}
+
+JButton.clear {
+ foreground: red;
+}
+
+JButton:mouseover {
+ font-weight: bold;
+}
+
+JButton.operator:mouseover {
+ font-weight: normal;
+}
Modified: jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-en_GB.properties
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-en_GB.properties 2009-05-04 16:50:00 UTC (rev 1381)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-en_GB.properties 2009-05-04 19:39:58 UTC (rev 1382)
@@ -0,0 +1,17 @@
+.=
+0=
+1=
+2=
+3=
+4=
+5=
+6=
+7=
+8=
+9=
+H=
+numbereditor.action.reset.tip=Reset
+numbereditor.action.show.tip=Show numeric panel
+numbereditor.clearAll=C
+numbereditor.clearOne=CE
+numbereditor.toggleSign=+/-
Modified: jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-fr_FR.properties
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-fr_FR.properties 2009-05-04 16:50:00 UTC (rev 1381)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-fr_FR.properties 2009-05-04 19:39:58 UTC (rev 1382)
@@ -0,0 +1,17 @@
+.=
+0=
+1=
+2=
+3=
+4=
+5=
+6=
+7=
+8=
+9=
+H=
+numbereditor.action.reset.tip=R\u00E9initialiser
+numbereditor.action.show.tip=Afficher le pav\u00E9 num\u00E9rique
+numbereditor.clearAll=C
+numbereditor.clearOne=CE
+numbereditor.toggleSign=+/-
Added: jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/icons/action-numbereditor-calculator.png
===================================================================
(Binary files differ)
Property changes on: jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/icons/action-numbereditor-calculator.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/icons/action-numbereditor-reset.png
===================================================================
(Binary files differ)
Property changes on: jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/icons/action-numbereditor-reset.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/icons/action-numbereditor-validate.png
===================================================================
(Binary files differ)
Property changes on: jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/icons/action-numbereditor-validate.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
1
0
r1381 - in jaxx/trunk: . jaxx-runtime-swing-widget/src/main
by tchemit@users.labs.libre-entreprise.org May 4, 2009
by tchemit@users.labs.libre-entreprise.org May 4, 2009
May 4, 2009
Author: tchemit
Date: 2009-05-04 16:50:00 +0000 (Mon, 04 May 2009)
New Revision: 1381
Removed:
jaxx/trunk/jaxx-runtime-swing-widget/src/main/jnlp/
Modified:
jaxx/trunk/changelog.txt
jaxx/trunk/pom.xml
Log:
remove jnlp
Modified: jaxx/trunk/changelog.txt
===================================================================
--- jaxx/trunk/changelog.txt 2009-05-04 16:48:43 UTC (rev 1380)
+++ jaxx/trunk/changelog.txt 2009-05-04 16:50:00 UTC (rev 1381)
@@ -1,3 +1,6 @@
+1.5
+ * 20090404 [chemit] - introduce module jaxx-runtime-swing-widget for swing widgets designed with jaxx.
+
1.4
* 20090402 [chemit] - use lutinproject 3.5.3
- use doxia-module-jrst 1.0.0 (instead of maven-jrst-plugin)
Modified: jaxx/trunk/pom.xml
===================================================================
--- jaxx/trunk/pom.xml 2009-05-04 16:48:43 UTC (rev 1380)
+++ jaxx/trunk/pom.xml 2009-05-04 16:50:00 UTC (rev 1381)
@@ -29,6 +29,8 @@
<module>jaxx-swing-action</module>
<module>maven-jaxx-plugin</module>
+ <module>jaxx-runtime-swing-widget</module>
+
<module>jaxx-example</module>
</modules>
1
0
May 4, 2009
Author: tchemit
Date: 2009-05-04 16:48:43 +0000 (Mon, 04 May 2009)
New Revision: 1380
Modified:
jaxx/trunk/jaxx-runtime-swing-widget/pom.xml
Log:
introduce module jaxx-runtime-swing-widget for swing widgets designed with jaxx.
- generics on JXPathDecorator
Modified: jaxx/trunk/jaxx-runtime-swing-widget/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/pom.xml 2009-05-04 16:43:46 UTC (rev 1379)
+++ jaxx/trunk/jaxx-runtime-swing-widget/pom.xml 2009-05-04 16:48:43 UTC (rev 1380)
@@ -40,19 +40,6 @@
<packaging>jar</packaging>
- <properties>
-
- <maven.jar.main.class>jaxx.demo.JAXXDemo</maven.jar.main.class>
-
- <!-- jnlp -->
- <keystorepath>${codelutin.keystorepath}</keystorepath>
- <keystorealias>CodeLutin</keystorealias>
- <keystorepass>codelutin</keystorepass>
-
- <jnlp.build.directory>${project.build.directory}/jnlp</jnlp.build.directory>
-
- </properties>
-
<build>
<resources>
@@ -147,129 +134,4 @@
<url>${maven.scm.url.child}</url>
</scm>
- <profiles>
- <!-- by default jnlp is only perform on a release stage when using the maven-release-plugin -->
- <profile>
- <id>release-profile</id>
- <activation>
- <property>
- <name>performRelease</name>
- <value>true</value>
- </property>
- </activation>
- <build>
- <plugins>
- <plugin>
-
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <!-- Ajout des libs signe par Sun dans un fichier jnlp separe -->
- <execution>
- <id>JnlpSun</id>
- <phase>verify</phase>
- <configuration>
- <tasks>
- <mkdir dir="${jnlp.build.directory}" />
- <copy file="${project.basedir}/src/main/jnlp/sun.jnlp" verbose="${maven.verbose}" todir="${jnlp.build.directory}" failonerror="false">
- <filterset>
- <filter token="lib" value="javahelp-2.0.02.jar" />
- <filter token="url" value="${project.url}" />
- </filterset>
- </copy>
- <copy file="${project.basedir}/src/main/jnlp/jxlayer.jnlp" verbose="${maven.verbose}" todir="${jnlp.build.directory}" failonerror="false">
- <filterset>
- <filter token="lib" value="jxlayer-3.0.1.jar" />
- <filter token="url" value="${project.url}" />
- </filterset>
- </copy>
- <copy file="${project.build.directory}/lib/javahelp-2.0.02.jar" verbose="${maven.verbose}" todir="${jnlp.build.directory}/lib" failonerror="false" />
- <copy file="${project.build.directory}/lib/jxlayer-3.0.1.jar" verbose="${maven.verbose}" todir="${jnlp.build.directory}/lib" failonerror="false" />
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
-
- <execution>
- <id>JnlpToSite</id>
- <phase>pre-site</phase>
- <configuration>
- <tasks>
- <mkdir dir="targset/site" />
- <copy todir="targset/site" verbose="${maven.verbose}" failonerror="false" overwrite="false">
- <fileset dir="${jnlp.build.directory}">
- <include name="**" />
- </fileset>
- </copy>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo.webstart</groupId>
- <artifactId>webstart-maven-plugin</artifactId>
- <version>1.0-alpha-2-cl_20081018</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>jnlp-inline</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <force>false</force>
- <dependencies>
- <excludes>
- <exclude>javax.help:javahelp</exclude>
- <exclude>org.swinglabs:jxlayer</exclude>
- </excludes>
- </dependencies>
- <libPath>lib</libPath>
- <extensions>
- <sun>sun.jnlp</sun>
- <jxlayer>jxlayer.jnlp</jxlayer>
- </extensions>
- <jnlp>
- <outputFile>launch-demo.jnlp</outputFile>
- <mainClass>${maven.jar.main.class}</mainClass>
- <allPermissions>true</allPermissions>
- <offlineAllowed>true</offlineAllowed>
- </jnlp>
-
- <sign>
- <keystore>${keystorepath}</keystore>
- <keypass />
- <storepass>${keystorepass}</storepass>
- <storetype />
- <alias>${keystorealias}</alias>
- <validity />
- <dnameCn />
- <dnameOu />
- <dnameO />
- <dnameL />
- <dnameSt />
- <dnameC />
- <verify>true</verify>
- <keystoreConfig>
- <delete>false</delete>
- <gen>false</gen>
- </keystoreConfig>
- </sign>
-
- <pack200>false</pack200>
- <gzip>true</gzip>
- <verbose>false</verbose>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
</project>
\ No newline at end of file
1
0
r1379 - in jaxx/trunk: jaxx-example jaxx-runtime-api/src/main/java/jaxx/runtime
by tchemit@users.labs.libre-entreprise.org May 4, 2009
by tchemit@users.labs.libre-entreprise.org May 4, 2009
May 4, 2009
Author: tchemit
Date: 2009-05-04 16:43:46 +0000 (Mon, 04 May 2009)
New Revision: 1379
Modified:
jaxx/trunk/jaxx-example/changelog.txt
jaxx/trunk/jaxx-example/pom.xml
jaxx/trunk/jaxx-runtime-api/src/main/java/jaxx/runtime/JXPathDecorator.java
Log:
introduce module jaxx-runtime-swing-widget for swing widgets designed with jaxx.
- generics on JXPathDecorator
Modified: jaxx/trunk/jaxx-example/changelog.txt
===================================================================
--- jaxx/trunk/jaxx-example/changelog.txt 2009-05-04 16:38:07 UTC (rev 1378)
+++ jaxx/trunk/jaxx-example/changelog.txt 2009-05-04 16:43:46 UTC (rev 1379)
@@ -1,3 +1,6 @@
+1.5
+ * 20090404 [chemit] - use module jaxx-runtime-swing-widget
+
1.3 chemit 20090409
* 20090319 [chemit] - refactor Validator : now can deal with scopes, improve design
* 20090313 [chemit] - improve demo
Modified: jaxx/trunk/jaxx-example/pom.xml
===================================================================
--- jaxx/trunk/jaxx-example/pom.xml 2009-05-04 16:38:07 UTC (rev 1378)
+++ jaxx/trunk/jaxx-example/pom.xml 2009-05-04 16:43:46 UTC (rev 1379)
@@ -24,11 +24,11 @@
<artifactId>jaxx-runtime-swing</artifactId>
<version>${project.version}</version>
</dependency>
- <!--dependency>
+ <dependency>
<groupId>${project.groupId}</groupId>
<artifactId>jaxx-runtime-swing-widget</artifactId>
<version>${project.version}</version>
- </dependency-->
+ </dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>jaxx-runtime-validator-swing</artifactId>
Modified: jaxx/trunk/jaxx-runtime-api/src/main/java/jaxx/runtime/JXPathDecorator.java
===================================================================
--- jaxx/trunk/jaxx-runtime-api/src/main/java/jaxx/runtime/JXPathDecorator.java 2009-05-04 16:38:07 UTC (rev 1378)
+++ jaxx/trunk/jaxx-runtime-api/src/main/java/jaxx/runtime/JXPathDecorator.java 2009-05-04 16:43:46 UTC (rev 1379)
@@ -28,6 +28,7 @@
* assert "expr = %1$s" == d.toString(d);
* </pre>
*
+ * @param <O> type of data
* @author chemit
* @see Decorator
*/
@@ -60,39 +61,43 @@
* Sort a list of data based on the first token property of a given context
* in a given decorator.
*
+ * @param <O> type of data to sort
* @param decorator the decorator to use to sort
* @param datas the list of data to sort
* @param pos the index of context to used in decorator to obtain sorted property.
*/
public static <O> void sort(JXPathDecorator<O> decorator, List<O> datas, int pos) {
- Comparator<O> c = decorator.getComparator(pos);
- boolean cachedComparator = c instanceof JXPathComparator;
+ Comparator<O> c = null;
+ boolean cachedComparator = false;
try {
+ c = decorator.getComparator(pos);
+ cachedComparator = c instanceof JXPathComparator<?>;
+
if (cachedComparator) {
((JXPathComparator<O>) c).init(decorator, datas);
}
Collections.sort(datas, c);
} finally {
if (cachedComparator) {
- ((JXPathComparator) c).clear();
+ ((JXPathComparator<?>) c).clear();
}
}
}
public static class JXPathComparator<O> implements Comparator<O> {
- protected Map<O, Comparable<Comparable>> valueCache;
+ protected Map<O, Comparable<Comparable<?>>> valueCache;
private final String expression;
public JXPathComparator(String expression) {
this.expression = expression;
- this.valueCache = new HashMap<O, Comparable<Comparable>>();
+ this.valueCache = new HashMap<O, Comparable<Comparable<?>>>();
}
@Override
public int compare(O o1, O o2) {
- Comparable<Comparable> c1 = valueCache.get(o1);
- Comparable<Comparable> c2 = valueCache.get(o2);
+ Comparable<Comparable<?>> c1 = valueCache.get(o1);
+ Comparable<Comparable<?>> c2 = valueCache.get(o2);
return c1.compareTo(c2);
}
@@ -104,7 +109,7 @@
clear();
for (O data : datas) {
JXPathContext jxcontext = JXPathContext.newContext(data);
- Comparable<Comparable> key = decorator.getTokenValue(jxcontext, expression);
+ Comparable<Comparable<?>> key = decorator.getTokenValue(jxcontext, expression);
valueCache.put(data, key);
}
}
@@ -175,9 +180,9 @@
}
@SuppressWarnings({"unchecked"})
- protected Comparable<Comparable> getTokenValue(JXPathContext jxcontext, String token) {
+ protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) {
// assume all values are comparable
- return (Comparable<Comparable>) jxcontext.getValue(token);
+ return (Comparable<Comparable<?>>) jxcontext.getValue(token);
}
public String getProperty(int pos) {
@@ -265,7 +270,7 @@
return new Context<O>(buffer.toString(), lTokens.toArray(new String[lTokens.size()]));
}
- protected static void ensureTokenIndex(JXPathDecorator decorator, int pos) {
+ protected static void ensureTokenIndex(JXPathDecorator<?> decorator, int pos) {
if (pos < -1 || pos > decorator.getNbToken()) {
throw new ArrayIndexOutOfBoundsException("token index " + pos + " is out of bound, can be inside [" + 0 + "," + decorator.nbToken + "]");
}
1
0
r1378 - in jaxx/trunk: . jaxx-runtime-swing-widget jaxx-runtime-swing-widget/src/main/java/jaxx jaxx-runtime-swing-widget/src/main/java/jaxx/runtime jaxx-runtime-swing-widget/src/main/resources jaxx-runtime-swing-widget/src/main/resources/i18n
by tchemit@users.labs.libre-entreprise.org May 4, 2009
by tchemit@users.labs.libre-entreprise.org May 4, 2009
May 4, 2009
Author: tchemit
Date: 2009-05-04 16:38:07 +0000 (Mon, 04 May 2009)
New Revision: 1378
Added:
jaxx/trunk/jaxx-runtime-swing-widget/
jaxx/trunk/jaxx-runtime-swing-widget/pom.xml
jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/
jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/runtime/swing/
jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-en_GB.properties
jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-fr_FR.properties
Removed:
jaxx/trunk/jaxx-runtime-swing-widget/pom.xml
jaxx/trunk/jaxx-runtime-swing-widget/src/main/java/jaxx/demo/
jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-example-en_GB.properties
jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-example-fr_FR.properties
jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/icons/
jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/jaxx/
jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/log4j.properties
Modified:
jaxx/trunk/jaxx-runtime-swing-widget/changelog.txt
Log:
introduce module jaxx-runtime-swing-widget for swing widgets designed with jaxx.
Copied: jaxx/trunk/jaxx-runtime-swing-widget (from rev 1345, jaxx/trunk/jaxx-example)
Property changes on: jaxx/trunk/jaxx-runtime-swing-widget
___________________________________________________________________
Name: svn:ignore
+ velocity.log
target
nbactions.xml
Name: svn:mergeinfo
+
Modified: jaxx/trunk/jaxx-runtime-swing-widget/changelog.txt
===================================================================
--- jaxx/trunk/jaxx-example/changelog.txt 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/trunk/jaxx-runtime-swing-widget/changelog.txt 2009-05-04 16:38:07 UTC (rev 1378)
@@ -1,15 +1,2 @@
-1.3 chemit 20090409
- * 20090319 [chemit] - refactor Validator : now can deal with scopes, improve design
- * 20090313 [chemit] - improve demo
-
-1.1 chemit 20090220
- * 20090202 [chemit] - no more scope attribute on validator
- - fix I18NTableCellRenderer (must have tip inside)
- * 20090122 [chemit] - refactor poms (sibling dependencies, pluginsManagment,...)
- - rename i18n bundles according artifactId
-
-1.0 chemit 20090111
- * 20090111 [chemit] - use lutinproject 3.3
- - refactor examples : now onyl one module, with one webstart demo (cost very less time to release)
-0.7 chemit 200812??
- * 20081207 [chemit] use lutinproject 3.1
\ No newline at end of file
+1.5
+ * 20090404 [chemit] - initial version
Deleted: jaxx/trunk/jaxx-runtime-swing-widget/pom.xml
===================================================================
--- jaxx/trunk/jaxx-example/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/trunk/jaxx-runtime-swing-widget/pom.xml 2009-05-04 16:38:07 UTC (rev 1378)
@@ -1,285 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-example</artifactId>
-
- <dependencies>
-
- <!-- sibiling dependencies -->
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
- <!--dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-swing-widget</artifactId>
- <version>${project.version}</version>
- </dependency-->
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-validator-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx Examples</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
-
- <packaging>jar</packaging>
-
- <properties>
-
- <maven.jar.main.class>jaxx.demo.JAXXDemo</maven.jar.main.class>
-
- <!-- jnlp -->
- <keystorepath>${codelutin.keystorepath}</keystorepath>
- <keystorealias>CodeLutin</keystorealias>
- <keystorepass>codelutin</keystorepass>
-
- <jnlp.build.directory>${project.build.directory}/jnlp</jnlp.build.directory>
-
- </properties>
-
- <build>
-
- <resources>
- <resource>
- <directory>src/main/java</directory>
- <includes>
- <include>**/*.jaxx</include>
- </includes>
- </resource>
- <resource>
- <directory>src/main/resources</directory>
- <includes>
- <include>**/*</include>
- </includes>
- </resource>
- </resources>
-
- <pluginManagement>
- <plugins>
-
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <configuration>
- <archive>
- <manifest>
- <addClasspath>true</addClasspath>
- <classpathPrefix>./lib/</classpathPrefix>
- </manifest>
- </archive>
- </configuration>
- </plugin>
-
- </plugins>
-
- </pluginManagement>
-
- <plugins>
-
- <plugin>
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>maven-jaxx-plugin</artifactId>
- <version>${project.version}</version>
- <executions>
- <execution>
- <goals>
- <goal>generate</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.codelutin</groupId>
- <artifactId>maven-i18n-plugin</artifactId>
- <configuration>
- <entries>
- <entry>
- <basedir>${maven.gen.dir}/java/</basedir>
- <includes>
- <param>**\/**.java</param>
- </includes>
- </entry>
- </entries>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>parserJava</goal>
- <goal>gen</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <outputDirectory>${project.build.directory}/lib</outputDirectory>
- </configuration>
- </plugin>
-
- </plugins>
- </build>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
-
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-
- <profiles>
- <!-- by default jnlp is only perform on a release stage when using the maven-release-plugin -->
- <profile>
- <id>release-profile</id>
- <activation>
- <property>
- <name>performRelease</name>
- <value>true</value>
- </property>
- </activation>
- <build>
- <plugins>
- <plugin>
-
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <!-- Ajout des libs signe par Sun dans un fichier jnlp separe -->
- <execution>
- <id>JnlpSun</id>
- <phase>verify</phase>
- <configuration>
- <tasks>
- <mkdir dir="${jnlp.build.directory}" />
- <copy file="${project.basedir}/src/main/jnlp/sun.jnlp" verbose="${maven.verbose}" todir="${jnlp.build.directory}" failonerror="false">
- <filterset>
- <filter token="lib" value="javahelp-2.0.02.jar" />
- <filter token="url" value="${project.url}" />
- </filterset>
- </copy>
- <copy file="${project.basedir}/src/main/jnlp/jxlayer.jnlp" verbose="${maven.verbose}" todir="${jnlp.build.directory}" failonerror="false">
- <filterset>
- <filter token="lib" value="jxlayer-3.0.1.jar" />
- <filter token="url" value="${project.url}" />
- </filterset>
- </copy>
- <copy file="${project.build.directory}/lib/javahelp-2.0.02.jar" verbose="${maven.verbose}" todir="${jnlp.build.directory}/lib" failonerror="false" />
- <copy file="${project.build.directory}/lib/jxlayer-3.0.1.jar" verbose="${maven.verbose}" todir="${jnlp.build.directory}/lib" failonerror="false" />
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
-
- <execution>
- <id>JnlpToSite</id>
- <phase>pre-site</phase>
- <configuration>
- <tasks>
- <mkdir dir="${maven.site.gen.dir}/resources" />
- <copy todir="${maven.site.gen.dir}/resources" verbose="${maven.verbose}" failonerror="false" overwrite="false">
- <fileset dir="${jnlp.build.directory}">
- <include name="**" />
- </fileset>
- </copy>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo.webstart</groupId>
- <artifactId>webstart-maven-plugin</artifactId>
- <version>1.0-alpha-2-cl_20081018</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>jnlp-inline</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <force>false</force>
- <dependencies>
- <excludes>
- <exclude>javax.help:javahelp</exclude>
- <exclude>org.swinglabs:jxlayer</exclude>
- </excludes>
- </dependencies>
- <libPath>lib</libPath>
- <extensions>
- <sun>sun.jnlp</sun>
- <jxlayer>jxlayer.jnlp</jxlayer>
- </extensions>
- <jnlp>
- <outputFile>launch-demo.jnlp</outputFile>
- <mainClass>${maven.jar.main.class}</mainClass>
- <allPermissions>true</allPermissions>
- <offlineAllowed>true</offlineAllowed>
- </jnlp>
-
- <sign>
- <keystore>${keystorepath}</keystore>
- <keypass />
- <storepass>${keystorepass}</storepass>
- <storetype />
- <alias>${keystorealias}</alias>
- <validity />
- <dnameCn />
- <dnameOu />
- <dnameO />
- <dnameL />
- <dnameSt />
- <dnameC />
- <verify>true</verify>
- <keystoreConfig>
- <delete>false</delete>
- <gen>false</gen>
- </keystoreConfig>
- </sign>
-
- <pack200>false</pack200>
- <gzip>true</gzip>
- <verbose>false</verbose>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
-</project>
\ No newline at end of file
Copied: jaxx/trunk/jaxx-runtime-swing-widget/pom.xml (from rev 1354, jaxx/trunk/jaxx-example/pom.xml)
===================================================================
--- jaxx/trunk/jaxx-runtime-swing-widget/pom.xml (rev 0)
+++ jaxx/trunk/jaxx-runtime-swing-widget/pom.xml 2009-05-04 16:38:07 UTC (rev 1378)
@@ -0,0 +1,275 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.5-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-runtime-swing-widget</artifactId>
+
+ <dependencies>
+
+ <!-- sibiling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-swing</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx Examples</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+
+ <packaging>jar</packaging>
+
+ <properties>
+
+ <maven.jar.main.class>jaxx.demo.JAXXDemo</maven.jar.main.class>
+
+ <!-- jnlp -->
+ <keystorepath>${codelutin.keystorepath}</keystorepath>
+ <keystorealias>CodeLutin</keystorealias>
+ <keystorepass>codelutin</keystorepass>
+
+ <jnlp.build.directory>${project.build.directory}/jnlp</jnlp.build.directory>
+
+ </properties>
+
+ <build>
+
+ <resources>
+ <resource>
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**/*.jaxx</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </resource>
+ </resources>
+
+ <pluginManagement>
+ <plugins>
+
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <addClasspath>true</addClasspath>
+ <classpathPrefix>./lib/</classpathPrefix>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+
+ </plugins>
+
+ </pluginManagement>
+
+ <plugins>
+
+ <plugin>
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>maven-jaxx-plugin</artifactId>
+ <version>${project.version}</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codelutin</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <configuration>
+ <entries>
+ <entry>
+ <basedir>${maven.gen.dir}/java/</basedir>
+ <includes>
+ <param>**\/**.java</param>
+ </includes>
+ </entry>
+ </entries>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>parserJava</goal>
+ <goal>gen</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <configuration>
+ <outputDirectory>${project.build.directory}/lib</outputDirectory>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+
+ <scm>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
+ </scm>
+
+ <profiles>
+ <!-- by default jnlp is only perform on a release stage when using the maven-release-plugin -->
+ <profile>
+ <id>release-profile</id>
+ <activation>
+ <property>
+ <name>performRelease</name>
+ <value>true</value>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <!-- Ajout des libs signe par Sun dans un fichier jnlp separe -->
+ <execution>
+ <id>JnlpSun</id>
+ <phase>verify</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="${jnlp.build.directory}" />
+ <copy file="${project.basedir}/src/main/jnlp/sun.jnlp" verbose="${maven.verbose}" todir="${jnlp.build.directory}" failonerror="false">
+ <filterset>
+ <filter token="lib" value="javahelp-2.0.02.jar" />
+ <filter token="url" value="${project.url}" />
+ </filterset>
+ </copy>
+ <copy file="${project.basedir}/src/main/jnlp/jxlayer.jnlp" verbose="${maven.verbose}" todir="${jnlp.build.directory}" failonerror="false">
+ <filterset>
+ <filter token="lib" value="jxlayer-3.0.1.jar" />
+ <filter token="url" value="${project.url}" />
+ </filterset>
+ </copy>
+ <copy file="${project.build.directory}/lib/javahelp-2.0.02.jar" verbose="${maven.verbose}" todir="${jnlp.build.directory}/lib" failonerror="false" />
+ <copy file="${project.build.directory}/lib/jxlayer-3.0.1.jar" verbose="${maven.verbose}" todir="${jnlp.build.directory}/lib" failonerror="false" />
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+
+ <execution>
+ <id>JnlpToSite</id>
+ <phase>pre-site</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="targset/site" />
+ <copy todir="targset/site" verbose="${maven.verbose}" failonerror="false" overwrite="false">
+ <fileset dir="${jnlp.build.directory}">
+ <include name="**" />
+ </fileset>
+ </copy>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo.webstart</groupId>
+ <artifactId>webstart-maven-plugin</artifactId>
+ <version>1.0-alpha-2-cl_20081018</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>jnlp-inline</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <force>false</force>
+ <dependencies>
+ <excludes>
+ <exclude>javax.help:javahelp</exclude>
+ <exclude>org.swinglabs:jxlayer</exclude>
+ </excludes>
+ </dependencies>
+ <libPath>lib</libPath>
+ <extensions>
+ <sun>sun.jnlp</sun>
+ <jxlayer>jxlayer.jnlp</jxlayer>
+ </extensions>
+ <jnlp>
+ <outputFile>launch-demo.jnlp</outputFile>
+ <mainClass>${maven.jar.main.class}</mainClass>
+ <allPermissions>true</allPermissions>
+ <offlineAllowed>true</offlineAllowed>
+ </jnlp>
+
+ <sign>
+ <keystore>${keystorepath}</keystore>
+ <keypass />
+ <storepass>${keystorepass}</storepass>
+ <storetype />
+ <alias>${keystorealias}</alias>
+ <validity />
+ <dnameCn />
+ <dnameOu />
+ <dnameO />
+ <dnameL />
+ <dnameSt />
+ <dnameC />
+ <verify>true</verify>
+ <keystoreConfig>
+ <delete>false</delete>
+ <gen>false</gen>
+ </keystoreConfig>
+ </sign>
+
+ <pack200>false</pack200>
+ <gzip>true</gzip>
+ <verbose>false</verbose>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
\ No newline at end of file
Deleted: jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-example-en_GB.properties
===================================================================
--- jaxx/trunk/jaxx-example/src/main/resources/i18n/jaxx-example-en_GB.properties 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-example-en_GB.properties 2009-05-04 16:38:07 UTC (rev 1378)
@@ -1,120 +0,0 @@
--=
-.=
-0=
-1=
-10=
-12=
-14=
-18=
-2=
-24=
-3=
-4=
-5=
-6=
-7=
-8=
-9=
-Age\:=
-Animal=
-Blue=
-Blue\:=
-Bold=
-Button\ label\:=
-C=
-CE=
-Cancel=
-Change\ layer\ state=
-Comments\:=
-Config\ file\ \:=
-Config\ file\:=
-Cyan=
-Dec\ (-)=
-Demo=
-Directory\ file\:=
-Editable=
-Email\ Address\:=
-Email\:=
-Enabled=
-Fancy\ Button=
-First\ Name\:=
-FirstName\:=
-Font\ size=
-Green=
-Green\:=
-Greet=
-Inc\ (+)=
-Italic=
-JAXX\ Demo=
-JMenu\ demo=
-Last\ Name\:=
-LastName\:=
-Message\ Box=
-Mineral=
-Normal\ text\:=
-OK=
-Orange=
-Password\:=
-Purple=
-Ratio\:=
-Red=
-Red\:=
-Reset=
-Show\ Background=
-Show\ password\ dialog=
-Sign\ on=
-Simple\ Button=
-Size\:=
-Source=
-Spacing\:=
-Start=
-Stop=
-Supported\ Swing\ components\:=
-Text2\:=
-Text\:=
-Underline=
-Upper\ case\ text\:=
-Use\ the\ spinner\ to=
-Username\:=
-Vegetable=
-View=
-Welcome\ to\ the\ JAXX\ framework\!=
-Working\ directory\:=
-Yellow=
-Your\ name\:=
-\\u00f7=
-adjust\ the\ spacing=
-between\ these\ lines=
-button\ A=
-button\ B=
-button\ C=
-button\ C\ (full\ block)=
-button\ D\ (full\ block\ 2)=
-button\ with\ layer=
-cancel=
-close=
-close2=
-close3=
-edit=
-edit2=
-edit3=
-emptyNode=< empty node >
-form.ratio=Form \: ratio
-form.text=Form \: text
-form.text2=Form \: text2
-form2.ratio=Form2 \: ratio
-form2.text=Form2 \: text
-form2.text2=Form2 \: text2
-no\ layer=
-valid=
-validator.field=Champ
-validator.field.header.tip=
-validator.field.tip=
-validator.message=Message
-validator.message.header.tip=
-validator.message.tip=
-validator.scope=...
-validator.scope.header.tip=
-validator.scope.tip=
-with\ layer=
-x=
Deleted: jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-example-fr_FR.properties
===================================================================
--- jaxx/trunk/jaxx-example/src/main/resources/i18n/jaxx-example-fr_FR.properties 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-example-fr_FR.properties 2009-05-04 16:38:07 UTC (rev 1378)
@@ -1,117 +0,0 @@
--=
-.=
-0=
-1=
-10=
-12=
-14=
-18=
-2=
-24=
-3=
-4=
-5=
-6=
-7=
-8=
-9=
-Age\:=
-Animal=
-Blue=
-Blue\:=
-Bold=
-Button\ label\:=
-C=
-CE=
-Cancel=
-Change\ layer\ state=
-Comments\:=
-Config\ file\ \:=
-Config\ file\:=
-Cyan=
-Dec\ (-)=
-Demo=
-Directory\ file\:=
-Editable=
-Email\ Address\:=
-Email\:=
-Enabled=
-Fancy\ Button=
-First\ Name\:=
-FirstName\:=
-Font\ size=
-Green=
-Green\:=
-Greet=
-Inc\ (+)=
-Italic=
-JAXX\ Demo=
-JMenu\ demo=
-Last\ Name\:=
-LastName\:=
-Message\ Box=
-Mineral=
-Normal\ text\:=
-OK=
-Orange=
-Password\:=
-Purple=
-Ratio\:=
-Red=
-Red\:=
-Reset=
-Show\ Background=
-Show\ password\ dialog=
-Sign\ on=
-Simple\ Button=
-Size\:=
-Source=
-Spacing\:=
-Start=
-Stop=
-Supported\ Swing\ components\:=
-Text2\:=
-Text\:=
-Underline=
-Upper\ case\ text\:=
-Use\ the\ spinner\ to=
-Username\:=
-Vegetable=
-View=
-Welcome\ to\ the\ JAXX\ framework\!=
-Working\ directory\:=
-Yellow=
-Your\ name\:=
-\\u00f7=
-adjust\ the\ spacing=
-between\ these\ lines=
-button\ A=
-button\ B=
-button\ C=
-button\ C\ (full\ block)=
-button\ D\ (full\ block\ 2)=
-button\ with\ layer=
-cancel=
-close=
-close2=
-close3=
-edit=
-edit2=
-edit3=
-emptyNode=< empty node >
-form.ratio=Form \: ratio
-form.text=Form \: text
-form.text2=Form \: text2
-form2.ratio=Form2 \: ratio
-form2.text=Form2 \: text
-form2.text2=Form2 \: text2
-no\ layer=
-valid=
-validator.field=
-validator.field.header.tip=
-validator.message=
-validator.message.header.tip=
-validator.scope=
-validator.scope.header.tip=
-with\ layer=
-x=
Copied: jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-en_GB.properties (from rev 1345, jaxx/trunk/jaxx-example/src/main/resources/i18n/jaxx-example-en_GB.properties)
===================================================================
Property changes on: jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-en_GB.properties
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-fr_FR.properties (from rev 1345, jaxx/trunk/jaxx-example/src/main/resources/i18n/jaxx-example-fr_FR.properties)
===================================================================
Property changes on: jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/i18n/jaxx-runtime-swing-widget-fr_FR.properties
___________________________________________________________________
Name: svn:mergeinfo
+
Deleted: jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/log4j.properties
===================================================================
--- jaxx/trunk/jaxx-example/src/main/resources/log4j.properties 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/trunk/jaxx-runtime-swing-widget/src/main/resources/log4j.properties 2009-05-04 16:38:07 UTC (rev 1378)
@@ -1,9 +0,0 @@
-# Global logging configuration
-log4j.rootLogger=ERROR, stdout
-# Console output...
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n
-
-log4j.logger.examples=DEBUG
-log4j.logger.jaxx=INFO
1
0
r1377 - jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/field
by tchemit@users.labs.libre-entreprise.org May 4, 2009
by tchemit@users.labs.libre-entreprise.org May 4, 2009
May 4, 2009
Author: tchemit
Date: 2009-05-04 07:13:44 +0000 (Mon, 04 May 2009)
New Revision: 1377
Modified:
jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/field/CollectionFieldExpressionValidator.java
jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/field/CollectionUniqueKeyValidator.java
Log:
add a UNIQUE_KEY mode in CollectionExpressionFieldValidator
Modified: jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/field/CollectionFieldExpressionValidator.java
===================================================================
--- jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/field/CollectionFieldExpressionValidator.java 2009-05-04 01:01:04 UTC (rev 1376)
+++ jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/field/CollectionFieldExpressionValidator.java 2009-05-04 07:13:44 UTC (rev 1377)
@@ -5,6 +5,8 @@
import com.opensymphony.xwork2.validator.validators.FieldExpressionValidator;
import java.util.Collection;
+import java.util.Set;
+import org.apache.commons.lang.builder.HashCodeBuilder;
/**
* Un validateur basé sur {@link FieldExpressionValidator} qui valide sur une collection de propriéte.
@@ -22,7 +24,9 @@
/** toutes les valeurs de la collection doivent etre valides */
ALL,
/** aucune valeur de la collection doivent etre valides */
- NONE
+ NONE,
+ /** detection de clef unique */
+ UNIQUE_KEY
}
/** le mode de validation sur la liste */
protected Mode mode;
@@ -58,6 +62,11 @@
* Note : Pour le moment, on autorise uniquement cela en mode ALL.
*/
protected String expressionForLast;
+ /**
+ * la liste des propriétés d'une entrée de la collection qui définit la
+ * clef unique (en mode UNIQUE_KEY).
+ */
+ protected String[] keys;
/** le context de parcours */
protected WalkerContext c;
private boolean useFirst, useLast;
@@ -102,6 +111,18 @@
this.expressionForLast = expressionForLast;
}
+ public String[] getKeys() {
+ return keys;
+ }
+
+ public void setKeys(String[] keys) {
+ if (keys != null && keys.length == 1 && keys[0].indexOf(",") != -1) {
+ this.keys = keys[0].split(",");
+ } else {
+ this.keys = keys;
+ }
+ }
+
@Override
public void validate(Object object) throws ValidationException {
if (mode == null) {
@@ -147,6 +168,12 @@
case NONE:
answer = validateNoneEntry(col);
break;
+ case UNIQUE_KEY:
+ if (keys == null || keys.length == 0) {
+ throw new ValidationException("no unique keys defined");
+ }
+ answer = validateUniqueKey(col);
+ break;
default:
// should never come here...
@@ -242,6 +269,30 @@
return count == 1;
}
+ protected Boolean validateUniqueKey(Collection<?> col) throws ValidationException {
+ boolean answer = true;
+
+ Set<Integer> hashCodes = new java.util.HashSet<Integer>();
+ int index = -1;
+ for (Object entry : col) {
+ index++;
+ // construction du hash de la clef d'unicite
+ Integer hash = getUniqueKeyHashCode(entry);
+ if (!hashCodes.contains(hash)) {
+ hashCodes.add(hash);
+ continue;
+ }
+ // une entree avec ce hash a deja ete trouvee
+ // on est donc en violation sur la clef unique
+ answer = false;
+ if (log.isDebugEnabled()) {
+ log.debug("duplicated uniquekey " + hash + " for entry " + index);
+ }
+ }
+ hashCodes.clear();
+ return answer;
+ }
+
protected boolean validateOneEntry(Object object) throws ValidationException {
Boolean answer = Boolean.FALSE;
@@ -276,6 +327,7 @@
} catch (ValidationException e) {
throw e;
} catch (Exception e) {
+ log.error(e.getMessage(), e);
// let this pass, but it will be logged right below
}
@@ -323,6 +375,26 @@
return (Collection<?>) obj;
}
+ /**
+ * Calcule pour une entrée donné, le hash de la clef unique
+ *
+ * @param o l'entree de la collection dont on va calculer le hash de la clef unique
+ * @return le hashCode calclé de la clef unique sur l'entrée donné
+ * @throws ValidationException if any pb to retreave properties values
+ */
+ protected Integer getUniqueKeyHashCode(Object o) throws ValidationException {
+ // calcul du hash à la volée
+ HashCodeBuilder builder = new HashCodeBuilder();
+ for (String key : this.keys) {
+ Object property = getFieldValue(key, o);
+ if (log.isDebugEnabled()) {
+ log.debug("key " + key + " : " + property);
+ }
+ builder.append(property);
+ }
+ return builder.toHashCode();
+ }
+
@Override
public String getValidatorType() {
return "collectionFieldExpression";
Modified: jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/field/CollectionUniqueKeyValidator.java
===================================================================
--- jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/field/CollectionUniqueKeyValidator.java 2009-05-04 01:01:04 UTC (rev 1376)
+++ jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/field/CollectionUniqueKeyValidator.java 2009-05-04 07:13:44 UTC (rev 1377)
@@ -18,18 +18,18 @@
*/
public class CollectionUniqueKeyValidator extends FieldExpressionValidator {
- public enum Mode {
-
- /** au moins une entrée de la collection doit etre valide */
- AT_LEAST_ONE,
- /** exactement une entrée dela collection doit être valide */
- EXACTLY_ONE,
- /** toutes les valeurs de la collection doivent etre valides */
- ALL,
- /** aucune valeur de la collection doivent etre valides */
- NONE
- }
/**
+ * pour indiquer la propriété qui contient la liste à valider.
+ *
+ * Si cette prorpiété n'est pas renseignée alors on utilise la
+ * {@link #getFieldName()} pour obtenir la collection.
+ *
+ * Cela permet d'effectuer une validation si une collection mais portant
+ * en fait sur un autre champs
+ * @since 1.5
+ */
+ protected String collectionFieldName;
+ /**
* la liste des propriétés d'une entrée de la collection qui définit la
* clef unique.
*/
@@ -47,16 +47,16 @@
*/
protected String againstIndexExpression;
- public String[] getKeys() {
- return keys;
+ public String getCollectionFieldName() {
+ return collectionFieldName;
}
- public String getAgainstProperty() {
- return againstProperty;
+ public void setCollectionFieldName(String collectionFieldName) {
+ this.collectionFieldName = collectionFieldName;
}
- public String getAgainstIndexExpression() {
- return againstIndexExpression;
+ public String[] getKeys() {
+ return keys;
}
public void setKeys(String[] keys) {
@@ -67,10 +67,18 @@
}
}
+ public String getAgainstProperty() {
+ return againstProperty;
+ }
+
public void setAgainstProperty(String againstProperty) {
this.againstProperty = againstProperty;
}
+ public String getAgainstIndexExpression() {
+ return againstIndexExpression;
+ }
+
public void setAgainstIndexExpression(String againstIndexExpression) {
this.againstIndexExpression = againstIndexExpression;
}
@@ -165,7 +173,11 @@
* @throws ValidationException if any pb to retreave the collection
*/
protected Collection<?> getCollection(Object object) throws ValidationException {
- String fieldName = getFieldName();
+ String fieldName = getCollectionFieldName();
+ if (fieldName == null || fieldName.trim().isEmpty()) {
+ // on travaille directement sur le fieldName
+ fieldName = getFieldName();
+ }
Object obj = null;
1
0
r1376 - in jaxx/trunk/jaxx-runtime-validator: . src/main/java/jaxx/runtime/validator
by tchemit@users.labs.libre-entreprise.org May 4, 2009
by tchemit@users.labs.libre-entreprise.org May 4, 2009
May 4, 2009
Author: tchemit
Date: 2009-05-04 01:01:04 +0000 (Mon, 04 May 2009)
New Revision: 1376
Modified:
jaxx/trunk/jaxx-runtime-validator/changelog.txt
jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/BeanValidator.java
Log:
add doRevalidate on BeanValidator to validate and update internal states (validate method does not update internal state and should be used in outside...)
Modified: jaxx/trunk/jaxx-runtime-validator/changelog.txt
===================================================================
--- jaxx/trunk/jaxx-runtime-validator/changelog.txt 2009-05-03 21:10:18 UTC (rev 1375)
+++ jaxx/trunk/jaxx-runtime-validator/changelog.txt 2009-05-04 01:01:04 UTC (rev 1376)
@@ -1,5 +1,6 @@
1.5
* 20090503 [chemit] - add a new property collectionFieldName on CollectionFieldExpression validator to be able to validate a collection but not for a collection field
+ - add doRevalidate on BeanValidator to validate and update internal states (validate method does not update internal state and should be used in outside...)
1.3 chemit 20090409
* 20090404 [chemit] - can now use a shared instance of ValueStack (in BeanValidatorUtil)
Modified: jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/BeanValidator.java
===================================================================
--- jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/BeanValidator.java 2009-05-03 21:10:18 UTC (rev 1375)
+++ jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/BeanValidator.java 2009-05-04 01:01:04 UTC (rev 1376)
@@ -83,9 +83,7 @@
@Override
public void propertyChange(PropertyChangeEvent evt) {
- validate();
- setValid(!hasErrors());
- setChanged(true);
+ doValidate();
}
};
}
@@ -308,6 +306,21 @@
}
/**
+ * Methode pour forcer la revalidation d'un bean en mettant a jour les etats
+ * internes.
+ *
+ * La méthode appelle {@link #validate()} puis met à jour les etats internes
+ * {@link #valid} et {@link #changed}.
+ *
+ * @since 1.5
+ */
+ public void doValidate() {
+ validate();
+ setValid(!hasErrors());
+ setChanged(true);
+ }
+
+ /**
* il faut eviter le code re-intrant (durant une validation, une autre est
* demandee). Pour cela on fait la validation dans un thread, et tant
* que la premiere validation n'est pas fini, on ne repond pas aux
@@ -315,6 +328,11 @@
* Cette method est public pour permettre de force une validation par
* programmation, ce qui est utile par exemple si le bean ne supporte
* pas les {@link PropertyChangeListener}
+ *
+ * TODO la methode devra repasser en protected et on preperar utiliser la
+ * methode {@link #doRevalidate()} car {@link #validate()} ne modifie pas
+ * les etats internes et cela en rends son utilisation delicate (le
+ * validateur entre dans un etat incoherent par rapport aux messages envoyés).
*/
public void validate() {
1
0
r1375 - in jaxx/trunk/jaxx-runtime-validator: . src/main/java/jaxx/runtime/validator/field
by tchemit@users.labs.libre-entreprise.org May 3, 2009
by tchemit@users.labs.libre-entreprise.org May 3, 2009
May 3, 2009
Author: tchemit
Date: 2009-05-03 21:10:18 +0000 (Sun, 03 May 2009)
New Revision: 1375
Modified:
jaxx/trunk/jaxx-runtime-validator/changelog.txt
jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/field/CollectionFieldExpressionValidator.java
Log:
improve CollectionFieldExpressionValidator : can specify collection property name via collectionFieldName
Modified: jaxx/trunk/jaxx-runtime-validator/changelog.txt
===================================================================
--- jaxx/trunk/jaxx-runtime-validator/changelog.txt 2009-04-30 15:08:34 UTC (rev 1374)
+++ jaxx/trunk/jaxx-runtime-validator/changelog.txt 2009-05-03 21:10:18 UTC (rev 1375)
@@ -1,3 +1,6 @@
+1.5
+ * 20090503 [chemit] - add a new property collectionFieldName on CollectionFieldExpression validator to be able to validate a collection but not for a collection field
+
1.3 chemit 20090409
* 20090404 [chemit] - can now use a shared instance of ValueStack (in BeanValidatorUtil)
* 20090401 [chemit] - introduce a extended fieldexpression validator where we can push extra parameters
Modified: jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/field/CollectionFieldExpressionValidator.java
===================================================================
--- jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/field/CollectionFieldExpressionValidator.java 2009-04-30 15:08:34 UTC (rev 1374)
+++ jaxx/trunk/jaxx-runtime-validator/src/main/java/jaxx/runtime/validator/field/CollectionFieldExpressionValidator.java 2009-05-03 21:10:18 UTC (rev 1375)
@@ -27,6 +27,17 @@
/** le mode de validation sur la liste */
protected Mode mode;
/**
+ * pour indiquer la propriété qui contient la liste à valider.
+ *
+ * Si cette prorpiété n'est pas renseignée alors on utilise la
+ * {@link #getFieldName()} pour obtenir la collection.
+ *
+ * Cela permet d'effectuer une validation si une collection mais portant
+ * en fait sur un autre champs
+ * @since 1.5
+ */
+ protected String collectionFieldName;
+ /**
* drapeau pour utiliser le contexte de parcours pour valider
* l'expression, on dispose donc alors des variables previous, current,
* index, size et empty dans l'expression.
@@ -49,7 +60,7 @@
protected String expressionForLast;
/** le context de parcours */
protected WalkerContext c;
- private boolean useFirst, useLast;
+ private boolean useFirst, useLast;
public Mode getMode() {
return mode;
@@ -59,6 +70,14 @@
this.mode = mode;
}
+ public String getCollectionFieldName() {
+ return collectionFieldName;
+ }
+
+ public void setCollectionFieldName(String collectionFieldName) {
+ this.collectionFieldName = collectionFieldName;
+ }
+
public boolean isUseSensitiveContext() {
return useSensitiveContext;
}
@@ -114,7 +133,7 @@
stack.push(object);
pop = true;
}
-
+
switch (mode) {
case ALL:
answer = validateAllEntries(col);
@@ -276,7 +295,11 @@
* @throws ValidationException if any pb to retreave the collection
*/
protected Collection<?> getCollection(Object object) throws ValidationException {
- String fieldName = getFieldName();
+ String fieldName = getCollectionFieldName();
+ if (fieldName == null || fieldName.trim().isEmpty()) {
+ // on travaille directement sur le fieldName
+ fieldName = getFieldName();
+ }
Object obj = null;
1
0
April 30, 2009
Author: kmorin
Date: 2009-04-30 15:08:34 +0000 (Thu, 30 Apr 2009)
New Revision: 1374
Added:
guix/trunk/src/site/rst/architecture.rst
guix/trunk/src/site/rst/fonctionnement.rst
guix/trunk/src/site/rst/guixFiles.rst
Log:
Site
Added: guix/trunk/src/site/rst/architecture.rst
===================================================================
--- guix/trunk/src/site/rst/architecture.rst (rev 0)
+++ guix/trunk/src/site/rst/architecture.rst 2009-04-30 15:08:34 UTC (rev 1374)
@@ -0,0 +1,6 @@
+Architecture
+------------
+
+Le projet comporte plusieurs sous-modules :
+ * 2 modules génériques qui seront lancés quelque soit le langage généré : guix-compiler et guix-runtime.
+ * 2 modules par langage générés : e.g. guix-swing-compiler et guix-swing-runtime seront appelés si le langage que l'on veut générer est du Swing.
Added: guix/trunk/src/site/rst/fonctionnement.rst
===================================================================
--- guix/trunk/src/site/rst/fonctionnement.rst (rev 0)
+++ guix/trunk/src/site/rst/fonctionnement.rst 2009-04-30 15:08:34 UTC (rev 1374)
@@ -0,0 +1,19 @@
+Fonctionnement du programme
+---------------------------
+
+Déroulement de la phase de compilation (génération de l'arbre du modèle)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. image:: guixcompilationactivity.png
+ :align: center
+
+Au lancement de la compilation, le programme charge les fichiers *.script* et *.css* du même nom que le fichier à compiler. S'ils existent, il enregistre leur contenu respectivement dans le conteneur des scripts et dans un nouveau *StyleSheet* associé au *GuixModelObject* racine.
+
+Tout au long du parcours du fichier Guix, on enregistre le contenu des balises *<script>*. À la fin du parcours, on enregistre ce contenu dans le *ClassDescriptor* du *GuixModelObject* racine.
+
+Dès que le parser rencontre une balise *<style>*, il ajoute une nouvelle instance de *StyleSheet* au *GuixModelObject* racine, contenant soit le fichier spécifié par l'attribut *source* (s'il est renseigné) ou les données entre les balises.
+
+Représentation de l'arbre du modèle
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. image:: guixmodeltree.png
Added: guix/trunk/src/site/rst/guixFiles.rst
===================================================================
--- guix/trunk/src/site/rst/guixFiles.rst (rev 0)
+++ guix/trunk/src/site/rst/guixFiles.rst 2009-04-30 15:08:34 UTC (rev 1374)
@@ -0,0 +1,14 @@
+Fichiers Guix
+-------------
+
+Structure
+~~~~~~~~~
+
+ - Définition des espaces de nommage (optionnel)
+ - Commentaires contenant la javadoc de la classe à créer (optionnel)
+ - Balise racine représentant la superclasse de la classe à créer
+ - Balises représentant les composants de l'IHM
+
+Pour assigner des valeurs aux attributs des composants, il suffit de les définir dans les attributs des balises.
+
+Des balises *<script>* ou *<style>* peuvent être ajoutées n'importe où dans le fichier. Leur contenu sera attaché à la classe générée.
1
0
April 30, 2009
Author: kmorin
Date: 2009-04-30 15:00:21 +0000 (Thu, 30 Apr 2009)
New Revision: 1373
Modified:
guix/trunk/src/site/rst/index.rst
Log:
Modified: guix/trunk/src/site/rst/index.rst
===================================================================
--- guix/trunk/src/site/rst/index.rst 2009-04-30 14:59:55 UTC (rev 1372)
+++ guix/trunk/src/site/rst/index.rst 2009-04-30 15:00:21 UTC (rev 1373)
@@ -1,55 +1,14 @@
GUIX
====
-.. contents::
-
Présentation
------------
Guix est un projet de générateur d'IHM à partir de fichiers XML et CSS.
-Il fait partie du projet Buix consultable sur le labs de Libre Entreprise : [[https://labs.libre-entreprise.org/projects/buix/]]
+Il fait partie du projet Buix consultable sur le labs de Libre Entreprise : `https://labs.libre-entreprise.org/projects/buix/`_
-Il est basé sur le projet JAXX dont la documentation est présente sur la page suivante : [[http://buix.labs.libre-entreprise.org/original-jaxx/www.jaxxframework.org/w…]]
+Il est basé sur le projet JAXX dont la documentation est présente sur la page suivante : http://buix.labs.libre-entreprise.org/original-jaxx/www.jaxxframework.org/w…
-Fichiers Guix
--------------
-
-Structure
-^^^^^^^^^
-
- - Définition des espaces de nommage (optionnel)
- - Commentaires contenant la javadoc de la classe à créer (optionnel)
- - Balise racine représentant la superclasse de la classe à créer
- - Balises représentant les composants de l'IHM
-
-Pour assigner des valeurs aux attributs des composants, il suffit de les définir dans les attributs des balises.
-
-Des balises ''<script>'' ou ''<style>'' peuvent être ajoutées n'importe où dans le fichier. Leur contenu sera attaché à la classe générée.
-
-Architecture
-------------
-
-Le projet comporte plusieurs sous-modules :
- * 2 modules génériques qui seront lancés quelque soit le langage généré : guix-compiler et guix-runtime.
- * 2 modules par langage générés : e.g. guix-swing-compiler et guix-swing-runtime seront appelés si le langage que l'on veut générer est du Swing.
-
-Fonctionnement du programme
----------------------------
-
-Déroulement de la phase de compilation (génération de l'arbre du modèle)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-{{stagiaires:morin:guixcompilationactivity.png}}
-
-Au lancement de la compilation, le programme charge les fichiers ''.script'' et ''.css'' du même nom que le fichier à compiler. S'ils existent, il enregistre leur contenu respectivement dans le conteneur des scripts et dans un nouveau ''StyleSheet'' associé au ''GuixModelObject'' racine.
-
-Tout au long du parcours du fichier Guix, on enregistre le contenu des balises ''<script>''. À la fin du parcours, on enregistre ce contenu dans le ''ClassDescriptor'' du ''GuixModelObject'' racine.
-
-Dès que le parser rencontre une balise ''<style>'', il ajoute une nouvelle instance de ''StyleSheet'' au ''GuixModelObject'' racine, contenant soit le fichier spécifié par l'attribut ''source'' (s'il est renseigné) ou les données entre les balises.
-
-Représentation de l'arbre du modèle
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-{{stagiaires:morin:guixmodeltree.png}}
+.. _https://labs.libre-entreprise.org/projects/buix/: https://labs.libre-entreprise.org/projects/buix/
1
0
r1372 - in guix/trunk: doc src/site src/site/resources
by kmorin@users.labs.libre-entreprise.org April 30, 2009
by kmorin@users.labs.libre-entreprise.org April 30, 2009
April 30, 2009
Author: kmorin
Date: 2009-04-30 14:59:55 +0000 (Thu, 30 Apr 2009)
New Revision: 1372
Added:
guix/trunk/doc/guixcompilationactivity.png
guix/trunk/doc/guixmodeltree.png
guix/trunk/src/site/resources/
guix/trunk/src/site/resources/guixLogo.png
guix/trunk/src/site/resources/guixcompilationactivity.png
guix/trunk/src/site/resources/guixmodeltree.png
Modified:
guix/trunk/src/site/site.xml
Log:
Site
Added: guix/trunk/doc/guixcompilationactivity.png
===================================================================
(Binary files differ)
Property changes on: guix/trunk/doc/guixcompilationactivity.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: guix/trunk/doc/guixmodeltree.png
===================================================================
(Binary files differ)
Property changes on: guix/trunk/doc/guixmodeltree.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: guix/trunk/src/site/resources/guixLogo.png
===================================================================
(Binary files differ)
Property changes on: guix/trunk/src/site/resources/guixLogo.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: guix/trunk/src/site/resources/guixcompilationactivity.png
===================================================================
(Binary files differ)
Property changes on: guix/trunk/src/site/resources/guixcompilationactivity.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: guix/trunk/src/site/resources/guixmodeltree.png
===================================================================
(Binary files differ)
Property changes on: guix/trunk/src/site/resources/guixmodeltree.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: guix/trunk/src/site/site.xml
===================================================================
--- guix/trunk/src/site/site.xml 2009-04-30 13:34:46 UTC (rev 1371)
+++ guix/trunk/src/site/site.xml 2009-04-30 14:59:55 UTC (rev 1372)
@@ -11,7 +11,7 @@
<bannerLeft>
<name>${project.name}</name>
- <src>images/logo-OT_web.png</src>
+ <src>guixLogo.png</src>
<href>index.html</href>
</bannerLeft>
@@ -41,7 +41,10 @@
<!--menu ref="parent"/-->
<menu name="Utilisateur">
- <item name="Accueil" href="index.html"/>
+ <item name="Accueil" href="index.html" />
+ <item name="Fichiers Guix" href="guixFiles.html" />
+ <item name="Architecture" href="architecture.html" />
+ <item name="Fonctionnement du programme" href="fonctionnement.html" />
<!--item name="Installation" href="install.html"/ -->
<!--item name="Téléchargement"
href="http://lutinbuilder.labs.libre-entreprise.org/maven2/fr/ird/observe/observe…"/ -->
1
0
April 30, 2009
Author: kmorin
Date: 2009-04-30 13:34:46 +0000 (Thu, 30 Apr 2009)
New Revision: 1371
Modified:
guix/trunk/guix-compiler/pom.xml
Log:
correction scm
Modified: guix/trunk/guix-compiler/pom.xml
===================================================================
--- guix/trunk/guix-compiler/pom.xml 2009-04-30 13:31:20 UTC (rev 1370)
+++ guix/trunk/guix-compiler/pom.xml 2009-04-30 13:34:46 UTC (rev 1371)
@@ -38,7 +38,7 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/guix/trunk/guix-parser</connection>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/guix/trunk/guix-compiler</connection>
<!--developerConnection>scm:svn:svn+ssh://sletellier@labs.libre-entreprise.org/svnroot/buix/guix/trunk</developerConnection-->
<!--url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/guix/trunk/?roo…</url-->
</scm>
1
0
r1370 - in guix/trunk: . guix-maven-plugin/src/main/java/org/nuiton/guix guix-test src src/site src/site/rst
by kmorin@users.labs.libre-entreprise.org April 30, 2009
by kmorin@users.labs.libre-entreprise.org April 30, 2009
April 30, 2009
Author: kmorin
Date: 2009-04-30 13:31:20 +0000 (Thu, 30 Apr 2009)
New Revision: 1370
Added:
guix/trunk/src/site/
guix/trunk/src/site/rst/
guix/trunk/src/site/rst/index.rst
guix/trunk/src/site/rst/todo.rst
guix/trunk/src/site/site.xml
Modified:
guix/trunk/
guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java
guix/trunk/guix-test/pom.xml
Log:
Debut ajout du site
Property changes on: guix/trunk
___________________________________________________________________
Name: svn:ignore
- .classpath
.project
+ .classpath
.project
target
Modified: guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java
===================================================================
--- guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java 2009-04-30 12:52:18 UTC (rev 1369)
+++ guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java 2009-04-30 13:31:20 UTC (rev 1370)
@@ -17,7 +17,7 @@
/**
* Directory of the files to compile.
- * @parameter expression="${guix.guixFilesDir}"
+ * @parameter expression="${guix.guixFilesDir}"
* @required
* @since 0.0.1
*/
Modified: guix/trunk/guix-test/pom.xml
===================================================================
--- guix/trunk/guix-test/pom.xml 2009-04-30 12:52:18 UTC (rev 1369)
+++ guix/trunk/guix-test/pom.xml 2009-04-30 13:31:20 UTC (rev 1370)
@@ -44,9 +44,9 @@
<artifactId>guix-maven-plugin</artifactId>
<version>${project.version}</version>
<configuration>
- <guix.guixFilesDir>/home/morin/NetBeansProjects/guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/</guix.guixFilesDir>
- <guix.targetDirectory>/home/morin/NetBeansProjects/guix/trunk/guix-test/target/generatedFiles/</guix.targetDirectory>
- <guix.rootPackage>org.nuiton.guix</guix.rootPackage>
+ <guixFilesDir>/home/morin/NetBeansProjects/guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/</guixFilesDir>
+ <targetDirectory>/home/morin/NetBeansProjects/guix/trunk/guix-test/target/generatedFiles/</targetDirectory>
+ <rootPackage>org.nuiton.guix</rootPackage>
</configuration>
<executions>
<execution>
Added: guix/trunk/src/site/rst/index.rst
===================================================================
--- guix/trunk/src/site/rst/index.rst (rev 0)
+++ guix/trunk/src/site/rst/index.rst 2009-04-30 13:31:20 UTC (rev 1370)
@@ -0,0 +1,55 @@
+GUIX
+====
+
+.. contents::
+
+Présentation
+------------
+
+Guix est un projet de générateur d'IHM à partir de fichiers XML et CSS.
+
+Il fait partie du projet Buix consultable sur le labs de Libre Entreprise : [[https://labs.libre-entreprise.org/projects/buix/]]
+
+Il est basé sur le projet JAXX dont la documentation est présente sur la page suivante : [[http://buix.labs.libre-entreprise.org/original-jaxx/www.jaxxframework.org/w…]]
+
+
+Fichiers Guix
+-------------
+
+Structure
+^^^^^^^^^
+
+ - Définition des espaces de nommage (optionnel)
+ - Commentaires contenant la javadoc de la classe à créer (optionnel)
+ - Balise racine représentant la superclasse de la classe à créer
+ - Balises représentant les composants de l'IHM
+
+Pour assigner des valeurs aux attributs des composants, il suffit de les définir dans les attributs des balises.
+
+Des balises ''<script>'' ou ''<style>'' peuvent être ajoutées n'importe où dans le fichier. Leur contenu sera attaché à la classe générée.
+
+Architecture
+------------
+
+Le projet comporte plusieurs sous-modules :
+ * 2 modules génériques qui seront lancés quelque soit le langage généré : guix-compiler et guix-runtime.
+ * 2 modules par langage générés : e.g. guix-swing-compiler et guix-swing-runtime seront appelés si le langage que l'on veut générer est du Swing.
+
+Fonctionnement du programme
+---------------------------
+
+Déroulement de la phase de compilation (génération de l'arbre du modèle)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+{{stagiaires:morin:guixcompilationactivity.png}}
+
+Au lancement de la compilation, le programme charge les fichiers ''.script'' et ''.css'' du même nom que le fichier à compiler. S'ils existent, il enregistre leur contenu respectivement dans le conteneur des scripts et dans un nouveau ''StyleSheet'' associé au ''GuixModelObject'' racine.
+
+Tout au long du parcours du fichier Guix, on enregistre le contenu des balises ''<script>''. À la fin du parcours, on enregistre ce contenu dans le ''ClassDescriptor'' du ''GuixModelObject'' racine.
+
+Dès que le parser rencontre une balise ''<style>'', il ajoute une nouvelle instance de ''StyleSheet'' au ''GuixModelObject'' racine, contenant soit le fichier spécifié par l'attribut ''source'' (s'il est renseigné) ou les données entre les balises.
+
+Représentation de l'arbre du modèle
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+{{stagiaires:morin:guixmodeltree.png}}
Added: guix/trunk/src/site/rst/todo.rst
===================================================================
--- guix/trunk/src/site/rst/todo.rst (rev 0)
+++ guix/trunk/src/site/rst/todo.rst 2009-04-30 13:31:20 UTC (rev 1370)
@@ -0,0 +1,8 @@
+Fonctionalités à développer
+===========================
+
+ * Compiler des fichiers JAXX
+ * Référencer un fichier CSS ou script en spécifiant le nom du fichier, ou non si le fichier porte le même nom que le fichier .guix
+ * Faire référence à des balises autres que les balises Guix en ajoutant le package (soit en espace de nommage, soit dans le nom de la balise)
+ * Gérer l'héritage du CSS entre les classes Guix
+ * Générer les commentaires de javadoc
Added: guix/trunk/src/site/site.xml
===================================================================
--- guix/trunk/src/site/site.xml (rev 0)
+++ guix/trunk/src/site/site.xml 2009-04-30 13:31:20 UTC (rev 1370)
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="${project.name}">
+
+ <publishDate format="dd/MM/yyyy"/>
+
+ <skin>
+ <groupId>org.codelutin</groupId>
+ <artifactId>maven-lutin-skin</artifactId>
+ <version>0.2.3</version>
+ </skin>
+
+ <bannerLeft>
+ <name>${project.name}</name>
+ <src>images/logo-OT_web.png</src>
+ <href>index.html</href>
+ </bannerLeft>
+
+ <bannerRight>
+ <src>http://www.codelutin.com/images/lutinorange-codelutin.png</src>
+ <href>${project.organization.url}</href>
+ </bannerRight>
+
+ <poweredBy>
+ <logo href="http://maven.apache.org" name="Maven"
+ img="images/logos/maven-feather.png"/>
+
+ <logo href="http://jrst.labs.libre-entreprise.org/jrst" name="JRst"
+ img="images/jrst-logo.png"/>
+
+ <logo href="http://docutils.sourceforge.net/rst.html" name="ReStructuredText"
+ img="images/restructuredtext-logo.png"/>
+
+ </poweredBy>
+
+ <body>
+ <links>
+ <item name="Labs" href="http://labs.libre-entreprise.org/"/>
+ <item name="${project.organization.name}" href="${project.organization.url}"/>
+ </links>
+
+ <!--menu ref="parent"/-->
+
+ <menu name="Utilisateur">
+ <item name="Accueil" href="index.html"/>
+ <!--item name="Installation" href="install.html"/ -->
+ <!--item name="Téléchargement"
+ href="http://lutinbuilder.labs.libre-entreprise.org/maven2/fr/ird/observe/observe…"/ -->
+ </menu>
+
+ <menu name="Développeur">
+ <!--item name="Avancement" href="Avancement.html"/-->
+ <item name="A faire" href="todo.html"/>
+ </menu>
+
+ <menu ref="reports"/>
+
+ <!--menu ref="modules"/-->
+
+ </body>
+</project>
1
0
r1369 - guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix
by kmorin@users.labs.libre-entreprise.org April 30, 2009
by kmorin@users.labs.libre-entreprise.org April 30, 2009
April 30, 2009
Author: kmorin
Date: 2009-04-30 12:52:18 +0000 (Thu, 30 Apr 2009)
New Revision: 1369
Modified:
guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java
Log:
normalisation des parametres du mojo
Modified: guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java
===================================================================
--- guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java 2009-04-30 12:51:57 UTC (rev 1368)
+++ guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java 2009-04-30 12:52:18 UTC (rev 1369)
@@ -17,20 +17,23 @@
/**
* Directory of the files to compile.
- * @parameter expression="${guixFilesDir}"
+ * @parameter expression="${guix.guixFilesDir}"
* @required
+ * @since 0.0.1
*/
private String guixFilesDir;
/**
* Directory of the generated files.
- * @parameter expression="${targetDirectory}" default-value="generatedFiles"
+ * @parameter expression="${guix.targetDirectory}" default-value="generatedFiles"
+ * @since 0.0.1
*/
private String targetDirectory;
/**
* Directory of the generated files.
- * @parameter expression="${rootPackage}" default-value=""
+ * @parameter expression="${guix.rootPackage}" default-value=""
+ * @since 0.0.1
*/
private String rootPackage;
1
0
April 30, 2009
Author: kmorin
Date: 2009-04-30 12:51:57 +0000 (Thu, 30 Apr 2009)
New Revision: 1368
Modified:
guix/trunk/guix-test/pom.xml
Log:
mise a jour des balises de parametres
Modified: guix/trunk/guix-test/pom.xml
===================================================================
--- guix/trunk/guix-test/pom.xml 2009-04-29 15:42:38 UTC (rev 1367)
+++ guix/trunk/guix-test/pom.xml 2009-04-30 12:51:57 UTC (rev 1368)
@@ -44,9 +44,9 @@
<artifactId>guix-maven-plugin</artifactId>
<version>${project.version}</version>
<configuration>
- <guixFilesDir>/home/morin/NetBeansProjects/guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/</guixFilesDir>
- <targetDirectory>/home/morin/NetBeansProjects/guix/trunk/guix-test/target/generatedFiles/</targetDirectory>
- <rootPackage>org.nuiton.guix</rootPackage>
+ <guix.guixFilesDir>/home/morin/NetBeansProjects/guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/</guix.guixFilesDir>
+ <guix.targetDirectory>/home/morin/NetBeansProjects/guix/trunk/guix-test/target/generatedFiles/</guix.targetDirectory>
+ <guix.rootPackage>org.nuiton.guix</guix.rootPackage>
</configuration>
<executions>
<execution>
1
0
r1367 - in guix/trunk/guix-test: . src/main/resources
by kmorin@users.labs.libre-entreprise.org April 29, 2009
by kmorin@users.labs.libre-entreprise.org April 29, 2009
April 29, 2009
Author: kmorin
Date: 2009-04-29 15:42:38 +0000 (Wed, 29 Apr 2009)
New Revision: 1367
Added:
guix/trunk/guix-test/src/main/resources/log4j.properties
guix/trunk/guix-test/test/
Modified:
guix/trunk/guix-test/pom.xml
Log:
ajout des param?\195?\168tres sur les dossiers des fichiers guix et dossiers de g?\195?\169n?\195?\169ration
Modified: guix/trunk/guix-test/pom.xml
===================================================================
--- guix/trunk/guix-test/pom.xml 2009-04-29 15:41:34 UTC (rev 1366)
+++ guix/trunk/guix-test/pom.xml 2009-04-29 15:42:38 UTC (rev 1367)
@@ -45,6 +45,8 @@
<version>${project.version}</version>
<configuration>
<guixFilesDir>/home/morin/NetBeansProjects/guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/</guixFilesDir>
+ <targetDirectory>/home/morin/NetBeansProjects/guix/trunk/guix-test/target/generatedFiles/</targetDirectory>
+ <rootPackage>org.nuiton.guix</rootPackage>
</configuration>
<executions>
<execution>
Added: guix/trunk/guix-test/src/main/resources/log4j.properties
===================================================================
--- guix/trunk/guix-test/src/main/resources/log4j.properties (rev 0)
+++ guix/trunk/guix-test/src/main/resources/log4j.properties 2009-04-29 15:42:38 UTC (rev 1367)
@@ -0,0 +1,9 @@
+# Global logging configuration
+log4j.rootLogger=INFO, stdout
+# Console output...
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%5p [%F : %M] %m%n
+
+#log4j.logger.org.codelutin.i18n=ERROR
+log4j.logger.org.nuiton.guix=DEBUG
1
0
r1366 - guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix
by kmorin@users.labs.libre-entreprise.org April 29, 2009
by kmorin@users.labs.libre-entreprise.org April 29, 2009
April 29, 2009
Author: kmorin
Date: 2009-04-29 15:41:34 +0000 (Wed, 29 Apr 2009)
New Revision: 1366
Modified:
guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java
Log:
log
Modified: guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java
===================================================================
--- guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java 2009-04-29 15:41:14 UTC (rev 1365)
+++ guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java 2009-04-29 15:41:34 UTC (rev 1366)
@@ -2,7 +2,6 @@
import java.io.File;
import java.util.ArrayList;
-import org.apache.log4j.Logger;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
@@ -15,6 +14,7 @@
*/
public class GuixMojo extends AbstractMojo
{
+
/**
* Directory of the files to compile.
* @parameter expression="${guixFilesDir}"
@@ -24,10 +24,16 @@
/**
* Directory of the generated files.
- * @parameter expression="${generatedFilesDestination}" default-value="generatedFiles"
+ * @parameter expression="${targetDirectory}" default-value="generatedFiles"
*/
private String targetDirectory;
+ /**
+ * Directory of the generated files.
+ * @parameter expression="${rootPackage}" default-value=""
+ */
+ private String rootPackage;
+
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
GuixInitializer.initialize();
@@ -40,25 +46,25 @@
if(guixFilesDir.exists() && guixFilesDir.isDirectory()) {
ArrayList<File> guixFiles = goDeeperInto(guixFilesDir);
- GuixLauncher gcl = new GuixLauncher(guixFiles.toArray(new File[guixFiles.size()]),targetDirectory);
+ GuixLauncher gcl = new GuixLauncher(guixFiles.toArray(
+ new File[guixFiles.size()]),targetDirectory,rootPackage,guixFilesDir);
boolean result = gcl.compile();
-
if(result)
- Logger.getLogger(GuixMojo.class).info("Compilation succeeded !");
+ getLog().info("Compilation succeeded !");
else
- Logger.getLogger(GuixMojo.class).error("Compilation failed...");
+ getLog().error("Compilation failed...");
}
}
private ArrayList<File> goDeeperInto(File dir) {
- Logger.getLogger(GuixMojo.class).debug("goind deeper into " + dir.getPath());
+ getLog().debug("goind deeper into " + dir.getPath());
ArrayList<File> result = new ArrayList<File>();
for(File f : dir.listFiles()) {
if(f.isDirectory() && !f.isHidden()) {
result.addAll(goDeeperInto(f));
}
else if(f.getName().endsWith(".guix")) {
- Logger.getLogger(GuixMojo.class).debug("found " + f.getName());
+ getLog().debug("found " + f.getName());
result.add(f);
}
}
1
0
r1365 - in guix/trunk/guix-compiler/src: main/java/org/nuiton/guix main/java/org/nuiton/guix/compiler main/java/org/nuiton/guix/model main/java/org/nuiton/guix/tags main/resources test test/java/org/nuiton/guix test/java/org/nuiton/guix/compiler test/java/org/nuiton/guix/tags
by kmorin@users.labs.libre-entreprise.org April 29, 2009
by kmorin@users.labs.libre-entreprise.org April 29, 2009
April 29, 2009
Author: kmorin
Date: 2009-04-29 15:41:14 +0000 (Wed, 29 Apr 2009)
New Revision: 1365
Added:
guix/trunk/guix-compiler/src/main/resources/log4j.properties
guix/trunk/guix-compiler/src/test/java/org/nuiton/guix/GuixLauncherTest.java
guix/trunk/guix-compiler/src/test/java/org/nuiton/guix/compiler/
guix/trunk/guix-compiler/src/test/java/org/nuiton/guix/compiler/GuixCompilerTest.java
guix/trunk/guix-compiler/src/test/java/org/nuiton/guix/tags/
guix/trunk/guix-compiler/src/test/java/org/nuiton/guix/tags/TagManagerTest.java
guix/trunk/guix-compiler/src/test/test.guix
Modified:
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/AttributeDescriptor.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/ClassDescriptor.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/TagManager.java
Log:
log + test unitaires
+ corrections des bugs d?\195?\169couverts grace aux tests unitaires
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java 2009-04-29 08:06:47 UTC (rev 1364)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java 2009-04-29 15:41:14 UTC (rev 1365)
@@ -9,11 +9,11 @@
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import org.apache.log4j.Logger;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.nuiton.guix.model.ClassDescriptor;
import org.nuiton.guix.model.GuixModelObject;
import org.nuiton.guix.model.Rule;
@@ -30,7 +30,7 @@
public class GuixLauncher {
/** log */
- Logger log = Logger.getLogger(GuixLauncher.class);
+ protected static final Log log = LogFactory.getLog(GuixLauncher.class);
/** original list of files to compile */
protected final File[] files;
/** original list of classes to compile */
@@ -49,19 +49,34 @@
private List<File> compiledFiles = new ArrayList<File>();
protected int compilerCount;
private File targetDirectory;
+ private String rootPackage;
/**
* Constructor
*
* @param files the files to compile
*/
- public GuixLauncher(File[] files, File targetDirectory) {
+ public GuixLauncher(File[] files, File targetDirectory, String rootPackage,
+ File baseDir) {
// Set up a simple configuration that logs on the console.
this.files = files;
this.targetDirectory = targetDirectory;
- classNames = new String[files.length];
- for (int i = 0; i < files.length; i++) {
- classNames[i] = files[i].getName().substring(0, files[i].getName().lastIndexOf('.'));
+ if(rootPackage != null)
+ this.rootPackage = rootPackage;
+ else
+ this.rootPackage = "";
+ if (files != null) {
+ classNames = new String[files.length];
+ for (int i = 0; i < files.length; i++) {
+ String path = files[i].getAbsolutePath();
+ if(baseDir != null)
+ classNames[i] = rootPackage + "." + path.substring(baseDir.getAbsolutePath().length() + 1,
+ path.lastIndexOf('.')).replace(File.separatorChar,'.');
+ else
+ classNames[i] = path.substring(0,path.lastIndexOf('.'));
+ }
+ } else {
+ classNames = null;
}
}
@@ -73,185 +88,204 @@
*/
public synchronized boolean compile() {
compilerCount = 0;
- guixFiles.addAll(Arrays.asList(files));
- guixFileClassNames.addAll(Arrays.asList(classNames));
- boolean success = true;
+ File destDir = targetDirectory;
+ if (files != null) {
+ guixFiles.addAll(Arrays.asList(files));
+ guixFileClassNames.addAll(Arrays.asList(classNames));
+ boolean success = true;
+
+ try {
+ assert guixFiles.size() == guixFileClassNames.size();
- try {
- assert guixFiles.size() == guixFileClassNames.size();
+ for (int i = 0; i < guixFiles.size(); i++) {
+ File file = guixFiles.get(i);
+ String className = guixFileClassNames.get(i);
- for (int i = 0; i < guixFiles.size(); i++) {
- File file = guixFiles.get(i);
- String className = guixFileClassNames.get(i);
+ //if we have not compiled the file yet
+ if (!compiledFiles.contains(file)) {
+ if (log.isInfoEnabled()) {
+ log.info("Compiling class " + className);
+ }
+ compiledFiles.add(file);
- //if we have not compiled the file yet
- if (!compiledFiles.contains(file)) {
- log.info("Compiling class " + className);
- compiledFiles.add(file);
-
- File destDir = targetDirectory;
- if (destDir != null) {
- int dotPos = className.lastIndexOf(".");
- if (dotPos != -1) {
- destDir = new File(destDir, className.substring(0, dotPos).replace('.', File.separatorChar));
+ String classPackage;
+ if (targetDirectory != null) {
+ int dotPos = className.lastIndexOf(".");
+ if (dotPos != -1) {
+ destDir = new File(targetDirectory, className.substring(0, dotPos).replace('.', File.separatorChar));
+ classPackage = className.substring(0, dotPos);
+ } else {
+ destDir = new File(targetDirectory, className);
+ classPackage = className;
+ }
+ if (!destDir.exists() && !destDir.mkdirs()) {
+ if (log.isWarnEnabled()) {
+ log.warn("couldn't create directory " + destDir);
+ }
+ continue;
+ }
} else {
- destDir = new File(destDir, className);
+ destDir = file.getParentFile();
+ classPackage = destDir.getAbsolutePath().replace(File.separatorChar,'.');
}
- if (!destDir.exists() && !destDir.mkdirs()) {
- log.warn("couldn't create directory " + destDir);
- continue;
+ //compile the file
+ GuixCompiler compiler = new GuixCompiler(file, this, classPackage);
+
+ GuixModelObject rootModelObject = compiler.compile();
+ rootModelObjects.put(rootModelObject, compiler);
+
+ if (compiler.isFailed()) {
+ success = false;
}
} else {
- destDir = file.getParentFile();
+ if (log.isWarnEnabled()) {
+ log.warn(file.getName() + " has already been compiled.");
+ }
}
- //compile the file
- GuixCompiler compiler = new GuixCompiler(
- file.getParentFile(), file, className, this);
+ }
- GuixModelObject rootModelObject = compiler.compile();
- rootModelObjects.put(rootModelObject, compiler);
-
- if (compiler.isFailed()) {
- success = false;
+ if (success) {
+ int i = 0;
+ while (success && i < classDescriptors.size()) {
+ success = (classDescriptors.get(i++).getPackageName() != null);
}
- } else {
- log.warn(file.getName() + " has already been compiled.");
+ if (!success) {
+ if (log.isErrorEnabled()) {
+ log.error("The class '" + classDescriptors.get(--i).getName() + "' has no package.");
+ }
+ }
}
- }
+ if (success || true) {
+ XmlPullParserFactory factory =
+ XmlPullParserFactory.newInstance(
+ System.getProperty(XmlPullParserFactory.PROPERTY_NAME),
+ null);
- if (success) {
- int i = 0;
- while (success && i < classDescriptors.size()) {
- success = (classDescriptors.get(i++).getPackageName() != null);
- }
- if (!success) {
- log.error("The class '" + classDescriptors.get(--i).getName() + "' has no package.");
- }
- }
- if (success || true) {
- XmlPullParserFactory factory =
- XmlPullParserFactory.newInstance(
- System.getProperty(XmlPullParserFactory.PROPERTY_NAME),
- null);
-
- for (GuixModelObject mo : rootModelObjects.keySet()) {
- File f = new File(targetDirectory, mo.getClassDescriptor().getName() + "ModelTree.xml");
- log.info(mo.getClassDescriptor().getName() + " last modification : "
- + new Date(rootModelObjects.get(mo).getLastModification()));
-
- if (rootModelObjects.get(mo).getLastModification() > f.lastModified()) {
- log.info("Generation of " + mo.getClassDescriptor().getName());
- if (!f.exists()) {
- f.createNewFile();
+ for (GuixModelObject mo : rootModelObjects.keySet()) {
+ File f = new File(destDir, mo.getClassDescriptor().getName() + "ModelTree.xml");
+ if (log.isInfoEnabled()) {
+ log.info(mo.getClassDescriptor().getName() + " last modification : " + new Date(rootModelObjects.get(mo).getLastModification()));
}
- XmlSerializer serializer = factory.newSerializer();
- XmlSerializer cssSerializer = factory.newSerializer();
+ if (rootModelObjects.get(mo).getLastModification() > f.lastModified()) {
+ if (log.isInfoEnabled()) {
+ log.info("Generation of " + mo.getClassDescriptor().getName());
+ }
+ if (!f.exists()) {
+ f.createNewFile();
+ }
+ XmlSerializer serializer = factory.newSerializer();
+ XmlSerializer cssSerializer = factory.newSerializer();
- serializer.setOutput(new PrintWriter(f));
- serializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n");
- serializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "\t");
+ serializer.setOutput(new PrintWriter(f));
+ serializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n");
+ serializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "\t");
- cssSerializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n");
- cssSerializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "\t");
+ cssSerializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n");
+ cssSerializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "\t");
- writeModelTree(serializer, mo, cssSerializer);
+ writeModelTree(serializer, mo, cssSerializer, destDir);
- serializer.endDocument();
+ serializer.endDocument();
+ } else if (log.isWarnEnabled()) {
+ log.warn(mo.getClassDescriptor().getName() + " has already been generated and is up to date.");
+ }
}
- else {
- log.warn(mo.getClassDescriptor().getName() + " has already been generated and is up to date.");
- }
+
+ /*// pass 2
+ if (!nextStep(LifeCycle.compile_second_pass, success)) {
+ return false;
}
- /*// pass 2
- if (!nextStep(LifeCycle.compile_second_pass, success)) {
- return false;
- }
+ assert guixFiles.size() == guixFileClassNames.size();
+ List<File> jaxxFilesClone = new ArrayList<File>(guixFiles);
+ for (String className : guixFileClassNames) {
+ JAXXCompiler compiler = getCompiler(className, "Internal error: could not find compiler for " + className + " during second pass");
+ addProfileTime(compiler, currentPass.name() + "_start");
+ if (log.isDebugEnabled()) {
+ log.debug("runInitializers for " + className);
+ }
+ if (!compiler.isFailed()) {
+ compiler.runInitializers();
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("compile second pass for " + className);
+ }
+ compiler.compileSecondPass();
+ addProfileTime(compiler, currentPass.name() + "_end");
+ if (log.isDebugEnabled()) {
+ log.debug("done with result [" + !compiler.isFailed() + "] for " + className);
+ }
+ if (compiler.isFailed()) {
+ success = false;
+ }
+ }
+ if (!jaxxFilesClone.equals(guixFiles)) {
+ throw new AssertionError("Internal error: compilation set altered during pass 2 (was " + jaxxFilesClone + ", modified to " + guixFiles + ")");
+ }
- assert guixFiles.size() == guixFileClassNames.size();
- List<File> jaxxFilesClone = new ArrayList<File>(guixFiles);
- for (String className : guixFileClassNames) {
- JAXXCompiler compiler = getCompiler(className, "Internal error: could not find compiler for " + className + " during second pass");
- addProfileTime(compiler, currentPass.name() + "_start");
- if (log.isDebugEnabled()) {
- log.debug("runInitializers for " + className);
- }
- if (!compiler.isFailed()) {
- compiler.runInitializers();
- }
- if (log.isDebugEnabled()) {
- log.debug("compile second pass for " + className);
- }
- compiler.compileSecondPass();
- addProfileTime(compiler, currentPass.name() + "_end");
- if (log.isDebugEnabled()) {
- log.debug("done with result [" + !compiler.isFailed() + "] for " + className);
- }
- if (compiler.isFailed()) {
- success = false;
- }
- }
- if (!jaxxFilesClone.equals(guixFiles)) {
- throw new AssertionError("Internal error: compilation set altered during pass 2 (was " + jaxxFilesClone + ", modified to " + guixFiles + ")");
- }
+ // stylesheet application
+ if (!nextStep(LifeCycle.stylesheet_pass, success)) {
+ return false;
+ }
+ assert guixFiles.size() == guixFileClassNames.size();
+ for (String className : guixFileClassNames) {
+ JAXXCompiler compiler = getCompiler(className, "Internal error: could not find compiler for " + className + " during stylesheet application");
+ addProfileTime(compiler, currentPass.name() + "_start");
+ compiler.applyStylesheets();
+ addProfileTime(compiler, currentPass.name() + "_end");
+ if (compiler.isFailed()) {
+ success = false;
+ }
+ }
- // stylesheet application
- if (!nextStep(LifeCycle.stylesheet_pass, success)) {
- return false;
- }
- assert guixFiles.size() == guixFileClassNames.size();
- for (String className : guixFileClassNames) {
- JAXXCompiler compiler = getCompiler(className, "Internal error: could not find compiler for " + className + " during stylesheet application");
- addProfileTime(compiler, currentPass.name() + "_start");
- compiler.applyStylesheets();
- addProfileTime(compiler, currentPass.name() + "_end");
- if (compiler.isFailed()) {
- success = false;
- }
- }
+ // code generation
+ if (!nextStep(LifeCycle.generate_pass, success)) {
+ return false;
+ }
+ assert guixFiles.size() == guixFileClassNames.size();
+ List<Generator> generators = new ArrayList<Generator>();
+ for (Generator generator : ServiceLoader.load(Generator.class)) {
+ generators.add(generator);
+ }
+ for (String className : guixFileClassNames) {
+ JAXXCompiler compiler = getCompiler(className, "Internal error: could not find compiler for " + className + " during code generation");
+ addProfileTime(compiler, currentPass.name() + "_start");
+ compiler.generateCode(generators);
+ addProfileTime(compiler, currentPass.name() + "_end");
+ //compiler.generateCode();
+ if (compiler.isFailed()) {
+ success = false;
+ }
+ }
- // code generation
- if (!nextStep(LifeCycle.generate_pass, success)) {
- return false;
- }
- assert guixFiles.size() == guixFileClassNames.size();
- List<Generator> generators = new ArrayList<Generator>();
- for (Generator generator : ServiceLoader.load(Generator.class)) {
- generators.add(generator);
- }
- for (String className : guixFileClassNames) {
- JAXXCompiler compiler = getCompiler(className, "Internal error: could not find compiler for " + className + " during code generation");
- addProfileTime(compiler, currentPass.name() + "_start");
- compiler.generateCode(generators);
- addProfileTime(compiler, currentPass.name() + "_end");
- //compiler.generateCode();
- if (compiler.isFailed()) {
- success = false;
- }
- }
+ if (options.isProfile()) {
+ // profile pass (only if succes compile)
+ if (!nextStep(LifeCycle.profile_pass, success)) {
+ return false;
+ }
+ StringBuilder buffer = profiler.computeProfileReport();
+ log.info(buffer.toString());
+ }
- if (options.isProfile()) {
- // profile pass (only if succes compile)
- if (!nextStep(LifeCycle.profile_pass, success)) {
- return false;
+ return report(success);
+
+ //FIXME : deal better the exception treatment...
+ } catch (CompilerException e) {
+ System.err.println(e.getMessage());
+ e.printStackTrace();
+ return false;*/
+ }
+ } catch (Throwable e) {
+ e.printStackTrace();
+ return false;
}
- StringBuilder buffer = profiler.computeProfileReport();
- log.info(buffer.toString());
+ return success;
+ } else {
+ if (log.isWarnEnabled()) {
+ log.warn("No file to compile");
}
-
- return report(success);
-
- //FIXME : deal better the exception treatment...
- } catch (CompilerException e) {
- System.err.println(e.getMessage());
- e.printStackTrace();
- return false;*/
- }
- } catch (Throwable e) {
- e.printStackTrace();
- return false;
+ return true;
}
- return success;
}
/**
@@ -264,11 +298,11 @@
* @throws java.io.IOException
*/
private void writeModelTree(XmlSerializer serializer, GuixModelObject mo,
- XmlSerializer cssSerializer) throws IOException {
+ XmlSerializer cssSerializer, File destDir) throws IOException {
if (!mo.getStyleSheets().isEmpty()) {
int i = 0;
for (StyleSheet styleSheet : mo.getStyleSheets()) {
- File ss = new File(targetDirectory, mo.getClassDescriptor().getName() + i++ + "SS.xml");
+ File ss = new File(destDir, mo.getClassDescriptor().getName() + i++ + "SS.xml");
cssSerializer.setOutput(new FileWriter(ss));
cssSerializer.startTag("", "rules");
for (Rule rule : styleSheet.getRules()) {
@@ -338,16 +372,15 @@
serializer.endTag("", "script");
serializer.startTag("", "superclass");
if (mo.getClassDescriptor().getSuperClass() != null) {
- serializer.text(mo.getClassDescriptor().getSuperClass().getPackageName() + "." + mo.getClassDescriptor().getSuperClass().getName());
+ serializer.text(mo.getClassDescriptor().getSuperClass().toString());
}
serializer.endTag("", "superclass");
serializer.endTag("", "class");
for (GuixModelObject child : mo.getChildren()) {
- writeModelTree(serializer, child, cssSerializer);
+ writeModelTree(serializer, child, cssSerializer, destDir);
}
-
serializer.endTag("", "Object");
}
@@ -360,26 +393,47 @@
* and package has a different script or superclass
*/
public boolean registerClassDescriptor(ClassDescriptor classDescriptor) {
+ if(classDescriptor == null || classDescriptor.getName() == null)
+ return false;
int i = 0;
- while ((i < classDescriptors.size()) && (!classDescriptors.get(i).getName().equals(classDescriptor.getName())) && ((classDescriptors.get(i).getPackageName() == null) || (classDescriptor.getPackageName() == null) || (!classDescriptors.get(i).getPackageName().equals(classDescriptor.getPackageName())))) {
+ while (i < classDescriptors.size()
+ && (!classDescriptors.get(i).getName().equals(classDescriptor.getName())
+ || (classDescriptors.get(i).getPackageName() != null
+ && classDescriptor.getPackageName() != null
+ && !classDescriptors.get(i).getPackageName().equals(classDescriptor.getPackageName())))) {
i++;
}
//if the ClassDescriptor does not exist
if (i >= classDescriptors.size()) {
classDescriptors.add(classDescriptor);
+ if (log.isDebugEnabled()) {
+ log.debug("new ClassDescriptor " + classDescriptor + " inserted");
+ }
return true;
}
if (classDescriptor.getScript() != null) {
if (classDescriptors.get(i).getScript() == null) {
classDescriptors.get(i).setScript(classDescriptor.getScript());
+ if (log.isDebugEnabled()) {
+ log.debug("add script to ClassDescriptor " + classDescriptor);
+ }
} else if (!classDescriptors.get(i).getScript().equals(classDescriptor.getScript())) {
+ if (log.isDebugEnabled()) {
+ log.error("ClassDescriptor " + classDescriptor + " script already defined and different !");
+ }
return false;
}
}
if (classDescriptor.getSuperClass() != null) {
if (classDescriptors.get(i).getSuperClass() == null) {
classDescriptors.get(i).setSuperClass(classDescriptor.getSuperClass());
+ if (log.isDebugEnabled()) {
+ log.debug("add superclass to ClassDescriptor " + classDescriptor);
+ }
} else if (!classDescriptors.get(i).getSuperClass().equals(classDescriptor.getSuperClass())) {
+ if (log.isErrorEnabled()) {
+ log.error("ClassDescriptor " + classDescriptor + " superclass already defined and different !");
+ }
return false;
}
}
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java 2009-04-29 08:06:47 UTC (rev 1364)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java 2009-04-29 15:41:14 UTC (rev 1365)
@@ -1,4 +1,3 @@
-
package org.nuiton.guix.compiler;
import org.nuiton.guix.GuixLauncher;
@@ -7,7 +6,8 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import org.apache.log4j.Logger;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.nuiton.guix.model.AttributeDescriptor;
import org.nuiton.guix.model.ClassDescriptor;
import org.nuiton.guix.model.GuixModelObject;
@@ -26,14 +26,15 @@
*/
public class GuixCompiler {
+ /** log */
+ protected static final Log log = LogFactory.getLog(GuixCompiler.class);
/** Flag to detec if an error occurs while compiling guix file */
protected boolean failed;
/** Directory containing the guix files */
private File baseDir;
/** Guix file to compile */
private File src;
- /** Name of the class to produce */
- private String outputClassName;
+ private String srcPackage;
/** GuixLauncher instance which launched this compiler */
private GuixLauncher launcher;
private StyleHandler styleHandler = new StyleHandler();
@@ -49,18 +50,20 @@
/**
* Creates a new GuixCompiler.
*
- * @param baseDir classpath location
- * @param src location of file to compile
- * @param outputClassName the out file name
- * @param launcher the launcher of the compiler
+ * @param src location of file to compile
+ * @param launcher the launcher of the compiler
*/
- public GuixCompiler(File baseDir, File src, String outputClassName,
- GuixLauncher launcher) {
- this.baseDir = baseDir;
+ public GuixCompiler(File src, GuixLauncher launcher, String srcPackage) {
this.src = src;
- this.outputClassName = outputClassName;
this.launcher = launcher;
- lastModification = src.lastModified();
+ if(srcPackage != null)
+ this.srcPackage = srcPackage;
+ else
+ this.srcPackage = "";
+ if (src != null) {
+ baseDir = src.getParentFile();
+ lastModification = src.lastModified();
+ }
}
/**
@@ -69,73 +72,81 @@
* @return the root of the model
*/
public GuixModelObject compile() {
- try {
- //Creation of the Xml parser
- XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
- factory.setNamespaceAware(true);
- XmlPullParser xpp = factory.newPullParser();
- xpp.setInput(new FileReader(src));
- //Start parsing
- if (xpp.getEventType() == XmlPullParser.START_DOCUMENT) {
- //javaDoc of the class to create
- StringBuffer doc = new StringBuffer();
- do {
- xpp.nextToken();
- if (xpp.getEventType() == XmlPullParser.COMMENT) {
- doc.append(xpp.getText());
+ if (src != null && launcher != null) {
+ try {
+ //Creation of the Xml parser
+ XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
+ factory.setNamespaceAware(true);
+ XmlPullParser xpp = factory.newPullParser();
+ xpp.setInput(new FileReader(src));
+ //Start parsing
+ if (xpp.getEventType() == XmlPullParser.START_DOCUMENT) {
+ //javaDoc of the class to create
+ StringBuffer doc = new StringBuffer();
+ do {
+ xpp.nextToken();
+ if (xpp.getEventType() == XmlPullParser.COMMENT) {
+ doc.append(xpp.getText());
+ }
+ } while (xpp.getEventType() != XmlPullParser.START_TAG);
+ //resolve the package of teh superclass
+ String tagNameSpace = xpp.getNamespace();
+ String tagName;
+ if (xpp.getName().lastIndexOf('.') >= 0) {
+ tagName = xpp.getName().substring(xpp.getName().lastIndexOf('.') + 1);
+ } else {
+ tagName = xpp.getName();
}
- } while (xpp.getEventType() != XmlPullParser.START_TAG);
- //resolve the package of teh superclass
- String tagNameSpace = xpp.getNamespace();
- String tagName = xpp.getName();
- String tagPackageName = resolvePackageName(tagNameSpace, tagName);
- //creation of the root GuixModelObject
- rootMO = new GuixModelObject(xpp.getAttributeValue("", "id"), doc.toString(), xpp.getAttributeValue("", "styleClass"));
- //the class name is the name of the file minus the extension
- String className = src.getName().substring(0, src.getName().lastIndexOf('.'));
- String classPackageName = src.getPath().replace('/', '.').substring(src.getPath().lastIndexOf("src/main/java/") + 14, src.getPath().lastIndexOf('/'));
- rootMO.setClassDescriptor(new ClassDescriptor(className, classPackageName));
- rootMO.getClassDescriptor().setSuperClass(new ClassDescriptor(tagName, tagPackageName));
- rootMO.setAttributeDescriptors(getAttributes(xpp));
- rootMO.setChildren(new ArrayList<GuixModelObject>());
+ String tagPackageName = resolvePackageName(tagNameSpace, xpp.getName());
+ //creation of the root GuixModelObject
+ rootMO = new GuixModelObject(xpp.getAttributeValue("", "id"), doc.toString(), xpp.getAttributeValue("", "styleClass"));
+ //the class name is the name of the file minus the extension
+ String className = src.getName().substring(0, src.getName().lastIndexOf('.'));
+ rootMO.setClassDescriptor(new ClassDescriptor(className, srcPackage));
+ rootMO.getClassDescriptor().setSuperClass(new ClassDescriptor(tagName, tagPackageName));
+ rootMO.setAttributeDescriptors(getAttributes(xpp));
+ rootMO.setChildren(new ArrayList<GuixModelObject>());
- //add the stylesheet of the CSS file with the same name as the Guix file
- File styleFile = new File(baseDir, className + ".css");
- if(styleFile.exists()) {
- StyleSheet ss = styleHandler.autoDetectStyleFile(styleFile);
- rootMO.getStyleSheets().add(ss);
- lastModification = Math.max(lastModification,styleFile.lastModified());
- }
+ //add the stylesheet of the CSS file with the same name as the Guix file
+ File styleFile = new File(src.getParentFile(), className + ".css");
+ if (styleFile.exists()) {
+ StyleSheet ss = styleHandler.autoDetectStyleFile(styleFile);
+ rootMO.getStyleSheets().add(ss);
+ lastModification = Math.max(lastModification, styleFile.lastModified());
+ }
- StringBuffer script = new StringBuffer();
- //add the script in the .script file with the same name as the Guix file
- File scriptFile = new File(baseDir, className + ".script");
- if(scriptFile.exists()) {
- script.append(scriptHandler.loadScriptFile(scriptFile));
- lastModification = Math.max(lastModification, scriptFile.lastModified());
- }
+ StringBuffer script = new StringBuffer();
+ //add the script in the .script file with the same name as the Guix file
+ File scriptFile = new File(src.getParentFile(), className + ".script");
+ if (scriptFile.exists()) {
+ script.append(scriptHandler.loadScriptFile(scriptFile));
+ lastModification = Math.max(lastModification, scriptFile.lastModified());
+ }
- //reach the next START_TAG
- do {
- xpp.nextToken();
- } while (xpp.getEventType() != XmlPullParser.START_TAG && xpp.getEventType() != XmlPullParser.END_DOCUMENT);
- //if not eof
- if (xpp.getEventType() == XmlPullParser.START_TAG) {
- //compile the rest of the file
- script.append(compile(xpp, rootMO, doc.toString()));
+ //reach the next START_TAG
+ do {
+ xpp.nextToken();
+ } while (xpp.getEventType() != XmlPullParser.START_TAG && xpp.getEventType() != XmlPullParser.END_DOCUMENT);
+ //if not eof
+ if (xpp.getEventType() == XmlPullParser.START_TAG) {
+ //compile the rest of the file
+ script.append(compile(xpp, rootMO, doc.toString()));
+ }
+ //all the script tags have been recorded
+ rootMO.getClassDescriptor().setScript(script.toString());
+ //register the root ClassDescriptor
+ failed = !launcher.registerClassDescriptor(rootMO.getClassDescriptor());
+ return rootMO;
}
- //all the script tags have been recorded
- rootMO.getClassDescriptor().setScript(script.toString());
- //register the root ClassDescriptor
- failed = !launcher.registerClassDescriptor(rootMO.getClassDescriptor());
- return rootMO;
+ } catch (XmlPullParserException ex) {
+ if(log.isErrorEnabled())
+ log.error(ex);
+ } catch (IOException ex) {
+ if(log.isErrorEnabled())
+ log.error(ex);
}
- failed = true;
- } catch (XmlPullParserException ex) {
- Logger.getLogger(GuixCompiler.class.getName()).error(ex);
- } catch (IOException ex) {
- Logger.getLogger(GuixCompiler.class.getName()).error(ex);
}
+ failed = true;
return null;
}
@@ -149,7 +160,7 @@
* @param javaDoc the comments above the tag, to add to its javaDoc
* @return the scripts already discovered while parsing the file
*/
- private StringBuffer compile(final XmlPullParser xpp, GuixModelObject previousMO,
+ protected StringBuffer compile(final XmlPullParser xpp, GuixModelObject previousMO,
String javaDoc) {
StringBuffer result = new StringBuffer();
@@ -168,15 +179,16 @@
}
//creates a new stylesheet
StyleSheet ss = styleHandler.compileStyle(xpp, styleFile);
- if(ss != null)
+ if (ss != null) {
rootMO.getStyleSheets().add(ss);
- if (styleFile != null && styleFile.exists())
+ }
+ if (styleFile != null && styleFile.exists()) {
lastModification = Math.max(lastModification, styleFile.lastModified());
-
+ }
+
//the parent is still the same
prev = previousMO;
- }
- //if the tag is a script tag
+ } //if the tag is a script tag
else if (xpp.getName() != null && xpp.getName().equals("script")) {
File scriptFile = null;
//the name of the file to load
@@ -187,26 +199,23 @@
}
//add the script to the result
result.append(scriptHandler.compileScript(xpp, scriptFile));
- if (scriptFile != null && scriptFile.exists()) {
+ if (scriptFile != null && scriptFile.exists()) {
lastModification = Math.max(lastModification, scriptFile.lastModified());
}
//the parent is still the same
prev = previousMO;
- }
- //if the tag is a class tag
+ } //if the tag is a class tag
else {
String tagNameSpace = xpp.getNamespace();
String tagPackageName = resolvePackageName(tagNameSpace, xpp.getName());
String tagName;
//if the name of the tag is the fully-qualified class name
- if(xpp.getName().lastIndexOf('.') >= 0) {
+ if (xpp.getName().lastIndexOf('.') >= 0) {
tagName = xpp.getName().substring(xpp.getName().lastIndexOf('.') + 1);
- }
- else {
+ } else {
tagName = xpp.getName();
}
- tagNameSpace = tagPackageName + ".*";
//create the GuixModelObject representing the tag
GuixModelObject mo = new GuixModelObject(xpp.getAttributeValue("", "id"),
javaDoc, xpp.getAttributeValue("", "styleClass"));
@@ -218,7 +227,6 @@
//register the ClassDescriptor
failed = !launcher.registerClassDescriptor(mo.getClassDescriptor());
-
if (!failed) {
//parse the children of the tag
prev = mo;
@@ -231,21 +239,23 @@
//add the comment to the doc of the next tag
doc.append(xpp.getText());
}
- } while (xpp.getEventType() != XmlPullParser.START_TAG
- && xpp.getEventType() != XmlPullParser.END_DOCUMENT);
+ } while (xpp.getEventType() != XmlPullParser.START_TAG && xpp.getEventType() != XmlPullParser.END_DOCUMENT);
+ } else {
+ return null;
}
- else
- return null;
}
+
//if not eof
if (xpp.getEventType() == XmlPullParser.START_TAG) {
//compile the rest of the document
result.append(compile(xpp, prev, doc.toString()));
}
} catch (XmlPullParserException ex) {
- Logger.getLogger(GuixCompiler.class.getName()).error(ex);
+ if(log.isErrorEnabled())
+ log.error(ex);
} catch (IOException ex) {
- Logger.getLogger(GuixCompiler.class.getName()).error(ex);
+ if(log.isErrorEnabled())
+ log.error(ex);
}
return result;
}
@@ -265,16 +275,15 @@
packageName = tagNameSpace.substring(0, tagNameSpace.length() - 2);
}
//if the name of the tag is the fully qualified class name
- if(tagName.lastIndexOf('.') >= 0) {
- if(packageName == null) {
+ if (tagName.lastIndexOf('.') >= 0) {
+ if (packageName == null) {
packageName = tagName.substring(0, tagName.lastIndexOf('.'));
- }
- else {
+ } else {
packageName += tagName.substring(0, tagName.lastIndexOf('.'));
}
}
//if nor the namespace nor the fully qualified class name is defined
- if(packageName == null) {
+ if (packageName == null) {
String fullClassName = TagManager.resolveClassName(tagName);
packageName = (fullClassName == null) ? null : fullClassName.substring(0, fullClassName.lastIndexOf('.'));
}
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/AttributeDescriptor.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/AttributeDescriptor.java 2009-04-29 08:06:47 UTC (rev 1364)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/AttributeDescriptor.java 2009-04-29 15:41:14 UTC (rev 1365)
@@ -38,5 +38,9 @@
public void setValue(String value) {
this.value = value;
}
+
+ public String toString() {
+ return name + " : " + value;
+ }
}
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/ClassDescriptor.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/ClassDescriptor.java 2009-04-29 08:06:47 UTC (rev 1364)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/ClassDescriptor.java 2009-04-29 15:41:14 UTC (rev 1365)
@@ -60,4 +60,8 @@
public void setSuperClass(ClassDescriptor superClass) {
this.superClass = superClass;
}
+
+ public String toString() {
+ return (packageName != null) ? packageName + "." + name : name;
+ }
}
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java 2009-04-29 08:06:47 UTC (rev 1364)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java 2009-04-29 15:41:14 UTC (rev 1365)
@@ -11,7 +11,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.log4j.Logger;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.nuiton.guix.css.CSSParser;
import org.nuiton.guix.css.CSSParserConstants;
import org.nuiton.guix.css.CSSParserTreeConstants;
@@ -30,6 +31,8 @@
*/
public class StyleHandler {
+ /** log */
+ protected static final Log log = LogFactory.getLog(TagManager.class);
/** List of the selectors */
private List<Selector> selectors = new ArrayList<Selector>();
@@ -92,8 +95,8 @@
do {
switch (xpp.getEventType()) {
case XmlPullParser.START_TAG:
- Logger.getLogger(StyleHandler.class)
- .warn("<style> tag may not contain child elements: " + xpp.getName());
+ if(log.isWarnEnabled())
+ log.warn("<style> tag may not contain child elements: " + xpp.getName());
break;
case XmlPullParser.TEXT:
break;// fall through
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/TagManager.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/TagManager.java 2009-04-29 08:06:47 UTC (rev 1364)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/TagManager.java 2009-04-29 15:41:14 UTC (rev 1365)
@@ -1,19 +1,11 @@
package org.nuiton.guix.tags;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import java.io.IOException;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Set;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
/**
* Manages tags of the .guix files.
@@ -21,7 +13,6 @@
public class TagManager {
/** log */
protected static final Log log = LogFactory.getLog(TagManager.class);
-
/**
* Namespace for Guix's non-class tags, such as <Button;>. The namespace normally does not
* need to be specified but can be used to resolve ambiguities.
@@ -35,7 +26,7 @@
private static Map<String, Boolean> classExistenceCache = new HashMap<String, Boolean>();
/** List of the Guix classes such as <Button;> */
- private static List<String> guixClasses = new ArrayList<String>();
+ protected static List<String> guixClasses = new ArrayList<String>();
private TagManager() { /* not instantiable */ }
@@ -249,7 +240,6 @@
return resolveClassName(name.substring(0, name.length() - 2)) + "[]";
if (name.indexOf("<") != -1)
name = name.substring(0, name.indexOf("<")); // strip off generic types
-
name = name.intern();
if (name.equals("boolean") || name.equals("byte") || name.equals("short") || name.equals("int") ||
name.equals("long") || name.equals("float") || name.equals("double") || name.equals("char"))
@@ -258,6 +248,10 @@
if (guixClasses.contains(name)) {
return GUIX_NAMESPACE.substring(0, GUIX_NAMESPACE.lastIndexOf('*')) + name;
}
+ //if the name of the tag is the fully qualified class name
+ if(name.lastIndexOf('.') >= 0) {
+ return name;
+ }
return null;
}
Added: guix/trunk/guix-compiler/src/main/resources/log4j.properties
===================================================================
--- guix/trunk/guix-compiler/src/main/resources/log4j.properties (rev 0)
+++ guix/trunk/guix-compiler/src/main/resources/log4j.properties 2009-04-29 15:41:14 UTC (rev 1365)
@@ -0,0 +1,9 @@
+# Global logging configuration
+log4j.rootLogger=INFO, stdout
+# Console output...
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%5p [%F : %M] %m%n
+
+#log4j.logger.org.codelutin.i18n=ERROR
+log4j.logger.org.nuiton.guix=DEBUG
Added: guix/trunk/guix-compiler/src/test/java/org/nuiton/guix/GuixLauncherTest.java
===================================================================
--- guix/trunk/guix-compiler/src/test/java/org/nuiton/guix/GuixLauncherTest.java (rev 0)
+++ guix/trunk/guix-compiler/src/test/java/org/nuiton/guix/GuixLauncherTest.java 2009-04-29 15:41:14 UTC (rev 1365)
@@ -0,0 +1,77 @@
+package org.nuiton.guix;
+
+import java.io.File;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import org.junit.Test;
+import org.nuiton.guix.model.ClassDescriptor;
+
+/**
+ * Tests the methods of the GuixLauncher class
+ *
+ * @author morin
+ */
+public class GuixLauncherTest {
+
+ /**
+ * Tests the method compile
+ */
+ @Test
+ public void compileTest() {
+ GuixInitializer.initialize();
+
+ GuixLauncher gl = new GuixLauncher(null,null,null,null);
+ assertTrue(gl.files == null || gl.classNames.length == gl.files.length);
+ assertTrue(gl.compile());
+ assertTrue(gl.files == null || gl.rootModelObjects.size() == gl.files.length);
+
+ File f = new File("src/test/test.guix");
+ File f2 = new File(f.getAbsolutePath());
+ File dir = new File("target/test");
+ File dir2 = new File(dir.getAbsolutePath());
+ gl = new GuixLauncher(new File[]{f2},dir2,"org.nuiton.guix",f2.getParentFile());
+ assertTrue(gl.files == null || gl.classNames.length == gl.files.length);
+ assertTrue(gl.compile());
+ }
+
+ /**
+ * Tests the method registerClassDescriptor
+ */
+ @Test
+ public void registerClassDescriptorTest() {
+ GuixLauncher gl = new GuixLauncher(null,null,null,null);
+ assertFalse(gl.registerClassDescriptor(null));
+ assertFalse(gl.registerClassDescriptor(new ClassDescriptor(null, null)));
+
+ ClassDescriptor cd = new ClassDescriptor("name", "package");
+ assertTrue(gl.registerClassDescriptor(cd));
+ cd.setSuperClass(new ClassDescriptor("super", "package"));
+ assertTrue(gl.registerClassDescriptor(cd)
+ && gl.classDescriptors.get(0).getSuperClass() != null);
+ assertTrue(gl.registerClassDescriptor(cd)
+ && gl.classDescriptors.size() == 1);
+
+ ClassDescriptor cd2 = new ClassDescriptor("name", "package");
+ cd2.setSuperClass(new ClassDescriptor("super2", "package"));
+ assertFalse(gl.registerClassDescriptor(cd2));
+
+ ClassDescriptor cd3 = new ClassDescriptor("name", "package");
+ cd3.setScript("script");
+ assertTrue(gl.registerClassDescriptor(cd3)
+ && gl.classDescriptors.size() == 1);
+
+ ClassDescriptor cd4 = new ClassDescriptor("name", "package");
+ cd4.setScript("script2");
+ assertFalse(gl.registerClassDescriptor(cd4));
+
+ assertTrue(gl.registerClassDescriptor(new ClassDescriptor("name", null))
+ && gl.classDescriptors.size() == 1);
+ assertTrue(gl.registerClassDescriptor(new ClassDescriptor("test", null))
+ && gl.classDescriptors.size() == 2);
+ assertTrue(gl.registerClassDescriptor(new ClassDescriptor("test", null))
+ && gl.classDescriptors.size() == 2);
+ }
+}
+
Added: guix/trunk/guix-compiler/src/test/java/org/nuiton/guix/compiler/GuixCompilerTest.java
===================================================================
--- guix/trunk/guix-compiler/src/test/java/org/nuiton/guix/compiler/GuixCompilerTest.java (rev 0)
+++ guix/trunk/guix-compiler/src/test/java/org/nuiton/guix/compiler/GuixCompilerTest.java 2009-04-29 15:41:14 UTC (rev 1365)
@@ -0,0 +1,38 @@
+package org.nuiton.guix.compiler;
+
+import java.io.File;
+import org.junit.Test;
+import org.nuiton.guix.GuixLauncher;
+import static org.junit.Assert.*;
+
+/**
+ * Tests the GuixCompiler class
+ *
+ * @author morin
+ */
+public class GuixCompilerTest {
+
+ @Test
+ public void compileTest() {
+ File f = new File("src/test/test.guix");
+ File f2 = new File(f.getAbsolutePath());
+ GuixLauncher gl = new GuixLauncher(new File[]{f2}, null,
+ "org.nuiton.guix",f2.getParentFile());
+
+ GuixCompiler gc = new GuixCompiler(null, null,null);
+ assertNull(gc.compile());
+
+ gc = new GuixCompiler(null, gl, null);
+ assertNull(gc.compile());
+
+ gc = new GuixCompiler(f, null, null);
+ assertNull(gc.compile());
+
+ gc = new GuixCompiler(f2, gl, null);
+ assertNotNull(gc.compile());
+
+ gc = new GuixCompiler(f2, gl, "test.compiler");
+ assertNotNull(gc.compile());
+ }
+
+}
Added: guix/trunk/guix-compiler/src/test/java/org/nuiton/guix/tags/TagManagerTest.java
===================================================================
--- guix/trunk/guix-compiler/src/test/java/org/nuiton/guix/tags/TagManagerTest.java (rev 0)
+++ guix/trunk/guix-compiler/src/test/java/org/nuiton/guix/tags/TagManagerTest.java 2009-04-29 15:41:14 UTC (rev 1365)
@@ -0,0 +1,34 @@
+package org.nuiton.guix.tags;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import org.junit.Test;
+
+/**
+ * Tests the methods of the TagManager class
+ *
+ * @author morin
+ */
+public class TagManagerTest {
+
+ /**
+ * Tests the method resolveClassName
+ */
+ @Test
+ public void resolveClassNameTest() {
+ assertTrue(TagManager.resolveClassName("test.test.test[]").equals("test.test.test[]"));
+ assertNull(TagManager.resolveClassName("test"));
+ assertNotNull(TagManager.resolveClassName("boolean"));
+ assertNotNull(TagManager.resolveClassName("byte"));
+ assertNotNull(TagManager.resolveClassName("short"));
+ assertNotNull(TagManager.resolveClassName("int"));
+ assertNotNull(TagManager.resolveClassName("long"));
+ assertNotNull(TagManager.resolveClassName("float"));
+ assertNotNull(TagManager.resolveClassName("double"));
+ assertNotNull(TagManager.resolveClassName("char"));
+ for(String clazz : TagManager.guixClasses) {
+ assertNotNull(TagManager.resolveClassName(clazz));
+ }
+ }
+}
Added: guix/trunk/guix-compiler/src/test/test.guix
===================================================================
--- guix/trunk/guix-compiler/src/test/test.guix (rev 0)
+++ guix/trunk/guix-compiler/src/test/test.guix 2009-04-29 15:41:14 UTC (rev 1365)
@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<org.nuiton.guix.Test>
+ <Panel />
+</org.nuiton.guix.Test>
1
0
April 29, 2009
Author: tchemit
Date: 2009-04-29 08:06:47 +0000 (Wed, 29 Apr 2009)
New Revision: 1364
Modified:
guix/trunk/guix-maven-plugin/pom.xml
Log:
les versions de dependances doivent etre gerees via le dependenciesManagment et non directement dans les dependances
Modified: guix/trunk/guix-maven-plugin/pom.xml
===================================================================
--- guix/trunk/guix-maven-plugin/pom.xml 2009-04-29 08:05:44 UTC (rev 1363)
+++ guix/trunk/guix-maven-plugin/pom.xml 2009-04-29 08:06:47 UTC (rev 1364)
@@ -77,7 +77,6 @@
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
- <version>2.1</version>
</dependency>
</dependencies>
@@ -127,8 +126,8 @@
<!-- ************************************************************* -->
<scm>
<connection>${maven.scm.connection.child}</connection>
- <!--developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url-->
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
1
0
Author: tchemit
Date: 2009-04-29 08:05:44 +0000 (Wed, 29 Apr 2009)
New Revision: 1363
Modified:
guix/trunk/pom.xml
Log:
quelques modifs sur le pom :
- pas de dependence direct dans super-pom
- utilisation doxia plutot que jrst-plugin
- bump versions
Modified: guix/trunk/pom.xml
===================================================================
--- guix/trunk/pom.xml 2009-04-27 16:13:24 UTC (rev 1362)
+++ guix/trunk/pom.xml 2009-04-29 08:05:44 UTC (rev 1363)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>lutinproject</artifactId>
- <version>3.4</version>
+ <version>3.5.3</version>
</parent>
<groupId>org.nuiton.guix</groupId>
@@ -21,14 +21,14 @@
<module>guix-compiler</module>
<module>guix-maven-plugin</module>
<module>guix-test</module>
- </modules>
+ </modules>
- <dependencies>
+ <!--dependencies>
<dependency>
<groupId>org.codelutin</groupId>
<artifactId>lutinutil</artifactId>
</dependency>
- </dependencies>
+ </dependencies-->
<dependencyManagement>
<dependencies>
@@ -83,14 +83,14 @@
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
- <version>2.0.4</version>
+ <version>${maven.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
- <version>2.0.4</version>
+ <version>${maven.version}</version>
<scope>compile</scope>
</dependency>
@@ -137,10 +137,11 @@
<labs.project>buix</labs.project>
<!-- libs version -->
- <lutinutil.version>1.0.3</lutinutil.version>
+ <lutinutil.version>1.0.4</lutinutil.version>
<guix.version>${project.version}</guix.version>
- <i18n.version>0.10</i18n.version>
- <lutinpluginutil.version>0.3</lutinpluginutil.version>
+ <i18n.version>0.11</i18n.version>
+ <lutinpluginutil.version>0.4</lutinpluginutil.version>
+ <maven.version>2.0.10</maven.version>
</properties>
<build>
@@ -160,38 +161,25 @@
<version>2.4.3</version>
</plugin>
+ <plugin>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <locales>fr</locales>
+ <siteDirectory>src/site</siteDirectory>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.codelutin</groupId>
+ <artifactId>doxia-module-jrst</artifactId>
+ <version>1.0.0</version>
+ </dependency>
+ </dependencies>
+ </plugin>
</plugins>
</pluginManagement>
<plugins>
- <!--plugin>
- <groupId>org.codelutin.guix</groupId>
- <artifactId>guix-maven-plugin</artifactId>
- <version>${project.version}</version>
- </plugin-->
-
- <!-- Always process jrst files, but only called on pre-site phase -->
- <plugin>
- <groupId>org.codelutin</groupId>
- <artifactId>maven-jrst-plugin</artifactId>
- <version>0.8.4</version>
- <configuration>
- <directoryIn>${maven.src.dir}/site</directoryIn>
- <directoryOut>${maven.site.gen.dir}</directoryOut>
- <defaultLocale>fr</defaultLocale>
- <inputEncoding>${project.build.sourceEncoding}</inputEncoding>
- <outputEncoding>${project.build.sourceEncoding}</outputEncoding>
- </configuration>
- <executions>
- <execution>
- <phase>pre-site</phase>
- <goals>
- <goal>jrst</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
</plugins>
</build>
1
0
r1362 - guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags
by kmorin@users.labs.libre-entreprise.org April 27, 2009
by kmorin@users.labs.libre-entreprise.org April 27, 2009
April 27, 2009
Author: kmorin
Date: 2009-04-27 16:13:24 +0000 (Mon, 27 Apr 2009)
New Revision: 1362
Modified:
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java
Log:
javadoc
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java 2009-04-27 16:08:18 UTC (rev 1361)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java 2009-04-27 16:13:24 UTC (rev 1362)
@@ -185,7 +185,6 @@
Selector selector = processSelector(selectorNode);
ruleSelectors.add(selector);
//records the selector if it has not been recorded yet
- //to add each selector only once in the StyleSheet
if (!selectorRecorded(selector)) {
selectors.add(selector);
}
@@ -246,9 +245,10 @@
}
/**
- *
- * @param newSelector
- * @return
+ * Checks if a new Selector has already been recorded or not
+ * We chack it to add each selector only once in the StyleSheet
+ * @param newSelector the Selector to check
+ * @return true if the Selector has already been recorded
*/
private boolean selectorRecorded(Selector newSelector) {
for (Selector selector : selectors) {
1
0
r1361 - in guix/trunk/guix-test: . src/main/java/org/nuiton/guix/demo
by kmorin@users.labs.libre-entreprise.org April 27, 2009
by kmorin@users.labs.libre-entreprise.org April 27, 2009
April 27, 2009
Author: kmorin
Date: 2009-04-27 16:08:18 +0000 (Mon, 27 Apr 2009)
New Revision: 1361
Added:
guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/JButton.css
Modified:
guix/trunk/guix-test/pom.xml
guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.css
guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.guix
Log:
- Config des dossiers des fichiers Guix et du dossier de destination dans le pom.xml
Modified: guix/trunk/guix-test/pom.xml
===================================================================
--- guix/trunk/guix-test/pom.xml 2009-04-27 16:07:40 UTC (rev 1360)
+++ guix/trunk/guix-test/pom.xml 2009-04-27 16:08:18 UTC (rev 1361)
@@ -43,6 +43,9 @@
<groupId>org.nuiton.guix</groupId>
<artifactId>guix-maven-plugin</artifactId>
<version>${project.version}</version>
+ <configuration>
+ <guixFilesDir>/home/morin/NetBeansProjects/guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/</guixFilesDir>
+ </configuration>
<executions>
<execution>
<phase>compile</phase>
Modified: guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.css
===================================================================
--- guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.css 2009-04-27 16:07:40 UTC (rev 1360)
+++ guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.css 2009-04-27 16:08:18 UTC (rev 1361)
@@ -1,10 +1,5 @@
-#display:{
- object . getText( ) . startsWith( "-" )
-}
-
+#display:{object . getText( ) . startsWith( "-" )}
{
-foreground: red
-
-;
+ foreground: red;
}
Modified: guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.guix
===================================================================
--- guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.guix 2009-04-27 16:07:40 UTC (rev 1360)
+++ guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.guix 2009-04-27 16:08:18 UTC (rev 1361)
@@ -116,9 +116,9 @@
</swing:JTree>
</swing:JScrollPane>
<java.awt.CardLayout id='cardLayout'/>
-
+<script source="scriptFile.script" />
<Panel id='preview' layout='{cardLayout}'>
- <jaxx.EmptyDemo id='emptyDemo' constraints='emptyDemo.getLabel()'/>
+ <EmptyDemo id='emptyDemo' constraints='emptyDemo.getLabel()'/>
<JButtonDemo id='buttonDemo' constraints='buttonDemo.getLabel()'/>
<JCheckBoxDemo id='checkBoxDemo' constraints='checkBoxDemo.getLabel()'/>
<JCheckBoxMenuItemDemo id='checkBoxMenuItemDemo' constraints='checkBoxMenuItemDemo.getLabel()'/>
Added: guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/JButton.css
===================================================================
--- guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/JButton.css (rev 0)
+++ guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/JButton.css 2009-04-27 16:08:18 UTC (rev 1361)
@@ -0,0 +1,30 @@
+JButton {
+ font-size: 18;
+ width: 80;
+ height: 35;
+}
+
+JButton.digit {
+ foreground: blue;
+}
+
+JButton#dot {
+ font-size: 20;
+}
+
+JButton.operator {
+ font-size: 16;
+ foreground: #009900;
+}
+
+JButton.clear {
+ foreground: red;
+}
+
+JButton:mouseover {
+ font-weight: bold;
+}
+
+JButton.operator:mouseover {
+ font-weight: normal;
+}
1
0
r1360 - in guix/trunk/guix-maven-plugin/src/main: java/org/nuiton/guix resources
by kmorin@users.labs.libre-entreprise.org April 27, 2009
by kmorin@users.labs.libre-entreprise.org April 27, 2009
April 27, 2009
Author: kmorin
Date: 2009-04-27 16:07:40 +0000 (Mon, 27 Apr 2009)
New Revision: 1360
Added:
guix/trunk/guix-maven-plugin/src/main/resources/log4j.properties
Modified:
guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java
Log:
- Ajout de la config de log4j
- Config des dossiers des fichiers Guix et du dossier de destination dans le pom.xml
Modified: guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java
===================================================================
--- guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java 2009-04-27 16:06:15 UTC (rev 1359)
+++ guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java 2009-04-27 16:07:40 UTC (rev 1360)
@@ -1,20 +1,67 @@
package org.nuiton.guix;
+import java.io.File;
+import java.util.ArrayList;
+import org.apache.log4j.Logger;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
/**
+ * Launches the program
*
* @author morin
* @goal testMojo
*/
public class GuixMojo extends AbstractMojo
{
-
+ /**
+ * Directory of the files to compile.
+ * @parameter expression="${guixFilesDir}"
+ * @required
+ */
+ private String guixFilesDir;
+
+ /**
+ * Directory of the generated files.
+ * @parameter expression="${generatedFilesDestination}" default-value="generatedFiles"
+ */
+ private String targetDirectory;
+
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
GuixInitializer.initialize();
- GuixLauncher gcl = new GuixLauncher();
+ File guixFilesDir = new File(this.guixFilesDir);
+ File targetDirectory = new File(this.targetDirectory);
+
+ if(!targetDirectory.exists())
+ targetDirectory.mkdirs();
+
+ if(guixFilesDir.exists() && guixFilesDir.isDirectory()) {
+ ArrayList<File> guixFiles = goDeeperInto(guixFilesDir);
+
+ GuixLauncher gcl = new GuixLauncher(guixFiles.toArray(new File[guixFiles.size()]),targetDirectory);
+ boolean result = gcl.compile();
+
+ if(result)
+ Logger.getLogger(GuixMojo.class).info("Compilation succeeded !");
+ else
+ Logger.getLogger(GuixMojo.class).error("Compilation failed...");
+ }
}
+
+ private ArrayList<File> goDeeperInto(File dir) {
+ Logger.getLogger(GuixMojo.class).debug("goind deeper into " + dir.getPath());
+ ArrayList<File> result = new ArrayList<File>();
+ for(File f : dir.listFiles()) {
+ if(f.isDirectory() && !f.isHidden()) {
+ result.addAll(goDeeperInto(f));
+ }
+ else if(f.getName().endsWith(".guix")) {
+ Logger.getLogger(GuixMojo.class).debug("found " + f.getName());
+ result.add(f);
+ }
+ }
+ return result;
+ }
}
Added: guix/trunk/guix-maven-plugin/src/main/resources/log4j.properties
===================================================================
--- guix/trunk/guix-maven-plugin/src/main/resources/log4j.properties (rev 0)
+++ guix/trunk/guix-maven-plugin/src/main/resources/log4j.properties 2009-04-27 16:07:40 UTC (rev 1360)
@@ -0,0 +1,9 @@
+# Global logging configuration
+log4j.rootLogger=INFO, stdout
+# Console output...
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%5p [%F : %M] %m%n
+
+#log4j.logger.org.codelutin.i18n=ERROR
+log4j.logger.org.nuiton.guix=DEBUG
1
0
r1359 - in guix/trunk/guix-compiler/src/main/java/org/nuiton/guix: . compiler model tags
by kmorin@users.labs.libre-entreprise.org April 27, 2009
by kmorin@users.labs.libre-entreprise.org April 27, 2009
April 27, 2009
Author: kmorin
Date: 2009-04-27 16:06:15 +0000 (Mon, 27 Apr 2009)
New Revision: 1359
Modified:
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/CompilerException.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixInitializer.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/UnsupportedAttributeException.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/UnsupportedTagException.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/AttributeDescriptor.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/ClassDescriptor.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/GuixModelObject.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/Rule.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/Selector.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/StyleSheet.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/ScriptHandler.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/TagManager.java
Log:
- JavaDoc
- v?\195?\169rification de date de derniere modification avant de g?\195?\169n?\195?\169rer une classe
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/CompilerException.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/CompilerException.java 2009-04-24 15:39:17 UTC (rev 1358)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/CompilerException.java 2009-04-27 16:06:15 UTC (rev 1359)
@@ -1,12 +1,7 @@
-/*
- * Copyright 2006 Ethan Nicholas. All rights reserved.
- * Use is subject to license terms.
- */
package org.nuiton.guix;
/** Thrown by the compiler when an error occurs. */
public class CompilerException extends RuntimeException {
- private static final long serialVersionUID = -9099889519671482440L;
/** Creates a new <code>ParseException</code>. */
public CompilerException() {
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixInitializer.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixInitializer.java 2009-04-24 15:39:17 UTC (rev 1358)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixInitializer.java 2009-04-27 16:06:15 UTC (rev 1359)
@@ -1,13 +1,10 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
package org.nuiton.guix;
import org.nuiton.guix.tags.TagManager;
/**
+ * Initialize the application
*
* @author morin
*/
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java 2009-04-24 15:39:17 UTC (rev 1358)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java 2009-04-27 16:06:15 UTC (rev 1359)
@@ -1,7 +1,3 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
package org.nuiton.guix;
import java.io.IOException;
@@ -11,13 +7,13 @@
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.apache.log4j.Logger;
import org.nuiton.guix.model.ClassDescriptor;
import org.nuiton.guix.model.GuixModelObject;
import org.nuiton.guix.model.Rule;
@@ -34,8 +30,7 @@
public class GuixLauncher {
/** log */
- /* protected static final Log log =
- LogFactory.getLog(GuixLauncher.class);*/
+ Logger log = Logger.getLogger(GuixLauncher.class);
/** original list of files to compile */
protected final File[] files;
/** original list of classes to compile */
@@ -44,23 +39,30 @@
protected List<File> guixFiles = new ArrayList<File>();
/** Class names corresponding to the files in the guixFiles list. */
protected List<String> guixFileClassNames = new ArrayList<String>();
- /** Maps the names of classes being compiled to the compiler instance
+ /** Maps the root GuixModelObjects being compiled to the compiler instance
* handling the compilation. */
- protected Map<String, GuixCompiler> compilers =
- new HashMap<String, GuixCompiler>();
- /** ModelObjects which are root of files */
- protected List<GuixModelObject> rootModelObjects = new ArrayList<GuixModelObject>();
+ protected Map<GuixModelObject, GuixCompiler> rootModelObjects =
+ new HashMap<GuixModelObject, GuixCompiler>();
/** CLassDescriptor met during the compilation */
protected List<ClassDescriptor> classDescriptors =
new ArrayList<ClassDescriptor>();
private List<File> compiledFiles = new ArrayList<File>();
protected int compilerCount;
- private File targetDirectory = new File("destination");
+ private File targetDirectory;
- public GuixLauncher() {
- files = new File[]{new File("/home/morin/NetBeansProjects/guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.guix")};
- classNames = new String[]{"GuixDemo"};
- compile();
+ /**
+ * Constructor
+ *
+ * @param files the files to compile
+ */
+ public GuixLauncher(File[] files, File targetDirectory) {
+ // Set up a simple configuration that logs on the console.
+ this.files = files;
+ this.targetDirectory = targetDirectory;
+ classNames = new String[files.length];
+ for (int i = 0; i < files.length; i++) {
+ classNames[i] = files[i].getName().substring(0, files[i].getName().lastIndexOf('.'));
+ }
}
/**
@@ -70,232 +72,240 @@
* <code>false</code> otherwise
*/
public synchronized boolean compile() {
- //reset(); // just to be safe...
compilerCount = 0;
guixFiles.addAll(Arrays.asList(files));
guixFileClassNames.addAll(Arrays.asList(classNames));
+ boolean success = true;
+
try {
- boolean success = true;
+ assert guixFiles.size() == guixFileClassNames.size();
- // pass 1
- /*if (!nextStep(LifeCycle.compile_first_pass, success)) {
- return false;
- }*/
- boolean compiled;
- do {
- compiled = false;
- assert guixFiles.size() == guixFileClassNames.size();
- // clone it so it can safely be modified while we're iterating
- Iterator<File> filesIterator =
- new ArrayList<File>(guixFiles).iterator();
- Iterator<String> classNamesIterator =
- new ArrayList<String>(guixFileClassNames).iterator();
+ for (int i = 0; i < guixFiles.size(); i++) {
+ File file = guixFiles.get(i);
+ String className = guixFileClassNames.get(i);
- while (filesIterator.hasNext()) {
+ //if we have not compiled the file yet
+ if (!compiledFiles.contains(file)) {
+ log.info("Compiling class " + className);
+ compiledFiles.add(file);
- File file = filesIterator.next();
- String className = classNamesIterator.next();
- /*if (log.isDebugEnabled()) {
- log.debug("compile first pass for " + className);
- }*/
- if (!compiledFiles.contains(file)) {
- compiled = true;
- compiledFiles.add(file);
-
- File destDir = targetDirectory;
- if (destDir != null) {
- int dotPos = className.lastIndexOf(".");
- if (dotPos != -1) {
- destDir = new File(destDir, className.substring(0, dotPos).replace('.', File.separatorChar));
- }
- if (!destDir.exists() && !destDir.mkdirs()) {
- //log.warn("couldn't create directory " + destDir);
- System.out.println("couldn't create directory " + destDir);
- continue;
- }
+ File destDir = targetDirectory;
+ if (destDir != null) {
+ int dotPos = className.lastIndexOf(".");
+ if (dotPos != -1) {
+ destDir = new File(destDir, className.substring(0, dotPos).replace('.', File.separatorChar));
} else {
- //destDir = file.getParentFile();
+ destDir = new File(destDir, className);
}
- GuixCompiler compiler = new GuixCompiler(
- file.getParentFile(), file, className, this);
- //addProfileTime(compiler, currentPass.name() + "_start");
- compilers.put(className, compiler);
- GuixModelObject rootModelObject = compiler.compile();
- rootModelObjects.add(rootModelObject);
- //addProfileTime(compiler, currentPass.name() + "_end");
- //assert !symbolTables.values().contains(compiler.getSymbolTable()) : "symbolTable is already registered";
- //symbolTables.put(file, compiler.getSymbolTable());
- if (compiler.isFailed()) {
- success = false;
+ if (!destDir.exists() && !destDir.mkdirs()) {
+ log.warn("couldn't create directory " + destDir);
+ continue;
}
+ } else {
+ destDir = file.getParentFile();
}
- }
+ //compile the file
+ GuixCompiler compiler = new GuixCompiler(
+ file.getParentFile(), file, className, this);
- } while (compiled);
+ GuixModelObject rootModelObject = compiler.compile();
+ rootModelObjects.put(rootModelObject, compiler);
- XmlPullParserFactory factory =
- XmlPullParserFactory.newInstance(
- System.getProperty(XmlPullParserFactory.PROPERTY_NAME),
- null);
+ if (compiler.isFailed()) {
+ success = false;
+ }
+ } else {
+ log.warn(file.getName() + " has already been compiled.");
+ }
+ }
- for (GuixModelObject mo : rootModelObjects) {
-
- File f = new File(targetDirectory,mo.getClassDescriptor().getName() + "ModelTree.xml");
- if (!f.exists()) {
- f.createNewFile();
+ if (success) {
+ int i = 0;
+ while (success && i < classDescriptors.size()) {
+ success = (classDescriptors.get(i++).getPackageName() != null);
}
- System.out.println(f.getAbsolutePath());
+ if (!success) {
+ log.error("The class '" + classDescriptors.get(--i).getName() + "' has no package.");
+ }
+ }
+ if (success || true) {
+ XmlPullParserFactory factory =
+ XmlPullParserFactory.newInstance(
+ System.getProperty(XmlPullParserFactory.PROPERTY_NAME),
+ null);
- XmlSerializer serializer = factory.newSerializer();
- XmlSerializer cssSerializer = factory.newSerializer();
+ for (GuixModelObject mo : rootModelObjects.keySet()) {
+ File f = new File(targetDirectory, mo.getClassDescriptor().getName() + "ModelTree.xml");
+ log.info(mo.getClassDescriptor().getName() + " last modification : "
+ + new Date(rootModelObjects.get(mo).getLastModification()));
+
+ if (rootModelObjects.get(mo).getLastModification() > f.lastModified()) {
+ log.info("Generation of " + mo.getClassDescriptor().getName());
+ if (!f.exists()) {
+ f.createNewFile();
+ }
+ XmlSerializer serializer = factory.newSerializer();
+ XmlSerializer cssSerializer = factory.newSerializer();
- serializer.setOutput(new PrintWriter(f));
- serializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n");
- serializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "\t");
+ serializer.setOutput(new PrintWriter(f));
+ serializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n");
+ serializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "\t");
- cssSerializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n");
- cssSerializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "\t");
+ cssSerializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n");
+ cssSerializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "\t");
- writeModelTree(serializer, mo, cssSerializer);
+ writeModelTree(serializer, mo, cssSerializer);
- serializer.endDocument();
+ serializer.endDocument();
+ }
+ else {
+ log.warn(mo.getClassDescriptor().getName() + " has already been generated and is up to date.");
+ }
+ }
+
+ /*// pass 2
+ if (!nextStep(LifeCycle.compile_second_pass, success)) {
+ return false;
}
- /*// pass 2
- if (!nextStep(LifeCycle.compile_second_pass, success)) {
- return false;
- }
+ assert guixFiles.size() == guixFileClassNames.size();
+ List<File> jaxxFilesClone = new ArrayList<File>(guixFiles);
+ for (String className : guixFileClassNames) {
+ JAXXCompiler compiler = getCompiler(className, "Internal error: could not find compiler for " + className + " during second pass");
+ addProfileTime(compiler, currentPass.name() + "_start");
+ if (log.isDebugEnabled()) {
+ log.debug("runInitializers for " + className);
+ }
+ if (!compiler.isFailed()) {
+ compiler.runInitializers();
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("compile second pass for " + className);
+ }
+ compiler.compileSecondPass();
+ addProfileTime(compiler, currentPass.name() + "_end");
+ if (log.isDebugEnabled()) {
+ log.debug("done with result [" + !compiler.isFailed() + "] for " + className);
+ }
+ if (compiler.isFailed()) {
+ success = false;
+ }
+ }
+ if (!jaxxFilesClone.equals(guixFiles)) {
+ throw new AssertionError("Internal error: compilation set altered during pass 2 (was " + jaxxFilesClone + ", modified to " + guixFiles + ")");
+ }
- assert guixFiles.size() == guixFileClassNames.size();
- List<File> jaxxFilesClone = new ArrayList<File>(guixFiles);
- for (String className : guixFileClassNames) {
- JAXXCompiler compiler = getCompiler(className, "Internal error: could not find compiler for " + className + " during second pass");
- addProfileTime(compiler, currentPass.name() + "_start");
- if (log.isDebugEnabled()) {
- log.debug("runInitializers for " + className);
- }
- if (!compiler.isFailed()) {
- compiler.runInitializers();
- }
- if (log.isDebugEnabled()) {
- log.debug("compile second pass for " + className);
- }
- compiler.compileSecondPass();
- addProfileTime(compiler, currentPass.name() + "_end");
- if (log.isDebugEnabled()) {
- log.debug("done with result [" + !compiler.isFailed() + "] for " + className);
- }
- if (compiler.isFailed()) {
- success = false;
- }
- }
- if (!jaxxFilesClone.equals(guixFiles)) {
- throw new AssertionError("Internal error: compilation set altered during pass 2 (was " + jaxxFilesClone + ", modified to " + guixFiles + ")");
- }
+ // stylesheet application
+ if (!nextStep(LifeCycle.stylesheet_pass, success)) {
+ return false;
+ }
+ assert guixFiles.size() == guixFileClassNames.size();
+ for (String className : guixFileClassNames) {
+ JAXXCompiler compiler = getCompiler(className, "Internal error: could not find compiler for " + className + " during stylesheet application");
+ addProfileTime(compiler, currentPass.name() + "_start");
+ compiler.applyStylesheets();
+ addProfileTime(compiler, currentPass.name() + "_end");
+ if (compiler.isFailed()) {
+ success = false;
+ }
+ }
- // stylesheet application
- if (!nextStep(LifeCycle.stylesheet_pass, success)) {
- return false;
- }
- assert guixFiles.size() == guixFileClassNames.size();
- for (String className : guixFileClassNames) {
- JAXXCompiler compiler = getCompiler(className, "Internal error: could not find compiler for " + className + " during stylesheet application");
- addProfileTime(compiler, currentPass.name() + "_start");
- compiler.applyStylesheets();
- addProfileTime(compiler, currentPass.name() + "_end");
- if (compiler.isFailed()) {
- success = false;
- }
- }
+ // code generation
+ if (!nextStep(LifeCycle.generate_pass, success)) {
+ return false;
+ }
+ assert guixFiles.size() == guixFileClassNames.size();
+ List<Generator> generators = new ArrayList<Generator>();
+ for (Generator generator : ServiceLoader.load(Generator.class)) {
+ generators.add(generator);
+ }
+ for (String className : guixFileClassNames) {
+ JAXXCompiler compiler = getCompiler(className, "Internal error: could not find compiler for " + className + " during code generation");
+ addProfileTime(compiler, currentPass.name() + "_start");
+ compiler.generateCode(generators);
+ addProfileTime(compiler, currentPass.name() + "_end");
+ //compiler.generateCode();
+ if (compiler.isFailed()) {
+ success = false;
+ }
+ }
- // code generation
- if (!nextStep(LifeCycle.generate_pass, success)) {
- return false;
- }
- assert guixFiles.size() == guixFileClassNames.size();
- List<Generator> generators = new ArrayList<Generator>();
- for (Generator generator : ServiceLoader.load(Generator.class)) {
- generators.add(generator);
- }
- for (String className : guixFileClassNames) {
- JAXXCompiler compiler = getCompiler(className, "Internal error: could not find compiler for " + className + " during code generation");
- addProfileTime(compiler, currentPass.name() + "_start");
- compiler.generateCode(generators);
- addProfileTime(compiler, currentPass.name() + "_end");
- //compiler.generateCode();
- if (compiler.isFailed()) {
- success = false;
- }
- }
+ if (options.isProfile()) {
+ // profile pass (only if succes compile)
+ if (!nextStep(LifeCycle.profile_pass, success)) {
+ return false;
+ }
+ StringBuilder buffer = profiler.computeProfileReport();
+ log.info(buffer.toString());
+ }
- if (options.isProfile()) {
- // profile pass (only if succes compile)
- if (!nextStep(LifeCycle.profile_pass, success)) {
- return false;
- }
- StringBuilder buffer = profiler.computeProfileReport();
- log.info(buffer.toString());
- }
+ return report(success);
- return report(success);
-
- //FIXME : deal better the exception treatment...
- } catch (CompilerException e) {
- System.err.println(e.getMessage());
- e.printStackTrace();
- return false;*/
-
+ //FIXME : deal better the exception treatment...
+ } catch (CompilerException e) {
+ System.err.println(e.getMessage());
+ e.printStackTrace();
+ return false;*/
+ }
} catch (Throwable e) {
e.printStackTrace();
return false;
- } finally {
- compilerCount = compilers.size();
- //TC - 20081018 only reset when no error was detected
- //if (options.isResetAfterCompile() && errorCount == 0) {
- // reset();
- //}
- return false;
}
+ return success;
}
+ /**
+ * Temporary
+ * Writes the model in an Xml file
+ *
+ * @param serializer
+ * @param mo
+ * @param cssSerializer
+ * @throws java.io.IOException
+ */
private void writeModelTree(XmlSerializer serializer, GuixModelObject mo,
XmlSerializer cssSerializer) throws IOException {
- if(!mo.getStyleSheets().isEmpty()) {
+ if (!mo.getStyleSheets().isEmpty()) {
int i = 0;
- for(StyleSheet styleSheet : mo.getStyleSheets()) {
- File ss = new File(targetDirectory,mo.getClassDescriptor().getName() + i++ + "SS.xml");
+ for (StyleSheet styleSheet : mo.getStyleSheets()) {
+ File ss = new File(targetDirectory, mo.getClassDescriptor().getName() + i++ + "SS.xml");
cssSerializer.setOutput(new FileWriter(ss));
cssSerializer.startTag("", "rules");
- for(Rule rule : styleSheet.getRules()) {
+ for (Rule rule : styleSheet.getRules()) {
cssSerializer.startTag("", "rule");
cssSerializer.startTag("", "selectors");
- for(Selector selector : rule.getSelectors()) {
+ for (Selector selector : rule.getSelectors()) {
cssSerializer.startTag("", "selector");
cssSerializer.startTag("", "javaClassName");
- if(selector.getJavaClassName() != null)
+ if (selector.getJavaClassName() != null) {
cssSerializer.text(selector.getJavaClassName());
+ }
cssSerializer.endTag("", "javaClassName");
cssSerializer.startTag("", "styleClass");
- if(selector.getStyleClass() != null)
+ if (selector.getStyleClass() != null) {
cssSerializer.text(selector.getStyleClass());
+ }
cssSerializer.endTag("", "styleClass");
cssSerializer.startTag("", "pseudoClass");
- if(selector.getPseudoClass() != null)
+ if (selector.getPseudoClass() != null) {
cssSerializer.text(selector.getPseudoClass());
+ }
cssSerializer.endTag("", "pseudoClass");
cssSerializer.startTag("", "id");
- if(selector.getId() != null)
+ if (selector.getId() != null) {
cssSerializer.text(selector.getId());
+ }
cssSerializer.endTag("", "id");
cssSerializer.endTag("", "selector");
}
cssSerializer.endTag("", "selectors");
cssSerializer.startTag("", "properties");
- for(Entry entry : rule.getProperties().entrySet()) {
- cssSerializer.startTag("", (String)entry.getKey());
- if(entry.getValue() != null)
- cssSerializer.text((String)entry.getValue());
- cssSerializer.endTag("", (String)entry.getKey());
+ for (Entry entry : rule.getProperties().entrySet()) {
+ cssSerializer.startTag("", (String) entry.getKey());
+ if (entry.getValue() != null) {
+ cssSerializer.text((String) entry.getValue());
+ }
+ cssSerializer.endTag("", (String) entry.getKey());
}
cssSerializer.endTag("", "properties");
cssSerializer.endTag("", "rule");
@@ -342,6 +352,13 @@
}
+ /**
+ * Registers a ClassDescriptor
+ *
+ * @param classDescriptor the ClassDescripor to register
+ * @return false if another ClassDescriptor with the same classname
+ * and package has a different script or superclass
+ */
public boolean registerClassDescriptor(ClassDescriptor classDescriptor) {
int i = 0;
while ((i < classDescriptors.size()) && (!classDescriptors.get(i).getName().equals(classDescriptor.getName())) && ((classDescriptors.get(i).getPackageName() == null) || (classDescriptor.getPackageName() == null) || (!classDescriptors.get(i).getPackageName().equals(classDescriptor.getPackageName())))) {
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/UnsupportedAttributeException.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/UnsupportedAttributeException.java 2009-04-24 15:39:17 UTC (rev 1358)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/UnsupportedAttributeException.java 2009-04-27 16:06:15 UTC (rev 1359)
@@ -1,16 +1,9 @@
-/*
- * Copyright 2006 Ethan Nicholas. All rights reserved.
- * Use is subject to license terms.
- */
package org.nuiton.guix;
/**
- * Thrown by <code>TagHandler</code> when an unsupported attribute is encountered.
- *
- * @see jaxx.tags.TagHandler
+ * Thrown when an unsupported attribute is encountered.
*/
public class UnsupportedAttributeException extends CompilerException {
- private static final long serialVersionUID = -6919583037172920343L;
/** Creates a new <code>UnsupportedAttributeException</code>. */
public UnsupportedAttributeException() {
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/UnsupportedTagException.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/UnsupportedTagException.java 2009-04-24 15:39:17 UTC (rev 1358)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/UnsupportedTagException.java 2009-04-27 16:06:15 UTC (rev 1359)
@@ -1,12 +1,7 @@
-/*
- * Copyright 2006 Ethan Nicholas. All rights reserved.
- * Use is subject to license terms.
- */
package org.nuiton.guix;
/** Thrown by the compiler when an unregistered tag is encountered. */
public class UnsupportedTagException extends CompilerException {
- private static final long serialVersionUID = 3199732135804426699L;
/** Creates a new <code>UnsupportedTagException</code>. */
public UnsupportedTagException() {
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java 2009-04-24 15:39:17 UTC (rev 1358)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java 2009-04-27 16:06:15 UTC (rev 1359)
@@ -1,14 +1,13 @@
package org.nuiton.guix.compiler;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import org.nuiton.guix.GuixLauncher;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import org.apache.log4j.Logger;
import org.nuiton.guix.model.AttributeDescriptor;
import org.nuiton.guix.model.ClassDescriptor;
import org.nuiton.guix.model.GuixModelObject;
@@ -41,6 +40,8 @@
private ScriptHandler scriptHandler = new ScriptHandler();
/** Root of the model */
private GuixModelObject rootMO;
+ /** */
+ private long lastModification;
/*------------------------------------------------------------------------*/
/*-- Constructor methods -------------------------------------------------*/
@@ -59,6 +60,7 @@
this.src = src;
this.outputClassName = outputClassName;
this.launcher = launcher;
+ lastModification = src.lastModified();
}
/**
@@ -96,12 +98,23 @@
rootMO.getClassDescriptor().setSuperClass(new ClassDescriptor(tagName, tagPackageName));
rootMO.setAttributeDescriptors(getAttributes(xpp));
rootMO.setChildren(new ArrayList<GuixModelObject>());
+
//add the stylesheet of the CSS file with the same name as the Guix file
- StyleSheet ss = styleHandler.autoDetectStyleFile(baseDir.getPath(), outputClassName);
- rootMO.getStyleSheets().add(ss);
+ File styleFile = new File(baseDir, className + ".css");
+ if(styleFile.exists()) {
+ StyleSheet ss = styleHandler.autoDetectStyleFile(styleFile);
+ rootMO.getStyleSheets().add(ss);
+ lastModification = Math.max(lastModification,styleFile.lastModified());
+ }
+
StringBuffer script = new StringBuffer();
//add the script in the .script file with the same name as the Guix file
- script.append(scriptHandler.autoDetectScriptFile(baseDir.getPath(), outputClassName));
+ File scriptFile = new File(baseDir, className + ".script");
+ if(scriptFile.exists()) {
+ script.append(scriptHandler.loadScriptFile(scriptFile));
+ lastModification = Math.max(lastModification, scriptFile.lastModified());
+ }
+
//reach the next START_TAG
do {
xpp.nextToken();
@@ -119,9 +132,9 @@
}
failed = true;
} catch (XmlPullParserException ex) {
- Logger.getLogger(GuixCompiler.class.getName()).log(Level.SEVERE, null, ex);
+ Logger.getLogger(GuixCompiler.class.getName()).error(ex);
} catch (IOException ex) {
- Logger.getLogger(GuixCompiler.class.getName()).log(Level.SEVERE, null, ex);
+ Logger.getLogger(GuixCompiler.class.getName()).error(ex);
}
return null;
}
@@ -146,17 +159,37 @@
try {
//if the tag is a style tag
if (xpp.getName() != null && xpp.getName().equals("style")) {
+ File styleFile = null;
+ //the name of the file to load
+ String source = xpp.getAttributeValue("", "source");
+ //if the source attribute is specified
+ if (source != null) {
+ styleFile = new File(baseDir, source.replace('/', File.separatorChar));
+ }
//creates a new stylesheet
- StyleSheet ss = styleHandler.compileStyle(xpp, baseDir.getPath());
- rootMO.getStyleSheets().add(ss);
+ StyleSheet ss = styleHandler.compileStyle(xpp, styleFile);
+ if(ss != null)
+ rootMO.getStyleSheets().add(ss);
+ if (styleFile != null && styleFile.exists())
+ lastModification = Math.max(lastModification, styleFile.lastModified());
+
//the parent is still the same
-
prev = previousMO;
}
//if the tag is a script tag
else if (xpp.getName() != null && xpp.getName().equals("script")) {
+ File scriptFile = null;
+ //the name of the file to load
+ String source = xpp.getAttributeValue("", "source");
+ //if the source attribute is specified
+ if (source != null) {
+ scriptFile = new File(baseDir, source.replace('/', File.separatorChar));
+ }
//add the script to the result
- result.append(scriptHandler.compileScript(xpp, baseDir.getPath()));
+ result.append(scriptHandler.compileScript(xpp, scriptFile));
+ if (scriptFile != null && scriptFile.exists()) {
+ lastModification = Math.max(lastModification, scriptFile.lastModified());
+ }
//the parent is still the same
prev = previousMO;
}
@@ -210,9 +243,9 @@
result.append(compile(xpp, prev, doc.toString()));
}
} catch (XmlPullParserException ex) {
- Logger.getLogger(GuixCompiler.class.getName()).log(Level.SEVERE, null, ex);
+ Logger.getLogger(GuixCompiler.class.getName()).error(ex);
} catch (IOException ex) {
- Logger.getLogger(GuixCompiler.class.getName()).log(Level.SEVERE, null, ex);
+ Logger.getLogger(GuixCompiler.class.getName()).error(ex);
}
return result;
}
@@ -275,4 +308,8 @@
public boolean isFailed() {
return failed;
}
+
+ public long getLastModification() {
+ return lastModification;
+ }
}
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/AttributeDescriptor.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/AttributeDescriptor.java 2009-04-24 15:39:17 UTC (rev 1358)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/AttributeDescriptor.java 2009-04-27 16:06:15 UTC (rev 1359)
@@ -1,18 +1,23 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
package org.nuiton.guix.model;
/**
+ * Descriptor of tag attributes
*
* @author morin
*/
public class AttributeDescriptor {
+
+ /** Name of the attribute */
private String name;
+ /** Value of the attribute */
private String value;
+ /**
+ * Constructor
+ *
+ * @param name name of the attribute
+ * @param value value of the attribute
+ */
public AttributeDescriptor(String name, String value) {
this.name = name;
this.value = value;
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/ClassDescriptor.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/ClassDescriptor.java 2009-04-24 15:39:17 UTC (rev 1358)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/ClassDescriptor.java 2009-04-27 16:06:15 UTC (rev 1359)
@@ -1,21 +1,29 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
package org.nuiton.guix.model;
/**
+ * Descriptor of a class found in the guix files.
*
* @author morin
*/
public class ClassDescriptor {
+ /** Name of the class */
private String name;
+ /** Package of the class (must ends with '.*')*/
private String packageName;
+ /** Script declared in the guix file.
+ * Available only for the root GuixModelObject class.*/
private String script;
- private ClassDescriptor superClass;
+ /** Superclass of the class
+ * Available only for the root GuixModelObject class.*/
+ private ClassDescriptor superClass;
+ /**
+ * Constructor
+ *
+ * @param name name of the class
+ * @param packageName name of the package
+ */
public ClassDescriptor(String name, String packageName){
this.name = name;
this.packageName = packageName;
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/GuixModelObject.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/GuixModelObject.java 2009-04-24 15:39:17 UTC (rev 1358)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/GuixModelObject.java 2009-04-27 16:06:15 UTC (rev 1359)
@@ -1,4 +1,3 @@
-
package org.nuiton.guix.model;
import java.util.ArrayList;
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/Rule.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/Rule.java 2009-04-24 15:39:17 UTC (rev 1358)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/Rule.java 2009-04-27 16:06:15 UTC (rev 1359)
@@ -1,8 +1,3 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
package org.nuiton.guix.model;
import java.util.ArrayList;
@@ -11,12 +6,16 @@
import java.util.List;
/**
+ * Representation of a rule of a CSS file
*
* @author morin
*/
public class Rule {
+ /** Properties of the rule :
+ * Maps the name of the property to its value.*/
private Map<String,String> properties = new HashMap<String,String>();
+ /** Selectors which the rule is applied to */
private List<Selector> selectors = new ArrayList<Selector>();
public Map<String, String> getProperties() {
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/Selector.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/Selector.java 2009-04-24 15:39:17 UTC (rev 1358)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/Selector.java 2009-04-27 16:06:15 UTC (rev 1359)
@@ -1,14 +1,10 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
package org.nuiton.guix.model;
import java.util.ArrayList;
import java.util.List;
/**
+ * Represents a selector of a CSS file
*
* @author morin
*/
@@ -19,12 +15,29 @@
public static final int ALWAYS_APPLIES_INHERIT_ONLY = 3;
public static final int ALWAYS_APPLIES = 4;
+ /** Class which rules are applied to
+ * e.g. Label */
private String javaClassName;
+ /** Styleclass which rules are applied to
+ * e.g. .bold */
private String styleClass;
+ /** Pseudoclass which rules are applied to
+ * e.g. :hover */
private String pseudoClass;
+ /** Id of the object which rules are applied to
+ * e.g. #label5 */
private String id;
+ /** List of the rules applied to the selector */
private List<Rule> rules = new ArrayList<Rule>();
+ /**
+ * Constructor
+ *
+ * @param javaClassName class which rules are applied to
+ * @param styleClass styleclass which rules are applied to
+ * @param pseudoClass pseudoclass which rules are applied to
+ * @param id id of the object which rules are applied to
+ */
public Selector(String javaClassName, String styleClass, String pseudoClass, String id) {
this.javaClassName = javaClassName;
this.styleClass = styleClass;
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/StyleSheet.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/StyleSheet.java 2009-04-24 15:39:17 UTC (rev 1358)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/StyleSheet.java 2009-04-27 16:06:15 UTC (rev 1359)
@@ -1,7 +1,3 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
package org.nuiton.guix.model;
@@ -9,12 +5,16 @@
import java.util.List;
/**
+ * Represantation of a stylesheet file
*
* @author morin
*/
public class StyleSheet {
+ /** Rules of the stylesheet */
private List<Rule> rules = new ArrayList<Rule>();
+
+ /** Selectors which at least one of the rules is applied to */
private List<Selector> selectors = new ArrayList<Selector>();
public List<Rule> getRules() {
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/ScriptHandler.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/ScriptHandler.java 2009-04-24 15:39:17 UTC (rev 1358)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/ScriptHandler.java 2009-04-27 16:06:15 UTC (rev 1359)
@@ -1,12 +1,9 @@
package org.nuiton.guix.tags;
import java.io.File;
-import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.StringWriter;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -24,7 +21,7 @@
* @return the content of the script file
* @throws java.io.IOException if an error occurs while reading scriptFile
*/
- private String loadScriptFile(File scriptFile) throws IOException {
+ public String loadScriptFile(File scriptFile) throws IOException {
StringWriter scriptBuffer = new StringWriter();
FileReader in = new FileReader(scriptFile);
char[] readBuffer = new char[2048];
@@ -36,23 +33,6 @@
}
/**
- * Loads the file with the name of the class
- * and get the content of the file.
- *
- * @param baseDir the directory of the compiled guix file
- * @param className the name of the file to load
- * @return the content of the file
- * @throws IOException if an error occurs while reading the file
- * with the same name as the class
- */
- public String autoDetectScriptFile(String baseDir, String className)
- throws IOException {
- File scriptFile = null;
- scriptFile = new File(baseDir, className + ".script");
- return loadScriptFile(scriptFile);
- }
-
- /**
* Parse the <code>script</code> tag.
*
* @param xpp the parser referencing the style tag
@@ -62,21 +42,12 @@
* @throws IOException
* @throws XmlPullParserException
*/
- public String compileScript(XmlPullParser xpp, String baseDir)
+ public String compileScript(XmlPullParser xpp, File scriptFile)
throws IOException, XmlPullParserException {
StringBuffer script = new StringBuffer();
- File scriptFile = null;
- //the name of the file to load
- String source = xpp.getAttributeValue("", "source");
-
- //if the source attribute is specified
- if (source != null) {
- scriptFile = new File(baseDir, source.replace('/', File.separatorChar));
- }
- if (scriptFile != null && scriptFile.exists()) {
+ if(scriptFile != null && scriptFile.exists())
script.append(loadScriptFile(scriptFile));
- }
xpp.nextToken();
if (xpp.getEventType() == XmlPullParser.CDSECT) {
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java 2009-04-24 15:39:17 UTC (rev 1358)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java 2009-04-27 16:06:15 UTC (rev 1359)
@@ -11,8 +11,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import org.apache.log4j.Logger;
import org.nuiton.guix.css.CSSParser;
import org.nuiton.guix.css.CSSParserConstants;
import org.nuiton.guix.css.CSSParserTreeConstants;
@@ -65,9 +64,7 @@
* @throws IOException if an error occurs while reading the file
* with the same name as the class
*/
- public StyleSheet autoDetectStyleFile(String baseDir, String className) throws FileNotFoundException, IOException {
- File styleFile = null;
- styleFile = new File(baseDir, className + ".css");
+ public StyleSheet autoDetectStyleFile(File styleFile) throws IOException {
return processStylesheet(loadStyleFile(styleFile));
}
@@ -84,28 +81,19 @@
* @throws org.xmlpull.v1.XmlPullParserException if an error occurs
* while parsing the guix file
*/
- public StyleSheet compileStyle(XmlPullParser xpp, String baseDir) throws IOException, XmlPullParserException {
- File styleFile = null;
+ public StyleSheet compileStyle(XmlPullParser xpp, File styleFile) throws IOException, XmlPullParserException {
StyleSheet result = null;
- //the name of the file to load
- String source = xpp.getAttributeValue("", "source");
- //if a file is specified
- if (source != null) {
- styleFile = new File(baseDir, source.replace('/', File.separatorChar));
- }
StringBuffer style = new StringBuffer();
-
- if (styleFile != null && styleFile.exists()) {
+ if(styleFile != null && styleFile.exists())
style.append(loadStyleFile(styleFile));
- }
xpp.nextToken();
do {
switch (xpp.getEventType()) {
case XmlPullParser.START_TAG:
- Logger.getLogger(StyleHandler.class.getName()).log(Level.WARNING,
- "<style> tag may not contain child elements: " + xpp.getName());
+ Logger.getLogger(StyleHandler.class)
+ .warn("<style> tag may not contain child elements: " + xpp.getName());
break;
case XmlPullParser.TEXT:
break;// fall through
@@ -115,8 +103,11 @@
break;
}
} while ((xpp.getEventType() != XmlPullParser.END_TAG) && (!xpp.getName().equals("style")));
+
+ //analyze the content of the CSS
result = processStylesheet(style.toString());
+ //reaches next START_TAG
do {
xpp.nextToken();
} while (xpp.getEventType() != XmlPullParser.START_TAG && xpp.getEventType() != XmlPullParser.END_DOCUMENT);
@@ -126,11 +117,14 @@
}
/**
+ * Analyses a selector node
*
- * @param selector
- * @return
+ * @param selector the selector node to analyse
+ * @return a Selector with the class, styleclass, pseudoclass and/or id
+ * which rules will be applied to
*/
protected Selector processSelector(SimpleNode selector) {
+ //chack if it is a selector
if (selector.getId() != CSSParserTreeConstants.JJTSELECTOR) {
throw new IllegalArgumentException("argument node is not a Selector");
}
@@ -142,21 +136,25 @@
for (int i = 0; i < selector.jjtGetNumChildren(); i++) {
SimpleNode child = selector.getChild(i);
switch (child.getId()) {
+ //class
case CSSParserTreeConstants.JJTJAVACLASS:
if (!child.getText().trim().equals("*")) {
javaClassName = child.getText();
}
break;
+ //styleclass
case CSSParserTreeConstants.JJTCLASS:
styleClass = child.getText().substring(1);
break;
+ //pseudoclass
case CSSParserTreeConstants.JJTPSEUDOCLASS:
pseudoClass = child.getText().substring(1);
break;
+ //id
case CSSParserTreeConstants.JJTID:
id = child.getText().substring(1);
break;
-
+ //error if other
default:
throw new IllegalStateException("unexpected child of Selector node, type=" + child.getId());
}
@@ -166,29 +164,35 @@
}
/**
+ * Analyses a CSS rule
*
- * @param ruleNode
- * @return
+ * @param ruleNode the CSSParser node containing the rule to analyse
+ * @return a Rule containing the properties and the selectors of the rule
*/
protected Rule processRule(SimpleNode ruleNode) {
-
+ //checks if it is a rule
if (ruleNode.getId() != CSSParserTreeConstants.JJTRULE) {
throw new IllegalArgumentException("argument node is not a Rule");
}
+
SimpleNode selectorsNode = ruleNode.getChild(0);
assert selectorsNode.getId() == CSSParserTreeConstants.JJTSELECTORS : "expected node to be of type Selectors";
List<Selector> ruleSelectors = new ArrayList<Selector>();
+ //analyses each selector
for (int i = 0; i < selectorsNode.jjtGetNumChildren(); i++) {
SimpleNode selectorNode = selectorsNode.getChild(i);
Selector selector = processSelector(selectorNode);
ruleSelectors.add(selector);
+ //records the selector if it has not been recorded yet
+ //to add each selector only once in the StyleSheet
if (!selectorRecorded(selector)) {
selectors.add(selector);
}
}
Map<String, String> properties = new HashMap<String, String>();
+ //records the properties
for (int i = 1; i < ruleNode.jjtGetNumChildren(); i++) {
SimpleNode declarationNode = ruleNode.getChild(i);
if (declarationNode.getId() == CSSParserTreeConstants.JJTDECLARATION) {
@@ -201,8 +205,8 @@
properties.put(key, value);
}
}
- Rule rule;
- rule = new Rule();
+ //creates the new rule
+ Rule rule = new Rule();
rule.setSelectors(ruleSelectors);
for (Selector selector : ruleSelectors) {
selector.getRules().add(rule);
@@ -212,11 +216,13 @@
}
/**
+ * Analyses the CSS
*
- * @param stylesheetText
- * @return
+ * @param stylesheetText the content of the CSS file or the style tag
+ * @return the StyleSheet containing the rules of the CSS file or the style tag
*/
protected StyleSheet processStylesheet(String stylesheetText) {
+ //parses the CSS
CSSParser p = new CSSParser(new StringReader(stylesheetText));
SimpleNode node;
try {
@@ -224,14 +230,16 @@
} catch (ParseException ex) {
throw ex;
}
+
List<Rule> rules = new ArrayList<Rule>();
+ //analyses each rule
for (int i = 0; i < node.jjtGetNumChildren(); i++) {
SimpleNode ruleNode = node.getChild(i);
Rule rule = processRule(ruleNode);
rules.add(rule);
}
- StyleSheet styleSheet;
- styleSheet = new StyleSheet();
+
+ StyleSheet styleSheet = new StyleSheet();
styleSheet.setRules(rules);
styleSheet.setSelectors(selectors);
return styleSheet;
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/TagManager.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/TagManager.java 2009-04-24 15:39:17 UTC (rev 1358)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/TagManager.java 2009-04-27 16:06:15 UTC (rev 1359)
@@ -1,7 +1,3 @@
-/*
- * Copyright 2006 Ethan Nicholas. All rights reserved.
- * Use is subject to license terms.
- */
package org.nuiton.guix.tags;
import java.util.logging.Level;
@@ -19,13 +15,15 @@
import java.util.Map;
import java.util.Set;
-/** Manages TagHandlers, including automatically compiling .jaxx files corresponding to class tags. */
+/**
+ * Manages tags of the .guix files.
+ */
public class TagManager {
/** log */
protected static final Log log = LogFactory.getLog(TagManager.class);
/**
- * Namespace for JAXX's non-class tags, such as <script;>. The namespace normally does not
+ * Namespace for Guix's non-class tags, such as <Button;>. The namespace normally does not
* need to be specified but can be used to resolve ambiguities.
*/
public static final String GUIX_NAMESPACE = "org.nuiton.guix.*";
@@ -33,59 +31,13 @@
/** Maps simple tag names to their default namespaces (package names). */
private static Map<String, String> defaultNamespaces = new HashMap<String, String>();
- /** Maps qualified tag names to the TagHandlers responsible for processing them. */
- //private static Map<QName, TagHandler> registeredTags = new HashMap<QName, TagHandler>();
-
/** Keeps track of whether or not named classes exist. */
private static Map<String, Boolean> classExistenceCache = new HashMap<String, Boolean>();
- /** */
+ /** List of the Guix classes such as <Button;> */
private static List<String> guixClasses = new ArrayList<String>();
- /**
- * Maps bean classes to their TagHandler classes. The mapping is to TagHandler classes, rather than to
- * TagHandler instances, because subclasses of the bean class should be handled by the same TagHandler
- * (assuming no more specific mappings exist), which requires creating a new instance of the TagHandler.
- */
- //private static ClassMap<Class<? extends TagHandler>> registeredBeans = new ClassMap<Class<? extends TagHandler>>();
- // still targeting 1.4, so I can't use javax.xml.namespace.QName
- private static class QName {
- private String namespaceURI;
- private String localPart;
-
- public QName(String namespaceURI, String localPart) {
- if (localPart == null)
- throw new NullPointerException();
- this.namespaceURI = namespaceURI;
- this.localPart = localPart;
- }
-
-
- public String getNamespaceURI() {
- return namespaceURI;
- }
-
-
- public String getLocalPart() {
- return localPart;
- }
-
- @Override
- public boolean equals(Object o) {
- if (o == null || !(o instanceof QName))
- return false;
- QName qname = (QName) o;
- return qname.getNamespaceURI().equals(getNamespaceURI()) && qname.getLocalPart().equals(getLocalPart());
- }
-
- @Override
- public int hashCode() {
- return (namespaceURI != null ? namespaceURI.hashCode() : 0) ^ getLocalPart().hashCode();
- }
- }
-
-
private TagManager() { /* not instantiable */ }
@@ -253,7 +205,12 @@
}
}*/
-
+ /**
+ * Tests if a class exists
+ *
+ * @param className name of the class we want to know if it exists
+ * @return true if the class exists
+ */
private static boolean classExists(String className) {
if (classExistenceCache.containsKey(className)) {
return classExistenceCache.get(className);
@@ -276,40 +233,6 @@
return found;
}
-
- /*private static String determinePackage(String simpleClassName, String defaultPackage) {
- String namespace = null;
- Set<String> classes = compiler.getImportedClasses();
- for (String className : classes) { // search class imports (e.g. import java.util.Date;)
- if (className.equals(simpleClassName) || className.endsWith("." + simpleClassName)) {
- namespace = className.substring(0, className.lastIndexOf(".") + 1) + "*";
- }
- }
- if (namespace == null) { // search package imports (e.g. import java.util.*;)
- Set<String> searchList = compiler.getImportedPackages();
- if (defaultPackage != null) {
- if (!defaultPackage.endsWith("*")) {
- throw new IllegalArgumentException("defaultPackage must end in '*', found '" + defaultPackage + "'");
- }
- if (classExists(defaultPackage.substring(0, defaultPackage.length() - 1) + simpleClassName)) {
- return defaultPackage;
- }
- }
- for (String currentPackage : searchList) {
- String className = currentPackage + simpleClassName;
- if (classExists(className)) {
- if (namespace != null) { // we've already found the same name in another package
- //compiler.reportError("symbol '" + simpleClassName + "' is ambiguous, found matching classes " + namespace.substring(0, namespace.length() - 1) + simpleClassName + " and " + currentPackage + simpleClassName + ". Use fully-qualified name to disambiguate.");
- return null;
- }
- namespace = currentPackage + "*";
- }
- }
- }
-
- return namespace;
- }*/
-
/**
* Resolves a simple class name (like <code>Object</code> or <code>String</code>) to its fully-qualified name. Inner
* classes should be represented as they would appear in Java source code (e.g. JPopupMenu.Separator). Fully-qualified names,
@@ -338,16 +261,4 @@
return null;
}
-
- /*public static ClassDescriptor resolveClass(String className, JAXXCompiler compiler) {
- try {
- className = resolveClassName(className, compiler);
- if (className == null)
- return null;
- return ClassDescriptorLoader.getClassDescriptor(className, compiler.getClassLoader());
- }
- catch (ClassNotFoundException e) {
- return null;
- }
- }*/
}
\ No newline at end of file
1
0
r1358 - in guix/trunk/guix-test/src/main/java/org/nuiton/guix: . demo
by kmorin@users.labs.libre-entreprise.org April 24, 2009
by kmorin@users.labs.libre-entreprise.org April 24, 2009
April 24, 2009
Author: kmorin
Date: 2009-04-24 15:39:17 +0000 (Fri, 24 Apr 2009)
New Revision: 1358
Added:
guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/
guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.css
guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.guix
guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.script
guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/scriptFile.script
Log:
Ajout de fichiers test
Added: guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.css
===================================================================
--- guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.css (rev 0)
+++ guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.css 2009-04-24 15:39:17 UTC (rev 1358)
@@ -0,0 +1,10 @@
+#display:{
+ object . getText( ) . startsWith( "-" )
+}
+
+{
+foreground: red
+
+;
+}
+
Added: guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.guix
===================================================================
--- guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.guix (rev 0)
+++ guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.guix 2009-04-24 15:39:17 UTC (rev 1358)
@@ -0,0 +1,149 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<Application title="JAXX Demo" width='1024' height='800' xmlns:swing='javax.swing.*'>
+ <script><![CDATA[
+
+org.codelutin.i18n.I18n.init();
+
+void $afterCompleteSetup() {
+ try { jaxx.runtime.SwingUtil.initNimbusLoookAndFeel(); } catch (Exception e) { log.error(e.getMessage(), e); }
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ int i=0;
+ while( i < list.getRowCount()) {
+ list.expandRow(i++);
+ }
+ }
+ });
+}
+
+]]></script>
+
+ <style><![CDATA[
+#table {
+ border: { BorderFactory . createEmptyBorder( 4, 4, 4, 4 )
+}
+
+;
+font-face:
+
+"Trebuchet MS"
+;
+}
+
+#display {
+ background: #BCE5AD;
+ opaque: true;
+ horizontalAlignment: right;
+ border: { BorderFactory . createBevelBorder( BevelBorder . LOWERED )
+}
+
+;
+font-size:
+
+22
+;
+font-weight: bold
+
+;
+}
+]]></style>
+ <swing:JSplitPane>
+ <!--JSplitPane dividerLocation='200'-->
+ <swing:JScrollPane>
+ <swing:JTree id='list' showsRootHandles='true'
+ onValueChanged='cardLayout.show(preview, list.getSelectionValue() instanceof DemoPanel ? ((DemoPanel) list.getSelectionValue()).getLabel() : emptyDemo.getLabel())'
+ cellRenderer='{new javax.swing.tree.DefaultTreeCellRenderer() {
+ public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
+ if (value instanceof DemoPanel)
+ value = ((DemoPanel) value).getLabel();
+ return super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
+ }
+ }
+ }'>
+ <item value="Components">
+ <item value='Buttons'>
+ <item value='{buttonDemo}'/>
+ <item value='{checkBoxDemo}'/>
+ <item value='{radioButtonDemo}'/>
+ <item value='{toggleButtonDemo}'/>
+ </item>
+
+ <item value='Form elements'>
+ <item value='Text'>
+ <item value='{passwordFieldDemo}'/>
+ <item value='{textFieldDemo}'/>
+ <item value='{textAreaDemo}'/>
+ </item>
+
+ <item value='{comboBoxDemo}'/>
+ <item value='{listDemo}'/>
+ <item value='{sliderDemo}'/>
+ <item value='{spinnerDemo}'/>
+ </item>
+
+ <item value='Layout components'>
+ <item value='{splitPaneDemo}'/>
+ </item>
+
+ <item value='Menus'>
+ <item value='{menuItemDemo}'/>
+ <item value='{checkBoxMenuItemDemo}'/>
+ <item value='{radioButtonMenuItemDemo}'/>
+ </item>
+
+ <item value='Windows'>
+ <item value='{dialogDemo}'/>
+ </item>
+
+ <item value='{progressBarDemo}'/>
+
+ </item>
+
+ <item value='{labelStyleDemo}'/>
+
+ <item value='{counterDemo}'/>
+ <item value='{calculatorDemo}'/>
+
+ <item value='New features'>
+ <item value='Validation'>
+ <item value='{validationDemo1}'/>
+ <item value='{validationDemo2}'/>
+ </item>
+ <item value='{dataBindingDemo}'/>
+ <item value='{boxedDecoratorDemo}'/>
+ </item>
+ </swing:JTree>
+ </swing:JScrollPane>
+ <java.awt.CardLayout id='cardLayout'/>
+
+ <Panel id='preview' layout='{cardLayout}'>
+ <jaxx.EmptyDemo id='emptyDemo' constraints='emptyDemo.getLabel()'/>
+ <JButtonDemo id='buttonDemo' constraints='buttonDemo.getLabel()'/>
+ <JCheckBoxDemo id='checkBoxDemo' constraints='checkBoxDemo.getLabel()'/>
+ <JCheckBoxMenuItemDemo id='checkBoxMenuItemDemo' constraints='checkBoxMenuItemDemo.getLabel()'/>
+ <JComboBoxDemo id='comboBoxDemo' constraints='comboBoxDemo.getLabel()'/>
+ <JDialogDemo id='dialogDemo' constraints='dialogDemo.getLabel()'/>
+ <JListDemo id='listDemo' constraints='listDemo.getLabel()'/>
+ <JMenuItemDemo id='menuItemDemo' constraints='menuItemDemo.getLabel()'/>
+ <JPasswordFieldDemo id='passwordFieldDemo' constraints='passwordFieldDemo.getLabel()'/>
+ <JProgressBarDemo id='progressBarDemo' constraints='progressBarDemo.getLabel()'/>
+ <JSliderDemo id='sliderDemo' constraints='sliderDemo.getLabel()'/>
+ <JSpinnerDemo id='spinnerDemo' constraints='spinnerDemo.getLabel()'/>
+ <JSplitPaneDemo id='splitPaneDemo' constraints='splitPaneDemo.getLabel()'/>
+ <JRadioButtonDemo id='radioButtonDemo' constraints='radioButtonDemo.getLabel()'/>
+ <JRadioButtonMenuItemDemo id='radioButtonMenuItemDemo' constraints='radioButtonMenuItemDemo.getLabel()'/>
+ <JToggleButtonDemo id='toggleButtonDemo' constraints='toggleButtonDemo.getLabel()'/>
+ <JTextFieldDemo id='textFieldDemo' constraints='textFieldDemo.getLabel()'/>
+ <JTextAreaDemo id='textAreaDemo' constraints='textAreaDemo.getLabel()'/>
+ <ValidationListDemo id='validationDemo1' constraints='validationDemo1.getLabel()'/>
+ <ValidationTableDemo id='validationDemo2' constraints='validationDemo2.getLabel()'/>
+ <BeanDataBindingDemo id='dataBindingDemo' constraints='dataBindingDemo.getLabel()'/>
+ <LabelStyleDemo id='labelStyleDemo' constraints='labelStyleDemo.getLabel()'/>
+ <CounterDemo id='counterDemo' constraints='counterDemo.getLabel()'/>
+ <CalculatorDemo id='calculatorDemo' constraints='calculatorDemo.getLabel()'/>
+ <BoxedDecoratorDemo id='boxedDecoratorDemo' constraints='boxedDecoratorDemo.getLabel()'/>
+ </Panel>
+ <style source="JButton.css" />
+ </swing:JSplitPane>
+</Application>
Added: guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.script
===================================================================
--- guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.script (rev 0)
+++ guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.script 2009-04-24 15:39:17 UTC (rev 1358)
@@ -0,0 +1,3 @@
+public void testSameName() {
+ System.out.println("load the script file with the same name");
+}
Added: guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/scriptFile.script
===================================================================
--- guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/scriptFile.script (rev 0)
+++ guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/scriptFile.script 2009-04-24 15:39:17 UTC (rev 1358)
@@ -0,0 +1,3 @@
+public void testOtherName() {
+ System.out.println("load the script file with a specified name");
+}
1
0
r1357 - guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix
by kmorin@users.labs.libre-entreprise.org April 24, 2009
by kmorin@users.labs.libre-entreprise.org April 24, 2009
April 24, 2009
Author: kmorin
Date: 2009-04-24 15:38:51 +0000 (Fri, 24 Apr 2009)
New Revision: 1357
Modified:
guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java
Log:
Initialisation du compiler au lancement
Modified: guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java
===================================================================
--- guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java 2009-04-24 15:37:46 UTC (rev 1356)
+++ guix/trunk/guix-maven-plugin/src/main/java/org/nuiton/guix/GuixMojo.java 2009-04-24 15:38:51 UTC (rev 1357)
@@ -14,6 +14,7 @@
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
+ GuixInitializer.initialize();
GuixLauncher gcl = new GuixLauncher();
}
}
1
0
r1356 - in guix/trunk/guix-compiler/src/main/java/org/nuiton/guix: . compiler css model parser tags
by kmorin@users.labs.libre-entreprise.org April 24, 2009
by kmorin@users.labs.libre-entreprise.org April 24, 2009
April 24, 2009
Author: kmorin
Date: 2009-04-24 15:37:46 +0000 (Fri, 24 Apr 2009)
New Revision: 1356
Added:
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixInitializer.java
Modified:
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSS.jj
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSS.jjt
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/GuixModelObject.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Java1.5.jjt
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/ScriptHandler.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/TagManager.java
Log:
Parsing des fichiers CSS et des fichiers scripts
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixInitializer.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixInitializer.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixInitializer.java 2009-04-24 15:37:46 UTC (rev 1356)
@@ -0,0 +1,24 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.nuiton.guix;
+
+import org.nuiton.guix.tags.TagManager;
+
+/**
+ *
+ * @author morin
+ */
+public class GuixInitializer {
+
+ public static void initialize() {
+ TagManager.registerGuixClasse("Button");
+ TagManager.registerGuixClasse("Panel");
+ TagManager.registerGuixClasse("Label");
+ TagManager.registerGuixClasse("CheckBox");
+ TagManager.registerGuixClasse("ComboBox");
+ TagManager.registerGuixClasse("Application");
+ }
+}
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java 2009-04-21 15:57:24 UTC (rev 1355)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java 2009-04-24 15:37:46 UTC (rev 1356)
@@ -58,8 +58,8 @@
private File targetDirectory = new File("destination");
public GuixLauncher() {
- files = new File[]{new File("/home/morin/NetBeansProjects/jaxx-gwt/trunk/jaxx-example/src/main/java/jaxx/demo/CalculatorDemo.jaxx")};
- classNames = new String[]{"CalculatorDemo"};
+ files = new File[]{new File("/home/morin/NetBeansProjects/guix/trunk/guix-test/src/main/java/org/nuiton/guix/demo/GuixDemo.guix")};
+ classNames = new String[]{"GuixDemo"};
compile();
}
@@ -140,7 +140,7 @@
for (GuixModelObject mo : rootModelObjects) {
- File f = new File(mo.getClassDescriptor().getName() + "ModelTree.xml");
+ File f = new File(targetDirectory,mo.getClassDescriptor().getName() + "ModelTree.xml");
if (!f.exists()) {
f.createNewFile();
}
@@ -261,8 +261,9 @@
private void writeModelTree(XmlSerializer serializer, GuixModelObject mo,
XmlSerializer cssSerializer) throws IOException {
if(!mo.getStyleSheets().isEmpty()) {
+ int i = 0;
for(StyleSheet styleSheet : mo.getStyleSheets()) {
- File ss = new File(mo.getClassDescriptor().getName() + "SS");
+ File ss = new File(targetDirectory,mo.getClassDescriptor().getName() + i++ + "SS.xml");
cssSerializer.setOutput(new FileWriter(ss));
cssSerializer.startTag("", "rules");
for(Rule rule : styleSheet.getRules()) {
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java 2009-04-21 15:57:24 UTC (rev 1355)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java 2009-04-24 15:37:46 UTC (rev 1356)
@@ -1,17 +1,14 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
+
package org.nuiton.guix.compiler;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.nuiton.guix.GuixLauncher;
import java.io.File;
-import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import java.util.Stack;
import org.nuiton.guix.model.AttributeDescriptor;
import org.nuiton.guix.model.ClassDescriptor;
import org.nuiton.guix.model.GuixModelObject;
@@ -24,174 +21,257 @@
import org.xmlpull.v1.XmlPullParserFactory;
/**
- * Compiles Guix files into Java classes
+ * Compiles Guix files into model tree
*
* @author morin
*/
public class GuixCompiler {
- /** flag to detec if an error occurs while compiling jaxx file */
+ /** Flag to detec if an error occurs while compiling guix file */
protected boolean failed;
- /** Used for error reporting purposes,
- * so we can report the right source file. */
- protected Stack<File> sourceFiles = new Stack<File>();
- /** XML parser of src file. */
+ /** Directory containing the guix files */
private File baseDir;
+ /** Guix file to compile */
private File src;
+ /** Name of the class to produce */
private String outputClassName;
- private GuixLauncher launchor;
+ /** GuixLauncher instance which launched this compiler */
+ private GuixLauncher launcher;
private StyleHandler styleHandler = new StyleHandler();
private ScriptHandler scriptHandler = new ScriptHandler();
-
+ /** Root of the model */
+ private GuixModelObject rootMO;
+
/*------------------------------------------------------------------------*/
/*-- Constructor methods -------------------------------------------------*/
/*------------------------------------------------------------------------*/
/**
* Creates a new GuixCompiler.
*
- * @param baseDir classpath location
- * @param src location of file to compile
- * @param outputClassName the out file name
+ * @param baseDir classpath location
+ * @param src location of file to compile
+ * @param outputClassName the out file name
+ * @param launcher the launcher of the compiler
*/
public GuixCompiler(File baseDir, File src, String outputClassName,
- GuixLauncher launchor) {
+ GuixLauncher launcher) {
this.baseDir = baseDir;
this.src = src;
- sourceFiles.push(src);
this.outputClassName = outputClassName;
- this.launchor = launchor;
+ this.launcher = launcher;
}
- public GuixModelObject compile()
- throws FileNotFoundException, IOException, XmlPullParserException {
- //try {
- XmlPullParserFactory factory = XmlPullParserFactory.newInstance(
- System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
- factory.setNamespaceAware(true);
- XmlPullParser xpp = factory.newPullParser();
- xpp.setInput(new FileReader(src));
-
- if (xpp.getEventType() == XmlPullParser.START_DOCUMENT) {
- StringBuffer doc = new StringBuffer();
- do {
- xpp.nextToken();
- if(xpp.getEventType() == XmlPullParser.COMMENT)
- doc.append(xpp.getText());
- } while(xpp.getEventType() != XmlPullParser.START_TAG);
-
- String nameSpace = xpp.getNamespace();
- String localName = xpp.getName();
- String packageName =
- resolvePackageName(nameSpace, localName);
-
- GuixModelObject root = new GuixModelObject(xpp.getAttributeValue("", "id"),
- doc.toString(),xpp.getAttributeValue("", "styleClass"));
- String className = src.getName().substring(0, src.getName().lastIndexOf('.'));
- String classPackageName = src.getPath().replace('/', '.')
- .substring(src.getPath().lastIndexOf("src/main/java/") + 14,
- src.getPath().lastIndexOf('/'));
- root.setClassDescriptor(new ClassDescriptor(className,classPackageName));
- root.getClassDescriptor().setSuperClass(new ClassDescriptor(
- localName, packageName));
- root.setAttributeDescriptors(getAttributes(xpp));
- root.setChildren(new ArrayList<GuixModelObject>());
-
- do {
- xpp.nextToken();
- } while(xpp.getEventType() != XmlPullParser.START_TAG);
-
- while(xpp.getName().equals("script")
- ||xpp.getName().equals("style")) {
- if(xpp.getName().equals("script")) {
- root.getClassDescriptor().setScript(
- scriptHandler.compileScript(xpp));
+ /**
+ * Compiles the guix file
+ *
+ * @return the root of the model
+ */
+ public GuixModelObject compile() {
+ try {
+ //Creation of the Xml parser
+ XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
+ factory.setNamespaceAware(true);
+ XmlPullParser xpp = factory.newPullParser();
+ xpp.setInput(new FileReader(src));
+ //Start parsing
+ if (xpp.getEventType() == XmlPullParser.START_DOCUMENT) {
+ //javaDoc of the class to create
+ StringBuffer doc = new StringBuffer();
+ do {
+ xpp.nextToken();
+ if (xpp.getEventType() == XmlPullParser.COMMENT) {
+ doc.append(xpp.getText());
+ }
+ } while (xpp.getEventType() != XmlPullParser.START_TAG);
+ //resolve the package of teh superclass
+ String tagNameSpace = xpp.getNamespace();
+ String tagName = xpp.getName();
+ String tagPackageName = resolvePackageName(tagNameSpace, tagName);
+ //creation of the root GuixModelObject
+ rootMO = new GuixModelObject(xpp.getAttributeValue("", "id"), doc.toString(), xpp.getAttributeValue("", "styleClass"));
+ //the class name is the name of the file minus the extension
+ String className = src.getName().substring(0, src.getName().lastIndexOf('.'));
+ String classPackageName = src.getPath().replace('/', '.').substring(src.getPath().lastIndexOf("src/main/java/") + 14, src.getPath().lastIndexOf('/'));
+ rootMO.setClassDescriptor(new ClassDescriptor(className, classPackageName));
+ rootMO.getClassDescriptor().setSuperClass(new ClassDescriptor(tagName, tagPackageName));
+ rootMO.setAttributeDescriptors(getAttributes(xpp));
+ rootMO.setChildren(new ArrayList<GuixModelObject>());
+ //add the stylesheet of the CSS file with the same name as the Guix file
+ StyleSheet ss = styleHandler.autoDetectStyleFile(baseDir.getPath(), outputClassName);
+ rootMO.getStyleSheets().add(ss);
+ StringBuffer script = new StringBuffer();
+ //add the script in the .script file with the same name as the Guix file
+ script.append(scriptHandler.autoDetectScriptFile(baseDir.getPath(), outputClassName));
+ //reach the next START_TAG
+ do {
+ xpp.nextToken();
+ } while (xpp.getEventType() != XmlPullParser.START_TAG && xpp.getEventType() != XmlPullParser.END_DOCUMENT);
+ //if not eof
+ if (xpp.getEventType() == XmlPullParser.START_TAG) {
+ //compile the rest of the file
+ script.append(compile(xpp, rootMO, doc.toString()));
}
-
- if(xpp.getName().equals("style")) {
- StyleSheet ss = styleHandler.compileStyle(xpp, baseDir.getPath());
- root.getStyleSheets().add(ss);
- }
+ //all the script tags have been recorded
+ rootMO.getClassDescriptor().setScript(script.toString());
+ //register the root ClassDescriptor
+ failed = !launcher.registerClassDescriptor(rootMO.getClassDescriptor());
+ return rootMO;
}
- failed = launchor.registerClassDescriptor(root.getClassDescriptor());
-
- if (xpp.getEventType() == XmlPullParser.START_TAG) {
- compile(xpp,root,doc.toString());
- }
-
- return root;
+ failed = true;
+ } catch (XmlPullParserException ex) {
+ Logger.getLogger(GuixCompiler.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IOException ex) {
+ Logger.getLogger(GuixCompiler.class.getName()).log(Level.SEVERE, null, ex);
}
- failed = true;
return null;
- //}
}
/*------------------------------------------------------------------------*/
/*-- Compile methods -----------------------------------------------------*/
/*------------------------------------------------------------------------*/
- private void compile(final XmlPullParser xpp, GuixModelObject previousMO,
- String javaDoc) throws IOException, XmlPullParserException {
+ /**
+ *
+ * @param xpp the parser referencing the tag
+ * @param previousMO the <code>GuixModelObject</code> parent of the tag
+ * @param javaDoc the comments above the tag, to add to its javaDoc
+ * @return the scripts already discovered while parsing the file
+ */
+ private StringBuffer compile(final XmlPullParser xpp, GuixModelObject previousMO,
+ String javaDoc) {
- String nameSpace = xpp.getNamespace();
- String localName = xpp.getName();
- String packageName = resolvePackageName(nameSpace, localName);
+ StringBuffer result = new StringBuffer();
+ StringBuffer doc = new StringBuffer();
+ GuixModelObject prev;
- nameSpace = packageName + ".*";
- GuixModelObject mo = new GuixModelObject(xpp.getAttributeValue("","id"),
- javaDoc,xpp.getAttributeValue("", "styleClass"));
- mo.setParent(previousMO);
- mo.setClassDescriptor(new ClassDescriptor(localName, packageName));
- previousMO.getChildren().add(mo);
- mo.setChildren(new ArrayList<GuixModelObject>());
-
- failed = !launchor.registerClassDescriptor(mo.getClassDescriptor());
-
- if(!failed) {
- GuixModelObject prev = mo;
- StringBuffer doc = new StringBuffer();
- do {
- xpp.nextToken();
-
- if (xpp.getEventType() == XmlPullParser.END_TAG) {
- prev = prev.getParent();
+ try {
+ //if the tag is a style tag
+ if (xpp.getName() != null && xpp.getName().equals("style")) {
+ //creates a new stylesheet
+ StyleSheet ss = styleHandler.compileStyle(xpp, baseDir.getPath());
+ rootMO.getStyleSheets().add(ss);
+ //the parent is still the same
+
+ prev = previousMO;
+ }
+ //if the tag is a script tag
+ else if (xpp.getName() != null && xpp.getName().equals("script")) {
+ //add the script to the result
+ result.append(scriptHandler.compileScript(xpp, baseDir.getPath()));
+ //the parent is still the same
+ prev = previousMO;
+ }
+ //if the tag is a class tag
+ else {
+ String tagNameSpace = xpp.getNamespace();
+ String tagPackageName = resolvePackageName(tagNameSpace, xpp.getName());
+ String tagName;
+ //if the name of the tag is the fully-qualified class name
+ if(xpp.getName().lastIndexOf('.') >= 0) {
+ tagName = xpp.getName().substring(xpp.getName().lastIndexOf('.') + 1);
}
- else if(xpp.getEventType() == XmlPullParser.COMMENT)
- doc.append(xpp.getText());
- else if(xpp.getName() != null && xpp.getName().equals("style")) {
- StyleSheet ss = styleHandler.compileStyle(xpp, baseDir.getPath());
- prev.getStyleSheets().add(ss);
+ else {
+ tagName = xpp.getName();
}
- } while (xpp.getEventType() != XmlPullParser.START_TAG
- && xpp.getEventType() != XmlPullParser.END_DOCUMENT);
+ tagNameSpace = tagPackageName + ".*";
+ //create the GuixModelObject representing the tag
+ GuixModelObject mo = new GuixModelObject(xpp.getAttributeValue("", "id"),
+ javaDoc, xpp.getAttributeValue("", "styleClass"));
+ mo.setParent(previousMO);
+ mo.setClassDescriptor(new ClassDescriptor(tagName, tagPackageName));
+ mo.setChildren(new ArrayList<GuixModelObject>());
+ //add this GuixModelObject to the children of the parent
+ previousMO.getChildren().add(mo);
+
+ //register the ClassDescriptor
+ failed = !launcher.registerClassDescriptor(mo.getClassDescriptor());
+
+ if (!failed) {
+ //parse the children of the tag
+ prev = mo;
+ do {
+ xpp.nextToken();
+ //if the tag has no children
+ if (xpp.getEventType() == XmlPullParser.END_TAG) {
+ prev = prev.getParent();
+ } else if (xpp.getEventType() == XmlPullParser.COMMENT) {
+ //add the comment to the doc of the next tag
+ doc.append(xpp.getText());
+ }
+ } while (xpp.getEventType() != XmlPullParser.START_TAG
+ && xpp.getEventType() != XmlPullParser.END_DOCUMENT);
+ }
+ else
+ return null;
+ }
+ //if not eof
if (xpp.getEventType() == XmlPullParser.START_TAG) {
- compile(xpp, prev,doc.toString());
+ //compile the rest of the document
+ result.append(compile(xpp, prev, doc.toString()));
}
+ } catch (XmlPullParserException ex) {
+ Logger.getLogger(GuixCompiler.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IOException ex) {
+ Logger.getLogger(GuixCompiler.class.getName()).log(Level.SEVERE, null, ex);
}
+ return result;
}
- private String resolvePackageName(String nameSpace, String localName) {
- // resolve class tags into fully-qualified class name
- String packageName;
- if (nameSpace != null && nameSpace.endsWith("*")) {
- packageName = nameSpace.substring(0, nameSpace.length() - 2);
- } else {
- String fullClassName = TagManager.resolveClassName(localName);
- packageName = (fullClassName == null) ? null : fullClassName
- .substring(0, fullClassName.lastIndexOf('.'));
+ /**
+ * Resolve the package name of the tag using the namespace
+ * and the name of the tag.
+ *
+ * @param tagNameSpace namespace of the tag
+ * @param tagName name of the tag
+ * @return the name of the package of the tag
+ */
+ private String resolvePackageName(String tagNameSpace, String tagName) {
+ String packageName = null;
+ //if there is a namespace
+ if (tagNameSpace != null && tagNameSpace.endsWith("*")) {
+ packageName = tagNameSpace.substring(0, tagNameSpace.length() - 2);
}
+ //if the name of the tag is the fully qualified class name
+ if(tagName.lastIndexOf('.') >= 0) {
+ if(packageName == null) {
+ packageName = tagName.substring(0, tagName.lastIndexOf('.'));
+ }
+ else {
+ packageName += tagName.substring(0, tagName.lastIndexOf('.'));
+ }
+ }
+ //if nor the namespace nor the fully qualified class name is defined
+ if(packageName == null) {
+ String fullClassName = TagManager.resolveClassName(tagName);
+ packageName = (fullClassName == null) ? null : fullClassName.substring(0, fullClassName.lastIndexOf('.'));
+ }
return packageName;
}
+ /**
+ * Transforms the attributes of a tag
+ * into a list of <code>AttributeDescriptor</code>s.
+ *
+ * @param xpp the parser referencing a tag.
+ * @return the list of <code>AttributeDescriptor</code>s corresponding
+ * to the attributes of the tag.
+ */
private List<AttributeDescriptor> getAttributes(XmlPullParser xpp) {
List<AttributeDescriptor> result = new ArrayList<AttributeDescriptor>();
- for(int i = 0 ; i < xpp.getAttributeCount() ; i++) {
- if(!xpp.getAttributeName(i).equals("id"))
+ for (int i = 0; i < xpp.getAttributeCount(); i++) {
+ if (!xpp.getAttributeName(i).equals("id")) {
result.add(new AttributeDescriptor(
- xpp.getAttributeName(i),xpp.getAttributeValue(i)));
+ xpp.getAttributeName(i), xpp.getAttributeValue(i)));
+ }
}
return result;
}
+ /**
+ * Return if the compilation failed.
+ *
+ * @return true if the compilation failed
+ */
public boolean isFailed() {
return failed;
}
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSS.jj
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSS.jj 2009-04-21 15:57:24 UTC (rev 1355)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSS.jj 2009-04-24 15:37:46 UTC (rev 1356)
@@ -9,11 +9,11 @@
// fan of the LGPL, unfortunately that won't work.
options {
STATIC = false;
- JDK_VERSION = "1.4";
+ JDK_VERSION = "1.6";
}
PARSER_BEGIN(CSSParser)
-package jaxx.css;
+package org.nuiton.guix.css;
public class CSSParser/*@bgen(jjtree)*/implements CSSParserTreeConstants/*@egen*/ {/*@bgen(jjtree)*/
protected JJTCSSParserState jjtree = new JJTCSSParserState();
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSS.jjt
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSS.jjt 2009-04-21 15:57:24 UTC (rev 1355)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSS.jjt 2009-04-24 15:37:46 UTC (rev 1356)
@@ -8,12 +8,12 @@
// fan of the LGPL, unfortunately that won't work.
options {
STATIC = false;
- JDK_VERSION = "1.4";
+ JDK_VERSION = "1.6";
NODE_SCOPE_HOOK = true;
}
PARSER_BEGIN(CSSParser)
-package jaxx.css;
+package org.nuiton.guix.css;
public class CSSParser {
public SimpleNode popNode() {
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/GuixModelObject.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/GuixModelObject.java 2009-04-21 15:57:24 UTC (rev 1355)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/GuixModelObject.java 2009-04-24 15:37:46 UTC (rev 1356)
@@ -1,7 +1,3 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
package org.nuiton.guix.model;
@@ -9,20 +5,38 @@
import java.util.List;
/**
+ * Base object to represent the model of the guix files
*
* @author morin
*/
public class GuixModelObject {
+ /** The id of the object */
private String id;
+ /** The component containing the object */
private GuixModelObject parent;
+ /** The children that the object contains */
private List<GuixModelObject> children = new ArrayList<GuixModelObject>();
+ /** The descriptor the class of the object */
private ClassDescriptor classDescriptor;
- private List<AttributeDescriptor> attributeDescriptors = new ArrayList<AttributeDescriptor>();
+ /** The descriptor of the attributes of the object */
+ private List<AttributeDescriptor> attributeDescriptors
+ = new ArrayList<AttributeDescriptor>();
+ /** The stylesheets associated to the object
+ * (in case the object is a root model object) */
private List<StyleSheet> styleSheets = new ArrayList<StyleSheet>();
+ /** The javaDoc of the object */
private String javadoc;
+ /** The style class of the object */
private String styleClass;
+ /**
+ * Constructor
+ *
+ * @param id the id of the object
+ * @param javadoc the javadoc of the object
+ * @param styleClass the styleclass of the object
+ */
public GuixModelObject(String id, String javadoc, String styleClass) {
this.id = id;
this.javadoc = javadoc;
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Java1.5.jjt
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Java1.5.jjt 2009-04-21 15:57:24 UTC (rev 1355)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Java1.5.jjt 2009-04-24 15:37:46 UTC (rev 1356)
@@ -33,7 +33,7 @@
JAVA_UNICODE_ESCAPE = true;
ERROR_REPORTING = false;
STATIC = false;
- JDK_VERSION = "1.4";
+ JDK_VERSION = "1.6";
NODE_SCOPE_HOOK=true;
}
@@ -1083,27 +1083,27 @@
<EOF> {
return true;
}
-|
+|
LOOKAHEAD(BlockStatement())
BlockStatement() {
return false;
- }
-|
- LOOKAHEAD(Modifiers() [ TypeParameters() ] [ ResultType() ] <IDENTIFIER> FormalParameters() [ "throws" NameList() ] "{")
+ }
+|
+ LOOKAHEAD(Modifiers() [ TypeParameters() ] [ ResultType() ] <IDENTIFIER> FormalParameters() [ "throws" NameList() ] "{")
ClassOrInterfaceBodyDeclaration(false) {
return false;
}
-|
- LOOKAHEAD(ClassOrInterfaceBodyDeclaration(false))
+|
+ LOOKAHEAD(ClassOrInterfaceBodyDeclaration(false))
ClassOrInterfaceBodyDeclaration(false) {
return false;
}
|
- LOOKAHEAD(Expression())
- Expression() {
- return false;
- }
-|
+ LOOKAHEAD(Expression())
+ Expression() {
+ return false;
+ }
+|
ImportDeclaration() {
return false;
}
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/ScriptHandler.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/ScriptHandler.java 2009-04-21 15:57:24 UTC (rev 1355)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/ScriptHandler.java 2009-04-24 15:37:46 UTC (rev 1356)
@@ -1,10 +1,10 @@
-/*
- * Copyright 2006 Ethan Nicholas. All rights reserved.
- * Use is subject to license terms.
- */
package org.nuiton.guix.tags;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
import java.io.IOException;
+import java.io.StringWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.xmlpull.v1.XmlPullParser;
@@ -13,31 +13,82 @@
/**
* Handles the <code><script></code> tag.
*
- * @author Ethan Nicholas
+ * @author morin
*/
public class ScriptHandler {
- public String compileScript(XmlPullParser xpp) {
- try {
- String script = null;
+ /**
+ * Loads the content of a script file
+ *
+ * @param scriptFile the file to load
+ * @return the content of the script file
+ * @throws java.io.IOException if an error occurs while reading scriptFile
+ */
+ private String loadScriptFile(File scriptFile) throws IOException {
+ StringWriter scriptBuffer = new StringWriter();
+ FileReader in = new FileReader(scriptFile);
+ char[] readBuffer = new char[2048];
+ int c;
+ while ((c = in.read(readBuffer)) > 0) {
+ scriptBuffer.write(readBuffer, 0, c);
+ }
+ return scriptBuffer.toString();
+ }
+
+ /**
+ * Loads the file with the name of the class
+ * and get the content of the file.
+ *
+ * @param baseDir the directory of the compiled guix file
+ * @param className the name of the file to load
+ * @return the content of the file
+ * @throws IOException if an error occurs while reading the file
+ * with the same name as the class
+ */
+ public String autoDetectScriptFile(String baseDir, String className)
+ throws IOException {
+ File scriptFile = null;
+ scriptFile = new File(baseDir, className + ".script");
+ return loadScriptFile(scriptFile);
+ }
+
+ /**
+ * Parse the <code>script</code> tag.
+ *
+ * @param xpp the parser referencing the style tag
+ * @param baseDir the directory of the compiled guix file
+ * @return the content of the file specified by the <code>source</code> attribute
+ * or the script between the script tags
+ * @throws IOException
+ * @throws XmlPullParserException
+ */
+ public String compileScript(XmlPullParser xpp, String baseDir)
+ throws IOException, XmlPullParserException {
+
+ StringBuffer script = new StringBuffer();
+ File scriptFile = null;
+ //the name of the file to load
+ String source = xpp.getAttributeValue("", "source");
+
+ //if the source attribute is specified
+ if (source != null) {
+ scriptFile = new File(baseDir, source.replace('/', File.separatorChar));
+ }
+ if (scriptFile != null && scriptFile.exists()) {
+ script.append(loadScriptFile(scriptFile));
+ }
+
+ xpp.nextToken();
+ if (xpp.getEventType() == XmlPullParser.CDSECT) {
+ script.append(xpp.getText());
+ }
+ while ((xpp.getEventType() != XmlPullParser.END_TAG) || (!xpp.getName().equals("script"))) {
xpp.nextToken();
- if (xpp.getEventType() == XmlPullParser.CDSECT) {
- script = xpp.getText();
- }
- while ((xpp.getEventType() != XmlPullParser.END_TAG) || (!xpp.getName().equals("script"))) {
- xpp.nextToken();
- }
- do {
- xpp.nextToken();
- } while (xpp.getEventType() != XmlPullParser.START_TAG && xpp.getEventType() != XmlPullParser.END_DOCUMENT);
- return script;
- } catch (XmlPullParserException ex) {
- Logger.getLogger(ScriptHandler.class.getName()).log(Level.SEVERE, null, ex);
- } catch (IOException ex) {
- Logger.getLogger(ScriptHandler.class.getName()).log(Level.SEVERE, null, ex);
}
- finally {
- return null;
- }
+ do {
+ xpp.nextToken();
+ } while (xpp.getEventType() != XmlPullParser.START_TAG && xpp.getEventType() != XmlPullParser.END_DOCUMENT);
+
+ return script.toString();
}
}
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java 2009-04-21 15:57:24 UTC (rev 1355)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java 2009-04-24 15:37:46 UTC (rev 1356)
@@ -1,7 +1,4 @@
-/*
- * Copyright 2006 Ethan Nicholas. All rights reserved.
- * Use is subject to license terms.
- */
+
package org.nuiton.guix.tags;
import java.io.File;
@@ -14,6 +11,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.nuiton.guix.css.CSSParser;
import org.nuiton.guix.css.CSSParserConstants;
import org.nuiton.guix.css.CSSParserTreeConstants;
@@ -28,74 +27,113 @@
/**
* Handles the <code><style></code> tag.
*
- * @author Ethan Nicholas
+ * @author morin
*/
public class StyleHandler {
+ /** List of the selectors */
private List<Selector> selectors = new ArrayList<Selector>();
+ /**
+ * Loads the content of a file.
+ *
+ * @param styleFile the file to load
+ * @return the content of the file
+ * @throws java.io.FileNotFoundException if styleFile does not exist
+ * @throws java.io.IOException if an error occurs while reading styleFile
+ */
+ private String loadStyleFile(File styleFile) throws FileNotFoundException, IOException {
+ StringWriter styleBuffer = new StringWriter();
+ FileReader in = new FileReader(styleFile);
+ char[] readBuffer = new char[2048];
+ int c;
+ while ((c = in.read(readBuffer)) > 0) {
+ styleBuffer.write(readBuffer, 0, c);
+ }
+ return styleBuffer.toString();
+ }
+
+ /**
+ * Load the file with the name of the class
+ * and creates a <code>StyleSheet</code> with the content of the file.
+ *
+ * @param baseDir the directory of the compiled guix file
+ * @param className the name of the file to load
+ * @return a <code>StyleSheet</code> containing the content of the file
+ * @throws FileNotFoundException if the file with the same name as the class
+ * does not exist
+ * @throws IOException if an error occurs while reading the file
+ * with the same name as the class
+ */
+ public StyleSheet autoDetectStyleFile(String baseDir, String className) throws FileNotFoundException, IOException {
+ File styleFile = null;
+ styleFile = new File(baseDir, className + ".css");
+ return processStylesheet(loadStyleFile(styleFile));
+ }
+
+ /**
+ * Load the file specified by the <code>source</code> attribute
+ * or the code between the style tags
+ * and creates a <code>StyleSheet</code> with this content.
+ *
+ * @param xpp the parser referencing the style tag
+ * @param baseDir the directory of the compiled guix file
+ * @return a <code>StyleSheet</code> containing the content of the file
+ * @throws java.io.IOException if an error occurs while reading
+ * the file specified by the <code>source</code> attribute
+ * @throws org.xmlpull.v1.XmlPullParserException if an error occurs
+ * while parsing the guix file
+ */
public StyleSheet compileStyle(XmlPullParser xpp, String baseDir) throws IOException, XmlPullParserException {
- boolean source = false;
+ File styleFile = null;
StyleSheet result = null;
- for (int i = 0; i < xpp.getAttributeCount(); i++) {
- String name = xpp.getAttributeName(i);
- String attrValue = xpp.getAttributeValue(i);
- if (name.equals("source")) {
- source = true;
- File styleFile = new File(baseDir, attrValue.replace('/', File.separatorChar));
- StringWriter styleBuffer = new StringWriter();
- try {
- FileReader in = new FileReader(styleFile);
- char[] readBuffer = new char[2048];
- int c;
- while ((c = in.read(readBuffer)) > 0)
- styleBuffer.write(readBuffer, 0, c);
- }
- catch (FileNotFoundException e) {
- //compiler.reportError(
- System.out.println("stylesheet file not found: " + styleFile);
- }
- result = processStylesheet(styleBuffer.toString());
- /*compiler.getSourceFiles().push(styleFile);
- compiler.registerStylesheet(processStylesheet(styleBuffer.toString()));
- compiler.getSourceFiles().pop();*/
- }/* else
- if (!name.startsWith("xmlns") && !JAXXCompiler.JAXX_INTERNAL_NAMESPACE.equals(attribute.getNamespaceURI()))
- throw new UnsupportedAttributeException(name);*/
+ //the name of the file to load
+ String source = xpp.getAttributeValue("", "source");
+
+ //if a file is specified
+ if (source != null) {
+ styleFile = new File(baseDir, source.replace('/', File.separatorChar));
}
+ StringBuffer style = new StringBuffer();
- StringBuffer style = new StringBuffer();
+ if (styleFile != null && styleFile.exists()) {
+ style.append(loadStyleFile(styleFile));
+ }
+
+ xpp.nextToken();
do {
- xpp.nextToken();
switch (xpp.getEventType()) {
case XmlPullParser.START_TAG:
- /*compiler.reportError*/System.out.println("<style> tag may not contain child elements: ");// + tag);
+ Logger.getLogger(StyleHandler.class.getName()).log(Level.WARNING,
+ "<style> tag may not contain child elements: " + xpp.getName());
break;
- case XmlPullParser.TEXT: break;// fall through
+ case XmlPullParser.TEXT:
+ break;// fall through
case XmlPullParser.CDSECT:
+ style.append(xpp.getText());
xpp.nextToken();
- style.append(xpp.getText());
break;
}
- } while((xpp.getEventType() != XmlPullParser.END_TAG)
- && (!xpp.getName().equals("style")));
-
- String styleString = style.toString().trim();
- if (styleString.length() > 0) {
- if (source)
- /*compiler.reportError*/System.out.println("<style> tag has both a source attribute and an inline stylesheet");
- //compiler.registerStylesheet(processStylesheet(style.toString()));
- }
+ } while ((xpp.getEventType() != XmlPullParser.END_TAG) && (!xpp.getName().equals("style")));
+ result = processStylesheet(style.toString());
+
do {
xpp.nextToken();
- } while(xpp.getEventType() != XmlPullParser.START_TAG
- && xpp.getEventType() != XmlPullParser.END_DOCUMENT);
+ } while (xpp.getEventType() != XmlPullParser.START_TAG && xpp.getEventType() != XmlPullParser.END_DOCUMENT);
+
return result;
+
}
+ /**
+ *
+ * @param selector
+ * @return
+ */
protected Selector processSelector(SimpleNode selector) {
- if (selector.getId() != CSSParserTreeConstants.JJTSELECTOR)
+ if (selector.getId() != CSSParserTreeConstants.JJTSELECTOR) {
throw new IllegalArgumentException("argument node is not a Selector");
+ }
String javaClassName = null;
String styleClass = null;
String pseudoClass = null;
@@ -105,8 +143,9 @@
SimpleNode child = selector.getChild(i);
switch (child.getId()) {
case CSSParserTreeConstants.JJTJAVACLASS:
- if (!child.getText().trim().equals("*"))
+ if (!child.getText().trim().equals("*")) {
javaClassName = child.getText();
+ }
break;
case CSSParserTreeConstants.JJTCLASS:
styleClass = child.getText().substring(1);
@@ -122,11 +161,15 @@
throw new IllegalStateException("unexpected child of Selector node, type=" + child.getId());
}
}
-
+
return new Selector(javaClassName, styleClass, pseudoClass, id);
}
-
+ /**
+ *
+ * @param ruleNode
+ * @return
+ */
protected Rule processRule(SimpleNode ruleNode) {
if (ruleNode.getId() != CSSParserTreeConstants.JJTRULE) {
@@ -140,11 +183,12 @@
SimpleNode selectorNode = selectorsNode.getChild(i);
Selector selector = processSelector(selectorNode);
ruleSelectors.add(selector);
- if(!selectorRecorded(selector))
+ if (!selectorRecorded(selector)) {
selectors.add(selector);
+ }
}
- Map<String,String> properties = new HashMap<String,String>();
+ Map<String, String> properties = new HashMap<String, String>();
for (int i = 1; i < ruleNode.jjtGetNumChildren(); i++) {
SimpleNode declarationNode = ruleNode.getChild(i);
if (declarationNode.getId() == CSSParserTreeConstants.JJTDECLARATION) {
@@ -160,14 +204,18 @@
Rule rule;
rule = new Rule();
rule.setSelectors(ruleSelectors);
- for(Selector selector : ruleSelectors) {
+ for (Selector selector : ruleSelectors) {
selector.getRules().add(rule);
}
rule.setProperties(properties);
return rule;
}
-
+ /**
+ *
+ * @param stylesheetText
+ * @return
+ */
protected StyleSheet processStylesheet(String stylesheetText) {
CSSParser p = new CSSParser(new StringReader(stylesheetText));
SimpleNode node;
@@ -189,8 +237,13 @@
return styleSheet;
}
+ /**
+ *
+ * @param newSelector
+ * @return
+ */
private boolean selectorRecorded(Selector newSelector) {
- for(Selector selector : selectors) {
+ for (Selector selector : selectors) {
boolean areJavaClassNamesNull = newSelector.getJavaClassName() == null && selector.getJavaClassName() == null;
boolean areJavaClassNamesNotNull = newSelector.getJavaClassName() != null && selector.getJavaClassName() != null;
boolean areStyleClassesNull = newSelector.getStyleClass() == null && selector.getStyleClass() == null;
@@ -199,14 +252,8 @@
boolean arePseudoClassesNotNull = newSelector.getPseudoClass() != null && selector.getPseudoClass() != null;
boolean areIdsNull = newSelector.getId() == null && selector.getId() == null;
boolean areIdsNotNull = newSelector.getId() != null && selector.getId() != null;
- if((areJavaClassNamesNull || (areJavaClassNamesNotNull
- && newSelector.getJavaClassName().equals(selector.getJavaClassName())))
- && (areStyleClassesNull || (areStyleClassesNotNull
- && newSelector.getStyleClass().equals(selector.getStyleClass())))
- && (arePseudoClassesNull || (arePseudoClassesNotNull
- && newSelector.getPseudoClass().equals(selector.getPseudoClass())))
- && (areIdsNull || (areIdsNotNull && newSelector.getId().equals(selector.getId())))) {
- return true;
+ if ((areJavaClassNamesNull || (areJavaClassNamesNotNull && newSelector.getJavaClassName().equals(selector.getJavaClassName()))) && (areStyleClassesNull || (areStyleClassesNotNull && newSelector.getStyleClass().equals(selector.getStyleClass()))) && (arePseudoClassesNull || (arePseudoClassesNotNull && newSelector.getPseudoClass().equals(selector.getPseudoClass()))) && (areIdsNull || (areIdsNotNull && newSelector.getId().equals(selector.getId())))) {
+ return true;
}
}
return false;
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/TagManager.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/TagManager.java 2009-04-21 15:57:24 UTC (rev 1355)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/TagManager.java 2009-04-24 15:37:46 UTC (rev 1356)
@@ -13,7 +13,9 @@
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.net.URL;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -26,7 +28,7 @@
* Namespace for JAXX's non-class tags, such as <script;>. The namespace normally does not
* need to be specified but can be used to resolve ambiguities.
*/
- public static final String JAXX_NAMESPACE = "http://www.jaxxframework.org/";
+ public static final String GUIX_NAMESPACE = "org.nuiton.guix.*";
/** Maps simple tag names to their default namespaces (package names). */
private static Map<String, String> defaultNamespaces = new HashMap<String, String>();
@@ -37,6 +39,9 @@
/** Keeps track of whether or not named classes exist. */
private static Map<String, Boolean> classExistenceCache = new HashMap<String, Boolean>();
+ /** */
+ private static List<String> guixClasses = new ArrayList<String>();
+
/**
* Maps bean classes to their TagHandler classes. The mapping is to TagHandler classes, rather than to
* TagHandler instances, because subclasses of the bean class should be handled by the same TagHandler
@@ -142,6 +147,13 @@
}
}
+ /**
+ *
+ * @param className
+ */
+ public static void registerGuixClasse(String className) {
+ guixClasses.add(className);
+ }
/**
* Registers a <code>TagHandler</code> for a tag. When a tag with the given name and namespace
@@ -319,82 +331,11 @@
if (name.equals("boolean") || name.equals("byte") || name.equals("short") || name.equals("int") ||
name.equals("long") || name.equals("float") || name.equals("double") || name.equals("char"))
return name;
-
- String result = null;
- String originalName = name;
- String defaultNamespace = null;
- if (defaultNamespaces.containsKey(name)) {
- defaultNamespace = defaultNamespaces.get(name);
- if (defaultNamespace == null) { // defaultNamespaces map contains a null value, which is put there to indicate ambiguity
- //compiler.reportError("class '" + name + "' is ambiguous; specify fully-qualified name (package and class) to disambiguate");
- return null;
- }
+
+ if (guixClasses.contains(name)) {
+ return GUIX_NAMESPACE.substring(0, GUIX_NAMESPACE.lastIndexOf('*')) + name;
}
- if (defaultNamespace != null && defaultNamespace.endsWith("*")) {
- result = defaultNamespace.substring(0, defaultNamespace.length() - 1) + name;
- }
-
- /*if (result == null) {
- // Inner class names (like JPopupMenu.Separator) present a special challenge. The name before the dot might be
- // a package name, or it might be a class name. If it's a class name, it might be fully qualified, or it might
- // not. And it's also not actually the correct name of the class, as far as the JVM is concerned -- the correct
- // name uses a dollar sign instead of a dot (javax.swing.JPopupMenu$Separator). And there could be more than
- // one inner class -- it's possible to have com.mycompany.Outer$Inner$Innerer$Innerest.
- //
- // The basic strategy is to start by treating the part before the last dot as a package name, as that is by far
- // the most likely case. If we don't find the class there, change the last dot to a dollar sign and try again.
- // Suppose we have the tag <com.mycompany.Outer.Inner.Innerer.Innerest/>, matching the class above. Resolution
- // proceeds like this:
- // com.mycompany.Outer.Inner.Innerer.* : Innerest
- // com.mycompany.Outer.Inner.* : Innerer$Innerest
- // com.mycompany.Outer.* : Inner$Innerer$Innerest
- // com.mycompany.* : Outer$Inner$Innerer$Innerest
- // And at this point we have a match with the class Outer$Inner$Innerer$Innerest in package com.mycompany.
- int dotPos = originalName.lastIndexOf('.');
- for (; ;) {
- String namespace = dotPos != -1 ? originalName.substring(0, dotPos) + ".*" : "*";
- name = originalName.substring(dotPos + 1).replace('.', '$');
- String packageName = determinePackage(name, namespace);
- if (packageName != null) {
- assert packageName.endsWith("*");
- if (packageName.equals(namespace) || namespace.equals("*")) {
- // check for an alias (like javax.swing.JComboBox actually being jaxx.runtime.swing.JAXXComboBox)
- TagHandler handler = registeredTags.get(new QName(namespace, name));
- if (handler != null) { // determine alias by looking at handler
- ClassDescriptor alias = ((DefaultObjectHandler) handler).getBeanClass();
- // make sure the same handler is used for both the aliased and non-aliased names, in order to avoid "no CompiledObject has been registered" error
- // the line below doesn't bother to handle the case where the aliased class name doesn't have a package, since it's a pretty safe assumption that
- // that will never happen
- assert alias.getPackageName() != null && alias.getPackageName().length() > 0 : "aliasing with no package name has not been implemented";
- registeredTags.put(new QName(alias.getPackageName() + ".*", alias.getName().substring(alias.getPackageName().length() + 1)), handler);
- result = alias.getName();
- break;
- } else { // no alias
- result = packageName.substring(0, packageName.length() - 1) + name;
- break;
- }
- }
- // else we found a class by the same name, but in the wrong package
- }
-
- if (dotPos <= 0)
- break;
- dotPos = originalName.lastIndexOf('.', dotPos - 1);
- }
- }*/
-
- //if (result != null && !result.equals(originalName))
- //result = resolveClassName(result); // check for aliases against the new name as well
-
- Class clazz;
- try {
- clazz = Class.forName(name);
- result = clazz.getCanonicalName();
- } catch (ClassNotFoundException ex) {
- result = null;
- }
-
- return result;
+ return null;
}
1
0
r1355 - in guix/trunk/guix-compiler/src/main/java/org/nuiton/guix: . compiler css model parser tags
by kmorin@users.labs.libre-entreprise.org April 21, 2009
by kmorin@users.labs.libre-entreprise.org April 21, 2009
April 21, 2009
Author: kmorin
Date: 2009-04-21 15:57:24 +0000 (Tue, 21 Apr 2009)
New Revision: 1355
Added:
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/CompilerException.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/UnsupportedAttributeException.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/UnsupportedTagException.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSS.jj
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSS.jjt
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSSParser.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSSParserConstants.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSSParserTokenManager.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSSParserTreeConstants.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/JJTCSSParserState.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/Node.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/ParseException.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/SimpleCharStream.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/SimpleNode.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/Token.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/TokenMgrError.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/Rule.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/Selector.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/StyleSheet.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JJTJavaParserState.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Java1.5.jj
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Java1.5.jjt
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaCharStream.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaParser.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaParserConstants.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaParserTokenManager.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaParserTreeConstants.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Node.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/ParseException.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/SimpleNode.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Token.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/TokenMgrError.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/ScriptHandler.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java
Modified:
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/GuixModelObject.java
Log:
Parsing du CSS
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/CompilerException.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/CompilerException.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/CompilerException.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2006 Ethan Nicholas. All rights reserved.
+ * Use is subject to license terms.
+ */
+package org.nuiton.guix;
+
+/** Thrown by the compiler when an error occurs. */
+public class CompilerException extends RuntimeException {
+ private static final long serialVersionUID = -9099889519671482440L;
+
+ /** Creates a new <code>ParseException</code>. */
+ public CompilerException() {
+ }
+
+
+ /**
+ * Creates a new <code>ParseException</code> with the specified detail message.
+ *
+ * @param msg the exception's detail message
+ */
+ public CompilerException(String msg) {
+ super(msg);
+ }
+
+
+ /**
+ * Creates a new <code>ParseException</code> with the specified cause.
+ *
+ * @param initCause the exception's initCause
+ */
+ public CompilerException(Throwable initCause) {
+ super(initCause);
+ }
+
+
+ /**
+ * Creates a new <code>ParseException</code> with the specified detail message and cause.
+ *
+ * @param msg the exception's detail message
+ * @param initCause the exception's initCause
+ */
+ public CompilerException(String msg, Throwable initCause) {
+ super(msg, initCause);
+ }
+
+
+ public void printStackTrace() {
+ super.printStackTrace();
+ System.err.println("CompilerException printed from:");
+ Thread.dumpStack();
+ }
+}
\ No newline at end of file
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java 2009-04-20 18:05:25 UTC (rev 1354)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -7,6 +7,7 @@
import java.io.IOException;
import org.nuiton.guix.compiler.GuixCompiler;
import java.io.File;
+import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
@@ -14,10 +15,14 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.guix.model.ClassDescriptor;
import org.nuiton.guix.model.GuixModelObject;
+import org.nuiton.guix.model.Rule;
+import org.nuiton.guix.model.Selector;
+import org.nuiton.guix.model.StyleSheet;
import org.xmlpull.v1.XmlPullParserFactory;
import org.xmlpull.v1.XmlSerializer;
@@ -53,8 +58,8 @@
private File targetDirectory = new File("destination");
public GuixLauncher() {
- files = new File[]{new File("/home/morin/NetBeansProjects/jaxx-gwt/trunk/jaxx-example/src/main/java/jaxx/demo/JAXXDemo.jaxx")};
- classNames = new String[]{"JAXXDemo"};
+ files = new File[]{new File("/home/morin/NetBeansProjects/jaxx-gwt/trunk/jaxx-example/src/main/java/jaxx/demo/CalculatorDemo.jaxx")};
+ classNames = new String[]{"CalculatorDemo"};
compile();
}
@@ -142,13 +147,17 @@
System.out.println(f.getAbsolutePath());
XmlSerializer serializer = factory.newSerializer();
+ XmlSerializer cssSerializer = factory.newSerializer();
serializer.setOutput(new PrintWriter(f));
serializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n");
serializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "\t");
- writeModelTree(serializer, mo);
+ cssSerializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n");
+ cssSerializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "\t");
+ writeModelTree(serializer, mo, cssSerializer);
+
serializer.endDocument();
}
@@ -249,11 +258,58 @@
}
}
- private void writeModelTree(XmlSerializer serializer, GuixModelObject mo) throws IOException {
+ private void writeModelTree(XmlSerializer serializer, GuixModelObject mo,
+ XmlSerializer cssSerializer) throws IOException {
+ if(!mo.getStyleSheets().isEmpty()) {
+ for(StyleSheet styleSheet : mo.getStyleSheets()) {
+ File ss = new File(mo.getClassDescriptor().getName() + "SS");
+ cssSerializer.setOutput(new FileWriter(ss));
+ cssSerializer.startTag("", "rules");
+ for(Rule rule : styleSheet.getRules()) {
+ cssSerializer.startTag("", "rule");
+ cssSerializer.startTag("", "selectors");
+ for(Selector selector : rule.getSelectors()) {
+ cssSerializer.startTag("", "selector");
+ cssSerializer.startTag("", "javaClassName");
+ if(selector.getJavaClassName() != null)
+ cssSerializer.text(selector.getJavaClassName());
+ cssSerializer.endTag("", "javaClassName");
+ cssSerializer.startTag("", "styleClass");
+ if(selector.getStyleClass() != null)
+ cssSerializer.text(selector.getStyleClass());
+ cssSerializer.endTag("", "styleClass");
+ cssSerializer.startTag("", "pseudoClass");
+ if(selector.getPseudoClass() != null)
+ cssSerializer.text(selector.getPseudoClass());
+ cssSerializer.endTag("", "pseudoClass");
+ cssSerializer.startTag("", "id");
+ if(selector.getId() != null)
+ cssSerializer.text(selector.getId());
+ cssSerializer.endTag("", "id");
+ cssSerializer.endTag("", "selector");
+ }
+ cssSerializer.endTag("", "selectors");
+ cssSerializer.startTag("", "properties");
+ for(Entry entry : rule.getProperties().entrySet()) {
+ cssSerializer.startTag("", (String)entry.getKey());
+ if(entry.getValue() != null)
+ cssSerializer.text((String)entry.getValue());
+ cssSerializer.endTag("", (String)entry.getKey());
+ }
+ cssSerializer.endTag("", "properties");
+ cssSerializer.endTag("", "rule");
+ }
+ cssSerializer.endTag("", "rules");
+ cssSerializer.endDocument();
+ }
+ }
serializer.startTag("", "Object");
if (mo.getId() != null && !mo.getId().equals("")) {
serializer.attribute("", "id", mo.getId());
}
+ if (mo.getStyleClass() != null && !mo.getStyleClass().equals("")) {
+ serializer.attribute("", "styleClass", mo.getStyleClass());
+ }
serializer.text(mo.getJavadoc());
serializer.startTag("", "class");
serializer.startTag("", "name");
@@ -277,7 +333,7 @@
serializer.endTag("", "class");
for (GuixModelObject child : mo.getChildren()) {
- writeModelTree(serializer, child);
+ writeModelTree(serializer, child, cssSerializer);
}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/UnsupportedAttributeException.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/UnsupportedAttributeException.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/UnsupportedAttributeException.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2006 Ethan Nicholas. All rights reserved.
+ * Use is subject to license terms.
+ */
+package org.nuiton.guix;
+
+/**
+ * Thrown by <code>TagHandler</code> when an unsupported attribute is encountered.
+ *
+ * @see jaxx.tags.TagHandler
+ */
+public class UnsupportedAttributeException extends CompilerException {
+ private static final long serialVersionUID = -6919583037172920343L;
+
+ /** Creates a new <code>UnsupportedAttributeException</code>. */
+ public UnsupportedAttributeException() {
+ }
+
+
+ /**
+ * Creates a new <code>UnsupportedAttributeException</code> with the specified detail message.
+ *
+ * @param msg the exception's detail message
+ */
+ public UnsupportedAttributeException(String msg) {
+ super(msg);
+ }
+
+
+ /**
+ * Creates a new <code>UnsupportedAttributeException</code> with the specified cause.
+ *
+ * @param initCause the exception's initCause
+ */
+ public UnsupportedAttributeException(Throwable initCause) {
+ super(initCause);
+ }
+
+
+ /**
+ * Creates a new <code>UnsupportedAttributeException</code> with the specified detail message and cause.
+ *
+ * @param msg the exception's detail message
+ * @param initCause the exception's initCause
+ */
+ public UnsupportedAttributeException(String msg, Throwable initCause) {
+ super(msg, initCause);
+ }
+}
\ No newline at end of file
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/UnsupportedTagException.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/UnsupportedTagException.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/UnsupportedTagException.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2006 Ethan Nicholas. All rights reserved.
+ * Use is subject to license terms.
+ */
+package org.nuiton.guix;
+
+/** Thrown by the compiler when an unregistered tag is encountered. */
+public class UnsupportedTagException extends CompilerException {
+ private static final long serialVersionUID = 3199732135804426699L;
+
+ /** Creates a new <code>UnsupportedTagException</code>. */
+ public UnsupportedTagException() {
+ }
+
+
+ /**
+ * Creates a new <code>UnsupportedTagException</code> with the specified detail message.
+ *
+ * @param msg the exception's detail message
+ */
+ public UnsupportedTagException(String msg) {
+ super(msg);
+ }
+
+
+ /**
+ * Creates a new <code>UnsupportedTagException</code> with the specified cause.
+ *
+ * @param initCause the exception's initCause
+ */
+ public UnsupportedTagException(Throwable initCause) {
+ super(initCause);
+ }
+
+
+ /**
+ * Creates a new <code>UnsupportedTagException</code> with the specified detail message and cause.
+ *
+ * @param msg the exception's detail message
+ * @param initCause the exception's initCause
+ */
+ public UnsupportedTagException(String msg, Throwable initCause) {
+ super(msg, initCause);
+ }
+}
\ No newline at end of file
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java 2009-04-20 18:05:25 UTC (rev 1354)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -15,6 +15,9 @@
import org.nuiton.guix.model.AttributeDescriptor;
import org.nuiton.guix.model.ClassDescriptor;
import org.nuiton.guix.model.GuixModelObject;
+import org.nuiton.guix.model.StyleSheet;
+import org.nuiton.guix.tags.ScriptHandler;
+import org.nuiton.guix.tags.StyleHandler;
import org.nuiton.guix.tags.TagManager;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -37,6 +40,8 @@
private File src;
private String outputClassName;
private GuixLauncher launchor;
+ private StyleHandler styleHandler = new StyleHandler();
+ private ScriptHandler scriptHandler = new ScriptHandler();
/*------------------------------------------------------------------------*/
/*-- Constructor methods -------------------------------------------------*/
@@ -79,8 +84,8 @@
String packageName =
resolvePackageName(nameSpace, localName);
- GuixModelObject root = new GuixModelObject(
- xpp.getAttributeValue("", "id"), doc.toString());
+ GuixModelObject root = new GuixModelObject(xpp.getAttributeValue("", "id"),
+ doc.toString(),xpp.getAttributeValue("", "styleClass"));
String className = src.getName().substring(0, src.getName().lastIndexOf('.'));
String classPackageName = src.getPath().replace('/', '.')
.substring(src.getPath().lastIndexOf("src/main/java/") + 14,
@@ -95,21 +100,18 @@
xpp.nextToken();
} while(xpp.getEventType() != XmlPullParser.START_TAG);
- if(xpp.getName().equals("script")) {
- xpp.nextToken();
- if(xpp.getEventType() == XmlPullParser.CDSECT) {
- root.getClassDescriptor().setScript(xpp.getText());
+ while(xpp.getName().equals("script")
+ ||xpp.getName().equals("style")) {
+ if(xpp.getName().equals("script")) {
+ root.getClassDescriptor().setScript(
+ scriptHandler.compileScript(xpp));
}
- while((xpp.getEventType() != XmlPullParser.END_TAG)
- || (!xpp.getName().equals("script"))) {
- xpp.nextToken();
+
+ if(xpp.getName().equals("style")) {
+ StyleSheet ss = styleHandler.compileStyle(xpp, baseDir.getPath());
+ root.getStyleSheets().add(ss);
}
- do {
- xpp.nextToken();
- } while(xpp.getEventType() != XmlPullParser.START_TAG
- && xpp.getEventType() != XmlPullParser.END_DOCUMENT);
}
-
failed = launchor.registerClassDescriptor(root.getClassDescriptor());
if (xpp.getEventType() == XmlPullParser.START_TAG) {
@@ -134,7 +136,8 @@
String packageName = resolvePackageName(nameSpace, localName);
nameSpace = packageName + ".*";
- GuixModelObject mo = new GuixModelObject(xpp.getAttributeValue("","id"),javaDoc);
+ GuixModelObject mo = new GuixModelObject(xpp.getAttributeValue("","id"),
+ javaDoc,xpp.getAttributeValue("", "styleClass"));
mo.setParent(previousMO);
mo.setClassDescriptor(new ClassDescriptor(localName, packageName));
previousMO.getChildren().add(mo);
@@ -153,6 +156,10 @@
}
else if(xpp.getEventType() == XmlPullParser.COMMENT)
doc.append(xpp.getText());
+ else if(xpp.getName() != null && xpp.getName().equals("style")) {
+ StyleSheet ss = styleHandler.compileStyle(xpp, baseDir.getPath());
+ prev.getStyleSheets().add(ss);
+ }
} while (xpp.getEventType() != XmlPullParser.START_TAG
&& xpp.getEventType() != XmlPullParser.END_DOCUMENT);
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSS.jj
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSS.jj (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSS.jj 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,587 @@
+/*@bgen(jjtree) Generated By:JJTree: Do not edit this line. .\CSS.jj */
+/*@egen*//*
+ * Copyright 2006 Ethan Nicholas. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+// I would love to have used an existing CSS parser, but all of the ones I could
+// find are licensed under the LGPL. As JAXX is BSD licensed and I'm not a big
+// fan of the LGPL, unfortunately that won't work.
+options {
+ STATIC = false;
+ JDK_VERSION = "1.4";
+}
+
+PARSER_BEGIN(CSSParser)
+package jaxx.css;
+
+public class CSSParser/*@bgen(jjtree)*/implements CSSParserTreeConstants/*@egen*/ {/*@bgen(jjtree)*/
+ protected JJTCSSParserState jjtree = new JJTCSSParserState();
+
+/*@egen*/
+ public SimpleNode popNode() {
+ if ( jjtree.nodeArity() > 0) // number of child nodes
+ return (SimpleNode)jjtree.popNode();
+ else
+ return null;
+ }
+
+ void jjtreeOpenNodeScope(Node n) {
+ ((SimpleNode) n).firstToken = getToken(1);
+ }
+
+ void jjtreeCloseNodeScope(Node n) {
+ ((SimpleNode) n).lastToken = getToken(0);
+ }
+
+ public static void main(String args[]) {
+ System.out.println("Reading from standard input...");
+ CSSParser css = new CSSParser(System.in);
+ try {
+ SimpleNode n = css.Stylesheet();
+ n.dump("");
+ System.out.println("Thank you.");
+ } catch (Exception e) {
+ System.out.println("Oops.");
+ System.out.println(e.getMessage());
+ e.printStackTrace();
+ }
+ }
+}
+
+PARSER_END(CSSParser)
+
+
+<DEFAULT, IN_RULE> SKIP :
+{
+ " "
+| "\t"
+| "\n"
+| "\r"
+| <"//" (~["\n","\r"])* ("\n"|"\r"|"\r\n")>
+| <"/*" (~["*"])* "*" (~["/"] (~["*"])* "*")* "/">
+}
+
+<*> TOKEN : /* LITERALS */
+{
+ <DECIMAL_LITERAL: <INTEGER_LITERAL> ("." <INTEGER_LITERAL>)?>
+|
+ <#INTEGER_LITERAL: (["0"-"9"])+>
+}
+
+<DEFAULT, IN_RULE> TOKEN : /* IDENTIFIER */
+{
+ <IDENTIFIER: <LETTER> (<LETTER>|<DIGIT>)*>
+|
+ <#LETTER: ["_", "-", "a"-"z", "A"-"Z"]>
+|
+ <#DIGIT: ["0"-"9"]>
+}
+
+<IN_PSEUDOCLASS> TOKEN : /* PSEUDOCLASS_IDENTIFIER */
+{
+ <PSEUDOCLASS_IDENTIFIER: <IDENTIFIER>> : DEFAULT
+}
+
+<DEFAULT> TOKEN: /* COLON */
+{
+ <PSEUDOCLASS_COLON: ":"> : IN_PSEUDOCLASS
+}
+
+<IN_RULE> TOKEN: /* COLON_IN_RULE */
+{
+ <COLON: ":">
+}
+
+<*> TOKEN: /* SEMICOLON */
+{
+ <SEMICOLON: ";">
+}
+
+TOKEN : /* LEFT BRACE */
+{
+ <LEFT_BRACE: "{"> : IN_RULE
+}
+
+<IN_RULE> TOKEN : /* RIGHT BRACE */
+{
+ <RIGHT_BRACE: "}"> : DEFAULT
+}
+
+<IN_RULE> TOKEN : /* JAVA_CODE_RULE START */
+{
+ <JAVA_CODE_START: <LEFT_BRACE>> : JAVA_CODE_RULE
+}
+
+<JAVA_CODE_RULE> TOKEN : /* JAVA_CODE_RULE */
+{
+ <JAVA_CODE: (~["}"])+ >
+}
+
+<JAVA_CODE_RULE> TOKEN : /* JAVA_CODE_RULE END */
+{
+ <JAVA_CODE_END: <RIGHT_BRACE>> : IN_RULE
+}
+
+
+<IN_PSEUDOCLASS> TOKEN : /* PROGRAMMATIC_PSEUDOCLASS */
+{
+ <PROGRAMMATIC_PSEUDOCLASS: "{" (~["}"])+ "}"> : DEFAULT
+}
+
+<IN_RULE> TOKEN : /* STRINGS */
+{
+ <STRING: "\"" (~["\"", "\\", "\n", "\r"])* "\"">
+}
+
+<IN_RULE> TOKEN : /* COLORS */
+{
+ <HEXCOLOR: "#" <HEXDIGIT> <HEXDIGIT> <HEXDIGIT> (<HEXDIGIT> <HEXDIGIT> <HEXDIGIT>)?>
+|
+ <#HEXDIGIT: ["0"-"9", "a"-"f", "A"-"F"]>
+}
+
+
+<IN_RULE> TOKEN : /* EMS */
+{
+ <EMS: <DECIMAL_LITERAL> "em">
+}
+
+
+<IN_RULE> TOKEN : /* EXS */
+{
+ <EXS: <DECIMAL_LITERAL> "ex">
+}
+
+
+<IN_RULE> TOKEN : /* LENGTH */
+{
+ <LENGTH: <DECIMAL_LITERAL> ("pt" | "mm" | "cm" | "pc" | "in")>
+}
+
+
+SimpleNode Stylesheet() : {/*@bgen(jjtree) Stylesheet */
+ SimpleNode jjtn000 = new SimpleNode(JJTSTYLESHEET);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Stylesheet */
+ try {
+/*@egen*/
+ (Rule())*/*@bgen(jjtree)*/
+ {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ }
+/*@egen*/
+ { return jjtn000; }/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+void Rule() : {/*@bgen(jjtree) Rule */
+ SimpleNode jjtn000 = new SimpleNode(JJTRULE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Rule */
+ try {
+/*@egen*/
+ Selectors()
+ <LEFT_BRACE> Declaration() (";" (Declaration())?)* <RIGHT_BRACE>/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+void Selectors() : {/*@bgen(jjtree) Selectors */
+ SimpleNode jjtn000 = new SimpleNode(JJTSELECTORS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Selectors */
+ try {
+/*@egen*/
+ Selector() ("," Selector())*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+void Selector() : {/*@bgen(jjtree) Selector */
+ SimpleNode jjtn000 = new SimpleNode(JJTSELECTOR);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Selector */
+ try {
+/*@egen*/
+ JavaClass() (Id())? (Class())? (PseudoClass())?
+|
+ Id() (Class())? (PseudoClass())?
+|
+ Class() (PseudoClass())?
+|
+ PseudoClass()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+void JavaClass() : {/*@bgen(jjtree) JavaClass */
+ SimpleNode jjtn000 = new SimpleNode(JJTJAVACLASS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) JavaClass */
+ try {
+/*@egen*/
+ <IDENTIFIER> | "*"/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+void Id() : {/*@bgen(jjtree) Id */
+ SimpleNode jjtn000 = new SimpleNode(JJTID);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Id */
+ try {
+/*@egen*/
+ "#" <IDENTIFIER>/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+void Class() : {/*@bgen(jjtree) Class */
+ SimpleNode jjtn000 = new SimpleNode(JJTCLASS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Class */
+ try {
+/*@egen*/
+ "." <IDENTIFIER>/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+void PseudoClass() : {/*@bgen(jjtree) PseudoClass */
+ SimpleNode jjtn000 = new SimpleNode(JJTPSEUDOCLASS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) PseudoClass */
+ try {
+/*@egen*/
+ <PSEUDOCLASS_COLON> (<PSEUDOCLASS_IDENTIFIER> | <PROGRAMMATIC_PSEUDOCLASS>) (AnimationProperties())?/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+void AnimationProperties() : {/*@bgen(jjtree) AnimationProperties */
+ SimpleNode jjtn000 = new SimpleNode(JJTANIMATIONPROPERTIES);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) AnimationProperties */
+ try {
+/*@egen*/
+ "[" AnimationProperty() ("," AnimationProperty())* "]"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+void AnimationProperty() : {/*@bgen(jjtree) AnimationProperty */
+ SimpleNode jjtn000 = new SimpleNode(JJTANIMATIONPROPERTY);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) AnimationProperty */
+ try {
+/*@egen*/
+ <IDENTIFIER> "=" <DECIMAL_LITERAL> (<IDENTIFIER>)?/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+void Declaration() : {/*@bgen(jjtree) Declaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Declaration */
+ try {
+/*@egen*/
+ Property() <COLON> Expression()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+void Property() : {/*@bgen(jjtree) Property */
+ SimpleNode jjtn000 = new SimpleNode(JJTPROPERTY);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Property */
+ try {
+/*@egen*/
+ <IDENTIFIER>/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+void Expression() : {/*@bgen(jjtree) Expression */
+ SimpleNode jjtn000 = new SimpleNode(JJTEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Expression */
+ try {
+/*@egen*/
+ (<DECIMAL_LITERAL> | <STRING> | <IDENTIFIER> | <HEXCOLOR> | <EMS> | <EXS> | <LENGTH> |
+ JavaCode())/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+void JavaCode() : {/*@bgen(jjtree) JavaCode */
+ SimpleNode jjtn000 = new SimpleNode(JJTJAVACODE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) JavaCode */
+ try {
+/*@egen*/
+ <JAVA_CODE_START> <JAVA_CODE> <JAVA_CODE_END>/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+void Identifier() : {/*@bgen(jjtree) Identifier */
+ SimpleNode jjtn000 = new SimpleNode(JJTIDENTIFIER);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Identifier */
+ try {
+/*@egen*/
+ <IDENTIFIER>/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSS.jjt
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSS.jjt (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSS.jjt 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,256 @@
+/*
+ * Copyright 2006 Ethan Nicholas. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+// I would love to have used an existing CSS parser, but all of the ones I could
+// find are licensed under the LGPL. As JAXX is BSD licensed and I'm not a big
+// fan of the LGPL, unfortunately that won't work.
+options {
+ STATIC = false;
+ JDK_VERSION = "1.4";
+ NODE_SCOPE_HOOK = true;
+}
+
+PARSER_BEGIN(CSSParser)
+package jaxx.css;
+
+public class CSSParser {
+ public SimpleNode popNode() {
+ if ( jjtree.nodeArity() > 0) // number of child nodes
+ return (SimpleNode)jjtree.popNode();
+ else
+ return null;
+ }
+
+ void jjtreeOpenNodeScope(Node n) {
+ ((SimpleNode) n).firstToken = getToken(1);
+ }
+
+ void jjtreeCloseNodeScope(Node n) {
+ ((SimpleNode) n).lastToken = getToken(0);
+ }
+
+ public static void main(String args[]) {
+ System.out.println("Reading from standard input...");
+ CSSParser css = new CSSParser(System.in);
+ try {
+ SimpleNode n = css.Stylesheet();
+ n.dump("");
+ System.out.println("Thank you.");
+ } catch (Exception e) {
+ System.out.println("Oops.");
+ System.out.println(e.getMessage());
+ e.printStackTrace();
+ }
+ }
+}
+
+PARSER_END(CSSParser)
+
+
+<DEFAULT, IN_RULE> SKIP :
+{
+ " "
+| "\t"
+| "\n"
+| "\r"
+| <"//" (~["\n","\r"])* ("\n"|"\r"|"\r\n")>
+| <"/*" (~["*"])* "*" (~["/"] (~["*"])* "*")* "/">
+}
+
+<*> TOKEN : /* LITERALS */
+{
+ <DECIMAL_LITERAL: <INTEGER_LITERAL> ("." <INTEGER_LITERAL>)?>
+|
+ <#INTEGER_LITERAL: (["0"-"9"])+>
+}
+
+<DEFAULT, IN_RULE> TOKEN : /* IDENTIFIER */
+{
+ <IDENTIFIER: <LETTER> (<LETTER>|<DIGIT>)*>
+|
+ <#LETTER: ["_", "-", "a"-"z", "A"-"Z"]>
+|
+ <#DIGIT: ["0"-"9"]>
+}
+
+<IN_PSEUDOCLASS> TOKEN : /* PSEUDOCLASS_IDENTIFIER */
+{
+ <PSEUDOCLASS_IDENTIFIER: <IDENTIFIER>> : DEFAULT
+}
+
+<DEFAULT> TOKEN: /* COLON */
+{
+ <PSEUDOCLASS_COLON: ":"> : IN_PSEUDOCLASS
+}
+
+<IN_RULE> TOKEN: /* COLON_IN_RULE */
+{
+ <COLON: ":">
+}
+
+<*> TOKEN: /* SEMICOLON */
+{
+ <SEMICOLON: ";">
+}
+
+TOKEN : /* LEFT BRACE */
+{
+ <LEFT_BRACE: "{"> : IN_RULE
+}
+
+<IN_RULE> TOKEN : /* RIGHT BRACE */
+{
+ <RIGHT_BRACE: "}"> : DEFAULT
+}
+
+<IN_RULE> TOKEN : /* JAVA_CODE_RULE START */
+{
+ <JAVA_CODE_START: <LEFT_BRACE>> : JAVA_CODE_RULE
+}
+
+<JAVA_CODE_RULE> TOKEN : /* JAVA_CODE_RULE */
+{
+ <JAVA_CODE: (~["}"])+ >
+}
+
+<JAVA_CODE_RULE> TOKEN : /* JAVA_CODE_RULE END */
+{
+ <JAVA_CODE_END: <RIGHT_BRACE>> : IN_RULE
+}
+
+
+<IN_PSEUDOCLASS> TOKEN : /* PROGRAMMATIC_PSEUDOCLASS */
+{
+ <PROGRAMMATIC_PSEUDOCLASS: "{" (~["}"])+ "}"> : DEFAULT
+}
+
+<IN_RULE> TOKEN : /* STRINGS */
+{
+ <STRING: "\"" (~["\"", "\\", "\n", "\r"])* "\"">
+}
+
+<IN_RULE> TOKEN : /* COLORS */
+{
+ <HEXCOLOR: "#" <HEXDIGIT> <HEXDIGIT> <HEXDIGIT> (<HEXDIGIT> <HEXDIGIT> <HEXDIGIT>)?>
+|
+ <#HEXDIGIT: ["0"-"9", "a"-"f", "A"-"F"]>
+}
+
+
+<IN_RULE> TOKEN : /* EMS */
+{
+ <EMS: <DECIMAL_LITERAL> "em">
+}
+
+
+<IN_RULE> TOKEN : /* EXS */
+{
+ <EXS: <DECIMAL_LITERAL> "ex">
+}
+
+
+<IN_RULE> TOKEN : /* LENGTH */
+{
+ <LENGTH: <DECIMAL_LITERAL> ("pt" | "mm" | "cm" | "pc" | "in")>
+}
+
+
+SimpleNode Stylesheet() : {}
+{
+ (Rule())*
+ { return jjtThis; }
+}
+
+
+void Rule() : {}
+{
+ Selectors()
+ <LEFT_BRACE> Declaration() (";" (Declaration())?)* <RIGHT_BRACE>
+}
+
+
+void Selectors() : {}
+{
+ Selector() ("," Selector())*
+}
+
+
+void Selector() : {}
+{
+ JavaClass() (Id())? (Class())? (PseudoClass())?
+|
+ Id() (Class())? (PseudoClass())?
+|
+ Class() (PseudoClass())?
+|
+ PseudoClass()
+}
+
+
+void JavaClass() : {}
+{
+ <IDENTIFIER> | "*"
+}
+
+
+void Id() : {}
+{
+ "#" <IDENTIFIER>
+}
+
+
+void Class() : {}
+{
+ "." <IDENTIFIER>
+}
+
+
+void PseudoClass() : {}
+{
+ <PSEUDOCLASS_COLON> (<PSEUDOCLASS_IDENTIFIER> | <PROGRAMMATIC_PSEUDOCLASS>) (AnimationProperties())?
+}
+
+
+void AnimationProperties() : {}
+{
+ "[" AnimationProperty() ("," AnimationProperty())* "]"
+}
+
+
+void AnimationProperty() : {}
+{
+ <IDENTIFIER> "=" <DECIMAL_LITERAL> (<IDENTIFIER>)?
+}
+
+
+void Declaration() : {}
+{
+ Property() <COLON> Expression()
+}
+
+
+void Property() : {}
+{
+ <IDENTIFIER>
+}
+
+
+void Expression() : {}
+{
+ (<DECIMAL_LITERAL> | <STRING> | <IDENTIFIER> | <HEXCOLOR> | <EMS> | <EXS> | <LENGTH> |
+ JavaCode())
+}
+
+
+void JavaCode() : {}
+{
+ <JAVA_CODE_START> <JAVA_CODE> <JAVA_CODE_END>
+}
+
+
+void Identifier() : {}
+{
+ <IDENTIFIER>
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSSParser.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSSParser.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSSParser.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,799 @@
+/* Generated By:JJTree&JavaCC: Do not edit this line. CSSParser.java */
+package org.nuiton.guix.css;
+
+public class CSSParser/*@bgen(jjtree)*/ implements CSSParserTreeConstants, CSSParserConstants {/*@bgen(jjtree)*/
+ protected JJTCSSParserState jjtree = new JJTCSSParserState();
+
+ public SimpleNode popNode() {
+ if (jjtree.nodeArity() > 0) // number of child nodes
+ return (SimpleNode) jjtree.popNode();
+ else
+ return null;
+ }
+
+ void jjtreeOpenNodeScope(Node n) {
+ ((SimpleNode) n).firstToken = getToken(1);
+ }
+
+ void jjtreeCloseNodeScope(Node n) {
+ ((SimpleNode) n).lastToken = getToken(0);
+ }
+
+ public static void main(String args[]) {
+ System.out.println("Reading from standard input...");
+ CSSParser css = new CSSParser(System.in);
+ try {
+ SimpleNode n = css.Stylesheet();
+ n.dump("");
+ System.out.println("Thank you.");
+ } catch (Exception e) {
+ System.out.println("Oops.");
+ System.out.println(e.getMessage());
+ e.printStackTrace();
+ }
+ }
+
+ final public SimpleNode Stylesheet() throws ParseException {
+ /*@bgen(jjtree) Stylesheet */
+ SimpleNode jjtn000 = new SimpleNode(JJTSTYLESHEET);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ label_1:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IDENTIFIER:
+ case PSEUDOCLASS_COLON:
+ case 29:
+ case 30:
+ case 31:
+ ;
+ break;
+ default:
+ jj_la1[0] = jj_gen;
+ break label_1;
+ }
+ Rule();
+ }
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ {
+ if (true) return jjtn000;
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ final public void Rule() throws ParseException {
+ /*@bgen(jjtree) Rule */
+ SimpleNode jjtn000 = new SimpleNode(JJTRULE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ Selectors();
+ jj_consume_token(LEFT_BRACE);
+ Declaration();
+ label_2:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case SEMICOLON:
+ ;
+ break;
+ default:
+ jj_la1[1] = jj_gen;
+ break label_2;
+ }
+ jj_consume_token(SEMICOLON);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IDENTIFIER:
+ Declaration();
+ break;
+ default:
+ jj_la1[2] = jj_gen;
+ ;
+ }
+ }
+ jj_consume_token(RIGHT_BRACE);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void Selectors() throws ParseException {
+ /*@bgen(jjtree) Selectors */
+ SimpleNode jjtn000 = new SimpleNode(JJTSELECTORS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ Selector();
+ label_3:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case 28:
+ ;
+ break;
+ default:
+ jj_la1[3] = jj_gen;
+ break label_3;
+ }
+ jj_consume_token(28);
+ Selector();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void Selector() throws ParseException {
+ /*@bgen(jjtree) Selector */
+ SimpleNode jjtn000 = new SimpleNode(JJTSELECTOR);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IDENTIFIER:
+ case 29:
+ JavaClass();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case 30:
+ Id();
+ break;
+ default:
+ jj_la1[4] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case 31:
+ Class();
+ break;
+ default:
+ jj_la1[5] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case PSEUDOCLASS_COLON:
+ PseudoClass();
+ break;
+ default:
+ jj_la1[6] = jj_gen;
+ ;
+ }
+ break;
+ case 30:
+ Id();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case 31:
+ Class();
+ break;
+ default:
+ jj_la1[7] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case PSEUDOCLASS_COLON:
+ PseudoClass();
+ break;
+ default:
+ jj_la1[8] = jj_gen;
+ ;
+ }
+ break;
+ case 31:
+ Class();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case PSEUDOCLASS_COLON:
+ PseudoClass();
+ break;
+ default:
+ jj_la1[9] = jj_gen;
+ ;
+ }
+ break;
+ case PSEUDOCLASS_COLON:
+ PseudoClass();
+ break;
+ default:
+ jj_la1[10] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void JavaClass() throws ParseException {
+ /*@bgen(jjtree) JavaClass */
+ SimpleNode jjtn000 = new SimpleNode(JJTJAVACLASS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IDENTIFIER:
+ jj_consume_token(IDENTIFIER);
+ break;
+ case 29:
+ jj_consume_token(29);
+ break;
+ default:
+ jj_la1[11] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void Id() throws ParseException {
+ /*@bgen(jjtree) Id */
+ SimpleNode jjtn000 = new SimpleNode(JJTID);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(30);
+ jj_consume_token(IDENTIFIER);
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void Class() throws ParseException {
+ /*@bgen(jjtree) Class */
+ SimpleNode jjtn000 = new SimpleNode(JJTCLASS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(31);
+ jj_consume_token(IDENTIFIER);
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void PseudoClass() throws ParseException {
+ /*@bgen(jjtree) PseudoClass */
+ SimpleNode jjtn000 = new SimpleNode(JJTPSEUDOCLASS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(PSEUDOCLASS_COLON);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case PSEUDOCLASS_IDENTIFIER:
+ jj_consume_token(PSEUDOCLASS_IDENTIFIER);
+ break;
+ case PROGRAMMATIC_PSEUDOCLASS:
+ jj_consume_token(PROGRAMMATIC_PSEUDOCLASS);
+ break;
+ default:
+ jj_la1[12] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case 32:
+ AnimationProperties();
+ break;
+ default:
+ jj_la1[13] = jj_gen;
+ ;
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void AnimationProperties() throws ParseException {
+ /*@bgen(jjtree) AnimationProperties */
+ SimpleNode jjtn000 = new SimpleNode(JJTANIMATIONPROPERTIES);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(32);
+ AnimationProperty();
+ label_4:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case 28:
+ ;
+ break;
+ default:
+ jj_la1[14] = jj_gen;
+ break label_4;
+ }
+ jj_consume_token(28);
+ AnimationProperty();
+ }
+ jj_consume_token(33);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void AnimationProperty() throws ParseException {
+ /*@bgen(jjtree) AnimationProperty */
+ SimpleNode jjtn000 = new SimpleNode(JJTANIMATIONPROPERTY);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(IDENTIFIER);
+ jj_consume_token(34);
+ jj_consume_token(DECIMAL_LITERAL);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IDENTIFIER:
+ jj_consume_token(IDENTIFIER);
+ break;
+ default:
+ jj_la1[15] = jj_gen;
+ ;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void Declaration() throws ParseException {
+ /*@bgen(jjtree) Declaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ Property();
+ jj_consume_token(COLON);
+ Expression();
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void Property() throws ParseException {
+ /*@bgen(jjtree) Property */
+ SimpleNode jjtn000 = new SimpleNode(JJTPROPERTY);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(IDENTIFIER);
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void Expression() throws ParseException {
+ /*@bgen(jjtree) Expression */
+ SimpleNode jjtn000 = new SimpleNode(JJTEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case DECIMAL_LITERAL:
+ jj_consume_token(DECIMAL_LITERAL);
+ break;
+ case STRING:
+ jj_consume_token(STRING);
+ break;
+ case IDENTIFIER:
+ jj_consume_token(IDENTIFIER);
+ break;
+ case HEXCOLOR:
+ jj_consume_token(HEXCOLOR);
+ break;
+ case EMS:
+ jj_consume_token(EMS);
+ break;
+ case EXS:
+ jj_consume_token(EXS);
+ break;
+ case LENGTH:
+ jj_consume_token(LENGTH);
+ break;
+ case JAVA_CODE_START:
+ JavaCode();
+ break;
+ default:
+ jj_la1[16] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void JavaCode() throws ParseException {
+ /*@bgen(jjtree) JavaCode */
+ SimpleNode jjtn000 = new SimpleNode(JJTJAVACODE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(JAVA_CODE_START);
+ jj_consume_token(JAVA_CODE);
+ jj_consume_token(JAVA_CODE_END);
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void Identifier() throws ParseException {
+ /*@bgen(jjtree) Identifier */
+ SimpleNode jjtn000 = new SimpleNode(JJTIDENTIFIER);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(IDENTIFIER);
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ public CSSParserTokenManager token_source;
+ SimpleCharStream jj_input_stream;
+ public Token token, jj_nt;
+ private int jj_ntk;
+ private int jj_gen;
+ final private int[] jj_la1 = new int[17];
+ static private int[] jj_la1_0;
+ static private int[] jj_la1_1;
+
+ static {
+ jj_la1_0();
+ jj_la1_1();
+ }
+
+ private static void jj_la1_0() {
+ jj_la1_0 = new int[]{0xe0002200, 0x8000, 0x200, 0x10000000, 0x40000000, 0x80000000, 0x2000, 0x80000000, 0x2000, 0x2000, 0xe0002200, 0x20000200, 0x201000, 0x0, 0x10000000, 0x200, 0xec40280,};
+ }
+
+ private static void jj_la1_1() {
+ jj_la1_1 = new int[]{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,};
+ }
+
+ public CSSParser(java.io.InputStream stream) {
+ this(stream, null);
+ }
+
+ public CSSParser(java.io.InputStream stream, String encoding) {
+ try {
+ jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1);
+ } catch (java.io.UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
+ }
+ token_source = new CSSParserTokenManager(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 17; i++) jj_la1[i] = -1;
+ }
+
+ public void ReInit(java.io.InputStream stream) {
+ ReInit(stream, null);
+ }
+
+ public void ReInit(java.io.InputStream stream, String encoding) {
+ try {
+ jj_input_stream.ReInit(stream, encoding, 1, 1);
+ } catch (java.io.UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
+ }
+ token_source.ReInit(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jjtree.reset();
+ jj_gen = 0;
+ for (int i = 0; i < 17; i++) jj_la1[i] = -1;
+ }
+
+ public CSSParser(java.io.Reader stream) {
+ jj_input_stream = new SimpleCharStream(stream, 1, 1);
+ token_source = new CSSParserTokenManager(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 17; i++) jj_la1[i] = -1;
+ }
+
+ public void ReInit(java.io.Reader stream) {
+ jj_input_stream.ReInit(stream, 1, 1);
+ token_source.ReInit(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jjtree.reset();
+ jj_gen = 0;
+ for (int i = 0; i < 17; i++) jj_la1[i] = -1;
+ }
+
+ public CSSParser(CSSParserTokenManager tm) {
+ token_source = tm;
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 17; i++) jj_la1[i] = -1;
+ }
+
+ public void ReInit(CSSParserTokenManager tm) {
+ token_source = tm;
+ token = new Token();
+ jj_ntk = -1;
+ jjtree.reset();
+ jj_gen = 0;
+ for (int i = 0; i < 17; i++) jj_la1[i] = -1;
+ }
+
+ final private Token jj_consume_token(int kind) throws ParseException {
+ Token oldToken;
+ if ((oldToken = token).next != null) token = token.next;
+ else token = token.next = token_source.getNextToken();
+ jj_ntk = -1;
+ if (token.kind == kind) {
+ jj_gen++;
+ return token;
+ }
+ token = oldToken;
+ jj_kind = kind;
+ throw generateParseException();
+ }
+
+ final public Token getNextToken() {
+ if (token.next != null) token = token.next;
+ else token = token.next = token_source.getNextToken();
+ jj_ntk = -1;
+ jj_gen++;
+ return token;
+ }
+
+ final public Token getToken(int index) {
+ Token t = token;
+ for (int i = 0; i < index; i++) {
+ if (t.next != null) t = t.next;
+ else t = t.next = token_source.getNextToken();
+ }
+ return t;
+ }
+
+ final private int jj_ntk() {
+ if ((jj_nt = token.next) == null)
+ return (jj_ntk = (token.next = token_source.getNextToken()).kind);
+ else
+ return (jj_ntk = jj_nt.kind);
+ }
+
+ private java.util.Vector jj_expentries = new java.util.Vector();
+ private int[] jj_expentry;
+ private int jj_kind = -1;
+
+ public ParseException generateParseException() {
+ Token errortok = token.next;
+ int line = errortok.beginLine, column = errortok.beginColumn;
+ String mess = (errortok.kind == 0) ? tokenImage[0] : errortok.image;
+ return new ParseException("Parse error. Encountered: " + mess, line, column);
+ }
+
+ final public void enable_tracing() {
+ }
+
+ final public void disable_tracing() {
+ }
+
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSSParserConstants.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSSParserConstants.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSSParserConstants.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,72 @@
+/* Generated By:JJTree&JavaCC: Do not edit this line. CSSParserConstants.java */
+package org.nuiton.guix.css;
+
+public interface CSSParserConstants {
+
+ int EOF = 0;
+ int DECIMAL_LITERAL = 7;
+ int INTEGER_LITERAL = 8;
+ int IDENTIFIER = 9;
+ int LETTER = 10;
+ int DIGIT = 11;
+ int PSEUDOCLASS_IDENTIFIER = 12;
+ int PSEUDOCLASS_COLON = 13;
+ int COLON = 14;
+ int SEMICOLON = 15;
+ int LEFT_BRACE = 16;
+ int RIGHT_BRACE = 17;
+ int JAVA_CODE_START = 18;
+ int JAVA_CODE = 19;
+ int JAVA_CODE_END = 20;
+ int PROGRAMMATIC_PSEUDOCLASS = 21;
+ int STRING = 22;
+ int HEXCOLOR = 23;
+ int HEXDIGIT = 24;
+ int EMS = 25;
+ int EXS = 26;
+ int LENGTH = 27;
+
+ int DEFAULT = 0;
+ int IN_RULE = 1;
+ int JAVA_CODE_RULE = 2;
+ int IN_PSEUDOCLASS = 3;
+
+ String[] tokenImage = {
+ "<EOF>",
+ "\" \"",
+ "\"\\t\"",
+ "\"\\n\"",
+ "\"\\r\"",
+ "<token of kind 5>",
+ "<token of kind 6>",
+ "<DECIMAL_LITERAL>",
+ "<INTEGER_LITERAL>",
+ "<IDENTIFIER>",
+ "<LETTER>",
+ "<DIGIT>",
+ "<PSEUDOCLASS_IDENTIFIER>",
+ "\":\"",
+ "\":\"",
+ "\";\"",
+ "\"{\"",
+ "\"}\"",
+ "<JAVA_CODE_START>",
+ "<JAVA_CODE>",
+ "<JAVA_CODE_END>",
+ "<PROGRAMMATIC_PSEUDOCLASS>",
+ "<STRING>",
+ "<HEXCOLOR>",
+ "<HEXDIGIT>",
+ "<EMS>",
+ "<EXS>",
+ "<LENGTH>",
+ "\",\"",
+ "\"*\"",
+ "\"#\"",
+ "\".\"",
+ "\"[\"",
+ "\"]\"",
+ "\"=\"",
+ };
+
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSSParserTokenManager.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSSParserTokenManager.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSSParserTokenManager.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,1152 @@
+/* Generated By:JJTree&JavaCC: Do not edit this line. CSSParserTokenManager.java */
+package org.nuiton.guix.css;
+
+public class CSSParserTokenManager implements CSSParserConstants {
+ public java.io.PrintStream debugStream = System.out;
+
+ public void setDebugStream(java.io.PrintStream ds) {
+ debugStream = ds;
+ }
+
+ private int jjStopStringLiteralDfa_0(int pos, long active0) {
+ switch (pos) {
+ default:
+ return -1;
+ }
+ }
+
+ private int jjStartNfa_0(int pos, long active0) {
+ return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
+ }
+
+ private int jjStopAtPos(int pos, int kind) {
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ return pos + 1;
+ }
+
+ private int jjStartNfaWithStates_0(int pos, int kind, int state) {
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ return pos + 1;
+ }
+ return jjMoveNfa_0(state, pos + 1);
+ }
+
+ private int jjMoveStringLiteralDfa0_0() {
+ switch (curChar) {
+ case 35:
+ return jjStopAtPos(0, 30);
+ case 42:
+ return jjStopAtPos(0, 29);
+ case 44:
+ return jjStopAtPos(0, 28);
+ case 46:
+ return jjStopAtPos(0, 31);
+ case 58:
+ return jjStopAtPos(0, 13);
+ case 59:
+ return jjStopAtPos(0, 15);
+ case 61:
+ return jjStopAtPos(0, 34);
+ case 91:
+ return jjStopAtPos(0, 32);
+ case 93:
+ return jjStopAtPos(0, 33);
+ case 123:
+ return jjStopAtPos(0, 16);
+ default:
+ return jjMoveNfa_0(3, 0);
+ }
+ }
+
+ private void jjCheckNAdd(int state) {
+ if (jjrounds[state] != jjround) {
+ jjstateSet[jjnewStateCnt++] = state;
+ jjrounds[state] = jjround;
+ }
+ }
+
+ private void jjAddStates(int start, int end) {
+ do {
+ jjstateSet[jjnewStateCnt++] = jjnextStates[start];
+ } while (start++ != end);
+ }
+
+ private void jjCheckNAddTwoStates(int state1, int state2) {
+ jjCheckNAdd(state1);
+ jjCheckNAdd(state2);
+ }
+
+ private void jjCheckNAddStates(int start, int end) {
+ do {
+ jjCheckNAdd(jjnextStates[start]);
+ } while (start++ != end);
+ }
+
+ private void jjCheckNAddStates(int start) {
+ jjCheckNAdd(jjnextStates[start]);
+ jjCheckNAdd(jjnextStates[start + 1]);
+ }
+
+ static final long[] jjbitVec0 = {
+ 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
+ };
+
+ private int jjMoveNfa_0(int startState, int curPos) {
+ int[] nextStates;
+ int startsAt = 0;
+ jjnewStateCnt = 17;
+ int i = 1;
+ jjstateSet[0] = startState;
+ int j, kind = 0x7fffffff;
+ for (; ;) {
+ if (++jjround == 0x7fffffff)
+ ReInitRounds();
+ if (curChar < 64) {
+ long l = 1L << curChar;
+ MatchLoop:
+ do {
+ switch (jjstateSet[--i]) {
+ case 3:
+ if ((0x3ff000000000000L & l) != 0L) {
+ if (kind > 7)
+ kind = 7;
+ jjCheckNAddTwoStates(0, 1);
+ } else if (curChar == 47)
+ jjAddStates(0, 1);
+ else if (curChar == 45) {
+ if (kind > 9)
+ kind = 9;
+ jjCheckNAdd(4);
+ }
+ break;
+ case 0:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 7)
+ kind = 7;
+ jjCheckNAddTwoStates(0, 1);
+ break;
+ case 1:
+ if (curChar == 46)
+ jjCheckNAdd(2);
+ break;
+ case 2:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 7)
+ kind = 7;
+ jjCheckNAdd(2);
+ break;
+ case 4:
+ if ((0x3ff200000000000L & l) == 0L)
+ break;
+ if (kind > 9)
+ kind = 9;
+ jjCheckNAdd(4);
+ break;
+ case 5:
+ if (curChar == 47)
+ jjAddStates(0, 1);
+ break;
+ case 6:
+ if (curChar == 47)
+ jjCheckNAddStates(2, 4);
+ break;
+ case 7:
+ if ((0xffffffffffffdbffL & l) != 0L)
+ jjCheckNAddStates(2, 4);
+ break;
+ case 8:
+ if ((0x2400L & l) != 0L && kind > 5)
+ kind = 5;
+ break;
+ case 9:
+ if (curChar == 10 && kind > 5)
+ kind = 5;
+ break;
+ case 10:
+ if (curChar == 13)
+ jjstateSet[jjnewStateCnt++] = 9;
+ break;
+ case 11:
+ if (curChar == 42)
+ jjCheckNAddTwoStates(12, 13);
+ break;
+ case 12:
+ if ((0xfffffbffffffffffL & l) != 0L)
+ jjCheckNAddTwoStates(12, 13);
+ break;
+ case 13:
+ if (curChar == 42)
+ jjAddStates(5, 6);
+ break;
+ case 14:
+ if ((0xffff7fffffffffffL & l) != 0L)
+ jjCheckNAddTwoStates(15, 13);
+ break;
+ case 15:
+ if ((0xfffffbffffffffffL & l) != 0L)
+ jjCheckNAddTwoStates(15, 13);
+ break;
+ case 16:
+ if (curChar == 47 && kind > 6)
+ kind = 6;
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ } else if (curChar < 128) {
+ long l = 1L << (curChar & 077);
+ MatchLoop:
+ do {
+ switch (jjstateSet[--i]) {
+ case 3:
+ case 4:
+ if ((0x7fffffe87fffffeL & l) == 0L)
+ break;
+ if (kind > 9)
+ kind = 9;
+ jjCheckNAdd(4);
+ break;
+ case 7:
+ jjAddStates(2, 4);
+ break;
+ case 12:
+ jjCheckNAddTwoStates(12, 13);
+ break;
+ case 14:
+ case 15:
+ jjCheckNAddTwoStates(15, 13);
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ } else {
+ int i2 = (curChar & 0xff) >> 6;
+ long l2 = 1L << (curChar & 077);
+ MatchLoop:
+ do {
+ switch (jjstateSet[--i]) {
+ case 7:
+ if ((jjbitVec0[i2] & l2) != 0L)
+ jjAddStates(2, 4);
+ break;
+ case 12:
+ if ((jjbitVec0[i2] & l2) != 0L)
+ jjCheckNAddTwoStates(12, 13);
+ break;
+ case 14:
+ case 15:
+ if ((jjbitVec0[i2] & l2) != 0L)
+ jjCheckNAddTwoStates(15, 13);
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ }
+ if (kind != 0x7fffffff) {
+ jjmatchedKind = kind;
+ jjmatchedPos = curPos;
+ kind = 0x7fffffff;
+ }
+ ++curPos;
+ if ((i = jjnewStateCnt) == (startsAt = 17 - (jjnewStateCnt = startsAt)))
+ return curPos;
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ return curPos;
+ }
+ }
+ }
+
+ private int jjStopStringLiteralDfa_3(int pos, long active0) {
+ switch (pos) {
+ default:
+ return -1;
+ }
+ }
+
+ private int jjStartNfa_3(int pos, long active0) {
+ return jjMoveNfa_3(jjStopStringLiteralDfa_3(pos, active0), pos + 1);
+ }
+
+ private int jjStartNfaWithStates_3(int pos, int kind, int state) {
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ return pos + 1;
+ }
+ return jjMoveNfa_3(state, pos + 1);
+ }
+
+ private int jjMoveStringLiteralDfa0_3() {
+ switch (curChar) {
+ case 59:
+ return jjStopAtPos(0, 15);
+ default:
+ return jjMoveNfa_3(3, 0);
+ }
+ }
+
+ private int jjMoveNfa_3(int startState, int curPos) {
+ int[] nextStates;
+ int startsAt = 0;
+ jjnewStateCnt = 8;
+ int i = 1;
+ jjstateSet[0] = startState;
+ int j, kind = 0x7fffffff;
+ for (; ;) {
+ if (++jjround == 0x7fffffff)
+ ReInitRounds();
+ if (curChar < 64) {
+ long l = 1L << curChar;
+ MatchLoop:
+ do {
+ switch (jjstateSet[--i]) {
+ case 3:
+ if ((0x3ff000000000000L & l) != 0L) {
+ if (kind > 7)
+ kind = 7;
+ jjCheckNAddTwoStates(0, 1);
+ } else if (curChar == 45) {
+ if (kind > 12)
+ kind = 12;
+ jjCheckNAdd(4);
+ }
+ break;
+ case 0:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 7)
+ kind = 7;
+ jjCheckNAddTwoStates(0, 1);
+ break;
+ case 1:
+ if (curChar == 46)
+ jjCheckNAdd(2);
+ break;
+ case 2:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 7)
+ kind = 7;
+ jjCheckNAdd(2);
+ break;
+ case 4:
+ if ((0x3ff200000000000L & l) == 0L)
+ break;
+ if (kind > 12)
+ kind = 12;
+ jjCheckNAdd(4);
+ break;
+ case 6:
+ jjAddStates(7, 8);
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ } else if (curChar < 128) {
+ long l = 1L << (curChar & 077);
+ MatchLoop:
+ do {
+ switch (jjstateSet[--i]) {
+ case 3:
+ if ((0x7fffffe87fffffeL & l) != 0L) {
+ if (kind > 12)
+ kind = 12;
+ jjCheckNAdd(4);
+ } else if (curChar == 123)
+ jjCheckNAdd(6);
+ break;
+ case 4:
+ if ((0x7fffffe87fffffeL & l) == 0L)
+ break;
+ if (kind > 12)
+ kind = 12;
+ jjCheckNAdd(4);
+ break;
+ case 5:
+ if (curChar == 123)
+ jjCheckNAdd(6);
+ break;
+ case 6:
+ if ((0xdfffffffffffffffL & l) != 0L)
+ jjCheckNAddTwoStates(6, 7);
+ break;
+ case 7:
+ if (curChar == 125)
+ kind = 21;
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ } else {
+ int i2 = (curChar & 0xff) >> 6;
+ long l2 = 1L << (curChar & 077);
+ MatchLoop:
+ do {
+ switch (jjstateSet[--i]) {
+ case 6:
+ if ((jjbitVec0[i2] & l2) != 0L)
+ jjAddStates(7, 8);
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ }
+ if (kind != 0x7fffffff) {
+ jjmatchedKind = kind;
+ jjmatchedPos = curPos;
+ kind = 0x7fffffff;
+ }
+ ++curPos;
+ if ((i = jjnewStateCnt) == (startsAt = 8 - (jjnewStateCnt = startsAt)))
+ return curPos;
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ return curPos;
+ }
+ }
+ }
+
+ private int jjStopStringLiteralDfa_1(int pos, long active0) {
+ switch (pos) {
+ default:
+ return -1;
+ }
+ }
+
+ private int jjStartNfa_1(int pos, long active0) {
+ return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0), pos + 1);
+ }
+
+ private int jjStartNfaWithStates_1(int pos, int kind, int state) {
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ return pos + 1;
+ }
+ return jjMoveNfa_1(state, pos + 1);
+ }
+
+ private int jjMoveStringLiteralDfa0_1() {
+ switch (curChar) {
+ case 58:
+ return jjStopAtPos(0, 14);
+ case 59:
+ return jjStopAtPos(0, 15);
+ case 125:
+ return jjStopAtPos(0, 17);
+ default:
+ return jjMoveNfa_1(0, 0);
+ }
+ }
+
+ private int jjMoveNfa_1(int startState, int curPos) {
+ int[] nextStates;
+ int startsAt = 0;
+ jjnewStateCnt = 50;
+ int i = 1;
+ jjstateSet[0] = startState;
+ int j, kind = 0x7fffffff;
+ for (; ;) {
+ if (++jjround == 0x7fffffff)
+ ReInitRounds();
+ if (curChar < 64) {
+ long l = 1L << curChar;
+ MatchLoop:
+ do {
+ switch (jjstateSet[--i]) {
+ case 0:
+ if ((0x3ff000000000000L & l) != 0L) {
+ if (kind > 7)
+ kind = 7;
+ jjCheckNAddStates(9, 22);
+ } else if (curChar == 47)
+ jjAddStates(23, 24);
+ else if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 7;
+ else if (curChar == 34)
+ jjCheckNAddTwoStates(4, 5);
+ else if (curChar == 45) {
+ if (kind > 9)
+ kind = 9;
+ jjCheckNAdd(1);
+ }
+ break;
+ case 1:
+ if ((0x3ff200000000000L & l) == 0L)
+ break;
+ if (kind > 9)
+ kind = 9;
+ jjCheckNAdd(1);
+ break;
+ case 3:
+ if (curChar == 34)
+ jjCheckNAddTwoStates(4, 5);
+ break;
+ case 4:
+ if ((0xfffffffbffffdbffL & l) != 0L)
+ jjCheckNAddTwoStates(4, 5);
+ break;
+ case 5:
+ if (curChar == 34 && kind > 22)
+ kind = 22;
+ break;
+ case 6:
+ if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 7;
+ break;
+ case 7:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 8;
+ break;
+ case 8:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 9;
+ break;
+ case 9:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 23)
+ kind = 23;
+ jjstateSet[jjnewStateCnt++] = 10;
+ break;
+ case 10:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 11;
+ break;
+ case 11:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 12;
+ break;
+ case 12:
+ if ((0x3ff000000000000L & l) != 0L && kind > 23)
+ kind = 23;
+ break;
+ case 13:
+ if (curChar == 47)
+ jjAddStates(23, 24);
+ break;
+ case 14:
+ if (curChar == 47)
+ jjCheckNAddStates(25, 27);
+ break;
+ case 15:
+ if ((0xffffffffffffdbffL & l) != 0L)
+ jjCheckNAddStates(25, 27);
+ break;
+ case 16:
+ if ((0x2400L & l) != 0L && kind > 5)
+ kind = 5;
+ break;
+ case 17:
+ if (curChar == 10 && kind > 5)
+ kind = 5;
+ break;
+ case 18:
+ if (curChar == 13)
+ jjstateSet[jjnewStateCnt++] = 17;
+ break;
+ case 19:
+ if (curChar == 42)
+ jjCheckNAddTwoStates(20, 21);
+ break;
+ case 20:
+ if ((0xfffffbffffffffffL & l) != 0L)
+ jjCheckNAddTwoStates(20, 21);
+ break;
+ case 21:
+ if (curChar == 42)
+ jjAddStates(28, 29);
+ break;
+ case 22:
+ if ((0xffff7fffffffffffL & l) != 0L)
+ jjCheckNAddTwoStates(23, 21);
+ break;
+ case 23:
+ if ((0xfffffbffffffffffL & l) != 0L)
+ jjCheckNAddTwoStates(23, 21);
+ break;
+ case 24:
+ if (curChar == 47 && kind > 6)
+ kind = 6;
+ break;
+ case 25:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 7)
+ kind = 7;
+ jjCheckNAddStates(9, 22);
+ break;
+ case 26:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 7)
+ kind = 7;
+ jjCheckNAddTwoStates(26, 27);
+ break;
+ case 27:
+ if (curChar == 46)
+ jjCheckNAdd(28);
+ break;
+ case 28:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 7)
+ kind = 7;
+ jjCheckNAdd(28);
+ break;
+ case 29:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(30, 32);
+ break;
+ case 30:
+ if (curChar == 46)
+ jjCheckNAdd(31);
+ break;
+ case 31:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(31, 33);
+ break;
+ case 34:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(33, 35);
+ break;
+ case 35:
+ if (curChar == 46)
+ jjCheckNAdd(36);
+ break;
+ case 36:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(36, 38);
+ break;
+ case 39:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(36, 41);
+ break;
+ case 40:
+ if (curChar == 46)
+ jjCheckNAdd(41);
+ break;
+ case 41:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(42, 46);
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ } else if (curChar < 128) {
+ long l = 1L << (curChar & 077);
+ MatchLoop:
+ do {
+ switch (jjstateSet[--i]) {
+ case 0:
+ if ((0x7fffffe87fffffeL & l) != 0L) {
+ if (kind > 9)
+ kind = 9;
+ jjCheckNAdd(1);
+ } else if (curChar == 123) {
+ if (kind > 18)
+ kind = 18;
+ }
+ break;
+ case 1:
+ if ((0x7fffffe87fffffeL & l) == 0L)
+ break;
+ if (kind > 9)
+ kind = 9;
+ jjCheckNAdd(1);
+ break;
+ case 2:
+ if (curChar == 123 && kind > 18)
+ kind = 18;
+ break;
+ case 4:
+ if ((0xffffffffefffffffL & l) != 0L)
+ jjAddStates(47, 48);
+ break;
+ case 7:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 8;
+ break;
+ case 8:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 9;
+ break;
+ case 9:
+ if ((0x7e0000007eL & l) == 0L)
+ break;
+ if (kind > 23)
+ kind = 23;
+ jjstateSet[jjnewStateCnt++] = 10;
+ break;
+ case 10:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 11;
+ break;
+ case 11:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 12;
+ break;
+ case 12:
+ if ((0x7e0000007eL & l) != 0L && kind > 23)
+ kind = 23;
+ break;
+ case 15:
+ jjAddStates(25, 27);
+ break;
+ case 20:
+ jjCheckNAddTwoStates(20, 21);
+ break;
+ case 22:
+ case 23:
+ jjCheckNAddTwoStates(23, 21);
+ break;
+ case 32:
+ if (curChar == 109 && kind > 25)
+ kind = 25;
+ break;
+ case 33:
+ if (curChar == 101)
+ jjstateSet[jjnewStateCnt++] = 32;
+ break;
+ case 37:
+ if (curChar == 120 && kind > 26)
+ kind = 26;
+ break;
+ case 38:
+ if (curChar == 101)
+ jjstateSet[jjnewStateCnt++] = 37;
+ break;
+ case 42:
+ if (curChar == 109 && kind > 27)
+ kind = 27;
+ break;
+ case 43:
+ if (curChar == 109)
+ jjCheckNAdd(42);
+ break;
+ case 44:
+ if (curChar == 99)
+ jjCheckNAdd(42);
+ break;
+ case 45:
+ if (curChar == 110 && kind > 27)
+ kind = 27;
+ break;
+ case 46:
+ if (curChar == 105)
+ jjstateSet[jjnewStateCnt++] = 45;
+ break;
+ case 47:
+ if (curChar == 112)
+ jjAddStates(49, 50);
+ break;
+ case 48:
+ if (curChar == 116 && kind > 27)
+ kind = 27;
+ break;
+ case 49:
+ if (curChar == 99 && kind > 27)
+ kind = 27;
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ } else {
+ int i2 = (curChar & 0xff) >> 6;
+ long l2 = 1L << (curChar & 077);
+ MatchLoop:
+ do {
+ switch (jjstateSet[--i]) {
+ case 4:
+ if ((jjbitVec0[i2] & l2) != 0L)
+ jjAddStates(47, 48);
+ break;
+ case 15:
+ if ((jjbitVec0[i2] & l2) != 0L)
+ jjAddStates(25, 27);
+ break;
+ case 20:
+ if ((jjbitVec0[i2] & l2) != 0L)
+ jjCheckNAddTwoStates(20, 21);
+ break;
+ case 22:
+ case 23:
+ if ((jjbitVec0[i2] & l2) != 0L)
+ jjCheckNAddTwoStates(23, 21);
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ }
+ if (kind != 0x7fffffff) {
+ jjmatchedKind = kind;
+ jjmatchedPos = curPos;
+ kind = 0x7fffffff;
+ }
+ ++curPos;
+ if ((i = jjnewStateCnt) == (startsAt = 50 - (jjnewStateCnt = startsAt)))
+ return curPos;
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ return curPos;
+ }
+ }
+ }
+
+ private int jjStopStringLiteralDfa_2(int pos, long active0) {
+ switch (pos) {
+ default:
+ return -1;
+ }
+ }
+
+ private int jjStartNfa_2(int pos, long active0) {
+ return jjMoveNfa_2(jjStopStringLiteralDfa_2(pos, active0), pos + 1);
+ }
+
+ private int jjStartNfaWithStates_2(int pos, int kind, int state) {
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ return pos + 1;
+ }
+ return jjMoveNfa_2(state, pos + 1);
+ }
+
+ private int jjMoveStringLiteralDfa0_2() {
+ switch (curChar) {
+ case 59:
+ return jjStartNfaWithStates_2(0, 15, 3);
+ default:
+ return jjMoveNfa_2(4, 0);
+ }
+ }
+
+ private int jjMoveNfa_2(int startState, int curPos) {
+ int[] nextStates;
+ int startsAt = 0;
+ jjnewStateCnt = 5;
+ int i = 1;
+ jjstateSet[0] = startState;
+ int j, kind = 0x7fffffff;
+ for (; ;) {
+ if (++jjround == 0x7fffffff)
+ ReInitRounds();
+ if (curChar < 64) {
+ long l = 1L << curChar;
+ MatchLoop:
+ do {
+ switch (jjstateSet[--i]) {
+ case 4:
+ if (kind > 19)
+ kind = 19;
+ jjCheckNAdd(3);
+ if ((0x3ff000000000000L & l) != 0L) {
+ if (kind > 7)
+ kind = 7;
+ jjCheckNAddTwoStates(0, 1);
+ }
+ break;
+ case 0:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 7)
+ kind = 7;
+ jjCheckNAddTwoStates(0, 1);
+ break;
+ case 1:
+ if (curChar == 46)
+ jjCheckNAdd(2);
+ break;
+ case 2:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 7)
+ kind = 7;
+ jjCheckNAdd(2);
+ break;
+ case 3:
+ if (kind > 19)
+ kind = 19;
+ jjCheckNAdd(3);
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ } else if (curChar < 128) {
+ long l = 1L << (curChar & 077);
+ MatchLoop:
+ do {
+ switch (jjstateSet[--i]) {
+ case 4:
+ if ((0xdfffffffffffffffL & l) != 0L) {
+ if (kind > 19)
+ kind = 19;
+ jjCheckNAdd(3);
+ } else if (curChar == 125) {
+ if (kind > 20)
+ kind = 20;
+ }
+ break;
+ case 3:
+ if ((0xdfffffffffffffffL & l) == 0L)
+ break;
+ kind = 19;
+ jjCheckNAdd(3);
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ } else {
+ int i2 = (curChar & 0xff) >> 6;
+ long l2 = 1L << (curChar & 077);
+ MatchLoop:
+ do {
+ switch (jjstateSet[--i]) {
+ case 4:
+ case 3:
+ if ((jjbitVec0[i2] & l2) == 0L)
+ break;
+ if (kind > 19)
+ kind = 19;
+ jjCheckNAdd(3);
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ }
+ if (kind != 0x7fffffff) {
+ jjmatchedKind = kind;
+ jjmatchedPos = curPos;
+ kind = 0x7fffffff;
+ }
+ ++curPos;
+ if ((i = jjnewStateCnt) == (startsAt = 5 - (jjnewStateCnt = startsAt)))
+ return curPos;
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ return curPos;
+ }
+ }
+ }
+
+ static final int[] jjnextStates = {
+ 6, 11, 7, 8, 10, 14, 16, 6, 7, 26, 27, 29, 30, 33, 34, 35,
+ 38, 39, 40, 43, 44, 46, 47, 14, 19, 15, 16, 18, 22, 24, 29, 30,
+ 33, 34, 35, 38, 39, 40, 43, 44, 46, 47, 41, 43, 44, 46, 47, 4,
+ 5, 48, 49,
+ };
+ public static final String[] jjstrLiteralImages = {
+ "", null, null, null, null, null, null, null, null, null, null, null, null,
+ "\72", "\72", "\73", "\173", "\175", null, null, null, null, null, null, null, null,
+ null, null, "\54", "\52", "\43", "\56", "\133", "\135", "\75",};
+ public static final String[] lexStateNames = {
+ "DEFAULT",
+ "IN_RULE",
+ "JAVA_CODE_RULE",
+ "IN_PSEUDOCLASS",
+ };
+ public static final int[] jjnewLexState = {
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 3, -1, -1, 1, 0, 2, -1, 1, 0, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ };
+ static final long[] jjtoToken = {
+ 0x7fefff281L,
+ };
+ static final long[] jjtoSkip = {
+ 0x7eL,
+ };
+ protected SimpleCharStream input_stream;
+ private final int[] jjrounds = new int[50];
+ private final int[] jjstateSet = new int[100];
+ protected char curChar;
+
+ public CSSParserTokenManager(SimpleCharStream stream) {
+ if (SimpleCharStream.staticFlag)
+ throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
+ input_stream = stream;
+ }
+
+ public CSSParserTokenManager(SimpleCharStream stream, int lexState) {
+ this(stream);
+ SwitchTo(lexState);
+ }
+
+ public void ReInit(SimpleCharStream stream) {
+ jjmatchedPos = jjnewStateCnt = 0;
+ curLexState = defaultLexState;
+ input_stream = stream;
+ ReInitRounds();
+ }
+
+ private void ReInitRounds() {
+ int i;
+ jjround = 0x80000001;
+ for (i = 50; i-- > 0;)
+ jjrounds[i] = 0x80000000;
+ }
+
+ public void ReInit(SimpleCharStream stream, int lexState) {
+ ReInit(stream);
+ SwitchTo(lexState);
+ }
+
+ public void SwitchTo(int lexState) {
+ if (lexState >= 4 || lexState < 0)
+ throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
+ else
+ curLexState = lexState;
+ }
+
+ protected Token jjFillToken() {
+ Token t = Token.newToken(jjmatchedKind);
+ t.kind = jjmatchedKind;
+ String im = jjstrLiteralImages[jjmatchedKind];
+ t.image = (im == null) ? input_stream.GetImage() : im;
+ t.beginLine = input_stream.getBeginLine();
+ t.beginColumn = input_stream.getBeginColumn();
+ t.endLine = input_stream.getEndLine();
+ t.endColumn = input_stream.getEndColumn();
+ return t;
+ }
+
+ int curLexState = 0;
+ int defaultLexState = 0;
+ int jjnewStateCnt;
+ int jjround;
+ int jjmatchedPos;
+ int jjmatchedKind;
+
+ public Token getNextToken() {
+ int kind;
+ Token specialToken = null;
+ Token matchedToken;
+ int curPos = 0;
+
+ EOFLoop:
+ for (; ;) {
+ try {
+ curChar = input_stream.BeginToken();
+ }
+ catch (java.io.IOException e) {
+ jjmatchedKind = 0;
+ matchedToken = jjFillToken();
+ return matchedToken;
+ }
+
+ switch (curLexState) {
+ case 0:
+ try {
+ input_stream.backup(0);
+ while (curChar <= 32 && (0x100002600L & (1L << curChar)) != 0L)
+ curChar = input_stream.BeginToken();
+ }
+ catch (java.io.IOException e1) {
+ continue EOFLoop;
+ }
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_0();
+ break;
+ case 1:
+ try {
+ input_stream.backup(0);
+ while (curChar <= 32 && (0x100002600L & (1L << curChar)) != 0L)
+ curChar = input_stream.BeginToken();
+ }
+ catch (java.io.IOException e1) {
+ continue EOFLoop;
+ }
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_1();
+ break;
+ case 2:
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_2();
+ break;
+ case 3:
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_3();
+ break;
+ }
+ if (jjmatchedKind != 0x7fffffff) {
+ if (jjmatchedPos + 1 < curPos)
+ input_stream.backup(curPos - jjmatchedPos - 1);
+ if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) {
+ matchedToken = jjFillToken();
+ if (jjnewLexState[jjmatchedKind] != -1)
+ curLexState = jjnewLexState[jjmatchedKind];
+ return matchedToken;
+ } else {
+ if (jjnewLexState[jjmatchedKind] != -1)
+ curLexState = jjnewLexState[jjmatchedKind];
+ continue EOFLoop;
+ }
+ }
+ int error_line = input_stream.getEndLine();
+ int error_column = input_stream.getEndColumn();
+ String error_after = null;
+ boolean EOFSeen = false;
+ try {
+ input_stream.readChar();
+ input_stream.backup(1);
+ }
+ catch (java.io.IOException e1) {
+ EOFSeen = true;
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ if (curChar == '\n' || curChar == '\r') {
+ error_line++;
+ error_column = 0;
+ } else
+ error_column++;
+ }
+ if (!EOFSeen) {
+ input_stream.backup(1);
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ }
+ throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
+ }
+ }
+
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSSParserTreeConstants.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSSParserTreeConstants.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/CSSParserTreeConstants.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,40 @@
+/* Generated By:JJTree: Do not edit this line. .\CSSParserTreeConstants.java */
+
+package org.nuiton.guix.css;
+
+public interface CSSParserTreeConstants {
+ public int JJTSTYLESHEET = 0;
+ public int JJTRULE = 1;
+ public int JJTSELECTORS = 2;
+ public int JJTSELECTOR = 3;
+ public int JJTJAVACLASS = 4;
+ public int JJTID = 5;
+ public int JJTCLASS = 6;
+ public int JJTPSEUDOCLASS = 7;
+ public int JJTANIMATIONPROPERTIES = 8;
+ public int JJTANIMATIONPROPERTY = 9;
+ public int JJTDECLARATION = 10;
+ public int JJTPROPERTY = 11;
+ public int JJTEXPRESSION = 12;
+ public int JJTJAVACODE = 13;
+ public int JJTIDENTIFIER = 14;
+
+
+ public String[] jjtNodeName = {
+ "Stylesheet",
+ "Rule",
+ "Selectors",
+ "Selector",
+ "JavaClass",
+ "Id",
+ "Class",
+ "PseudoClass",
+ "AnimationProperties",
+ "AnimationProperty",
+ "Declaration",
+ "Property",
+ "Expression",
+ "JavaCode",
+ "Identifier",
+ };
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/JJTCSSParserState.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/JJTCSSParserState.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/JJTCSSParserState.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,123 @@
+/* Generated By:JJTree: Do not edit this line. .\JJTCSSParserState.java */
+
+package org.nuiton.guix.css;
+
+class JJTCSSParserState {
+ private java.util.Stack<Node> nodes;
+ private java.util.Stack<Integer> marks;
+
+ private int sp; // number of nodes on stack
+ private int mk; // current mark
+ private boolean node_created;
+
+ JJTCSSParserState() {
+ nodes = new java.util.Stack<Node>();
+ marks = new java.util.Stack<Integer>();
+ sp = 0;
+ mk = 0;
+ }
+
+ /* Determines whether the current node was actually closed and
+ pushed. This should only be called in the final user action of a
+ node scope. */
+ boolean nodeCreated() {
+ return node_created;
+ }
+
+ /* Call this to reinitialize the node stack. It is called
+automatically by the parser's ReInit() method. */
+ void reset() {
+ nodes.removeAllElements();
+ marks.removeAllElements();
+ sp = 0;
+ mk = 0;
+ }
+
+ /* Returns the root node of the AST. It only makes sense to call
+this after a successful parse. */
+ Node rootNode() {
+ return nodes.elementAt(0);
+ }
+
+ /* Pushes a node on to the stack. */
+ void pushNode(Node n) {
+ nodes.push(n);
+ ++sp;
+ }
+
+ /* Returns the node on the top of the stack, and remove it from the
+ stack. */
+ Node popNode() {
+ if (--sp < mk) {
+ mk = marks.pop();
+ }
+ return nodes.pop();
+ }
+
+ /* Returns the node currently on the top of the stack. */
+ Node peekNode() {
+ return nodes.peek();
+ }
+
+ /* Returns the number of children on the stack in the current node
+ scope. */
+ int nodeArity() {
+ return sp - mk;
+ }
+
+
+ void clearNodeScope(Node n) {
+ while (sp > mk) {
+ popNode();
+ }
+ mk = marks.pop();
+ }
+
+
+ void openNodeScope(Node n) {
+ marks.push(mk);
+ mk = sp;
+ n.jjtOpen();
+ }
+
+
+ /* A definite node is constructed from a specified number of
+children. That number of nodes are popped from the stack and
+made the children of the definite node. Then the definite node
+is pushed on to the stack. */
+ void closeNodeScope(Node n, int num) {
+ mk = marks.pop();
+ while (num-- > 0) {
+ Node c = popNode();
+ c.jjtSetParent(n);
+ n.jjtAddChild(c, num);
+ }
+ n.jjtClose();
+ pushNode(n);
+ node_created = true;
+ }
+
+
+ /* A conditional node is constructed if its condition is true. All
+the nodes that have been pushed since the node was opened are
+made children of the the conditional node, which is then pushed
+on to the stack. If the condition is false the node is not
+constructed and they are left on the stack. */
+ void closeNodeScope(Node n, boolean condition) {
+ if (condition) {
+ int a = nodeArity();
+ mk = marks.pop();
+ while (a-- > 0) {
+ Node c = popNode();
+ c.jjtSetParent(n);
+ n.jjtAddChild(c, a);
+ }
+ n.jjtClose();
+ pushNode(n);
+ node_created = true;
+ } else {
+ mk = marks.pop();
+ node_created = false;
+ }
+ }
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/Node.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/Node.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/Node.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,51 @@
+/* Generated By:JJTree: Do not edit this line. Node.java */
+
+package org.nuiton.guix.css;
+
+/* All AST nodes must implement this interface. It provides basic
+ machinery for constructing the parent and child relationships
+ between nodes. */
+
+public interface Node {
+
+ /**
+ * This method is called after the node has been made the current
+ * node. It indicates that child nodes can now be added to it.
+ */
+ public void jjtOpen();
+
+ /**
+ * This method is called after all the child nodes have been
+ * added.
+ */
+ public void jjtClose();
+
+ /**
+ * This pair of methods are used to inform the node of its
+ * parent.
+ *
+ * @param n node
+ */
+ public void jjtSetParent(Node n);
+
+ public Node jjtGetParent();
+
+ /**
+ * This method tells the node to add its argument to the node's
+ * list of children.
+ *
+ * @param n node
+ * @param i pos
+ */
+ public void jjtAddChild(Node n, int i);
+
+ /**
+ * @param i pos
+ * @return a child node. The children are numbered
+ * from zero, left to right.
+ */
+ public Node jjtGetChild(int i);
+
+ /** @return the number of children the node has. */
+ public int jjtGetNumChildren();
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/ParseException.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/ParseException.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/ParseException.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,20 @@
+/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 3.0 */
+package org.nuiton.guix.css;
+
+public class ParseException extends org.nuiton.guix.parser.ParseException {
+ private static final long serialVersionUID = 229575674880359031L;
+
+ public ParseException() {
+ super();
+ }
+
+
+ public ParseException(String message) {
+ super(message);
+ }
+
+
+ public ParseException(String message, int line, int column) {
+ super(message, line, column);
+ }
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/SimpleCharStream.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/SimpleCharStream.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/SimpleCharStream.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,398 @@
+/* Generated By:JavaCC: Do not edit this line. SimpleCharStream.java Version 4.0 */
+package org.nuiton.guix.css;
+
+/**
+ * An implementation of interface CharStream, where the stream is assumed to
+ * contain only ASCII characters (without unicode processing).
+ */
+
+public class SimpleCharStream {
+ public static final boolean staticFlag = false;
+ int bufsize;
+ int available;
+ int tokenBegin;
+ public int bufpos = -1;
+ protected int bufline[];
+ protected int bufcolumn[];
+
+ protected int column = 0;
+ protected int line = 1;
+
+ protected boolean prevCharIsCR = false;
+ protected boolean prevCharIsLF = false;
+
+ protected java.io.Reader inputStream;
+
+ protected char[] buffer;
+ protected int maxNextCharInd = 0;
+ protected int inBuf = 0;
+ protected int tabSize = 8;
+
+ protected void setTabSize(int i) {
+ tabSize = i;
+ }
+
+ protected int getTabSize(int i) {
+ return tabSize;
+ }
+
+
+ protected void ExpandBuff(boolean wrapAround) {
+ char[] newbuffer = new char[bufsize + 2048];
+ int newbufline[] = new int[bufsize + 2048];
+ int newbufcolumn[] = new int[bufsize + 2048];
+
+ try {
+ if (wrapAround) {
+ System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+ System.arraycopy(buffer, 0, newbuffer,
+ bufsize - tokenBegin, bufpos);
+ buffer = newbuffer;
+
+ System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+ System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos);
+ bufline = newbufline;
+
+ System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+ System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos);
+ bufcolumn = newbufcolumn;
+
+ maxNextCharInd = (bufpos += (bufsize - tokenBegin));
+ } else {
+ System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+ buffer = newbuffer;
+
+ System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+ bufline = newbufline;
+
+ System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+ bufcolumn = newbufcolumn;
+
+ maxNextCharInd = (bufpos -= tokenBegin);
+ }
+ }
+ catch (Throwable t) {
+ throw new Error(t.getMessage());
+ }
+
+
+ bufsize += 2048;
+ available = bufsize;
+ tokenBegin = 0;
+ }
+
+ protected void FillBuff() throws java.io.IOException {
+ if (maxNextCharInd == available) {
+ if (available == bufsize) {
+ if (tokenBegin > 2048) {
+ bufpos = maxNextCharInd = 0;
+ available = tokenBegin;
+ } else if (tokenBegin < 0)
+ bufpos = maxNextCharInd = 0;
+ else
+ ExpandBuff(false);
+ } else if (available > tokenBegin)
+ available = bufsize;
+ else if ((tokenBegin - available) < 2048)
+ ExpandBuff(true);
+ else
+ available = tokenBegin;
+ }
+
+ int i;
+ try {
+ if ((i = inputStream.read(buffer, maxNextCharInd,
+ available - maxNextCharInd)) == -1) {
+ inputStream.close();
+ throw new java.io.IOException();
+ } else
+ maxNextCharInd += i;
+ }
+ catch (java.io.IOException e) {
+ --bufpos;
+ backup(0);
+ if (tokenBegin == -1)
+ tokenBegin = bufpos;
+ throw e;
+ }
+ }
+
+ public char BeginToken() throws java.io.IOException {
+ tokenBegin = -1;
+ char c = readChar();
+ tokenBegin = bufpos;
+
+ return c;
+ }
+
+ protected void UpdateLineColumn(char c) {
+ column++;
+
+ if (prevCharIsLF) {
+ prevCharIsLF = false;
+ line += (column = 1);
+ } else if (prevCharIsCR) {
+ prevCharIsCR = false;
+ if (c == '\n') {
+ prevCharIsLF = true;
+ } else
+ line += (column = 1);
+ }
+
+ switch (c) {
+ case '\r':
+ prevCharIsCR = true;
+ break;
+ case '\n':
+ prevCharIsLF = true;
+ break;
+ case '\t':
+ column--;
+ column += (tabSize - (column % tabSize));
+ break;
+ default:
+ break;
+ }
+
+ bufline[bufpos] = line;
+ bufcolumn[bufpos] = column;
+ }
+
+ public char readChar() throws java.io.IOException {
+ if (inBuf > 0) {
+ --inBuf;
+
+ if (++bufpos == bufsize)
+ bufpos = 0;
+
+ return buffer[bufpos];
+ }
+
+ if (++bufpos >= maxNextCharInd)
+ FillBuff();
+
+ char c = buffer[bufpos];
+
+ UpdateLineColumn(c);
+ return (c);
+ }
+
+ /**
+ * @return ???
+ * @see #getEndColumn
+ * @deprecated
+ */
+
+ public int getColumn() {
+ return bufcolumn[bufpos];
+ }
+
+ /**
+ * @return ???
+ * @see #getEndLine
+ * @deprecated
+ */
+
+ public int getLine() {
+ return bufline[bufpos];
+ }
+
+ public int getEndColumn() {
+ return bufcolumn[bufpos];
+ }
+
+ public int getEndLine() {
+ return bufline[bufpos];
+ }
+
+ public int getBeginColumn() {
+ return bufcolumn[tokenBegin];
+ }
+
+ public int getBeginLine() {
+ return bufline[tokenBegin];
+ }
+
+ public void backup(int amount) {
+
+ inBuf += amount;
+ if ((bufpos -= amount) < 0)
+ bufpos += bufsize;
+ }
+
+ public SimpleCharStream(java.io.Reader dstream, int startline,
+ int startcolumn, int buffersize) {
+ inputStream = dstream;
+ line = startline;
+ column = startcolumn - 1;
+
+ available = bufsize = buffersize;
+ buffer = new char[buffersize];
+ bufline = new int[buffersize];
+ bufcolumn = new int[buffersize];
+ }
+
+ public SimpleCharStream(java.io.Reader dstream, int startline,
+ int startcolumn) {
+ this(dstream, startline, startcolumn, 4096);
+ }
+
+ public SimpleCharStream(java.io.Reader dstream) {
+ this(dstream, 1, 1, 4096);
+ }
+
+ public void ReInit(java.io.Reader dstream, int startline,
+ int startcolumn, int buffersize) {
+ inputStream = dstream;
+ line = startline;
+ column = startcolumn - 1;
+
+ if (buffer == null || buffersize != buffer.length) {
+ available = bufsize = buffersize;
+ buffer = new char[buffersize];
+ bufline = new int[buffersize];
+ bufcolumn = new int[buffersize];
+ }
+ prevCharIsLF = prevCharIsCR = false;
+ tokenBegin = inBuf = maxNextCharInd = 0;
+ bufpos = -1;
+ }
+
+ public void ReInit(java.io.Reader dstream, int startline,
+ int startcolumn) {
+ ReInit(dstream, startline, startcolumn, 4096);
+ }
+
+ public void ReInit(java.io.Reader dstream) {
+ ReInit(dstream, 1, 1, 4096);
+ }
+
+ public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline,
+ int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException {
+ this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+ }
+
+ public SimpleCharStream(java.io.InputStream dstream, int startline,
+ int startcolumn, int buffersize) {
+ this(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
+ }
+
+ public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline,
+ int startcolumn) throws java.io.UnsupportedEncodingException {
+ this(dstream, encoding, startline, startcolumn, 4096);
+ }
+
+ public SimpleCharStream(java.io.InputStream dstream, int startline,
+ int startcolumn) {
+ this(dstream, startline, startcolumn, 4096);
+ }
+
+ public SimpleCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException {
+ this(dstream, encoding, 1, 1, 4096);
+ }
+
+ public SimpleCharStream(java.io.InputStream dstream) {
+ this(dstream, 1, 1, 4096);
+ }
+
+ public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+ int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException {
+ ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+ }
+
+ public void ReInit(java.io.InputStream dstream, int startline,
+ int startcolumn, int buffersize) {
+ ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
+ }
+
+ public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException {
+ ReInit(dstream, encoding, 1, 1, 4096);
+ }
+
+ public void ReInit(java.io.InputStream dstream) {
+ ReInit(dstream, 1, 1, 4096);
+ }
+
+ public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+ int startcolumn) throws java.io.UnsupportedEncodingException {
+ ReInit(dstream, encoding, startline, startcolumn, 4096);
+ }
+
+ public void ReInit(java.io.InputStream dstream, int startline,
+ int startcolumn) {
+ ReInit(dstream, startline, startcolumn, 4096);
+ }
+
+ public String GetImage() {
+ if (bufpos >= tokenBegin)
+ return new String(buffer, tokenBegin, bufpos - tokenBegin + 1);
+ else
+ return new String(buffer, tokenBegin, bufsize - tokenBegin) +
+ new String(buffer, 0, bufpos + 1);
+ }
+
+ public char[] GetSuffix(int len) {
+ char[] ret = new char[len];
+
+ if ((bufpos + 1) >= len)
+ System.arraycopy(buffer, bufpos - len + 1, ret, 0, len);
+ else {
+ System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0,
+ len - bufpos - 1);
+ System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1);
+ }
+
+ return ret;
+ }
+
+ public void Done() {
+ buffer = null;
+ bufline = null;
+ bufcolumn = null;
+ }
+
+ /**
+ * Method to adjust line and column numbers for the start of a token.
+ *
+ * @param newLine ?
+ * @param newCol ?
+ */
+ public void adjustBeginLineColumn(int newLine, int newCol) {
+ int start = tokenBegin;
+ int len;
+
+ if (bufpos >= tokenBegin) {
+ len = bufpos - tokenBegin + inBuf + 1;
+ } else {
+ len = bufsize - tokenBegin + bufpos + 1 + inBuf;
+ }
+
+ int i = 0, j = 0, k;
+ int nextColDiff, columnDiff = 0;
+
+ while (i < len &&
+ bufline[j = start % bufsize] == bufline[k = ++start % bufsize]) {
+ bufline[j] = newLine;
+ nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];
+ bufcolumn[j] = newCol + columnDiff;
+ columnDiff = nextColDiff;
+ i++;
+ }
+
+ if (i < len) {
+ bufline[j] = newLine++;
+ bufcolumn[j] = newCol + columnDiff;
+
+ while (i++ < len) {
+ if (bufline[j = start % bufsize] != bufline[++start % bufsize])
+ bufline[j] = newLine++;
+ else
+ bufline[j] = newLine;
+ }
+ }
+
+ line = bufline[j];
+ column = bufcolumn[j];
+ }
+
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/SimpleNode.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/SimpleNode.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/SimpleNode.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,122 @@
+/* Generated By:JJTree: Do not edit this line. SimpleNode.java */
+
+package org.nuiton.guix.css;
+
+public class SimpleNode implements Node {
+ protected Node parent;
+ protected Node[] children;
+ protected int id;
+ protected CSSParser parser;
+ public Token firstToken;
+ public Token lastToken;
+
+
+ public SimpleNode(int i) {
+ id = i;
+ }
+
+ public SimpleNode(CSSParser p, int i) {
+ this(i);
+ parser = p;
+ }
+
+
+ public int getId() {
+ return id;
+ }
+
+ public void jjtOpen() {
+ }
+
+ public void jjtClose() {
+ }
+
+ public void jjtSetParent(Node n) {
+ parent = n;
+ }
+
+ public Node jjtGetParent() {
+ return parent;
+ }
+
+ public SimpleNode getParent() {
+ return (SimpleNode) parent;
+ }
+
+ public void jjtAddChild(Node n, int i) {
+ if (children == null) {
+ children = new Node[i + 1];
+ } else if (i >= children.length) {
+ Node c[] = new Node[i + 1];
+ System.arraycopy(children, 0, c, 0, children.length);
+ children = c;
+ }
+ children[i] = n;
+ }
+
+ public Node jjtGetChild(int i) {
+ return children[i];
+ }
+
+ public SimpleNode getChild(int i) {
+ return (SimpleNode) children[i];
+ }
+
+ public int jjtGetNumChildren() {
+ return (children == null) ? 0 : children.length;
+ }
+
+ /* You can override these two methods in subclasses of SimpleNode to
+customize the way the node appears when the tree is dumped. If
+your output uses more than one line you should override
+toString(String), otherwise overriding toString() is probably all
+you need to do. */
+
+ @Override
+ public String toString() {
+ return getClass().getName() + "[" + getText() + "]";
+ }
+
+ public String toString(String prefix) {
+ return prefix + toString();
+ }
+
+ /* Override this method if you want to customize how the node dumps
+ out its children. */
+
+ public void dump(String prefix) {
+ System.out.println(toString(prefix));
+ if (children != null) {
+ for (Node aChildren : children) {
+ SimpleNode n = (SimpleNode) aChildren;
+ if (n != null) {
+ n.dump(prefix + " ");
+ }
+ }
+ }
+ }
+
+ private void appendSpecialTokens(StringBuffer s, Token st) {
+ if (st != null) {
+ appendSpecialTokens(s, st.specialToken);
+ s.append(st.image);
+ }
+ }
+
+
+ /** @return the text of the tokens comprising this node. */
+ public String getText() {
+ StringBuffer text = new StringBuffer();
+ Token t = firstToken;
+ while (t != null) {
+ appendSpecialTokens(text, t.specialToken);
+ text.append(t.image);
+ if (t == lastToken)
+ break;
+ t = t.next;
+ }
+
+ return text.toString();
+ }
+}
+
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/Token.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/Token.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/Token.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,76 @@
+/* Generated By:JavaCC: Do not edit this line. Token.java Version 3.0 */
+package org.nuiton.guix.css;
+
+/** Describes the input token stream. */
+
+public class Token {
+
+ /**
+ * An integer that describes the kind of this token. This numbering
+ * system is determined by JavaCCParser, and a table of these numbers is
+ * stored in the file ...Constants.java.
+ */
+ public int kind;
+
+ /**
+ * beginLine and beginColumn describe the position of the first character
+ * of this token; endLine and endColumn describe the position of the
+ * last character of this token.
+ */
+ public int beginLine, beginColumn, endLine, endColumn;
+
+ /** The string image of the token. */
+ public String image;
+
+ /**
+ * A reference to the next regular (non-special) token from the input
+ * stream. If this is the last token from the input stream, or if the
+ * token manager has not read tokens beyond this one, this field is
+ * set to null. This is true only if this token is also a regular
+ * token. Otherwise, see below for a description of the contents of
+ * this field.
+ */
+ public Token next;
+
+ /**
+ * This field is used to access special tokens that occur prior to this
+ * token, but after the immediately preceding regular (non-special) token.
+ * If there are no such special tokens, this field is set to null.
+ * When there are more than one such special token, this field refers
+ * to the last of these special tokens, which in turn refers to the next
+ * previous special token through its specialToken field, and so on
+ * until the first special token (whose specialToken field is null).
+ * The next fields of special tokens refer to other special tokens that
+ * immediately follow it (without an intervening regular token). If there
+ * is no such token, this field is null.
+ */
+ public Token specialToken;
+
+ /** Returns the image. */
+ public String toString() {
+ return image;
+ }
+
+ /**
+ * Returns a new Token object, by default. However, if you want, you
+ * can create and return subclass objects based on the value of ofKind.
+ * Simply add the cases to the switch for all those special cases.
+ * For example, if you have a subclass of Token called IDToken that
+ * you want to create if ofKind is ID, simlpy add something like :
+ * <p/>
+ * case MyParserConstants.ID : return new IDToken();
+ * <p/>
+ * to the following switch statement. Then you can cast matchedToken
+ * variable to the appropriate type and use it in your lexical actions.
+ *
+ * @param ofKind kind of token
+ * @return the new token
+ */
+ public static Token newToken(int ofKind) {
+ switch (ofKind) {
+ default:
+ return new Token();
+ }
+ }
+
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/TokenMgrError.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/TokenMgrError.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/css/TokenMgrError.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,126 @@
+/* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 3.0 */
+package org.nuiton.guix.css;
+
+public class TokenMgrError extends Error {
+ /*
+ * Ordinals for various reasons why an Error of this type can be thrown.
+ */
+
+ /** Lexical error occured. */
+ static final int LEXICAL_ERROR = 0;
+
+ /** An attempt wass made to create a second instance of a static token manager. */
+ static final int STATIC_LEXER_ERROR = 1;
+
+ /** Tried to change to an invalid lexical state. */
+ static final int INVALID_LEXICAL_STATE = 2;
+
+ /** Detected (and bailed out of) an infinite loop in the token manager. */
+ static final int LOOP_DETECTED = 3;
+
+ /**
+ * Indicates the reason why the exception is thrown. It will have
+ * one of the above 4 values.
+ */
+ int errorCode;
+ private static final long serialVersionUID = -4308847190164230336L;
+
+ /**
+ * Replaces unprintable characters by their espaced (or unicode escaped)
+ * equivalents in the given string
+ *
+ * @param str text to espace
+ * @return the espaced text
+ */
+ protected static String addEscapes(String str) {
+ StringBuffer retval = new StringBuffer();
+ char ch;
+ for (int i = 0; i < str.length(); i++) {
+ switch (str.charAt(i)) {
+ case 0:
+ continue;
+ case '\b':
+ retval.append("\\b");
+ continue;
+ case '\t':
+ retval.append("\\t");
+ continue;
+ case '\n':
+ retval.append("\\n");
+ continue;
+ case '\f':
+ retval.append("\\f");
+ continue;
+ case '\r':
+ retval.append("\\r");
+ continue;
+ case '\"':
+ retval.append("\\\"");
+ continue;
+ case '\'':
+ retval.append("\\\'");
+ continue;
+ case '\\':
+ retval.append("\\\\");
+ continue;
+ default:
+ if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
+ String s = "0000" + Integer.toString(ch, 16);
+ retval.append("\\u").append(s.substring(s.length() - 4, s.length()));
+ } else {
+ retval.append(ch);
+ }
+ }
+ }
+ return retval.toString();
+ }
+
+ /**
+ * @param EOFSeen : indicates if EOF caused the lexicl error
+ * @param lexState : lexical state in which this error occured
+ * @param errorLine : line number when the error occured
+ * @param errorColumn : column number when the error occured
+ * @param errorAfter : prefix that was seen before this error occured
+ * @param curChar : the offending character
+ * Note: You can customize the lexical error message by modifying this method.
+ * @return a detailed message for the Error when it is thrown by the
+ * token manager to indicate a lexical error.
+ */
+ protected static String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) {
+ return ("Lexical error at line " +
+ errorLine + ", column " +
+ errorColumn + ". Encountered: " +
+ (EOFSeen ? "<EOF> " : ("\"" + addEscapes(String.valueOf(curChar)) + "\"") + " (" + (int) curChar + "), ") +
+ "after : \"" + addEscapes(errorAfter) + "\"");
+ }
+
+ /**
+ * You can also modify the body of this method to customize your error messages.
+ * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not
+ * of end-users concern, so you can return something like :
+ * <p/>
+ * "Internal Error : Please file a bug report .... "
+ * <p/>
+ * from this method for such cases in the release version of your parser.
+ */
+ @Override
+ public String getMessage() {
+ return super.getMessage();
+ }
+
+ /*
+ * Constructors of various flavors follow.
+ */
+
+ public TokenMgrError() {
+ }
+
+ public TokenMgrError(String message, int reason) {
+ super(message);
+ errorCode = reason;
+ }
+
+ public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) {
+ this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason);
+ }
+}
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/GuixModelObject.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/GuixModelObject.java 2009-04-20 18:05:25 UTC (rev 1354)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/GuixModelObject.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -5,6 +5,7 @@
package org.nuiton.guix.model;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -15,14 +16,17 @@
private String id;
private GuixModelObject parent;
- private List<GuixModelObject> children;
+ private List<GuixModelObject> children = new ArrayList<GuixModelObject>();
private ClassDescriptor classDescriptor;
- private List<AttributeDescriptor> attributeDescriptors;
+ private List<AttributeDescriptor> attributeDescriptors = new ArrayList<AttributeDescriptor>();
+ private List<StyleSheet> styleSheets = new ArrayList<StyleSheet>();
private String javadoc;
+ private String styleClass;
- public GuixModelObject(String id, String javadoc) {
+ public GuixModelObject(String id, String javadoc, String styleClass) {
this.id = id;
this.javadoc = javadoc;
+ this.styleClass = styleClass;
}
public List<AttributeDescriptor> getAttributeDescriptors() {
@@ -72,4 +76,21 @@
public void setJavadoc(String javadoc) {
this.javadoc = javadoc;
}
+
+ public List<StyleSheet> getStyleSheets() {
+ return styleSheets;
+ }
+
+ public void setStyleSheets(List<StyleSheet> styleSheets) {
+ this.styleSheets = styleSheets;
+ }
+
+ public String getStyleClass() {
+ return styleClass;
+ }
+
+ public void setStyleClass(String styleClass) {
+ this.styleClass = styleClass;
+ }
+
}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/Rule.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/Rule.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/Rule.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,38 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.nuiton.guix.model;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.List;
+
+/**
+ *
+ * @author morin
+ */
+public class Rule {
+
+ private Map<String,String> properties = new HashMap<String,String>();
+ private List<Selector> selectors = new ArrayList<Selector>();
+
+ public Map<String, String> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, String> properties) {
+ this.properties = properties;
+ }
+
+ public List<Selector> getSelectors() {
+ return selectors;
+ }
+
+ public void setSelectors(List<Selector> selectors) {
+ this.selectors = selectors;
+ }
+
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/Selector.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/Selector.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/Selector.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,109 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.nuiton.guix.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ * @author morin
+ */
+public class Selector implements java.io.Serializable, Comparable<Selector> {
+ public static final int NEVER_APPLIES = 0;
+ public static final int PSEUDOCLASS_APPLIES_INHERIT_ONLY = 1;
+ public static final int PSEUDOCLASS_APPLIES = 2;
+ public static final int ALWAYS_APPLIES_INHERIT_ONLY = 3;
+ public static final int ALWAYS_APPLIES = 4;
+
+ private String javaClassName;
+ private String styleClass;
+ private String pseudoClass;
+ private String id;
+ private List<Rule> rules = new ArrayList<Rule>();
+
+ public Selector(String javaClassName, String styleClass, String pseudoClass, String id) {
+ this.javaClassName = javaClassName;
+ this.styleClass = styleClass;
+ this.pseudoClass = pseudoClass;
+ this.id = id;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getJavaClassName() {
+ return javaClassName;
+ }
+
+ public void setJavaClassName(String javaClassName) {
+ this.javaClassName = javaClassName;
+ }
+
+ public String getPseudoClass() {
+ return pseudoClass;
+ }
+
+ public void setPseudoClass(String pseudoClass) {
+ this.pseudoClass = pseudoClass;
+ }
+
+ public List<Rule> getRules() {
+ return rules;
+ }
+
+ public void setRules(List<Rule> rules) {
+ this.rules = rules;
+ }
+
+ public String getStyleClass() {
+ return styleClass;
+ }
+
+ public void setStyleClass(String styleClass) {
+ this.styleClass = styleClass;
+ }
+
+ @Override
+ public int compareTo(Selector selector) {
+
+ if (pseudoClass != null && selector.pseudoClass == null) {
+ return 1;
+ }
+ if (pseudoClass == null && selector.pseudoClass != null) {
+ return -1;
+ }
+ if (id != null && selector.id == null) {
+ return 1;
+ }
+ if (id == null && selector.id != null) {
+ return -1;
+ }
+ if (styleClass != null && selector.styleClass == null) {
+ return 1;
+ }
+ if (styleClass == null && selector.styleClass != null) {
+ return -1;
+ }
+ if (javaClassName != null && selector.javaClassName == null) {
+ return 1;
+ }
+ if (javaClassName == null && selector.javaClassName != null) {
+ return -1;
+ }
+ return 0;
+ }
+
+ @Override
+ public String toString() {
+ return "Selector[" + javaClassName + ", " + styleClass + ", " + pseudoClass + ", " + id + "]";
+ }
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/StyleSheet.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/StyleSheet.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/StyleSheet.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,36 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.nuiton.guix.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ * @author morin
+ */
+public class StyleSheet {
+
+ private List<Rule> rules = new ArrayList<Rule>();
+ private List<Selector> selectors = new ArrayList<Selector>();
+
+ public List<Rule> getRules() {
+ return rules;
+ }
+
+ public void setRules(List<Rule> rules) {
+ this.rules = rules;
+ }
+
+ public List<Selector> getSelectors() {
+ return selectors;
+ }
+
+ public void setSelectors(List<Selector> selectors) {
+ this.selectors = selectors;
+ }
+
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JJTJavaParserState.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JJTJavaParserState.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JJTJavaParserState.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,123 @@
+/* Generated By:JJTree: Do not edit this line. .\JJTJavaParserState.java */
+
+package org.nuiton.guix.parser;
+
+class JJTJavaParserState {
+ private java.util.Stack<Node> nodes;
+ private java.util.Stack<Integer> marks;
+
+ private int sp; // number of nodes on stack
+ private int mk; // current mark
+ private boolean node_created;
+
+ JJTJavaParserState() {
+ nodes = new java.util.Stack<Node>();
+ marks = new java.util.Stack<Integer>();
+ sp = 0;
+ mk = 0;
+ }
+
+ /* Determines whether the current node was actually closed and
+ pushed. This should only be called in the final user action of a
+ node scope. */
+ boolean nodeCreated() {
+ return node_created;
+ }
+
+ /* Call this to reinitialize the node stack. It is called
+automatically by the parser's ReInit() method. */
+ void reset() {
+ nodes.removeAllElements();
+ marks.removeAllElements();
+ sp = 0;
+ mk = 0;
+ }
+
+ /* Returns the root node of the AST. It only makes sense to call
+this after a successful parse. */
+ Node rootNode() {
+ return nodes.elementAt(0);
+ }
+
+ /* Pushes a node on to the stack. */
+ void pushNode(Node n) {
+ nodes.push(n);
+ ++sp;
+ }
+
+ /* Returns the node on the top of the stack, and remove it from the
+ stack. */
+ Node popNode() {
+ if (--sp < mk) {
+ mk = marks.pop();
+ }
+ return nodes.pop();
+ }
+
+ /* Returns the node currently on the top of the stack. */
+ Node peekNode() {
+ return nodes.peek();
+ }
+
+ /* Returns the number of children on the stack in the current node
+ scope. */
+ int nodeArity() {
+ return sp - mk;
+ }
+
+
+ void clearNodeScope(Node n) {
+ while (sp > mk) {
+ popNode();
+ }
+ mk = marks.pop();
+ }
+
+
+ void openNodeScope(Node n) {
+ marks.push(mk);
+ mk = sp;
+ n.jjtOpen();
+ }
+
+
+ /* A definite node is constructed from a specified number of
+children. That number of nodes are popped from the stack and
+made the children of the definite node. Then the definite node
+is pushed on to the stack. */
+ void closeNodeScope(Node n, int num) {
+ mk = marks.pop();
+ while (num-- > 0) {
+ Node c = popNode();
+ c.jjtSetParent(n);
+ n.jjtAddChild(c, num);
+ }
+ n.jjtClose();
+ pushNode(n);
+ node_created = true;
+ }
+
+
+ /* A conditional node is constructed if its condition is true. All
+the nodes that have been pushed since the node was opened are
+made children of the the conditional node, which is then pushed
+on to the stack. If the condition is false the node is not
+constructed and they are left on the stack. */
+ void closeNodeScope(Node n, boolean condition) {
+ if (condition) {
+ int a = nodeArity();
+ mk = marks.pop();
+ while (a-- > 0) {
+ Node c = popNode();
+ c.jjtSetParent(n);
+ n.jjtAddChild(c, a);
+ }
+ n.jjtClose();
+ pushNode(n);
+ node_created = true;
+ } else {
+ mk = marks.pop();
+ node_created = false;
+ }
+ }
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Java1.5.jj
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Java1.5.jj (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Java1.5.jj 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,5125 @@
+/*@bgen(jjtree) Generated By:JJTree: Do not edit this line. ./Java1.5.jj */
+/*@egen*/
+/*
+ * Copyright \u00a9 2002 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * California 95054, U.S.A. All rights reserved. Sun Microsystems, Inc. has
+ * intellectual property rights relating to technology embodied in the product
+ * that is described in this document. In particular, and without limitation,
+ * these intellectual property rights may include one or more of the U.S.
+ * patents listed at http://www.sun.com/patents and one or more additional
+ * patents or pending patent applications in the U.S. and in other countries.
+ * U.S. Government Rights - Commercial software. Government users are subject
+ * to the Sun Microsystems, Inc. standard license agreement and applicable
+ * provisions of the FAR and its supplements. Use is subject to license terms.
+ * Sun, Sun Microsystems, the Sun logo and Java are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. This
+ * product is covered and controlled by U.S. Export Control laws and may be
+ * subject to the export or import laws in other countries. Nuclear, missile,
+ * chemical biological weapons or nuclear maritime end uses or end users,
+ * whether direct or indirect, are strictly prohibited. Export or reexport
+ * to countries subject to U.S. embargo or to entities identified on U.S.
+ * export exclusion lists, including, but not limited to, the denied persons
+ * and specially designated nationals lists is strictly prohibited.
+ */
+
+// Slightly modified version of javacc's reference 1.5 grammar, tweaked for
+// usage with JAXX. There are two main areas of changes: several new
+// nonterminals were added to make identifying certain constructs easier,
+// and the Line nonterminal was added to support JAXX's script tags.
+// Several of the new changes are inefficient and require excess lookahead,
+// but at this point I'd rather have inefficiency than risk breaking it during
+// attempted optimizations.
+
+options {
+ JAVA_UNICODE_ESCAPE = true;
+ ERROR_REPORTING = false;
+ STATIC = false;
+ JDK_VERSION = "1.4";
+}
+
+PARSER_BEGIN(JavaParser)
+package jaxx.parser;
+
+import java.io.*;
+
+/**
+ * Grammar to parse Java version 1.5
+ * @author Sreenivasa Viswanadha - Simplified and enhanced for 1.5
+ */
+public class JavaParser/*@bgen(jjtree)*/implements JavaParserTreeConstants/*@egen*/
+{/*@bgen(jjtree)*/
+ protected JJTJavaParserState jjtree = new JJTJavaParserState();
+
+/*@egen*/
+ /**
+ * Class to hold modifiers.
+ */
+ static public final class ModifierSet
+ {
+ /* Definitions of the bits in the modifiers field. */
+ public static final int PUBLIC = 0x0001;
+ public static final int PROTECTED = 0x0002;
+ public static final int PRIVATE = 0x0004;
+ public static final int ABSTRACT = 0x0008;
+ public static final int STATIC = 0x0010;
+ public static final int FINAL = 0x0020;
+ public static final int SYNCHRONIZED = 0x0040;
+ public static final int NATIVE = 0x0080;
+ public static final int TRANSIENT = 0x0100;
+ public static final int VOLATILE = 0x0200;
+ public static final int STRICTFP = 0x1000;
+
+ /** A set of accessors that indicate whether the specified modifier
+ is in the set. */
+
+ public boolean isPublic(int modifiers)
+ {
+ return (modifiers & PUBLIC) != 0;
+ }
+
+ public boolean isProtected(int modifiers)
+ {
+ return (modifiers & PROTECTED) != 0;
+ }
+
+ public boolean isPrivate(int modifiers)
+ {
+ return (modifiers & PRIVATE) != 0;
+ }
+
+ public boolean isStatic(int modifiers)
+ {
+ return (modifiers & STATIC) != 0;
+ }
+
+ public boolean isAbstract(int modifiers)
+ {
+ return (modifiers & ABSTRACT) != 0;
+ }
+
+ public boolean isFinal(int modifiers)
+ {
+ return (modifiers & FINAL) != 0;
+ }
+
+ public boolean isNative(int modifiers)
+ {
+ return (modifiers & NATIVE) != 0;
+ }
+
+ public boolean isStrictfp(int modifiers)
+ {
+ return (modifiers & STRICTFP) != 0;
+ }
+
+ public boolean isSynchronized(int modifiers)
+ {
+ return (modifiers & SYNCHRONIZED) != 0;
+ }
+
+ public boolean isTransient(int modifiers)
+ {
+ return (modifiers & TRANSIENT) != 0;
+ }
+
+ public boolean isVolatile(int modifiers)
+ {
+ return (modifiers & VOLATILE) != 0;
+ }
+
+ /**
+ * Removes the given modifier.
+ */
+ static int removeModifier(int modifiers, int mod)
+ {
+ return modifiers & ~mod;
+ }
+ }
+
+ public JavaParser(String fileName)
+ {
+ this(System.in);
+ try { ReInit(new FileInputStream(new File(fileName))); }
+ catch(Exception e) { e.printStackTrace(); }
+ }
+
+ void jjtreeOpenNodeScope(Node n) {
+ ((SimpleNode) n).firstToken = getToken(1);
+ }
+
+ void jjtreeCloseNodeScope(Node n) {
+ ((SimpleNode) n).lastToken = getToken(0);
+ }
+
+ public SimpleNode popNode()
+ {
+ if ( jjtree.nodeArity() > 0) // number of child nodes
+ return (SimpleNode)jjtree.popNode();
+ else
+ return null;
+ }
+ public static void main(String args[]) {
+ JavaParser parser;
+ if (args.length == 0) {
+ System.out.println("Java Parser Version 1.1: Reading from standard input . . .");
+ parser = new JavaParser(System.in);
+ } else if (args.length == 1) {
+ System.out.println("Java Parser Version 1.1: Reading from file " + args[0] + " . . .");
+ try {
+ parser = new JavaParser(new java.io.FileInputStream(args[0]));
+ } catch (java.io.FileNotFoundException e) {
+ System.out.println("Java Parser Version 1.1: File " + args[0] + " not found.");
+ return;
+ }
+ } else {
+ System.out.println("Java Parser Version 1.1: Usage is one of:");
+ System.out.println(" java JavaParser < inputfile");
+ System.out.println("OR");
+ System.out.println(" java JavaParser inputfile");
+ return;
+ }
+ try {
+ parser.CompilationUnit();
+ System.out.println("Java Parser Version 1.1: Java program parsed successfully.");
+ } catch (ParseException e) {
+ System.out.println(e.getMessage());
+ System.out.println("Java Parser Version 1.1: Encountered errors during parse.");
+ }
+ }
+
+}
+
+PARSER_END(JavaParser)
+
+/* COMMENTS */
+
+MORE :
+{
+ <"/**" ~["/"]> { input_stream.backup(1); } : IN_FORMAL_COMMENT
+|
+ "/*" : IN_MULTI_LINE_COMMENT
+}
+
+SPECIAL_TOKEN:
+{
+ <WHITE_SPACE: ([" ", "\n", "\r", "\t", "\f"])+>
+}
+
+SPECIAL_TOKEN :
+{
+ <SINGLE_LINE_COMMENT: "//" (~["\n", "\r"])* ("\n" | "\r" | "\r\n")?>
+}
+
+<IN_FORMAL_COMMENT>
+SPECIAL_TOKEN :
+{
+ <FORMAL_COMMENT: "*/" > : DEFAULT
+}
+
+<IN_MULTI_LINE_COMMENT>
+SPECIAL_TOKEN :
+{
+ <MULTI_LINE_COMMENT: "*/" > : DEFAULT
+}
+
+<IN_FORMAL_COMMENT,IN_MULTI_LINE_COMMENT>
+MORE :
+{
+ < ~[] >
+}
+
+/* RESERVED WORDS AND LITERALS */
+
+TOKEN :
+{
+ < ABSTRACT: "abstract" >
+| < ASSERT: "assert" >
+| < BOOLEAN: "boolean" >
+| < BREAK: "break" >
+| < BYTE: "byte" >
+| < CASE: "case" >
+| < CATCH: "catch" >
+| < CHAR: "char" >
+| < CLASS: "class" >
+| < CONST: "const" >
+| < CONTINUE: "continue" >
+| < _DEFAULT: "default" >
+| < DO: "do" >
+| < DOUBLE: "double" >
+| < ELSE: "else" >
+| < ENUM: "enum" >
+| < EXTENDS: "extends" >
+| < FALSE: "false" >
+| < FINAL: "final" >
+| < FINALLY: "finally" >
+| < FLOAT: "float" >
+| < FOR: "for" >
+| < GOTO: "goto" >
+| < IF: "if" >
+| < IMPLEMENTS: "implements" >
+| < IMPORT: "import" >
+| < INSTANCEOF: "instanceof" >
+| < INT: "int" >
+| < INTERFACE: "interface" >
+| < LONG: "long" >
+| < NATIVE: "native" >
+| < NEW: "new" >
+| < NULL: "null" >
+| < PACKAGE: "package">
+| < PRIVATE: "private" >
+| < PROTECTED: "protected" >
+| < PUBLIC: "public" >
+| < RETURN: "return" >
+| < SHORT: "short" >
+| < STATIC: "static" >
+| < STRICTFP: "strictfp" >
+| < SUPER: "super" >
+| < SWITCH: "switch" >
+| < SYNCHRONIZED: "synchronized" >
+| < THIS: "this" >
+| < THROW: "throw" >
+| < THROWS: "throws" >
+| < TRANSIENT: "transient" >
+| < TRUE: "true" >
+| < TRY: "try" >
+| < VOID: "void" >
+| < VOLATILE: "volatile" >
+| < WHILE: "while" >
+}
+
+/* LITERALS */
+
+TOKEN :
+{
+ < INTEGER_LITERAL:
+ <DECIMAL_LITERAL> (["l","L"])?
+ | <HEX_LITERAL> (["l","L"])?
+ | <OCTAL_LITERAL> (["l","L"])?
+ >
+|
+ < #DECIMAL_LITERAL: ["1"-"9"] (["0"-"9"])* >
+|
+ < #HEX_LITERAL: "0" ["x","X"] (["0"-"9","a"-"f","A"-"F"])+ >
+|
+ < #OCTAL_LITERAL: "0" (["0"-"7"])* >
+|
+ < FLOATING_POINT_LITERAL:
+ <DECIMAL_FLOATING_POINT_LITERAL>
+ | <HEXADECIMAL_FLOATING_POINT_LITERAL>
+ >
+|
+ < #DECIMAL_FLOATING_POINT_LITERAL:
+ (["0"-"9"])+ "." (["0"-"9"])* (<DECIMAL_EXPONENT>)? (["f","F","d","D"])?
+ | "." (["0"-"9"])+ (<DECIMAL_EXPONENT>)? (["f","F","d","D"])?
+ | (["0"-"9"])+ <DECIMAL_EXPONENT> (["f","F","d","D"])?
+ | (["0"-"9"])+ (<DECIMAL_EXPONENT>)? ["f","F","d","D"]
+ >
+|
+ < #DECIMAL_EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+ >
+|
+ < #HEXADECIMAL_FLOATING_POINT_LITERAL:
+ "0" ["x", "X"] (["0"-"9","a"-"f","A"-"F"])+ (".")? <HEXADECIMAL_EXPONENT> (["f","F","d","D"])?
+ | "0" ["x", "X"] (["0"-"9","a"-"f","A"-"F"])* "." (["0"-"9","a"-"f","A"-"F"])+ <HEXADECIMAL_EXPONENT> (["f","F","d","D"])?
+ >
+|
+ < #HEXADECIMAL_EXPONENT: ["p","P"] (["+","-"])? (["0"-"9"])+ >
+|
+ < CHARACTER_LITERAL:
+ "'"
+ ( (~["'","\\","\n","\r"])
+ | ("\\"
+ ( ["n","t","b","r","f","\\","'","\""]
+ | ["0"-"7"] ( ["0"-"7"] )?
+ | ["0"-"3"] ["0"-"7"] ["0"-"7"]
+ )
+ )
+ )
+ "'"
+ >
+|
+ < STRING_LITERAL:
+ "\""
+ ( (~["\"","\\","\n","\r"])
+ | ("\\"
+ ( ["n","t","b","r","f","\\","'","\""]
+ | ["0"-"7"] ( ["0"-"7"] )?
+ | ["0"-"3"] ["0"-"7"] ["0"-"7"]
+ )
+ )
+ )*
+ "\""
+ >
+}
+
+/* IDENTIFIERS */
+
+TOKEN :
+{
+ < IDENTIFIER: <LETTER> (<PART_LETTER>)* >
+|
+ < #LETTER:
+ [ // all chars for which Character.isIdentifierStart is true
+ "$",
+ "A"-"Z",
+ "_",
+ "a"-"z",
+ "\u00a2"-"\u00a5",
+ "\u00aa",
+ "\u00b5",
+ "\u00ba",
+ "\u00c0"-"\u00d6",
+ "\u00d8"-"\u00f6",
+ "\u00f8"-"\u021f",
+ "\u0222"-"\u0233",
+ "\u0250"-"\u02ad",
+ "\u02b0"-"\u02b8",
+ "\u02bb"-"\u02c1",
+ "\u02d0"-"\u02d1",
+ "\u02e0"-"\u02e4",
+ "\u02ee",
+ "\u037a",
+ "\u0386",
+ "\u0388"-"\u038a",
+ "\u038c",
+ "\u038e"-"\u03a1",
+ "\u03a3"-"\u03ce",
+ "\u03d0"-"\u03d7",
+ "\u03da"-"\u03f3",
+ "\u0400"-"\u0481",
+ "\u048c"-"\u04c4",
+ "\u04c7"-"\u04c8",
+ "\u04cb"-"\u04cc",
+ "\u04d0"-"\u04f5",
+ "\u04f8"-"\u04f9",
+ "\u0531"-"\u0556",
+ "\u0559",
+ "\u0561"-"\u0587",
+ "\u05d0"-"\u05ea",
+ "\u05f0"-"\u05f2",
+ "\u0621"-"\u063a",
+ "\u0640"-"\u064a",
+ "\u0671"-"\u06d3",
+ "\u06d5",
+ "\u06e5"-"\u06e6",
+ "\u06fa"-"\u06fc",
+ "\u0710",
+ "\u0712"-"\u072c",
+ "\u0780"-"\u07a5",
+ "\u0905"-"\u0939",
+ "\u093d",
+ "\u0950",
+ "\u0958"-"\u0961",
+ "\u0985"-"\u098c",
+ "\u098f"-"\u0990",
+ "\u0993"-"\u09a8",
+ "\u09aa"-"\u09b0",
+ "\u09b2",
+ "\u09b6"-"\u09b9",
+ "\u09dc"-"\u09dd",
+ "\u09df"-"\u09e1",
+ "\u09f0"-"\u09f3",
+ "\u0a05"-"\u0a0a",
+ "\u0a0f"-"\u0a10",
+ "\u0a13"-"\u0a28",
+ "\u0a2a"-"\u0a30",
+ "\u0a32"-"\u0a33",
+ "\u0a35"-"\u0a36",
+ "\u0a38"-"\u0a39",
+ "\u0a59"-"\u0a5c",
+ "\u0a5e",
+ "\u0a72"-"\u0a74",
+ "\u0a85"-"\u0a8b",
+ "\u0a8d",
+ "\u0a8f"-"\u0a91",
+ "\u0a93"-"\u0aa8",
+ "\u0aaa"-"\u0ab0",
+ "\u0ab2"-"\u0ab3",
+ "\u0ab5"-"\u0ab9",
+ "\u0abd",
+ "\u0ad0",
+ "\u0ae0",
+ "\u0b05"-"\u0b0c",
+ "\u0b0f"-"\u0b10",
+ "\u0b13"-"\u0b28",
+ "\u0b2a"-"\u0b30",
+ "\u0b32"-"\u0b33",
+ "\u0b36"-"\u0b39",
+ "\u0b3d",
+ "\u0b5c"-"\u0b5d",
+ "\u0b5f"-"\u0b61",
+ "\u0b85"-"\u0b8a",
+ "\u0b8e"-"\u0b90",
+ "\u0b92"-"\u0b95",
+ "\u0b99"-"\u0b9a",
+ "\u0b9c",
+ "\u0b9e"-"\u0b9f",
+ "\u0ba3"-"\u0ba4",
+ "\u0ba8"-"\u0baa",
+ "\u0bae"-"\u0bb5",
+ "\u0bb7"-"\u0bb9",
+ "\u0c05"-"\u0c0c",
+ "\u0c0e"-"\u0c10",
+ "\u0c12"-"\u0c28",
+ "\u0c2a"-"\u0c33",
+ "\u0c35"-"\u0c39",
+ "\u0c60"-"\u0c61",
+ "\u0c85"-"\u0c8c",
+ "\u0c8e"-"\u0c90",
+ "\u0c92"-"\u0ca8",
+ "\u0caa"-"\u0cb3",
+ "\u0cb5"-"\u0cb9",
+ "\u0cde",
+ "\u0ce0"-"\u0ce1",
+ "\u0d05"-"\u0d0c",
+ "\u0d0e"-"\u0d10",
+ "\u0d12"-"\u0d28",
+ "\u0d2a"-"\u0d39",
+ "\u0d60"-"\u0d61",
+ "\u0d85"-"\u0d96",
+ "\u0d9a"-"\u0db1",
+ "\u0db3"-"\u0dbb",
+ "\u0dbd",
+ "\u0dc0"-"\u0dc6",
+ "\u0e01"-"\u0e30",
+ "\u0e32"-"\u0e33",
+ "\u0e3f"-"\u0e46",
+ "\u0e81"-"\u0e82",
+ "\u0e84",
+ "\u0e87"-"\u0e88",
+ "\u0e8a",
+ "\u0e8d",
+ "\u0e94"-"\u0e97",
+ "\u0e99"-"\u0e9f",
+ "\u0ea1"-"\u0ea3",
+ "\u0ea5",
+ "\u0ea7",
+ "\u0eaa"-"\u0eab",
+ "\u0ead"-"\u0eb0",
+ "\u0eb2"-"\u0eb3",
+ "\u0ebd",
+ "\u0ec0"-"\u0ec4",
+ "\u0ec6",
+ "\u0edc"-"\u0edd",
+ "\u0f00",
+ "\u0f40"-"\u0f47",
+ "\u0f49"-"\u0f6a",
+ "\u0f88"-"\u0f8b",
+ "\u1000"-"\u1021",
+ "\u1023"-"\u1027",
+ "\u1029"-"\u102a",
+ "\u1050"-"\u1055",
+ "\u10a0"-"\u10c5",
+ "\u10d0"-"\u10f6",
+ "\u1100"-"\u1159",
+ "\u115f"-"\u11a2",
+ "\u11a8"-"\u11f9",
+ "\u1200"-"\u1206",
+ "\u1208"-"\u1246",
+ "\u1248",
+ "\u124a"-"\u124d",
+ "\u1250"-"\u1256",
+ "\u1258",
+ "\u125a"-"\u125d",
+ "\u1260"-"\u1286",
+ "\u1288",
+ "\u128a"-"\u128d",
+ "\u1290"-"\u12ae",
+ "\u12b0",
+ "\u12b2"-"\u12b5",
+ "\u12b8"-"\u12be",
+ "\u12c0",
+ "\u12c2"-"\u12c5",
+ "\u12c8"-"\u12ce",
+ "\u12d0"-"\u12d6",
+ "\u12d8"-"\u12ee",
+ "\u12f0"-"\u130e",
+ "\u1310",
+ "\u1312"-"\u1315",
+ "\u1318"-"\u131e",
+ "\u1320"-"\u1346",
+ "\u1348"-"\u135a",
+ "\u13a0"-"\u13f4",
+ "\u1401"-"\u166c",
+ "\u166f"-"\u1676",
+ "\u1681"-"\u169a",
+ "\u16a0"-"\u16ea",
+ "\u1780"-"\u17b3",
+ "\u17db",
+ "\u1820"-"\u1877",
+ "\u1880"-"\u18a8",
+ "\u1e00"-"\u1e9b",
+ "\u1ea0"-"\u1ef9",
+ "\u1f00"-"\u1f15",
+ "\u1f18"-"\u1f1d",
+ "\u1f20"-"\u1f45",
+ "\u1f48"-"\u1f4d",
+ "\u1f50"-"\u1f57",
+ "\u1f59",
+ "\u1f5b",
+ "\u1f5d",
+ "\u1f5f"-"\u1f7d",
+ "\u1f80"-"\u1fb4",
+ "\u1fb6"-"\u1fbc",
+ "\u1fbe",
+ "\u1fc2"-"\u1fc4",
+ "\u1fc6"-"\u1fcc",
+ "\u1fd0"-"\u1fd3",
+ "\u1fd6"-"\u1fdb",
+ "\u1fe0"-"\u1fec",
+ "\u1ff2"-"\u1ff4",
+ "\u1ff6"-"\u1ffc",
+ "\u203f"-"\u2040",
+ "\u207f",
+ "\u20a0"-"\u20af",
+ "\u2102",
+ "\u2107",
+ "\u210a"-"\u2113",
+ "\u2115",
+ "\u2119"-"\u211d",
+ "\u2124",
+ "\u2126",
+ "\u2128",
+ "\u212a"-"\u212d",
+ "\u212f"-"\u2131",
+ "\u2133"-"\u2139",
+ "\u2160"-"\u2183",
+ "\u3005"-"\u3007",
+ "\u3021"-"\u3029",
+ "\u3031"-"\u3035",
+ "\u3038"-"\u303a",
+ "\u3041"-"\u3094",
+ "\u309d"-"\u309e",
+ "\u30a1"-"\u30fe",
+ "\u3105"-"\u312c",
+ "\u3131"-"\u318e",
+ "\u31a0"-"\u31b7",
+ "\u3400"-"\u4db5",
+ "\u4e00"-"\u9fa5",
+ "\ua000"-"\ua48c",
+ "\uac00"-"\ud7a3",
+ "\uf900"-"\ufa2d",
+ "\ufb00"-"\ufb06",
+ "\ufb13"-"\ufb17",
+ "\ufb1d",
+ "\ufb1f"-"\ufb28",
+ "\ufb2a"-"\ufb36",
+ "\ufb38"-"\ufb3c",
+ "\ufb3e",
+ "\ufb40"-"\ufb41",
+ "\ufb43"-"\ufb44",
+ "\ufb46"-"\ufbb1",
+ "\ufbd3"-"\ufd3d",
+ "\ufd50"-"\ufd8f",
+ "\ufd92"-"\ufdc7",
+ "\ufdf0"-"\ufdfb",
+ "\ufe33"-"\ufe34",
+ "\ufe4d"-"\ufe4f",
+ "\ufe69",
+ "\ufe70"-"\ufe72",
+ "\ufe74",
+ "\ufe76"-"\ufefc",
+ "\uff04",
+ "\uff21"-"\uff3a",
+ "\uff3f",
+ "\uff41"-"\uff5a",
+ "\uff65"-"\uffbe",
+ "\uffc2"-"\uffc7",
+ "\uffca"-"\uffcf",
+ "\uffd2"-"\uffd7",
+ "\uffda"-"\uffdc",
+ "\uffe0"-"\uffe1",
+ "\uffe5"-"\uffe6"
+ ]
+ >
+|
+ < #PART_LETTER:
+ [ // all chars for which Character.isIdentifierPart is true
+ "\u0000"-"\u0008",
+ "\u000e"-"\u001b",
+ "$",
+ "0"-"9",
+ "A"-"Z",
+ "_",
+ "a"-"z",
+ "\u007f"-"\u009f",
+ "\u00a2"-"\u00a5",
+ "\u00aa",
+ "\u00b5",
+ "\u00ba",
+ "\u00c0"-"\u00d6",
+ "\u00d8"-"\u00f6",
+ "\u00f8"-"\u021f",
+ "\u0222"-"\u0233",
+ "\u0250"-"\u02ad",
+ "\u02b0"-"\u02b8",
+ "\u02bb"-"\u02c1",
+ "\u02d0"-"\u02d1",
+ "\u02e0"-"\u02e4",
+ "\u02ee",
+ "\u0300"-"\u034e",
+ "\u0360"-"\u0362",
+ "\u037a",
+ "\u0386",
+ "\u0388"-"\u038a",
+ "\u038c",
+ "\u038e"-"\u03a1",
+ "\u03a3"-"\u03ce",
+ "\u03d0"-"\u03d7",
+ "\u03da"-"\u03f3",
+ "\u0400"-"\u0481",
+ "\u0483"-"\u0486",
+ "\u048c"-"\u04c4",
+ "\u04c7"-"\u04c8",
+ "\u04cb"-"\u04cc",
+ "\u04d0"-"\u04f5",
+ "\u04f8"-"\u04f9",
+ "\u0531"-"\u0556",
+ "\u0559",
+ "\u0561"-"\u0587",
+ "\u0591"-"\u05a1",
+ "\u05a3"-"\u05b9",
+ "\u05bb"-"\u05bd",
+ "\u05bf",
+ "\u05c1"-"\u05c2",
+ "\u05c4",
+ "\u05d0"-"\u05ea",
+ "\u05f0"-"\u05f2",
+ "\u0621"-"\u063a",
+ "\u0640"-"\u0655",
+ "\u0660"-"\u0669",
+ "\u0670"-"\u06d3",
+ "\u06d5"-"\u06dc",
+ "\u06df"-"\u06e8",
+ "\u06ea"-"\u06ed",
+ "\u06f0"-"\u06fc",
+ "\u070f"-"\u072c",
+ "\u0730"-"\u074a",
+ "\u0780"-"\u07b0",
+ "\u0901"-"\u0903",
+ "\u0905"-"\u0939",
+ "\u093c"-"\u094d",
+ "\u0950"-"\u0954",
+ "\u0958"-"\u0963",
+ "\u0966"-"\u096f",
+ "\u0981"-"\u0983",
+ "\u0985"-"\u098c",
+ "\u098f"-"\u0990",
+ "\u0993"-"\u09a8",
+ "\u09aa"-"\u09b0",
+ "\u09b2",
+ "\u09b6"-"\u09b9",
+ "\u09bc",
+ "\u09be"-"\u09c4",
+ "\u09c7"-"\u09c8",
+ "\u09cb"-"\u09cd",
+ "\u09d7",
+ "\u09dc"-"\u09dd",
+ "\u09df"-"\u09e3",
+ "\u09e6"-"\u09f3",
+ "\u0a02",
+ "\u0a05"-"\u0a0a",
+ "\u0a0f"-"\u0a10",
+ "\u0a13"-"\u0a28",
+ "\u0a2a"-"\u0a30",
+ "\u0a32"-"\u0a33",
+ "\u0a35"-"\u0a36",
+ "\u0a38"-"\u0a39",
+ "\u0a3c",
+ "\u0a3e"-"\u0a42",
+ "\u0a47"-"\u0a48",
+ "\u0a4b"-"\u0a4d",
+ "\u0a59"-"\u0a5c",
+ "\u0a5e",
+ "\u0a66"-"\u0a74",
+ "\u0a81"-"\u0a83",
+ "\u0a85"-"\u0a8b",
+ "\u0a8d",
+ "\u0a8f"-"\u0a91",
+ "\u0a93"-"\u0aa8",
+ "\u0aaa"-"\u0ab0",
+ "\u0ab2"-"\u0ab3",
+ "\u0ab5"-"\u0ab9",
+ "\u0abc"-"\u0ac5",
+ "\u0ac7"-"\u0ac9",
+ "\u0acb"-"\u0acd",
+ "\u0ad0",
+ "\u0ae0",
+ "\u0ae6"-"\u0aef",
+ "\u0b01"-"\u0b03",
+ "\u0b05"-"\u0b0c",
+ "\u0b0f"-"\u0b10",
+ "\u0b13"-"\u0b28",
+ "\u0b2a"-"\u0b30",
+ "\u0b32"-"\u0b33",
+ "\u0b36"-"\u0b39",
+ "\u0b3c"-"\u0b43",
+ "\u0b47"-"\u0b48",
+ "\u0b4b"-"\u0b4d",
+ "\u0b56"-"\u0b57",
+ "\u0b5c"-"\u0b5d",
+ "\u0b5f"-"\u0b61",
+ "\u0b66"-"\u0b6f",
+ "\u0b82"-"\u0b83",
+ "\u0b85"-"\u0b8a",
+ "\u0b8e"-"\u0b90",
+ "\u0b92"-"\u0b95",
+ "\u0b99"-"\u0b9a",
+ "\u0b9c",
+ "\u0b9e"-"\u0b9f",
+ "\u0ba3"-"\u0ba4",
+ "\u0ba8"-"\u0baa",
+ "\u0bae"-"\u0bb5",
+ "\u0bb7"-"\u0bb9",
+ "\u0bbe"-"\u0bc2",
+ "\u0bc6"-"\u0bc8",
+ "\u0bca"-"\u0bcd",
+ "\u0bd7",
+ "\u0be7"-"\u0bef",
+ "\u0c01"-"\u0c03",
+ "\u0c05"-"\u0c0c",
+ "\u0c0e"-"\u0c10",
+ "\u0c12"-"\u0c28",
+ "\u0c2a"-"\u0c33",
+ "\u0c35"-"\u0c39",
+ "\u0c3e"-"\u0c44",
+ "\u0c46"-"\u0c48",
+ "\u0c4a"-"\u0c4d",
+ "\u0c55"-"\u0c56",
+ "\u0c60"-"\u0c61",
+ "\u0c66"-"\u0c6f",
+ "\u0c82"-"\u0c83",
+ "\u0c85"-"\u0c8c",
+ "\u0c8e"-"\u0c90",
+ "\u0c92"-"\u0ca8",
+ "\u0caa"-"\u0cb3",
+ "\u0cb5"-"\u0cb9",
+ "\u0cbe"-"\u0cc4",
+ "\u0cc6"-"\u0cc8",
+ "\u0cca"-"\u0ccd",
+ "\u0cd5"-"\u0cd6",
+ "\u0cde",
+ "\u0ce0"-"\u0ce1",
+ "\u0ce6"-"\u0cef",
+ "\u0d02"-"\u0d03",
+ "\u0d05"-"\u0d0c",
+ "\u0d0e"-"\u0d10",
+ "\u0d12"-"\u0d28",
+ "\u0d2a"-"\u0d39",
+ "\u0d3e"-"\u0d43",
+ "\u0d46"-"\u0d48",
+ "\u0d4a"-"\u0d4d",
+ "\u0d57",
+ "\u0d60"-"\u0d61",
+ "\u0d66"-"\u0d6f",
+ "\u0d82"-"\u0d83",
+ "\u0d85"-"\u0d96",
+ "\u0d9a"-"\u0db1",
+ "\u0db3"-"\u0dbb",
+ "\u0dbd",
+ "\u0dc0"-"\u0dc6",
+ "\u0dca",
+ "\u0dcf"-"\u0dd4",
+ "\u0dd6",
+ "\u0dd8"-"\u0ddf",
+ "\u0df2"-"\u0df3",
+ "\u0e01"-"\u0e3a",
+ "\u0e3f"-"\u0e4e",
+ "\u0e50"-"\u0e59",
+ "\u0e81"-"\u0e82",
+ "\u0e84",
+ "\u0e87"-"\u0e88",
+ "\u0e8a",
+ "\u0e8d",
+ "\u0e94"-"\u0e97",
+ "\u0e99"-"\u0e9f",
+ "\u0ea1"-"\u0ea3",
+ "\u0ea5",
+ "\u0ea7",
+ "\u0eaa"-"\u0eab",
+ "\u0ead"-"\u0eb9",
+ "\u0ebb"-"\u0ebd",
+ "\u0ec0"-"\u0ec4",
+ "\u0ec6",
+ "\u0ec8"-"\u0ecd",
+ "\u0ed0"-"\u0ed9",
+ "\u0edc"-"\u0edd",
+ "\u0f00",
+ "\u0f18"-"\u0f19",
+ "\u0f20"-"\u0f29",
+ "\u0f35",
+ "\u0f37",
+ "\u0f39",
+ "\u0f3e"-"\u0f47",
+ "\u0f49"-"\u0f6a",
+ "\u0f71"-"\u0f84",
+ "\u0f86"-"\u0f8b",
+ "\u0f90"-"\u0f97",
+ "\u0f99"-"\u0fbc",
+ "\u0fc6",
+ "\u1000"-"\u1021",
+ "\u1023"-"\u1027",
+ "\u1029"-"\u102a",
+ "\u102c"-"\u1032",
+ "\u1036"-"\u1039",
+ "\u1040"-"\u1049",
+ "\u1050"-"\u1059",
+ "\u10a0"-"\u10c5",
+ "\u10d0"-"\u10f6",
+ "\u1100"-"\u1159",
+ "\u115f"-"\u11a2",
+ "\u11a8"-"\u11f9",
+ "\u1200"-"\u1206",
+ "\u1208"-"\u1246",
+ "\u1248",
+ "\u124a"-"\u124d",
+ "\u1250"-"\u1256",
+ "\u1258",
+ "\u125a"-"\u125d",
+ "\u1260"-"\u1286",
+ "\u1288",
+ "\u128a"-"\u128d",
+ "\u1290"-"\u12ae",
+ "\u12b0",
+ "\u12b2"-"\u12b5",
+ "\u12b8"-"\u12be",
+ "\u12c0",
+ "\u12c2"-"\u12c5",
+ "\u12c8"-"\u12ce",
+ "\u12d0"-"\u12d6",
+ "\u12d8"-"\u12ee",
+ "\u12f0"-"\u130e",
+ "\u1310",
+ "\u1312"-"\u1315",
+ "\u1318"-"\u131e",
+ "\u1320"-"\u1346",
+ "\u1348"-"\u135a",
+ "\u1369"-"\u1371",
+ "\u13a0"-"\u13f4",
+ "\u1401"-"\u166c",
+ "\u166f"-"\u1676",
+ "\u1681"-"\u169a",
+ "\u16a0"-"\u16ea",
+ "\u1780"-"\u17d3",
+ "\u17db",
+ "\u17e0"-"\u17e9",
+ "\u180b"-"\u180e",
+ "\u1810"-"\u1819",
+ "\u1820"-"\u1877",
+ "\u1880"-"\u18a9",
+ "\u1e00"-"\u1e9b",
+ "\u1ea0"-"\u1ef9",
+ "\u1f00"-"\u1f15",
+ "\u1f18"-"\u1f1d",
+ "\u1f20"-"\u1f45",
+ "\u1f48"-"\u1f4d",
+ "\u1f50"-"\u1f57",
+ "\u1f59",
+ "\u1f5b",
+ "\u1f5d",
+ "\u1f5f"-"\u1f7d",
+ "\u1f80"-"\u1fb4",
+ "\u1fb6"-"\u1fbc",
+ "\u1fbe",
+ "\u1fc2"-"\u1fc4",
+ "\u1fc6"-"\u1fcc",
+ "\u1fd0"-"\u1fd3",
+ "\u1fd6"-"\u1fdb",
+ "\u1fe0"-"\u1fec",
+ "\u1ff2"-"\u1ff4",
+ "\u1ff6"-"\u1ffc",
+ "\u200c"-"\u200f",
+ "\u202a"-"\u202e",
+ "\u203f"-"\u2040",
+ "\u206a"-"\u206f",
+ "\u207f",
+ "\u20a0"-"\u20af",
+ "\u20d0"-"\u20dc",
+ "\u20e1",
+ "\u2102",
+ "\u2107",
+ "\u210a"-"\u2113",
+ "\u2115",
+ "\u2119"-"\u211d",
+ "\u2124",
+ "\u2126",
+ "\u2128",
+ "\u212a"-"\u212d",
+ "\u212f"-"\u2131",
+ "\u2133"-"\u2139",
+ "\u2160"-"\u2183",
+ "\u3005"-"\u3007",
+ "\u3021"-"\u302f",
+ "\u3031"-"\u3035",
+ "\u3038"-"\u303a",
+ "\u3041"-"\u3094",
+ "\u3099"-"\u309a",
+ "\u309d"-"\u309e",
+ "\u30a1"-"\u30fe",
+ "\u3105"-"\u312c",
+ "\u3131"-"\u318e",
+ "\u31a0"-"\u31b7",
+ "\u3400"-"\u4db5",
+ "\u4e00"-"\u9fa5",
+ "\ua000"-"\ua48c",
+ "\uac00"-"\ud7a3",
+ "\uf900"-"\ufa2d",
+ "\ufb00"-"\ufb06",
+ "\ufb13"-"\ufb17",
+ "\ufb1d"-"\ufb28",
+ "\ufb2a"-"\ufb36",
+ "\ufb38"-"\ufb3c",
+ "\ufb3e",
+ "\ufb40"-"\ufb41",
+ "\ufb43"-"\ufb44",
+ "\ufb46"-"\ufbb1",
+ "\ufbd3"-"\ufd3d",
+ "\ufd50"-"\ufd8f",
+ "\ufd92"-"\ufdc7",
+ "\ufdf0"-"\ufdfb",
+ "\ufe20"-"\ufe23",
+ "\ufe33"-"\ufe34",
+ "\ufe4d"-"\ufe4f",
+ "\ufe69",
+ "\ufe70"-"\ufe72",
+ "\ufe74",
+ "\ufe76"-"\ufefc",
+ "\ufeff",
+ "\uff04",
+ "\uff10"-"\uff19",
+ "\uff21"-"\uff3a",
+ "\uff3f",
+ "\uff41"-"\uff5a",
+ "\uff65"-"\uffbe",
+ "\uffc2"-"\uffc7",
+ "\uffca"-"\uffcf",
+ "\uffd2"-"\uffd7",
+ "\uffda"-"\uffdc",
+ "\uffe0"-"\uffe1",
+ "\uffe5"-"\uffe6",
+ "\ufff9"-"\ufffb"
+ ]
+ >
+}
+
+/* SEPARATORS */
+
+TOKEN :
+{
+ < LPAREN: "(" >
+| < RPAREN: ")" >
+| < LBRACE: "{" >
+| < RBRACE: "}" >
+| < LBRACKET: "[" >
+| < RBRACKET: "]" >
+| < SEMICOLON: ";" >
+| < COMMA: "," >
+| < DOT: "." >
+| < AT: "@" >
+}
+
+/* OPERATORS */
+
+TOKEN :
+{
+ < ASSIGN: "=" >
+| < LT: "<" >
+| < BANG: "!" >
+| < TILDE: "~" >
+| < HOOK: "?" >
+| < COLON: ":" >
+| < EQ: "==" >
+| < LE: "<=" >
+| < GE: ">=" >
+| < NE: "!=" >
+| < SC_OR: "||" >
+| < SC_AND: "&&" >
+| < INCR: "++" >
+| < DECR: "--" >
+| < PLUS: "+" >
+| < MINUS: "-" >
+| < STAR: "*" >
+| < SLASH: "/" >
+| < BIT_AND: "&" >
+| < BIT_OR: "|" >
+| < XOR: "^" >
+| < REM: "%" >
+| < LSHIFT: "<<" >
+| < PLUSASSIGN: "+=" >
+| < MINUSASSIGN: "-=" >
+| < STARASSIGN: "*=" >
+| < SLASHASSIGN: "/=" >
+| < ANDASSIGN: "&=" >
+| < ORASSIGN: "|=" >
+| < XORASSIGN: "^=" >
+| < REMASSIGN: "%=" >
+| < LSHIFTASSIGN: "<<=" >
+| < RSIGNEDSHIFTASSIGN: ">>=" >
+| < RUNSIGNEDSHIFTASSIGN: ">>>=" >
+| < ELLIPSIS: "..." >
+}
+
+/* >'s need special attention due to generics syntax. */
+TOKEN :
+{
+ < RUNSIGNEDSHIFT: ">>>" >
+ {
+ matchedToken.kind = GT;
+ ((Token.GTToken)matchedToken).realKind = RUNSIGNEDSHIFT;
+ input_stream.backup(2);
+ matchedToken.image = ">";
+ }
+| < RSIGNEDSHIFT: ">>" >
+ {
+ matchedToken.kind = GT;
+ ((Token.GTToken)matchedToken).realKind = RSIGNEDSHIFT;
+ input_stream.backup(1);
+ matchedToken.image = ">";
+ }
+| < GT: ">" >
+}
+
+boolean Line() :
+{/*@bgen(jjtree) Line */
+ SimpleNode jjtn000 = new SimpleNode(JJTLINE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/
+ int modifiers;
+}
+{/*@bgen(jjtree) Line */
+ try {
+/*@egen*/
+ <EOF>/*@bgen(jjtree)*/
+ {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ }
+/*@egen*/ {
+ return true;
+ }
+|
+ LOOKAHEAD(BlockStatement())
+ BlockStatement()/*@bgen(jjtree)*/
+ {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ }
+/*@egen*/ {
+ return false;
+ }
+|
+ LOOKAHEAD(Modifiers() [ TypeParameters() ] [ ResultType() ] <IDENTIFIER> FormalParameters() [ "throws" NameList() ] "{")
+ ClassOrInterfaceBodyDeclaration(false)/*@bgen(jjtree)*/
+ {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ }
+/*@egen*/ {
+ return false;
+ }
+|
+ LOOKAHEAD(ClassOrInterfaceBodyDeclaration(false))
+ ClassOrInterfaceBodyDeclaration(false)/*@bgen(jjtree)*/
+ {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ }
+/*@egen*/ {
+ return false;
+ }
+|
+ LOOKAHEAD(Expression())
+ Expression()/*@bgen(jjtree)*/
+ {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ }
+/*@egen*/ {
+ return false;
+ }
+|
+ ImportDeclaration()/*@bgen(jjtree)*/
+ {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ }
+/*@egen*/ {
+ return false;
+ }/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+/*****************************************
+ * THE JAVA LANGUAGE GRAMMAR STARTS HERE *
+ *****************************************/
+
+/*
+ * Program structuring syntax follows.
+ */
+
+void CompilationUnit():
+{/*@bgen(jjtree) CompilationUnit */
+ SimpleNode jjtn000 = new SimpleNode(JJTCOMPILATIONUNIT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) CompilationUnit */
+ try {
+/*@egen*/
+ [ LOOKAHEAD( ( Annotation() )* "package" ) PackageDeclaration() ]
+ ( ImportDeclaration() )*
+ ( TypeDeclaration() )*
+ ( < "\u001a" > )?
+ ( <STUFF_TO_IGNORE: ~[]> )?
+ <EOF>/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void PackageDeclaration():
+{/*@bgen(jjtree) PackageDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTPACKAGEDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) PackageDeclaration */
+ try {
+/*@egen*/
+ Modifiers() "package" Name() ";"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ImportDeclaration():
+{/*@bgen(jjtree) ImportDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTIMPORTDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ImportDeclaration */
+ try {
+/*@egen*/
+ "import" [ "static" ] Name() [ "." "*" ] ";"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+/*
+ * Modifiers. We match all modifiers in a single rule to reduce the chances of
+ * syntax errors for simple modifier mistakes. It will also enable us to give
+ * better error messages.
+ */
+
+int Modifiers():
+{/*@bgen(jjtree) Modifiers */
+ SimpleNode jjtn000 = new SimpleNode(JJTMODIFIERS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/
+ int modifiers = 0;
+}
+{/*@bgen(jjtree) Modifiers */
+ try {
+/*@egen*/
+ (
+ LOOKAHEAD(2)
+ (
+ "public" { modifiers |= ModifierSet.PUBLIC; }
+ |
+ "static" { modifiers |= ModifierSet.STATIC; }
+ |
+ "protected" { modifiers |= ModifierSet.PROTECTED; }
+ |
+ "private" { modifiers |= ModifierSet.PRIVATE; }
+ |
+ "final" { modifiers |= ModifierSet.FINAL; }
+ |
+ "abstract" { modifiers |= ModifierSet.ABSTRACT; }
+ |
+ "synchronized" { modifiers |= ModifierSet.SYNCHRONIZED; }
+ |
+ "native" { modifiers |= ModifierSet.NATIVE; }
+ |
+ "transient" { modifiers |= ModifierSet.TRANSIENT; }
+ |
+ "volatile" { modifiers |= ModifierSet.VOLATILE; }
+ |
+ "strictfp" { modifiers |= ModifierSet.STRICTFP; }
+ |
+ Annotation()
+ )
+ )*/*@bgen(jjtree)*/
+ {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ }
+/*@egen*/
+
+ {
+ return modifiers;
+ }/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+/*
+ * Declaration syntax follows.
+ */
+void TypeDeclaration():
+{/*@bgen(jjtree) TypeDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTTYPEDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/
+ int modifiers;
+}
+{/*@bgen(jjtree) TypeDeclaration */
+ try {
+/*@egen*/
+ ";"
+|
+ modifiers = Modifiers()
+ (
+ ClassOrInterfaceDeclaration(modifiers)
+ |
+ EnumDeclaration(modifiers)
+ |
+ AnnotationTypeDeclaration(modifiers)
+ )/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+void ClassOrInterfaceDeclaration(int modifiers):
+{/*@bgen(jjtree) ClassOrInterfaceDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTCLASSORINTERFACEDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/
+ boolean isInterface = false;
+}
+{/*@bgen(jjtree) ClassOrInterfaceDeclaration */
+ try {
+/*@egen*/
+ ( "class" | "interface" { isInterface = true; } )
+ <IDENTIFIER>
+ [ TypeParameters() ]
+ [ ExtendsList(isInterface) ]
+ [ ImplementsList(isInterface) ]
+ ClassOrInterfaceBody(isInterface)/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ExtendsList(boolean isInterface):
+{/*@bgen(jjtree) ExtendsList */
+ SimpleNode jjtn000 = new SimpleNode(JJTEXTENDSLIST);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/
+ boolean extendsMoreThanOne = false;
+}
+{/*@bgen(jjtree) ExtendsList */
+ try {
+/*@egen*/
+ "extends" ClassOrInterfaceType()
+ ( "," ClassOrInterfaceType() { extendsMoreThanOne = true; } )*/*@bgen(jjtree)*/
+ {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ }
+/*@egen*/
+ {
+ if (extendsMoreThanOne && !isInterface)
+ throw new ParseException("A class cannot extend more than one other class");
+ }/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ImplementsList(boolean isInterface):
+{/*@bgen(jjtree) ImplementsList */
+ SimpleNode jjtn000 = new SimpleNode(JJTIMPLEMENTSLIST);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ImplementsList */
+ try {
+/*@egen*/
+ "implements" ClassOrInterfaceType()
+ ( "," ClassOrInterfaceType() )*/*@bgen(jjtree)*/
+ {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ }
+/*@egen*/
+ {
+ if (isInterface)
+ throw new ParseException("An interface cannot implement other interfaces");
+ }/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void EnumDeclaration(int modifiers):
+{/*@bgen(jjtree) EnumDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTENUMDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) EnumDeclaration */
+ try {
+/*@egen*/
+ "enum" <IDENTIFIER>
+ [ ImplementsList(false) ]
+ EnumBody()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void EnumBody():
+{/*@bgen(jjtree) EnumBody */
+ SimpleNode jjtn000 = new SimpleNode(JJTENUMBODY);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) EnumBody */
+ try {
+/*@egen*/
+ "{"
+ [ EnumConstant() ( LOOKAHEAD(2) "," EnumConstant() )* ]
+ [ "," ]
+ [ ";" ( ClassOrInterfaceBodyDeclaration(false) )* ]
+ "}"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void EnumConstant():
+{/*@bgen(jjtree) EnumConstant */
+ SimpleNode jjtn000 = new SimpleNode(JJTENUMCONSTANT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) EnumConstant */
+ try {
+/*@egen*/
+ Modifiers() <IDENTIFIER> [ Arguments() ] [ ClassOrInterfaceBody(false) ]/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void TypeParameters():
+{/*@bgen(jjtree) TypeParameters */
+ SimpleNode jjtn000 = new SimpleNode(JJTTYPEPARAMETERS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) TypeParameters */
+ try {
+/*@egen*/
+ "<" TypeParameter() ( "," TypeParameter() )* ">"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void TypeParameter():
+{/*@bgen(jjtree) TypeParameter */
+ SimpleNode jjtn000 = new SimpleNode(JJTTYPEPARAMETER);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) TypeParameter */
+ try {
+/*@egen*/
+ <IDENTIFIER> [ TypeBound() ]/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void TypeBound():
+{/*@bgen(jjtree) TypeBound */
+ SimpleNode jjtn000 = new SimpleNode(JJTTYPEBOUND);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) TypeBound */
+ try {
+/*@egen*/
+ "extends" ClassOrInterfaceType() ( "&" ClassOrInterfaceType() )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ClassOrInterfaceBody(boolean isInterface):
+{/*@bgen(jjtree) ClassOrInterfaceBody */
+ SimpleNode jjtn000 = new SimpleNode(JJTCLASSORINTERFACEBODY);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ClassOrInterfaceBody */
+ try {
+/*@egen*/
+ "{" ( ClassOrInterfaceBodyDeclaration(isInterface) )* "}"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ClassOrInterfaceBodyDeclaration(boolean isInterface):
+{/*@bgen(jjtree) ClassOrInterfaceBodyDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTCLASSORINTERFACEBODYDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/
+ boolean isNestedInterface = false;
+ int modifiers;
+}
+{/*@bgen(jjtree) ClassOrInterfaceBodyDeclaration */
+ try {
+/*@egen*/
+ LOOKAHEAD(2)
+ Initializer()/*@bgen(jjtree)*/
+ {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ }
+/*@egen*/
+ {
+ if (isInterface)
+ throw new ParseException("An interface cannot have initializers");
+ }
+|
+ modifiers = Modifiers() // Just get all the modifiers out of the way. If you want to do
+ // more checks, pass the modifiers down to the member
+ (
+ ClassOrInterfaceDeclaration(modifiers)
+ |
+ EnumDeclaration(modifiers)
+ |
+ LOOKAHEAD( [ TypeParameters() ] <IDENTIFIER> "(" )
+ ConstructorDeclaration()
+ |
+ LOOKAHEAD( Type() <IDENTIFIER> ( "[" "]" )* ( "," | "=" | ";" ) )
+ FieldDeclaration(modifiers)
+ |
+ MethodDeclaration(modifiers)
+ )
+|
+ ";"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void FieldDeclaration(int modifiers):
+{/*@bgen(jjtree) FieldDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTFIELDDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) FieldDeclaration */
+ try {
+/*@egen*/
+ // Modifiers are already matched in the caller
+ Type() VariableDeclarator() ( "," VariableDeclarator() )* ";"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void VariableDeclarator():
+{/*@bgen(jjtree) VariableDeclarator */
+ SimpleNode jjtn000 = new SimpleNode(JJTVARIABLEDECLARATOR);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) VariableDeclarator */
+ try {
+/*@egen*/
+ VariableDeclaratorId() [ "=" VariableInitializer() ]/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void VariableDeclaratorId():
+{/*@bgen(jjtree) VariableDeclaratorId */
+ SimpleNode jjtn000 = new SimpleNode(JJTVARIABLEDECLARATORID);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) VariableDeclaratorId */
+ try {
+/*@egen*/
+ <IDENTIFIER> ( "[" "]" )*/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void VariableInitializer():
+{/*@bgen(jjtree) VariableInitializer */
+ SimpleNode jjtn000 = new SimpleNode(JJTVARIABLEINITIALIZER);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) VariableInitializer */
+ try {
+/*@egen*/
+ ArrayInitializer()
+|
+ Expression()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ArrayInitializer():
+{/*@bgen(jjtree) ArrayInitializer */
+ SimpleNode jjtn000 = new SimpleNode(JJTARRAYINITIALIZER);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ArrayInitializer */
+ try {
+/*@egen*/
+ "{" [ VariableInitializer() ( LOOKAHEAD(2) "," VariableInitializer() )* ] [ "," ] "}"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void MethodDeclaration(int modifiers):
+{/*@bgen(jjtree) MethodDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTMETHODDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) MethodDeclaration */
+ try {
+/*@egen*/
+ // Modifiers already matched in the caller!
+ [ TypeParameters() ]
+ ResultType()
+ MethodDeclarator() [ "throws" NameList() ]
+ ( Block() | ";" )/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void MethodDeclarator():
+{/*@bgen(jjtree) MethodDeclarator */
+ SimpleNode jjtn000 = new SimpleNode(JJTMETHODDECLARATOR);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) MethodDeclarator */
+ try {
+/*@egen*/
+ <IDENTIFIER> FormalParameters() ( "[" "]" )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void FormalParameters():
+{/*@bgen(jjtree) FormalParameters */
+ SimpleNode jjtn000 = new SimpleNode(JJTFORMALPARAMETERS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) FormalParameters */
+ try {
+/*@egen*/
+ "(" [ FormalParameter() ( "," FormalParameter() )* ] ")"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void FormalParameter():
+{/*@bgen(jjtree) FormalParameter */
+ SimpleNode jjtn000 = new SimpleNode(JJTFORMALPARAMETER);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) FormalParameter */
+ try {
+/*@egen*/
+ Modifiers() Type() [ "..." ] VariableDeclaratorId()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ConstructorDeclaration():
+{/*@bgen(jjtree) ConstructorDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTCONSTRUCTORDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ConstructorDeclaration */
+ try {
+/*@egen*/
+ [ TypeParameters() ]
+ // Modifiers matched in the caller
+ <IDENTIFIER> FormalParameters() [ "throws" NameList() ]
+ "{"
+ [ LOOKAHEAD(ExplicitConstructorInvocation())
+ ExplicitConstructorInvocation()
+ ]
+ ( BlockStatement() )*
+ "}"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ExplicitConstructorInvocation():
+{/*@bgen(jjtree) ExplicitConstructorInvocation */
+ SimpleNode jjtn000 = new SimpleNode(JJTEXPLICITCONSTRUCTORINVOCATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ExplicitConstructorInvocation */
+ try {
+/*@egen*/
+ ( <IDENTIFIER> "." )* [ LOOKAHEAD(2) "this" "." ]
+ [ TypeArguments() ] ("this"|"super") Arguments() ";"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void Initializer():
+{/*@bgen(jjtree) Initializer */
+ SimpleNode jjtn000 = new SimpleNode(JJTINITIALIZER);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Initializer */
+ try {
+/*@egen*/
+ [ "static" ] Block()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+/*
+ * Type, name and expression syntax follows.
+ */
+
+void Type():
+{/*@bgen(jjtree) Type */
+ SimpleNode jjtn000 = new SimpleNode(JJTTYPE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Type */
+ try {
+/*@egen*/
+ LOOKAHEAD(2) ReferenceType()
+ |
+ PrimitiveType()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ReferenceType():
+{/*@bgen(jjtree) ReferenceType */
+ SimpleNode jjtn000 = new SimpleNode(JJTREFERENCETYPE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ReferenceType */
+ try {
+/*@egen*/
+ PrimitiveType() ( LOOKAHEAD(2) "[" "]" )+
+ |
+ ( ClassOrInterfaceType() ) ( LOOKAHEAD(2) "[" "]" )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ClassOrInterfaceType():
+{/*@bgen(jjtree) ClassOrInterfaceType */
+ SimpleNode jjtn000 = new SimpleNode(JJTCLASSORINTERFACETYPE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ClassOrInterfaceType */
+ try {
+/*@egen*/
+ <IDENTIFIER> [ LOOKAHEAD(2) TypeArguments() ]
+ ( LOOKAHEAD(2) "." <IDENTIFIER> [ LOOKAHEAD(2) TypeArguments() ] )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void TypeArguments():
+{/*@bgen(jjtree) TypeArguments */
+ SimpleNode jjtn000 = new SimpleNode(JJTTYPEARGUMENTS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) TypeArguments */
+ try {
+/*@egen*/
+ "<" TypeArgument() ( "," TypeArgument() )* ">"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void TypeArgument():
+{/*@bgen(jjtree) TypeArgument */
+ SimpleNode jjtn000 = new SimpleNode(JJTTYPEARGUMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) TypeArgument */
+ try {
+/*@egen*/
+ ReferenceType()
+ |
+ "?" [ WildcardBounds() ]/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void WildcardBounds():
+{/*@bgen(jjtree) WildcardBounds */
+ SimpleNode jjtn000 = new SimpleNode(JJTWILDCARDBOUNDS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) WildcardBounds */
+ try {
+/*@egen*/
+ "extends" ReferenceType()
+ |
+ "super" ReferenceType()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+void PrimitiveType():
+{/*@bgen(jjtree) PrimitiveType */
+ SimpleNode jjtn000 = new SimpleNode(JJTPRIMITIVETYPE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) PrimitiveType */
+ try {
+/*@egen*/
+ "boolean"
+|
+ "char"
+|
+ "byte"
+|
+ "short"
+|
+ "int"
+|
+ "long"
+|
+ "float"
+|
+ "double"/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ResultType():
+{/*@bgen(jjtree) ResultType */
+ SimpleNode jjtn000 = new SimpleNode(JJTRESULTTYPE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ResultType */
+ try {
+/*@egen*/
+ "void"
+|
+ Type()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void Name():
+/*
+ * A lookahead of 2 is required below since "Name" can be followed
+ * by a ".*" when used in the context of an "ImportDeclaration".
+ */
+{/*@bgen(jjtree) Name */
+ SimpleNode jjtn000 = new SimpleNode(JJTNAME);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Name */
+ try {
+/*@egen*/
+ <IDENTIFIER>
+ ( LOOKAHEAD(2) "." <IDENTIFIER>
+ )*/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void NameList():
+{/*@bgen(jjtree) NameList */
+ SimpleNode jjtn000 = new SimpleNode(JJTNAMELIST);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) NameList */
+ try {
+/*@egen*/
+ Name() ( "," Name() )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+/*
+ * Expression syntax follows.
+ */
+
+void Expression():
+/*
+ * This expansion has been written this way instead of:
+ * Assignment() | ConditionalExpression()
+ * for performance reasons.
+ * However, it is a weakening of the grammar for it allows the LHS of
+ * assignments to be any conditional expression whereas it can only be
+ * a primary expression. Consider adding a semantic predicate to work
+ * around this.
+ */
+{/*@bgen(jjtree) Expression */
+ SimpleNode jjtn000 = new SimpleNode(JJTEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Expression */
+ try {
+/*@egen*/
+ ConditionalExpression()
+ [
+ LOOKAHEAD(2)
+ AssignmentOperator() Expression()
+ ]/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void AssignmentOperator():
+{/*@bgen(jjtree) AssignmentOperator */
+ SimpleNode jjtn000 = new SimpleNode(JJTASSIGNMENTOPERATOR);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) AssignmentOperator */
+ try {
+/*@egen*/
+ "=" | "*=" | "/=" | "%=" | "+=" | "-=" | "<<=" | ">>=" | ">>>=" | "&=" | "^=" | "|="/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void AssignmentExpression():
+{/*@bgen(jjtree) AssignmentExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTASSIGNMENTEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) AssignmentExpression */
+ try {
+/*@egen*/
+ PrimaryExpression() AssignmentOperator() Expression()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ConditionalExpression():
+{/*@bgen(jjtree) ConditionalExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTCONDITIONALEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ConditionalExpression */
+ try {
+/*@egen*/
+ ConditionalOrExpression() [ "?" Expression() ":" Expression() ]/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ConditionalOrExpression():
+{/*@bgen(jjtree) ConditionalOrExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTCONDITIONALOREXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ConditionalOrExpression */
+ try {
+/*@egen*/
+ ConditionalAndExpression() ( "||" ConditionalAndExpression() )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ConditionalAndExpression():
+{/*@bgen(jjtree) ConditionalAndExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTCONDITIONALANDEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ConditionalAndExpression */
+ try {
+/*@egen*/
+ InclusiveOrExpression() ( "&&" InclusiveOrExpression() )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void InclusiveOrExpression():
+{/*@bgen(jjtree) InclusiveOrExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTINCLUSIVEOREXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) InclusiveOrExpression */
+ try {
+/*@egen*/
+ ExclusiveOrExpression() ( "|" ExclusiveOrExpression() )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ExclusiveOrExpression():
+{/*@bgen(jjtree) ExclusiveOrExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTEXCLUSIVEOREXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ExclusiveOrExpression */
+ try {
+/*@egen*/
+ AndExpression() ( "^" AndExpression() )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void AndExpression():
+{/*@bgen(jjtree) AndExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTANDEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) AndExpression */
+ try {
+/*@egen*/
+ EqualityExpression() ( "&" EqualityExpression() )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void EqualityExpression():
+{/*@bgen(jjtree) EqualityExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTEQUALITYEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) EqualityExpression */
+ try {
+/*@egen*/
+ InstanceOfExpression() ( ( "==" | "!=" ) InstanceOfExpression() )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void InstanceOfExpression():
+{/*@bgen(jjtree) InstanceOfExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTINSTANCEOFEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) InstanceOfExpression */
+ try {
+/*@egen*/
+ RelationalExpression() [ "instanceof" Type() ]/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void RelationalExpression():
+{/*@bgen(jjtree) RelationalExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTRELATIONALEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) RelationalExpression */
+ try {
+/*@egen*/
+ ShiftExpression() ( ( "<" | ">" | "<=" | ">=" ) ShiftExpression() )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ShiftExpression():
+{/*@bgen(jjtree) ShiftExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTSHIFTEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ShiftExpression */
+ try {
+/*@egen*/
+ AdditiveExpression() ( ( "<<" | RSIGNEDSHIFT() | RUNSIGNEDSHIFT() ) AdditiveExpression() )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void AdditiveExpression():
+{/*@bgen(jjtree) AdditiveExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTADDITIVEEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) AdditiveExpression */
+ try {
+/*@egen*/
+ MultiplicativeExpression() ( ( "+" | "-" ) MultiplicativeExpression() )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void MultiplicativeExpression():
+{/*@bgen(jjtree) MultiplicativeExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTMULTIPLICATIVEEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) MultiplicativeExpression */
+ try {
+/*@egen*/
+ UnaryExpression() ( ( "*" | "/" | "%" ) UnaryExpression() )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void UnaryExpression():
+{/*@bgen(jjtree) UnaryExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTUNARYEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) UnaryExpression */
+ try {
+/*@egen*/
+ ( "+" | "-" ) UnaryExpression()
+|
+ PreIncrementExpression()
+|
+ PreDecrementExpression()
+|
+ UnaryExpressionNotPlusMinus()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void PreIncrementExpression():
+{/*@bgen(jjtree) PreIncrementExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTPREINCREMENTEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) PreIncrementExpression */
+ try {
+/*@egen*/
+ "++" PrimaryExpression()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void PreDecrementExpression():
+{/*@bgen(jjtree) PreDecrementExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTPREDECREMENTEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) PreDecrementExpression */
+ try {
+/*@egen*/
+ "--" PrimaryExpression()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void UnaryExpressionNotPlusMinus():
+{/*@bgen(jjtree) UnaryExpressionNotPlusMinus */
+ SimpleNode jjtn000 = new SimpleNode(JJTUNARYEXPRESSIONNOTPLUSMINUS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) UnaryExpressionNotPlusMinus */
+ try {
+/*@egen*/
+ ( "~" | "!" ) UnaryExpression()
+|
+ LOOKAHEAD( CastLookahead() )
+ CastExpression()
+|
+ PostfixExpression()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+// This production is to determine lookahead only. The LOOKAHEAD specifications
+// below are not used, but they are there just to indicate that we know about
+// this.
+void CastLookahead():
+{/*@bgen(jjtree) CastLookahead */
+ SimpleNode jjtn000 = new SimpleNode(JJTCASTLOOKAHEAD);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) CastLookahead */
+ try {
+/*@egen*/
+ LOOKAHEAD(2)
+ "(" PrimitiveType()
+|
+ LOOKAHEAD("(" Type() "[")
+ "(" Type() "[" "]"
+|
+ "(" Type() ")" ( "~" | "!" | "(" | <IDENTIFIER> | "this" | "super" | "new" | Literal() )/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void PostfixExpression():
+{/*@bgen(jjtree) PostfixExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTPOSTFIXEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) PostfixExpression */
+ try {
+/*@egen*/
+ PrimaryExpression() [ PostfixOperator() ]/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void PostfixOperator():
+{/*@bgen(jjtree) PostfixOperator */
+ SimpleNode jjtn000 = new SimpleNode(JJTPOSTFIXOPERATOR);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) PostfixOperator */
+ try {
+/*@egen*/
+ "++" | "--"/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void CastExpression():
+{/*@bgen(jjtree) CastExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTCASTEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) CastExpression */
+ try {
+/*@egen*/
+ LOOKAHEAD("(" PrimitiveType())
+ "(" Type() ")" UnaryExpression()
+|
+ "(" Type() ")" UnaryExpressionNotPlusMinus()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void PrimaryExpression():
+{/*@bgen(jjtree) PrimaryExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTPRIMARYEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) PrimaryExpression */
+ try {
+/*@egen*/
+ PrimaryPrefix() ( LOOKAHEAD(2) PrimarySuffix() )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void MemberSelector():
+{/*@bgen(jjtree) MemberSelector */
+ SimpleNode jjtn000 = new SimpleNode(JJTMEMBERSELECTOR);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) MemberSelector */
+ try {
+/*@egen*/
+ "." TypeArguments() <IDENTIFIER>/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void PrimaryPrefix():
+{/*@bgen(jjtree) PrimaryPrefix */
+ SimpleNode jjtn000 = new SimpleNode(JJTPRIMARYPREFIX);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) PrimaryPrefix */
+ try {
+/*@egen*/
+ Literal()
+|
+ LOOKAHEAD( ( <IDENTIFIER> "." )* "this" )
+ ( <IDENTIFIER> "." )*
+ "this"
+|
+ "super" "." <IDENTIFIER>
+|
+ "(" Expression() ")"
+|
+ AllocationExpression()
+|
+ LOOKAHEAD( ResultType() "." "class" )
+ ResultType() "." "class"
+|
+ Name()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void PrimarySuffix():
+{/*@bgen(jjtree) PrimarySuffix */
+ SimpleNode jjtn000 = new SimpleNode(JJTPRIMARYSUFFIX);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) PrimarySuffix */
+ try {
+/*@egen*/
+ LOOKAHEAD("." "super" ".")
+ "." "super"
+|
+ LOOKAHEAD("." "this")
+ "." "this"
+|
+ LOOKAHEAD(2)
+ "." AllocationExpression()
+|
+ LOOKAHEAD(3)
+ MemberSelector()
+|
+ "[" Expression() "]"
+|
+ "." <IDENTIFIER>
+|
+ Arguments()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void Literal():
+{/*@bgen(jjtree) Literal */
+ SimpleNode jjtn000 = new SimpleNode(JJTLITERAL);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Literal */
+ try {
+/*@egen*/
+ <INTEGER_LITERAL>
+|
+ <FLOATING_POINT_LITERAL>
+|
+ <CHARACTER_LITERAL>
+|
+ <STRING_LITERAL>
+|
+ BooleanLiteral()
+|
+ NullLiteral()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void BooleanLiteral():
+{/*@bgen(jjtree) BooleanLiteral */
+ SimpleNode jjtn000 = new SimpleNode(JJTBOOLEANLITERAL);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) BooleanLiteral */
+ try {
+/*@egen*/
+ "true"
+|
+ "false"/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void NullLiteral():
+{/*@bgen(jjtree) NullLiteral */
+ SimpleNode jjtn000 = new SimpleNode(JJTNULLLITERAL);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) NullLiteral */
+ try {
+/*@egen*/
+ "null"/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void Arguments():
+{/*@bgen(jjtree) Arguments */
+ SimpleNode jjtn000 = new SimpleNode(JJTARGUMENTS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Arguments */
+ try {
+/*@egen*/
+ "(" [ ArgumentList() ] ")"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ArgumentList():
+{/*@bgen(jjtree) ArgumentList */
+ SimpleNode jjtn000 = new SimpleNode(JJTARGUMENTLIST);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ArgumentList */
+ try {
+/*@egen*/
+ Expression() ( "," Expression() )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void AllocationExpression():
+{/*@bgen(jjtree) AllocationExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTALLOCATIONEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) AllocationExpression */
+ try {
+/*@egen*/
+ LOOKAHEAD(2)
+ "new" PrimitiveType() ArrayDimsAndInits()
+|
+ "new" ClassOrInterfaceType() [ TypeArguments() ]
+ (
+ ArrayDimsAndInits()
+ |
+ Arguments() [ ClassOrInterfaceBody(false) ]
+ )/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+/*
+ * The third LOOKAHEAD specification below is to parse to PrimarySuffix
+ * if there is an expression between the "[...]".
+ */
+void ArrayDimsAndInits():
+{/*@bgen(jjtree) ArrayDimsAndInits */
+ SimpleNode jjtn000 = new SimpleNode(JJTARRAYDIMSANDINITS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ArrayDimsAndInits */
+ try {
+/*@egen*/
+ LOOKAHEAD(2)
+ ( LOOKAHEAD(2) "[" Expression() "]" )+ ( LOOKAHEAD(2) "[" "]" )*
+|
+ ( "[" "]" )+ ArrayInitializer()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+/*
+ * Statement syntax follows.
+ */
+
+void Statement():
+{/*@bgen(jjtree) Statement */
+ SimpleNode jjtn000 = new SimpleNode(JJTSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Statement */
+ try {
+/*@egen*/
+ LOOKAHEAD(2)
+ LabeledStatement()
+|
+ AssertStatement()
+|
+ Block()
+|
+ EmptyStatement()
+|
+ StatementExpression() ";"
+|
+ SwitchStatement()
+|
+ IfStatement()
+|
+ WhileStatement()
+|
+ DoStatement()
+|
+ ForStatement()
+|
+ BreakStatement()
+|
+ ContinueStatement()
+|
+ ReturnStatement()
+|
+ ThrowStatement()
+|
+ SynchronizedStatement()
+|
+ TryStatement()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void AssertStatement():
+{/*@bgen(jjtree) AssertStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTASSERTSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) AssertStatement */
+ try {
+/*@egen*/
+ "assert" Expression() [ ":" Expression() ] ";"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void LabeledStatement():
+{/*@bgen(jjtree) LabeledStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTLABELEDSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) LabeledStatement */
+ try {
+/*@egen*/
+ <IDENTIFIER> ":" Statement()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void Block():
+{/*@bgen(jjtree) Block */
+ SimpleNode jjtn000 = new SimpleNode(JJTBLOCK);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Block */
+ try {
+/*@egen*/
+ "{" ( BlockStatement() )* "}"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void BlockStatement():
+{/*@bgen(jjtree) BlockStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTBLOCKSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) BlockStatement */
+ try {
+/*@egen*/
+ LOOKAHEAD( Modifiers() Type() <IDENTIFIER> )
+ LocalVariableDeclaration() ";"
+|
+ Statement()
+|
+ ClassOrInterfaceDeclaration(0)/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void LocalVariableDeclaration():
+{/*@bgen(jjtree) LocalVariableDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTLOCALVARIABLEDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) LocalVariableDeclaration */
+ try {
+/*@egen*/
+ Modifiers() Type() VariableDeclarator() ( "," VariableDeclarator() )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void EmptyStatement():
+{/*@bgen(jjtree) EmptyStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTEMPTYSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) EmptyStatement */
+ try {
+/*@egen*/
+ ";"/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void StatementExpression():
+{/*@bgen(jjtree) StatementExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTSTATEMENTEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) StatementExpression */
+ try {
+/*@egen*/
+ PreIncrementExpression()
+|
+ PreDecrementExpression()
+|
+ LOOKAHEAD(PrimaryExpression() AssignmentOperator())
+ AssignmentExpression()
+|
+ PostfixExpression()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void SwitchStatement():
+{/*@bgen(jjtree) SwitchStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTSWITCHSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) SwitchStatement */
+ try {
+/*@egen*/
+ "switch" "(" Expression() ")" "{"
+ ( SwitchLabel() ( BlockStatement() )* )*
+ "}"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void SwitchLabel():
+{/*@bgen(jjtree) SwitchLabel */
+ SimpleNode jjtn000 = new SimpleNode(JJTSWITCHLABEL);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) SwitchLabel */
+ try {
+/*@egen*/
+ "case" Expression() ":"
+|
+ "default" ":"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void IfStatement():
+/*
+ * The disambiguating algorithm of JavaCC automatically binds dangling
+ * else's to the innermost if statement. The LOOKAHEAD specification
+ * is to tell JavaCC that we know what we are doing.
+ */
+{/*@bgen(jjtree) IfStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTIFSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) IfStatement */
+ try {
+/*@egen*/
+ "if" "(" Expression() ")" Statement() [ LOOKAHEAD(1) "else" Statement() ]/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void WhileStatement():
+{/*@bgen(jjtree) WhileStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTWHILESTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) WhileStatement */
+ try {
+/*@egen*/
+ "while" "(" Expression() ")" Statement()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void DoStatement():
+{/*@bgen(jjtree) DoStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTDOSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) DoStatement */
+ try {
+/*@egen*/
+ "do" Statement() "while" "(" Expression() ")" ";"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ForStatement():
+{/*@bgen(jjtree) ForStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTFORSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ForStatement */
+ try {
+/*@egen*/
+ "for" "("
+
+ (
+ LOOKAHEAD(Modifiers() Type() <IDENTIFIER> ":")
+ Modifiers() Type() <IDENTIFIER> ":" Expression()
+ |
+ [ ForInit() ] ";" [ Expression() ] ";" [ ForUpdate() ]
+ )
+
+ ")" Statement()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ForInit():
+{/*@bgen(jjtree) ForInit */
+ SimpleNode jjtn000 = new SimpleNode(JJTFORINIT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ForInit */
+ try {
+/*@egen*/
+ LOOKAHEAD( Modifiers() Type() <IDENTIFIER> )
+ LocalVariableDeclaration()
+|
+ StatementExpressionList()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void StatementExpressionList():
+{/*@bgen(jjtree) StatementExpressionList */
+ SimpleNode jjtn000 = new SimpleNode(JJTSTATEMENTEXPRESSIONLIST);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) StatementExpressionList */
+ try {
+/*@egen*/
+ StatementExpression() ( "," StatementExpression() )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ForUpdate():
+{/*@bgen(jjtree) ForUpdate */
+ SimpleNode jjtn000 = new SimpleNode(JJTFORUPDATE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ForUpdate */
+ try {
+/*@egen*/
+ StatementExpressionList()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void BreakStatement():
+{/*@bgen(jjtree) BreakStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTBREAKSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) BreakStatement */
+ try {
+/*@egen*/
+ "break" [ <IDENTIFIER> ] ";"/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ContinueStatement():
+{/*@bgen(jjtree) ContinueStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTCONTINUESTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ContinueStatement */
+ try {
+/*@egen*/
+ "continue" [ <IDENTIFIER> ] ";"/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ReturnStatement():
+{/*@bgen(jjtree) ReturnStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTRETURNSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ReturnStatement */
+ try {
+/*@egen*/
+ "return" [ Expression() ] ";"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void ThrowStatement():
+{/*@bgen(jjtree) ThrowStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTTHROWSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) ThrowStatement */
+ try {
+/*@egen*/
+ "throw" Expression() ";"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void SynchronizedStatement():
+{/*@bgen(jjtree) SynchronizedStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTSYNCHRONIZEDSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) SynchronizedStatement */
+ try {
+/*@egen*/
+ "synchronized" "(" Expression() ")" Block()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void TryStatement():
+/*
+ * Semantic check required here to make sure that at least one
+ * finally/catch is present.
+ */
+{/*@bgen(jjtree) TryStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTTRYSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) TryStatement */
+ try {
+/*@egen*/
+ "try" Block()
+ ( "catch" "(" FormalParameter() ")" Block() )*
+ [ "finally" Block() ]/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+/* We use productions to match >>>, >> and > so that we can keep the
+ * type declaration syntax with generics clean
+ */
+
+void RUNSIGNEDSHIFT():
+{/*@bgen(jjtree) RUNSIGNEDSHIFT */
+ SimpleNode jjtn000 = new SimpleNode(JJTRUNSIGNEDSHIFT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) RUNSIGNEDSHIFT */
+ try {
+/*@egen*/
+ ( LOOKAHEAD({ getToken(1).kind == GT &&
+ ((Token.GTToken)getToken(1)).realKind == RUNSIGNEDSHIFT} )
+ ">" ">" ">"
+ )/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void RSIGNEDSHIFT():
+{/*@bgen(jjtree) RSIGNEDSHIFT */
+ SimpleNode jjtn000 = new SimpleNode(JJTRSIGNEDSHIFT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) RSIGNEDSHIFT */
+ try {
+/*@egen*/
+ ( LOOKAHEAD({ getToken(1).kind == GT &&
+ ((Token.GTToken)getToken(1)).realKind == RSIGNEDSHIFT} )
+ ">" ">"
+ )/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+/* Annotation syntax follows. */
+
+void Annotation():
+{/*@bgen(jjtree) Annotation */
+ SimpleNode jjtn000 = new SimpleNode(JJTANNOTATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Annotation */
+ try {
+/*@egen*/
+ LOOKAHEAD( "@" Name() "(" ( <IDENTIFIER> "=" | ")" ))
+ NormalAnnotation()
+ |
+ LOOKAHEAD( "@" Name() "(" )
+ SingleMemberAnnotation()
+ |
+ MarkerAnnotation()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void NormalAnnotation():
+{/*@bgen(jjtree) NormalAnnotation */
+ SimpleNode jjtn000 = new SimpleNode(JJTNORMALANNOTATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) NormalAnnotation */
+ try {
+/*@egen*/
+ "@" Name() "(" [ MemberValuePairs() ] ")"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void MarkerAnnotation():
+{/*@bgen(jjtree) MarkerAnnotation */
+ SimpleNode jjtn000 = new SimpleNode(JJTMARKERANNOTATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) MarkerAnnotation */
+ try {
+/*@egen*/
+ "@" Name()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void SingleMemberAnnotation():
+{/*@bgen(jjtree) SingleMemberAnnotation */
+ SimpleNode jjtn000 = new SimpleNode(JJTSINGLEMEMBERANNOTATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) SingleMemberAnnotation */
+ try {
+/*@egen*/
+ "@" Name() "(" MemberValue() ")"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void MemberValuePairs():
+{/*@bgen(jjtree) MemberValuePairs */
+ SimpleNode jjtn000 = new SimpleNode(JJTMEMBERVALUEPAIRS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) MemberValuePairs */
+ try {
+/*@egen*/
+ MemberValuePair() ( "," MemberValuePair() )*/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void MemberValuePair():
+{/*@bgen(jjtree) MemberValuePair */
+ SimpleNode jjtn000 = new SimpleNode(JJTMEMBERVALUEPAIR);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) MemberValuePair */
+ try {
+/*@egen*/
+ <IDENTIFIER> "=" MemberValue()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void MemberValue():
+{/*@bgen(jjtree) MemberValue */
+ SimpleNode jjtn000 = new SimpleNode(JJTMEMBERVALUE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) MemberValue */
+ try {
+/*@egen*/
+ Annotation()
+ |
+ MemberValueArrayInitializer()
+ |
+ ConditionalExpression()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void MemberValueArrayInitializer():
+{/*@bgen(jjtree) MemberValueArrayInitializer */
+ SimpleNode jjtn000 = new SimpleNode(JJTMEMBERVALUEARRAYINITIALIZER);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) MemberValueArrayInitializer */
+ try {
+/*@egen*/
+ "{" MemberValue() ( LOOKAHEAD(2) "," MemberValue() )* [ "," ] "}"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+
+/* Annotation Types. */
+
+void AnnotationTypeDeclaration(int modifiers):
+{/*@bgen(jjtree) AnnotationTypeDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTANNOTATIONTYPEDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) AnnotationTypeDeclaration */
+ try {
+/*@egen*/
+ "@" "interface" <IDENTIFIER> AnnotationTypeBody()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void AnnotationTypeBody():
+{/*@bgen(jjtree) AnnotationTypeBody */
+ SimpleNode jjtn000 = new SimpleNode(JJTANNOTATIONTYPEBODY);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) AnnotationTypeBody */
+ try {
+/*@egen*/
+ "{" ( AnnotationTypeMemberDeclaration() )* "}"/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void AnnotationTypeMemberDeclaration():
+{/*@bgen(jjtree) AnnotationTypeMemberDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTANNOTATIONTYPEMEMBERDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/
+ int modifiers;
+}
+{/*@bgen(jjtree) AnnotationTypeMemberDeclaration */
+ try {
+/*@egen*/
+ modifiers = Modifiers()
+ (
+ LOOKAHEAD(Type() <IDENTIFIER> "(")
+ Type() <IDENTIFIER> "(" ")" [ DefaultValue() ] ";"
+ |
+ ClassOrInterfaceDeclaration(modifiers)
+ |
+ EnumDeclaration(modifiers)
+ |
+ AnnotationTypeDeclaration(modifiers)
+ |
+ FieldDeclaration(modifiers)
+ )
+ |
+ ( ";" )/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
+
+void DefaultValue():
+{/*@bgen(jjtree) DefaultValue */
+ SimpleNode jjtn000 = new SimpleNode(JJTDEFAULTVALUE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) DefaultValue */
+ try {
+/*@egen*/
+ "default" MemberValue()/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+/*@egen*/
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Java1.5.jjt
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Java1.5.jjt (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Java1.5.jjt 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,2150 @@
+
+/*
+ * Copyright © 2002 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * California 95054, U.S.A. All rights reserved. Sun Microsystems, Inc. has
+ * intellectual property rights relating to technology embodied in the product
+ * that is described in this document. In particular, and without limitation,
+ * these intellectual property rights may include one or more of the U.S.
+ * patents listed at http://www.sun.com/patents and one or more additional
+ * patents or pending patent applications in the U.S. and in other countries.
+ * U.S. Government Rights - Commercial software. Government users are subject
+ * to the Sun Microsystems, Inc. standard license agreement and applicable
+ * provisions of the FAR and its supplements. Use is subject to license terms.
+ * Sun, Sun Microsystems, the Sun logo and Java are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. This
+ * product is covered and controlled by U.S. Export Control laws and may be
+ * subject to the export or import laws in other countries. Nuclear, missile,
+ * chemical biological weapons or nuclear maritime end uses or end users,
+ * whether direct or indirect, are strictly prohibited. Export or reexport
+ * to countries subject to U.S. embargo or to entities identified on U.S.
+ * export exclusion lists, including, but not limited to, the denied persons
+ * and specially designated nationals lists is strictly prohibited.
+ */
+
+// Slightly modified version of javacc's reference 1.5 grammar, tweaked for
+// usage with JAXX. There are two main areas of changes: several new
+// nonterminals were added to make identifying certain constructs easier,
+// and the Line nonterminal was added to support JAXX's script tags.
+// Several of the new changes are inefficient and require excess lookahead,
+// but at this point I'd rather have inefficiency than risk breaking it during
+// attempted optimizations.
+
+options {
+ JAVA_UNICODE_ESCAPE = true;
+ ERROR_REPORTING = false;
+ STATIC = false;
+ JDK_VERSION = "1.4";
+ NODE_SCOPE_HOOK=true;
+}
+
+PARSER_BEGIN(JavaParser)
+package jaxx.parser;
+
+import java.io.*;
+
+/**
+ * Grammar to parse Java version 1.5
+ * @author Sreenivasa Viswanadha - Simplified and enhanced for 1.5
+ */
+public class JavaParser
+{
+ /**
+ * Class to hold modifiers.
+ */
+ static public final class ModifierSet
+ {
+ /* Definitions of the bits in the modifiers field. */
+ public static final int PUBLIC = 0x0001;
+ public static final int PROTECTED = 0x0002;
+ public static final int PRIVATE = 0x0004;
+ public static final int ABSTRACT = 0x0008;
+ public static final int STATIC = 0x0010;
+ public static final int FINAL = 0x0020;
+ public static final int SYNCHRONIZED = 0x0040;
+ public static final int NATIVE = 0x0080;
+ public static final int TRANSIENT = 0x0100;
+ public static final int VOLATILE = 0x0200;
+ public static final int STRICTFP = 0x1000;
+
+ /** A set of accessors that indicate whether the specified modifier
+ is in the set. */
+
+ public boolean isPublic(int modifiers)
+ {
+ return (modifiers & PUBLIC) != 0;
+ }
+
+ public boolean isProtected(int modifiers)
+ {
+ return (modifiers & PROTECTED) != 0;
+ }
+
+ public boolean isPrivate(int modifiers)
+ {
+ return (modifiers & PRIVATE) != 0;
+ }
+
+ public boolean isStatic(int modifiers)
+ {
+ return (modifiers & STATIC) != 0;
+ }
+
+ public boolean isAbstract(int modifiers)
+ {
+ return (modifiers & ABSTRACT) != 0;
+ }
+
+ public boolean isFinal(int modifiers)
+ {
+ return (modifiers & FINAL) != 0;
+ }
+
+ public boolean isNative(int modifiers)
+ {
+ return (modifiers & NATIVE) != 0;
+ }
+
+ public boolean isStrictfp(int modifiers)
+ {
+ return (modifiers & STRICTFP) != 0;
+ }
+
+ public boolean isSynchronized(int modifiers)
+ {
+ return (modifiers & SYNCHRONIZED) != 0;
+ }
+
+ public boolean isTransient(int modifiers)
+ {
+ return (modifiers & TRANSIENT) != 0;
+ }
+
+ public boolean isVolatile(int modifiers)
+ {
+ return (modifiers & VOLATILE) != 0;
+ }
+
+ /**
+ * Removes the given modifier.
+ */
+ static int removeModifier(int modifiers, int mod)
+ {
+ return modifiers & ~mod;
+ }
+ }
+
+ public JavaParser(String fileName)
+ {
+ this(System.in);
+ try { ReInit(new FileInputStream(new File(fileName))); }
+ catch(Exception e) { e.printStackTrace(); }
+ }
+
+ void jjtreeOpenNodeScope(Node n) {
+ ((SimpleNode) n).firstToken = getToken(1);
+ }
+
+ void jjtreeCloseNodeScope(Node n) {
+ ((SimpleNode) n).lastToken = getToken(0);
+ }
+
+ public SimpleNode popNode()
+ {
+ if ( jjtree.nodeArity() > 0) // number of child nodes
+ return (SimpleNode)jjtree.popNode();
+ else
+ return null;
+ }
+ public static void main(String args[]) {
+ JavaParser parser;
+ if (args.length == 0) {
+ System.out.println("Java Parser Version 1.1: Reading from standard input . . .");
+ parser = new JavaParser(System.in);
+ } else if (args.length == 1) {
+ System.out.println("Java Parser Version 1.1: Reading from file " + args[0] + " . . .");
+ try {
+ parser = new JavaParser(new java.io.FileInputStream(args[0]));
+ } catch (java.io.FileNotFoundException e) {
+ System.out.println("Java Parser Version 1.1: File " + args[0] + " not found.");
+ return;
+ }
+ } else {
+ System.out.println("Java Parser Version 1.1: Usage is one of:");
+ System.out.println(" java JavaParser < inputfile");
+ System.out.println("OR");
+ System.out.println(" java JavaParser inputfile");
+ return;
+ }
+ try {
+ parser.CompilationUnit();
+ System.out.println("Java Parser Version 1.1: Java program parsed successfully.");
+ } catch (ParseException e) {
+ System.out.println(e.getMessage());
+ System.out.println("Java Parser Version 1.1: Encountered errors during parse.");
+ }
+ }
+
+}
+
+PARSER_END(JavaParser)
+
+/* COMMENTS */
+
+MORE :
+{
+ <"/**" ~["/"]> { input_stream.backup(1); } : IN_FORMAL_COMMENT
+|
+ "/*" : IN_MULTI_LINE_COMMENT
+}
+
+SPECIAL_TOKEN:
+{
+ <WHITE_SPACE: ([" ", "\n", "\r", "\t", "\f"])+>
+}
+
+SPECIAL_TOKEN :
+{
+ <SINGLE_LINE_COMMENT: "//" (~["\n", "\r"])* ("\n" | "\r" | "\r\n")?>
+}
+
+<IN_FORMAL_COMMENT>
+SPECIAL_TOKEN :
+{
+ <FORMAL_COMMENT: "*/" > : DEFAULT
+}
+
+<IN_MULTI_LINE_COMMENT>
+SPECIAL_TOKEN :
+{
+ <MULTI_LINE_COMMENT: "*/" > : DEFAULT
+}
+
+<IN_FORMAL_COMMENT,IN_MULTI_LINE_COMMENT>
+MORE :
+{
+ < ~[] >
+}
+
+/* RESERVED WORDS AND LITERALS */
+
+TOKEN :
+{
+ < ABSTRACT: "abstract" >
+| < ASSERT: "assert" >
+| < BOOLEAN: "boolean" >
+| < BREAK: "break" >
+| < BYTE: "byte" >
+| < CASE: "case" >
+| < CATCH: "catch" >
+| < CHAR: "char" >
+| < CLASS: "class" >
+| < CONST: "const" >
+| < CONTINUE: "continue" >
+| < _DEFAULT: "default" >
+| < DO: "do" >
+| < DOUBLE: "double" >
+| < ELSE: "else" >
+| < ENUM: "enum" >
+| < EXTENDS: "extends" >
+| < FALSE: "false" >
+| < FINAL: "final" >
+| < FINALLY: "finally" >
+| < FLOAT: "float" >
+| < FOR: "for" >
+| < GOTO: "goto" >
+| < IF: "if" >
+| < IMPLEMENTS: "implements" >
+| < IMPORT: "import" >
+| < INSTANCEOF: "instanceof" >
+| < INT: "int" >
+| < INTERFACE: "interface" >
+| < LONG: "long" >
+| < NATIVE: "native" >
+| < NEW: "new" >
+| < NULL: "null" >
+| < PACKAGE: "package">
+| < PRIVATE: "private" >
+| < PROTECTED: "protected" >
+| < PUBLIC: "public" >
+| < RETURN: "return" >
+| < SHORT: "short" >
+| < STATIC: "static" >
+| < STRICTFP: "strictfp" >
+| < SUPER: "super" >
+| < SWITCH: "switch" >
+| < SYNCHRONIZED: "synchronized" >
+| < THIS: "this" >
+| < THROW: "throw" >
+| < THROWS: "throws" >
+| < TRANSIENT: "transient" >
+| < TRUE: "true" >
+| < TRY: "try" >
+| < VOID: "void" >
+| < VOLATILE: "volatile" >
+| < WHILE: "while" >
+}
+
+/* LITERALS */
+
+TOKEN :
+{
+ < INTEGER_LITERAL:
+ <DECIMAL_LITERAL> (["l","L"])?
+ | <HEX_LITERAL> (["l","L"])?
+ | <OCTAL_LITERAL> (["l","L"])?
+ >
+|
+ < #DECIMAL_LITERAL: ["1"-"9"] (["0"-"9"])* >
+|
+ < #HEX_LITERAL: "0" ["x","X"] (["0"-"9","a"-"f","A"-"F"])+ >
+|
+ < #OCTAL_LITERAL: "0" (["0"-"7"])* >
+|
+ < FLOATING_POINT_LITERAL:
+ <DECIMAL_FLOATING_POINT_LITERAL>
+ | <HEXADECIMAL_FLOATING_POINT_LITERAL>
+ >
+|
+ < #DECIMAL_FLOATING_POINT_LITERAL:
+ (["0"-"9"])+ "." (["0"-"9"])* (<DECIMAL_EXPONENT>)? (["f","F","d","D"])?
+ | "." (["0"-"9"])+ (<DECIMAL_EXPONENT>)? (["f","F","d","D"])?
+ | (["0"-"9"])+ <DECIMAL_EXPONENT> (["f","F","d","D"])?
+ | (["0"-"9"])+ (<DECIMAL_EXPONENT>)? ["f","F","d","D"]
+ >
+|
+ < #DECIMAL_EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+ >
+|
+ < #HEXADECIMAL_FLOATING_POINT_LITERAL:
+ "0" ["x", "X"] (["0"-"9","a"-"f","A"-"F"])+ (".")? <HEXADECIMAL_EXPONENT> (["f","F","d","D"])?
+ | "0" ["x", "X"] (["0"-"9","a"-"f","A"-"F"])* "." (["0"-"9","a"-"f","A"-"F"])+ <HEXADECIMAL_EXPONENT> (["f","F","d","D"])?
+ >
+|
+ < #HEXADECIMAL_EXPONENT: ["p","P"] (["+","-"])? (["0"-"9"])+ >
+|
+ < CHARACTER_LITERAL:
+ "'"
+ ( (~["'","\\","\n","\r"])
+ | ("\\"
+ ( ["n","t","b","r","f","\\","'","\""]
+ | ["0"-"7"] ( ["0"-"7"] )?
+ | ["0"-"3"] ["0"-"7"] ["0"-"7"]
+ )
+ )
+ )
+ "'"
+ >
+|
+ < STRING_LITERAL:
+ "\""
+ ( (~["\"","\\","\n","\r"])
+ | ("\\"
+ ( ["n","t","b","r","f","\\","'","\""]
+ | ["0"-"7"] ( ["0"-"7"] )?
+ | ["0"-"3"] ["0"-"7"] ["0"-"7"]
+ )
+ )
+ )*
+ "\""
+ >
+}
+
+/* IDENTIFIERS */
+
+TOKEN :
+{
+ < IDENTIFIER: <LETTER> (<PART_LETTER>)* >
+|
+ < #LETTER:
+ [ // all chars for which Character.isIdentifierStart is true
+ "$",
+ "A"-"Z",
+ "_",
+ "a"-"z",
+ "\u00a2"-"\u00a5",
+ "\u00aa",
+ "\u00b5",
+ "\u00ba",
+ "\u00c0"-"\u00d6",
+ "\u00d8"-"\u00f6",
+ "\u00f8"-"\u021f",
+ "\u0222"-"\u0233",
+ "\u0250"-"\u02ad",
+ "\u02b0"-"\u02b8",
+ "\u02bb"-"\u02c1",
+ "\u02d0"-"\u02d1",
+ "\u02e0"-"\u02e4",
+ "\u02ee",
+ "\u037a",
+ "\u0386",
+ "\u0388"-"\u038a",
+ "\u038c",
+ "\u038e"-"\u03a1",
+ "\u03a3"-"\u03ce",
+ "\u03d0"-"\u03d7",
+ "\u03da"-"\u03f3",
+ "\u0400"-"\u0481",
+ "\u048c"-"\u04c4",
+ "\u04c7"-"\u04c8",
+ "\u04cb"-"\u04cc",
+ "\u04d0"-"\u04f5",
+ "\u04f8"-"\u04f9",
+ "\u0531"-"\u0556",
+ "\u0559",
+ "\u0561"-"\u0587",
+ "\u05d0"-"\u05ea",
+ "\u05f0"-"\u05f2",
+ "\u0621"-"\u063a",
+ "\u0640"-"\u064a",
+ "\u0671"-"\u06d3",
+ "\u06d5",
+ "\u06e5"-"\u06e6",
+ "\u06fa"-"\u06fc",
+ "\u0710",
+ "\u0712"-"\u072c",
+ "\u0780"-"\u07a5",
+ "\u0905"-"\u0939",
+ "\u093d",
+ "\u0950",
+ "\u0958"-"\u0961",
+ "\u0985"-"\u098c",
+ "\u098f"-"\u0990",
+ "\u0993"-"\u09a8",
+ "\u09aa"-"\u09b0",
+ "\u09b2",
+ "\u09b6"-"\u09b9",
+ "\u09dc"-"\u09dd",
+ "\u09df"-"\u09e1",
+ "\u09f0"-"\u09f3",
+ "\u0a05"-"\u0a0a",
+ "\u0a0f"-"\u0a10",
+ "\u0a13"-"\u0a28",
+ "\u0a2a"-"\u0a30",
+ "\u0a32"-"\u0a33",
+ "\u0a35"-"\u0a36",
+ "\u0a38"-"\u0a39",
+ "\u0a59"-"\u0a5c",
+ "\u0a5e",
+ "\u0a72"-"\u0a74",
+ "\u0a85"-"\u0a8b",
+ "\u0a8d",
+ "\u0a8f"-"\u0a91",
+ "\u0a93"-"\u0aa8",
+ "\u0aaa"-"\u0ab0",
+ "\u0ab2"-"\u0ab3",
+ "\u0ab5"-"\u0ab9",
+ "\u0abd",
+ "\u0ad0",
+ "\u0ae0",
+ "\u0b05"-"\u0b0c",
+ "\u0b0f"-"\u0b10",
+ "\u0b13"-"\u0b28",
+ "\u0b2a"-"\u0b30",
+ "\u0b32"-"\u0b33",
+ "\u0b36"-"\u0b39",
+ "\u0b3d",
+ "\u0b5c"-"\u0b5d",
+ "\u0b5f"-"\u0b61",
+ "\u0b85"-"\u0b8a",
+ "\u0b8e"-"\u0b90",
+ "\u0b92"-"\u0b95",
+ "\u0b99"-"\u0b9a",
+ "\u0b9c",
+ "\u0b9e"-"\u0b9f",
+ "\u0ba3"-"\u0ba4",
+ "\u0ba8"-"\u0baa",
+ "\u0bae"-"\u0bb5",
+ "\u0bb7"-"\u0bb9",
+ "\u0c05"-"\u0c0c",
+ "\u0c0e"-"\u0c10",
+ "\u0c12"-"\u0c28",
+ "\u0c2a"-"\u0c33",
+ "\u0c35"-"\u0c39",
+ "\u0c60"-"\u0c61",
+ "\u0c85"-"\u0c8c",
+ "\u0c8e"-"\u0c90",
+ "\u0c92"-"\u0ca8",
+ "\u0caa"-"\u0cb3",
+ "\u0cb5"-"\u0cb9",
+ "\u0cde",
+ "\u0ce0"-"\u0ce1",
+ "\u0d05"-"\u0d0c",
+ "\u0d0e"-"\u0d10",
+ "\u0d12"-"\u0d28",
+ "\u0d2a"-"\u0d39",
+ "\u0d60"-"\u0d61",
+ "\u0d85"-"\u0d96",
+ "\u0d9a"-"\u0db1",
+ "\u0db3"-"\u0dbb",
+ "\u0dbd",
+ "\u0dc0"-"\u0dc6",
+ "\u0e01"-"\u0e30",
+ "\u0e32"-"\u0e33",
+ "\u0e3f"-"\u0e46",
+ "\u0e81"-"\u0e82",
+ "\u0e84",
+ "\u0e87"-"\u0e88",
+ "\u0e8a",
+ "\u0e8d",
+ "\u0e94"-"\u0e97",
+ "\u0e99"-"\u0e9f",
+ "\u0ea1"-"\u0ea3",
+ "\u0ea5",
+ "\u0ea7",
+ "\u0eaa"-"\u0eab",
+ "\u0ead"-"\u0eb0",
+ "\u0eb2"-"\u0eb3",
+ "\u0ebd",
+ "\u0ec0"-"\u0ec4",
+ "\u0ec6",
+ "\u0edc"-"\u0edd",
+ "\u0f00",
+ "\u0f40"-"\u0f47",
+ "\u0f49"-"\u0f6a",
+ "\u0f88"-"\u0f8b",
+ "\u1000"-"\u1021",
+ "\u1023"-"\u1027",
+ "\u1029"-"\u102a",
+ "\u1050"-"\u1055",
+ "\u10a0"-"\u10c5",
+ "\u10d0"-"\u10f6",
+ "\u1100"-"\u1159",
+ "\u115f"-"\u11a2",
+ "\u11a8"-"\u11f9",
+ "\u1200"-"\u1206",
+ "\u1208"-"\u1246",
+ "\u1248",
+ "\u124a"-"\u124d",
+ "\u1250"-"\u1256",
+ "\u1258",
+ "\u125a"-"\u125d",
+ "\u1260"-"\u1286",
+ "\u1288",
+ "\u128a"-"\u128d",
+ "\u1290"-"\u12ae",
+ "\u12b0",
+ "\u12b2"-"\u12b5",
+ "\u12b8"-"\u12be",
+ "\u12c0",
+ "\u12c2"-"\u12c5",
+ "\u12c8"-"\u12ce",
+ "\u12d0"-"\u12d6",
+ "\u12d8"-"\u12ee",
+ "\u12f0"-"\u130e",
+ "\u1310",
+ "\u1312"-"\u1315",
+ "\u1318"-"\u131e",
+ "\u1320"-"\u1346",
+ "\u1348"-"\u135a",
+ "\u13a0"-"\u13f4",
+ "\u1401"-"\u166c",
+ "\u166f"-"\u1676",
+ "\u1681"-"\u169a",
+ "\u16a0"-"\u16ea",
+ "\u1780"-"\u17b3",
+ "\u17db",
+ "\u1820"-"\u1877",
+ "\u1880"-"\u18a8",
+ "\u1e00"-"\u1e9b",
+ "\u1ea0"-"\u1ef9",
+ "\u1f00"-"\u1f15",
+ "\u1f18"-"\u1f1d",
+ "\u1f20"-"\u1f45",
+ "\u1f48"-"\u1f4d",
+ "\u1f50"-"\u1f57",
+ "\u1f59",
+ "\u1f5b",
+ "\u1f5d",
+ "\u1f5f"-"\u1f7d",
+ "\u1f80"-"\u1fb4",
+ "\u1fb6"-"\u1fbc",
+ "\u1fbe",
+ "\u1fc2"-"\u1fc4",
+ "\u1fc6"-"\u1fcc",
+ "\u1fd0"-"\u1fd3",
+ "\u1fd6"-"\u1fdb",
+ "\u1fe0"-"\u1fec",
+ "\u1ff2"-"\u1ff4",
+ "\u1ff6"-"\u1ffc",
+ "\u203f"-"\u2040",
+ "\u207f",
+ "\u20a0"-"\u20af",
+ "\u2102",
+ "\u2107",
+ "\u210a"-"\u2113",
+ "\u2115",
+ "\u2119"-"\u211d",
+ "\u2124",
+ "\u2126",
+ "\u2128",
+ "\u212a"-"\u212d",
+ "\u212f"-"\u2131",
+ "\u2133"-"\u2139",
+ "\u2160"-"\u2183",
+ "\u3005"-"\u3007",
+ "\u3021"-"\u3029",
+ "\u3031"-"\u3035",
+ "\u3038"-"\u303a",
+ "\u3041"-"\u3094",
+ "\u309d"-"\u309e",
+ "\u30a1"-"\u30fe",
+ "\u3105"-"\u312c",
+ "\u3131"-"\u318e",
+ "\u31a0"-"\u31b7",
+ "\u3400"-"\u4db5",
+ "\u4e00"-"\u9fa5",
+ "\ua000"-"\ua48c",
+ "\uac00"-"\ud7a3",
+ "\uf900"-"\ufa2d",
+ "\ufb00"-"\ufb06",
+ "\ufb13"-"\ufb17",
+ "\ufb1d",
+ "\ufb1f"-"\ufb28",
+ "\ufb2a"-"\ufb36",
+ "\ufb38"-"\ufb3c",
+ "\ufb3e",
+ "\ufb40"-"\ufb41",
+ "\ufb43"-"\ufb44",
+ "\ufb46"-"\ufbb1",
+ "\ufbd3"-"\ufd3d",
+ "\ufd50"-"\ufd8f",
+ "\ufd92"-"\ufdc7",
+ "\ufdf0"-"\ufdfb",
+ "\ufe33"-"\ufe34",
+ "\ufe4d"-"\ufe4f",
+ "\ufe69",
+ "\ufe70"-"\ufe72",
+ "\ufe74",
+ "\ufe76"-"\ufefc",
+ "\uff04",
+ "\uff21"-"\uff3a",
+ "\uff3f",
+ "\uff41"-"\uff5a",
+ "\uff65"-"\uffbe",
+ "\uffc2"-"\uffc7",
+ "\uffca"-"\uffcf",
+ "\uffd2"-"\uffd7",
+ "\uffda"-"\uffdc",
+ "\uffe0"-"\uffe1",
+ "\uffe5"-"\uffe6"
+ ]
+ >
+|
+ < #PART_LETTER:
+ [ // all chars for which Character.isIdentifierPart is true
+ "\u0000"-"\u0008",
+ "\u000e"-"\u001b",
+ "$",
+ "0"-"9",
+ "A"-"Z",
+ "_",
+ "a"-"z",
+ "\u007f"-"\u009f",
+ "\u00a2"-"\u00a5",
+ "\u00aa",
+ "\u00b5",
+ "\u00ba",
+ "\u00c0"-"\u00d6",
+ "\u00d8"-"\u00f6",
+ "\u00f8"-"\u021f",
+ "\u0222"-"\u0233",
+ "\u0250"-"\u02ad",
+ "\u02b0"-"\u02b8",
+ "\u02bb"-"\u02c1",
+ "\u02d0"-"\u02d1",
+ "\u02e0"-"\u02e4",
+ "\u02ee",
+ "\u0300"-"\u034e",
+ "\u0360"-"\u0362",
+ "\u037a",
+ "\u0386",
+ "\u0388"-"\u038a",
+ "\u038c",
+ "\u038e"-"\u03a1",
+ "\u03a3"-"\u03ce",
+ "\u03d0"-"\u03d7",
+ "\u03da"-"\u03f3",
+ "\u0400"-"\u0481",
+ "\u0483"-"\u0486",
+ "\u048c"-"\u04c4",
+ "\u04c7"-"\u04c8",
+ "\u04cb"-"\u04cc",
+ "\u04d0"-"\u04f5",
+ "\u04f8"-"\u04f9",
+ "\u0531"-"\u0556",
+ "\u0559",
+ "\u0561"-"\u0587",
+ "\u0591"-"\u05a1",
+ "\u05a3"-"\u05b9",
+ "\u05bb"-"\u05bd",
+ "\u05bf",
+ "\u05c1"-"\u05c2",
+ "\u05c4",
+ "\u05d0"-"\u05ea",
+ "\u05f0"-"\u05f2",
+ "\u0621"-"\u063a",
+ "\u0640"-"\u0655",
+ "\u0660"-"\u0669",
+ "\u0670"-"\u06d3",
+ "\u06d5"-"\u06dc",
+ "\u06df"-"\u06e8",
+ "\u06ea"-"\u06ed",
+ "\u06f0"-"\u06fc",
+ "\u070f"-"\u072c",
+ "\u0730"-"\u074a",
+ "\u0780"-"\u07b0",
+ "\u0901"-"\u0903",
+ "\u0905"-"\u0939",
+ "\u093c"-"\u094d",
+ "\u0950"-"\u0954",
+ "\u0958"-"\u0963",
+ "\u0966"-"\u096f",
+ "\u0981"-"\u0983",
+ "\u0985"-"\u098c",
+ "\u098f"-"\u0990",
+ "\u0993"-"\u09a8",
+ "\u09aa"-"\u09b0",
+ "\u09b2",
+ "\u09b6"-"\u09b9",
+ "\u09bc",
+ "\u09be"-"\u09c4",
+ "\u09c7"-"\u09c8",
+ "\u09cb"-"\u09cd",
+ "\u09d7",
+ "\u09dc"-"\u09dd",
+ "\u09df"-"\u09e3",
+ "\u09e6"-"\u09f3",
+ "\u0a02",
+ "\u0a05"-"\u0a0a",
+ "\u0a0f"-"\u0a10",
+ "\u0a13"-"\u0a28",
+ "\u0a2a"-"\u0a30",
+ "\u0a32"-"\u0a33",
+ "\u0a35"-"\u0a36",
+ "\u0a38"-"\u0a39",
+ "\u0a3c",
+ "\u0a3e"-"\u0a42",
+ "\u0a47"-"\u0a48",
+ "\u0a4b"-"\u0a4d",
+ "\u0a59"-"\u0a5c",
+ "\u0a5e",
+ "\u0a66"-"\u0a74",
+ "\u0a81"-"\u0a83",
+ "\u0a85"-"\u0a8b",
+ "\u0a8d",
+ "\u0a8f"-"\u0a91",
+ "\u0a93"-"\u0aa8",
+ "\u0aaa"-"\u0ab0",
+ "\u0ab2"-"\u0ab3",
+ "\u0ab5"-"\u0ab9",
+ "\u0abc"-"\u0ac5",
+ "\u0ac7"-"\u0ac9",
+ "\u0acb"-"\u0acd",
+ "\u0ad0",
+ "\u0ae0",
+ "\u0ae6"-"\u0aef",
+ "\u0b01"-"\u0b03",
+ "\u0b05"-"\u0b0c",
+ "\u0b0f"-"\u0b10",
+ "\u0b13"-"\u0b28",
+ "\u0b2a"-"\u0b30",
+ "\u0b32"-"\u0b33",
+ "\u0b36"-"\u0b39",
+ "\u0b3c"-"\u0b43",
+ "\u0b47"-"\u0b48",
+ "\u0b4b"-"\u0b4d",
+ "\u0b56"-"\u0b57",
+ "\u0b5c"-"\u0b5d",
+ "\u0b5f"-"\u0b61",
+ "\u0b66"-"\u0b6f",
+ "\u0b82"-"\u0b83",
+ "\u0b85"-"\u0b8a",
+ "\u0b8e"-"\u0b90",
+ "\u0b92"-"\u0b95",
+ "\u0b99"-"\u0b9a",
+ "\u0b9c",
+ "\u0b9e"-"\u0b9f",
+ "\u0ba3"-"\u0ba4",
+ "\u0ba8"-"\u0baa",
+ "\u0bae"-"\u0bb5",
+ "\u0bb7"-"\u0bb9",
+ "\u0bbe"-"\u0bc2",
+ "\u0bc6"-"\u0bc8",
+ "\u0bca"-"\u0bcd",
+ "\u0bd7",
+ "\u0be7"-"\u0bef",
+ "\u0c01"-"\u0c03",
+ "\u0c05"-"\u0c0c",
+ "\u0c0e"-"\u0c10",
+ "\u0c12"-"\u0c28",
+ "\u0c2a"-"\u0c33",
+ "\u0c35"-"\u0c39",
+ "\u0c3e"-"\u0c44",
+ "\u0c46"-"\u0c48",
+ "\u0c4a"-"\u0c4d",
+ "\u0c55"-"\u0c56",
+ "\u0c60"-"\u0c61",
+ "\u0c66"-"\u0c6f",
+ "\u0c82"-"\u0c83",
+ "\u0c85"-"\u0c8c",
+ "\u0c8e"-"\u0c90",
+ "\u0c92"-"\u0ca8",
+ "\u0caa"-"\u0cb3",
+ "\u0cb5"-"\u0cb9",
+ "\u0cbe"-"\u0cc4",
+ "\u0cc6"-"\u0cc8",
+ "\u0cca"-"\u0ccd",
+ "\u0cd5"-"\u0cd6",
+ "\u0cde",
+ "\u0ce0"-"\u0ce1",
+ "\u0ce6"-"\u0cef",
+ "\u0d02"-"\u0d03",
+ "\u0d05"-"\u0d0c",
+ "\u0d0e"-"\u0d10",
+ "\u0d12"-"\u0d28",
+ "\u0d2a"-"\u0d39",
+ "\u0d3e"-"\u0d43",
+ "\u0d46"-"\u0d48",
+ "\u0d4a"-"\u0d4d",
+ "\u0d57",
+ "\u0d60"-"\u0d61",
+ "\u0d66"-"\u0d6f",
+ "\u0d82"-"\u0d83",
+ "\u0d85"-"\u0d96",
+ "\u0d9a"-"\u0db1",
+ "\u0db3"-"\u0dbb",
+ "\u0dbd",
+ "\u0dc0"-"\u0dc6",
+ "\u0dca",
+ "\u0dcf"-"\u0dd4",
+ "\u0dd6",
+ "\u0dd8"-"\u0ddf",
+ "\u0df2"-"\u0df3",
+ "\u0e01"-"\u0e3a",
+ "\u0e3f"-"\u0e4e",
+ "\u0e50"-"\u0e59",
+ "\u0e81"-"\u0e82",
+ "\u0e84",
+ "\u0e87"-"\u0e88",
+ "\u0e8a",
+ "\u0e8d",
+ "\u0e94"-"\u0e97",
+ "\u0e99"-"\u0e9f",
+ "\u0ea1"-"\u0ea3",
+ "\u0ea5",
+ "\u0ea7",
+ "\u0eaa"-"\u0eab",
+ "\u0ead"-"\u0eb9",
+ "\u0ebb"-"\u0ebd",
+ "\u0ec0"-"\u0ec4",
+ "\u0ec6",
+ "\u0ec8"-"\u0ecd",
+ "\u0ed0"-"\u0ed9",
+ "\u0edc"-"\u0edd",
+ "\u0f00",
+ "\u0f18"-"\u0f19",
+ "\u0f20"-"\u0f29",
+ "\u0f35",
+ "\u0f37",
+ "\u0f39",
+ "\u0f3e"-"\u0f47",
+ "\u0f49"-"\u0f6a",
+ "\u0f71"-"\u0f84",
+ "\u0f86"-"\u0f8b",
+ "\u0f90"-"\u0f97",
+ "\u0f99"-"\u0fbc",
+ "\u0fc6",
+ "\u1000"-"\u1021",
+ "\u1023"-"\u1027",
+ "\u1029"-"\u102a",
+ "\u102c"-"\u1032",
+ "\u1036"-"\u1039",
+ "\u1040"-"\u1049",
+ "\u1050"-"\u1059",
+ "\u10a0"-"\u10c5",
+ "\u10d0"-"\u10f6",
+ "\u1100"-"\u1159",
+ "\u115f"-"\u11a2",
+ "\u11a8"-"\u11f9",
+ "\u1200"-"\u1206",
+ "\u1208"-"\u1246",
+ "\u1248",
+ "\u124a"-"\u124d",
+ "\u1250"-"\u1256",
+ "\u1258",
+ "\u125a"-"\u125d",
+ "\u1260"-"\u1286",
+ "\u1288",
+ "\u128a"-"\u128d",
+ "\u1290"-"\u12ae",
+ "\u12b0",
+ "\u12b2"-"\u12b5",
+ "\u12b8"-"\u12be",
+ "\u12c0",
+ "\u12c2"-"\u12c5",
+ "\u12c8"-"\u12ce",
+ "\u12d0"-"\u12d6",
+ "\u12d8"-"\u12ee",
+ "\u12f0"-"\u130e",
+ "\u1310",
+ "\u1312"-"\u1315",
+ "\u1318"-"\u131e",
+ "\u1320"-"\u1346",
+ "\u1348"-"\u135a",
+ "\u1369"-"\u1371",
+ "\u13a0"-"\u13f4",
+ "\u1401"-"\u166c",
+ "\u166f"-"\u1676",
+ "\u1681"-"\u169a",
+ "\u16a0"-"\u16ea",
+ "\u1780"-"\u17d3",
+ "\u17db",
+ "\u17e0"-"\u17e9",
+ "\u180b"-"\u180e",
+ "\u1810"-"\u1819",
+ "\u1820"-"\u1877",
+ "\u1880"-"\u18a9",
+ "\u1e00"-"\u1e9b",
+ "\u1ea0"-"\u1ef9",
+ "\u1f00"-"\u1f15",
+ "\u1f18"-"\u1f1d",
+ "\u1f20"-"\u1f45",
+ "\u1f48"-"\u1f4d",
+ "\u1f50"-"\u1f57",
+ "\u1f59",
+ "\u1f5b",
+ "\u1f5d",
+ "\u1f5f"-"\u1f7d",
+ "\u1f80"-"\u1fb4",
+ "\u1fb6"-"\u1fbc",
+ "\u1fbe",
+ "\u1fc2"-"\u1fc4",
+ "\u1fc6"-"\u1fcc",
+ "\u1fd0"-"\u1fd3",
+ "\u1fd6"-"\u1fdb",
+ "\u1fe0"-"\u1fec",
+ "\u1ff2"-"\u1ff4",
+ "\u1ff6"-"\u1ffc",
+ "\u200c"-"\u200f",
+ "\u202a"-"\u202e",
+ "\u203f"-"\u2040",
+ "\u206a"-"\u206f",
+ "\u207f",
+ "\u20a0"-"\u20af",
+ "\u20d0"-"\u20dc",
+ "\u20e1",
+ "\u2102",
+ "\u2107",
+ "\u210a"-"\u2113",
+ "\u2115",
+ "\u2119"-"\u211d",
+ "\u2124",
+ "\u2126",
+ "\u2128",
+ "\u212a"-"\u212d",
+ "\u212f"-"\u2131",
+ "\u2133"-"\u2139",
+ "\u2160"-"\u2183",
+ "\u3005"-"\u3007",
+ "\u3021"-"\u302f",
+ "\u3031"-"\u3035",
+ "\u3038"-"\u303a",
+ "\u3041"-"\u3094",
+ "\u3099"-"\u309a",
+ "\u309d"-"\u309e",
+ "\u30a1"-"\u30fe",
+ "\u3105"-"\u312c",
+ "\u3131"-"\u318e",
+ "\u31a0"-"\u31b7",
+ "\u3400"-"\u4db5",
+ "\u4e00"-"\u9fa5",
+ "\ua000"-"\ua48c",
+ "\uac00"-"\ud7a3",
+ "\uf900"-"\ufa2d",
+ "\ufb00"-"\ufb06",
+ "\ufb13"-"\ufb17",
+ "\ufb1d"-"\ufb28",
+ "\ufb2a"-"\ufb36",
+ "\ufb38"-"\ufb3c",
+ "\ufb3e",
+ "\ufb40"-"\ufb41",
+ "\ufb43"-"\ufb44",
+ "\ufb46"-"\ufbb1",
+ "\ufbd3"-"\ufd3d",
+ "\ufd50"-"\ufd8f",
+ "\ufd92"-"\ufdc7",
+ "\ufdf0"-"\ufdfb",
+ "\ufe20"-"\ufe23",
+ "\ufe33"-"\ufe34",
+ "\ufe4d"-"\ufe4f",
+ "\ufe69",
+ "\ufe70"-"\ufe72",
+ "\ufe74",
+ "\ufe76"-"\ufefc",
+ "\ufeff",
+ "\uff04",
+ "\uff10"-"\uff19",
+ "\uff21"-"\uff3a",
+ "\uff3f",
+ "\uff41"-"\uff5a",
+ "\uff65"-"\uffbe",
+ "\uffc2"-"\uffc7",
+ "\uffca"-"\uffcf",
+ "\uffd2"-"\uffd7",
+ "\uffda"-"\uffdc",
+ "\uffe0"-"\uffe1",
+ "\uffe5"-"\uffe6",
+ "\ufff9"-"\ufffb"
+ ]
+ >
+}
+
+/* SEPARATORS */
+
+TOKEN :
+{
+ < LPAREN: "(" >
+| < RPAREN: ")" >
+| < LBRACE: "{" >
+| < RBRACE: "}" >
+| < LBRACKET: "[" >
+| < RBRACKET: "]" >
+| < SEMICOLON: ";" >
+| < COMMA: "," >
+| < DOT: "." >
+| < AT: "@" >
+}
+
+/* OPERATORS */
+
+TOKEN :
+{
+ < ASSIGN: "=" >
+| < LT: "<" >
+| < BANG: "!" >
+| < TILDE: "~" >
+| < HOOK: "?" >
+| < COLON: ":" >
+| < EQ: "==" >
+| < LE: "<=" >
+| < GE: ">=" >
+| < NE: "!=" >
+| < SC_OR: "||" >
+| < SC_AND: "&&" >
+| < INCR: "++" >
+| < DECR: "--" >
+| < PLUS: "+" >
+| < MINUS: "-" >
+| < STAR: "*" >
+| < SLASH: "/" >
+| < BIT_AND: "&" >
+| < BIT_OR: "|" >
+| < XOR: "^" >
+| < REM: "%" >
+| < LSHIFT: "<<" >
+| < PLUSASSIGN: "+=" >
+| < MINUSASSIGN: "-=" >
+| < STARASSIGN: "*=" >
+| < SLASHASSIGN: "/=" >
+| < ANDASSIGN: "&=" >
+| < ORASSIGN: "|=" >
+| < XORASSIGN: "^=" >
+| < REMASSIGN: "%=" >
+| < LSHIFTASSIGN: "<<=" >
+| < RSIGNEDSHIFTASSIGN: ">>=" >
+| < RUNSIGNEDSHIFTASSIGN: ">>>=" >
+| < ELLIPSIS: "..." >
+}
+
+/* >'s need special attention due to generics syntax. */
+TOKEN :
+{
+ < RUNSIGNEDSHIFT: ">>>" >
+ {
+ matchedToken.kind = GT;
+ ((Token.GTToken)matchedToken).realKind = RUNSIGNEDSHIFT;
+ input_stream.backup(2);
+ matchedToken.image = ">";
+ }
+| < RSIGNEDSHIFT: ">>" >
+ {
+ matchedToken.kind = GT;
+ ((Token.GTToken)matchedToken).realKind = RSIGNEDSHIFT;
+ input_stream.backup(1);
+ matchedToken.image = ">";
+ }
+| < GT: ">" >
+}
+
+boolean Line() :
+{
+ int modifiers;
+}
+{
+ <EOF> {
+ return true;
+ }
+|
+ LOOKAHEAD(BlockStatement())
+ BlockStatement() {
+ return false;
+ }
+|
+ LOOKAHEAD(Modifiers() [ TypeParameters() ] [ ResultType() ] <IDENTIFIER> FormalParameters() [ "throws" NameList() ] "{")
+ ClassOrInterfaceBodyDeclaration(false) {
+ return false;
+ }
+|
+ LOOKAHEAD(ClassOrInterfaceBodyDeclaration(false))
+ ClassOrInterfaceBodyDeclaration(false) {
+ return false;
+ }
+|
+ LOOKAHEAD(Expression())
+ Expression() {
+ return false;
+ }
+|
+ ImportDeclaration() {
+ return false;
+ }
+}
+
+/*****************************************
+ * THE JAVA LANGUAGE GRAMMAR STARTS HERE *
+ *****************************************/
+
+/*
+ * Program structuring syntax follows.
+ */
+
+void CompilationUnit():
+{}
+{
+ [ LOOKAHEAD( ( Annotation() )* "package" ) PackageDeclaration() ]
+ ( ImportDeclaration() )*
+ ( TypeDeclaration() )*
+ ( < "\u001a" > )?
+ ( <STUFF_TO_IGNORE: ~[]> )?
+ <EOF>
+}
+
+void PackageDeclaration():
+{}
+{
+ Modifiers() "package" Name() ";"
+}
+
+void ImportDeclaration():
+{}
+{
+ "import" [ "static" ] Name() [ "." "*" ] ";"
+}
+
+/*
+ * Modifiers. We match all modifiers in a single rule to reduce the chances of
+ * syntax errors for simple modifier mistakes. It will also enable us to give
+ * better error messages.
+ */
+
+int Modifiers():
+{
+ int modifiers = 0;
+}
+{
+ (
+ LOOKAHEAD(2)
+ (
+ "public" { modifiers |= ModifierSet.PUBLIC; }
+ |
+ "static" { modifiers |= ModifierSet.STATIC; }
+ |
+ "protected" { modifiers |= ModifierSet.PROTECTED; }
+ |
+ "private" { modifiers |= ModifierSet.PRIVATE; }
+ |
+ "final" { modifiers |= ModifierSet.FINAL; }
+ |
+ "abstract" { modifiers |= ModifierSet.ABSTRACT; }
+ |
+ "synchronized" { modifiers |= ModifierSet.SYNCHRONIZED; }
+ |
+ "native" { modifiers |= ModifierSet.NATIVE; }
+ |
+ "transient" { modifiers |= ModifierSet.TRANSIENT; }
+ |
+ "volatile" { modifiers |= ModifierSet.VOLATILE; }
+ |
+ "strictfp" { modifiers |= ModifierSet.STRICTFP; }
+ |
+ Annotation()
+ )
+ )*
+
+ {
+ return modifiers;
+ }
+}
+
+/*
+ * Declaration syntax follows.
+ */
+void TypeDeclaration():
+{
+ int modifiers;
+}
+{
+ ";"
+|
+ modifiers = Modifiers()
+ (
+ ClassOrInterfaceDeclaration(modifiers)
+ |
+ EnumDeclaration(modifiers)
+ |
+ AnnotationTypeDeclaration(modifiers)
+ )
+}
+
+
+void ClassOrInterfaceDeclaration(int modifiers):
+{
+ boolean isInterface = false;
+}
+{
+ ( "class" | "interface" { isInterface = true; } )
+ <IDENTIFIER>
+ [ TypeParameters() ]
+ [ ExtendsList(isInterface) ]
+ [ ImplementsList(isInterface) ]
+ ClassOrInterfaceBody(isInterface)
+}
+
+void ExtendsList(boolean isInterface):
+{
+ boolean extendsMoreThanOne = false;
+}
+{
+ "extends" ClassOrInterfaceType()
+ ( "," ClassOrInterfaceType() { extendsMoreThanOne = true; } )*
+ {
+ if (extendsMoreThanOne && !isInterface)
+ throw new ParseException("A class cannot extend more than one other class");
+ }
+}
+
+void ImplementsList(boolean isInterface):
+{}
+{
+ "implements" ClassOrInterfaceType()
+ ( "," ClassOrInterfaceType() )*
+ {
+ if (isInterface)
+ throw new ParseException("An interface cannot implement other interfaces");
+ }
+}
+
+void EnumDeclaration(int modifiers):
+{}
+{
+ "enum" <IDENTIFIER>
+ [ ImplementsList(false) ]
+ EnumBody()
+}
+
+void EnumBody():
+{}
+{
+ "{"
+ [ EnumConstant() ( LOOKAHEAD(2) "," EnumConstant() )* ]
+ [ "," ]
+ [ ";" ( ClassOrInterfaceBodyDeclaration(false) )* ]
+ "}"
+}
+
+void EnumConstant():
+{}
+{
+ Modifiers() <IDENTIFIER> [ Arguments() ] [ ClassOrInterfaceBody(false) ]
+}
+
+void TypeParameters():
+{}
+{
+ "<" TypeParameter() ( "," TypeParameter() )* ">"
+}
+
+void TypeParameter():
+{}
+{
+ <IDENTIFIER> [ TypeBound() ]
+}
+
+void TypeBound():
+{}
+{
+ "extends" ClassOrInterfaceType() ( "&" ClassOrInterfaceType() )*
+}
+
+void ClassOrInterfaceBody(boolean isInterface):
+{}
+{
+ "{" ( ClassOrInterfaceBodyDeclaration(isInterface) )* "}"
+}
+
+void ClassOrInterfaceBodyDeclaration(boolean isInterface):
+{
+ boolean isNestedInterface = false;
+ int modifiers;
+}
+{
+ LOOKAHEAD(2)
+ Initializer()
+ {
+ if (isInterface)
+ throw new ParseException("An interface cannot have initializers");
+ }
+|
+ modifiers = Modifiers() // Just get all the modifiers out of the way. If you want to do
+ // more checks, pass the modifiers down to the member
+ (
+ ClassOrInterfaceDeclaration(modifiers)
+ |
+ EnumDeclaration(modifiers)
+ |
+ LOOKAHEAD( [ TypeParameters() ] <IDENTIFIER> "(" )
+ ConstructorDeclaration()
+ |
+ LOOKAHEAD( Type() <IDENTIFIER> ( "[" "]" )* ( "," | "=" | ";" ) )
+ FieldDeclaration(modifiers)
+ |
+ MethodDeclaration(modifiers)
+ )
+|
+ ";"
+}
+
+void FieldDeclaration(int modifiers):
+{}
+{
+ // Modifiers are already matched in the caller
+ Type() VariableDeclarator() ( "," VariableDeclarator() )* ";"
+}
+
+void VariableDeclarator():
+{}
+{
+ VariableDeclaratorId() [ "=" VariableInitializer() ]
+}
+
+void VariableDeclaratorId():
+{}
+{
+ <IDENTIFIER> ( "[" "]" )*
+}
+
+void VariableInitializer():
+{}
+{
+ ArrayInitializer()
+|
+ Expression()
+}
+
+void ArrayInitializer():
+{}
+{
+ "{" [ VariableInitializer() ( LOOKAHEAD(2) "," VariableInitializer() )* ] [ "," ] "}"
+}
+
+void MethodDeclaration(int modifiers):
+{}
+{
+ // Modifiers already matched in the caller!
+ [ TypeParameters() ]
+ ResultType()
+ MethodDeclarator() [ "throws" NameList() ]
+ ( Block() | ";" )
+}
+
+void MethodDeclarator():
+{}
+{
+ <IDENTIFIER> FormalParameters() ( "[" "]" )*
+}
+
+void FormalParameters():
+{}
+{
+ "(" [ FormalParameter() ( "," FormalParameter() )* ] ")"
+}
+
+void FormalParameter():
+{}
+{
+ Modifiers() Type() [ "..." ] VariableDeclaratorId()
+}
+
+void ConstructorDeclaration():
+{}
+{
+ [ TypeParameters() ]
+ // Modifiers matched in the caller
+ <IDENTIFIER> FormalParameters() [ "throws" NameList() ]
+ "{"
+ [ LOOKAHEAD(ExplicitConstructorInvocation())
+ ExplicitConstructorInvocation()
+ ]
+ ( BlockStatement() )*
+ "}"
+}
+
+void ExplicitConstructorInvocation():
+{}
+{
+ ( <IDENTIFIER> "." )* [ LOOKAHEAD(2) "this" "." ]
+ [ TypeArguments() ] ("this"|"super") Arguments() ";"
+}
+
+void Initializer():
+{}
+{
+ [ "static" ] Block()
+}
+
+
+/*
+ * Type, name and expression syntax follows.
+ */
+
+void Type():
+{}
+{
+ LOOKAHEAD(2) ReferenceType()
+ |
+ PrimitiveType()
+}
+
+void ReferenceType():
+{}
+{
+ PrimitiveType() ( LOOKAHEAD(2) "[" "]" )+
+ |
+ ( ClassOrInterfaceType() ) ( LOOKAHEAD(2) "[" "]" )*
+}
+
+void ClassOrInterfaceType():
+{}
+{
+ <IDENTIFIER> [ LOOKAHEAD(2) TypeArguments() ]
+ ( LOOKAHEAD(2) "." <IDENTIFIER> [ LOOKAHEAD(2) TypeArguments() ] )*
+}
+
+void TypeArguments():
+{}
+{
+ "<" TypeArgument() ( "," TypeArgument() )* ">"
+}
+
+void TypeArgument():
+{}
+{
+ ReferenceType()
+ |
+ "?" [ WildcardBounds() ]
+}
+
+void WildcardBounds():
+{}
+{
+ "extends" ReferenceType()
+ |
+ "super" ReferenceType()
+}
+
+
+void PrimitiveType():
+{}
+{
+ "boolean"
+|
+ "char"
+|
+ "byte"
+|
+ "short"
+|
+ "int"
+|
+ "long"
+|
+ "float"
+|
+ "double"
+}
+
+void ResultType():
+{}
+{
+ "void"
+|
+ Type()
+}
+
+void Name():
+/*
+ * A lookahead of 2 is required below since "Name" can be followed
+ * by a ".*" when used in the context of an "ImportDeclaration".
+ */
+{}
+{
+ <IDENTIFIER>
+ ( LOOKAHEAD(2) "." <IDENTIFIER>
+ )*
+}
+
+void NameList():
+{}
+{
+ Name() ( "," Name() )*
+}
+
+
+/*
+ * Expression syntax follows.
+ */
+
+void Expression():
+/*
+ * This expansion has been written this way instead of:
+ * Assignment() | ConditionalExpression()
+ * for performance reasons.
+ * However, it is a weakening of the grammar for it allows the LHS of
+ * assignments to be any conditional expression whereas it can only be
+ * a primary expression. Consider adding a semantic predicate to work
+ * around this.
+ */
+{}
+{
+ ConditionalExpression()
+ [
+ LOOKAHEAD(2)
+ AssignmentOperator() Expression()
+ ]
+}
+
+void AssignmentOperator():
+{}
+{
+ "=" | "*=" | "/=" | "%=" | "+=" | "-=" | "<<=" | ">>=" | ">>>=" | "&=" | "^=" | "|="
+}
+
+void AssignmentExpression():
+{}
+{
+ PrimaryExpression() AssignmentOperator() Expression()
+}
+
+void ConditionalExpression():
+{}
+{
+ ConditionalOrExpression() [ "?" Expression() ":" Expression() ]
+}
+
+void ConditionalOrExpression():
+{}
+{
+ ConditionalAndExpression() ( "||" ConditionalAndExpression() )*
+}
+
+void ConditionalAndExpression():
+{}
+{
+ InclusiveOrExpression() ( "&&" InclusiveOrExpression() )*
+}
+
+void InclusiveOrExpression():
+{}
+{
+ ExclusiveOrExpression() ( "|" ExclusiveOrExpression() )*
+}
+
+void ExclusiveOrExpression():
+{}
+{
+ AndExpression() ( "^" AndExpression() )*
+}
+
+void AndExpression():
+{}
+{
+ EqualityExpression() ( "&" EqualityExpression() )*
+}
+
+void EqualityExpression():
+{}
+{
+ InstanceOfExpression() ( ( "==" | "!=" ) InstanceOfExpression() )*
+}
+
+void InstanceOfExpression():
+{}
+{
+ RelationalExpression() [ "instanceof" Type() ]
+}
+
+void RelationalExpression():
+{}
+{
+ ShiftExpression() ( ( "<" | ">" | "<=" | ">=" ) ShiftExpression() )*
+}
+
+void ShiftExpression():
+{}
+{
+ AdditiveExpression() ( ( "<<" | RSIGNEDSHIFT() | RUNSIGNEDSHIFT() ) AdditiveExpression() )*
+}
+
+void AdditiveExpression():
+{}
+{
+ MultiplicativeExpression() ( ( "+" | "-" ) MultiplicativeExpression() )*
+}
+
+void MultiplicativeExpression():
+{}
+{
+ UnaryExpression() ( ( "*" | "/" | "%" ) UnaryExpression() )*
+}
+
+void UnaryExpression():
+{}
+{
+ ( "+" | "-" ) UnaryExpression()
+|
+ PreIncrementExpression()
+|
+ PreDecrementExpression()
+|
+ UnaryExpressionNotPlusMinus()
+}
+
+void PreIncrementExpression():
+{}
+{
+ "++" PrimaryExpression()
+}
+
+void PreDecrementExpression():
+{}
+{
+ "--" PrimaryExpression()
+}
+
+void UnaryExpressionNotPlusMinus():
+{}
+{
+ ( "~" | "!" ) UnaryExpression()
+|
+ LOOKAHEAD( CastLookahead() )
+ CastExpression()
+|
+ PostfixExpression()
+}
+
+// This production is to determine lookahead only. The LOOKAHEAD specifications
+// below are not used, but they are there just to indicate that we know about
+// this.
+void CastLookahead():
+{}
+{
+ LOOKAHEAD(2)
+ "(" PrimitiveType()
+|
+ LOOKAHEAD("(" Type() "[")
+ "(" Type() "[" "]"
+|
+ "(" Type() ")" ( "~" | "!" | "(" | <IDENTIFIER> | "this" | "super" | "new" | Literal() )
+}
+
+void PostfixExpression():
+{}
+{
+ PrimaryExpression() [ PostfixOperator() ]
+}
+
+void PostfixOperator():
+{}
+{
+ "++" | "--"
+}
+
+void CastExpression():
+{}
+{
+ LOOKAHEAD("(" PrimitiveType())
+ "(" Type() ")" UnaryExpression()
+|
+ "(" Type() ")" UnaryExpressionNotPlusMinus()
+}
+
+void PrimaryExpression():
+{}
+{
+ PrimaryPrefix() ( LOOKAHEAD(2) PrimarySuffix() )*
+}
+
+void MemberSelector():
+{}
+{
+ "." TypeArguments() <IDENTIFIER>
+}
+
+void PrimaryPrefix():
+{}
+{
+ Literal()
+|
+ LOOKAHEAD( ( <IDENTIFIER> "." )* "this" )
+ ( <IDENTIFIER> "." )*
+ "this"
+|
+ "super" "." <IDENTIFIER>
+|
+ "(" Expression() ")"
+|
+ AllocationExpression()
+|
+ LOOKAHEAD( ResultType() "." "class" )
+ ResultType() "." "class"
+|
+ Name()
+}
+
+void PrimarySuffix():
+{}
+{
+ LOOKAHEAD("." "super" ".")
+ "." "super"
+|
+ LOOKAHEAD("." "this")
+ "." "this"
+|
+ LOOKAHEAD(2)
+ "." AllocationExpression()
+|
+ LOOKAHEAD(3)
+ MemberSelector()
+|
+ "[" Expression() "]"
+|
+ "." <IDENTIFIER>
+|
+ Arguments()
+}
+
+void Literal():
+{}
+{
+ <INTEGER_LITERAL>
+|
+ <FLOATING_POINT_LITERAL>
+|
+ <CHARACTER_LITERAL>
+|
+ <STRING_LITERAL>
+|
+ BooleanLiteral()
+|
+ NullLiteral()
+}
+
+void BooleanLiteral():
+{}
+{
+ "true"
+|
+ "false"
+}
+
+void NullLiteral():
+{}
+{
+ "null"
+}
+
+void Arguments():
+{}
+{
+ "(" [ ArgumentList() ] ")"
+}
+
+void ArgumentList():
+{}
+{
+ Expression() ( "," Expression() )*
+}
+
+void AllocationExpression():
+{}
+{
+ LOOKAHEAD(2)
+ "new" PrimitiveType() ArrayDimsAndInits()
+|
+ "new" ClassOrInterfaceType() [ TypeArguments() ]
+ (
+ ArrayDimsAndInits()
+ |
+ Arguments() [ ClassOrInterfaceBody(false) ]
+ )
+}
+
+/*
+ * The third LOOKAHEAD specification below is to parse to PrimarySuffix
+ * if there is an expression between the "[...]".
+ */
+void ArrayDimsAndInits():
+{}
+{
+ LOOKAHEAD(2)
+ ( LOOKAHEAD(2) "[" Expression() "]" )+ ( LOOKAHEAD(2) "[" "]" )*
+|
+ ( "[" "]" )+ ArrayInitializer()
+}
+
+
+/*
+ * Statement syntax follows.
+ */
+
+void Statement():
+{}
+{
+ LOOKAHEAD(2)
+ LabeledStatement()
+|
+ AssertStatement()
+|
+ Block()
+|
+ EmptyStatement()
+|
+ StatementExpression() ";"
+|
+ SwitchStatement()
+|
+ IfStatement()
+|
+ WhileStatement()
+|
+ DoStatement()
+|
+ ForStatement()
+|
+ BreakStatement()
+|
+ ContinueStatement()
+|
+ ReturnStatement()
+|
+ ThrowStatement()
+|
+ SynchronizedStatement()
+|
+ TryStatement()
+}
+
+void AssertStatement():
+{}
+{
+ "assert" Expression() [ ":" Expression() ] ";"
+}
+
+void LabeledStatement():
+{}
+{
+ <IDENTIFIER> ":" Statement()
+}
+
+void Block():
+{}
+{
+ "{" ( BlockStatement() )* "}"
+}
+
+void BlockStatement():
+{}
+{
+ LOOKAHEAD( Modifiers() Type() <IDENTIFIER> )
+ LocalVariableDeclaration() ";"
+|
+ Statement()
+|
+ ClassOrInterfaceDeclaration(0)
+}
+
+void LocalVariableDeclaration():
+{}
+{
+ Modifiers() Type() VariableDeclarator() ( "," VariableDeclarator() )*
+}
+
+void EmptyStatement():
+{}
+{
+ ";"
+}
+
+void StatementExpression():
+{}
+{
+ PreIncrementExpression()
+|
+ PreDecrementExpression()
+|
+ LOOKAHEAD(PrimaryExpression() AssignmentOperator())
+ AssignmentExpression()
+|
+ PostfixExpression()
+}
+
+void SwitchStatement():
+{}
+{
+ "switch" "(" Expression() ")" "{"
+ ( SwitchLabel() ( BlockStatement() )* )*
+ "}"
+}
+
+void SwitchLabel():
+{}
+{
+ "case" Expression() ":"
+|
+ "default" ":"
+}
+
+void IfStatement():
+/*
+ * The disambiguating algorithm of JavaCC automatically binds dangling
+ * else's to the innermost if statement. The LOOKAHEAD specification
+ * is to tell JavaCC that we know what we are doing.
+ */
+{}
+{
+ "if" "(" Expression() ")" Statement() [ LOOKAHEAD(1) "else" Statement() ]
+}
+
+void WhileStatement():
+{}
+{
+ "while" "(" Expression() ")" Statement()
+}
+
+void DoStatement():
+{}
+{
+ "do" Statement() "while" "(" Expression() ")" ";"
+}
+
+void ForStatement():
+{}
+{
+ "for" "("
+
+ (
+ LOOKAHEAD(Modifiers() Type() <IDENTIFIER> ":")
+ Modifiers() Type() <IDENTIFIER> ":" Expression()
+ |
+ [ ForInit() ] ";" [ Expression() ] ";" [ ForUpdate() ]
+ )
+
+ ")" Statement()
+}
+
+void ForInit():
+{}
+{
+ LOOKAHEAD( Modifiers() Type() <IDENTIFIER> )
+ LocalVariableDeclaration()
+|
+ StatementExpressionList()
+}
+
+void StatementExpressionList():
+{}
+{
+ StatementExpression() ( "," StatementExpression() )*
+}
+
+void ForUpdate():
+{}
+{
+ StatementExpressionList()
+}
+
+void BreakStatement():
+{}
+{
+ "break" [ <IDENTIFIER> ] ";"
+}
+
+void ContinueStatement():
+{}
+{
+ "continue" [ <IDENTIFIER> ] ";"
+}
+
+void ReturnStatement():
+{}
+{
+ "return" [ Expression() ] ";"
+}
+
+void ThrowStatement():
+{}
+{
+ "throw" Expression() ";"
+}
+
+void SynchronizedStatement():
+{}
+{
+ "synchronized" "(" Expression() ")" Block()
+}
+
+void TryStatement():
+/*
+ * Semantic check required here to make sure that at least one
+ * finally/catch is present.
+ */
+{}
+{
+ "try" Block()
+ ( "catch" "(" FormalParameter() ")" Block() )*
+ [ "finally" Block() ]
+}
+
+/* We use productions to match >>>, >> and > so that we can keep the
+ * type declaration syntax with generics clean
+ */
+
+void RUNSIGNEDSHIFT():
+{}
+{
+ ( LOOKAHEAD({ getToken(1).kind == GT &&
+ ((Token.GTToken)getToken(1)).realKind == RUNSIGNEDSHIFT} )
+ ">" ">" ">"
+ )
+}
+
+void RSIGNEDSHIFT():
+{}
+{
+ ( LOOKAHEAD({ getToken(1).kind == GT &&
+ ((Token.GTToken)getToken(1)).realKind == RSIGNEDSHIFT} )
+ ">" ">"
+ )
+}
+
+/* Annotation syntax follows. */
+
+void Annotation():
+{}
+{
+ LOOKAHEAD( "@" Name() "(" ( <IDENTIFIER> "=" | ")" ))
+ NormalAnnotation()
+ |
+ LOOKAHEAD( "@" Name() "(" )
+ SingleMemberAnnotation()
+ |
+ MarkerAnnotation()
+}
+
+void NormalAnnotation():
+{}
+{
+ "@" Name() "(" [ MemberValuePairs() ] ")"
+}
+
+void MarkerAnnotation():
+{}
+{
+ "@" Name()
+}
+
+void SingleMemberAnnotation():
+{}
+{
+ "@" Name() "(" MemberValue() ")"
+}
+
+void MemberValuePairs():
+{}
+{
+ MemberValuePair() ( "," MemberValuePair() )*
+}
+
+void MemberValuePair():
+{}
+{
+ <IDENTIFIER> "=" MemberValue()
+}
+
+void MemberValue():
+{}
+{
+ Annotation()
+ |
+ MemberValueArrayInitializer()
+ |
+ ConditionalExpression()
+}
+
+void MemberValueArrayInitializer():
+{}
+{
+ "{" MemberValue() ( LOOKAHEAD(2) "," MemberValue() )* [ "," ] "}"
+}
+
+
+/* Annotation Types. */
+
+void AnnotationTypeDeclaration(int modifiers):
+{}
+{
+ "@" "interface" <IDENTIFIER> AnnotationTypeBody()
+}
+
+void AnnotationTypeBody():
+{}
+{
+ "{" ( AnnotationTypeMemberDeclaration() )* "}"
+}
+
+void AnnotationTypeMemberDeclaration():
+{
+ int modifiers;
+}
+{
+ modifiers = Modifiers()
+ (
+ LOOKAHEAD(Type() <IDENTIFIER> "(")
+ Type() <IDENTIFIER> "(" ")" [ DefaultValue() ] ";"
+ |
+ ClassOrInterfaceDeclaration(modifiers)
+ |
+ EnumDeclaration(modifiers)
+ |
+ AnnotationTypeDeclaration(modifiers)
+ |
+ FieldDeclaration(modifiers)
+ )
+ |
+ ( ";" )
+}
+
+void DefaultValue():
+{}
+{
+ "default" MemberValue()
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaCharStream.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaCharStream.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaCharStream.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,530 @@
+/* Generated By:JavaCC: Do not edit this line. JavaCharStream.java Version 4.0 */
+package org.nuiton.guix.parser;
+
+/**
+ * An implementation of interface CharStream, where the stream is assumed to
+ * contain only ASCII characters (with java-like unicode escape processing).
+ */
+
+public class JavaCharStream {
+ public static final boolean staticFlag = false;
+
+ static int hexval(char c) throws java.io.IOException {
+ switch (c) {
+ case '0':
+ return 0;
+ case '1':
+ return 1;
+ case '2':
+ return 2;
+ case '3':
+ return 3;
+ case '4':
+ return 4;
+ case '5':
+ return 5;
+ case '6':
+ return 6;
+ case '7':
+ return 7;
+ case '8':
+ return 8;
+ case '9':
+ return 9;
+
+ case 'a':
+ case 'A':
+ return 10;
+ case 'b':
+ case 'B':
+ return 11;
+ case 'c':
+ case 'C':
+ return 12;
+ case 'd':
+ case 'D':
+ return 13;
+ case 'e':
+ case 'E':
+ return 14;
+ case 'f':
+ case 'F':
+ return 15;
+ }
+
+ throw new java.io.IOException(); // Should never come here
+ }
+
+ public int bufpos = -1;
+ int bufsize;
+ int available;
+ int tokenBegin;
+ protected int bufline[];
+ protected int bufcolumn[];
+
+ protected int column = 0;
+ protected int line = 1;
+
+ protected boolean prevCharIsCR = false;
+ protected boolean prevCharIsLF = false;
+
+ protected java.io.Reader inputStream;
+
+ protected char[] nextCharBuf;
+ protected char[] buffer;
+ protected int maxNextCharInd = 0;
+ protected int nextCharInd = -1;
+ protected int inBuf = 0;
+ protected int tabSize = 8;
+
+ protected void setTabSize(int i) {
+ tabSize = i;
+ }
+
+ protected int getTabSize(int i) {
+ return tabSize;
+ }
+
+ protected void ExpandBuff(boolean wrapAround) {
+ char[] newbuffer = new char[bufsize + 2048];
+ int newbufline[] = new int[bufsize + 2048];
+ int newbufcolumn[] = new int[bufsize + 2048];
+
+ try {
+ if (wrapAround) {
+ System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+ System.arraycopy(buffer, 0, newbuffer,
+ bufsize - tokenBegin, bufpos);
+ buffer = newbuffer;
+
+ System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+ System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos);
+ bufline = newbufline;
+
+ System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+ System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos);
+ bufcolumn = newbufcolumn;
+
+ bufpos += (bufsize - tokenBegin);
+ } else {
+ System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+ buffer = newbuffer;
+
+ System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+ bufline = newbufline;
+
+ System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+ bufcolumn = newbufcolumn;
+
+ bufpos -= tokenBegin;
+ }
+ }
+ catch (Throwable t) {
+ throw new Error(t.getMessage());
+ }
+
+ available = (bufsize += 2048);
+ tokenBegin = 0;
+ }
+
+ protected void FillBuff() throws java.io.IOException {
+ int i;
+ if (maxNextCharInd == 4096)
+ maxNextCharInd = nextCharInd = 0;
+
+ try {
+ if ((i = inputStream.read(nextCharBuf, maxNextCharInd,
+ 4096 - maxNextCharInd)) == -1) {
+ inputStream.close();
+ throw new java.io.IOException();
+ } else {
+ maxNextCharInd += i;
+ }
+ }
+ catch (java.io.IOException e) {
+ if (bufpos != 0) {
+ --bufpos;
+ backup(0);
+ } else {
+ bufline[bufpos] = line;
+ bufcolumn[bufpos] = column;
+ }
+ throw e;
+ }
+ }
+
+ protected char ReadByte() throws java.io.IOException {
+ if (++nextCharInd >= maxNextCharInd)
+ FillBuff();
+
+ return nextCharBuf[nextCharInd];
+ }
+
+ public char BeginToken() throws java.io.IOException {
+ if (inBuf > 0) {
+ --inBuf;
+
+ if (++bufpos == bufsize) {
+ bufpos = 0;
+ }
+
+ tokenBegin = bufpos;
+ return buffer[bufpos];
+ }
+
+ tokenBegin = 0;
+ bufpos = -1;
+
+ return readChar();
+ }
+
+ protected void AdjustBuffSize() {
+ if (available == bufsize) {
+ if (tokenBegin > 2048) {
+ bufpos = 0;
+ available = tokenBegin;
+ } else
+ ExpandBuff(false);
+ } else if (available > tokenBegin)
+ available = bufsize;
+ else if ((tokenBegin - available) < 2048)
+ ExpandBuff(true);
+ else
+ available = tokenBegin;
+ }
+
+ protected void UpdateLineColumn(char c) {
+ column++;
+
+ if (prevCharIsLF) {
+ prevCharIsLF = false;
+ line += (column = 1);
+ } else if (prevCharIsCR) {
+ prevCharIsCR = false;
+ if (c == '\n') {
+ prevCharIsLF = true;
+ } else
+ line += (column = 1);
+ }
+
+ switch (c) {
+ case '\r':
+ prevCharIsCR = true;
+ break;
+ case '\n':
+ prevCharIsLF = true;
+ break;
+ case '\t':
+ column--;
+ column += (tabSize - (column % tabSize));
+ break;
+ default:
+ break;
+ }
+
+ bufline[bufpos] = line;
+ bufcolumn[bufpos] = column;
+ }
+
+ public char readChar() throws java.io.IOException {
+ if (inBuf > 0) {
+ --inBuf;
+
+ if (++bufpos == bufsize)
+ bufpos = 0;
+
+ return buffer[bufpos];
+ }
+
+ char c;
+
+ if (++bufpos == available)
+ AdjustBuffSize();
+
+ if ((buffer[bufpos] = c = ReadByte()) == '\\') {
+ UpdateLineColumn(c);
+
+ int backSlashCnt = 1;
+
+ for (; ;) // Read all the backslashes
+ {
+ if (++bufpos == available)
+ AdjustBuffSize();
+
+ try {
+ if ((buffer[bufpos] = c = ReadByte()) != '\\') {
+ UpdateLineColumn(c);
+ // found a non-backslash char.
+ if ((c == 'u') && ((backSlashCnt & 1) == 1)) {
+ if (--bufpos < 0)
+ bufpos = bufsize - 1;
+
+ break;
+ }
+
+ backup(backSlashCnt);
+ return '\\';
+ }
+ }
+ catch (java.io.IOException e) {
+ if (backSlashCnt > 1)
+ backup(backSlashCnt);
+
+ return '\\';
+ }
+
+ UpdateLineColumn(c);
+ backSlashCnt++;
+ }
+
+ // Here, we have seen an odd number of backslash's followed by a 'u'
+ try {
+ while ((c = ReadByte()) == 'u')
+ ++column;
+
+ buffer[bufpos] = c = (char) (hexval(c) << 12 |
+ hexval(ReadByte()) << 8 |
+ hexval(ReadByte()) << 4 |
+ hexval(ReadByte()));
+
+ column += 4;
+ }
+ catch (java.io.IOException e) {
+ throw new Error("Invalid escape character at line " + line +
+ " column " + column + ".");
+ }
+
+ if (backSlashCnt == 1)
+ return c;
+ else {
+ backup(backSlashCnt - 1);
+ return '\\';
+ }
+ } else {
+ UpdateLineColumn(c);
+ return (c);
+ }
+ }
+
+ /**
+ * @return column index
+ * @see #getEndColumn
+ * @deprecated
+ */
+
+ public int getColumn() {
+ return bufcolumn[bufpos];
+ }
+
+ /**
+ * @return line type ???
+ * @see #getEndLine
+ * @deprecated
+ */
+
+ public int getLine() {
+ return bufline[bufpos];
+ }
+
+ public int getEndColumn() {
+ return bufcolumn[bufpos];
+ }
+
+ public int getEndLine() {
+ return bufline[bufpos];
+ }
+
+ public int getBeginColumn() {
+ return bufcolumn[tokenBegin];
+ }
+
+ public int getBeginLine() {
+ return bufline[tokenBegin];
+ }
+
+ public void backup(int amount) {
+
+ inBuf += amount;
+ if ((bufpos -= amount) < 0)
+ bufpos += bufsize;
+ }
+
+ public JavaCharStream(java.io.Reader dstream,
+ int startline, int startcolumn, int buffersize) {
+ inputStream = dstream;
+ line = startline;
+ column = startcolumn - 1;
+
+ available = bufsize = buffersize;
+ buffer = new char[buffersize];
+ bufline = new int[buffersize];
+ bufcolumn = new int[buffersize];
+ nextCharBuf = new char[4096];
+ }
+
+ public JavaCharStream(java.io.Reader dstream,
+ int startline, int startcolumn) {
+ this(dstream, startline, startcolumn, 4096);
+ }
+
+ public JavaCharStream(java.io.Reader dstream) {
+ this(dstream, 1, 1, 4096);
+ }
+
+ public void ReInit(java.io.Reader dstream,
+ int startline, int startcolumn, int buffersize) {
+ inputStream = dstream;
+ line = startline;
+ column = startcolumn - 1;
+
+ if (buffer == null || buffersize != buffer.length) {
+ available = bufsize = buffersize;
+ buffer = new char[buffersize];
+ bufline = new int[buffersize];
+ bufcolumn = new int[buffersize];
+ nextCharBuf = new char[4096];
+ }
+ prevCharIsLF = prevCharIsCR = false;
+ tokenBegin = inBuf = maxNextCharInd = 0;
+ nextCharInd = bufpos = -1;
+ }
+
+ public void ReInit(java.io.Reader dstream,
+ int startline, int startcolumn) {
+ ReInit(dstream, startline, startcolumn, 4096);
+ }
+
+ public void ReInit(java.io.Reader dstream) {
+ ReInit(dstream, 1, 1, 4096);
+ }
+
+ public JavaCharStream(java.io.InputStream dstream, String encoding, int startline,
+ int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException {
+ this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+ }
+
+ public JavaCharStream(java.io.InputStream dstream, int startline,
+ int startcolumn, int buffersize) {
+ this(new java.io.InputStreamReader(dstream), startline, startcolumn, 4096);
+ }
+
+ public JavaCharStream(java.io.InputStream dstream, String encoding, int startline,
+ int startcolumn) throws java.io.UnsupportedEncodingException {
+ this(dstream, encoding, startline, startcolumn, 4096);
+ }
+
+ public JavaCharStream(java.io.InputStream dstream, int startline,
+ int startcolumn) {
+ this(dstream, startline, startcolumn, 4096);
+ }
+
+ public JavaCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException {
+ this(dstream, encoding, 1, 1, 4096);
+ }
+
+ public JavaCharStream(java.io.InputStream dstream) {
+ this(dstream, 1, 1, 4096);
+ }
+
+ public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+ int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException {
+ ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+ }
+
+ public void ReInit(java.io.InputStream dstream, int startline,
+ int startcolumn, int buffersize) {
+ ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
+ }
+
+ public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+ int startcolumn) throws java.io.UnsupportedEncodingException {
+ ReInit(dstream, encoding, startline, startcolumn, 4096);
+ }
+
+ public void ReInit(java.io.InputStream dstream, int startline,
+ int startcolumn) {
+ ReInit(dstream, startline, startcolumn, 4096);
+ }
+
+ public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException {
+ ReInit(dstream, encoding, 1, 1, 4096);
+ }
+
+ public void ReInit(java.io.InputStream dstream) {
+ ReInit(dstream, 1, 1, 4096);
+ }
+
+ public String GetImage() {
+ if (bufpos >= tokenBegin)
+ return new String(buffer, tokenBegin, bufpos - tokenBegin + 1);
+ else
+ return new String(buffer, tokenBegin, bufsize - tokenBegin) +
+ new String(buffer, 0, bufpos + 1);
+ }
+
+ public char[] GetSuffix(int len) {
+ char[] ret = new char[len];
+
+ if ((bufpos + 1) >= len)
+ System.arraycopy(buffer, bufpos - len + 1, ret, 0, len);
+ else {
+ System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0,
+ len - bufpos - 1);
+ System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1);
+ }
+
+ return ret;
+ }
+
+ public void Done() {
+ nextCharBuf = null;
+ buffer = null;
+ bufline = null;
+ bufcolumn = null;
+ }
+
+ /**
+ * Method to adjust line and column numbers for the start of a token.
+ *
+ * @param newLine line number ?
+ * @param newCol column number ?
+ */
+ public void adjustBeginLineColumn(int newLine, int newCol) {
+ int start = tokenBegin;
+ int len;
+
+ if (bufpos >= tokenBegin) {
+ len = bufpos - tokenBegin + inBuf + 1;
+ } else {
+ len = bufsize - tokenBegin + bufpos + 1 + inBuf;
+ }
+
+ int i = 0, j = 0, k;
+ int nextColDiff, columnDiff = 0;
+
+ while (i < len &&
+ bufline[j = start % bufsize] == bufline[k = ++start % bufsize]) {
+ bufline[j] = newLine;
+ nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];
+ bufcolumn[j] = newCol + columnDiff;
+ columnDiff = nextColDiff;
+ i++;
+ }
+
+ if (i < len) {
+ bufline[j] = newLine++;
+ bufcolumn[j] = newCol + columnDiff;
+
+ while (i++ < len) {
+ if (bufline[j = start % bufsize] != bufline[++start % bufsize])
+ bufline[j] = newLine++;
+ else
+ bufline[j] = newLine;
+ }
+ }
+
+ line = bufline[j];
+ column = bufcolumn[j];
+ }
+
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaParser.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaParser.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaParser.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,10048 @@
+/* Generated By:JJTree&JavaCC: Do not edit this line. JavaParser.java */
+package org.nuiton.guix.parser;
+
+import java.io.File;
+import java.io.FileInputStream;
+
+/**
+ * Grammar to parse Java version 1.5
+ *
+ * @author Sreenivasa Viswanadha - Simplified and enhanced for 1.5
+ */
+public class JavaParser/*@bgen(jjtree)*/ implements JavaParserTreeConstants, JavaParserConstants {/*@bgen(jjtree)*/
+ protected JJTJavaParserState jjtree = new JJTJavaParserState();
+
+ /** Class to hold modifiers. */
+ static public final class ModifierSet {
+ /* Definitions of the bits in the modifiers field. */
+ public static final int PUBLIC = 0x0001;
+ public static final int PROTECTED = 0x0002;
+ public static final int PRIVATE = 0x0004;
+ public static final int ABSTRACT = 0x0008;
+ public static final int STATIC = 0x0010;
+ public static final int FINAL = 0x0020;
+ public static final int SYNCHRONIZED = 0x0040;
+ public static final int NATIVE = 0x0080;
+ public static final int TRANSIENT = 0x0100;
+ public static final int VOLATILE = 0x0200;
+ public static final int STRICTFP = 0x1000;
+
+ /**
+ * A set of accessors that indicate whether the specified modifier
+ * is in the set.
+ */
+
+ public boolean isPublic(int modifiers) {
+ return (modifiers & PUBLIC) != 0;
+ }
+
+ public boolean isProtected(int modifiers) {
+ return (modifiers & PROTECTED) != 0;
+ }
+
+ public boolean isPrivate(int modifiers) {
+ return (modifiers & PRIVATE) != 0;
+ }
+
+ public boolean isStatic(int modifiers) {
+ return (modifiers & STATIC) != 0;
+ }
+
+ public boolean isAbstract(int modifiers) {
+ return (modifiers & ABSTRACT) != 0;
+ }
+
+ public boolean isFinal(int modifiers) {
+ return (modifiers & FINAL) != 0;
+ }
+
+ public boolean isNative(int modifiers) {
+ return (modifiers & NATIVE) != 0;
+ }
+
+ public boolean isStrictfp(int modifiers) {
+ return (modifiers & STRICTFP) != 0;
+ }
+
+ public boolean isSynchronized(int modifiers) {
+ return (modifiers & SYNCHRONIZED) != 0;
+ }
+
+ public boolean isTransient(int modifiers) {
+ return (modifiers & TRANSIENT) != 0;
+ }
+
+ public boolean isVolatile(int modifiers) {
+ return (modifiers & VOLATILE) != 0;
+ }
+
+ /** Removes the given modifier. */
+ static int removeModifier(int modifiers, int mod) {
+ return modifiers & ~mod;
+ }
+ }
+
+ public JavaParser(String fileName) {
+ this(System.in);
+ try {
+ ReInit(new FileInputStream(new File(fileName)));
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ void jjtreeOpenNodeScope(Node n) {
+ ((SimpleNode) n).firstToken = getToken(1);
+ }
+
+ void jjtreeCloseNodeScope(Node n) {
+ ((SimpleNode) n).lastToken = getToken(0);
+ }
+
+ public SimpleNode popNode() {
+ if (jjtree.nodeArity() > 0) // number of child nodes
+ return (SimpleNode) jjtree.popNode();
+ else
+ return null;
+ }
+
+ public static void main(String args[]) {
+ JavaParser parser;
+ if (args.length == 0) {
+ System.out.println("Java Parser Version 1.1: Reading from standard input . . .");
+ parser = new JavaParser(System.in);
+ } else if (args.length == 1) {
+ System.out.println("Java Parser Version 1.1: Reading from file " + args[0] + " . . .");
+ try {
+ parser = new JavaParser(new java.io.FileInputStream(args[0]));
+ } catch (java.io.FileNotFoundException e) {
+ System.out.println("Java Parser Version 1.1: File " + args[0] + " not found.");
+ return;
+ }
+ } else {
+ System.out.println("Java Parser Version 1.1: Usage is one of:");
+ System.out.println(" java JavaParser < inputfile");
+ System.out.println("OR");
+ System.out.println(" java JavaParser inputfile");
+ return;
+ }
+ try {
+ parser.CompilationUnit();
+ System.out.println("Java Parser Version 1.1: Java program parsed successfully.");
+ } catch (ParseException e) {
+ System.out.println(e.getMessage());
+ System.out.println("Java Parser Version 1.1: Encountered errors during parse.");
+ }
+ }
+
+ final public boolean Line() throws ParseException {
+ /*@bgen(jjtree) Line */
+ SimpleNode jjtn000 = new SimpleNode(JJTLINE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ int modifiers;
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case 0:
+ jj_consume_token(0);
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ {
+ if (true) return true;
+ }
+ break;
+ default:
+ if (jj_2_1(2147483647)) {
+ BlockStatement();
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ {
+ if (true) return false;
+ }
+ } else if (jj_2_2(2147483647)) {
+ ClassOrInterfaceBodyDeclaration(false);
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ {
+ if (true) return false;
+ }
+ } else if (jj_2_3(2147483647)) {
+ ClassOrInterfaceBodyDeclaration(false);
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ {
+ if (true) return false;
+ }
+ } else if (jj_2_4(2147483647)) {
+ Expression();
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ {
+ if (true) return false;
+ }
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IMPORT:
+ ImportDeclaration();
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ {
+ if (true) return false;
+ }
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ /**
+ * **************************************
+ * THE JAVA LANGUAGE GRAMMAR STARTS HERE *
+ * ***************************************
+ */
+
+/*
+ * Program structuring syntax follows.
+ */
+ final public void CompilationUnit() throws ParseException {
+ /*@bgen(jjtree) CompilationUnit */
+ SimpleNode jjtn000 = new SimpleNode(JJTCOMPILATIONUNIT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ if (jj_2_5(2147483647)) {
+ PackageDeclaration();
+ } else {
+ ;
+ }
+ label_1:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IMPORT:
+ ;
+ break;
+ default:
+ break label_1;
+ }
+ ImportDeclaration();
+ }
+ label_2:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case CLASS:
+ case ENUM:
+ case FINAL:
+ case INTERFACE:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case SEMICOLON:
+ case AT:
+ ;
+ break;
+ default:
+ break label_2;
+ }
+ TypeDeclaration();
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case 123:
+ jj_consume_token(123);
+ break;
+ default:
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case STUFF_TO_IGNORE:
+ jj_consume_token(STUFF_TO_IGNORE);
+ break;
+ default:
+ ;
+ }
+ jj_consume_token(0);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void PackageDeclaration() throws ParseException {
+ /*@bgen(jjtree) PackageDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTPACKAGEDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ Modifiers();
+ jj_consume_token(PACKAGE);
+ Name();
+ jj_consume_token(SEMICOLON);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ImportDeclaration() throws ParseException {
+ /*@bgen(jjtree) ImportDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTIMPORTDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(IMPORT);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case STATIC:
+ jj_consume_token(STATIC);
+ break;
+ default:
+ ;
+ }
+ Name();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case DOT:
+ jj_consume_token(DOT);
+ jj_consume_token(STAR);
+ break;
+ default:
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ /*
+ * Modifiers. We match all modifiers in a single rule to reduce the chances of
+ * syntax errors for simple modifier mistakes. It will also enable us to give
+ * better error messages.
+ */
+ final public int Modifiers() throws ParseException {
+ /*@bgen(jjtree) Modifiers */
+ SimpleNode jjtn000 = new SimpleNode(JJTMODIFIERS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ int modifiers = 0;
+ try {
+ label_3:
+ while (true) {
+ if (jj_2_6(2)) {
+ ;
+ } else {
+ break label_3;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case PUBLIC:
+ jj_consume_token(PUBLIC);
+ modifiers |= ModifierSet.PUBLIC;
+ break;
+ case STATIC:
+ jj_consume_token(STATIC);
+ modifiers |= ModifierSet.STATIC;
+ break;
+ case PROTECTED:
+ jj_consume_token(PROTECTED);
+ modifiers |= ModifierSet.PROTECTED;
+ break;
+ case PRIVATE:
+ jj_consume_token(PRIVATE);
+ modifiers |= ModifierSet.PRIVATE;
+ break;
+ case FINAL:
+ jj_consume_token(FINAL);
+ modifiers |= ModifierSet.FINAL;
+ break;
+ case ABSTRACT:
+ jj_consume_token(ABSTRACT);
+ modifiers |= ModifierSet.ABSTRACT;
+ break;
+ case SYNCHRONIZED:
+ jj_consume_token(SYNCHRONIZED);
+ modifiers |= ModifierSet.SYNCHRONIZED;
+ break;
+ case NATIVE:
+ jj_consume_token(NATIVE);
+ modifiers |= ModifierSet.NATIVE;
+ break;
+ case TRANSIENT:
+ jj_consume_token(TRANSIENT);
+ modifiers |= ModifierSet.TRANSIENT;
+ break;
+ case VOLATILE:
+ jj_consume_token(VOLATILE);
+ modifiers |= ModifierSet.VOLATILE;
+ break;
+ case STRICTFP:
+ jj_consume_token(STRICTFP);
+ modifiers |= ModifierSet.STRICTFP;
+ break;
+ case AT:
+ Annotation();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ {
+ if (true) return modifiers;
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ throw new Error("Missing return statement in function");
+ }
+
+ /*
+ * Declaration syntax follows.
+ */
+ final public void TypeDeclaration() throws ParseException {
+ /*@bgen(jjtree) TypeDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTTYPEDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ int modifiers;
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case SEMICOLON:
+ jj_consume_token(SEMICOLON);
+ break;
+ case ABSTRACT:
+ case CLASS:
+ case ENUM:
+ case FINAL:
+ case INTERFACE:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case AT:
+ modifiers = Modifiers();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case CLASS:
+ case INTERFACE:
+ ClassOrInterfaceDeclaration(modifiers);
+ break;
+ case ENUM:
+ EnumDeclaration(modifiers);
+ break;
+ case AT:
+ AnnotationTypeDeclaration(modifiers);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ClassOrInterfaceDeclaration(int modifiers) throws ParseException {
+ /*@bgen(jjtree) ClassOrInterfaceDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTCLASSORINTERFACEDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ boolean isInterface = false;
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case CLASS:
+ jj_consume_token(CLASS);
+ break;
+ case INTERFACE:
+ jj_consume_token(INTERFACE);
+ isInterface = true;
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ jj_consume_token(IDENTIFIER);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LT:
+ TypeParameters();
+ break;
+ default:
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case EXTENDS:
+ ExtendsList(isInterface);
+ break;
+ default:
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IMPLEMENTS:
+ ImplementsList(isInterface);
+ break;
+ default:
+ ;
+ }
+ ClassOrInterfaceBody(isInterface);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ExtendsList(boolean isInterface) throws ParseException {
+ /*@bgen(jjtree) ExtendsList */
+ SimpleNode jjtn000 = new SimpleNode(JJTEXTENDSLIST);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ boolean extendsMoreThanOne = false;
+ try {
+ jj_consume_token(EXTENDS);
+ ClassOrInterfaceType();
+ label_4:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ break label_4;
+ }
+ jj_consume_token(COMMA);
+ ClassOrInterfaceType();
+ extendsMoreThanOne = true;
+ }
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ if (extendsMoreThanOne && !isInterface) {
+ if (true)
+ throw new ParseException("A class cannot extend more than one other class");
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ImplementsList(boolean isInterface) throws ParseException {
+ /*@bgen(jjtree) ImplementsList */
+ SimpleNode jjtn000 = new SimpleNode(JJTIMPLEMENTSLIST);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(IMPLEMENTS);
+ ClassOrInterfaceType();
+ label_5:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ break label_5;
+ }
+ jj_consume_token(COMMA);
+ ClassOrInterfaceType();
+ }
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ if (isInterface) {
+ if (true)
+ throw new ParseException("An interface cannot implement other interfaces");
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void EnumDeclaration(int modifiers) throws ParseException {
+ /*@bgen(jjtree) EnumDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTENUMDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(ENUM);
+ jj_consume_token(IDENTIFIER);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IMPLEMENTS:
+ ImplementsList(false);
+ break;
+ default:
+ ;
+ }
+ EnumBody();
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void EnumBody() throws ParseException {
+ /*@bgen(jjtree) EnumBody */
+ SimpleNode jjtn000 = new SimpleNode(JJTENUMBODY);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(LBRACE);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case FINAL:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case IDENTIFIER:
+ case AT:
+ EnumConstant();
+ label_6:
+ while (true) {
+ if (jj_2_7(2)) {
+ ;
+ } else {
+ break label_6;
+ }
+ jj_consume_token(COMMA);
+ EnumConstant();
+ }
+ break;
+ default:
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ jj_consume_token(COMMA);
+ break;
+ default:
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case SEMICOLON:
+ jj_consume_token(SEMICOLON);
+ label_7:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOID:
+ case VOLATILE:
+ case IDENTIFIER:
+ case LBRACE:
+ case SEMICOLON:
+ case AT:
+ case LT:
+ ;
+ break;
+ default:
+ break label_7;
+ }
+ ClassOrInterfaceBodyDeclaration(false);
+ }
+ break;
+ default:
+ ;
+ }
+ jj_consume_token(RBRACE);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void EnumConstant() throws ParseException {
+ /*@bgen(jjtree) EnumConstant */
+ SimpleNode jjtn000 = new SimpleNode(JJTENUMCONSTANT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ Modifiers();
+ jj_consume_token(IDENTIFIER);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LPAREN:
+ Arguments();
+ break;
+ default:
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LBRACE:
+ ClassOrInterfaceBody(false);
+ break;
+ default:
+ ;
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void TypeParameters() throws ParseException {
+ /*@bgen(jjtree) TypeParameters */
+ SimpleNode jjtn000 = new SimpleNode(JJTTYPEPARAMETERS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(LT);
+ TypeParameter();
+ label_8:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ break label_8;
+ }
+ jj_consume_token(COMMA);
+ TypeParameter();
+ }
+ jj_consume_token(GT);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void TypeParameter() throws ParseException {
+ /*@bgen(jjtree) TypeParameter */
+ SimpleNode jjtn000 = new SimpleNode(JJTTYPEPARAMETER);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(IDENTIFIER);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case EXTENDS:
+ TypeBound();
+ break;
+ default:
+ ;
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void TypeBound() throws ParseException {
+ /*@bgen(jjtree) TypeBound */
+ SimpleNode jjtn000 = new SimpleNode(JJTTYPEBOUND);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(EXTENDS);
+ ClassOrInterfaceType();
+ label_9:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BIT_AND:
+ ;
+ break;
+ default:
+ break label_9;
+ }
+ jj_consume_token(BIT_AND);
+ ClassOrInterfaceType();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ClassOrInterfaceBody(boolean isInterface) throws ParseException {
+ /*@bgen(jjtree) ClassOrInterfaceBody */
+ SimpleNode jjtn000 = new SimpleNode(JJTCLASSORINTERFACEBODY);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(LBRACE);
+ label_10:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOID:
+ case VOLATILE:
+ case IDENTIFIER:
+ case LBRACE:
+ case SEMICOLON:
+ case AT:
+ case LT:
+ ;
+ break;
+ default:
+ break label_10;
+ }
+ ClassOrInterfaceBodyDeclaration(isInterface);
+ }
+ jj_consume_token(RBRACE);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ClassOrInterfaceBodyDeclaration(boolean isInterface) throws ParseException {
+ /*@bgen(jjtree) ClassOrInterfaceBodyDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTCLASSORINTERFACEBODYDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ boolean isNestedInterface = false;
+ int modifiers;
+ try {
+ if (jj_2_10(2)) {
+ Initializer();
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ jjtreeCloseNodeScope(jjtn000);
+ if (isInterface) {
+ if (true)
+ throw new ParseException("An interface cannot have initializers");
+ }
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOID:
+ case VOLATILE:
+ case IDENTIFIER:
+ case AT:
+ case LT:
+ modifiers = Modifiers();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case CLASS:
+ case INTERFACE:
+ ClassOrInterfaceDeclaration(modifiers);
+ break;
+ case ENUM:
+ EnumDeclaration(modifiers);
+ break;
+ default:
+ if (jj_2_8(2147483647)) {
+ ConstructorDeclaration();
+ } else if (jj_2_9(2147483647)) {
+ FieldDeclaration(modifiers);
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case VOID:
+ case IDENTIFIER:
+ case LT:
+ MethodDeclaration(modifiers);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ }
+ break;
+ case SEMICOLON:
+ jj_consume_token(SEMICOLON);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void FieldDeclaration(int modifiers) throws ParseException {
+ /*@bgen(jjtree) FieldDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTFIELDDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ Type();
+ VariableDeclarator();
+ label_11:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ break label_11;
+ }
+ jj_consume_token(COMMA);
+ VariableDeclarator();
+ }
+ jj_consume_token(SEMICOLON);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void VariableDeclarator() throws ParseException {
+ /*@bgen(jjtree) VariableDeclarator */
+ SimpleNode jjtn000 = new SimpleNode(JJTVARIABLEDECLARATOR);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ VariableDeclaratorId();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ASSIGN:
+ jj_consume_token(ASSIGN);
+ VariableInitializer();
+ break;
+ default:
+ ;
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void VariableDeclaratorId() throws ParseException {
+ /*@bgen(jjtree) VariableDeclaratorId */
+ SimpleNode jjtn000 = new SimpleNode(JJTVARIABLEDECLARATORID);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(IDENTIFIER);
+ label_12:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LBRACKET:
+ ;
+ break;
+ default:
+ break label_12;
+ }
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void VariableInitializer() throws ParseException {
+ /*@bgen(jjtree) VariableInitializer */
+ SimpleNode jjtn000 = new SimpleNode(JJTVARIABLEINITIALIZER);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LBRACE:
+ ArrayInitializer();
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ Expression();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ArrayInitializer() throws ParseException {
+ /*@bgen(jjtree) ArrayInitializer */
+ SimpleNode jjtn000 = new SimpleNode(JJTARRAYINITIALIZER);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(LBRACE);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LBRACE:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ VariableInitializer();
+ label_13:
+ while (true) {
+ if (jj_2_11(2)) {
+ ;
+ } else {
+ break label_13;
+ }
+ jj_consume_token(COMMA);
+ VariableInitializer();
+ }
+ break;
+ default:
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ jj_consume_token(COMMA);
+ break;
+ default:
+ ;
+ }
+ jj_consume_token(RBRACE);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void MethodDeclaration(int modifiers) throws ParseException {
+ /*@bgen(jjtree) MethodDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTMETHODDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LT:
+ TypeParameters();
+ break;
+ default:
+ ;
+ }
+ ResultType();
+ MethodDeclarator();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case THROWS:
+ jj_consume_token(THROWS);
+ NameList();
+ break;
+ default:
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LBRACE:
+ Block();
+ break;
+ case SEMICOLON:
+ jj_consume_token(SEMICOLON);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void MethodDeclarator() throws ParseException {
+ /*@bgen(jjtree) MethodDeclarator */
+ SimpleNode jjtn000 = new SimpleNode(JJTMETHODDECLARATOR);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(IDENTIFIER);
+ FormalParameters();
+ label_14:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LBRACKET:
+ ;
+ break;
+ default:
+ break label_14;
+ }
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void FormalParameters() throws ParseException {
+ /*@bgen(jjtree) FormalParameters */
+ SimpleNode jjtn000 = new SimpleNode(JJTFORMALPARAMETERS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(LPAREN);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case IDENTIFIER:
+ case AT:
+ FormalParameter();
+ label_15:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ break label_15;
+ }
+ jj_consume_token(COMMA);
+ FormalParameter();
+ }
+ break;
+ default:
+ ;
+ }
+ jj_consume_token(RPAREN);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void FormalParameter() throws ParseException {
+ /*@bgen(jjtree) FormalParameter */
+ SimpleNode jjtn000 = new SimpleNode(JJTFORMALPARAMETER);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ Modifiers();
+ Type();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ELLIPSIS:
+ jj_consume_token(ELLIPSIS);
+ break;
+ default:
+ ;
+ }
+ VariableDeclaratorId();
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ConstructorDeclaration() throws ParseException {
+ /*@bgen(jjtree) ConstructorDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTCONSTRUCTORDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LT:
+ TypeParameters();
+ break;
+ default:
+ ;
+ }
+ jj_consume_token(IDENTIFIER);
+ FormalParameters();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case THROWS:
+ jj_consume_token(THROWS);
+ NameList();
+ break;
+ default:
+ ;
+ }
+ jj_consume_token(LBRACE);
+ if (jj_2_12(2147483647)) {
+ ExplicitConstructorInvocation();
+ } else {
+ ;
+ }
+ label_16:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case ASSERT:
+ case BOOLEAN:
+ case BREAK:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case CONTINUE:
+ case DO:
+ case DOUBLE:
+ case FALSE:
+ case FINAL:
+ case FLOAT:
+ case FOR:
+ case IF:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case NEW:
+ case NULL:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case RETURN:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SUPER:
+ case SWITCH:
+ case SYNCHRONIZED:
+ case THIS:
+ case THROW:
+ case TRANSIENT:
+ case TRUE:
+ case TRY:
+ case VOID:
+ case VOLATILE:
+ case WHILE:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LBRACE:
+ case SEMICOLON:
+ case AT:
+ case INCR:
+ case DECR:
+ ;
+ break;
+ default:
+ break label_16;
+ }
+ BlockStatement();
+ }
+ jj_consume_token(RBRACE);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ExplicitConstructorInvocation() throws ParseException {
+ /*@bgen(jjtree) ExplicitConstructorInvocation */
+ SimpleNode jjtn000 = new SimpleNode(JJTEXPLICITCONSTRUCTORINVOCATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ label_17:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IDENTIFIER:
+ ;
+ break;
+ default:
+ break label_17;
+ }
+ jj_consume_token(IDENTIFIER);
+ jj_consume_token(DOT);
+ }
+ if (jj_2_13(2)) {
+ jj_consume_token(THIS);
+ jj_consume_token(DOT);
+ } else {
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LT:
+ TypeArguments();
+ break;
+ default:
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case THIS:
+ jj_consume_token(THIS);
+ break;
+ case SUPER:
+ jj_consume_token(SUPER);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ Arguments();
+ jj_consume_token(SEMICOLON);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void Initializer() throws ParseException {
+ /*@bgen(jjtree) Initializer */
+ SimpleNode jjtn000 = new SimpleNode(JJTINITIALIZER);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case STATIC:
+ jj_consume_token(STATIC);
+ break;
+ default:
+ ;
+ }
+ Block();
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ /*
+ * Type, name and expression syntax follows.
+ */
+ final public void Type() throws ParseException {
+ /*@bgen(jjtree) Type */
+ SimpleNode jjtn000 = new SimpleNode(JJTTYPE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ if (jj_2_14(2)) {
+ ReferenceType();
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ PrimitiveType();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ReferenceType() throws ParseException {
+ /*@bgen(jjtree) ReferenceType */
+ SimpleNode jjtn000 = new SimpleNode(JJTREFERENCETYPE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ PrimitiveType();
+ label_18:
+ while (true) {
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ if (jj_2_15(2)) {
+ ;
+ } else {
+ break label_18;
+ }
+ }
+ break;
+ case IDENTIFIER:
+ ClassOrInterfaceType();
+ label_19:
+ while (true) {
+ if (jj_2_16(2)) {
+ ;
+ } else {
+ break label_19;
+ }
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ }
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ClassOrInterfaceType() throws ParseException {
+ /*@bgen(jjtree) ClassOrInterfaceType */
+ SimpleNode jjtn000 = new SimpleNode(JJTCLASSORINTERFACETYPE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(IDENTIFIER);
+ if (jj_2_17(2)) {
+ TypeArguments();
+ } else {
+ ;
+ }
+ label_20:
+ while (true) {
+ if (jj_2_18(2)) {
+ ;
+ } else {
+ break label_20;
+ }
+ jj_consume_token(DOT);
+ jj_consume_token(IDENTIFIER);
+ if (jj_2_19(2)) {
+ TypeArguments();
+ } else {
+ ;
+ }
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void TypeArguments() throws ParseException {
+ /*@bgen(jjtree) TypeArguments */
+ SimpleNode jjtn000 = new SimpleNode(JJTTYPEARGUMENTS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(LT);
+ TypeArgument();
+ label_21:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ break label_21;
+ }
+ jj_consume_token(COMMA);
+ TypeArgument();
+ }
+ jj_consume_token(GT);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void TypeArgument() throws ParseException {
+ /*@bgen(jjtree) TypeArgument */
+ SimpleNode jjtn000 = new SimpleNode(JJTTYPEARGUMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case IDENTIFIER:
+ ReferenceType();
+ break;
+ case HOOK:
+ jj_consume_token(HOOK);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case EXTENDS:
+ case SUPER:
+ WildcardBounds();
+ break;
+ default:
+ ;
+ }
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void WildcardBounds() throws ParseException {
+ /*@bgen(jjtree) WildcardBounds */
+ SimpleNode jjtn000 = new SimpleNode(JJTWILDCARDBOUNDS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case EXTENDS:
+ jj_consume_token(EXTENDS);
+ ReferenceType();
+ break;
+ case SUPER:
+ jj_consume_token(SUPER);
+ ReferenceType();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void PrimitiveType() throws ParseException {
+ /*@bgen(jjtree) PrimitiveType */
+ SimpleNode jjtn000 = new SimpleNode(JJTPRIMITIVETYPE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ jj_consume_token(BOOLEAN);
+ break;
+ case CHAR:
+ jj_consume_token(CHAR);
+ break;
+ case BYTE:
+ jj_consume_token(BYTE);
+ break;
+ case SHORT:
+ jj_consume_token(SHORT);
+ break;
+ case INT:
+ jj_consume_token(INT);
+ break;
+ case LONG:
+ jj_consume_token(LONG);
+ break;
+ case FLOAT:
+ jj_consume_token(FLOAT);
+ break;
+ case DOUBLE:
+ jj_consume_token(DOUBLE);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ResultType() throws ParseException {
+ /*@bgen(jjtree) ResultType */
+ SimpleNode jjtn000 = new SimpleNode(JJTRESULTTYPE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case VOID:
+ jj_consume_token(VOID);
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case IDENTIFIER:
+ Type();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void Name() throws ParseException {
+ /*@bgen(jjtree) Name */
+ SimpleNode jjtn000 = new SimpleNode(JJTNAME);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(IDENTIFIER);
+ label_22:
+ while (true) {
+ if (jj_2_20(2)) {
+ ;
+ } else {
+ break label_22;
+ }
+ jj_consume_token(DOT);
+ jj_consume_token(IDENTIFIER);
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void NameList() throws ParseException {
+ /*@bgen(jjtree) NameList */
+ SimpleNode jjtn000 = new SimpleNode(JJTNAMELIST);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ Name();
+ label_23:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ break label_23;
+ }
+ jj_consume_token(COMMA);
+ Name();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ /*
+ * Expression syntax follows.
+ */
+ final public void Expression() throws ParseException {
+ /*@bgen(jjtree) Expression */
+ SimpleNode jjtn000 = new SimpleNode(JJTEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ ConditionalExpression();
+ if (jj_2_21(2)) {
+ AssignmentOperator();
+ Expression();
+ } else {
+ ;
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void AssignmentOperator() throws ParseException {
+ /*@bgen(jjtree) AssignmentOperator */
+ SimpleNode jjtn000 = new SimpleNode(JJTASSIGNMENTOPERATOR);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ASSIGN:
+ jj_consume_token(ASSIGN);
+ break;
+ case STARASSIGN:
+ jj_consume_token(STARASSIGN);
+ break;
+ case SLASHASSIGN:
+ jj_consume_token(SLASHASSIGN);
+ break;
+ case REMASSIGN:
+ jj_consume_token(REMASSIGN);
+ break;
+ case PLUSASSIGN:
+ jj_consume_token(PLUSASSIGN);
+ break;
+ case MINUSASSIGN:
+ jj_consume_token(MINUSASSIGN);
+ break;
+ case LSHIFTASSIGN:
+ jj_consume_token(LSHIFTASSIGN);
+ break;
+ case RSIGNEDSHIFTASSIGN:
+ jj_consume_token(RSIGNEDSHIFTASSIGN);
+ break;
+ case RUNSIGNEDSHIFTASSIGN:
+ jj_consume_token(RUNSIGNEDSHIFTASSIGN);
+ break;
+ case ANDASSIGN:
+ jj_consume_token(ANDASSIGN);
+ break;
+ case XORASSIGN:
+ jj_consume_token(XORASSIGN);
+ break;
+ case ORASSIGN:
+ jj_consume_token(ORASSIGN);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void AssignmentExpression() throws ParseException {
+ /*@bgen(jjtree) AssignmentExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTASSIGNMENTEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ PrimaryExpression();
+ AssignmentOperator();
+ Expression();
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ConditionalExpression() throws ParseException {
+ /*@bgen(jjtree) ConditionalExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTCONDITIONALEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ ConditionalOrExpression();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case HOOK:
+ jj_consume_token(HOOK);
+ Expression();
+ jj_consume_token(COLON);
+ Expression();
+ break;
+ default:
+ ;
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ConditionalOrExpression() throws ParseException {
+ /*@bgen(jjtree) ConditionalOrExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTCONDITIONALOREXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ ConditionalAndExpression();
+ label_24:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case SC_OR:
+ ;
+ break;
+ default:
+ break label_24;
+ }
+ jj_consume_token(SC_OR);
+ ConditionalAndExpression();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ConditionalAndExpression() throws ParseException {
+ /*@bgen(jjtree) ConditionalAndExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTCONDITIONALANDEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ InclusiveOrExpression();
+ label_25:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case SC_AND:
+ ;
+ break;
+ default:
+ break label_25;
+ }
+ jj_consume_token(SC_AND);
+ InclusiveOrExpression();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void InclusiveOrExpression() throws ParseException {
+ /*@bgen(jjtree) InclusiveOrExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTINCLUSIVEOREXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ ExclusiveOrExpression();
+ label_26:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BIT_OR:
+ ;
+ break;
+ default:
+ break label_26;
+ }
+ jj_consume_token(BIT_OR);
+ ExclusiveOrExpression();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ExclusiveOrExpression() throws ParseException {
+ /*@bgen(jjtree) ExclusiveOrExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTEXCLUSIVEOREXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ AndExpression();
+ label_27:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case XOR:
+ ;
+ break;
+ default:
+ break label_27;
+ }
+ jj_consume_token(XOR);
+ AndExpression();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void AndExpression() throws ParseException {
+ /*@bgen(jjtree) AndExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTANDEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ EqualityExpression();
+ label_28:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BIT_AND:
+ ;
+ break;
+ default:
+ break label_28;
+ }
+ jj_consume_token(BIT_AND);
+ EqualityExpression();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void EqualityExpression() throws ParseException {
+ /*@bgen(jjtree) EqualityExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTEQUALITYEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ InstanceOfExpression();
+ label_29:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case EQ:
+ case NE:
+ ;
+ break;
+ default:
+ break label_29;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case EQ:
+ jj_consume_token(EQ);
+ break;
+ case NE:
+ jj_consume_token(NE);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ InstanceOfExpression();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void InstanceOfExpression() throws ParseException {
+ /*@bgen(jjtree) InstanceOfExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTINSTANCEOFEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ RelationalExpression();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case INSTANCEOF:
+ jj_consume_token(INSTANCEOF);
+ Type();
+ break;
+ default:
+ ;
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void RelationalExpression() throws ParseException {
+ /*@bgen(jjtree) RelationalExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTRELATIONALEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ ShiftExpression();
+ label_30:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LT:
+ case LE:
+ case GE:
+ case GT:
+ ;
+ break;
+ default:
+ break label_30;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LT:
+ jj_consume_token(LT);
+ break;
+ case GT:
+ jj_consume_token(GT);
+ break;
+ case LE:
+ jj_consume_token(LE);
+ break;
+ case GE:
+ jj_consume_token(GE);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ ShiftExpression();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ShiftExpression() throws ParseException {
+ /*@bgen(jjtree) ShiftExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTSHIFTEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ AdditiveExpression();
+ label_31:
+ while (true) {
+ if (jj_2_22(1)) {
+ ;
+ } else {
+ break label_31;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LSHIFT:
+ jj_consume_token(LSHIFT);
+ break;
+ default:
+ if (jj_2_23(1)) {
+ RSIGNEDSHIFT();
+ } else if (jj_2_24(1)) {
+ RUNSIGNEDSHIFT();
+ } else {
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ AdditiveExpression();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void AdditiveExpression() throws ParseException {
+ /*@bgen(jjtree) AdditiveExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTADDITIVEEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ MultiplicativeExpression();
+ label_32:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case PLUS:
+ case MINUS:
+ ;
+ break;
+ default:
+ break label_32;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case PLUS:
+ jj_consume_token(PLUS);
+ break;
+ case MINUS:
+ jj_consume_token(MINUS);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ MultiplicativeExpression();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void MultiplicativeExpression() throws ParseException {
+ /*@bgen(jjtree) MultiplicativeExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTMULTIPLICATIVEEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ UnaryExpression();
+ label_33:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case STAR:
+ case SLASH:
+ case REM:
+ ;
+ break;
+ default:
+ break label_33;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case STAR:
+ jj_consume_token(STAR);
+ break;
+ case SLASH:
+ jj_consume_token(SLASH);
+ break;
+ case REM:
+ jj_consume_token(REM);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ UnaryExpression();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void UnaryExpression() throws ParseException {
+ /*@bgen(jjtree) UnaryExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTUNARYEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case PLUS:
+ case MINUS:
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case PLUS:
+ jj_consume_token(PLUS);
+ break;
+ case MINUS:
+ jj_consume_token(MINUS);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ UnaryExpression();
+ break;
+ case INCR:
+ PreIncrementExpression();
+ break;
+ case DECR:
+ PreDecrementExpression();
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ UnaryExpressionNotPlusMinus();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void PreIncrementExpression() throws ParseException {
+ /*@bgen(jjtree) PreIncrementExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTPREINCREMENTEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(INCR);
+ PrimaryExpression();
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void PreDecrementExpression() throws ParseException {
+ /*@bgen(jjtree) PreDecrementExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTPREDECREMENTEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(DECR);
+ PrimaryExpression();
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void UnaryExpressionNotPlusMinus() throws ParseException {
+ /*@bgen(jjtree) UnaryExpressionNotPlusMinus */
+ SimpleNode jjtn000 = new SimpleNode(JJTUNARYEXPRESSIONNOTPLUSMINUS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BANG:
+ case TILDE:
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case TILDE:
+ jj_consume_token(TILDE);
+ break;
+ case BANG:
+ jj_consume_token(BANG);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ UnaryExpression();
+ break;
+ default:
+ if (jj_2_25(2147483647)) {
+ CastExpression();
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ PostfixExpression();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+// This production is to determine lookahead only. The LOOKAHEAD specifications
+// below are not used, but they are there just to indicate that we know about
+
+ // this.
+ final public void CastLookahead() throws ParseException {
+ /*@bgen(jjtree) CastLookahead */
+ SimpleNode jjtn000 = new SimpleNode(JJTCASTLOOKAHEAD);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ if (jj_2_26(2)) {
+ jj_consume_token(LPAREN);
+ PrimitiveType();
+ } else if (jj_2_27(2147483647)) {
+ jj_consume_token(LPAREN);
+ Type();
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LPAREN:
+ jj_consume_token(LPAREN);
+ Type();
+ jj_consume_token(RPAREN);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case TILDE:
+ jj_consume_token(TILDE);
+ break;
+ case BANG:
+ jj_consume_token(BANG);
+ break;
+ case LPAREN:
+ jj_consume_token(LPAREN);
+ break;
+ case IDENTIFIER:
+ jj_consume_token(IDENTIFIER);
+ break;
+ case THIS:
+ jj_consume_token(THIS);
+ break;
+ case SUPER:
+ jj_consume_token(SUPER);
+ break;
+ case NEW:
+ jj_consume_token(NEW);
+ break;
+ case FALSE:
+ case NULL:
+ case TRUE:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ Literal();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void PostfixExpression() throws ParseException {
+ /*@bgen(jjtree) PostfixExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTPOSTFIXEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ PrimaryExpression();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case INCR:
+ case DECR:
+ PostfixOperator();
+ break;
+ default:
+ ;
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void PostfixOperator() throws ParseException {
+ /*@bgen(jjtree) PostfixOperator */
+ SimpleNode jjtn000 = new SimpleNode(JJTPOSTFIXOPERATOR);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case INCR:
+ jj_consume_token(INCR);
+ break;
+ case DECR:
+ jj_consume_token(DECR);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void CastExpression() throws ParseException {
+ /*@bgen(jjtree) CastExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTCASTEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ if (jj_2_28(2147483647)) {
+ jj_consume_token(LPAREN);
+ Type();
+ jj_consume_token(RPAREN);
+ UnaryExpression();
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LPAREN:
+ jj_consume_token(LPAREN);
+ Type();
+ jj_consume_token(RPAREN);
+ UnaryExpressionNotPlusMinus();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void PrimaryExpression() throws ParseException {
+ /*@bgen(jjtree) PrimaryExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTPRIMARYEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ PrimaryPrefix();
+ label_34:
+ while (true) {
+ if (jj_2_29(2)) {
+ ;
+ } else {
+ break label_34;
+ }
+ PrimarySuffix();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void MemberSelector() throws ParseException {
+ /*@bgen(jjtree) MemberSelector */
+ SimpleNode jjtn000 = new SimpleNode(JJTMEMBERSELECTOR);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(DOT);
+ TypeArguments();
+ jj_consume_token(IDENTIFIER);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void PrimaryPrefix() throws ParseException {
+ /*@bgen(jjtree) PrimaryPrefix */
+ SimpleNode jjtn000 = new SimpleNode(JJTPRIMARYPREFIX);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case FALSE:
+ case NULL:
+ case TRUE:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ Literal();
+ break;
+ default:
+ if (jj_2_30(2147483647)) {
+ label_35:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IDENTIFIER:
+ ;
+ break;
+ default:
+ break label_35;
+ }
+ jj_consume_token(IDENTIFIER);
+ jj_consume_token(DOT);
+ }
+ jj_consume_token(THIS);
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case SUPER:
+ jj_consume_token(SUPER);
+ jj_consume_token(DOT);
+ jj_consume_token(IDENTIFIER);
+ break;
+ case LPAREN:
+ jj_consume_token(LPAREN);
+ Expression();
+ jj_consume_token(RPAREN);
+ break;
+ case NEW:
+ AllocationExpression();
+ break;
+ default:
+ if (jj_2_31(2147483647)) {
+ ResultType();
+ jj_consume_token(DOT);
+ jj_consume_token(CLASS);
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IDENTIFIER:
+ Name();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ }
+ }
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void PrimarySuffix() throws ParseException {
+ /*@bgen(jjtree) PrimarySuffix */
+ SimpleNode jjtn000 = new SimpleNode(JJTPRIMARYSUFFIX);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ if (jj_2_32(2147483647)) {
+ jj_consume_token(DOT);
+ jj_consume_token(SUPER);
+ } else if (jj_2_33(2147483647)) {
+ jj_consume_token(DOT);
+ jj_consume_token(THIS);
+ } else if (jj_2_34(2)) {
+ jj_consume_token(DOT);
+ AllocationExpression();
+ } else if (jj_2_35(3)) {
+ MemberSelector();
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LBRACKET:
+ jj_consume_token(LBRACKET);
+ Expression();
+ jj_consume_token(RBRACKET);
+ break;
+ case DOT:
+ jj_consume_token(DOT);
+ jj_consume_token(IDENTIFIER);
+ break;
+ case LPAREN:
+ Arguments();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void Literal() throws ParseException {
+ /*@bgen(jjtree) Literal */
+ SimpleNode jjtn000 = new SimpleNode(JJTLITERAL);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case INTEGER_LITERAL:
+ jj_consume_token(INTEGER_LITERAL);
+ break;
+ case FLOATING_POINT_LITERAL:
+ jj_consume_token(FLOATING_POINT_LITERAL);
+ break;
+ case CHARACTER_LITERAL:
+ jj_consume_token(CHARACTER_LITERAL);
+ break;
+ case STRING_LITERAL:
+ jj_consume_token(STRING_LITERAL);
+ break;
+ case FALSE:
+ case TRUE:
+ BooleanLiteral();
+ break;
+ case NULL:
+ NullLiteral();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void BooleanLiteral() throws ParseException {
+ /*@bgen(jjtree) BooleanLiteral */
+ SimpleNode jjtn000 = new SimpleNode(JJTBOOLEANLITERAL);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case TRUE:
+ jj_consume_token(TRUE);
+ break;
+ case FALSE:
+ jj_consume_token(FALSE);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void NullLiteral() throws ParseException {
+ /*@bgen(jjtree) NullLiteral */
+ SimpleNode jjtn000 = new SimpleNode(JJTNULLLITERAL);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(NULL);
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void Arguments() throws ParseException {
+ /*@bgen(jjtree) Arguments */
+ SimpleNode jjtn000 = new SimpleNode(JJTARGUMENTS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(LPAREN);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ ArgumentList();
+ break;
+ default:
+ ;
+ }
+ jj_consume_token(RPAREN);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ArgumentList() throws ParseException {
+ /*@bgen(jjtree) ArgumentList */
+ SimpleNode jjtn000 = new SimpleNode(JJTARGUMENTLIST);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ Expression();
+ label_36:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ break label_36;
+ }
+ jj_consume_token(COMMA);
+ Expression();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void AllocationExpression() throws ParseException {
+ /*@bgen(jjtree) AllocationExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTALLOCATIONEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ if (jj_2_36(2)) {
+ jj_consume_token(NEW);
+ PrimitiveType();
+ ArrayDimsAndInits();
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case NEW:
+ jj_consume_token(NEW);
+ ClassOrInterfaceType();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LT:
+ TypeArguments();
+ break;
+ default:
+ ;
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LBRACKET:
+ ArrayDimsAndInits();
+ break;
+ case LPAREN:
+ Arguments();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LBRACE:
+ ClassOrInterfaceBody(false);
+ break;
+ default:
+ ;
+ }
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ /*
+ * The third LOOKAHEAD specification below is to parse to PrimarySuffix
+ * if there is an expression between the "[...]".
+ */
+ final public void ArrayDimsAndInits() throws ParseException {
+ /*@bgen(jjtree) ArrayDimsAndInits */
+ SimpleNode jjtn000 = new SimpleNode(JJTARRAYDIMSANDINITS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ if (jj_2_39(2)) {
+ label_37:
+ while (true) {
+ jj_consume_token(LBRACKET);
+ Expression();
+ jj_consume_token(RBRACKET);
+ if (jj_2_37(2)) {
+ ;
+ } else {
+ break label_37;
+ }
+ }
+ label_38:
+ while (true) {
+ if (jj_2_38(2)) {
+ ;
+ } else {
+ break label_38;
+ }
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ }
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LBRACKET:
+ label_39:
+ while (true) {
+ jj_consume_token(LBRACKET);
+ jj_consume_token(RBRACKET);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case LBRACKET:
+ ;
+ break;
+ default:
+ break label_39;
+ }
+ }
+ ArrayInitializer();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ /*
+ * Statement syntax follows.
+ */
+ final public void Statement() throws ParseException {
+ /*@bgen(jjtree) Statement */
+ SimpleNode jjtn000 = new SimpleNode(JJTSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ if (jj_2_40(2)) {
+ LabeledStatement();
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ASSERT:
+ AssertStatement();
+ break;
+ case LBRACE:
+ Block();
+ break;
+ case SEMICOLON:
+ EmptyStatement();
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case INCR:
+ case DECR:
+ StatementExpression();
+ jj_consume_token(SEMICOLON);
+ break;
+ case SWITCH:
+ SwitchStatement();
+ break;
+ case IF:
+ IfStatement();
+ break;
+ case WHILE:
+ WhileStatement();
+ break;
+ case DO:
+ DoStatement();
+ break;
+ case FOR:
+ ForStatement();
+ break;
+ case BREAK:
+ BreakStatement();
+ break;
+ case CONTINUE:
+ ContinueStatement();
+ break;
+ case RETURN:
+ ReturnStatement();
+ break;
+ case THROW:
+ ThrowStatement();
+ break;
+ case SYNCHRONIZED:
+ SynchronizedStatement();
+ break;
+ case TRY:
+ TryStatement();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void AssertStatement() throws ParseException {
+ /*@bgen(jjtree) AssertStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTASSERTSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(ASSERT);
+ Expression();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COLON:
+ jj_consume_token(COLON);
+ Expression();
+ break;
+ default:
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void LabeledStatement() throws ParseException {
+ /*@bgen(jjtree) LabeledStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTLABELEDSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(IDENTIFIER);
+ jj_consume_token(COLON);
+ Statement();
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void Block() throws ParseException {
+ /*@bgen(jjtree) Block */
+ SimpleNode jjtn000 = new SimpleNode(JJTBLOCK);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(LBRACE);
+ label_40:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case ASSERT:
+ case BOOLEAN:
+ case BREAK:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case CONTINUE:
+ case DO:
+ case DOUBLE:
+ case FALSE:
+ case FINAL:
+ case FLOAT:
+ case FOR:
+ case IF:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case NEW:
+ case NULL:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case RETURN:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SUPER:
+ case SWITCH:
+ case SYNCHRONIZED:
+ case THIS:
+ case THROW:
+ case TRANSIENT:
+ case TRUE:
+ case TRY:
+ case VOID:
+ case VOLATILE:
+ case WHILE:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LBRACE:
+ case SEMICOLON:
+ case AT:
+ case INCR:
+ case DECR:
+ ;
+ break;
+ default:
+ break label_40;
+ }
+ BlockStatement();
+ }
+ jj_consume_token(RBRACE);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void BlockStatement() throws ParseException {
+ /*@bgen(jjtree) BlockStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTBLOCKSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ if (jj_2_41(2147483647)) {
+ LocalVariableDeclaration();
+ jj_consume_token(SEMICOLON);
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ASSERT:
+ case BOOLEAN:
+ case BREAK:
+ case BYTE:
+ case CHAR:
+ case CONTINUE:
+ case DO:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case FOR:
+ case IF:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case RETURN:
+ case SHORT:
+ case SUPER:
+ case SWITCH:
+ case SYNCHRONIZED:
+ case THIS:
+ case THROW:
+ case TRUE:
+ case TRY:
+ case VOID:
+ case WHILE:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LBRACE:
+ case SEMICOLON:
+ case INCR:
+ case DECR:
+ Statement();
+ break;
+ case CLASS:
+ case INTERFACE:
+ ClassOrInterfaceDeclaration(0);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void LocalVariableDeclaration() throws ParseException {
+ /*@bgen(jjtree) LocalVariableDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTLOCALVARIABLEDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ Modifiers();
+ Type();
+ VariableDeclarator();
+ label_41:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ break label_41;
+ }
+ jj_consume_token(COMMA);
+ VariableDeclarator();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void EmptyStatement() throws ParseException {
+ /*@bgen(jjtree) EmptyStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTEMPTYSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(SEMICOLON);
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void StatementExpression() throws ParseException {
+ /*@bgen(jjtree) StatementExpression */
+ SimpleNode jjtn000 = new SimpleNode(JJTSTATEMENTEXPRESSION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case INCR:
+ PreIncrementExpression();
+ break;
+ case DECR:
+ PreDecrementExpression();
+ break;
+ default:
+ if (jj_2_42(2147483647)) {
+ AssignmentExpression();
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ PostfixExpression();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void SwitchStatement() throws ParseException {
+ /*@bgen(jjtree) SwitchStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTSWITCHSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(SWITCH);
+ jj_consume_token(LPAREN);
+ Expression();
+ jj_consume_token(RPAREN);
+ jj_consume_token(LBRACE);
+ label_42:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case CASE:
+ case _DEFAULT:
+ ;
+ break;
+ default:
+ break label_42;
+ }
+ SwitchLabel();
+ label_43:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case ASSERT:
+ case BOOLEAN:
+ case BREAK:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case CONTINUE:
+ case DO:
+ case DOUBLE:
+ case FALSE:
+ case FINAL:
+ case FLOAT:
+ case FOR:
+ case IF:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case NEW:
+ case NULL:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case RETURN:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SUPER:
+ case SWITCH:
+ case SYNCHRONIZED:
+ case THIS:
+ case THROW:
+ case TRANSIENT:
+ case TRUE:
+ case TRY:
+ case VOID:
+ case VOLATILE:
+ case WHILE:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case LBRACE:
+ case SEMICOLON:
+ case AT:
+ case INCR:
+ case DECR:
+ ;
+ break;
+ default:
+ break label_43;
+ }
+ BlockStatement();
+ }
+ }
+ jj_consume_token(RBRACE);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void SwitchLabel() throws ParseException {
+ /*@bgen(jjtree) SwitchLabel */
+ SimpleNode jjtn000 = new SimpleNode(JJTSWITCHLABEL);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case CASE:
+ jj_consume_token(CASE);
+ Expression();
+ jj_consume_token(COLON);
+ break;
+ case _DEFAULT:
+ jj_consume_token(_DEFAULT);
+ jj_consume_token(COLON);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void IfStatement() throws ParseException {
+ /*@bgen(jjtree) IfStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTIFSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(IF);
+ jj_consume_token(LPAREN);
+ Expression();
+ jj_consume_token(RPAREN);
+ Statement();
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ELSE:
+ jj_consume_token(ELSE);
+ Statement();
+ break;
+ default:
+ ;
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void WhileStatement() throws ParseException {
+ /*@bgen(jjtree) WhileStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTWHILESTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(WHILE);
+ jj_consume_token(LPAREN);
+ Expression();
+ jj_consume_token(RPAREN);
+ Statement();
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void DoStatement() throws ParseException {
+ /*@bgen(jjtree) DoStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTDOSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(DO);
+ Statement();
+ jj_consume_token(WHILE);
+ jj_consume_token(LPAREN);
+ Expression();
+ jj_consume_token(RPAREN);
+ jj_consume_token(SEMICOLON);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ForStatement() throws ParseException {
+ /*@bgen(jjtree) ForStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTFORSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(FOR);
+ jj_consume_token(LPAREN);
+ if (jj_2_43(2147483647)) {
+ Modifiers();
+ Type();
+ jj_consume_token(IDENTIFIER);
+ jj_consume_token(COLON);
+ Expression();
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NATIVE:
+ case NEW:
+ case NULL:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SUPER:
+ case SYNCHRONIZED:
+ case THIS:
+ case TRANSIENT:
+ case TRUE:
+ case VOID:
+ case VOLATILE:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case SEMICOLON:
+ case AT:
+ case INCR:
+ case DECR:
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NATIVE:
+ case NEW:
+ case NULL:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SUPER:
+ case SYNCHRONIZED:
+ case THIS:
+ case TRANSIENT:
+ case TRUE:
+ case VOID:
+ case VOLATILE:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case AT:
+ case INCR:
+ case DECR:
+ ForInit();
+ break;
+ default:
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ Expression();
+ break;
+ default:
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case INCR:
+ case DECR:
+ ForUpdate();
+ break;
+ default:
+ ;
+ }
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ jj_consume_token(RPAREN);
+ Statement();
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ForInit() throws ParseException {
+ /*@bgen(jjtree) ForInit */
+ SimpleNode jjtn000 = new SimpleNode(JJTFORINIT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ if (jj_2_44(2147483647)) {
+ LocalVariableDeclaration();
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case INCR:
+ case DECR:
+ StatementExpressionList();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void StatementExpressionList() throws ParseException {
+ /*@bgen(jjtree) StatementExpressionList */
+ SimpleNode jjtn000 = new SimpleNode(JJTSTATEMENTEXPRESSIONLIST);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ StatementExpression();
+ label_44:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ break label_44;
+ }
+ jj_consume_token(COMMA);
+ StatementExpression();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ForUpdate() throws ParseException {
+ /*@bgen(jjtree) ForUpdate */
+ SimpleNode jjtn000 = new SimpleNode(JJTFORUPDATE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ StatementExpressionList();
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void BreakStatement() throws ParseException {
+ /*@bgen(jjtree) BreakStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTBREAKSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(BREAK);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IDENTIFIER:
+ jj_consume_token(IDENTIFIER);
+ break;
+ default:
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ContinueStatement() throws ParseException {
+ /*@bgen(jjtree) ContinueStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTCONTINUESTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(CONTINUE);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IDENTIFIER:
+ jj_consume_token(IDENTIFIER);
+ break;
+ default:
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ReturnStatement() throws ParseException {
+ /*@bgen(jjtree) ReturnStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTRETURNSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(RETURN);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ Expression();
+ break;
+ default:
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void ThrowStatement() throws ParseException {
+ /*@bgen(jjtree) ThrowStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTTHROWSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(THROW);
+ Expression();
+ jj_consume_token(SEMICOLON);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void SynchronizedStatement() throws ParseException {
+ /*@bgen(jjtree) SynchronizedStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTSYNCHRONIZEDSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(SYNCHRONIZED);
+ jj_consume_token(LPAREN);
+ Expression();
+ jj_consume_token(RPAREN);
+ Block();
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void TryStatement() throws ParseException {
+ /*@bgen(jjtree) TryStatement */
+ SimpleNode jjtn000 = new SimpleNode(JJTTRYSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(TRY);
+ Block();
+ label_45:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case CATCH:
+ ;
+ break;
+ default:
+ break label_45;
+ }
+ jj_consume_token(CATCH);
+ jj_consume_token(LPAREN);
+ FormalParameter();
+ jj_consume_token(RPAREN);
+ Block();
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case FINALLY:
+ jj_consume_token(FINALLY);
+ Block();
+ break;
+ default:
+ ;
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ /* We use productions to match >>>, >> and > so that we can keep the
+ * type declaration syntax with generics clean
+ */
+ final public void RUNSIGNEDSHIFT() throws ParseException {
+ /*@bgen(jjtree) RUNSIGNEDSHIFT */
+ SimpleNode jjtn000 = new SimpleNode(JJTRUNSIGNEDSHIFT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ if (getToken(1).kind == GT &&
+ ((Token.GTToken) getToken(1)).realKind == RUNSIGNEDSHIFT) {
+
+ } else {
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ jj_consume_token(GT);
+ jj_consume_token(GT);
+ jj_consume_token(GT);
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void RSIGNEDSHIFT() throws ParseException {
+ /*@bgen(jjtree) RSIGNEDSHIFT */
+ SimpleNode jjtn000 = new SimpleNode(JJTRSIGNEDSHIFT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ if (getToken(1).kind == GT &&
+ ((Token.GTToken) getToken(1)).realKind == RSIGNEDSHIFT) {
+
+ } else {
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ jj_consume_token(GT);
+ jj_consume_token(GT);
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ /* Annotation syntax follows. */
+ final public void Annotation() throws ParseException {
+ /*@bgen(jjtree) Annotation */
+ SimpleNode jjtn000 = new SimpleNode(JJTANNOTATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ if (jj_2_45(2147483647)) {
+ NormalAnnotation();
+ } else if (jj_2_46(2147483647)) {
+ SingleMemberAnnotation();
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case AT:
+ MarkerAnnotation();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void NormalAnnotation() throws ParseException {
+ /*@bgen(jjtree) NormalAnnotation */
+ SimpleNode jjtn000 = new SimpleNode(JJTNORMALANNOTATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(AT);
+ Name();
+ jj_consume_token(LPAREN);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case IDENTIFIER:
+ MemberValuePairs();
+ break;
+ default:
+ ;
+ }
+ jj_consume_token(RPAREN);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void MarkerAnnotation() throws ParseException {
+ /*@bgen(jjtree) MarkerAnnotation */
+ SimpleNode jjtn000 = new SimpleNode(JJTMARKERANNOTATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(AT);
+ Name();
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void SingleMemberAnnotation() throws ParseException {
+ /*@bgen(jjtree) SingleMemberAnnotation */
+ SimpleNode jjtn000 = new SimpleNode(JJTSINGLEMEMBERANNOTATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(AT);
+ Name();
+ jj_consume_token(LPAREN);
+ MemberValue();
+ jj_consume_token(RPAREN);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void MemberValuePairs() throws ParseException {
+ /*@bgen(jjtree) MemberValuePairs */
+ SimpleNode jjtn000 = new SimpleNode(JJTMEMBERVALUEPAIRS);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ MemberValuePair();
+ label_46:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ ;
+ break;
+ default:
+ break label_46;
+ }
+ jj_consume_token(COMMA);
+ MemberValuePair();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void MemberValuePair() throws ParseException {
+ /*@bgen(jjtree) MemberValuePair */
+ SimpleNode jjtn000 = new SimpleNode(JJTMEMBERVALUEPAIR);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(IDENTIFIER);
+ jj_consume_token(ASSIGN);
+ MemberValue();
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void MemberValue() throws ParseException {
+ /*@bgen(jjtree) MemberValue */
+ SimpleNode jjtn000 = new SimpleNode(JJTMEMBERVALUE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case AT:
+ Annotation();
+ break;
+ case LBRACE:
+ MemberValueArrayInitializer();
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FALSE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case NEW:
+ case NULL:
+ case SHORT:
+ case SUPER:
+ case THIS:
+ case TRUE:
+ case VOID:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ case IDENTIFIER:
+ case LPAREN:
+ case BANG:
+ case TILDE:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ ConditionalExpression();
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void MemberValueArrayInitializer() throws ParseException {
+ /*@bgen(jjtree) MemberValueArrayInitializer */
+ SimpleNode jjtn000 = new SimpleNode(JJTMEMBERVALUEARRAYINITIALIZER);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(LBRACE);
+ MemberValue();
+ label_47:
+ while (true) {
+ if (jj_2_47(2)) {
+ ;
+ } else {
+ break label_47;
+ }
+ jj_consume_token(COMMA);
+ MemberValue();
+ }
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case COMMA:
+ jj_consume_token(COMMA);
+ break;
+ default:
+ ;
+ }
+ jj_consume_token(RBRACE);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ /* Annotation Types. */
+ final public void AnnotationTypeDeclaration(int modifiers) throws ParseException {
+ /*@bgen(jjtree) AnnotationTypeDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTANNOTATIONTYPEDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(AT);
+ jj_consume_token(INTERFACE);
+ jj_consume_token(IDENTIFIER);
+ AnnotationTypeBody();
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void AnnotationTypeBody() throws ParseException {
+ /*@bgen(jjtree) AnnotationTypeBody */
+ SimpleNode jjtn000 = new SimpleNode(JJTANNOTATIONTYPEBODY);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(LBRACE);
+ label_48:
+ while (true) {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case IDENTIFIER:
+ case SEMICOLON:
+ case AT:
+ ;
+ break;
+ default:
+ break label_48;
+ }
+ AnnotationTypeMemberDeclaration();
+ }
+ jj_consume_token(RBRACE);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void AnnotationTypeMemberDeclaration() throws ParseException {
+ /*@bgen(jjtree) AnnotationTypeMemberDeclaration */
+ SimpleNode jjtn000 = new SimpleNode(JJTANNOTATIONTYPEMEMBERDECLARATION);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ int modifiers;
+ try {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case ABSTRACT:
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case CLASS:
+ case DOUBLE:
+ case ENUM:
+ case FINAL:
+ case FLOAT:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SYNCHRONIZED:
+ case TRANSIENT:
+ case VOLATILE:
+ case IDENTIFIER:
+ case AT:
+ modifiers = Modifiers();
+ if (jj_2_48(2147483647)) {
+ Type();
+ jj_consume_token(IDENTIFIER);
+ jj_consume_token(LPAREN);
+ jj_consume_token(RPAREN);
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case _DEFAULT:
+ DefaultValue();
+ break;
+ default:
+ ;
+ }
+ jj_consume_token(SEMICOLON);
+ } else {
+ switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+ case CLASS:
+ case INTERFACE:
+ ClassOrInterfaceDeclaration(modifiers);
+ break;
+ case ENUM:
+ EnumDeclaration(modifiers);
+ break;
+ case AT:
+ AnnotationTypeDeclaration(modifiers);
+ break;
+ case BOOLEAN:
+ case BYTE:
+ case CHAR:
+ case DOUBLE:
+ case FLOAT:
+ case INT:
+ case LONG:
+ case SHORT:
+ case IDENTIFIER:
+ FieldDeclaration(modifiers);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+ break;
+ case SEMICOLON:
+ jj_consume_token(SEMICOLON);
+ break;
+ default:
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final public void DefaultValue() throws ParseException {
+ /*@bgen(jjtree) DefaultValue */
+ SimpleNode jjtn000 = new SimpleNode(JJTDEFAULTVALUE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ jjtreeOpenNodeScope(jjtn000);
+ try {
+ jj_consume_token(_DEFAULT);
+ MemberValue();
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {
+ if (true) throw (RuntimeException) jjte000;
+ }
+ }
+ if (jjte000 instanceof ParseException) {
+ {
+ if (true) throw (ParseException) jjte000;
+ }
+ }
+ {
+ if (true) throw (Error) jjte000;
+ }
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtreeCloseNodeScope(jjtn000);
+ }
+ }
+ }
+
+ final private boolean jj_2_1(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_1();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_2(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_2();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_3(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_3();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_4(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_4();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_5(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_5();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_6(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_6();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_7(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_7();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_8(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_8();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_9(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_9();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_10(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_10();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_11(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_11();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_12(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_12();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_13(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_13();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_14(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_14();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_15(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_15();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_16(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_16();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_17(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_17();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_18(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_18();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_19(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_19();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_20(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_20();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_21(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_21();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_22(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_22();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_23(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_23();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_24(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_24();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_25(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_25();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_26(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_26();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_27(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_27();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_28(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_28();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_29(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_29();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_30(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_30();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_31(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_31();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_32(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_32();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_33(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_33();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_34(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_34();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_35(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_35();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_36(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_36();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_37(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_37();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_38(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_38();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_39(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_39();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_40(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_40();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_41(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_41();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_42(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_42();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_43(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_43();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_44(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_44();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_45(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_45();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_46(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_46();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_47(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_47();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_2_48(int xla) {
+ jj_la = xla;
+ jj_lastpos = jj_scanpos = token;
+ try {
+ return !jj_3_48();
+ }
+ catch (LookaheadSuccess ls) {
+ return true;
+ }
+ }
+
+ final private boolean jj_3R_56() {
+ if (jj_3R_101()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_21()) jj_scanpos = xsp;
+ return false;
+ }
+
+ final private boolean jj_3R_135() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_91()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_99() {
+ if (jj_3R_91()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_135()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3_20() {
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_91() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_20()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_122() {
+ if (jj_3R_72()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_86() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(58)) {
+ jj_scanpos = xsp;
+ if (jj_3R_122()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3_19() {
+ if (jj_3R_78()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_83() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(10)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(15)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(12)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(46)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(35)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(37)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(28)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(21)) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_194() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_112()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_290() {
+ if (jj_scan_token(SUPER)) return true;
+ if (jj_3R_77()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_16() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_289() {
+ if (jj_scan_token(EXTENDS)) return true;
+ if (jj_3R_77()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_277() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_289()) {
+ jj_scanpos = xsp;
+ if (jj_3R_290()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_256() {
+ if (jj_3R_277()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_151() {
+ if (jj_scan_token(HOOK)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_256()) jj_scanpos = xsp;
+ return false;
+ }
+
+ final private boolean jj_3_17() {
+ if (jj_3R_78()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_112() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_150()) {
+ jj_scanpos = xsp;
+ if (jj_3R_151()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_150() {
+ if (jj_3R_77()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_15() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_78() {
+ if (jj_scan_token(LT)) return true;
+ if (jj_3R_112()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_194()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(GT)) return true;
+ return false;
+ }
+
+ final private boolean jj_3_18() {
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_19()) jj_scanpos = xsp;
+ return false;
+ }
+
+ final private boolean jj_3R_149() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_17()) jj_scanpos = xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_18()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_111() {
+ if (jj_3R_149()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_16()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_110() {
+ if (jj_3R_83()) return true;
+ Token xsp;
+ if (jj_3_15()) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_15()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_77() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_110()) {
+ jj_scanpos = xsp;
+ if (jj_3R_111()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3_13() {
+ if (jj_scan_token(THIS)) return true;
+ if (jj_scan_token(DOT)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_221() {
+ if (jj_scan_token(THROWS)) return true;
+ if (jj_3R_99()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_103() {
+ if (jj_3R_83()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_72() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_14()) {
+ jj_scanpos = xsp;
+ if (jj_3R_103()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3_14() {
+ if (jj_3R_77()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_74() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(47)) jj_scanpos = xsp;
+ if (jj_3R_104()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_12() {
+ if (jj_3R_76()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_108() {
+ if (jj_3R_78()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_107() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(DOT)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_252() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_76() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_107()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ xsp = jj_scanpos;
+ if (jj_3_13()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_108()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(52)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(49)) return true;
+ }
+ if (jj_3R_109()) return true;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_134() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_133()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_223() {
+ if (jj_3R_49()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_222() {
+ if (jj_3R_76()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_220() {
+ if (jj_3R_97()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_186() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_220()) jj_scanpos = xsp;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_3R_53()) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_221()) jj_scanpos = xsp;
+ if (jj_scan_token(LBRACE)) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_222()) jj_scanpos = xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_223()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ final private boolean jj_3_11() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_75()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_227() {
+ if (jj_scan_token(THROWS)) return true;
+ if (jj_3R_99()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_98() {
+ if (jj_3R_133()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_134()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_133() {
+ if (jj_3R_50()) return true;
+ if (jj_3R_72()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(119)) jj_scanpos = xsp;
+ if (jj_3R_184()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_53() {
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_98()) jj_scanpos = xsp;
+ if (jj_scan_token(RPAREN)) return true;
+ return false;
+ }
+
+ final private boolean jj_3_48() {
+ if (jj_3R_72()) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_226() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_3R_53()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_252()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_228() {
+ if (jj_3R_104()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_225() {
+ if (jj_3R_97()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_292() {
+ if (jj_3R_75()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_11()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_188() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_225()) jj_scanpos = xsp;
+ if (jj_3R_86()) return true;
+ if (jj_3R_226()) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_227()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_228()) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(81)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_198() {
+ if (jj_scan_token(ASSIGN)) return true;
+ if (jj_3R_75()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_224() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_161()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_47() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_93()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_217() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_147() {
+ if (jj_scan_token(LBRACE)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_292()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(82)) jj_scanpos = xsp;
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_73() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_106() {
+ if (jj_3R_56()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_105() {
+ if (jj_3R_147()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_75() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_105()) {
+ jj_scanpos = xsp;
+ if (jj_3R_106()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_184() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_217()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_160() {
+ if (jj_scan_token(LBRACE)) return true;
+ if (jj_3R_93()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_47()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ xsp = jj_scanpos;
+ if (jj_scan_token(82)) jj_scanpos = xsp;
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_276() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_275()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_161() {
+ if (jj_3R_184()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_198()) jj_scanpos = xsp;
+ return false;
+ }
+
+ final private boolean jj_3R_127() {
+ if (jj_3R_101()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_9() {
+ if (jj_3R_72()) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_73()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ xsp = jj_scanpos;
+ if (jj_scan_token(82)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(85)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(81)) return true;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_126() {
+ if (jj_3R_160()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_71() {
+ if (jj_3R_97()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_93() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_125()) {
+ jj_scanpos = xsp;
+ if (jj_3R_126()) {
+ jj_scanpos = xsp;
+ if (jj_3R_127()) return true;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_125() {
+ if (jj_3R_102()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_8() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_71()) jj_scanpos = xsp;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_187() {
+ if (jj_3R_72()) return true;
+ if (jj_3R_161()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_224()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_275() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(ASSIGN)) return true;
+ if (jj_3R_93()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_140() {
+ if (jj_3R_188()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_139() {
+ if (jj_3R_187()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_249() {
+ if (jj_scan_token(BIT_AND)) return true;
+ if (jj_3R_149()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_138() {
+ if (jj_3R_186()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_255() {
+ if (jj_3R_275()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_276()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_231() {
+ if (jj_3R_255()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_137() {
+ if (jj_3R_185()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_92() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(ASSIGN)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_136() {
+ if (jj_3R_130()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_192() {
+ if (jj_scan_token(AT)) return true;
+ if (jj_3R_91()) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_93()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_286() {
+ if (jj_3R_182()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_100() {
+ if (jj_3R_50()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_136()) {
+ jj_scanpos = xsp;
+ if (jj_3R_137()) {
+ jj_scanpos = xsp;
+ if (jj_3R_138()) {
+ jj_scanpos = xsp;
+ if (jj_3R_139()) {
+ jj_scanpos = xsp;
+ if (jj_3R_140()) return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_193() {
+ if (jj_scan_token(AT)) return true;
+ if (jj_3R_91()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_46() {
+ if (jj_scan_token(AT)) return true;
+ if (jj_3R_91()) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ return false;
+ }
+
+ final private boolean jj_3_10() {
+ if (jj_3R_74()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_55() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_10()) {
+ jj_scanpos = xsp;
+ if (jj_3R_100()) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(81)) return true;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_191() {
+ if (jj_scan_token(AT)) return true;
+ if (jj_3R_91()) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_231()) jj_scanpos = xsp;
+ if (jj_scan_token(RPAREN)) return true;
+ return false;
+ }
+
+ final private boolean jj_3_45() {
+ if (jj_scan_token(AT)) return true;
+ if (jj_3R_91()) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_92()) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(76)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_215() {
+ if (jj_3R_55()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_132() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_131()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_183() {
+ if (jj_3R_216()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_285() {
+ if (jj_3R_109()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_145() {
+ if (jj_3R_193()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_182() {
+ if (jj_scan_token(LBRACE)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_215()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_144() {
+ if (jj_3R_192()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_113() {
+ return false;
+ }
+
+ final private boolean jj_3R_102() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_143()) {
+ jj_scanpos = xsp;
+ if (jj_3R_144()) {
+ jj_scanpos = xsp;
+ if (jj_3R_145()) return true;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_143() {
+ if (jj_3R_191()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_216() {
+ if (jj_scan_token(EXTENDS)) return true;
+ if (jj_3R_149()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_249()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_131() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_183()) jj_scanpos = xsp;
+ return false;
+ }
+
+ final private boolean jj_3R_114() {
+ return false;
+ }
+
+ final private boolean jj_3_7() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_70()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_80() {
+ Token xsp;
+ xsp = jj_scanpos;
+ lookingAhead = true;
+ jj_semLA = getToken(1).kind == GT &&
+ ((Token.GTToken) getToken(1)).realKind == RSIGNEDSHIFT;
+ lookingAhead = false;
+ if (!jj_semLA || jj_3R_113()) return true;
+ if (jj_scan_token(GT)) return true;
+ if (jj_scan_token(GT)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_97() {
+ if (jj_scan_token(LT)) return true;
+ if (jj_3R_131()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_132()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(GT)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_272() {
+ if (jj_3R_55()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_70() {
+ if (jj_3R_50()) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_285()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_286()) jj_scanpos = xsp;
+ return false;
+ }
+
+ final private boolean jj_3R_81() {
+ Token xsp;
+ xsp = jj_scanpos;
+ lookingAhead = true;
+ jj_semLA = getToken(1).kind == GT &&
+ ((Token.GTToken) getToken(1)).realKind == RUNSIGNEDSHIFT;
+ lookingAhead = false;
+ if (!jj_semLA || jj_3R_114()) return true;
+ if (jj_scan_token(GT)) return true;
+ if (jj_scan_token(GT)) return true;
+ if (jj_scan_token(GT)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_251() {
+ if (jj_scan_token(SEMICOLON)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_272()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_250() {
+ if (jj_3R_70()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_7()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_246() {
+ if (jj_scan_token(FINALLY)) return true;
+ if (jj_3R_104()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_219() {
+ if (jj_scan_token(LBRACE)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_250()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(82)) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_251()) jj_scanpos = xsp;
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_245() {
+ if (jj_scan_token(CATCH)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_133()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_104()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_212() {
+ if (jj_scan_token(TRY)) return true;
+ if (jj_3R_104()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_245()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_246()) jj_scanpos = xsp;
+ return false;
+ }
+
+ final private boolean jj_3R_218() {
+ if (jj_3R_214()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_185() {
+ if (jj_scan_token(ENUM)) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_218()) jj_scanpos = xsp;
+ if (jj_3R_219()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_211() {
+ if (jj_scan_token(SYNCHRONIZED)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_56()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_104()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_244() {
+ if (jj_3R_56()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_248() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_149()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_214() {
+ if (jj_scan_token(IMPLEMENTS)) return true;
+ if (jj_3R_149()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_248()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_210() {
+ if (jj_scan_token(THROW)) return true;
+ if (jj_3R_56()) return true;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_271() {
+ if (jj_3R_284()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_299() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_201()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_209() {
+ if (jj_scan_token(RETURN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_244()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_247() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_149()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_213() {
+ if (jj_scan_token(EXTENDS)) return true;
+ if (jj_3R_149()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_247()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_208() {
+ if (jj_scan_token(CONTINUE)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(72)) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_178() {
+ if (jj_scan_token(INTERFACE)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_207() {
+ if (jj_scan_token(BREAK)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(72)) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_181() {
+ if (jj_3R_214()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_180() {
+ if (jj_3R_213()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_179() {
+ if (jj_3R_97()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_284() {
+ if (jj_3R_296()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_270() {
+ if (jj_3R_56()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_130() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(16)) {
+ jj_scanpos = xsp;
+ if (jj_3R_178()) return true;
+ }
+ if (jj_scan_token(IDENTIFIER)) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_179()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_180()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_181()) jj_scanpos = xsp;
+ if (jj_3R_182()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_44() {
+ if (jj_3R_50()) return true;
+ if (jj_3R_72()) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_296() {
+ if (jj_3R_201()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_299()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_241() {
+ if (jj_scan_token(ELSE)) return true;
+ if (jj_3R_129()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_295() {
+ if (jj_3R_296()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_43() {
+ if (jj_3R_50()) return true;
+ if (jj_3R_72()) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(COLON)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_294() {
+ if (jj_3R_128()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_283() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_294()) {
+ jj_scanpos = xsp;
+ if (jj_3R_295()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_269() {
+ if (jj_3R_283()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_243() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_269()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_270()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_271()) jj_scanpos = xsp;
+ return false;
+ }
+
+ final private boolean jj_3R_242() {
+ if (jj_3R_50()) return true;
+ if (jj_3R_72()) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(COLON)) return true;
+ if (jj_3R_56()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_54() {
+ if (jj_scan_token(THROWS)) return true;
+ if (jj_3R_99()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_206() {
+ if (jj_scan_token(FOR)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_242()) {
+ jj_scanpos = xsp;
+ if (jj_3R_243()) return true;
+ }
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_129()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_69() {
+ if (jj_3R_102()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_205() {
+ if (jj_scan_token(DO)) return true;
+ if (jj_3R_129()) return true;
+ if (jj_scan_token(WHILE)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_56()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_68() {
+ if (jj_scan_token(STRICTFP)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_67() {
+ if (jj_scan_token(VOLATILE)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_66() {
+ if (jj_scan_token(TRANSIENT)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_204() {
+ if (jj_scan_token(WHILE)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_56()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_129()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_65() {
+ if (jj_scan_token(NATIVE)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_64() {
+ if (jj_scan_token(SYNCHRONIZED)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_63() {
+ if (jj_scan_token(ABSTRACT)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_268() {
+ if (jj_3R_49()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_203() {
+ if (jj_scan_token(IF)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_56()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_129()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_241()) jj_scanpos = xsp;
+ return false;
+ }
+
+ final private boolean jj_3R_62() {
+ if (jj_scan_token(FINAL)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_61() {
+ if (jj_scan_token(PRIVATE)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_162() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_161()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_60() {
+ if (jj_scan_token(PROTECTED)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_59() {
+ if (jj_scan_token(STATIC)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_58() {
+ if (jj_scan_token(PUBLIC)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_282() {
+ if (jj_scan_token(_DEFAULT)) return true;
+ if (jj_scan_token(COLON)) return true;
+ return false;
+ }
+
+ final private boolean jj_3_6() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_58()) {
+ jj_scanpos = xsp;
+ if (jj_3R_59()) {
+ jj_scanpos = xsp;
+ if (jj_3R_60()) {
+ jj_scanpos = xsp;
+ if (jj_3R_61()) {
+ jj_scanpos = xsp;
+ if (jj_3R_62()) {
+ jj_scanpos = xsp;
+ if (jj_3R_63()) {
+ jj_scanpos = xsp;
+ if (jj_3R_64()) {
+ jj_scanpos = xsp;
+ if (jj_3R_65()) {
+ jj_scanpos = xsp;
+ if (jj_3R_66()) {
+ jj_scanpos = xsp;
+ if (jj_3R_67()) {
+ jj_scanpos = xsp;
+ if (jj_3R_68()) {
+ jj_scanpos = xsp;
+ if (jj_3R_69()) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_281() {
+ if (jj_scan_token(CASE)) return true;
+ if (jj_3R_56()) return true;
+ if (jj_scan_token(COLON)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_267() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_281()) {
+ jj_scanpos = xsp;
+ if (jj_3R_282()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_50() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_6()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_240() {
+ if (jj_3R_267()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_268()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3_42() {
+ if (jj_3R_90()) return true;
+ if (jj_3R_79()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_202() {
+ if (jj_scan_token(SWITCH)) return true;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_56()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_scan_token(LBRACE)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_240()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_239() {
+ if (jj_3R_266()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_57() {
+ if (jj_3R_102()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_52() {
+ if (jj_3R_86()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_238() {
+ if (jj_3R_265()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_5() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_57()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(PACKAGE)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_237() {
+ if (jj_3R_264()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_201() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_236()) {
+ jj_scanpos = xsp;
+ if (jj_3R_237()) {
+ jj_scanpos = xsp;
+ if (jj_3R_238()) {
+ jj_scanpos = xsp;
+ if (jj_3R_239()) return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_236() {
+ if (jj_3R_263()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_200() {
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ final private boolean jj_3_41() {
+ if (jj_3R_50()) return true;
+ if (jj_3R_72()) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_128() {
+ if (jj_3R_50()) return true;
+ if (jj_3R_72()) return true;
+ if (jj_3R_161()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_162()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_51() {
+ if (jj_3R_97()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_235() {
+ if (jj_scan_token(COLON)) return true;
+ if (jj_3R_56()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_96() {
+ if (jj_3R_130()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_95() {
+ if (jj_3R_129()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_4() {
+ if (jj_3R_56()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_94() {
+ if (jj_3R_128()) return true;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_49() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_94()) {
+ jj_scanpos = xsp;
+ if (jj_3R_95()) {
+ jj_scanpos = xsp;
+ if (jj_3R_96()) return true;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_146() {
+ if (jj_3R_49()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_3() {
+ if (jj_3R_55()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_104() {
+ if (jj_scan_token(LBRACE)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_146()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(RBRACE)) return true;
+ return false;
+ }
+
+ final private boolean jj_3_2() {
+ if (jj_3R_50()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_51()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_52()) jj_scanpos = xsp;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_3R_53()) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_54()) jj_scanpos = xsp;
+ if (jj_scan_token(LBRACE)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_89() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(COLON)) return true;
+ if (jj_3R_129()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_1() {
+ if (jj_3R_49()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_199() {
+ if (jj_scan_token(ASSERT)) return true;
+ if (jj_3R_56()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_235()) jj_scanpos = xsp;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_177() {
+ if (jj_3R_212()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_176() {
+ if (jj_3R_211()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_38() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_175() {
+ if (jj_3R_210()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_174() {
+ if (jj_3R_209()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_173() {
+ if (jj_3R_208()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_172() {
+ if (jj_3R_207()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_171() {
+ if (jj_3R_206()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_170() {
+ if (jj_3R_205()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_169() {
+ if (jj_3R_204()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_168() {
+ if (jj_3R_203()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_167() {
+ if (jj_3R_202()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_166() {
+ if (jj_3R_201()) return true;
+ if (jj_scan_token(SEMICOLON)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_165() {
+ if (jj_3R_200()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_164() {
+ if (jj_3R_104()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_163() {
+ if (jj_3R_199()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_260() {
+ if (jj_3R_78()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_40() {
+ if (jj_3R_89()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_129() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_40()) {
+ jj_scanpos = xsp;
+ if (jj_3R_163()) {
+ jj_scanpos = xsp;
+ if (jj_3R_164()) {
+ jj_scanpos = xsp;
+ if (jj_3R_165()) {
+ jj_scanpos = xsp;
+ if (jj_3R_166()) {
+ jj_scanpos = xsp;
+ if (jj_3R_167()) {
+ jj_scanpos = xsp;
+ if (jj_3R_168()) {
+ jj_scanpos = xsp;
+ if (jj_3R_169()) {
+ jj_scanpos = xsp;
+ if (jj_3R_170()) {
+ jj_scanpos = xsp;
+ if (jj_3R_171()) {
+ jj_scanpos = xsp;
+ if (jj_3R_172()) {
+ jj_scanpos = xsp;
+ if (jj_3R_173()) {
+ jj_scanpos = xsp;
+ if (jj_3R_174()) {
+ jj_scanpos = xsp;
+ if (jj_3R_175()) {
+ jj_scanpos = xsp;
+ if (jj_3R_176()) {
+ jj_scanpos = xsp;
+ if (jj_3R_177())
+ return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_279() {
+ if (jj_3R_182()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_291() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_278() {
+ Token xsp;
+ if (jj_3R_291()) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_291()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_3R_147()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_37() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_3R_56()) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ final private boolean jj_3_39() {
+ Token xsp;
+ if (jj_3_37()) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_37()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_38()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_259() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_39()) {
+ jj_scanpos = xsp;
+ if (jj_3R_278()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_262() {
+ if (jj_3R_109()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_279()) jj_scanpos = xsp;
+ return false;
+ }
+
+ final private boolean jj_3R_232() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_3R_56()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_261() {
+ if (jj_3R_259()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_123() {
+ if (jj_scan_token(NEW)) return true;
+ if (jj_3R_149()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_260()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_261()) {
+ jj_scanpos = xsp;
+ if (jj_3R_262()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_87() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_36()) {
+ jj_scanpos = xsp;
+ if (jj_3R_123()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3_36() {
+ if (jj_scan_token(NEW)) return true;
+ if (jj_3R_83()) return true;
+ if (jj_3R_259()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_148() {
+ if (jj_3R_195()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_195() {
+ if (jj_3R_56()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_232()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_109() {
+ if (jj_scan_token(LPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_148()) jj_scanpos = xsp;
+ if (jj_scan_token(RPAREN)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_258() {
+ if (jj_scan_token(NULL)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_257() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(56)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(25)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_234() {
+ if (jj_3R_258()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_233() {
+ if (jj_3R_257()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_196() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(61)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(65)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(70)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(71)) {
+ jj_scanpos = xsp;
+ if (jj_3R_233()) {
+ jj_scanpos = xsp;
+ if (jj_3R_234()) return true;
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_152() {
+ if (jj_3R_196()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_121() {
+ if (jj_3R_109()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_120() {
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ final private boolean jj_3_33() {
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(THIS)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_119() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_3R_56()) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ final private boolean jj_3_32() {
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(SUPER)) return true;
+ if (jj_scan_token(DOT)) return true;
+ return false;
+ }
+
+ final private boolean jj_3_35() {
+ if (jj_3R_88()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_34() {
+ if (jj_scan_token(DOT)) return true;
+ if (jj_3R_87()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_118() {
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(THIS)) return true;
+ return false;
+ }
+
+ final private boolean jj_3_31() {
+ if (jj_3R_86()) return true;
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(CLASS)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_117() {
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(SUPER)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_84() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_117()) {
+ jj_scanpos = xsp;
+ if (jj_3R_118()) {
+ jj_scanpos = xsp;
+ if (jj_3_34()) {
+ jj_scanpos = xsp;
+ if (jj_3_35()) {
+ jj_scanpos = xsp;
+ if (jj_3R_119()) {
+ jj_scanpos = xsp;
+ if (jj_3R_120()) {
+ jj_scanpos = xsp;
+ if (jj_3R_121()) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_85() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(DOT)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_159() {
+ if (jj_3R_91()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_30() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_85()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(THIS)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_158() {
+ if (jj_3R_86()) return true;
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(CLASS)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_157() {
+ if (jj_3R_87()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_156() {
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_56()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ return false;
+ }
+
+ final private boolean jj_3_29() {
+ if (jj_3R_84()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_155() {
+ if (jj_scan_token(SUPER)) return true;
+ if (jj_scan_token(DOT)) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_197() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_scan_token(DOT)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_154() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_197()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ if (jj_scan_token(THIS)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_124() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_153()) {
+ jj_scanpos = xsp;
+ if (jj_3R_154()) {
+ jj_scanpos = xsp;
+ if (jj_3R_155()) {
+ jj_scanpos = xsp;
+ if (jj_3R_156()) {
+ jj_scanpos = xsp;
+ if (jj_3R_157()) {
+ jj_scanpos = xsp;
+ if (jj_3R_158()) {
+ jj_scanpos = xsp;
+ if (jj_3R_159()) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_153() {
+ if (jj_3R_196()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_88() {
+ if (jj_scan_token(DOT)) return true;
+ if (jj_3R_78()) return true;
+ if (jj_scan_token(IDENTIFIER)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_280() {
+ if (jj_3R_293()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_28() {
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_83()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_90() {
+ if (jj_3R_124()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_29()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_319() {
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_72()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_313()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_318() {
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_72()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_307()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_317() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_318()) {
+ jj_scanpos = xsp;
+ if (jj_3R_319()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_293() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(97)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(98)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3_27() {
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_72()) return true;
+ if (jj_scan_token(LBRACKET)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_266() {
+ if (jj_3R_90()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_280()) jj_scanpos = xsp;
+ return false;
+ }
+
+ final private boolean jj_3R_116() {
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_72()) return true;
+ if (jj_scan_token(RPAREN)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(88)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(87)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(75)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(72)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(52)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(49)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(39)) {
+ jj_scanpos = xsp;
+ if (jj_3R_152()) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_115() {
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_72()) return true;
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_scan_token(RBRACKET)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_82() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_26()) {
+ jj_scanpos = xsp;
+ if (jj_3R_115()) {
+ jj_scanpos = xsp;
+ if (jj_3R_116()) return true;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3_26() {
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_83()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_25() {
+ if (jj_3R_82()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_24() {
+ if (jj_3R_81()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_316() {
+ if (jj_3R_266()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_315() {
+ if (jj_3R_317()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_314() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(88)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(87)) return true;
+ }
+ if (jj_3R_307()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_313() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_314()) {
+ jj_scanpos = xsp;
+ if (jj_3R_315()) {
+ jj_scanpos = xsp;
+ if (jj_3R_316()) return true;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_264() {
+ if (jj_scan_token(DECR)) return true;
+ if (jj_3R_90()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_306() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(99)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(100)) return true;
+ }
+ if (jj_3R_305()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_308() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(101)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(102)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(106)) return true;
+ }
+ }
+ if (jj_3R_307()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_23() {
+ if (jj_3R_80()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_263() {
+ if (jj_scan_token(INCR)) return true;
+ if (jj_3R_90()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_312() {
+ if (jj_3R_313()) return true;
+ return false;
+ }
+
+ final private boolean jj_3_22() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(107)) {
+ jj_scanpos = xsp;
+ if (jj_3_23()) {
+ jj_scanpos = xsp;
+ if (jj_3_24()) return true;
+ }
+ }
+ if (jj_3R_304()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_311() {
+ if (jj_3R_264()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_310() {
+ if (jj_3R_263()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_309() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(99)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(100)) return true;
+ }
+ if (jj_3R_307()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_307() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_309()) {
+ jj_scanpos = xsp;
+ if (jj_3R_310()) {
+ jj_scanpos = xsp;
+ if (jj_3R_311()) {
+ jj_scanpos = xsp;
+ if (jj_3R_312()) return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_303() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(86)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(122)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(92)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(93)) return true;
+ }
+ }
+ }
+ if (jj_3R_302()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_301() {
+ if (jj_scan_token(INSTANCEOF)) return true;
+ if (jj_3R_72()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_305() {
+ if (jj_3R_307()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_308()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_298() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(91)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(94)) return true;
+ }
+ if (jj_3R_297()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_304() {
+ if (jj_3R_305()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_306()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_302() {
+ if (jj_3R_304()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3_22()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_288() {
+ if (jj_scan_token(BIT_AND)) return true;
+ if (jj_3R_287()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_300() {
+ if (jj_3R_302()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_303()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_254() {
+ if (jj_scan_token(BIT_OR)) return true;
+ if (jj_3R_253()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_297() {
+ if (jj_3R_300()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_301()) jj_scanpos = xsp;
+ return false;
+ }
+
+ final private boolean jj_3R_274() {
+ if (jj_scan_token(XOR)) return true;
+ if (jj_3R_273()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_230() {
+ if (jj_scan_token(SC_AND)) return true;
+ if (jj_3R_229()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_287() {
+ if (jj_3R_297()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_298()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_190() {
+ if (jj_scan_token(SC_OR)) return true;
+ if (jj_3R_189()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_273() {
+ if (jj_3R_287()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_288()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_142() {
+ if (jj_scan_token(HOOK)) return true;
+ if (jj_3R_56()) return true;
+ if (jj_scan_token(COLON)) return true;
+ if (jj_3R_56()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_253() {
+ if (jj_3R_273()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_274()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_229() {
+ if (jj_3R_253()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_254()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_189() {
+ if (jj_3R_229()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_230()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_141() {
+ if (jj_3R_189()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_190()) {
+ jj_scanpos = xsp;
+ break;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_101() {
+ if (jj_3R_141()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_142()) jj_scanpos = xsp;
+ return false;
+ }
+
+ final private boolean jj_3R_265() {
+ if (jj_3R_90()) return true;
+ if (jj_3R_79()) return true;
+ if (jj_3R_56()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_79() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(85)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(110)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(111)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(115)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(108)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(109)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(116)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(117)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(118)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(112)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(114)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(113))
+ return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3_21() {
+ if (jj_3R_79()) return true;
+ if (jj_3R_56()) return true;
+ return false;
+ }
+
+ public JavaParserTokenManager token_source;
+ JavaCharStream jj_input_stream;
+ public Token token, jj_nt;
+ private int jj_ntk;
+ private Token jj_scanpos, jj_lastpos;
+ private int jj_la;
+ public boolean lookingAhead = false;
+ private boolean jj_semLA;
+
+ public JavaParser(java.io.InputStream stream) {
+ this(stream, null);
+ }
+
+ public JavaParser(java.io.InputStream stream, String encoding) {
+ try {
+ jj_input_stream = new JavaCharStream(stream, encoding, 1, 1);
+ } catch (java.io.UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
+ }
+ token_source = new JavaParserTokenManager(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ }
+
+ public void ReInit(java.io.InputStream stream) {
+ ReInit(stream, null);
+ }
+
+ public void ReInit(java.io.InputStream stream, String encoding) {
+ try {
+ jj_input_stream.ReInit(stream, encoding, 1, 1);
+ } catch (java.io.UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
+ }
+ token_source.ReInit(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jjtree.reset();
+ }
+
+ public JavaParser(java.io.Reader stream) {
+ jj_input_stream = new JavaCharStream(stream, 1, 1);
+ token_source = new JavaParserTokenManager(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ }
+
+ public void ReInit(java.io.Reader stream) {
+ jj_input_stream.ReInit(stream, 1, 1);
+ token_source.ReInit(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jjtree.reset();
+ }
+
+ public JavaParser(JavaParserTokenManager tm) {
+ token_source = tm;
+ token = new Token();
+ jj_ntk = -1;
+ }
+
+ public void ReInit(JavaParserTokenManager tm) {
+ token_source = tm;
+ token = new Token();
+ jj_ntk = -1;
+ jjtree.reset();
+ }
+
+ final private Token jj_consume_token(int kind) throws ParseException {
+ Token oldToken;
+ if ((oldToken = token).next != null) token = token.next;
+ else token = token.next = token_source.getNextToken();
+ jj_ntk = -1;
+ if (token.kind == kind) {
+ return token;
+ }
+ token = oldToken;
+ throw generateParseException();
+ }
+
+ static private final class LookaheadSuccess extends java.lang.Error {
+ }
+
+ final private LookaheadSuccess jj_ls = new LookaheadSuccess();
+
+ final private boolean jj_scan_token(int kind) {
+ if (jj_scanpos == jj_lastpos) {
+ jj_la--;
+ if (jj_scanpos.next == null) {
+ jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
+ } else {
+ jj_lastpos = jj_scanpos = jj_scanpos.next;
+ }
+ } else {
+ jj_scanpos = jj_scanpos.next;
+ }
+ if (jj_scanpos.kind != kind) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
+ return false;
+ }
+
+ final public Token getNextToken() {
+ if (token.next != null) token = token.next;
+ else token = token.next = token_source.getNextToken();
+ jj_ntk = -1;
+ return token;
+ }
+
+ final public Token getToken(int index) {
+ Token t = lookingAhead ? jj_scanpos : token;
+ for (int i = 0; i < index; i++) {
+ if (t.next != null) t = t.next;
+ else t = t.next = token_source.getNextToken();
+ }
+ return t;
+ }
+
+ final private int jj_ntk() {
+ if ((jj_nt = token.next) == null)
+ return (jj_ntk = (token.next = token_source.getNextToken()).kind);
+ else
+ return (jj_ntk = jj_nt.kind);
+ }
+
+ public ParseException generateParseException() {
+ Token errortok = token.next;
+ int line = errortok.beginLine, column = errortok.beginColumn;
+ String mess = (errortok.kind == 0) ? tokenImage[0] : errortok.image;
+ return new ParseException("Unable to parse Java code near token: " + mess, line, column);
+ }
+
+ final public void enable_tracing() {
+ }
+
+ final public void disable_tracing() {
+ }
+
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaParserConstants.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaParserConstants.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaParserConstants.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,260 @@
+/* Generated By:JJTree&JavaCC: Do not edit this line. JavaParserConstants.java */
+package org.nuiton.guix.parser;
+
+public interface JavaParserConstants {
+
+ int EOF = 0;
+ int WHITE_SPACE = 3;
+ int SINGLE_LINE_COMMENT = 4;
+ int FORMAL_COMMENT = 5;
+ int MULTI_LINE_COMMENT = 6;
+ int ABSTRACT = 8;
+ int ASSERT = 9;
+ int BOOLEAN = 10;
+ int BREAK = 11;
+ int BYTE = 12;
+ int CASE = 13;
+ int CATCH = 14;
+ int CHAR = 15;
+ int CLASS = 16;
+ int CONST = 17;
+ int CONTINUE = 18;
+ int _DEFAULT = 19;
+ int DO = 20;
+ int DOUBLE = 21;
+ int ELSE = 22;
+ int ENUM = 23;
+ int EXTENDS = 24;
+ int FALSE = 25;
+ int FINAL = 26;
+ int FINALLY = 27;
+ int FLOAT = 28;
+ int FOR = 29;
+ int GOTO = 30;
+ int IF = 31;
+ int IMPLEMENTS = 32;
+ int IMPORT = 33;
+ int INSTANCEOF = 34;
+ int INT = 35;
+ int INTERFACE = 36;
+ int LONG = 37;
+ int NATIVE = 38;
+ int NEW = 39;
+ int NULL = 40;
+ int PACKAGE = 41;
+ int PRIVATE = 42;
+ int PROTECTED = 43;
+ int PUBLIC = 44;
+ int RETURN = 45;
+ int SHORT = 46;
+ int STATIC = 47;
+ int STRICTFP = 48;
+ int SUPER = 49;
+ int SWITCH = 50;
+ int SYNCHRONIZED = 51;
+ int THIS = 52;
+ int THROW = 53;
+ int THROWS = 54;
+ int TRANSIENT = 55;
+ int TRUE = 56;
+ int TRY = 57;
+ int VOID = 58;
+ int VOLATILE = 59;
+ int WHILE = 60;
+ int INTEGER_LITERAL = 61;
+ int DECIMAL_LITERAL = 62;
+ int HEX_LITERAL = 63;
+ int OCTAL_LITERAL = 64;
+ int FLOATING_POINT_LITERAL = 65;
+ int DECIMAL_FLOATING_POINT_LITERAL = 66;
+ int DECIMAL_EXPONENT = 67;
+ int HEXADECIMAL_FLOATING_POINT_LITERAL = 68;
+ int HEXADECIMAL_EXPONENT = 69;
+ int CHARACTER_LITERAL = 70;
+ int STRING_LITERAL = 71;
+ int IDENTIFIER = 72;
+ int LETTER = 73;
+ int PART_LETTER = 74;
+ int LPAREN = 75;
+ int RPAREN = 76;
+ int LBRACE = 77;
+ int RBRACE = 78;
+ int LBRACKET = 79;
+ int RBRACKET = 80;
+ int SEMICOLON = 81;
+ int COMMA = 82;
+ int DOT = 83;
+ int AT = 84;
+ int ASSIGN = 85;
+ int LT = 86;
+ int BANG = 87;
+ int TILDE = 88;
+ int HOOK = 89;
+ int COLON = 90;
+ int EQ = 91;
+ int LE = 92;
+ int GE = 93;
+ int NE = 94;
+ int SC_OR = 95;
+ int SC_AND = 96;
+ int INCR = 97;
+ int DECR = 98;
+ int PLUS = 99;
+ int MINUS = 100;
+ int STAR = 101;
+ int SLASH = 102;
+ int BIT_AND = 103;
+ int BIT_OR = 104;
+ int XOR = 105;
+ int REM = 106;
+ int LSHIFT = 107;
+ int PLUSASSIGN = 108;
+ int MINUSASSIGN = 109;
+ int STARASSIGN = 110;
+ int SLASHASSIGN = 111;
+ int ANDASSIGN = 112;
+ int ORASSIGN = 113;
+ int XORASSIGN = 114;
+ int REMASSIGN = 115;
+ int LSHIFTASSIGN = 116;
+ int RSIGNEDSHIFTASSIGN = 117;
+ int RUNSIGNEDSHIFTASSIGN = 118;
+ int ELLIPSIS = 119;
+ int RUNSIGNEDSHIFT = 120;
+ int RSIGNEDSHIFT = 121;
+ int GT = 122;
+ int STUFF_TO_IGNORE = 124;
+
+ int DEFAULT = 0;
+ int IN_FORMAL_COMMENT = 1;
+ int IN_MULTI_LINE_COMMENT = 2;
+
+ String[] tokenImage = {
+ "<EOF>",
+ "<token of kind 1>",
+ "\"/*\"",
+ "<WHITE_SPACE>",
+ "<SINGLE_LINE_COMMENT>",
+ "\"*/\"",
+ "\"*/\"",
+ "<token of kind 7>",
+ "\"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\"",
+ "\"transient\"",
+ "\"true\"",
+ "\"try\"",
+ "\"void\"",
+ "\"volatile\"",
+ "\"while\"",
+ "<INTEGER_LITERAL>",
+ "<DECIMAL_LITERAL>",
+ "<HEX_LITERAL>",
+ "<OCTAL_LITERAL>",
+ "<FLOATING_POINT_LITERAL>",
+ "<DECIMAL_FLOATING_POINT_LITERAL>",
+ "<DECIMAL_EXPONENT>",
+ "<HEXADECIMAL_FLOATING_POINT_LITERAL>",
+ "<HEXADECIMAL_EXPONENT>",
+ "<CHARACTER_LITERAL>",
+ "<STRING_LITERAL>",
+ "<IDENTIFIER>",
+ "<LETTER>",
+ "<PART_LETTER>",
+ "\"(\"",
+ "\")\"",
+ "\"{\"",
+ "\"}\"",
+ "\"[\"",
+ "\"]\"",
+ "\";\"",
+ "\",\"",
+ "\".\"",
+ "\"@\"",
+ "\"=\"",
+ "\"<\"",
+ "\"!\"",
+ "\"~\"",
+ "\"?\"",
+ "\":\"",
+ "\"==\"",
+ "\"<=\"",
+ "\">=\"",
+ "\"!=\"",
+ "\"||\"",
+ "\"&&\"",
+ "\"++\"",
+ "\"--\"",
+ "\"+\"",
+ "\"-\"",
+ "\"*\"",
+ "\"/\"",
+ "\"&\"",
+ "\"|\"",
+ "\"^\"",
+ "\"%\"",
+ "\"<<\"",
+ "\"+=\"",
+ "\"-=\"",
+ "\"*=\"",
+ "\"/=\"",
+ "\"&=\"",
+ "\"|=\"",
+ "\"^=\"",
+ "\"%=\"",
+ "\"<<=\"",
+ "\">>=\"",
+ "\">>>=\"",
+ "\"...\"",
+ "\">>>\"",
+ "\">>\"",
+ "\">\"",
+ "\"\\u001a\"",
+ "<STUFF_TO_IGNORE>",
+ };
+
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaParserTokenManager.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaParserTokenManager.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaParserTokenManager.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,2072 @@
+/* Generated By:JJTree&JavaCC: Do not edit this line. JavaParserTokenManager.java */
+package org.nuiton.guix.parser;
+
+public class JavaParserTokenManager implements JavaParserConstants {
+ public java.io.PrintStream debugStream = System.out;
+
+ public void setDebugStream(java.io.PrintStream ds) {
+ debugStream = ds;
+ }
+
+ private int jjStopStringLiteralDfa_0(int pos, long active0, long active1) {
+ switch (pos) {
+ case 0:
+ if ((active0 & 0x4L) != 0L || (active1 & 0x804000000000L) != 0L)
+ return 48;
+ if ((active1 & 0x80000000080000L) != 0L)
+ return 5;
+ if ((active0 & 0x1fffffffffffff00L) != 0L) {
+ jjmatchedKind = 72;
+ return 29;
+ }
+ return -1;
+ case 1:
+ if ((active0 & 0x4L) != 0L)
+ return 46;
+ if ((active0 & 0x1fffffff7fcfff00L) != 0L) {
+ if (jjmatchedPos != 1) {
+ jjmatchedKind = 72;
+ jjmatchedPos = 1;
+ }
+ return 29;
+ }
+ if ((active0 & 0x80300000L) != 0L)
+ return 29;
+ return -1;
+ case 2:
+ if ((active0 & 0x1dffff675fefff00L) != 0L) {
+ if (jjmatchedPos != 2) {
+ jjmatchedKind = 72;
+ jjmatchedPos = 2;
+ }
+ return 29;
+ }
+ if ((active0 & 0x200009820000000L) != 0L)
+ return 29;
+ return -1;
+ case 3:
+ if ((active0 & 0x18effe571f2f4f00L) != 0L) {
+ jjmatchedKind = 72;
+ jjmatchedPos = 3;
+ return 29;
+ }
+ if ((active0 & 0x510012040c0b000L) != 0L)
+ return 29;
+ return -1;
+ case 4:
+ if ((active0 & 0x88dbe57012c0700L) != 0L) {
+ if (jjmatchedPos != 4) {
+ jjmatchedKind = 72;
+ jjmatchedPos = 4;
+ }
+ return 29;
+ }
+ if ((active0 & 0x106240001e034800L) != 0L)
+ return 29;
+ return -1;
+ case 5:
+ if ((active0 & 0x8890e15090c0500L) != 0L) {
+ jjmatchedKind = 72;
+ jjmatchedPos = 5;
+ return 29;
+ }
+ if ((active0 & 0x44b04200200200L) != 0L)
+ return 29;
+ return -1;
+ case 6:
+ if ((active0 & 0x889081500040100L) != 0L) {
+ jjmatchedKind = 72;
+ jjmatchedPos = 6;
+ return 29;
+ }
+ if ((active0 & 0x60009080400L) != 0L)
+ return 29;
+ return -1;
+ case 7:
+ if ((active0 & 0x801000000040100L) != 0L)
+ return 29;
+ if ((active0 & 0x88081500000000L) != 0L) {
+ jjmatchedKind = 72;
+ jjmatchedPos = 7;
+ return 29;
+ }
+ return -1;
+ case 8:
+ if ((active0 & 0x8000500000000L) != 0L) {
+ jjmatchedKind = 72;
+ jjmatchedPos = 8;
+ return 29;
+ }
+ if ((active0 & 0x80081000000000L) != 0L)
+ return 29;
+ return -1;
+ case 9:
+ if ((active0 & 0x8000000000000L) != 0L) {
+ jjmatchedKind = 72;
+ jjmatchedPos = 9;
+ return 29;
+ }
+ if ((active0 & 0x500000000L) != 0L)
+ return 29;
+ return -1;
+ case 10:
+ if ((active0 & 0x8000000000000L) != 0L) {
+ jjmatchedKind = 72;
+ jjmatchedPos = 10;
+ return 29;
+ }
+ return -1;
+ default:
+ return -1;
+ }
+ }
+
+ private int jjStartNfa_0(int pos, long active0, long active1) {
+ return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0, active1), pos + 1);
+ }
+
+ private int jjStopAtPos(int pos, int kind) {
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ return pos + 1;
+ }
+
+ private int jjStartNfaWithStates_0(int pos, int kind, int state) {
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ return pos + 1;
+ }
+ return jjMoveNfa_0(state, pos + 1);
+ }
+
+ private int jjMoveStringLiteralDfa0_0() {
+ switch (curChar) {
+ case 26:
+ return jjStopAtPos(0, 123);
+ case 33:
+ jjmatchedKind = 87;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x40000000L);
+ case 37:
+ jjmatchedKind = 106;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x8000000000000L);
+ case 38:
+ jjmatchedKind = 103;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x1000100000000L);
+ case 40:
+ return jjStopAtPos(0, 75);
+ case 41:
+ return jjStopAtPos(0, 76);
+ case 42:
+ jjmatchedKind = 101;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x400000000000L);
+ case 43:
+ jjmatchedKind = 99;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x100200000000L);
+ case 44:
+ return jjStopAtPos(0, 82);
+ case 45:
+ jjmatchedKind = 100;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x200400000000L);
+ case 46:
+ jjmatchedKind = 83;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x80000000000000L);
+ case 47:
+ jjmatchedKind = 102;
+ return jjMoveStringLiteralDfa1_0(0x4L, 0x800000000000L);
+ case 58:
+ return jjStopAtPos(0, 90);
+ case 59:
+ return jjStopAtPos(0, 81);
+ case 60:
+ jjmatchedKind = 86;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x10080010000000L);
+ case 61:
+ jjmatchedKind = 85;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x8000000L);
+ case 62:
+ jjmatchedKind = 122;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x360000020000000L);
+ case 63:
+ return jjStopAtPos(0, 89);
+ case 64:
+ return jjStopAtPos(0, 84);
+ case 91:
+ return jjStopAtPos(0, 79);
+ case 93:
+ return jjStopAtPos(0, 80);
+ case 94:
+ jjmatchedKind = 105;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x4000000000000L);
+ case 97:
+ return jjMoveStringLiteralDfa1_0(0x300L, 0x0L);
+ case 98:
+ return jjMoveStringLiteralDfa1_0(0x1c00L, 0x0L);
+ case 99:
+ return jjMoveStringLiteralDfa1_0(0x7e000L, 0x0L);
+ case 100:
+ return jjMoveStringLiteralDfa1_0(0x380000L, 0x0L);
+ case 101:
+ return jjMoveStringLiteralDfa1_0(0x1c00000L, 0x0L);
+ case 102:
+ return jjMoveStringLiteralDfa1_0(0x3e000000L, 0x0L);
+ case 103:
+ return jjMoveStringLiteralDfa1_0(0x40000000L, 0x0L);
+ case 105:
+ return jjMoveStringLiteralDfa1_0(0x1f80000000L, 0x0L);
+ case 108:
+ return jjMoveStringLiteralDfa1_0(0x2000000000L, 0x0L);
+ case 110:
+ return jjMoveStringLiteralDfa1_0(0x1c000000000L, 0x0L);
+ case 112:
+ return jjMoveStringLiteralDfa1_0(0x1e0000000000L, 0x0L);
+ case 114:
+ return jjMoveStringLiteralDfa1_0(0x200000000000L, 0x0L);
+ case 115:
+ return jjMoveStringLiteralDfa1_0(0xfc00000000000L, 0x0L);
+ case 116:
+ return jjMoveStringLiteralDfa1_0(0x3f0000000000000L, 0x0L);
+ case 118:
+ return jjMoveStringLiteralDfa1_0(0xc00000000000000L, 0x0L);
+ case 119:
+ return jjMoveStringLiteralDfa1_0(0x1000000000000000L, 0x0L);
+ case 123:
+ return jjStopAtPos(0, 77);
+ case 124:
+ jjmatchedKind = 104;
+ return jjMoveStringLiteralDfa1_0(0x0L, 0x2000080000000L);
+ case 125:
+ return jjStopAtPos(0, 78);
+ case 126:
+ return jjStopAtPos(0, 88);
+ default:
+ return jjMoveNfa_0(1, 0);
+ }
+ }
+
+ private int jjMoveStringLiteralDfa1_0(long active0, long active1) {
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(0, active0, active1);
+ return 1;
+ }
+ switch (curChar) {
+ case 38:
+ if ((active1 & 0x100000000L) != 0L)
+ return jjStopAtPos(1, 96);
+ break;
+ case 42:
+ if ((active0 & 0x4L) != 0L)
+ return jjStartNfaWithStates_0(1, 2, 46);
+ break;
+ case 43:
+ if ((active1 & 0x200000000L) != 0L)
+ return jjStopAtPos(1, 97);
+ break;
+ case 45:
+ if ((active1 & 0x400000000L) != 0L)
+ return jjStopAtPos(1, 98);
+ break;
+ case 46:
+ return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x80000000000000L);
+ case 60:
+ if ((active1 & 0x80000000000L) != 0L) {
+ jjmatchedKind = 107;
+ jjmatchedPos = 1;
+ }
+ return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x10000000000000L);
+ case 61:
+ if ((active1 & 0x8000000L) != 0L)
+ return jjStopAtPos(1, 91);
+ else if ((active1 & 0x10000000L) != 0L)
+ return jjStopAtPos(1, 92);
+ else if ((active1 & 0x20000000L) != 0L)
+ return jjStopAtPos(1, 93);
+ else if ((active1 & 0x40000000L) != 0L)
+ return jjStopAtPos(1, 94);
+ else if ((active1 & 0x100000000000L) != 0L)
+ return jjStopAtPos(1, 108);
+ else if ((active1 & 0x200000000000L) != 0L)
+ return jjStopAtPos(1, 109);
+ else if ((active1 & 0x400000000000L) != 0L)
+ return jjStopAtPos(1, 110);
+ else if ((active1 & 0x800000000000L) != 0L)
+ return jjStopAtPos(1, 111);
+ else if ((active1 & 0x1000000000000L) != 0L)
+ return jjStopAtPos(1, 112);
+ else if ((active1 & 0x2000000000000L) != 0L)
+ return jjStopAtPos(1, 113);
+ else if ((active1 & 0x4000000000000L) != 0L)
+ return jjStopAtPos(1, 114);
+ else if ((active1 & 0x8000000000000L) != 0L)
+ return jjStopAtPos(1, 115);
+ break;
+ case 62:
+ if ((active1 & 0x200000000000000L) != 0L) {
+ jjmatchedKind = 121;
+ jjmatchedPos = 1;
+ }
+ return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x160000000000000L);
+ case 97:
+ return jjMoveStringLiteralDfa2_0(active0, 0x24002006000L, active1, 0L);
+ case 98:
+ return jjMoveStringLiteralDfa2_0(active0, 0x100L, active1, 0L);
+ case 101:
+ return jjMoveStringLiteralDfa2_0(active0, 0x208000080000L, active1, 0L);
+ case 102:
+ if ((active0 & 0x80000000L) != 0L)
+ return jjStartNfaWithStates_0(1, 31, 29);
+ break;
+ case 104:
+ return jjMoveStringLiteralDfa2_0(active0, 0x1070400000008000L, active1, 0L);
+ case 105:
+ return jjMoveStringLiteralDfa2_0(active0, 0xc000000L, active1, 0L);
+ case 108:
+ return jjMoveStringLiteralDfa2_0(active0, 0x10410000L, active1, 0L);
+ case 109:
+ return jjMoveStringLiteralDfa2_0(active0, 0x300000000L, active1, 0L);
+ case 110:
+ return jjMoveStringLiteralDfa2_0(active0, 0x1c00800000L, active1, 0L);
+ case 111:
+ if ((active0 & 0x100000L) != 0L) {
+ jjmatchedKind = 20;
+ jjmatchedPos = 1;
+ }
+ return jjMoveStringLiteralDfa2_0(active0, 0xc00002060260400L, active1, 0L);
+ case 114:
+ return jjMoveStringLiteralDfa2_0(active0, 0x3800c0000000800L, active1, 0L);
+ case 115:
+ return jjMoveStringLiteralDfa2_0(active0, 0x200L, active1, 0L);
+ case 116:
+ return jjMoveStringLiteralDfa2_0(active0, 0x1800000000000L, active1, 0L);
+ case 117:
+ return jjMoveStringLiteralDfa2_0(active0, 0x2110000000000L, active1, 0L);
+ case 119:
+ return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000L, active1, 0L);
+ case 120:
+ return jjMoveStringLiteralDfa2_0(active0, 0x1000000L, active1, 0L);
+ case 121:
+ return jjMoveStringLiteralDfa2_0(active0, 0x8000000001000L, active1, 0L);
+ case 124:
+ if ((active1 & 0x80000000L) != 0L)
+ return jjStopAtPos(1, 95);
+ break;
+ default:
+ break;
+ }
+ return jjStartNfa_0(0, active0, active1);
+ }
+
+ private int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, long active1) {
+ if (((active0 &= old0) | (active1 &= old1)) == 0L)
+ return jjStartNfa_0(0, old0, old1);
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(1, active0, active1);
+ return 2;
+ }
+ switch (curChar) {
+ case 46:
+ if ((active1 & 0x80000000000000L) != 0L)
+ return jjStopAtPos(2, 119);
+ break;
+ case 61:
+ if ((active1 & 0x10000000000000L) != 0L)
+ return jjStopAtPos(2, 116);
+ else if ((active1 & 0x20000000000000L) != 0L)
+ return jjStopAtPos(2, 117);
+ break;
+ case 62:
+ if ((active1 & 0x100000000000000L) != 0L) {
+ jjmatchedKind = 120;
+ jjmatchedPos = 2;
+ }
+ return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x40000000000000L);
+ case 97:
+ return jjMoveStringLiteralDfa3_0(active0, 0x80800000018000L, active1, 0L);
+ case 98:
+ return jjMoveStringLiteralDfa3_0(active0, 0x100000000000L, active1, 0L);
+ case 99:
+ return jjMoveStringLiteralDfa3_0(active0, 0x20000000000L, active1, 0L);
+ case 101:
+ return jjMoveStringLiteralDfa3_0(active0, 0x800L, active1, 0L);
+ case 102:
+ return jjMoveStringLiteralDfa3_0(active0, 0x80000L, active1, 0L);
+ case 105:
+ return jjMoveStringLiteralDfa3_0(active0, 0x1414040000000000L, active1, 0L);
+ case 108:
+ return jjMoveStringLiteralDfa3_0(active0, 0x800010002000000L, active1, 0L);
+ case 110:
+ return jjMoveStringLiteralDfa3_0(active0, 0x800200c060000L, active1, 0L);
+ case 111:
+ return jjMoveStringLiteralDfa3_0(active0, 0x480010000400L, active1, 0L);
+ case 112:
+ return jjMoveStringLiteralDfa3_0(active0, 0x2000300000000L, active1, 0L);
+ case 114:
+ if ((active0 & 0x20000000L) != 0L)
+ return jjStartNfaWithStates_0(2, 29, 29);
+ return jjMoveStringLiteralDfa3_0(active0, 0x61000000000000L, active1, 0L);
+ case 115:
+ return jjMoveStringLiteralDfa3_0(active0, 0x400402300L, active1, 0L);
+ case 116:
+ if ((active0 & 0x800000000L) != 0L) {
+ jjmatchedKind = 35;
+ jjmatchedPos = 2;
+ }
+ return jjMoveStringLiteralDfa3_0(active0, 0x205041005000L, active1, 0L);
+ case 117:
+ return jjMoveStringLiteralDfa3_0(active0, 0x100000000a00000L, active1, 0L);
+ case 119:
+ if ((active0 & 0x8000000000L) != 0L)
+ return jjStartNfaWithStates_0(2, 39, 29);
+ break;
+ case 121:
+ if ((active0 & 0x200000000000000L) != 0L)
+ return jjStartNfaWithStates_0(2, 57, 29);
+ break;
+ default:
+ break;
+ }
+ return jjStartNfa_0(1, active0, active1);
+ }
+
+ private int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, long active1) {
+ if (((active0 &= old0) | (active1 &= old1)) == 0L)
+ return jjStartNfa_0(1, old0, old1);
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(2, active0, active1);
+ return 3;
+ }
+ switch (curChar) {
+ case 61:
+ if ((active1 & 0x40000000000000L) != 0L)
+ return jjStopAtPos(3, 118);
+ break;
+ case 97:
+ return jjMoveStringLiteralDfa4_0(active0, 0x80000001c080800L, active1, 0L);
+ case 98:
+ return jjMoveStringLiteralDfa4_0(active0, 0x200000L, active1, 0L);
+ case 99:
+ return jjMoveStringLiteralDfa4_0(active0, 0x8000000004000L, active1, 0L);
+ case 100:
+ if ((active0 & 0x400000000000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 58, 29);
+ break;
+ case 101:
+ if ((active0 & 0x1000L) != 0L)
+ return jjStartNfaWithStates_0(3, 12, 29);
+ else if ((active0 & 0x2000L) != 0L)
+ return jjStartNfaWithStates_0(3, 13, 29);
+ else if ((active0 & 0x400000L) != 0L)
+ return jjStartNfaWithStates_0(3, 22, 29);
+ else if ((active0 & 0x100000000000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 56, 29);
+ return jjMoveStringLiteralDfa4_0(active0, 0x2001001000200L, active1, 0L);
+ case 103:
+ if ((active0 & 0x2000000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 37, 29);
+ break;
+ case 105:
+ return jjMoveStringLiteralDfa4_0(active0, 0x1004000000000L, active1, 0L);
+ case 107:
+ return jjMoveStringLiteralDfa4_0(active0, 0x20000000000L, active1, 0L);
+ case 108:
+ if ((active0 & 0x10000000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 40, 29);
+ return jjMoveStringLiteralDfa4_0(active0, 0x1000100100000400L, active1, 0L);
+ case 109:
+ if ((active0 & 0x800000L) != 0L)
+ return jjStartNfaWithStates_0(3, 23, 29);
+ break;
+ case 110:
+ return jjMoveStringLiteralDfa4_0(active0, 0x80000000000000L, active1, 0L);
+ case 111:
+ if ((active0 & 0x40000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 30, 29);
+ return jjMoveStringLiteralDfa4_0(active0, 0x60000200000000L, active1, 0L);
+ case 114:
+ if ((active0 & 0x8000L) != 0L)
+ return jjStartNfaWithStates_0(3, 15, 29);
+ return jjMoveStringLiteralDfa4_0(active0, 0x400000000000L, active1, 0L);
+ case 115:
+ if ((active0 & 0x10000000000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 52, 29);
+ return jjMoveStringLiteralDfa4_0(active0, 0x2030000L, active1, 0L);
+ case 116:
+ return jjMoveStringLiteralDfa4_0(active0, 0x4880400040100L, active1, 0L);
+ case 117:
+ return jjMoveStringLiteralDfa4_0(active0, 0x200000000000L, active1, 0L);
+ case 118:
+ return jjMoveStringLiteralDfa4_0(active0, 0x40000000000L, active1, 0L);
+ default:
+ break;
+ }
+ return jjStartNfa_0(2, active0, active1);
+ }
+
+ private int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, long active1) {
+ if (((active0 &= old0) | (active1 &= old1)) == 0L)
+ return jjStartNfa_0(2, old0, old1);
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(3, active0, 0L);
+ return 4;
+ }
+ switch (curChar) {
+ case 97:
+ return jjMoveStringLiteralDfa5_0(active0, 0x60400000000L);
+ case 99:
+ return jjMoveStringLiteralDfa5_0(active0, 0x5000000000000L);
+ case 101:
+ if ((active0 & 0x2000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 25, 29);
+ else if ((active0 & 0x1000000000000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 60, 29);
+ return jjMoveStringLiteralDfa5_0(active0, 0x80100000400L);
+ case 104:
+ if ((active0 & 0x4000L) != 0L)
+ return jjStartNfaWithStates_0(4, 14, 29);
+ return jjMoveStringLiteralDfa5_0(active0, 0x8000000000000L);
+ case 105:
+ return jjMoveStringLiteralDfa5_0(active0, 0x900000040000L);
+ case 107:
+ if ((active0 & 0x800L) != 0L)
+ return jjStartNfaWithStates_0(4, 11, 29);
+ break;
+ case 108:
+ if ((active0 & 0x4000000L) != 0L) {
+ jjmatchedKind = 26;
+ jjmatchedPos = 4;
+ }
+ return jjMoveStringLiteralDfa5_0(active0, 0x8200000L);
+ case 110:
+ return jjMoveStringLiteralDfa5_0(active0, 0x1000000L);
+ case 114:
+ if ((active0 & 0x2000000000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 49, 29);
+ return jjMoveStringLiteralDfa5_0(active0, 0x201200000300L);
+ case 115:
+ if ((active0 & 0x10000L) != 0L)
+ return jjStartNfaWithStates_0(4, 16, 29);
+ return jjMoveStringLiteralDfa5_0(active0, 0x80000000000000L);
+ case 116:
+ if ((active0 & 0x20000L) != 0L)
+ return jjStartNfaWithStates_0(4, 17, 29);
+ else if ((active0 & 0x10000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 28, 29);
+ else if ((active0 & 0x400000000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 46, 29);
+ return jjMoveStringLiteralDfa5_0(active0, 0x800000000000000L);
+ case 117:
+ return jjMoveStringLiteralDfa5_0(active0, 0x80000L);
+ case 118:
+ return jjMoveStringLiteralDfa5_0(active0, 0x4000000000L);
+ case 119:
+ if ((active0 & 0x20000000000000L) != 0L) {
+ jjmatchedKind = 53;
+ jjmatchedPos = 4;
+ }
+ return jjMoveStringLiteralDfa5_0(active0, 0x40000000000000L);
+ default:
+ break;
+ }
+ return jjStartNfa_0(3, active0, 0L);
+ }
+
+ private int jjMoveStringLiteralDfa5_0(long old0, long active0) {
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(3, old0, 0L);
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(4, active0, 0L);
+ return 5;
+ }
+ switch (curChar) {
+ case 97:
+ return jjMoveStringLiteralDfa6_0(active0, 0x500L);
+ case 99:
+ if ((active0 & 0x100000000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 44, 29);
+ else if ((active0 & 0x800000000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 47, 29);
+ return jjMoveStringLiteralDfa6_0(active0, 0x80000000000L);
+ case 100:
+ return jjMoveStringLiteralDfa6_0(active0, 0x1000000L);
+ case 101:
+ if ((active0 & 0x200000L) != 0L)
+ return jjStartNfaWithStates_0(5, 21, 29);
+ else if ((active0 & 0x4000000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 38, 29);
+ break;
+ case 102:
+ return jjMoveStringLiteralDfa6_0(active0, 0x1000000000L);
+ case 103:
+ return jjMoveStringLiteralDfa6_0(active0, 0x20000000000L);
+ case 104:
+ if ((active0 & 0x4000000000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 50, 29);
+ break;
+ case 105:
+ return jjMoveStringLiteralDfa6_0(active0, 0x880000000000000L);
+ case 108:
+ return jjMoveStringLiteralDfa6_0(active0, 0x8080000L);
+ case 109:
+ return jjMoveStringLiteralDfa6_0(active0, 0x100000000L);
+ case 110:
+ if ((active0 & 0x200000000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 45, 29);
+ return jjMoveStringLiteralDfa6_0(active0, 0x400040000L);
+ case 114:
+ return jjMoveStringLiteralDfa6_0(active0, 0x8000000000000L);
+ case 115:
+ if ((active0 & 0x40000000000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 54, 29);
+ break;
+ case 116:
+ if ((active0 & 0x200L) != 0L)
+ return jjStartNfaWithStates_0(5, 9, 29);
+ else if ((active0 & 0x200000000L) != 0L)
+ return jjStartNfaWithStates_0(5, 33, 29);
+ return jjMoveStringLiteralDfa6_0(active0, 0x1040000000000L);
+ default:
+ break;
+ }
+ return jjStartNfa_0(4, active0, 0L);
+ }
+
+ private int jjMoveStringLiteralDfa6_0(long old0, long active0) {
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(4, old0, 0L);
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(5, active0, 0L);
+ return 6;
+ }
+ switch (curChar) {
+ case 97:
+ return jjMoveStringLiteralDfa7_0(active0, 0x1000000000L);
+ case 99:
+ return jjMoveStringLiteralDfa7_0(active0, 0x400000100L);
+ case 101:
+ if ((active0 & 0x20000000000L) != 0L)
+ return jjStartNfaWithStates_0(6, 41, 29);
+ else if ((active0 & 0x40000000000L) != 0L)
+ return jjStartNfaWithStates_0(6, 42, 29);
+ return jjMoveStringLiteralDfa7_0(active0, 0x80000100000000L);
+ case 102:
+ return jjMoveStringLiteralDfa7_0(active0, 0x1000000000000L);
+ case 108:
+ return jjMoveStringLiteralDfa7_0(active0, 0x800000000000000L);
+ case 110:
+ if ((active0 & 0x400L) != 0L)
+ return jjStartNfaWithStates_0(6, 10, 29);
+ break;
+ case 111:
+ return jjMoveStringLiteralDfa7_0(active0, 0x8000000000000L);
+ case 115:
+ if ((active0 & 0x1000000L) != 0L)
+ return jjStartNfaWithStates_0(6, 24, 29);
+ break;
+ case 116:
+ if ((active0 & 0x80000L) != 0L)
+ return jjStartNfaWithStates_0(6, 19, 29);
+ return jjMoveStringLiteralDfa7_0(active0, 0x80000000000L);
+ case 117:
+ return jjMoveStringLiteralDfa7_0(active0, 0x40000L);
+ case 121:
+ if ((active0 & 0x8000000L) != 0L)
+ return jjStartNfaWithStates_0(6, 27, 29);
+ break;
+ default:
+ break;
+ }
+ return jjStartNfa_0(5, active0, 0L);
+ }
+
+ private int jjMoveStringLiteralDfa7_0(long old0, long active0) {
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(5, old0, 0L);
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(6, active0, 0L);
+ return 7;
+ }
+ switch (curChar) {
+ case 99:
+ return jjMoveStringLiteralDfa8_0(active0, 0x1000000000L);
+ case 101:
+ if ((active0 & 0x40000L) != 0L)
+ return jjStartNfaWithStates_0(7, 18, 29);
+ else if ((active0 & 0x800000000000000L) != 0L)
+ return jjStartNfaWithStates_0(7, 59, 29);
+ return jjMoveStringLiteralDfa8_0(active0, 0x80400000000L);
+ case 110:
+ return jjMoveStringLiteralDfa8_0(active0, 0x88000100000000L);
+ case 112:
+ if ((active0 & 0x1000000000000L) != 0L)
+ return jjStartNfaWithStates_0(7, 48, 29);
+ break;
+ case 116:
+ if ((active0 & 0x100L) != 0L)
+ return jjStartNfaWithStates_0(7, 8, 29);
+ break;
+ default:
+ break;
+ }
+ return jjStartNfa_0(6, active0, 0L);
+ }
+
+ private int jjMoveStringLiteralDfa8_0(long old0, long active0) {
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(6, old0, 0L);
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(7, active0, 0L);
+ return 8;
+ }
+ switch (curChar) {
+ case 100:
+ if ((active0 & 0x80000000000L) != 0L)
+ return jjStartNfaWithStates_0(8, 43, 29);
+ break;
+ case 101:
+ if ((active0 & 0x1000000000L) != 0L)
+ return jjStartNfaWithStates_0(8, 36, 29);
+ break;
+ case 105:
+ return jjMoveStringLiteralDfa9_0(active0, 0x8000000000000L);
+ case 111:
+ return jjMoveStringLiteralDfa9_0(active0, 0x400000000L);
+ case 116:
+ if ((active0 & 0x80000000000000L) != 0L)
+ return jjStartNfaWithStates_0(8, 55, 29);
+ return jjMoveStringLiteralDfa9_0(active0, 0x100000000L);
+ default:
+ break;
+ }
+ return jjStartNfa_0(7, active0, 0L);
+ }
+
+ private int jjMoveStringLiteralDfa9_0(long old0, long active0) {
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(7, old0, 0L);
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(8, active0, 0L);
+ return 9;
+ }
+ switch (curChar) {
+ case 102:
+ if ((active0 & 0x400000000L) != 0L)
+ return jjStartNfaWithStates_0(9, 34, 29);
+ break;
+ case 115:
+ if ((active0 & 0x100000000L) != 0L)
+ return jjStartNfaWithStates_0(9, 32, 29);
+ break;
+ case 122:
+ return jjMoveStringLiteralDfa10_0(active0, 0x8000000000000L);
+ default:
+ break;
+ }
+ return jjStartNfa_0(8, active0, 0L);
+ }
+
+ private int jjMoveStringLiteralDfa10_0(long old0, long active0) {
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(8, old0, 0L);
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(9, active0, 0L);
+ return 10;
+ }
+ switch (curChar) {
+ case 101:
+ return jjMoveStringLiteralDfa11_0(active0, 0x8000000000000L);
+ default:
+ break;
+ }
+ return jjStartNfa_0(9, active0, 0L);
+ }
+
+ private int jjMoveStringLiteralDfa11_0(long old0, long active0) {
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(9, old0, 0L);
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ jjStopStringLiteralDfa_0(10, active0, 0L);
+ return 11;
+ }
+ switch (curChar) {
+ case 100:
+ if ((active0 & 0x8000000000000L) != 0L)
+ return jjStartNfaWithStates_0(11, 51, 29);
+ break;
+ default:
+ break;
+ }
+ return jjStartNfa_0(10, active0, 0L);
+ }
+
+ private void jjCheckNAdd(int state) {
+ if (jjrounds[state] != jjround) {
+ jjstateSet[jjnewStateCnt++] = state;
+ jjrounds[state] = jjround;
+ }
+ }
+
+ private void jjAddStates(int start, int end) {
+ do {
+ jjstateSet[jjnewStateCnt++] = jjnextStates[start];
+ } while (start++ != end);
+ }
+
+ private void jjCheckNAddTwoStates(int state1, int state2) {
+ jjCheckNAdd(state1);
+ jjCheckNAdd(state2);
+ }
+
+ private void jjCheckNAddStates(int start, int end) {
+ do {
+ jjCheckNAdd(jjnextStates[start]);
+ } while (start++ != end);
+ }
+
+ private void jjCheckNAddStates(int start) {
+ jjCheckNAdd(jjnextStates[start]);
+ jjCheckNAdd(jjnextStates[start + 1]);
+ }
+
+ static final long[] jjbitVec0 = {
+ 0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
+ };
+ static final long[] jjbitVec2 = {
+ 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
+ };
+ static final long[] jjbitVec3 = {
+ 0xfff0000000200002L, 0xffffffffffffdfffL, 0xfffff00f7fffffffL, 0x12000000007fffffL
+ };
+ static final long[] jjbitVec4 = {
+ 0x0L, 0x0L, 0x420043c00000000L, 0xff7fffffff7fffffL
+ };
+ static final long[] jjbitVec5 = {
+ 0xffffcffffffffL, 0xffffffffffff0000L, 0xf9ff3fffffffffffL, 0x401f00030003L
+ };
+ static final long[] jjbitVec6 = {
+ 0x0L, 0x400000000000000L, 0xfffffffbffffd740L, 0xffffffcff7fffL
+ };
+ static final long[] jjbitVec7 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xfffffffffffff003L, 0x33fffffffff199fL
+ };
+ static final long[] jjbitVec8 = {
+ 0xfffe000000000000L, 0xfffffffe027fffffL, 0xffL, 0x707ffffff0000L
+ };
+ static final long[] jjbitVec9 = {
+ 0x7fffffe00000000L, 0xfffe0000000007ffL, 0xffffffffffffffffL, 0x1c000060002fffffL
+ };
+ static final long[] jjbitVec10 = {
+ 0x1ffffffd0000L, 0x0L, 0x3fffffffffL, 0x0L
+ };
+ static final long[] jjbitVec11 = {
+ 0x23ffffffffffffe0L, 0x3ff010000L, 0x3c5fdfffff99fe0L, 0xf0003b0000000L
+ };
+ static final long[] jjbitVec12 = {
+ 0x36dfdfffff987e0L, 0x1c00005e000000L, 0x23edfdfffffbafe0L, 0x100010000L
+ };
+ static final long[] jjbitVec13 = {
+ 0x23cdfdfffff99fe0L, 0x3b0000000L, 0x3bfc718d63dc7e0L, 0x0L
+ };
+ static final long[] jjbitVec14 = {
+ 0x3effdfffffddfe0L, 0x300000000L, 0x3effdfffffddfe0L, 0x340000000L
+ };
+ static final long[] jjbitVec15 = {
+ 0x3fffdfffffddfe0L, 0x300000000L, 0x2ffbfffffc7fffe0L, 0x7fL
+ };
+ static final long[] jjbitVec16 = {
+ 0x800dfffffffffffeL, 0x7fL, 0x200decaefef02596L, 0x3000005fL
+ };
+ static final long[] jjbitVec17 = {
+ 0x1L, 0x7fffffffeffL, 0xf00L, 0x0L
+ };
+ static final long[] jjbitVec18 = {
+ 0x6fbffffffffL, 0x3f0000L, 0xffffffff00000000L, 0x7fffffffff003fL
+ };
+ static final long[] jjbitVec19 = {
+ 0xffffffffffffffffL, 0xffffffff83ffffffL, 0xffffff07ffffffffL, 0x3ffffffffffffffL
+ };
+ static final long[] jjbitVec20 = {
+ 0xffffffffffffff7fL, 0xffffffff3d7f3d7fL, 0x7f3d7fffffff3d7fL, 0xffff7fffff7f7f3dL
+ };
+ static final long[] jjbitVec21 = {
+ 0xffffffff7f3d7fffL, 0x7ffff7fL, 0xffffffff00000000L, 0x1fffffffffffffL
+ };
+ static final long[] jjbitVec22 = {
+ 0xffffffffffffffffL, 0x7f9fffffffffffL, 0xffffffff07fffffeL, 0x7ffffffffffL
+ };
+ static final long[] jjbitVec23 = {
+ 0x0L, 0x0L, 0xfffffffffffffL, 0x8000000L
+ };
+ static final long[] jjbitVec24 = {
+ 0xffffffff00000000L, 0xffffffffffffffL, 0x1ffffffffffL, 0x0L
+ };
+ static final long[] jjbitVec25 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffff0fffffffL, 0x3ffffffffffffffL
+ };
+ static final long[] jjbitVec26 = {
+ 0xffffffff3f3fffffL, 0x3fffffffaaff3f3fL, 0x5fdfffffffffffffL, 0x1fdc1fff0fcf1fdcL
+ };
+ static final long[] jjbitVec27 = {
+ 0x8000000000000000L, 0x8000000000000001L, 0xffff00000000L, 0x0L
+ };
+ static final long[] jjbitVec28 = {
+ 0x3fbbd503e2ffc84L, 0xffffffff00000000L, 0xfL, 0x0L
+ };
+ static final long[] jjbitVec29 = {
+ 0x73e03fe000000e0L, 0xfffffffffffffffeL, 0xfffffffe601fffffL, 0x7fffffffffffffffL
+ };
+ static final long[] jjbitVec30 = {
+ 0xfffe1fffffffffe0L, 0xffffffffffffffffL, 0xffffff00007fffL, 0x0L
+ };
+ static final long[] jjbitVec31 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0x3fffffffffffffL, 0x0L
+ };
+ static final long[] jjbitVec32 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0x3fffffffffL, 0x0L
+ };
+ static final long[] jjbitVec33 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0x1fffL, 0x0L
+ };
+ static final long[] jjbitVec34 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xfffffffffL, 0x0L
+ };
+ static final long[] jjbitVec35 = {
+ 0x3fffffffffffL, 0x0L, 0x0L, 0x0L
+ };
+ static final long[] jjbitVec36 = {
+ 0x5f7ffdffa0f8007fL, 0xffffffffffffffdbL, 0x3ffffffffffffL, 0xfffffffffff80000L
+ };
+ static final long[] jjbitVec37 = {
+ 0x3fffffffffffffffL, 0xffffffffffff0000L, 0xfffffffffffcffffL, 0xfff0000000000ffL
+ };
+ static final long[] jjbitVec38 = {
+ 0x18000000000000L, 0xffd702000000e000L, 0xffffffffffffffffL, 0x1fffffffffffffffL
+ };
+ static final long[] jjbitVec39 = {
+ 0x87fffffe00000010L, 0xffffffe007fffffeL, 0x7fffffffffffffffL, 0x631cfcfcfcL
+ };
+ static final long[] jjbitVec40 = {
+ 0x0L, 0x0L, 0x420043cffffffffL, 0xff7fffffff7fffffL
+ };
+ static final long[] jjbitVec41 = {
+ 0xffffffffffffffffL, 0x400000700007fffL, 0xfffffffbffffd740L, 0xffffffcff7fffL
+ };
+ static final long[] jjbitVec42 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xfffffffffffff07bL, 0x33fffffffff199fL
+ };
+ static final long[] jjbitVec43 = {
+ 0xfffe000000000000L, 0xfffffffe027fffffL, 0xbbfffffbfffe00ffL, 0x707ffffff0016L
+ };
+ static final long[] jjbitVec44 = {
+ 0x7fffffe00000000L, 0xffff03ff003fffffL, 0xffffffffffffffffL, 0x1fff3dff9fefffffL
+ };
+ static final long[] jjbitVec45 = {
+ 0xffff1fffffff8000L, 0x7ffL, 0x1ffffffffffffL, 0x0L
+ };
+ static final long[] jjbitVec46 = {
+ 0xf3ffffffffffffeeL, 0xffcfff1f3fffL, 0xd3c5fdfffff99feeL, 0xfffcfb080399fL
+ };
+ static final long[] jjbitVec47 = {
+ 0xd36dfdfffff987e4L, 0x1fffc05e003987L, 0xf3edfdfffffbafeeL, 0xffc100013bbfL
+ };
+ static final long[] jjbitVec48 = {
+ 0xf3cdfdfffff99feeL, 0xffc3b0c0398fL, 0xc3bfc718d63dc7ecL, 0xff8000803dc7L
+ };
+ static final long[] jjbitVec49 = {
+ 0xc3effdfffffddfeeL, 0xffc300603ddfL, 0xc3effdfffffddfecL, 0xffc340603ddfL
+ };
+ static final long[] jjbitVec50 = {
+ 0xc3fffdfffffddfecL, 0xffc300803dcfL, 0x2ffbfffffc7fffecL, 0xc0000ff5f847fL
+ };
+ static final long[] jjbitVec51 = {
+ 0x87fffffffffffffeL, 0x3ff7fffL, 0x3bffecaefef02596L, 0x33ff3f5fL
+ };
+ static final long[] jjbitVec52 = {
+ 0xc2a003ff03000001L, 0xfffe07fffffffeffL, 0x1ffffffffeff0fdfL, 0x40L
+ };
+ static final long[] jjbitVec53 = {
+ 0x3c7f6fbffffffffL, 0x3ff03ffL, 0xffffffff00000000L, 0x7fffffffff003fL
+ };
+ static final long[] jjbitVec54 = {
+ 0xffffffff7f3d7fffL, 0x3fe0007ffff7fL, 0xffffffff00000000L, 0x1fffffffffffffL
+ };
+ static final long[] jjbitVec55 = {
+ 0x0L, 0x0L, 0xffffffffffffffffL, 0x3ff080fffffL
+ };
+ static final long[] jjbitVec56 = {
+ 0xffffffff03ff7800L, 0xffffffffffffffL, 0x3ffffffffffL, 0x0L
+ };
+ static final long[] jjbitVec57 = {
+ 0x80007c000000f000L, 0x8000fc0000000001L, 0xffff00000000L, 0x21fff0000L
+ };
+ static final long[] jjbitVec58 = {
+ 0x73efffe000000e0L, 0xfffffffffffffffeL, 0xfffffffe661fffffL, 0x7fffffffffffffffL
+ };
+ static final long[] jjbitVec59 = {
+ 0x5f7ffdffe0f8007fL, 0xffffffffffffffdbL, 0x3ffffffffffffL, 0xfffffffffff80000L
+ };
+ static final long[] jjbitVec60 = {
+ 0x18000f00000000L, 0xffd702000000e000L, 0xffffffffffffffffL, 0x9fffffffffffffffL
+ };
+ static final long[] jjbitVec61 = {
+ 0x87fffffe03ff0010L, 0xffffffe007fffffeL, 0x7fffffffffffffffL, 0xe0000631cfcfcfcL
+ };
+
+ private int jjMoveNfa_0(int startState, int curPos) {
+ int[] nextStates;
+ int startsAt = 0;
+ jjnewStateCnt = 71;
+ int i = 1;
+ jjstateSet[0] = startState;
+ int j, kind = 0x7fffffff;
+ for (; ;) {
+ if (++jjround == 0x7fffffff)
+ ReInitRounds();
+ if (curChar < 64) {
+ long l = 1L << curChar;
+ MatchLoop:
+ do {
+ switch (jjstateSet[--i]) {
+ case 1:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(0, 6);
+ else if ((0x100003600L & l) != 0L) {
+ if (kind > 3)
+ kind = 3;
+ jjCheckNAdd(0);
+ } else if (curChar == 47)
+ jjAddStates(7, 8);
+ else if (curChar == 36) {
+ if (kind > 72)
+ kind = 72;
+ jjCheckNAdd(29);
+ } else if (curChar == 34)
+ jjCheckNAddStates(9, 11);
+ else if (curChar == 39)
+ jjAddStates(12, 13);
+ else if (curChar == 46)
+ jjCheckNAdd(5);
+ if ((0x3fe000000000000L & l) != 0L) {
+ if (kind > 61)
+ kind = 61;
+ jjCheckNAddTwoStates(2, 3);
+ } else if (curChar == 48) {
+ if (kind > 61)
+ kind = 61;
+ jjCheckNAddStates(14, 18);
+ }
+ break;
+ case 48:
+ if (curChar == 47) {
+ if (kind > 4)
+ kind = 4;
+ jjCheckNAddStates(19, 21);
+ } else if (curChar == 42)
+ jjstateSet[jjnewStateCnt++] = 46;
+ break;
+ case 0:
+ if ((0x100003600L & l) == 0L)
+ break;
+ if (kind > 3)
+ kind = 3;
+ jjCheckNAdd(0);
+ break;
+ case 2:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 61)
+ kind = 61;
+ jjCheckNAddTwoStates(2, 3);
+ break;
+ case 4:
+ if (curChar == 46)
+ jjCheckNAdd(5);
+ break;
+ case 5:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 65)
+ kind = 65;
+ jjCheckNAddStates(22, 24);
+ break;
+ case 7:
+ if ((0x280000000000L & l) != 0L)
+ jjCheckNAdd(8);
+ break;
+ case 8:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 65)
+ kind = 65;
+ jjCheckNAddTwoStates(8, 9);
+ break;
+ case 10:
+ if (curChar == 39)
+ jjAddStates(12, 13);
+ break;
+ case 11:
+ if ((0xffffff7fffffdbffL & l) != 0L)
+ jjCheckNAdd(12);
+ break;
+ case 12:
+ if (curChar == 39 && kind > 70)
+ kind = 70;
+ break;
+ case 14:
+ if ((0x8400000000L & l) != 0L)
+ jjCheckNAdd(12);
+ break;
+ case 15:
+ if ((0xff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(16, 12);
+ break;
+ case 16:
+ if ((0xff000000000000L & l) != 0L)
+ jjCheckNAdd(12);
+ break;
+ case 17:
+ if ((0xf000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 18;
+ break;
+ case 18:
+ if ((0xff000000000000L & l) != 0L)
+ jjCheckNAdd(16);
+ break;
+ case 19:
+ if (curChar == 34)
+ jjCheckNAddStates(9, 11);
+ break;
+ case 20:
+ if ((0xfffffffbffffdbffL & l) != 0L)
+ jjCheckNAddStates(9, 11);
+ break;
+ case 22:
+ if ((0x8400000000L & l) != 0L)
+ jjCheckNAddStates(9, 11);
+ break;
+ case 23:
+ if (curChar == 34 && kind > 71)
+ kind = 71;
+ break;
+ case 24:
+ if ((0xff000000000000L & l) != 0L)
+ jjCheckNAddStates(25, 28);
+ break;
+ case 25:
+ if ((0xff000000000000L & l) != 0L)
+ jjCheckNAddStates(9, 11);
+ break;
+ case 26:
+ if ((0xf000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 27;
+ break;
+ case 27:
+ if ((0xff000000000000L & l) != 0L)
+ jjCheckNAdd(25);
+ break;
+ case 28:
+ if (curChar != 36)
+ break;
+ if (kind > 72)
+ kind = 72;
+ jjCheckNAdd(29);
+ break;
+ case 29:
+ if ((0x3ff00100fffc1ffL & l) == 0L)
+ break;
+ if (kind > 72)
+ kind = 72;
+ jjCheckNAdd(29);
+ break;
+ case 30:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(0, 6);
+ break;
+ case 31:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(29, 31);
+ break;
+ case 33:
+ if ((0x280000000000L & l) != 0L)
+ jjCheckNAdd(34);
+ break;
+ case 34:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(34, 9);
+ break;
+ case 35:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(35, 36);
+ break;
+ case 37:
+ if ((0x280000000000L & l) != 0L)
+ jjCheckNAdd(38);
+ break;
+ case 38:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 65)
+ kind = 65;
+ jjCheckNAddTwoStates(38, 9);
+ break;
+ case 39:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(39, 40);
+ break;
+ case 40:
+ if (curChar != 46)
+ break;
+ if (kind > 65)
+ kind = 65;
+ jjCheckNAddStates(32, 34);
+ break;
+ case 41:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 65)
+ kind = 65;
+ jjCheckNAddStates(32, 34);
+ break;
+ case 43:
+ if ((0x280000000000L & l) != 0L)
+ jjCheckNAdd(44);
+ break;
+ case 44:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 65)
+ kind = 65;
+ jjCheckNAddTwoStates(44, 9);
+ break;
+ case 45:
+ if (curChar == 47)
+ jjAddStates(7, 8);
+ break;
+ case 46:
+ if (curChar == 42)
+ jjstateSet[jjnewStateCnt++] = 47;
+ break;
+ case 47:
+ if ((0xffff7fffffffffffL & l) != 0L && kind > 1)
+ kind = 1;
+ break;
+ case 49:
+ if (curChar != 47)
+ break;
+ if (kind > 4)
+ kind = 4;
+ jjCheckNAddStates(19, 21);
+ break;
+ case 50:
+ if ((0xffffffffffffdbffL & l) == 0L)
+ break;
+ if (kind > 4)
+ kind = 4;
+ jjCheckNAddStates(19, 21);
+ break;
+ case 51:
+ if ((0x2400L & l) != 0L && kind > 4)
+ kind = 4;
+ break;
+ case 52:
+ if (curChar == 10 && kind > 4)
+ kind = 4;
+ break;
+ case 53:
+ if (curChar == 13)
+ jjstateSet[jjnewStateCnt++] = 52;
+ break;
+ case 54:
+ if (curChar != 48)
+ break;
+ if (kind > 61)
+ kind = 61;
+ jjCheckNAddStates(14, 18);
+ break;
+ case 56:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 61)
+ kind = 61;
+ jjCheckNAddTwoStates(56, 3);
+ break;
+ case 57:
+ if ((0xff000000000000L & l) == 0L)
+ break;
+ if (kind > 61)
+ kind = 61;
+ jjCheckNAddTwoStates(57, 3);
+ break;
+ case 59:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjAddStates(35, 36);
+ break;
+ case 60:
+ if (curChar == 46)
+ jjCheckNAdd(61);
+ break;
+ case 61:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(61, 62);
+ break;
+ case 63:
+ if ((0x280000000000L & l) != 0L)
+ jjCheckNAdd(64);
+ break;
+ case 64:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 65)
+ kind = 65;
+ jjCheckNAddTwoStates(64, 9);
+ break;
+ case 66:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(37, 39);
+ break;
+ case 67:
+ if (curChar == 46)
+ jjCheckNAdd(68);
+ break;
+ case 69:
+ if ((0x280000000000L & l) != 0L)
+ jjCheckNAdd(70);
+ break;
+ case 70:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 65)
+ kind = 65;
+ jjCheckNAddTwoStates(70, 9);
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ } else if (curChar < 128) {
+ long l = 1L << (curChar & 077);
+ MatchLoop:
+ do {
+ switch (jjstateSet[--i]) {
+ case 1:
+ if ((0x7fffffe87fffffeL & l) == 0L)
+ break;
+ if (kind > 72)
+ kind = 72;
+ jjCheckNAdd(29);
+ break;
+ case 3:
+ if ((0x100000001000L & l) != 0L && kind > 61)
+ kind = 61;
+ break;
+ case 6:
+ if ((0x2000000020L & l) != 0L)
+ jjAddStates(40, 41);
+ break;
+ case 9:
+ if ((0x5000000050L & l) != 0L && kind > 65)
+ kind = 65;
+ break;
+ case 11:
+ if ((0xffffffffefffffffL & l) != 0L)
+ jjCheckNAdd(12);
+ break;
+ case 13:
+ if (curChar == 92)
+ jjAddStates(42, 44);
+ break;
+ case 14:
+ if ((0x14404410000000L & l) != 0L)
+ jjCheckNAdd(12);
+ break;
+ case 20:
+ if ((0xffffffffefffffffL & l) != 0L)
+ jjCheckNAddStates(9, 11);
+ break;
+ case 21:
+ if (curChar == 92)
+ jjAddStates(45, 47);
+ break;
+ case 22:
+ if ((0x14404410000000L & l) != 0L)
+ jjCheckNAddStates(9, 11);
+ break;
+ case 29:
+ if ((0x87fffffe87fffffeL & l) == 0L)
+ break;
+ if (kind > 72)
+ kind = 72;
+ jjCheckNAdd(29);
+ break;
+ case 32:
+ if ((0x2000000020L & l) != 0L)
+ jjAddStates(48, 49);
+ break;
+ case 36:
+ if ((0x2000000020L & l) != 0L)
+ jjAddStates(50, 51);
+ break;
+ case 42:
+ if ((0x2000000020L & l) != 0L)
+ jjAddStates(52, 53);
+ break;
+ case 47:
+ if (kind > 1)
+ kind = 1;
+ break;
+ case 50:
+ if (kind > 4)
+ kind = 4;
+ jjAddStates(19, 21);
+ break;
+ case 55:
+ if ((0x100000001000000L & l) != 0L)
+ jjCheckNAdd(56);
+ break;
+ case 56:
+ if ((0x7e0000007eL & l) == 0L)
+ break;
+ if (kind > 61)
+ kind = 61;
+ jjCheckNAddTwoStates(56, 3);
+ break;
+ case 58:
+ if ((0x100000001000000L & l) != 0L)
+ jjCheckNAddTwoStates(59, 60);
+ break;
+ case 59:
+ if ((0x7e0000007eL & l) != 0L)
+ jjCheckNAddTwoStates(59, 60);
+ break;
+ case 61:
+ if ((0x7e0000007eL & l) != 0L)
+ jjAddStates(54, 55);
+ break;
+ case 62:
+ if ((0x1000000010000L & l) != 0L)
+ jjAddStates(56, 57);
+ break;
+ case 65:
+ if ((0x100000001000000L & l) != 0L)
+ jjCheckNAdd(66);
+ break;
+ case 66:
+ if ((0x7e0000007eL & l) != 0L)
+ jjCheckNAddStates(37, 39);
+ break;
+ case 68:
+ if ((0x1000000010000L & l) != 0L)
+ jjAddStates(58, 59);
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ } else {
+ int hiByte = (int) (curChar >> 8);
+ int i1 = hiByte >> 6;
+ long l1 = 1L << (hiByte & 077);
+ int i2 = (curChar & 0xff) >> 6;
+ long l2 = 1L << (curChar & 077);
+ MatchLoop:
+ do {
+ switch (jjstateSet[--i]) {
+ case 1:
+ if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 72)
+ kind = 72;
+ jjCheckNAdd(29);
+ break;
+ case 11:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+ jjstateSet[jjnewStateCnt++] = 12;
+ break;
+ case 20:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+ jjAddStates(9, 11);
+ break;
+ case 29:
+ if (!jjCanMove_2(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 72)
+ kind = 72;
+ jjCheckNAdd(29);
+ break;
+ case 47:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 1)
+ kind = 1;
+ break;
+ case 50:
+ if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 4)
+ kind = 4;
+ jjAddStates(19, 21);
+ break;
+ default:
+ break;
+ }
+ } while (i != startsAt);
+ }
+ if (kind != 0x7fffffff) {
+ jjmatchedKind = kind;
+ jjmatchedPos = curPos;
+ kind = 0x7fffffff;
+ }
+ ++curPos;
+ if ((i = jjnewStateCnt) == (startsAt = 71 - (jjnewStateCnt = startsAt)))
+ return curPos;
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ return curPos;
+ }
+ }
+ }
+
+ private int jjMoveStringLiteralDfa0_2() {
+ switch (curChar) {
+ case 42:
+ return jjMoveStringLiteralDfa1_2(0x40L);
+ default:
+ return 1;
+ }
+ }
+
+ private int jjMoveStringLiteralDfa1_2(long active0) {
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ return 1;
+ }
+ switch (curChar) {
+ case 47:
+ if ((active0 & 0x40L) != 0L)
+ return jjStopAtPos(1, 6);
+ break;
+ default:
+ return 2;
+ }
+ return 2;
+ }
+
+ private int jjMoveStringLiteralDfa0_1() {
+ switch (curChar) {
+ case 42:
+ return jjMoveStringLiteralDfa1_1(0x20L);
+ default:
+ return 1;
+ }
+ }
+
+ private int jjMoveStringLiteralDfa1_1(long active0) {
+ try {
+ curChar = input_stream.readChar();
+ }
+ catch (java.io.IOException e) {
+ return 1;
+ }
+ switch (curChar) {
+ case 47:
+ if ((active0 & 0x20L) != 0L)
+ return jjStopAtPos(1, 5);
+ break;
+ default:
+ return 2;
+ }
+ return 2;
+ }
+
+ static final int[] jjnextStates = {
+ 31, 32, 9, 35, 36, 39, 40, 48, 49, 20, 21, 23, 11, 13, 55, 57,
+ 3, 58, 65, 50, 51, 53, 5, 6, 9, 20, 21, 25, 23, 31, 32, 9,
+ 41, 42, 9, 59, 60, 66, 67, 68, 7, 8, 14, 15, 17, 22, 24, 26,
+ 33, 34, 37, 38, 43, 44, 61, 62, 63, 64, 69, 70,
+ };
+
+ private static boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2) {
+ switch (hiByte) {
+ case 0:
+ return ((jjbitVec2[i2] & l2) != 0L);
+ default:
+ if ((jjbitVec0[i1] & l1) != 0L)
+ return true;
+ return false;
+ }
+ }
+
+ private static boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, long l2) {
+ switch (hiByte) {
+ case 0:
+ return ((jjbitVec4[i2] & l2) != 0L);
+ case 2:
+ return ((jjbitVec5[i2] & l2) != 0L);
+ case 3:
+ return ((jjbitVec6[i2] & l2) != 0L);
+ case 4:
+ return ((jjbitVec7[i2] & l2) != 0L);
+ case 5:
+ return ((jjbitVec8[i2] & l2) != 0L);
+ case 6:
+ return ((jjbitVec9[i2] & l2) != 0L);
+ case 7:
+ return ((jjbitVec10[i2] & l2) != 0L);
+ case 9:
+ return ((jjbitVec11[i2] & l2) != 0L);
+ case 10:
+ return ((jjbitVec12[i2] & l2) != 0L);
+ case 11:
+ return ((jjbitVec13[i2] & l2) != 0L);
+ case 12:
+ return ((jjbitVec14[i2] & l2) != 0L);
+ case 13:
+ return ((jjbitVec15[i2] & l2) != 0L);
+ case 14:
+ return ((jjbitVec16[i2] & l2) != 0L);
+ case 15:
+ return ((jjbitVec17[i2] & l2) != 0L);
+ case 16:
+ return ((jjbitVec18[i2] & l2) != 0L);
+ case 17:
+ return ((jjbitVec19[i2] & l2) != 0L);
+ case 18:
+ return ((jjbitVec20[i2] & l2) != 0L);
+ case 19:
+ return ((jjbitVec21[i2] & l2) != 0L);
+ case 20:
+ return ((jjbitVec0[i2] & l2) != 0L);
+ case 22:
+ return ((jjbitVec22[i2] & l2) != 0L);
+ case 23:
+ return ((jjbitVec23[i2] & l2) != 0L);
+ case 24:
+ return ((jjbitVec24[i2] & l2) != 0L);
+ case 30:
+ return ((jjbitVec25[i2] & l2) != 0L);
+ case 31:
+ return ((jjbitVec26[i2] & l2) != 0L);
+ case 32:
+ return ((jjbitVec27[i2] & l2) != 0L);
+ case 33:
+ return ((jjbitVec28[i2] & l2) != 0L);
+ case 48:
+ return ((jjbitVec29[i2] & l2) != 0L);
+ case 49:
+ return ((jjbitVec30[i2] & l2) != 0L);
+ case 77:
+ return ((jjbitVec31[i2] & l2) != 0L);
+ case 159:
+ return ((jjbitVec32[i2] & l2) != 0L);
+ case 164:
+ return ((jjbitVec33[i2] & l2) != 0L);
+ case 215:
+ return ((jjbitVec34[i2] & l2) != 0L);
+ case 250:
+ return ((jjbitVec35[i2] & l2) != 0L);
+ case 251:
+ return ((jjbitVec36[i2] & l2) != 0L);
+ case 253:
+ return ((jjbitVec37[i2] & l2) != 0L);
+ case 254:
+ return ((jjbitVec38[i2] & l2) != 0L);
+ case 255:
+ return ((jjbitVec39[i2] & l2) != 0L);
+ default:
+ if ((jjbitVec3[i1] & l1) != 0L)
+ return true;
+ return false;
+ }
+ }
+
+ private static boolean jjCanMove_2(int hiByte, int i1, int i2, long l1, long l2) {
+ switch (hiByte) {
+ case 0:
+ return ((jjbitVec40[i2] & l2) != 0L);
+ case 2:
+ return ((jjbitVec5[i2] & l2) != 0L);
+ case 3:
+ return ((jjbitVec41[i2] & l2) != 0L);
+ case 4:
+ return ((jjbitVec42[i2] & l2) != 0L);
+ case 5:
+ return ((jjbitVec43[i2] & l2) != 0L);
+ case 6:
+ return ((jjbitVec44[i2] & l2) != 0L);
+ case 7:
+ return ((jjbitVec45[i2] & l2) != 0L);
+ case 9:
+ return ((jjbitVec46[i2] & l2) != 0L);
+ case 10:
+ return ((jjbitVec47[i2] & l2) != 0L);
+ case 11:
+ return ((jjbitVec48[i2] & l2) != 0L);
+ case 12:
+ return ((jjbitVec49[i2] & l2) != 0L);
+ case 13:
+ return ((jjbitVec50[i2] & l2) != 0L);
+ case 14:
+ return ((jjbitVec51[i2] & l2) != 0L);
+ case 15:
+ return ((jjbitVec52[i2] & l2) != 0L);
+ case 16:
+ return ((jjbitVec53[i2] & l2) != 0L);
+ case 17:
+ return ((jjbitVec19[i2] & l2) != 0L);
+ case 18:
+ return ((jjbitVec20[i2] & l2) != 0L);
+ case 19:
+ return ((jjbitVec54[i2] & l2) != 0L);
+ case 20:
+ return ((jjbitVec0[i2] & l2) != 0L);
+ case 22:
+ return ((jjbitVec22[i2] & l2) != 0L);
+ case 23:
+ return ((jjbitVec55[i2] & l2) != 0L);
+ case 24:
+ return ((jjbitVec56[i2] & l2) != 0L);
+ case 30:
+ return ((jjbitVec25[i2] & l2) != 0L);
+ case 31:
+ return ((jjbitVec26[i2] & l2) != 0L);
+ case 32:
+ return ((jjbitVec57[i2] & l2) != 0L);
+ case 33:
+ return ((jjbitVec28[i2] & l2) != 0L);
+ case 48:
+ return ((jjbitVec58[i2] & l2) != 0L);
+ case 49:
+ return ((jjbitVec30[i2] & l2) != 0L);
+ case 77:
+ return ((jjbitVec31[i2] & l2) != 0L);
+ case 159:
+ return ((jjbitVec32[i2] & l2) != 0L);
+ case 164:
+ return ((jjbitVec33[i2] & l2) != 0L);
+ case 215:
+ return ((jjbitVec34[i2] & l2) != 0L);
+ case 250:
+ return ((jjbitVec35[i2] & l2) != 0L);
+ case 251:
+ return ((jjbitVec59[i2] & l2) != 0L);
+ case 253:
+ return ((jjbitVec37[i2] & l2) != 0L);
+ case 254:
+ return ((jjbitVec60[i2] & l2) != 0L);
+ case 255:
+ return ((jjbitVec61[i2] & l2) != 0L);
+ default:
+ if ((jjbitVec3[i1] & l1) != 0L)
+ return true;
+ return false;
+ }
+ }
+
+ public static final String[] jjstrLiteralImages = {
+ "", null, null, null, null, null, null, null,
+ "\141\142\163\164\162\141\143\164", "\141\163\163\145\162\164", "\142\157\157\154\145\141\156",
+ "\142\162\145\141\153", "\142\171\164\145", "\143\141\163\145", "\143\141\164\143\150",
+ "\143\150\141\162", "\143\154\141\163\163", "\143\157\156\163\164",
+ "\143\157\156\164\151\156\165\145", "\144\145\146\141\165\154\164", "\144\157", "\144\157\165\142\154\145",
+ "\145\154\163\145", "\145\156\165\155", "\145\170\164\145\156\144\163", "\146\141\154\163\145",
+ "\146\151\156\141\154", "\146\151\156\141\154\154\171", "\146\154\157\141\164", "\146\157\162",
+ "\147\157\164\157", "\151\146", "\151\155\160\154\145\155\145\156\164\163",
+ "\151\155\160\157\162\164", "\151\156\163\164\141\156\143\145\157\146", "\151\156\164",
+ "\151\156\164\145\162\146\141\143\145", "\154\157\156\147", "\156\141\164\151\166\145", "\156\145\167",
+ "\156\165\154\154", "\160\141\143\153\141\147\145", "\160\162\151\166\141\164\145",
+ "\160\162\157\164\145\143\164\145\144", "\160\165\142\154\151\143", "\162\145\164\165\162\156",
+ "\163\150\157\162\164", "\163\164\141\164\151\143", "\163\164\162\151\143\164\146\160",
+ "\163\165\160\145\162", "\163\167\151\164\143\150",
+ "\163\171\156\143\150\162\157\156\151\172\145\144", "\164\150\151\163", "\164\150\162\157\167", "\164\150\162\157\167\163",
+ "\164\162\141\156\163\151\145\156\164", "\164\162\165\145", "\164\162\171", "\166\157\151\144",
+ "\166\157\154\141\164\151\154\145", "\167\150\151\154\145", null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, "\50", "\51", "\173", "\175", "\133", "\135", "\73",
+ "\54", "\56", "\100", "\75", "\74", "\41", "\176", "\77", "\72", "\75\75", "\74\75",
+ "\76\75", "\41\75", "\174\174", "\46\46", "\53\53", "\55\55", "\53", "\55", "\52",
+ "\57", "\46", "\174", "\136", "\45", "\74\74", "\53\75", "\55\75", "\52\75",
+ "\57\75", "\46\75", "\174\75", "\136\75", "\45\75", "\74\74\75", "\76\76\75",
+ "\76\76\76\75", "\56\56\56", "\76\76\76", "\76\76", "\76", "\32", null,};
+ public static final String[] lexStateNames = {
+ "DEFAULT",
+ "IN_FORMAL_COMMENT",
+ "IN_MULTI_LINE_COMMENT",
+ };
+ public static final int[] jjnewLexState = {
+ -1, 1, 2, -1, -1, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ };
+ static final long[] jjtoToken = {
+ 0x3fffffffffffff01L, 0x1ffffffffffff9c2L,
+ };
+ static final long[] jjtoSkip = {
+ 0x78L, 0x0L,
+ };
+ static final long[] jjtoSpecial = {
+ 0x78L, 0x0L,
+ };
+ static final long[] jjtoMore = {
+ 0x86L, 0x0L,
+ };
+ protected JavaCharStream input_stream;
+ private final int[] jjrounds = new int[71];
+ private final int[] jjstateSet = new int[142];
+ StringBuffer image;
+ int jjimageLen;
+ int lengthOfMatch;
+ protected char curChar;
+
+ public JavaParserTokenManager(JavaCharStream stream) {
+ if (JavaCharStream.staticFlag)
+ throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
+ input_stream = stream;
+ }
+
+ public JavaParserTokenManager(JavaCharStream stream, int lexState) {
+ this(stream);
+ SwitchTo(lexState);
+ }
+
+ public void ReInit(JavaCharStream stream) {
+ jjmatchedPos = jjnewStateCnt = 0;
+ curLexState = defaultLexState;
+ input_stream = stream;
+ ReInitRounds();
+ }
+
+ private void ReInitRounds() {
+ int i;
+ jjround = 0x80000001;
+ for (i = 71; i-- > 0;)
+ jjrounds[i] = 0x80000000;
+ }
+
+ public void ReInit(JavaCharStream stream, int lexState) {
+ ReInit(stream);
+ SwitchTo(lexState);
+ }
+
+ public void SwitchTo(int lexState) {
+ if (lexState >= 3 || lexState < 0)
+ throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
+ else
+ curLexState = lexState;
+ }
+
+ protected Token jjFillToken() {
+ Token t = Token.newToken(jjmatchedKind);
+ t.kind = jjmatchedKind;
+ String im = jjstrLiteralImages[jjmatchedKind];
+ t.image = (im == null) ? input_stream.GetImage() : im;
+ t.beginLine = input_stream.getBeginLine();
+ t.beginColumn = input_stream.getBeginColumn();
+ t.endLine = input_stream.getEndLine();
+ t.endColumn = input_stream.getEndColumn();
+ return t;
+ }
+
+ int curLexState = 0;
+ int defaultLexState = 0;
+ int jjnewStateCnt;
+ int jjround;
+ int jjmatchedPos;
+ int jjmatchedKind;
+
+ public Token getNextToken() {
+ int kind;
+ Token specialToken = null;
+ Token matchedToken;
+ int curPos = 0;
+
+ EOFLoop:
+ for (; ;) {
+ try {
+ curChar = input_stream.BeginToken();
+ }
+ catch (java.io.IOException e) {
+ jjmatchedKind = 0;
+ matchedToken = jjFillToken();
+ matchedToken.specialToken = specialToken;
+ return matchedToken;
+ }
+ image = null;
+ jjimageLen = 0;
+
+ for (; ;) {
+ switch (curLexState) {
+ case 0:
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_0();
+ if (jjmatchedPos == 0 && jjmatchedKind > 124) {
+ jjmatchedKind = 124;
+ }
+ break;
+ case 1:
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_1();
+ if (jjmatchedPos == 0 && jjmatchedKind > 7) {
+ jjmatchedKind = 7;
+ }
+ break;
+ case 2:
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_2();
+ if (jjmatchedPos == 0 && jjmatchedKind > 7) {
+ jjmatchedKind = 7;
+ }
+ break;
+ }
+ if (jjmatchedKind != 0x7fffffff) {
+ if (jjmatchedPos + 1 < curPos)
+ input_stream.backup(curPos - jjmatchedPos - 1);
+ if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) {
+ matchedToken = jjFillToken();
+ matchedToken.specialToken = specialToken;
+ TokenLexicalActions(matchedToken);
+ if (jjnewLexState[jjmatchedKind] != -1)
+ curLexState = jjnewLexState[jjmatchedKind];
+ return matchedToken;
+ } else
+ if ((jjtoSkip[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) {
+ if ((jjtoSpecial[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) {
+ matchedToken = jjFillToken();
+ if (specialToken == null)
+ specialToken = matchedToken;
+ else {
+ matchedToken.specialToken = specialToken;
+ specialToken = (specialToken.next = matchedToken);
+ }
+ SkipLexicalActions(matchedToken);
+ } else
+ SkipLexicalActions(null);
+ if (jjnewLexState[jjmatchedKind] != -1)
+ curLexState = jjnewLexState[jjmatchedKind];
+ continue EOFLoop;
+ }
+ MoreLexicalActions();
+ if (jjnewLexState[jjmatchedKind] != -1)
+ curLexState = jjnewLexState[jjmatchedKind];
+ curPos = 0;
+ jjmatchedKind = 0x7fffffff;
+ try {
+ curChar = input_stream.readChar();
+ continue;
+ }
+ catch (java.io.IOException e1) {
+ }
+ }
+ int error_line = input_stream.getEndLine();
+ int error_column = input_stream.getEndColumn();
+ String error_after = null;
+ boolean EOFSeen = false;
+ try {
+ input_stream.readChar();
+ input_stream.backup(1);
+ }
+ catch (java.io.IOException e1) {
+ EOFSeen = true;
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ if (curChar == '\n' || curChar == '\r') {
+ error_line++;
+ error_column = 0;
+ } else
+ error_column++;
+ }
+ if (!EOFSeen) {
+ input_stream.backup(1);
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ }
+ throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
+ }
+ }
+ }
+
+ void SkipLexicalActions(Token matchedToken) {
+ switch (jjmatchedKind) {
+ default:
+ break;
+ }
+ }
+
+ void MoreLexicalActions() {
+ jjimageLen += (lengthOfMatch = jjmatchedPos + 1);
+ switch (jjmatchedKind) {
+ case 1:
+ if (image == null)
+ image = new StringBuffer();
+ image.append(input_stream.GetSuffix(jjimageLen));
+ jjimageLen = 0;
+ input_stream.backup(1);
+ break;
+ default:
+ break;
+ }
+ }
+
+ void TokenLexicalActions(Token matchedToken) {
+ switch (jjmatchedKind) {
+ case 120:
+ if (image == null)
+ image = new StringBuffer();
+ image.append(jjstrLiteralImages[120]);
+ matchedToken.kind = GT;
+ ((Token.GTToken) matchedToken).realKind = RUNSIGNEDSHIFT;
+ input_stream.backup(2);
+ matchedToken.image = ">";
+ break;
+ case 121:
+ if (image == null)
+ image = new StringBuffer();
+ image.append(jjstrLiteralImages[121]);
+ matchedToken.kind = GT;
+ ((Token.GTToken) matchedToken).realKind = RSIGNEDSHIFT;
+ input_stream.backup(1);
+ matchedToken.image = ">";
+ break;
+ default:
+ break;
+ }
+ }
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaParserTreeConstants.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaParserTreeConstants.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/JavaParserTreeConstants.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,230 @@
+/* Generated By:JJTree: Do not edit this line. ./JavaParserTreeConstants.java */
+
+package org.nuiton.guix.parser;
+
+public interface JavaParserTreeConstants {
+ public int JJTLINE = 0;
+ public int JJTCOMPILATIONUNIT = 1;
+ public int JJTPACKAGEDECLARATION = 2;
+ public int JJTIMPORTDECLARATION = 3;
+ public int JJTMODIFIERS = 4;
+ public int JJTTYPEDECLARATION = 5;
+ public int JJTCLASSORINTERFACEDECLARATION = 6;
+ public int JJTEXTENDSLIST = 7;
+ public int JJTIMPLEMENTSLIST = 8;
+ public int JJTENUMDECLARATION = 9;
+ public int JJTENUMBODY = 10;
+ public int JJTENUMCONSTANT = 11;
+ public int JJTTYPEPARAMETERS = 12;
+ public int JJTTYPEPARAMETER = 13;
+ public int JJTTYPEBOUND = 14;
+ public int JJTCLASSORINTERFACEBODY = 15;
+ public int JJTCLASSORINTERFACEBODYDECLARATION = 16;
+ public int JJTFIELDDECLARATION = 17;
+ public int JJTVARIABLEDECLARATOR = 18;
+ public int JJTVARIABLEDECLARATORID = 19;
+ public int JJTVARIABLEINITIALIZER = 20;
+ public int JJTARRAYINITIALIZER = 21;
+ public int JJTMETHODDECLARATION = 22;
+ public int JJTMETHODDECLARATOR = 23;
+ public int JJTFORMALPARAMETERS = 24;
+ public int JJTFORMALPARAMETER = 25;
+ public int JJTCONSTRUCTORDECLARATION = 26;
+ public int JJTEXPLICITCONSTRUCTORINVOCATION = 27;
+ public int JJTINITIALIZER = 28;
+ public int JJTTYPE = 29;
+ public int JJTREFERENCETYPE = 30;
+ public int JJTCLASSORINTERFACETYPE = 31;
+ public int JJTTYPEARGUMENTS = 32;
+ public int JJTTYPEARGUMENT = 33;
+ public int JJTWILDCARDBOUNDS = 34;
+ public int JJTPRIMITIVETYPE = 35;
+ public int JJTRESULTTYPE = 36;
+ public int JJTNAME = 37;
+ public int JJTNAMELIST = 38;
+ public int JJTEXPRESSION = 39;
+ public int JJTASSIGNMENTOPERATOR = 40;
+ public int JJTASSIGNMENTEXPRESSION = 41;
+ public int JJTCONDITIONALEXPRESSION = 42;
+ public int JJTCONDITIONALOREXPRESSION = 43;
+ public int JJTCONDITIONALANDEXPRESSION = 44;
+ public int JJTINCLUSIVEOREXPRESSION = 45;
+ public int JJTEXCLUSIVEOREXPRESSION = 46;
+ public int JJTANDEXPRESSION = 47;
+ public int JJTEQUALITYEXPRESSION = 48;
+ public int JJTINSTANCEOFEXPRESSION = 49;
+ public int JJTRELATIONALEXPRESSION = 50;
+ public int JJTSHIFTEXPRESSION = 51;
+ public int JJTADDITIVEEXPRESSION = 52;
+ public int JJTMULTIPLICATIVEEXPRESSION = 53;
+ public int JJTUNARYEXPRESSION = 54;
+ public int JJTPREINCREMENTEXPRESSION = 55;
+ public int JJTPREDECREMENTEXPRESSION = 56;
+ public int JJTUNARYEXPRESSIONNOTPLUSMINUS = 57;
+ public int JJTCASTLOOKAHEAD = 58;
+ public int JJTPOSTFIXEXPRESSION = 59;
+ public int JJTPOSTFIXOPERATOR = 60;
+ public int JJTCASTEXPRESSION = 61;
+ public int JJTPRIMARYEXPRESSION = 62;
+ public int JJTMEMBERSELECTOR = 63;
+ public int JJTPRIMARYPREFIX = 64;
+ public int JJTPRIMARYSUFFIX = 65;
+ public int JJTLITERAL = 66;
+ public int JJTBOOLEANLITERAL = 67;
+ public int JJTNULLLITERAL = 68;
+ public int JJTARGUMENTS = 69;
+ public int JJTARGUMENTLIST = 70;
+ public int JJTALLOCATIONEXPRESSION = 71;
+ public int JJTARRAYDIMSANDINITS = 72;
+ public int JJTSTATEMENT = 73;
+ public int JJTASSERTSTATEMENT = 74;
+ public int JJTLABELEDSTATEMENT = 75;
+ public int JJTBLOCK = 76;
+ public int JJTBLOCKSTATEMENT = 77;
+ public int JJTLOCALVARIABLEDECLARATION = 78;
+ public int JJTEMPTYSTATEMENT = 79;
+ public int JJTSTATEMENTEXPRESSION = 80;
+ public int JJTSWITCHSTATEMENT = 81;
+ public int JJTSWITCHLABEL = 82;
+ public int JJTIFSTATEMENT = 83;
+ public int JJTWHILESTATEMENT = 84;
+ public int JJTDOSTATEMENT = 85;
+ public int JJTFORSTATEMENT = 86;
+ public int JJTFORINIT = 87;
+ public int JJTSTATEMENTEXPRESSIONLIST = 88;
+ public int JJTFORUPDATE = 89;
+ public int JJTBREAKSTATEMENT = 90;
+ public int JJTCONTINUESTATEMENT = 91;
+ public int JJTRETURNSTATEMENT = 92;
+ public int JJTTHROWSTATEMENT = 93;
+ public int JJTSYNCHRONIZEDSTATEMENT = 94;
+ public int JJTTRYSTATEMENT = 95;
+ public int JJTRUNSIGNEDSHIFT = 96;
+ public int JJTRSIGNEDSHIFT = 97;
+ public int JJTANNOTATION = 98;
+ public int JJTNORMALANNOTATION = 99;
+ public int JJTMARKERANNOTATION = 100;
+ public int JJTSINGLEMEMBERANNOTATION = 101;
+ public int JJTMEMBERVALUEPAIRS = 102;
+ public int JJTMEMBERVALUEPAIR = 103;
+ public int JJTMEMBERVALUE = 104;
+ public int JJTMEMBERVALUEARRAYINITIALIZER = 105;
+ public int JJTANNOTATIONTYPEDECLARATION = 106;
+ public int JJTANNOTATIONTYPEBODY = 107;
+ public int JJTANNOTATIONTYPEMEMBERDECLARATION = 108;
+ public int JJTDEFAULTVALUE = 109;
+
+
+ public String[] jjtNodeName = {
+ "Line",
+ "CompilationUnit",
+ "PackageDeclaration",
+ "ImportDeclaration",
+ "Modifiers",
+ "TypeDeclaration",
+ "ClassOrInterfaceDeclaration",
+ "ExtendsList",
+ "ImplementsList",
+ "EnumDeclaration",
+ "EnumBody",
+ "EnumConstant",
+ "TypeParameters",
+ "TypeParameter",
+ "TypeBound",
+ "ClassOrInterfaceBody",
+ "ClassOrInterfaceBodyDeclaration",
+ "FieldDeclaration",
+ "VariableDeclarator",
+ "VariableDeclaratorId",
+ "VariableInitializer",
+ "ArrayInitializer",
+ "MethodDeclaration",
+ "MethodDeclarator",
+ "FormalParameters",
+ "FormalParameter",
+ "ConstructorDeclaration",
+ "ExplicitConstructorInvocation",
+ "Initializer",
+ "Type",
+ "ReferenceType",
+ "ClassOrInterfaceType",
+ "TypeArguments",
+ "TypeArgument",
+ "WildcardBounds",
+ "PrimitiveType",
+ "ResultType",
+ "Name",
+ "NameList",
+ "Expression",
+ "AssignmentOperator",
+ "AssignmentExpression",
+ "ConditionalExpression",
+ "ConditionalOrExpression",
+ "ConditionalAndExpression",
+ "InclusiveOrExpression",
+ "ExclusiveOrExpression",
+ "AndExpression",
+ "EqualityExpression",
+ "InstanceOfExpression",
+ "RelationalExpression",
+ "ShiftExpression",
+ "AdditiveExpression",
+ "MultiplicativeExpression",
+ "UnaryExpression",
+ "PreIncrementExpression",
+ "PreDecrementExpression",
+ "UnaryExpressionNotPlusMinus",
+ "CastLookahead",
+ "PostfixExpression",
+ "PostfixOperator",
+ "CastExpression",
+ "PrimaryExpression",
+ "MemberSelector",
+ "PrimaryPrefix",
+ "PrimarySuffix",
+ "Literal",
+ "BooleanLiteral",
+ "NullLiteral",
+ "Arguments",
+ "ArgumentList",
+ "AllocationExpression",
+ "ArrayDimsAndInits",
+ "Statement",
+ "AssertStatement",
+ "LabeledStatement",
+ "Block",
+ "BlockStatement",
+ "LocalVariableDeclaration",
+ "EmptyStatement",
+ "StatementExpression",
+ "SwitchStatement",
+ "SwitchLabel",
+ "IfStatement",
+ "WhileStatement",
+ "DoStatement",
+ "ForStatement",
+ "ForInit",
+ "StatementExpressionList",
+ "ForUpdate",
+ "BreakStatement",
+ "ContinueStatement",
+ "ReturnStatement",
+ "ThrowStatement",
+ "SynchronizedStatement",
+ "TryStatement",
+ "RUNSIGNEDSHIFT",
+ "RSIGNEDSHIFT",
+ "Annotation",
+ "NormalAnnotation",
+ "MarkerAnnotation",
+ "SingleMemberAnnotation",
+ "MemberValuePairs",
+ "MemberValuePair",
+ "MemberValue",
+ "MemberValueArrayInitializer",
+ "AnnotationTypeDeclaration",
+ "AnnotationTypeBody",
+ "AnnotationTypeMemberDeclaration",
+ "DefaultValue",
+ };
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Node.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Node.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Node.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,51 @@
+/* Generated By:JJTree: Do not edit this line. Node.java */
+
+package org.nuiton.guix.parser;
+
+/* All AST nodes must implement this interface. It provides basic
+ machinery for constructing the parent and child relationships
+ between nodes. */
+
+public interface Node {
+
+ /**
+ * This method is called after the node has been made the current
+ * node. It indicates that child nodes can now be added to it.
+ */
+ public void jjtOpen();
+
+ /**
+ * This method is called after all the child nodes have been
+ * added.
+ */
+ public void jjtClose();
+
+ /**
+ * This pair of methods are used to inform the node of its
+ * parent.
+ *
+ * @param n node
+ */
+ public void jjtSetParent(Node n);
+
+ public Node jjtGetParent();
+
+ /**
+ * This method tells the node to add its argument to the node's
+ * list of children.
+ *
+ * @param n node
+ * @param i index ?
+ */
+ public void jjtAddChild(Node n, int i);
+
+ /**
+ * @param i index of child
+ * @return a child node. The children are numbered
+ * from zero, left to right.
+ */
+ public Node jjtGetChild(int i);
+
+ /** @return the number of children the node has. */
+ public int jjtGetNumChildren();
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/ParseException.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/ParseException.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/ParseException.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,214 @@
+/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 3.0 */
+package org.nuiton.guix.parser;
+
+/**
+ * This exception is thrown when parse errors are encountered.
+ * You can explicitly create objects of this exception type by
+ * calling the method generateParseException in the generated
+ * parser.
+ * <p/>
+ * You can modify this class to customize your error reporting
+ * mechanisms so long as you retain the public fields.
+ */
+public class ParseException extends org.nuiton.guix.CompilerException {
+ int line;
+ int column;
+ private static final long serialVersionUID = 6179854408401024700L;
+
+ /**
+ * This constructor is used by the method "generateParseException"
+ * in the generated parser. Calling this constructor generates
+ * a new object of this type with the fields "currentToken",
+ * "expectedTokenSequences", and "tokenImage" set. The boolean
+ * flag "specialConstructor" is also set to true to indicate that
+ * this constructor was used to create this object.
+ * This constructor calls its super class with the empty string
+ * to force the "toString" method of parent class "Throwable" to
+ * print the error message in the form:
+ * ParseException: <result of getMessage>
+ *
+ * @param currentTokenVal ?
+ * @param expectedTokenSequencesVal ?
+ * @param tokenImageVal ?
+ */
+ public ParseException(Token currentTokenVal,
+ int[][] expectedTokenSequencesVal,
+ String[] tokenImageVal
+ ) {
+ super("");
+ specialConstructor = true;
+ currentToken = currentTokenVal;
+ expectedTokenSequences = expectedTokenSequencesVal;
+ tokenImage = tokenImageVal;
+ }
+
+ /**
+ * The following constructors are for use by you for whatever
+ * purpose you can think of. Constructing the exception in this
+ * manner makes the exception behave in the normal way - i.e., as
+ * documented in the class "Throwable". The fields "errorToken",
+ * "expectedTokenSequences", and "tokenImage" do not contain
+ * relevant information. The JavaCC generated code does not use
+ * these constructors.
+ */
+
+ public ParseException() {
+ super();
+ specialConstructor = false;
+ }
+
+ public ParseException(String message) {
+ super(message);
+ specialConstructor = false;
+ }
+
+ public ParseException(String message, int line, int column) {
+ super(message);
+ specialConstructor = false;
+ this.line = line;
+ this.column = column;
+ }
+
+
+ /**
+ * This variable determines which constructor was used to create
+ * this object and thereby affects the semantics of the
+ * "getMessage" method (see below).
+ */
+ protected boolean specialConstructor;
+
+ /**
+ * This is the last token that has been consumed successfully. If
+ * this object has been created due to a parse error, the token
+ * followng this token will (therefore) be the first error token.
+ */
+ public Token currentToken;
+
+ /**
+ * Each entry in this array is an array of integers. Each array
+ * of integers represents a sequence of tokens (by their ordinal
+ * values) that is expected at this point of the parse.
+ */
+ public int[][] expectedTokenSequences;
+
+ /**
+ * This is a reference to the "tokenImage" array of the generated
+ * parser within which the parse error occurred. This array is
+ * defined in the generated ...Constants interface.
+ */
+ public String[] tokenImage;
+
+ /**
+ * This method has the standard behavior when this object has been
+ * created using the standard constructors. Otherwise, it uses
+ * "currentToken" and "expectedTokenSequences" to generate a parse
+ * error message and returns it. If this object has been created
+ * due to a parse error, and you do not catch it (it gets thrown
+ * from the parser), then this method is called during the printing
+ * of the final stack trace, and hence the correct error message
+ * gets displayed.
+ */
+ public String getMessage() {
+ if (!specialConstructor) {
+ return super.getMessage();
+ }
+ StringBuffer expected = new StringBuffer();
+ int maxSize = 0;
+ for (int[] expectedTokenSequence : expectedTokenSequences) {
+ if (maxSize < expectedTokenSequence.length) {
+ maxSize = expectedTokenSequence.length;
+ }
+ for (int anExpectedTokenSequence : expectedTokenSequence) {
+ expected.append(tokenImage[anExpectedTokenSequence]).append(" ");
+ }
+ if (expectedTokenSequence[expectedTokenSequence.length - 1] != 0) {
+ expected.append("...");
+ }
+ expected.append(eol).append(" ");
+ }
+ String retval = "Encountered \"";
+ Token tok = currentToken.next;
+ for (int i = 0; i < maxSize; i++) {
+ if (i != 0) retval += " ";
+ if (tok.kind == 0) {
+ retval += tokenImage[0];
+ break;
+ }
+ retval += add_escapes(tok.image);
+ tok = tok.next;
+ }
+ retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn;
+ retval += "." + eol;
+ if (expectedTokenSequences.length == 1) {
+ retval += "Was expecting:" + eol + " ";
+ } else {
+ retval += "Was expecting one of:" + eol + " ";
+ }
+ retval += expected.toString();
+ return retval;
+ }
+
+
+ public int getLine() {
+ return line;
+ }
+
+ public int getColumn() {
+ return column;
+ }
+
+ /** The end of line string for this machine. */
+ protected String eol = System.getProperty("line.separator", "\n");
+
+ /**
+ * Used to convert raw characters to their escaped version
+ * when these raw version cannot be used as part of an ASCII
+ * string literal.
+ *
+ * @param str text to treate
+ * @return the escaped version of text
+ */
+ protected String add_escapes(String str) {
+ StringBuffer retval = new StringBuffer();
+ char ch;
+ for (int i = 0; i < str.length(); i++) {
+ switch (str.charAt(i)) {
+ case 0:
+ continue;
+ case '\b':
+ retval.append("\\b");
+ continue;
+ case '\t':
+ retval.append("\\t");
+ continue;
+ case '\n':
+ retval.append("\\n");
+ continue;
+ case '\f':
+ retval.append("\\f");
+ continue;
+ case '\r':
+ retval.append("\\r");
+ continue;
+ case '\"':
+ retval.append("\\\"");
+ continue;
+ case '\'':
+ retval.append("\\\'");
+ continue;
+ case '\\':
+ retval.append("\\\\");
+ continue;
+ default:
+ if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
+ String s = "0000" + Integer.toString(ch, 16);
+ retval.append("\\u").append(s.substring(s.length() - 4, s.length()));
+ } else {
+ retval.append(ch);
+ }
+ }
+ }
+ return retval.toString();
+ }
+
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/SimpleNode.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/SimpleNode.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/SimpleNode.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,135 @@
+/* Generated By:JJTree: Do not edit this line. SimpleNode.java */
+
+package org.nuiton.guix.parser;
+
+import org.nuiton.guix.model.ClassDescriptor;
+
+public class SimpleNode implements Node {
+ protected Node parent;
+ protected Node[] children;
+ protected int id;
+ protected JavaParser parser;
+ public Token firstToken;
+ public Token lastToken;
+ private ClassDescriptor javaType;
+
+
+ public SimpleNode(int i) {
+ id = i;
+ }
+
+ public SimpleNode(JavaParser p, int i) {
+ this(i);
+ parser = p;
+ }
+
+
+ public int getId() {
+ return id;
+ }
+
+ public void jjtOpen() {
+ }
+
+ public void jjtClose() {
+ }
+
+ public void jjtSetParent(Node n) {
+ parent = n;
+ }
+
+ public Node jjtGetParent() {
+ return parent;
+ }
+
+ public SimpleNode getParent() {
+ return (SimpleNode) parent;
+ }
+
+
+ public ClassDescriptor getJavaType() {
+ return javaType;
+ }
+
+
+ public void setJavaType(ClassDescriptor javaType) {
+ this.javaType = javaType;
+ }
+
+ public void jjtAddChild(Node n, int i) {
+ if (children == null) {
+ children = new Node[i + 1];
+ } else if (i >= children.length) {
+ Node c[] = new Node[i + 1];
+ System.arraycopy(children, 0, c, 0, children.length);
+ children = c;
+ }
+ children[i] = n;
+ }
+
+ public Node jjtGetChild(int i) {
+ return children[i];
+ }
+
+ public SimpleNode getChild(int i) {
+ return (SimpleNode) children[i];
+ }
+
+ public int jjtGetNumChildren() {
+ return (children == null) ? 0 : children.length;
+ }
+
+ /* You can override these two methods in subclasses of SimpleNode to
+customize the way the node appears when the tree is dumped. If
+your output uses more than one line you should override
+toString(String), otherwise overriding toString() is probably all
+you need to do. */
+
+ @Override
+ public String toString() {
+ return getClass().getName() + "[" + getText() + "]";
+ }
+
+ public String toString(String prefix) {
+ return prefix + toString();
+ }
+
+ /* Override this method if you want to customize how the node dumps
+ out its children. */
+
+ public void dump(String prefix) {
+ System.out.println(toString(prefix));
+ if (children != null) {
+ for (Node aChildren : children) {
+ SimpleNode n = (SimpleNode) aChildren;
+ if (n != null) {
+ n.dump(prefix + " ");
+ }
+ }
+ }
+ }
+
+ private void appendSpecialTokens(StringBuffer s, Token st) {
+ if (st != null) {
+ appendSpecialTokens(s, st.specialToken);
+ s.append(st.image);
+ }
+ }
+
+
+ /** @return the text of the tokens comprising this node. */
+ public String getText() {
+ StringBuffer text = new StringBuffer();
+ Token t = firstToken;
+ while (t != null) {
+ appendSpecialTokens(text, t.specialToken);
+ text.append(t.image);
+ if (t == lastToken)
+ break;
+ t = t.next;
+ }
+
+ return text.toString();
+ }
+}
+
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Token.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Token.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/Token.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,79 @@
+/* Generated By:JavaCC: Do not edit this line. Token.java Version 3.0 */
+package org.nuiton.guix.parser;
+
+/** Describes the input token stream. */
+
+public class Token {
+ /**
+ * An integer that describes the kind of this token. This numbering
+ * system is determined by JavaCCParser, and a table of these numbers is
+ * stored in the file ...Constants.java.
+ */
+ public int kind;
+
+ /**
+ * beginLine and beginColumn describe the position of the first character
+ * of this token; endLine and endColumn describe the position of the
+ * last character of this token.
+ */
+ public int beginLine, beginColumn, endLine, endColumn;
+
+ /** The string image of the token. */
+ public String image;
+
+ /**
+ * A reference to the next regular (non-special) token from the input
+ * stream. If this is the last token from the input stream, or if the
+ * token manager has not read tokens beyond this one, this field is
+ * set to null. This is true only if this token is also a regular
+ * token. Otherwise, see below for a description of the contents of
+ * this field.
+ */
+ public Token next;
+
+ /**
+ * This field is used to access special tokens that occur prior to this
+ * token, but after the immediately preceding regular (non-special) token.
+ * If there are no such special tokens, this field is set to null.
+ * When there are more than one such special token, this field refers
+ * to the last of these special tokens, which in turn refers to the next
+ * previous special token through its specialToken field, and so on
+ * until the first special token (whose specialToken field is null).
+ * The next fields of special tokens refer to other special tokens that
+ * immediately follow it (without an intervening regular token). If there
+ * is no such token, this field is null.
+ */
+ public Token specialToken;
+
+ /** Returns the image. */
+ public String toString() {
+ return image;
+ }
+
+ /**
+ * Returns a new Token object, by default. However, if you want, you
+ * can create and return subclass objects based on the value of ofKind.
+ * Simply add the cases to the switch for all those special cases.
+ * For example, if you have a subclass of Token called IDToken that
+ * you want to create if ofKind is ID, simlpy add something like :
+ * <p/>
+ * case MyParserConstants.ID : return new IDToken();
+ * <p/>
+ * to the following switch statement. Then you can cast matchedToken
+ * variable to the appropriate type and use it in your lexical actions.
+ */
+ public static final Token newToken(int ofKind) {
+ switch (ofKind) {
+ default:
+ return new Token();
+ case JavaParserConstants.RUNSIGNEDSHIFT:
+ case JavaParserConstants.RSIGNEDSHIFT:
+ case JavaParserConstants.GT:
+ return new GTToken();
+ }
+ }
+
+ public static class GTToken extends Token {
+ int realKind = JavaParserConstants.GT;
+ }
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/TokenMgrError.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/TokenMgrError.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/parser/TokenMgrError.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,126 @@
+/* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 3.0 */
+package org.nuiton.guix.parser;
+
+public class TokenMgrError extends Error {
+ /*
+ * Ordinals for various reasons why an Error of this type can be thrown.
+ */
+
+ /** Lexical error occured. */
+ static final int LEXICAL_ERROR = 0;
+
+ /** An attempt wass made to create a second instance of a static token manager. */
+ static final int STATIC_LEXER_ERROR = 1;
+
+ /** Tried to change to an invalid lexical state. */
+ static final int INVALID_LEXICAL_STATE = 2;
+
+ /** Detected (and bailed out of) an infinite loop in the token manager. */
+ static final int LOOP_DETECTED = 3;
+
+ /**
+ * Indicates the reason why the exception is thrown. It will have
+ * one of the above 4 values.
+ */
+ int errorCode;
+ private static final long serialVersionUID = -9131500865453532454L;
+
+ /**
+ * Replaces unprintable characters by their espaced (or unicode escaped)
+ * equivalents in the given string
+ *
+ * @param str text to treate
+ * @return the treated text
+ */
+ protected static String addEscapes(String str) {
+ StringBuffer retval = new StringBuffer();
+ char ch;
+ for (int i = 0; i < str.length(); i++) {
+ switch (str.charAt(i)) {
+ case 0:
+ continue;
+ case '\b':
+ retval.append("\\b");
+ continue;
+ case '\t':
+ retval.append("\\t");
+ continue;
+ case '\n':
+ retval.append("\\n");
+ continue;
+ case '\f':
+ retval.append("\\f");
+ continue;
+ case '\r':
+ retval.append("\\r");
+ continue;
+ case '\"':
+ retval.append("\\\"");
+ continue;
+ case '\'':
+ retval.append("\\\'");
+ continue;
+ case '\\':
+ retval.append("\\\\");
+ continue;
+ default:
+ if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
+ String s = "0000" + Integer.toString(ch, 16);
+ retval.append("\\u").append(s.substring(s.length() - 4, s.length()));
+ } else {
+ retval.append(ch);
+ }
+ }
+ }
+ return retval.toString();
+ }
+
+ /**
+ * @param EOFSeen : indicates if EOF caused the lexicl error
+ * @param lexState : lexical state in which this error occured
+ * @param errorLine : line number when the error occured
+ * @param errorColumn : column number when the error occured
+ * @param errorAfter : prefix that was seen before this error occured
+ * @param curChar : the offending character
+ * Note: You can customize the lexical error message by modifying this method.
+ * @return a detailed message for the Error when it is thrown by the
+ * token manager to indicate a lexical error.
+ */
+ protected static String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) {
+ return ("Lexical error at line " +
+ errorLine + ", column " +
+ errorColumn + ". Encountered: " +
+ (EOFSeen ? "<EOF> " : ("\"" + addEscapes(String.valueOf(curChar)) + "\"") + " (" + (int) curChar + "), ") +
+ "after : \"" + addEscapes(errorAfter) + "\"");
+ }
+
+ /**
+ * You can also modify the body of this method to customize your error messages.
+ * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not
+ * of end-users concern, so you can return something like :
+ * <p/>
+ * "Internal Error : Please file a bug report .... "
+ * <p/>
+ * from this method for such cases in the release version of your parser.
+ */
+ @Override
+ public String getMessage() {
+ return super.getMessage();
+ }
+
+ /*
+ * Constructors of various flavors follow.
+ */
+
+ public TokenMgrError() {
+ }
+
+ public TokenMgrError(String message, int reason) {
+ super(message);
+ errorCode = reason;
+ }
+
+ public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) {
+ this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason);
+ }
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/ScriptHandler.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/ScriptHandler.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/ScriptHandler.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2006 Ethan Nicholas. All rights reserved.
+ * Use is subject to license terms.
+ */
+package org.nuiton.guix.tags;
+
+import java.io.IOException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
+/**
+ * Handles the <code><script></code> tag.
+ *
+ * @author Ethan Nicholas
+ */
+public class ScriptHandler {
+
+ public String compileScript(XmlPullParser xpp) {
+ try {
+ String script = null;
+ xpp.nextToken();
+ if (xpp.getEventType() == XmlPullParser.CDSECT) {
+ script = xpp.getText();
+ }
+ while ((xpp.getEventType() != XmlPullParser.END_TAG) || (!xpp.getName().equals("script"))) {
+ xpp.nextToken();
+ }
+ do {
+ xpp.nextToken();
+ } while (xpp.getEventType() != XmlPullParser.START_TAG && xpp.getEventType() != XmlPullParser.END_DOCUMENT);
+ return script;
+ } catch (XmlPullParserException ex) {
+ Logger.getLogger(ScriptHandler.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IOException ex) {
+ Logger.getLogger(ScriptHandler.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ finally {
+ return null;
+ }
+ }
+}
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/StyleHandler.java 2009-04-21 15:57:24 UTC (rev 1355)
@@ -0,0 +1,214 @@
+/*
+ * Copyright 2006 Ethan Nicholas. All rights reserved.
+ * Use is subject to license terms.
+ */
+package org.nuiton.guix.tags;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.nuiton.guix.css.CSSParser;
+import org.nuiton.guix.css.CSSParserConstants;
+import org.nuiton.guix.css.CSSParserTreeConstants;
+import org.nuiton.guix.css.ParseException;
+import org.nuiton.guix.css.SimpleNode;
+import org.nuiton.guix.model.Rule;
+import org.nuiton.guix.model.Selector;
+import org.nuiton.guix.model.StyleSheet;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
+/**
+ * Handles the <code><style></code> tag.
+ *
+ * @author Ethan Nicholas
+ */
+public class StyleHandler {
+
+ private List<Selector> selectors = new ArrayList<Selector>();
+
+ public StyleSheet compileStyle(XmlPullParser xpp, String baseDir) throws IOException, XmlPullParserException {
+ boolean source = false;
+ StyleSheet result = null;
+ for (int i = 0; i < xpp.getAttributeCount(); i++) {
+ String name = xpp.getAttributeName(i);
+ String attrValue = xpp.getAttributeValue(i);
+ if (name.equals("source")) {
+ source = true;
+ File styleFile = new File(baseDir, attrValue.replace('/', File.separatorChar));
+ StringWriter styleBuffer = new StringWriter();
+ try {
+ FileReader in = new FileReader(styleFile);
+ char[] readBuffer = new char[2048];
+ int c;
+ while ((c = in.read(readBuffer)) > 0)
+ styleBuffer.write(readBuffer, 0, c);
+ }
+ catch (FileNotFoundException e) {
+ //compiler.reportError(
+ System.out.println("stylesheet file not found: " + styleFile);
+ }
+ result = processStylesheet(styleBuffer.toString());
+ /*compiler.getSourceFiles().push(styleFile);
+ compiler.registerStylesheet(processStylesheet(styleBuffer.toString()));
+ compiler.getSourceFiles().pop();*/
+ }/* else
+ if (!name.startsWith("xmlns") && !JAXXCompiler.JAXX_INTERNAL_NAMESPACE.equals(attribute.getNamespaceURI()))
+ throw new UnsupportedAttributeException(name);*/
+ }
+
+ StringBuffer style = new StringBuffer();
+ do {
+ xpp.nextToken();
+ switch (xpp.getEventType()) {
+ case XmlPullParser.START_TAG:
+ /*compiler.reportError*/System.out.println("<style> tag may not contain child elements: ");// + tag);
+ break;
+ case XmlPullParser.TEXT: break;// fall through
+ case XmlPullParser.CDSECT:
+ xpp.nextToken();
+ style.append(xpp.getText());
+ break;
+ }
+ } while((xpp.getEventType() != XmlPullParser.END_TAG)
+ && (!xpp.getName().equals("style")));
+
+ String styleString = style.toString().trim();
+ if (styleString.length() > 0) {
+ if (source)
+ /*compiler.reportError*/System.out.println("<style> tag has both a source attribute and an inline stylesheet");
+ //compiler.registerStylesheet(processStylesheet(style.toString()));
+ }
+ do {
+ xpp.nextToken();
+ } while(xpp.getEventType() != XmlPullParser.START_TAG
+ && xpp.getEventType() != XmlPullParser.END_DOCUMENT);
+ return result;
+ }
+
+ protected Selector processSelector(SimpleNode selector) {
+ if (selector.getId() != CSSParserTreeConstants.JJTSELECTOR)
+ throw new IllegalArgumentException("argument node is not a Selector");
+ String javaClassName = null;
+ String styleClass = null;
+ String pseudoClass = null;
+ String id = null;
+
+ for (int i = 0; i < selector.jjtGetNumChildren(); i++) {
+ SimpleNode child = selector.getChild(i);
+ switch (child.getId()) {
+ case CSSParserTreeConstants.JJTJAVACLASS:
+ if (!child.getText().trim().equals("*"))
+ javaClassName = child.getText();
+ break;
+ case CSSParserTreeConstants.JJTCLASS:
+ styleClass = child.getText().substring(1);
+ break;
+ case CSSParserTreeConstants.JJTPSEUDOCLASS:
+ pseudoClass = child.getText().substring(1);
+ break;
+ case CSSParserTreeConstants.JJTID:
+ id = child.getText().substring(1);
+ break;
+
+ default:
+ throw new IllegalStateException("unexpected child of Selector node, type=" + child.getId());
+ }
+ }
+
+ return new Selector(javaClassName, styleClass, pseudoClass, id);
+ }
+
+
+ protected Rule processRule(SimpleNode ruleNode) {
+
+ if (ruleNode.getId() != CSSParserTreeConstants.JJTRULE) {
+ throw new IllegalArgumentException("argument node is not a Rule");
+ }
+ SimpleNode selectorsNode = ruleNode.getChild(0);
+ assert selectorsNode.getId() == CSSParserTreeConstants.JJTSELECTORS : "expected node to be of type Selectors";
+
+ List<Selector> ruleSelectors = new ArrayList<Selector>();
+ for (int i = 0; i < selectorsNode.jjtGetNumChildren(); i++) {
+ SimpleNode selectorNode = selectorsNode.getChild(i);
+ Selector selector = processSelector(selectorNode);
+ ruleSelectors.add(selector);
+ if(!selectorRecorded(selector))
+ selectors.add(selector);
+ }
+
+ Map<String,String> properties = new HashMap<String,String>();
+ for (int i = 1; i < ruleNode.jjtGetNumChildren(); i++) {
+ SimpleNode declarationNode = ruleNode.getChild(i);
+ if (declarationNode.getId() == CSSParserTreeConstants.JJTDECLARATION) {
+ String key = declarationNode.getChild(0).getText();
+ SimpleNode valueNode = declarationNode.getChild(1);
+ String value = valueNode.getText();
+ if (valueNode.firstToken.kind == CSSParserConstants.STRING) {
+ value = value.substring(1, value.length() - 1);
+ }
+ properties.put(key, value);
+ }
+ }
+ Rule rule;
+ rule = new Rule();
+ rule.setSelectors(ruleSelectors);
+ for(Selector selector : ruleSelectors) {
+ selector.getRules().add(rule);
+ }
+ rule.setProperties(properties);
+ return rule;
+ }
+
+
+ protected StyleSheet processStylesheet(String stylesheetText) {
+ CSSParser p = new CSSParser(new StringReader(stylesheetText));
+ SimpleNode node;
+ try {
+ node = p.Stylesheet();
+ } catch (ParseException ex) {
+ throw ex;
+ }
+ List<Rule> rules = new ArrayList<Rule>();
+ for (int i = 0; i < node.jjtGetNumChildren(); i++) {
+ SimpleNode ruleNode = node.getChild(i);
+ Rule rule = processRule(ruleNode);
+ rules.add(rule);
+ }
+ StyleSheet styleSheet;
+ styleSheet = new StyleSheet();
+ styleSheet.setRules(rules);
+ styleSheet.setSelectors(selectors);
+ return styleSheet;
+ }
+
+ private boolean selectorRecorded(Selector newSelector) {
+ for(Selector selector : selectors) {
+ boolean areJavaClassNamesNull = newSelector.getJavaClassName() == null && selector.getJavaClassName() == null;
+ boolean areJavaClassNamesNotNull = newSelector.getJavaClassName() != null && selector.getJavaClassName() != null;
+ boolean areStyleClassesNull = newSelector.getStyleClass() == null && selector.getStyleClass() == null;
+ boolean areStyleClassesNotNull = newSelector.getStyleClass() != null && selector.getStyleClass() != null;
+ boolean arePseudoClassesNull = newSelector.getPseudoClass() == null && selector.getPseudoClass() == null;
+ boolean arePseudoClassesNotNull = newSelector.getPseudoClass() != null && selector.getPseudoClass() != null;
+ boolean areIdsNull = newSelector.getId() == null && selector.getId() == null;
+ boolean areIdsNotNull = newSelector.getId() != null && selector.getId() != null;
+ if((areJavaClassNamesNull || (areJavaClassNamesNotNull
+ && newSelector.getJavaClassName().equals(selector.getJavaClassName())))
+ && (areStyleClassesNull || (areStyleClassesNotNull
+ && newSelector.getStyleClass().equals(selector.getStyleClass())))
+ && (arePseudoClassesNull || (arePseudoClassesNotNull
+ && newSelector.getPseudoClass().equals(selector.getPseudoClass())))
+ && (areIdsNull || (areIdsNotNull && newSelector.getId().equals(selector.getId())))) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
2
1
r1354 - in jaxx/trunk: . jaxx-compiler-api jaxx-compiler-swing jaxx-compiler-validator jaxx-example jaxx-runtime-api jaxx-runtime-swing jaxx-runtime-validator jaxx-runtime-validator-swing jaxx-swing-action maven-jaxx-plugin
by tchemit@users.labs.libre-entreprise.org April 20, 2009
by tchemit@users.labs.libre-entreprise.org April 20, 2009
April 20, 2009
Author: tchemit
Date: 2009-04-20 18:05:25 +0000 (Mon, 20 Apr 2009)
New Revision: 1354
Modified:
jaxx/trunk/jaxx-compiler-api/pom.xml
jaxx/trunk/jaxx-compiler-swing/pom.xml
jaxx/trunk/jaxx-compiler-validator/pom.xml
jaxx/trunk/jaxx-example/pom.xml
jaxx/trunk/jaxx-runtime-api/pom.xml
jaxx/trunk/jaxx-runtime-swing/pom.xml
jaxx/trunk/jaxx-runtime-validator-swing/pom.xml
jaxx/trunk/jaxx-runtime-validator/pom.xml
jaxx/trunk/jaxx-swing-action/pom.xml
jaxx/trunk/maven-jaxx-plugin/pom.xml
jaxx/trunk/pom.xml
Log:
push back generic scm values
Modified: jaxx/trunk/jaxx-compiler-api/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-api/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
+++ jaxx/trunk/jaxx-compiler-api/pom.xml 2009-04-20 18:05:25 UTC (rev 1354)
@@ -44,8 +44,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-api</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-api</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-compiler-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-swing/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
+++ jaxx/trunk/jaxx-compiler-swing/pom.xml 2009-04-20 18:05:25 UTC (rev 1354)
@@ -50,8 +50,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-swing</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-swing</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-compiler-validator/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-validator/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
+++ jaxx/trunk/jaxx-compiler-validator/pom.xml 2009-04-20 18:05:25 UTC (rev 1354)
@@ -62,8 +62,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-validator</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-validator</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-example/pom.xml
===================================================================
--- jaxx/trunk/jaxx-example/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
+++ jaxx/trunk/jaxx-example/pom.xml 2009-04-20 18:05:25 UTC (rev 1354)
@@ -152,9 +152,9 @@
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-example</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-example</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
<profiles>
Modified: jaxx/trunk/jaxx-runtime-api/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-api/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
+++ jaxx/trunk/jaxx-runtime-api/pom.xml 2009-04-20 18:05:25 UTC (rev 1354)
@@ -57,8 +57,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-api</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-api</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-swing/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
+++ jaxx/trunk/jaxx-runtime-swing/pom.xml 2009-04-20 18:05:25 UTC (rev 1354)
@@ -44,8 +44,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-swing</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-swing</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-validator/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-validator/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
+++ jaxx/trunk/jaxx-runtime-validator/pom.xml 2009-04-20 18:05:25 UTC (rev 1354)
@@ -67,8 +67,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-validator</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-validator</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-validator-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-validator-swing/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
+++ jaxx/trunk/jaxx-runtime-validator-swing/pom.xml 2009-04-20 18:05:25 UTC (rev 1354)
@@ -65,8 +65,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-validator-swing</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-validator-swing</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-swing-action/pom.xml
===================================================================
--- jaxx/trunk/jaxx-swing-action/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
+++ jaxx/trunk/jaxx-swing-action/pom.xml 2009-04-20 18:05:25 UTC (rev 1354)
@@ -81,9 +81,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-swing-action</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-swing-action</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
Modified: jaxx/trunk/maven-jaxx-plugin/pom.xml
===================================================================
--- jaxx/trunk/maven-jaxx-plugin/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
+++ jaxx/trunk/maven-jaxx-plugin/pom.xml 2009-04-20 18:05:25 UTC (rev 1354)
@@ -144,9 +144,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/maven-jaxx-plugin</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/maven-jaxx-plugin</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/mave…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
\ No newline at end of file
Modified: jaxx/trunk/pom.xml
===================================================================
--- jaxx/trunk/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
+++ jaxx/trunk/pom.xml 2009-04-20 18:05:25 UTC (rev 1354)
@@ -197,9 +197,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/?roo…</url>
+ <connection>${maven.scm.connection}</connection>
+ <developerConnection>${maven.scm.developerConnection}</developerConnection>
+ <url>${maven.scm.url}</url>
</scm>
<!-- Maven Environment : Repositories -->
1
0
r1353 - in jaxx/trunk: . jaxx-compiler-api jaxx-compiler-swing jaxx-compiler-validator jaxx-example jaxx-runtime-api jaxx-runtime-swing jaxx-runtime-validator jaxx-runtime-validator-swing jaxx-swing-action maven-jaxx-plugin
by tchemit@users.labs.libre-entreprise.org April 20, 2009
by tchemit@users.labs.libre-entreprise.org April 20, 2009
April 20, 2009
Author: tchemit
Date: 2009-04-20 16:49:15 +0000 (Mon, 20 Apr 2009)
New Revision: 1353
Modified:
jaxx/trunk/jaxx-compiler-api/pom.xml
jaxx/trunk/jaxx-compiler-swing/pom.xml
jaxx/trunk/jaxx-compiler-validator/pom.xml
jaxx/trunk/jaxx-example/pom.xml
jaxx/trunk/jaxx-runtime-api/pom.xml
jaxx/trunk/jaxx-runtime-swing/pom.xml
jaxx/trunk/jaxx-runtime-validator-swing/pom.xml
jaxx/trunk/jaxx-runtime-validator/pom.xml
jaxx/trunk/jaxx-swing-action/pom.xml
jaxx/trunk/maven-jaxx-plugin/pom.xml
jaxx/trunk/pom.xml
Log:
[maven-release-plugin] prepare for next development iteration
Modified: jaxx/trunk/jaxx-compiler-api/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-api/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
+++ jaxx/trunk/jaxx-compiler-api/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -44,8 +44,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-api</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-api</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-api</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-api</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-compiler-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-swing/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
+++ jaxx/trunk/jaxx-compiler-swing/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -50,8 +50,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-swing</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-swing</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-compiler-validator/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-validator/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
+++ jaxx/trunk/jaxx-compiler-validator/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -62,8 +62,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-validator</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-validator</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-validator</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-validator</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-example/pom.xml
===================================================================
--- jaxx/trunk/jaxx-example/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
+++ jaxx/trunk/jaxx-example/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
@@ -9,7 +9,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -152,9 +152,9 @@
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-example</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-example</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-example</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-example</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
<profiles>
Modified: jaxx/trunk/jaxx-runtime-api/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-api/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
+++ jaxx/trunk/jaxx-runtime-api/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -57,8 +57,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-api</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-api</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-api</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-api</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-swing/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
+++ jaxx/trunk/jaxx-runtime-swing/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -44,8 +44,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-swing</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-swing</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-validator/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-validator/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
+++ jaxx/trunk/jaxx-runtime-validator/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -67,8 +67,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-validator</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-validator</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-validator-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-validator-swing/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
+++ jaxx/trunk/jaxx-runtime-validator-swing/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -65,8 +65,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator-swing</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator-swing</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-validator-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-validator-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-swing-action/pom.xml
===================================================================
--- jaxx/trunk/jaxx-swing-action/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
+++ jaxx/trunk/jaxx-swing-action/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
@@ -11,7 +11,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -81,9 +81,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-swing-action</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-swing-action</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-swing-action</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-swing-action</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
</project>
Modified: jaxx/trunk/maven-jaxx-plugin/pom.xml
===================================================================
--- jaxx/trunk/maven-jaxx-plugin/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
+++ jaxx/trunk/maven-jaxx-plugin/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -144,9 +144,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/maven-jaxx-plugin</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/maven-jaxx-plugin</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/m…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/maven-jaxx-plugin</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/maven-jaxx-plugin</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/mave…</url>
</scm>
</project>
\ No newline at end of file
Modified: jaxx/trunk/pom.xml
===================================================================
--- jaxx/trunk/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
+++ jaxx/trunk/pom.xml 2009-04-20 16:49:15 UTC (rev 1353)
@@ -14,7 +14,7 @@
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
<modules>
<module>jaxx-runtime-api</module>
@@ -197,9 +197,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4?r…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/?roo…</url>
</scm>
<!-- Maven Environment : Repositories -->
1
0
r1352 - in jaxx/tags: . 1.4 1.4/jaxx-compiler-api 1.4/jaxx-compiler-swing 1.4/jaxx-compiler-validator 1.4/jaxx-example 1.4/jaxx-runtime-api 1.4/jaxx-runtime-swing 1.4/jaxx-runtime-validator 1.4/jaxx-runtime-validator-swing 1.4/jaxx-swing-action 1.4/maven-jaxx-plugin
by tchemit@users.labs.libre-entreprise.org April 20, 2009
by tchemit@users.labs.libre-entreprise.org April 20, 2009
April 20, 2009
Author: tchemit
Date: 2009-04-20 16:49:10 +0000 (Mon, 20 Apr 2009)
New Revision: 1352
Added:
jaxx/tags/1.4/
jaxx/tags/1.4/jaxx-compiler-api/pom.xml
jaxx/tags/1.4/jaxx-compiler-swing/pom.xml
jaxx/tags/1.4/jaxx-compiler-validator/pom.xml
jaxx/tags/1.4/jaxx-example/pom.xml
jaxx/tags/1.4/jaxx-runtime-api/pom.xml
jaxx/tags/1.4/jaxx-runtime-swing/pom.xml
jaxx/tags/1.4/jaxx-runtime-validator-swing/pom.xml
jaxx/tags/1.4/jaxx-runtime-validator/pom.xml
jaxx/tags/1.4/jaxx-swing-action/pom.xml
jaxx/tags/1.4/maven-jaxx-plugin/pom.xml
jaxx/tags/1.4/pom.xml
Removed:
jaxx/tags/1.4/jaxx-compiler-api/pom.xml
jaxx/tags/1.4/jaxx-compiler-swing/pom.xml
jaxx/tags/1.4/jaxx-compiler-validator/pom.xml
jaxx/tags/1.4/jaxx-example/pom.xml
jaxx/tags/1.4/jaxx-runtime-api/pom.xml
jaxx/tags/1.4/jaxx-runtime-swing/pom.xml
jaxx/tags/1.4/jaxx-runtime-validator-swing/pom.xml
jaxx/tags/1.4/jaxx-runtime-validator/pom.xml
jaxx/tags/1.4/jaxx-swing-action/pom.xml
jaxx/tags/1.4/maven-jaxx-plugin/pom.xml
jaxx/tags/1.4/pom.xml
Log:
[maven-release-plugin] copy for tag 1.4
Copied: jaxx/tags/1.4 (from rev 1345, jaxx/trunk)
Deleted: jaxx/tags/1.4/jaxx-compiler-api/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-api/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-compiler-api/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-compiler-api</artifactId>
-
- <dependencies>
-
- <!-- sibling dependencies -->
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx compiler api</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-</project>
Copied: jaxx/tags/1.4/jaxx-compiler-api/pom.xml (from rev 1351, jaxx/trunk/jaxx-compiler-api/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-compiler-api/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-compiler-api/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-compiler-api</artifactId>
+
+ <dependencies>
+
+ <!-- sibling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx compiler api</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-api</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-api</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+</project>
Deleted: jaxx/tags/1.4/jaxx-compiler-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-swing/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-compiler-swing/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-compiler-swing</artifactId>
-
- <dependencies>
-
- <!-- sibling dependencies -->
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-compiler-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx compiler swing extension</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-</project>
Copied: jaxx/tags/1.4/jaxx-compiler-swing/pom.xml (from rev 1351, jaxx/trunk/jaxx-compiler-swing/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-compiler-swing/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-compiler-swing/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-compiler-swing</artifactId>
+
+ <dependencies>
+
+ <!-- sibling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-swing</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-compiler-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx compiler swing extension</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+</project>
Deleted: jaxx/tags/1.4/jaxx-compiler-validator/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-validator/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-compiler-validator/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-compiler-validator</artifactId>
-
- <dependencies>
-
- <!-- sibling dependencies -->
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-validator</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-validator-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-compiler-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx compiler validation extension</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-</project>
Copied: jaxx/tags/1.4/jaxx-compiler-validator/pom.xml (from rev 1351, jaxx/trunk/jaxx-compiler-validator/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-compiler-validator/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-compiler-validator/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-compiler-validator</artifactId>
+
+ <dependencies>
+
+ <!-- sibling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-validator</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-swing</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-validator-swing</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-compiler-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx compiler validation extension</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-validator</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-validator</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+</project>
Deleted: jaxx/tags/1.4/jaxx-example/pom.xml
===================================================================
--- jaxx/trunk/jaxx-example/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-example/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -1,285 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-example</artifactId>
-
- <dependencies>
-
- <!-- sibiling dependencies -->
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
- <!--dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-swing-widget</artifactId>
- <version>${project.version}</version>
- </dependency-->
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-validator-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx Examples</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
-
- <packaging>jar</packaging>
-
- <properties>
-
- <maven.jar.main.class>jaxx.demo.JAXXDemo</maven.jar.main.class>
-
- <!-- jnlp -->
- <keystorepath>${codelutin.keystorepath}</keystorepath>
- <keystorealias>CodeLutin</keystorealias>
- <keystorepass>codelutin</keystorepass>
-
- <jnlp.build.directory>${project.build.directory}/jnlp</jnlp.build.directory>
-
- </properties>
-
- <build>
-
- <resources>
- <resource>
- <directory>src/main/java</directory>
- <includes>
- <include>**/*.jaxx</include>
- </includes>
- </resource>
- <resource>
- <directory>src/main/resources</directory>
- <includes>
- <include>**/*</include>
- </includes>
- </resource>
- </resources>
-
- <pluginManagement>
- <plugins>
-
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <configuration>
- <archive>
- <manifest>
- <addClasspath>true</addClasspath>
- <classpathPrefix>./lib/</classpathPrefix>
- </manifest>
- </archive>
- </configuration>
- </plugin>
-
- </plugins>
-
- </pluginManagement>
-
- <plugins>
-
- <plugin>
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>maven-jaxx-plugin</artifactId>
- <version>${project.version}</version>
- <executions>
- <execution>
- <goals>
- <goal>generate</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.codelutin</groupId>
- <artifactId>maven-i18n-plugin</artifactId>
- <configuration>
- <entries>
- <entry>
- <basedir>${maven.gen.dir}/java/</basedir>
- <includes>
- <param>**\/**.java</param>
- </includes>
- </entry>
- </entries>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>parserJava</goal>
- <goal>gen</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <outputDirectory>${project.build.directory}/lib</outputDirectory>
- </configuration>
- </plugin>
-
- </plugins>
- </build>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
-
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-
- <profiles>
- <!-- by default jnlp is only perform on a release stage when using the maven-release-plugin -->
- <profile>
- <id>release-profile</id>
- <activation>
- <property>
- <name>performRelease</name>
- <value>true</value>
- </property>
- </activation>
- <build>
- <plugins>
- <plugin>
-
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <!-- Ajout des libs signe par Sun dans un fichier jnlp separe -->
- <execution>
- <id>JnlpSun</id>
- <phase>verify</phase>
- <configuration>
- <tasks>
- <mkdir dir="${jnlp.build.directory}" />
- <copy file="${project.basedir}/src/main/jnlp/sun.jnlp" verbose="${maven.verbose}" todir="${jnlp.build.directory}" failonerror="false">
- <filterset>
- <filter token="lib" value="javahelp-2.0.02.jar" />
- <filter token="url" value="${project.url}" />
- </filterset>
- </copy>
- <copy file="${project.basedir}/src/main/jnlp/jxlayer.jnlp" verbose="${maven.verbose}" todir="${jnlp.build.directory}" failonerror="false">
- <filterset>
- <filter token="lib" value="jxlayer-3.0.1.jar" />
- <filter token="url" value="${project.url}" />
- </filterset>
- </copy>
- <copy file="${project.build.directory}/lib/javahelp-2.0.02.jar" verbose="${maven.verbose}" todir="${jnlp.build.directory}/lib" failonerror="false" />
- <copy file="${project.build.directory}/lib/jxlayer-3.0.1.jar" verbose="${maven.verbose}" todir="${jnlp.build.directory}/lib" failonerror="false" />
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
-
- <execution>
- <id>JnlpToSite</id>
- <phase>pre-site</phase>
- <configuration>
- <tasks>
- <mkdir dir="${maven.site.gen.dir}/resources" />
- <copy todir="${maven.site.gen.dir}/resources" verbose="${maven.verbose}" failonerror="false" overwrite="false">
- <fileset dir="${jnlp.build.directory}">
- <include name="**" />
- </fileset>
- </copy>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo.webstart</groupId>
- <artifactId>webstart-maven-plugin</artifactId>
- <version>1.0-alpha-2-cl_20081018</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>jnlp-inline</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <force>false</force>
- <dependencies>
- <excludes>
- <exclude>javax.help:javahelp</exclude>
- <exclude>org.swinglabs:jxlayer</exclude>
- </excludes>
- </dependencies>
- <libPath>lib</libPath>
- <extensions>
- <sun>sun.jnlp</sun>
- <jxlayer>jxlayer.jnlp</jxlayer>
- </extensions>
- <jnlp>
- <outputFile>launch-demo.jnlp</outputFile>
- <mainClass>${maven.jar.main.class}</mainClass>
- <allPermissions>true</allPermissions>
- <offlineAllowed>true</offlineAllowed>
- </jnlp>
-
- <sign>
- <keystore>${keystorepath}</keystore>
- <keypass />
- <storepass>${keystorepass}</storepass>
- <storetype />
- <alias>${keystorealias}</alias>
- <validity />
- <dnameCn />
- <dnameOu />
- <dnameO />
- <dnameL />
- <dnameSt />
- <dnameC />
- <verify>true</verify>
- <keystoreConfig>
- <delete>false</delete>
- <gen>false</gen>
- </keystoreConfig>
- </sign>
-
- <pack200>false</pack200>
- <gzip>true</gzip>
- <verbose>false</verbose>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
-</project>
\ No newline at end of file
Copied: jaxx/tags/1.4/jaxx-example/pom.xml (from rev 1351, jaxx/trunk/jaxx-example/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-example/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-example/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -0,0 +1,285 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-example</artifactId>
+
+ <dependencies>
+
+ <!-- sibiling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-swing</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!--dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-swing-widget</artifactId>
+ <version>${project.version}</version>
+ </dependency-->
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-validator-swing</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx Examples</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+
+ <packaging>jar</packaging>
+
+ <properties>
+
+ <maven.jar.main.class>jaxx.demo.JAXXDemo</maven.jar.main.class>
+
+ <!-- jnlp -->
+ <keystorepath>${codelutin.keystorepath}</keystorepath>
+ <keystorealias>CodeLutin</keystorealias>
+ <keystorepass>codelutin</keystorepass>
+
+ <jnlp.build.directory>${project.build.directory}/jnlp</jnlp.build.directory>
+
+ </properties>
+
+ <build>
+
+ <resources>
+ <resource>
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**/*.jaxx</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </resource>
+ </resources>
+
+ <pluginManagement>
+ <plugins>
+
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <addClasspath>true</addClasspath>
+ <classpathPrefix>./lib/</classpathPrefix>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+
+ </plugins>
+
+ </pluginManagement>
+
+ <plugins>
+
+ <plugin>
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>maven-jaxx-plugin</artifactId>
+ <version>${project.version}</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codelutin</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <configuration>
+ <entries>
+ <entry>
+ <basedir>${maven.gen.dir}/java/</basedir>
+ <includes>
+ <param>**\/**.java</param>
+ </includes>
+ </entry>
+ </entries>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>parserJava</goal>
+ <goal>gen</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <configuration>
+ <outputDirectory>${project.build.directory}/lib</outputDirectory>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-example</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-example</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+
+ <profiles>
+ <!-- by default jnlp is only perform on a release stage when using the maven-release-plugin -->
+ <profile>
+ <id>release-profile</id>
+ <activation>
+ <property>
+ <name>performRelease</name>
+ <value>true</value>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <!-- Ajout des libs signe par Sun dans un fichier jnlp separe -->
+ <execution>
+ <id>JnlpSun</id>
+ <phase>verify</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="${jnlp.build.directory}" />
+ <copy file="${project.basedir}/src/main/jnlp/sun.jnlp" verbose="${maven.verbose}" todir="${jnlp.build.directory}" failonerror="false">
+ <filterset>
+ <filter token="lib" value="javahelp-2.0.02.jar" />
+ <filter token="url" value="${project.url}" />
+ </filterset>
+ </copy>
+ <copy file="${project.basedir}/src/main/jnlp/jxlayer.jnlp" verbose="${maven.verbose}" todir="${jnlp.build.directory}" failonerror="false">
+ <filterset>
+ <filter token="lib" value="jxlayer-3.0.1.jar" />
+ <filter token="url" value="${project.url}" />
+ </filterset>
+ </copy>
+ <copy file="${project.build.directory}/lib/javahelp-2.0.02.jar" verbose="${maven.verbose}" todir="${jnlp.build.directory}/lib" failonerror="false" />
+ <copy file="${project.build.directory}/lib/jxlayer-3.0.1.jar" verbose="${maven.verbose}" todir="${jnlp.build.directory}/lib" failonerror="false" />
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+
+ <execution>
+ <id>JnlpToSite</id>
+ <phase>pre-site</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="targset/site" />
+ <copy todir="targset/site" verbose="${maven.verbose}" failonerror="false" overwrite="false">
+ <fileset dir="${jnlp.build.directory}">
+ <include name="**" />
+ </fileset>
+ </copy>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo.webstart</groupId>
+ <artifactId>webstart-maven-plugin</artifactId>
+ <version>1.0-alpha-2-cl_20081018</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>jnlp-inline</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <force>false</force>
+ <dependencies>
+ <excludes>
+ <exclude>javax.help:javahelp</exclude>
+ <exclude>org.swinglabs:jxlayer</exclude>
+ </excludes>
+ </dependencies>
+ <libPath>lib</libPath>
+ <extensions>
+ <sun>sun.jnlp</sun>
+ <jxlayer>jxlayer.jnlp</jxlayer>
+ </extensions>
+ <jnlp>
+ <outputFile>launch-demo.jnlp</outputFile>
+ <mainClass>${maven.jar.main.class}</mainClass>
+ <allPermissions>true</allPermissions>
+ <offlineAllowed>true</offlineAllowed>
+ </jnlp>
+
+ <sign>
+ <keystore>${keystorepath}</keystore>
+ <keypass />
+ <storepass>${keystorepass}</storepass>
+ <storetype />
+ <alias>${keystorealias}</alias>
+ <validity />
+ <dnameCn />
+ <dnameOu />
+ <dnameO />
+ <dnameL />
+ <dnameSt />
+ <dnameC />
+ <verify>true</verify>
+ <keystoreConfig>
+ <delete>false</delete>
+ <gen>false</gen>
+ </keystoreConfig>
+ </sign>
+
+ <pack200>false</pack200>
+ <gzip>true</gzip>
+ <verbose>false</verbose>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
\ No newline at end of file
Deleted: jaxx/tags/1.4/jaxx-runtime-api/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-api/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-runtime-api/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-runtime-api</artifactId>
-
- <dependencies>
-
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- </dependency>
-
- <!-- pour utiliser javaHelp -->
- <dependency>
- <groupId>javax.help</groupId>
- <artifactId>javahelp</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.swinglabs</groupId>
- <artifactId>jxlayer</artifactId>
- </dependency>
-
- <dependency>
- <groupId>commons-jxpath</groupId>
- <artifactId>commons-jxpath</artifactId>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx runtime api</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-</project>
Copied: jaxx/tags/1.4/jaxx-runtime-api/pom.xml (from rev 1351, jaxx/trunk/jaxx-runtime-api/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-runtime-api/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-runtime-api/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-runtime-api</artifactId>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+
+ <!-- pour utiliser javaHelp -->
+ <dependency>
+ <groupId>javax.help</groupId>
+ <artifactId>javahelp</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.swinglabs</groupId>
+ <artifactId>jxlayer</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-jxpath</groupId>
+ <artifactId>commons-jxpath</artifactId>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx runtime api</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-api</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-api</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+</project>
Deleted: jaxx/tags/1.4/jaxx-runtime-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-swing/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-runtime-swing/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-runtime-swing</artifactId>
-
- <dependencies>
-
- <!-- sibling dependencies -->
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx runtime swing extension</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-</project>
Copied: jaxx/tags/1.4/jaxx-runtime-swing/pom.xml (from rev 1351, jaxx/trunk/jaxx-runtime-swing/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-runtime-swing/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-runtime-swing/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-runtime-swing</artifactId>
+
+ <dependencies>
+
+ <!-- sibling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx runtime swing extension</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+</project>
Deleted: jaxx/tags/1.4/jaxx-runtime-validator/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-validator/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-runtime-validator/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-runtime-validator</artifactId>
-
- <dependencies>
-
- <!-- sibling dependencies -->
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <!-- validation framework -->
-
- <dependency>
- <groupId>com.opensymphony</groupId>
- <artifactId>xwork</artifactId>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx runtime validation</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.codelutin</groupId>
- <artifactId>maven-i18n-plugin</artifactId>
- <version>${i18n.version}</version>
- <executions>
- <execution>
- <goals>
- <goal>parserJava</goal>
- <goal>gen</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-</project>
Copied: jaxx/tags/1.4/jaxx-runtime-validator/pom.xml (from rev 1351, jaxx/trunk/jaxx-runtime-validator/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-runtime-validator/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-runtime-validator/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-runtime-validator</artifactId>
+
+ <dependencies>
+
+ <!-- sibling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <!-- validation framework -->
+
+ <dependency>
+ <groupId>com.opensymphony</groupId>
+ <artifactId>xwork</artifactId>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx runtime validation</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codelutin</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>parserJava</goal>
+ <goal>gen</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+</project>
Deleted: jaxx/tags/1.4/jaxx-runtime-validator-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-validator-swing/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-runtime-validator-swing/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-runtime-validator-swing</artifactId>
-
- <dependencies>
-
- <!-- sibling dependencies -->
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-validator</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx validation swing extension</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.codelutin</groupId>
- <artifactId>maven-i18n-plugin</artifactId>
- <version>${i18n.version}</version>
- <executions>
- <execution>
- <goals>
- <goal>parserJava</goal>
- <goal>gen</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-</project>
Copied: jaxx/tags/1.4/jaxx-runtime-validator-swing/pom.xml (from rev 1351, jaxx/trunk/jaxx-runtime-validator-swing/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-runtime-validator-swing/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-runtime-validator-swing/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-runtime-validator-swing</artifactId>
+
+ <dependencies>
+
+ <!-- sibling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-validator</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-swing</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx validation swing extension</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codelutin</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>parserJava</goal>
+ <goal>gen</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+</project>
Deleted: jaxx/tags/1.4/jaxx-swing-action/pom.xml
===================================================================
--- jaxx/trunk/jaxx-swing-action/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-swing-action/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-swing-action</artifactId>
-
- <dependencies>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>jboss</groupId>
- <artifactId>javassist</artifactId>
- <version>3.7.ga</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx lutin library swing extension (tabs and actions)</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <build>
-
- <pluginManagement>
- <plugins>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <!-- the code contains some AnnotationProcessor -->
- <compilerArgument>-proc:none</compilerArgument>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
-
- <plugins>
-
- <plugin>
- <groupId>org.codelutin</groupId>
- <artifactId>maven-i18n-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>parserJava</goal>
- <goal>gen</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- </plugins>
- </build>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-
-</project>
Copied: jaxx/tags/1.4/jaxx-swing-action/pom.xml (from rev 1351, jaxx/trunk/jaxx-swing-action/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-swing-action/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-swing-action/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-swing-action</artifactId>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-swing</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>javassist</artifactId>
+ <version>3.7.ga</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx lutin library swing extension (tabs and actions)</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <build>
+
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <!-- the code contains some AnnotationProcessor -->
+ <compilerArgument>-proc:none</compilerArgument>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+
+ <plugins>
+
+ <plugin>
+ <groupId>org.codelutin</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>parserJava</goal>
+ <goal>gen</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-swing-action</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-swing-action</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+
+</project>
Deleted: jaxx/tags/1.4/maven-jaxx-plugin/pom.xml
===================================================================
--- jaxx/trunk/maven-jaxx-plugin/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/maven-jaxx-plugin/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -1,153 +0,0 @@
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>maven-jaxx-plugin</artifactId>
-
- <dependencies>
-
- <!-- sibling dependencies -->
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-compiler-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-compiler-validator</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-compiler-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-swing-action</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <!-- maven plugin project dependencies -->
-
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-plugin-api</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-project</artifactId>
- </dependency>
-
- <!-- other dependencies -->
-
- <dependency>
- <groupId>org.codelutin</groupId>
- <artifactId>lutinpluginutil</artifactId>
- </dependency>
-
- <!-- pour acceder aux BeansInfos swing via Introspector -->
- <dependency>
- <groupId>com.sun</groupId>
- <artifactId>dt</artifactId>
- <!--version>${java.version}</version-->
- <scope>system</scope>
- <systemPath>/${java.home}/../lib/dt.jar</systemPath>
- </dependency>
-
- <!-- tests dependencies -->
-
- <dependency>
- <groupId>org.apache.maven.shared</groupId>
- <artifactId>maven-plugin-testing-harness</artifactId>
- <version>1.1</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.maven.shared</groupId>
- <artifactId>maven-verifier</artifactId>
- <version>1.0</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.velocity</groupId>
- <artifactId>velocity</artifactId>
- <version>1.5</version>
- </dependency>
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.1</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>
- Maven 2 plugin to generate java source from ui interface definitions
- in jaxx format.
- </description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
-
- <packaging>maven-plugin</packaging>
- <build>
- <plugins>
-
- <plugin>
- <artifactId>maven-plugin-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>helpmojo</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- </plugins>
- </build>
-
- <reporting>
- <plugins>
- <plugin>
- <artifactId>maven-plugin-plugin</artifactId>
- </plugin>
- </plugins>
- </reporting>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-
-</project>
\ No newline at end of file
Copied: jaxx/tags/1.4/maven-jaxx-plugin/pom.xml (from rev 1351, jaxx/trunk/maven-jaxx-plugin/pom.xml)
===================================================================
--- jaxx/tags/1.4/maven-jaxx-plugin/pom.xml (rev 0)
+++ jaxx/tags/1.4/maven-jaxx-plugin/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -0,0 +1,152 @@
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>maven-jaxx-plugin</artifactId>
+
+ <dependencies>
+
+ <!-- sibling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-compiler-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-compiler-validator</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-compiler-swing</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-swing-action</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <!-- maven plugin project dependencies -->
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ </dependency>
+
+ <!-- other dependencies -->
+
+ <dependency>
+ <groupId>org.codelutin</groupId>
+ <artifactId>lutinpluginutil</artifactId>
+ </dependency>
+
+ <!-- pour acceder aux BeansInfos swing via Introspector -->
+ <dependency>
+ <groupId>com.sun</groupId>
+ <artifactId>dt</artifactId>
+ <!--version>${java.version}</version-->
+ <scope>system</scope>
+ <systemPath>/${java.home}/../lib/dt.jar</systemPath>
+ </dependency>
+
+ <!-- tests dependencies -->
+
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-plugin-testing-harness</artifactId>
+ <version>1.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-verifier</artifactId>
+ <version>1.0</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.velocity</groupId>
+ <artifactId>velocity</artifactId>
+ <version>1.5</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>
+ Maven 2 plugin to generate java source from ui interface definitions
+ in jaxx format.
+ </description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+
+ <packaging>maven-plugin</packaging>
+ <build>
+ <plugins>
+
+ <plugin>
+ <artifactId>maven-plugin-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>helpmojo</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <artifactId>maven-plugin-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </reporting>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/maven-jaxx-plugin</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/maven-jaxx-plugin</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/m…</url>
+ </scm>
+
+</project>
\ No newline at end of file
Deleted: jaxx/tags/1.4/pom.xml
===================================================================
--- jaxx/trunk/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -1,260 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>lutinproject</artifactId>
- <version>3.5.3</version>
- </parent>
-
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
-
- <modules>
- <module>jaxx-runtime-api</module>
- <module>jaxx-runtime-swing</module>
- <module>jaxx-runtime-validator</module>
- <module>jaxx-runtime-validator-swing</module>
-
- <module>jaxx-compiler-api</module>
- <module>jaxx-compiler-swing</module>
- <module>jaxx-compiler-validator</module>
-
- <module>jaxx-swing-action</module>
- <module>maven-jaxx-plugin</module>
-
- <module>jaxx-example</module>
- </modules>
-
- <dependencies>
- <dependency>
- <groupId>org.codelutin</groupId>
- <artifactId>lutinutil</artifactId>
- </dependency>
- </dependencies>
-
- <dependencyManagement>
- <dependencies>
-
- <!-- lutin dependencies -->
-
- <dependency>
- <groupId>org.codelutin</groupId>
- <artifactId>lutinutil</artifactId>
- <version>${lutinutil.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.codelutin</groupId>
- <artifactId>lutinpluginutil</artifactId>
- <version>${lutinpluginutil.version}</version>
- <scope>compile</scope>
- </dependency>
-
- <!-- common dependencies -->
-
- <dependency>
- <groupId>commons-jxpath</groupId>
- <artifactId>commons-jxpath</artifactId>
- <version>1.3</version>
- </dependency>
-
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.4</version>
- </dependency>
-
- <!-- sun dependencies -->
-
- <dependency>
- <groupId>com.sun</groupId>
- <artifactId>dt</artifactId>
- <version>${java.version}</version>
- <scope>system</scope>
- <systemPath>/${java.home}/../lib/dt.jar</systemPath>
- </dependency>
-
- <dependency>
- <groupId>javax.help</groupId>
- <artifactId>javahelp</artifactId>
- <version>2.0.02</version>
- </dependency>
-
- <!-- maven dependencies -->
-
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-plugin-api</artifactId>
- <version>${maven.version}</version>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-project</artifactId>
- <version>${maven.version}</version>
- <scope>compile</scope>
- </dependency>
-
- <!-- xworks dependencies -->
-
- <dependency>
- <groupId>com.opensymphony</groupId>
- <artifactId>xwork</artifactId>
- <version>2.1.1-cl_20081015</version>
- </dependency>
-
- <!-- swinglabs dependencies -->
-
- <dependency>
- <groupId>org.swinglabs</groupId>
- <artifactId>jxlayer</artifactId>
- <version>3.0.1</version>
- </dependency>
-
- </dependencies>
- </dependencyManagement>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx lutin library parent pom</description>
- <inceptionYear>2008</inceptionYear>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
-
- <packaging>pom</packaging>
-
- <properties>
-
- <!-- id du projet du labs -->
- <labs.id>38</labs.id>
-
- <!-- nom du projet du labs -->
- <labs.project>buix</labs.project>
-
- <!-- libs version -->
- <lutinutil.version>1.0.3</lutinutil.version>
- <jaxx.version>${project.version}</jaxx.version>
- <i18n.version>0.11</i18n.version>
- <lutinpluginutil.version>0.4</lutinpluginutil.version>
- <maven.version>2.0.10</maven.version>
- </properties>
-
- <build>
-
- <pluginManagement>
- <plugins>
-
- <!-- plugin i18n -->
- <plugin>
- <groupId>org.codelutin</groupId>
- <artifactId>maven-i18n-plugin</artifactId>
- <version>${i18n.version}</version>
- </plugin>
-
- <plugin>
- <artifactId>maven-plugin-plugin</artifactId>
- <version>2.4.3</version>
- </plugin>
-
- <plugin>
- <artifactId>maven-site-plugin</artifactId>
- <configuration>
- <locales>fr</locales>
- <siteDirectory>src/site</siteDirectory>
- </configuration>
- <dependencies>
- <dependency>
- <groupId>org.codelutin</groupId>
- <artifactId>doxia-module-jrst</artifactId>
- <version>1.0.0</version>
- </dependency>
- </dependencies>
- </plugin>
-
- </plugins>
- </pluginManagement>
-
- <plugins>
-
- </plugins>
-
- </build>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection}</connection>
- <developerConnection>${maven.scm.developerConnection}</developerConnection>
- <url>${maven.scm.url}</url>
- </scm>
-
- <!-- Maven Environment : Repositories -->
-
- <!--Code Lutin Repository-->
- <repositories>
- <repository>
-
- <id>codelutin-repository</id>
- <name>CodeLutinRepository</name>
- <url>http://lutinbuilder.labs.libre-entreprise.org/maven2</url>
- <snapshots>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </releases>
- </repository>
- </repositories>
-
- <profiles>
- <!-- perform only on a release stage when using the maven-release-plugin -->
- <profile>
- <id>release-profile</id>
- <activation>
- <property>
- <name>performRelease</name>
- <value>true</value>
- </property>
- </activation>
- <build>
- <plugins>
- <!-- always add license and third-party files to classpath -->
- <plugin>
- <groupId>org.codelutin</groupId>
- <artifactId>maven-license-switcher-plugin</artifactId>
- <version>0.7</version>
- <configuration>
- <licenseName>${license-switcher.licenseName}</licenseName>
- </configuration>
- <executions>
- <execution>
- <id>attach-licenses</id>
- <goals>
- <goal>license</goal>
- <goal>third-party</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
-</project>
\ No newline at end of file
Copied: jaxx/tags/1.4/pom.xml (from rev 1351, jaxx/trunk/pom.xml)
===================================================================
--- jaxx/tags/1.4/pom.xml (rev 0)
+++ jaxx/tags/1.4/pom.xml 2009-04-20 16:49:10 UTC (rev 1352)
@@ -0,0 +1,260 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>lutinproject</artifactId>
+ <version>3.5.3</version>
+ </parent>
+
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+
+ <modules>
+ <module>jaxx-runtime-api</module>
+ <module>jaxx-runtime-swing</module>
+ <module>jaxx-runtime-validator</module>
+ <module>jaxx-runtime-validator-swing</module>
+
+ <module>jaxx-compiler-api</module>
+ <module>jaxx-compiler-swing</module>
+ <module>jaxx-compiler-validator</module>
+
+ <module>jaxx-swing-action</module>
+ <module>maven-jaxx-plugin</module>
+
+ <module>jaxx-example</module>
+ </modules>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.codelutin</groupId>
+ <artifactId>lutinutil</artifactId>
+ </dependency>
+ </dependencies>
+
+ <dependencyManagement>
+ <dependencies>
+
+ <!-- lutin dependencies -->
+
+ <dependency>
+ <groupId>org.codelutin</groupId>
+ <artifactId>lutinutil</artifactId>
+ <version>${lutinutil.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codelutin</groupId>
+ <artifactId>lutinpluginutil</artifactId>
+ <version>${lutinpluginutil.version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <!-- common dependencies -->
+
+ <dependency>
+ <groupId>commons-jxpath</groupId>
+ <artifactId>commons-jxpath</artifactId>
+ <version>1.3</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.4</version>
+ </dependency>
+
+ <!-- sun dependencies -->
+
+ <dependency>
+ <groupId>com.sun</groupId>
+ <artifactId>dt</artifactId>
+ <version>${java.version}</version>
+ <scope>system</scope>
+ <systemPath>/${java.home}/../lib/dt.jar</systemPath>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.help</groupId>
+ <artifactId>javahelp</artifactId>
+ <version>2.0.02</version>
+ </dependency>
+
+ <!-- maven dependencies -->
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-api</artifactId>
+ <version>${maven.version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ <version>${maven.version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <!-- xworks dependencies -->
+
+ <dependency>
+ <groupId>com.opensymphony</groupId>
+ <artifactId>xwork</artifactId>
+ <version>2.1.1-cl_20081015</version>
+ </dependency>
+
+ <!-- swinglabs dependencies -->
+
+ <dependency>
+ <groupId>org.swinglabs</groupId>
+ <artifactId>jxlayer</artifactId>
+ <version>3.0.1</version>
+ </dependency>
+
+ </dependencies>
+ </dependencyManagement>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx lutin library parent pom</description>
+ <inceptionYear>2008</inceptionYear>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+
+ <packaging>pom</packaging>
+
+ <properties>
+
+ <!-- id du projet du labs -->
+ <labs.id>38</labs.id>
+
+ <!-- nom du projet du labs -->
+ <labs.project>buix</labs.project>
+
+ <!-- libs version -->
+ <lutinutil.version>1.0.3</lutinutil.version>
+ <jaxx.version>${project.version}</jaxx.version>
+ <i18n.version>0.11</i18n.version>
+ <lutinpluginutil.version>0.4</lutinpluginutil.version>
+ <maven.version>2.0.10</maven.version>
+ </properties>
+
+ <build>
+
+ <pluginManagement>
+ <plugins>
+
+ <!-- plugin i18n -->
+ <plugin>
+ <groupId>org.codelutin</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <version>${i18n.version}</version>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-plugin-plugin</artifactId>
+ <version>2.4.3</version>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <locales>fr</locales>
+ <siteDirectory>src/site</siteDirectory>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.codelutin</groupId>
+ <artifactId>doxia-module-jrst</artifactId>
+ <version>1.0.0</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+
+ </plugins>
+ </pluginManagement>
+
+ <plugins>
+
+ </plugins>
+
+ </build>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4?r…</url>
+ </scm>
+
+ <!-- Maven Environment : Repositories -->
+
+ <!--Code Lutin Repository-->
+ <repositories>
+ <repository>
+
+ <id>codelutin-repository</id>
+ <name>CodeLutinRepository</name>
+ <url>http://lutinbuilder.labs.libre-entreprise.org/maven2</url>
+ <snapshots>
+ <enabled>true</enabled>
+ <checksumPolicy>warn</checksumPolicy>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ <checksumPolicy>warn</checksumPolicy>
+ </releases>
+ </repository>
+ </repositories>
+
+ <profiles>
+ <!-- perform only on a release stage when using the maven-release-plugin -->
+ <profile>
+ <id>release-profile</id>
+ <activation>
+ <property>
+ <name>performRelease</name>
+ <value>true</value>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <!-- always add license and third-party files to classpath -->
+ <plugin>
+ <groupId>org.codelutin</groupId>
+ <artifactId>maven-license-switcher-plugin</artifactId>
+ <version>0.7</version>
+ <configuration>
+ <licenseName>${license-switcher.licenseName}</licenseName>
+ </configuration>
+ <executions>
+ <execution>
+ <id>attach-licenses</id>
+ <goals>
+ <goal>license</goal>
+ <goal>third-party</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
\ No newline at end of file
1
0
r1351 - in jaxx/trunk: . jaxx-compiler-api jaxx-compiler-swing jaxx-compiler-validator jaxx-example jaxx-runtime-api jaxx-runtime-swing jaxx-runtime-validator jaxx-runtime-validator-swing jaxx-swing-action maven-jaxx-plugin
by tchemit@users.labs.libre-entreprise.org April 20, 2009
by tchemit@users.labs.libre-entreprise.org April 20, 2009
April 20, 2009
Author: tchemit
Date: 2009-04-20 16:49:05 +0000 (Mon, 20 Apr 2009)
New Revision: 1351
Modified:
jaxx/trunk/jaxx-compiler-api/pom.xml
jaxx/trunk/jaxx-compiler-swing/pom.xml
jaxx/trunk/jaxx-compiler-validator/pom.xml
jaxx/trunk/jaxx-example/pom.xml
jaxx/trunk/jaxx-runtime-api/pom.xml
jaxx/trunk/jaxx-runtime-swing/pom.xml
jaxx/trunk/jaxx-runtime-validator-swing/pom.xml
jaxx/trunk/jaxx-runtime-validator/pom.xml
jaxx/trunk/jaxx-swing-action/pom.xml
jaxx/trunk/maven-jaxx-plugin/pom.xml
jaxx/trunk/pom.xml
Log:
[maven-release-plugin] prepare release 1.4
Modified: jaxx/trunk/jaxx-compiler-api/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-api/pom.xml 2009-04-20 16:45:30 UTC (rev 1350)
+++ jaxx/trunk/jaxx-compiler-api/pom.xml 2009-04-20 16:49:05 UTC (rev 1351)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -44,8 +44,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-api</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-api</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-compiler-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-swing/pom.xml 2009-04-20 16:45:30 UTC (rev 1350)
+++ jaxx/trunk/jaxx-compiler-swing/pom.xml 2009-04-20 16:49:05 UTC (rev 1351)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -50,8 +50,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-compiler-validator/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-validator/pom.xml 2009-04-20 16:45:30 UTC (rev 1350)
+++ jaxx/trunk/jaxx-compiler-validator/pom.xml 2009-04-20 16:49:05 UTC (rev 1351)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -62,8 +62,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-validator</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-validator</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-example/pom.xml
===================================================================
--- jaxx/trunk/jaxx-example/pom.xml 2009-04-20 16:45:30 UTC (rev 1350)
+++ jaxx/trunk/jaxx-example/pom.xml 2009-04-20 16:49:05 UTC (rev 1351)
@@ -9,7 +9,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -152,9 +152,9 @@
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-example</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-example</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
<profiles>
Modified: jaxx/trunk/jaxx-runtime-api/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-api/pom.xml 2009-04-20 16:45:30 UTC (rev 1350)
+++ jaxx/trunk/jaxx-runtime-api/pom.xml 2009-04-20 16:49:05 UTC (rev 1351)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -57,8 +57,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-api</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-api</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-swing/pom.xml 2009-04-20 16:45:30 UTC (rev 1350)
+++ jaxx/trunk/jaxx-runtime-swing/pom.xml 2009-04-20 16:49:05 UTC (rev 1351)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -44,8 +44,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-validator/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-validator/pom.xml 2009-04-20 16:45:30 UTC (rev 1350)
+++ jaxx/trunk/jaxx-runtime-validator/pom.xml 2009-04-20 16:49:05 UTC (rev 1351)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -67,8 +67,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-validator-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-validator-swing/pom.xml 2009-04-20 16:45:30 UTC (rev 1350)
+++ jaxx/trunk/jaxx-runtime-validator-swing/pom.xml 2009-04-20 16:49:05 UTC (rev 1351)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -65,8 +65,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-swing-action/pom.xml
===================================================================
--- jaxx/trunk/jaxx-swing-action/pom.xml 2009-04-20 16:45:30 UTC (rev 1350)
+++ jaxx/trunk/jaxx-swing-action/pom.xml 2009-04-20 16:49:05 UTC (rev 1351)
@@ -11,7 +11,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -81,9 +81,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-swing-action</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-swing-action</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
</project>
Modified: jaxx/trunk/maven-jaxx-plugin/pom.xml
===================================================================
--- jaxx/trunk/maven-jaxx-plugin/pom.xml 2009-04-20 16:45:30 UTC (rev 1350)
+++ jaxx/trunk/maven-jaxx-plugin/pom.xml 2009-04-20 16:49:05 UTC (rev 1351)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -144,9 +144,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/maven-jaxx-plugin</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/maven-jaxx-plugin</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/m…</url>
</scm>
</project>
\ No newline at end of file
Modified: jaxx/trunk/pom.xml
===================================================================
--- jaxx/trunk/pom.xml 2009-04-20 16:45:30 UTC (rev 1350)
+++ jaxx/trunk/pom.xml 2009-04-20 16:49:05 UTC (rev 1351)
@@ -14,7 +14,7 @@
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
<modules>
<module>jaxx-runtime-api</module>
@@ -197,9 +197,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection}</connection>
- <developerConnection>${maven.scm.developerConnection}</developerConnection>
- <url>${maven.scm.url}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4?r…</url>
</scm>
<!-- Maven Environment : Repositories -->
1
0
Author: tchemit
Date: 2009-04-20 16:45:30 +0000 (Mon, 20 Apr 2009)
New Revision: 1350
Removed:
jaxx/tags/1.4/
Log:
rollback release
1
0
r1349 - in jaxx/trunk: . jaxx-compiler-api jaxx-compiler-swing jaxx-compiler-validator jaxx-example jaxx-runtime-api jaxx-runtime-swing jaxx-runtime-validator jaxx-runtime-validator-swing jaxx-swing-action maven-jaxx-plugin
by tchemit@users.labs.libre-entreprise.org April 20, 2009
by tchemit@users.labs.libre-entreprise.org April 20, 2009
April 20, 2009
Author: tchemit
Date: 2009-04-20 16:38:36 +0000 (Mon, 20 Apr 2009)
New Revision: 1349
Modified:
jaxx/trunk/jaxx-compiler-api/pom.xml
jaxx/trunk/jaxx-compiler-swing/pom.xml
jaxx/trunk/jaxx-compiler-validator/pom.xml
jaxx/trunk/jaxx-example/pom.xml
jaxx/trunk/jaxx-runtime-api/pom.xml
jaxx/trunk/jaxx-runtime-swing/pom.xml
jaxx/trunk/jaxx-runtime-validator-swing/pom.xml
jaxx/trunk/jaxx-runtime-validator/pom.xml
jaxx/trunk/jaxx-swing-action/pom.xml
jaxx/trunk/maven-jaxx-plugin/pom.xml
jaxx/trunk/pom.xml
Log:
release once again ! (pb in jaxx-exemple)
Modified: jaxx/trunk/jaxx-compiler-api/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-api/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
+++ jaxx/trunk/jaxx-compiler-api/pom.xml 2009-04-20 16:38:36 UTC (rev 1349)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -44,8 +44,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-api</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-api</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-compiler-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-swing/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
+++ jaxx/trunk/jaxx-compiler-swing/pom.xml 2009-04-20 16:38:36 UTC (rev 1349)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -50,8 +50,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-swing</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-swing</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-compiler-validator/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-validator/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
+++ jaxx/trunk/jaxx-compiler-validator/pom.xml 2009-04-20 16:38:36 UTC (rev 1349)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -62,8 +62,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-validator</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-validator</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-example/pom.xml
===================================================================
--- jaxx/trunk/jaxx-example/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
+++ jaxx/trunk/jaxx-example/pom.xml 2009-04-20 16:38:36 UTC (rev 1349)
@@ -9,7 +9,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -152,9 +152,9 @@
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-example</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-example</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
<profiles>
@@ -206,8 +206,8 @@
<phase>pre-site</phase>
<configuration>
<tasks>
- <mkdir dir="${maven.site.gen.dir}/resources" />
- <copy todir="${maven.site.gen.dir}/resources" verbose="${maven.verbose}" failonerror="false" overwrite="false">
+ <mkdir dir="targset/site" />
+ <copy todir="targset/site" verbose="${maven.verbose}" failonerror="false" overwrite="false">
<fileset dir="${jnlp.build.directory}">
<include name="**" />
</fileset>
Modified: jaxx/trunk/jaxx-runtime-api/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-api/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
+++ jaxx/trunk/jaxx-runtime-api/pom.xml 2009-04-20 16:38:36 UTC (rev 1349)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -57,8 +57,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-api</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-api</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-swing/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
+++ jaxx/trunk/jaxx-runtime-swing/pom.xml 2009-04-20 16:38:36 UTC (rev 1349)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -44,8 +44,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-swing</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-swing</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-validator/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-validator/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
+++ jaxx/trunk/jaxx-runtime-validator/pom.xml 2009-04-20 16:38:36 UTC (rev 1349)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -52,7 +52,6 @@
<plugin>
<groupId>org.codelutin</groupId>
<artifactId>maven-i18n-plugin</artifactId>
- <version>${i18n.version}</version>
<executions>
<execution>
<goals>
@@ -68,8 +67,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-validator</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-validator</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-validator-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-validator-swing/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
+++ jaxx/trunk/jaxx-runtime-validator-swing/pom.xml 2009-04-20 16:38:36 UTC (rev 1349)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -49,8 +49,7 @@
<plugins>
<plugin>
<groupId>org.codelutin</groupId>
- <artifactId>maven-i18n-plugin</artifactId>
- <version>${i18n.version}</version>
+ <artifactId>maven-i18n-plugin</artifactId>
<executions>
<execution>
<goals>
@@ -66,8 +65,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-validator-swing</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-validator-swing</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-swing-action/pom.xml
===================================================================
--- jaxx/trunk/jaxx-swing-action/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
+++ jaxx/trunk/jaxx-swing-action/pom.xml 2009-04-20 16:38:36 UTC (rev 1349)
@@ -11,7 +11,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -81,9 +81,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-swing-action</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-swing-action</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
Modified: jaxx/trunk/maven-jaxx-plugin/pom.xml
===================================================================
--- jaxx/trunk/maven-jaxx-plugin/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
+++ jaxx/trunk/maven-jaxx-plugin/pom.xml 2009-04-20 16:38:36 UTC (rev 1349)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -96,7 +96,6 @@
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
- <version>2.1</version>
</dependency>
</dependencies>
@@ -145,9 +144,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/maven-jaxx-plugin</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/maven-jaxx-plugin</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/mave…</url>
+ <connection>${maven.scm.connection.child}</connection>
+ <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
+ <url>${maven.scm.url.child}</url>
</scm>
</project>
\ No newline at end of file
Modified: jaxx/trunk/pom.xml
===================================================================
--- jaxx/trunk/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
+++ jaxx/trunk/pom.xml 2009-04-20 16:38:36 UTC (rev 1349)
@@ -14,7 +14,7 @@
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4-SNAPSHOT</version>
<modules>
<module>jaxx-runtime-api</module>
@@ -197,9 +197,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/?roo…</url>
+ <connection>${maven.scm.connection}</connection>
+ <developerConnection>${maven.scm.developerConnection}</developerConnection>
+ <url>${maven.scm.url}</url>
</scm>
<!-- Maven Environment : Repositories -->
1
0
r1348 - in jaxx/trunk: . jaxx-compiler-api jaxx-compiler-swing jaxx-compiler-validator jaxx-example jaxx-runtime-api jaxx-runtime-swing jaxx-runtime-validator jaxx-runtime-validator-swing jaxx-swing-action maven-jaxx-plugin
by tchemit@users.labs.libre-entreprise.org April 20, 2009
by tchemit@users.labs.libre-entreprise.org April 20, 2009
April 20, 2009
Author: tchemit
Date: 2009-04-20 15:58:55 +0000 (Mon, 20 Apr 2009)
New Revision: 1348
Modified:
jaxx/trunk/jaxx-compiler-api/pom.xml
jaxx/trunk/jaxx-compiler-swing/pom.xml
jaxx/trunk/jaxx-compiler-validator/pom.xml
jaxx/trunk/jaxx-example/pom.xml
jaxx/trunk/jaxx-runtime-api/pom.xml
jaxx/trunk/jaxx-runtime-swing/pom.xml
jaxx/trunk/jaxx-runtime-validator-swing/pom.xml
jaxx/trunk/jaxx-runtime-validator/pom.xml
jaxx/trunk/jaxx-swing-action/pom.xml
jaxx/trunk/maven-jaxx-plugin/pom.xml
jaxx/trunk/pom.xml
Log:
[maven-release-plugin] prepare for next development iteration
Modified: jaxx/trunk/jaxx-compiler-api/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-api/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
+++ jaxx/trunk/jaxx-compiler-api/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -44,8 +44,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-api</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-api</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-api</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-api</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-compiler-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-swing/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
+++ jaxx/trunk/jaxx-compiler-swing/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -50,8 +50,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-swing</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-swing</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-compiler-validator/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-validator/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
+++ jaxx/trunk/jaxx-compiler-validator/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -62,8 +62,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-validator</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-validator</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-validator</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-compiler-validator</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-example/pom.xml
===================================================================
--- jaxx/trunk/jaxx-example/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
+++ jaxx/trunk/jaxx-example/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
@@ -9,7 +9,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -152,9 +152,9 @@
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-example</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-example</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-example</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-example</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
<profiles>
Modified: jaxx/trunk/jaxx-runtime-api/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-api/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
+++ jaxx/trunk/jaxx-runtime-api/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -57,8 +57,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-api</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-api</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-api</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-api</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-swing/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
+++ jaxx/trunk/jaxx-runtime-swing/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -44,8 +44,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-swing</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-swing</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-validator/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-validator/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
+++ jaxx/trunk/jaxx-runtime-validator/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -68,8 +68,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-validator</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-validator</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-validator-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-validator-swing/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
+++ jaxx/trunk/jaxx-runtime-validator-swing/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -66,8 +66,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator-swing</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator-swing</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-validator-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-runtime-validator-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-swing-action/pom.xml
===================================================================
--- jaxx/trunk/jaxx-swing-action/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
+++ jaxx/trunk/jaxx-swing-action/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
@@ -11,7 +11,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -81,9 +81,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-swing-action</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-swing-action</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-swing-action</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/jaxx-swing-action</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/jaxx…</url>
</scm>
</project>
Modified: jaxx/trunk/maven-jaxx-plugin/pom.xml
===================================================================
--- jaxx/trunk/maven-jaxx-plugin/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
+++ jaxx/trunk/maven-jaxx-plugin/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -145,9 +145,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/maven-jaxx-plugin</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/maven-jaxx-plugin</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/m…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/maven-jaxx-plugin</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk/maven-jaxx-plugin</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/mave…</url>
</scm>
</project>
\ No newline at end of file
Modified: jaxx/trunk/pom.xml
===================================================================
--- jaxx/trunk/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
+++ jaxx/trunk/pom.xml 2009-04-20 15:58:55 UTC (rev 1348)
@@ -14,7 +14,7 @@
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4</version>
+ <version>1.5-SNAPSHOT</version>
<modules>
<module>jaxx-runtime-api</module>
@@ -197,9 +197,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4</connection>
- <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4</developerConnection>
- <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4?r…</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/trunk/?roo…</url>
</scm>
<!-- Maven Environment : Repositories -->
1
0
r1347 - in jaxx/tags: . 1.4 1.4/jaxx-compiler-api 1.4/jaxx-compiler-swing 1.4/jaxx-compiler-validator 1.4/jaxx-example 1.4/jaxx-runtime-api 1.4/jaxx-runtime-swing 1.4/jaxx-runtime-validator 1.4/jaxx-runtime-validator-swing 1.4/jaxx-swing-action 1.4/maven-jaxx-plugin
by tchemit@users.labs.libre-entreprise.org April 20, 2009
by tchemit@users.labs.libre-entreprise.org April 20, 2009
April 20, 2009
Author: tchemit
Date: 2009-04-20 15:58:49 +0000 (Mon, 20 Apr 2009)
New Revision: 1347
Added:
jaxx/tags/1.4/
jaxx/tags/1.4/jaxx-compiler-api/pom.xml
jaxx/tags/1.4/jaxx-compiler-swing/pom.xml
jaxx/tags/1.4/jaxx-compiler-validator/pom.xml
jaxx/tags/1.4/jaxx-example/pom.xml
jaxx/tags/1.4/jaxx-runtime-api/pom.xml
jaxx/tags/1.4/jaxx-runtime-swing/pom.xml
jaxx/tags/1.4/jaxx-runtime-validator-swing/pom.xml
jaxx/tags/1.4/jaxx-runtime-validator/pom.xml
jaxx/tags/1.4/jaxx-swing-action/pom.xml
jaxx/tags/1.4/maven-jaxx-plugin/pom.xml
jaxx/tags/1.4/pom.xml
Removed:
jaxx/tags/1.4/jaxx-compiler-api/pom.xml
jaxx/tags/1.4/jaxx-compiler-swing/pom.xml
jaxx/tags/1.4/jaxx-compiler-validator/pom.xml
jaxx/tags/1.4/jaxx-example/pom.xml
jaxx/tags/1.4/jaxx-runtime-api/pom.xml
jaxx/tags/1.4/jaxx-runtime-swing/pom.xml
jaxx/tags/1.4/jaxx-runtime-validator-swing/pom.xml
jaxx/tags/1.4/jaxx-runtime-validator/pom.xml
jaxx/tags/1.4/jaxx-swing-action/pom.xml
jaxx/tags/1.4/maven-jaxx-plugin/pom.xml
jaxx/tags/1.4/pom.xml
Log:
[maven-release-plugin] copy for tag 1.4
Copied: jaxx/tags/1.4 (from rev 1345, jaxx/trunk)
Deleted: jaxx/tags/1.4/jaxx-compiler-api/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-api/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-compiler-api/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-compiler-api</artifactId>
-
- <dependencies>
-
- <!-- sibling dependencies -->
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx compiler api</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-</project>
Copied: jaxx/tags/1.4/jaxx-compiler-api/pom.xml (from rev 1346, jaxx/trunk/jaxx-compiler-api/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-compiler-api/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-compiler-api/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-compiler-api</artifactId>
+
+ <dependencies>
+
+ <!-- sibling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx compiler api</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-api</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-api</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+</project>
Deleted: jaxx/tags/1.4/jaxx-compiler-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-swing/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-compiler-swing/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-compiler-swing</artifactId>
-
- <dependencies>
-
- <!-- sibling dependencies -->
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-compiler-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx compiler swing extension</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-</project>
Copied: jaxx/tags/1.4/jaxx-compiler-swing/pom.xml (from rev 1346, jaxx/trunk/jaxx-compiler-swing/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-compiler-swing/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-compiler-swing/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-compiler-swing</artifactId>
+
+ <dependencies>
+
+ <!-- sibling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-swing</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-compiler-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx compiler swing extension</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+</project>
Deleted: jaxx/tags/1.4/jaxx-compiler-validator/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-validator/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-compiler-validator/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-compiler-validator</artifactId>
-
- <dependencies>
-
- <!-- sibling dependencies -->
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-validator</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-validator-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-compiler-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx compiler validation extension</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-</project>
Copied: jaxx/tags/1.4/jaxx-compiler-validator/pom.xml (from rev 1346, jaxx/trunk/jaxx-compiler-validator/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-compiler-validator/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-compiler-validator/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-compiler-validator</artifactId>
+
+ <dependencies>
+
+ <!-- sibling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-validator</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-swing</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-validator-swing</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-compiler-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx compiler validation extension</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-validator</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-validator</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+</project>
Deleted: jaxx/tags/1.4/jaxx-example/pom.xml
===================================================================
--- jaxx/trunk/jaxx-example/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-example/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -1,285 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-example</artifactId>
-
- <dependencies>
-
- <!-- sibiling dependencies -->
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
- <!--dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-swing-widget</artifactId>
- <version>${project.version}</version>
- </dependency-->
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-validator-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx Examples</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
-
- <packaging>jar</packaging>
-
- <properties>
-
- <maven.jar.main.class>jaxx.demo.JAXXDemo</maven.jar.main.class>
-
- <!-- jnlp -->
- <keystorepath>${codelutin.keystorepath}</keystorepath>
- <keystorealias>CodeLutin</keystorealias>
- <keystorepass>codelutin</keystorepass>
-
- <jnlp.build.directory>${project.build.directory}/jnlp</jnlp.build.directory>
-
- </properties>
-
- <build>
-
- <resources>
- <resource>
- <directory>src/main/java</directory>
- <includes>
- <include>**/*.jaxx</include>
- </includes>
- </resource>
- <resource>
- <directory>src/main/resources</directory>
- <includes>
- <include>**/*</include>
- </includes>
- </resource>
- </resources>
-
- <pluginManagement>
- <plugins>
-
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <configuration>
- <archive>
- <manifest>
- <addClasspath>true</addClasspath>
- <classpathPrefix>./lib/</classpathPrefix>
- </manifest>
- </archive>
- </configuration>
- </plugin>
-
- </plugins>
-
- </pluginManagement>
-
- <plugins>
-
- <plugin>
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>maven-jaxx-plugin</artifactId>
- <version>${project.version}</version>
- <executions>
- <execution>
- <goals>
- <goal>generate</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.codelutin</groupId>
- <artifactId>maven-i18n-plugin</artifactId>
- <configuration>
- <entries>
- <entry>
- <basedir>${maven.gen.dir}/java/</basedir>
- <includes>
- <param>**\/**.java</param>
- </includes>
- </entry>
- </entries>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>parserJava</goal>
- <goal>gen</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <outputDirectory>${project.build.directory}/lib</outputDirectory>
- </configuration>
- </plugin>
-
- </plugins>
- </build>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
-
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-
- <profiles>
- <!-- by default jnlp is only perform on a release stage when using the maven-release-plugin -->
- <profile>
- <id>release-profile</id>
- <activation>
- <property>
- <name>performRelease</name>
- <value>true</value>
- </property>
- </activation>
- <build>
- <plugins>
- <plugin>
-
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <!-- Ajout des libs signe par Sun dans un fichier jnlp separe -->
- <execution>
- <id>JnlpSun</id>
- <phase>verify</phase>
- <configuration>
- <tasks>
- <mkdir dir="${jnlp.build.directory}" />
- <copy file="${project.basedir}/src/main/jnlp/sun.jnlp" verbose="${maven.verbose}" todir="${jnlp.build.directory}" failonerror="false">
- <filterset>
- <filter token="lib" value="javahelp-2.0.02.jar" />
- <filter token="url" value="${project.url}" />
- </filterset>
- </copy>
- <copy file="${project.basedir}/src/main/jnlp/jxlayer.jnlp" verbose="${maven.verbose}" todir="${jnlp.build.directory}" failonerror="false">
- <filterset>
- <filter token="lib" value="jxlayer-3.0.1.jar" />
- <filter token="url" value="${project.url}" />
- </filterset>
- </copy>
- <copy file="${project.build.directory}/lib/javahelp-2.0.02.jar" verbose="${maven.verbose}" todir="${jnlp.build.directory}/lib" failonerror="false" />
- <copy file="${project.build.directory}/lib/jxlayer-3.0.1.jar" verbose="${maven.verbose}" todir="${jnlp.build.directory}/lib" failonerror="false" />
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
-
- <execution>
- <id>JnlpToSite</id>
- <phase>pre-site</phase>
- <configuration>
- <tasks>
- <mkdir dir="${maven.site.gen.dir}/resources" />
- <copy todir="${maven.site.gen.dir}/resources" verbose="${maven.verbose}" failonerror="false" overwrite="false">
- <fileset dir="${jnlp.build.directory}">
- <include name="**" />
- </fileset>
- </copy>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo.webstart</groupId>
- <artifactId>webstart-maven-plugin</artifactId>
- <version>1.0-alpha-2-cl_20081018</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>jnlp-inline</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <force>false</force>
- <dependencies>
- <excludes>
- <exclude>javax.help:javahelp</exclude>
- <exclude>org.swinglabs:jxlayer</exclude>
- </excludes>
- </dependencies>
- <libPath>lib</libPath>
- <extensions>
- <sun>sun.jnlp</sun>
- <jxlayer>jxlayer.jnlp</jxlayer>
- </extensions>
- <jnlp>
- <outputFile>launch-demo.jnlp</outputFile>
- <mainClass>${maven.jar.main.class}</mainClass>
- <allPermissions>true</allPermissions>
- <offlineAllowed>true</offlineAllowed>
- </jnlp>
-
- <sign>
- <keystore>${keystorepath}</keystore>
- <keypass />
- <storepass>${keystorepass}</storepass>
- <storetype />
- <alias>${keystorealias}</alias>
- <validity />
- <dnameCn />
- <dnameOu />
- <dnameO />
- <dnameL />
- <dnameSt />
- <dnameC />
- <verify>true</verify>
- <keystoreConfig>
- <delete>false</delete>
- <gen>false</gen>
- </keystoreConfig>
- </sign>
-
- <pack200>false</pack200>
- <gzip>true</gzip>
- <verbose>false</verbose>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
-</project>
\ No newline at end of file
Copied: jaxx/tags/1.4/jaxx-example/pom.xml (from rev 1346, jaxx/trunk/jaxx-example/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-example/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-example/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -0,0 +1,285 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-example</artifactId>
+
+ <dependencies>
+
+ <!-- sibiling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-swing</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!--dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-swing-widget</artifactId>
+ <version>${project.version}</version>
+ </dependency-->
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-validator-swing</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx Examples</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+
+ <packaging>jar</packaging>
+
+ <properties>
+
+ <maven.jar.main.class>jaxx.demo.JAXXDemo</maven.jar.main.class>
+
+ <!-- jnlp -->
+ <keystorepath>${codelutin.keystorepath}</keystorepath>
+ <keystorealias>CodeLutin</keystorealias>
+ <keystorepass>codelutin</keystorepass>
+
+ <jnlp.build.directory>${project.build.directory}/jnlp</jnlp.build.directory>
+
+ </properties>
+
+ <build>
+
+ <resources>
+ <resource>
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**/*.jaxx</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </resource>
+ </resources>
+
+ <pluginManagement>
+ <plugins>
+
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <addClasspath>true</addClasspath>
+ <classpathPrefix>./lib/</classpathPrefix>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+
+ </plugins>
+
+ </pluginManagement>
+
+ <plugins>
+
+ <plugin>
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>maven-jaxx-plugin</artifactId>
+ <version>${project.version}</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codelutin</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <configuration>
+ <entries>
+ <entry>
+ <basedir>${maven.gen.dir}/java/</basedir>
+ <includes>
+ <param>**\/**.java</param>
+ </includes>
+ </entry>
+ </entries>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>parserJava</goal>
+ <goal>gen</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <configuration>
+ <outputDirectory>${project.build.directory}/lib</outputDirectory>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-example</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-example</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+
+ <profiles>
+ <!-- by default jnlp is only perform on a release stage when using the maven-release-plugin -->
+ <profile>
+ <id>release-profile</id>
+ <activation>
+ <property>
+ <name>performRelease</name>
+ <value>true</value>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <!-- Ajout des libs signe par Sun dans un fichier jnlp separe -->
+ <execution>
+ <id>JnlpSun</id>
+ <phase>verify</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="${jnlp.build.directory}" />
+ <copy file="${project.basedir}/src/main/jnlp/sun.jnlp" verbose="${maven.verbose}" todir="${jnlp.build.directory}" failonerror="false">
+ <filterset>
+ <filter token="lib" value="javahelp-2.0.02.jar" />
+ <filter token="url" value="${project.url}" />
+ </filterset>
+ </copy>
+ <copy file="${project.basedir}/src/main/jnlp/jxlayer.jnlp" verbose="${maven.verbose}" todir="${jnlp.build.directory}" failonerror="false">
+ <filterset>
+ <filter token="lib" value="jxlayer-3.0.1.jar" />
+ <filter token="url" value="${project.url}" />
+ </filterset>
+ </copy>
+ <copy file="${project.build.directory}/lib/javahelp-2.0.02.jar" verbose="${maven.verbose}" todir="${jnlp.build.directory}/lib" failonerror="false" />
+ <copy file="${project.build.directory}/lib/jxlayer-3.0.1.jar" verbose="${maven.verbose}" todir="${jnlp.build.directory}/lib" failonerror="false" />
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+
+ <execution>
+ <id>JnlpToSite</id>
+ <phase>pre-site</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="${maven.site.gen.dir}/resources" />
+ <copy todir="${maven.site.gen.dir}/resources" verbose="${maven.verbose}" failonerror="false" overwrite="false">
+ <fileset dir="${jnlp.build.directory}">
+ <include name="**" />
+ </fileset>
+ </copy>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo.webstart</groupId>
+ <artifactId>webstart-maven-plugin</artifactId>
+ <version>1.0-alpha-2-cl_20081018</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>jnlp-inline</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <force>false</force>
+ <dependencies>
+ <excludes>
+ <exclude>javax.help:javahelp</exclude>
+ <exclude>org.swinglabs:jxlayer</exclude>
+ </excludes>
+ </dependencies>
+ <libPath>lib</libPath>
+ <extensions>
+ <sun>sun.jnlp</sun>
+ <jxlayer>jxlayer.jnlp</jxlayer>
+ </extensions>
+ <jnlp>
+ <outputFile>launch-demo.jnlp</outputFile>
+ <mainClass>${maven.jar.main.class}</mainClass>
+ <allPermissions>true</allPermissions>
+ <offlineAllowed>true</offlineAllowed>
+ </jnlp>
+
+ <sign>
+ <keystore>${keystorepath}</keystore>
+ <keypass />
+ <storepass>${keystorepass}</storepass>
+ <storetype />
+ <alias>${keystorealias}</alias>
+ <validity />
+ <dnameCn />
+ <dnameOu />
+ <dnameO />
+ <dnameL />
+ <dnameSt />
+ <dnameC />
+ <verify>true</verify>
+ <keystoreConfig>
+ <delete>false</delete>
+ <gen>false</gen>
+ </keystoreConfig>
+ </sign>
+
+ <pack200>false</pack200>
+ <gzip>true</gzip>
+ <verbose>false</verbose>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
\ No newline at end of file
Deleted: jaxx/tags/1.4/jaxx-runtime-api/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-api/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-runtime-api/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-runtime-api</artifactId>
-
- <dependencies>
-
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- </dependency>
-
- <!-- pour utiliser javaHelp -->
- <dependency>
- <groupId>javax.help</groupId>
- <artifactId>javahelp</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.swinglabs</groupId>
- <artifactId>jxlayer</artifactId>
- </dependency>
-
- <dependency>
- <groupId>commons-jxpath</groupId>
- <artifactId>commons-jxpath</artifactId>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx runtime api</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-</project>
Copied: jaxx/tags/1.4/jaxx-runtime-api/pom.xml (from rev 1346, jaxx/trunk/jaxx-runtime-api/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-runtime-api/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-runtime-api/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-runtime-api</artifactId>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+
+ <!-- pour utiliser javaHelp -->
+ <dependency>
+ <groupId>javax.help</groupId>
+ <artifactId>javahelp</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.swinglabs</groupId>
+ <artifactId>jxlayer</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-jxpath</groupId>
+ <artifactId>commons-jxpath</artifactId>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx runtime api</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-api</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-api</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+</project>
Deleted: jaxx/tags/1.4/jaxx-runtime-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-swing/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-runtime-swing/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-runtime-swing</artifactId>
-
- <dependencies>
-
- <!-- sibling dependencies -->
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx runtime swing extension</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-</project>
Copied: jaxx/tags/1.4/jaxx-runtime-swing/pom.xml (from rev 1346, jaxx/trunk/jaxx-runtime-swing/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-runtime-swing/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-runtime-swing/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-runtime-swing</artifactId>
+
+ <dependencies>
+
+ <!-- sibling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx runtime swing extension</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+</project>
Deleted: jaxx/tags/1.4/jaxx-runtime-validator/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-validator/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-runtime-validator/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-runtime-validator</artifactId>
-
- <dependencies>
-
- <!-- sibling dependencies -->
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <!-- validation framework -->
-
- <dependency>
- <groupId>com.opensymphony</groupId>
- <artifactId>xwork</artifactId>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx runtime validation</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.codelutin</groupId>
- <artifactId>maven-i18n-plugin</artifactId>
- <version>${i18n.version}</version>
- <executions>
- <execution>
- <goals>
- <goal>parserJava</goal>
- <goal>gen</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-</project>
Copied: jaxx/tags/1.4/jaxx-runtime-validator/pom.xml (from rev 1346, jaxx/trunk/jaxx-runtime-validator/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-runtime-validator/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-runtime-validator/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-runtime-validator</artifactId>
+
+ <dependencies>
+
+ <!-- sibling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <!-- validation framework -->
+
+ <dependency>
+ <groupId>com.opensymphony</groupId>
+ <artifactId>xwork</artifactId>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx runtime validation</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codelutin</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <version>${i18n.version}</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>parserJava</goal>
+ <goal>gen</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+</project>
Deleted: jaxx/tags/1.4/jaxx-runtime-validator-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-validator-swing/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-runtime-validator-swing/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-runtime-validator-swing</artifactId>
-
- <dependencies>
-
- <!-- sibling dependencies -->
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-validator</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx validation swing extension</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.codelutin</groupId>
- <artifactId>maven-i18n-plugin</artifactId>
- <version>${i18n.version}</version>
- <executions>
- <execution>
- <goals>
- <goal>parserJava</goal>
- <goal>gen</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-</project>
Copied: jaxx/tags/1.4/jaxx-runtime-validator-swing/pom.xml (from rev 1346, jaxx/trunk/jaxx-runtime-validator-swing/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-runtime-validator-swing/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-runtime-validator-swing/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-runtime-validator-swing</artifactId>
+
+ <dependencies>
+
+ <!-- sibling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-validator</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-swing</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx validation swing extension</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codelutin</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <version>${i18n.version}</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>parserJava</goal>
+ <goal>gen</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+</project>
Deleted: jaxx/tags/1.4/jaxx-swing-action/pom.xml
===================================================================
--- jaxx/trunk/jaxx-swing-action/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/jaxx-swing-action/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-swing-action</artifactId>
-
- <dependencies>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-runtime-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>jboss</groupId>
- <artifactId>javassist</artifactId>
- <version>3.7.ga</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx lutin library swing extension (tabs and actions)</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <build>
-
- <pluginManagement>
- <plugins>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <!-- the code contains some AnnotationProcessor -->
- <compilerArgument>-proc:none</compilerArgument>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
-
- <plugins>
-
- <plugin>
- <groupId>org.codelutin</groupId>
- <artifactId>maven-i18n-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>parserJava</goal>
- <goal>gen</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- </plugins>
- </build>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-
-</project>
Copied: jaxx/tags/1.4/jaxx-swing-action/pom.xml (from rev 1346, jaxx/trunk/jaxx-swing-action/pom.xml)
===================================================================
--- jaxx/tags/1.4/jaxx-swing-action/pom.xml (rev 0)
+++ jaxx/tags/1.4/jaxx-swing-action/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-swing-action</artifactId>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-swing</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>javassist</artifactId>
+ <version>3.7.ga</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx lutin library swing extension (tabs and actions)</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <build>
+
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <!-- the code contains some AnnotationProcessor -->
+ <compilerArgument>-proc:none</compilerArgument>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+
+ <plugins>
+
+ <plugin>
+ <groupId>org.codelutin</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>parserJava</goal>
+ <goal>gen</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-swing-action</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-swing-action</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
+ </scm>
+
+</project>
Deleted: jaxx/tags/1.4/maven-jaxx-plugin/pom.xml
===================================================================
--- jaxx/trunk/maven-jaxx-plugin/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/maven-jaxx-plugin/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -1,153 +0,0 @@
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
- </parent>
-
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>maven-jaxx-plugin</artifactId>
-
- <dependencies>
-
- <!-- sibling dependencies -->
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-compiler-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-compiler-validator</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-compiler-swing</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>jaxx-swing-action</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <!-- maven plugin project dependencies -->
-
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-plugin-api</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-project</artifactId>
- </dependency>
-
- <!-- other dependencies -->
-
- <dependency>
- <groupId>org.codelutin</groupId>
- <artifactId>lutinpluginutil</artifactId>
- </dependency>
-
- <!-- pour acceder aux BeansInfos swing via Introspector -->
- <dependency>
- <groupId>com.sun</groupId>
- <artifactId>dt</artifactId>
- <!--version>${java.version}</version-->
- <scope>system</scope>
- <systemPath>/${java.home}/../lib/dt.jar</systemPath>
- </dependency>
-
- <!-- tests dependencies -->
-
- <dependency>
- <groupId>org.apache.maven.shared</groupId>
- <artifactId>maven-plugin-testing-harness</artifactId>
- <version>1.1</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.maven.shared</groupId>
- <artifactId>maven-verifier</artifactId>
- <version>1.0</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.velocity</groupId>
- <artifactId>velocity</artifactId>
- <version>1.5</version>
- </dependency>
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.1</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>
- Maven 2 plugin to generate java source from ui interface definitions
- in jaxx format.
- </description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
-
- <packaging>maven-plugin</packaging>
- <build>
- <plugins>
-
- <plugin>
- <artifactId>maven-plugin-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>helpmojo</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- </plugins>
- </build>
-
- <reporting>
- <plugins>
- <plugin>
- <artifactId>maven-plugin-plugin</artifactId>
- </plugin>
- </plugins>
- </reporting>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
- </scm>
-
-</project>
\ No newline at end of file
Copied: jaxx/tags/1.4/maven-jaxx-plugin/pom.xml (from rev 1346, jaxx/trunk/maven-jaxx-plugin/pom.xml)
===================================================================
--- jaxx/tags/1.4/maven-jaxx-plugin/pom.xml (rev 0)
+++ jaxx/tags/1.4/maven-jaxx-plugin/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -0,0 +1,153 @@
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+ </parent>
+
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>maven-jaxx-plugin</artifactId>
+
+ <dependencies>
+
+ <!-- sibling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-compiler-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-compiler-validator</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-compiler-swing</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-swing-action</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <!-- maven plugin project dependencies -->
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ </dependency>
+
+ <!-- other dependencies -->
+
+ <dependency>
+ <groupId>org.codelutin</groupId>
+ <artifactId>lutinpluginutil</artifactId>
+ </dependency>
+
+ <!-- pour acceder aux BeansInfos swing via Introspector -->
+ <dependency>
+ <groupId>com.sun</groupId>
+ <artifactId>dt</artifactId>
+ <!--version>${java.version}</version-->
+ <scope>system</scope>
+ <systemPath>/${java.home}/../lib/dt.jar</systemPath>
+ </dependency>
+
+ <!-- tests dependencies -->
+
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-plugin-testing-harness</artifactId>
+ <version>1.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-verifier</artifactId>
+ <version>1.0</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.velocity</groupId>
+ <artifactId>velocity</artifactId>
+ <version>1.5</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.1</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>
+ Maven 2 plugin to generate java source from ui interface definitions
+ in jaxx format.
+ </description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+
+ <packaging>maven-plugin</packaging>
+ <build>
+ <plugins>
+
+ <plugin>
+ <artifactId>maven-plugin-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>helpmojo</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <artifactId>maven-plugin-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </reporting>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/maven-jaxx-plugin</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/maven-jaxx-plugin</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/m…</url>
+ </scm>
+
+</project>
\ No newline at end of file
Deleted: jaxx/tags/1.4/pom.xml
===================================================================
--- jaxx/trunk/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/tags/1.4/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -1,260 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>org.codelutin</groupId>
- <artifactId>lutinproject</artifactId>
- <version>3.5.3</version>
- </parent>
-
- <groupId>org.codelutin</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
-
- <modules>
- <module>jaxx-runtime-api</module>
- <module>jaxx-runtime-swing</module>
- <module>jaxx-runtime-validator</module>
- <module>jaxx-runtime-validator-swing</module>
-
- <module>jaxx-compiler-api</module>
- <module>jaxx-compiler-swing</module>
- <module>jaxx-compiler-validator</module>
-
- <module>jaxx-swing-action</module>
- <module>maven-jaxx-plugin</module>
-
- <module>jaxx-example</module>
- </modules>
-
- <dependencies>
- <dependency>
- <groupId>org.codelutin</groupId>
- <artifactId>lutinutil</artifactId>
- </dependency>
- </dependencies>
-
- <dependencyManagement>
- <dependencies>
-
- <!-- lutin dependencies -->
-
- <dependency>
- <groupId>org.codelutin</groupId>
- <artifactId>lutinutil</artifactId>
- <version>${lutinutil.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.codelutin</groupId>
- <artifactId>lutinpluginutil</artifactId>
- <version>${lutinpluginutil.version}</version>
- <scope>compile</scope>
- </dependency>
-
- <!-- common dependencies -->
-
- <dependency>
- <groupId>commons-jxpath</groupId>
- <artifactId>commons-jxpath</artifactId>
- <version>1.3</version>
- </dependency>
-
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.4</version>
- </dependency>
-
- <!-- sun dependencies -->
-
- <dependency>
- <groupId>com.sun</groupId>
- <artifactId>dt</artifactId>
- <version>${java.version}</version>
- <scope>system</scope>
- <systemPath>/${java.home}/../lib/dt.jar</systemPath>
- </dependency>
-
- <dependency>
- <groupId>javax.help</groupId>
- <artifactId>javahelp</artifactId>
- <version>2.0.02</version>
- </dependency>
-
- <!-- maven dependencies -->
-
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-plugin-api</artifactId>
- <version>${maven.version}</version>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-project</artifactId>
- <version>${maven.version}</version>
- <scope>compile</scope>
- </dependency>
-
- <!-- xworks dependencies -->
-
- <dependency>
- <groupId>com.opensymphony</groupId>
- <artifactId>xwork</artifactId>
- <version>2.1.1-cl_20081015</version>
- </dependency>
-
- <!-- swinglabs dependencies -->
-
- <dependency>
- <groupId>org.swinglabs</groupId>
- <artifactId>jxlayer</artifactId>
- <version>3.0.1</version>
- </dependency>
-
- </dependencies>
- </dependencyManagement>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>Jaxx lutin library parent pom</description>
- <inceptionYear>2008</inceptionYear>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
-
- <packaging>pom</packaging>
-
- <properties>
-
- <!-- id du projet du labs -->
- <labs.id>38</labs.id>
-
- <!-- nom du projet du labs -->
- <labs.project>buix</labs.project>
-
- <!-- libs version -->
- <lutinutil.version>1.0.3</lutinutil.version>
- <jaxx.version>${project.version}</jaxx.version>
- <i18n.version>0.11</i18n.version>
- <lutinpluginutil.version>0.4</lutinpluginutil.version>
- <maven.version>2.0.10</maven.version>
- </properties>
-
- <build>
-
- <pluginManagement>
- <plugins>
-
- <!-- plugin i18n -->
- <plugin>
- <groupId>org.codelutin</groupId>
- <artifactId>maven-i18n-plugin</artifactId>
- <version>${i18n.version}</version>
- </plugin>
-
- <plugin>
- <artifactId>maven-plugin-plugin</artifactId>
- <version>2.4.3</version>
- </plugin>
-
- <plugin>
- <artifactId>maven-site-plugin</artifactId>
- <configuration>
- <locales>fr</locales>
- <siteDirectory>src/site</siteDirectory>
- </configuration>
- <dependencies>
- <dependency>
- <groupId>org.codelutin</groupId>
- <artifactId>doxia-module-jrst</artifactId>
- <version>1.0.0</version>
- </dependency>
- </dependencies>
- </plugin>
-
- </plugins>
- </pluginManagement>
-
- <plugins>
-
- </plugins>
-
- </build>
-
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
- <scm>
- <connection>${maven.scm.connection}</connection>
- <developerConnection>${maven.scm.developerConnection}</developerConnection>
- <url>${maven.scm.url}</url>
- </scm>
-
- <!-- Maven Environment : Repositories -->
-
- <!--Code Lutin Repository-->
- <repositories>
- <repository>
-
- <id>codelutin-repository</id>
- <name>CodeLutinRepository</name>
- <url>http://lutinbuilder.labs.libre-entreprise.org/maven2</url>
- <snapshots>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </releases>
- </repository>
- </repositories>
-
- <profiles>
- <!-- perform only on a release stage when using the maven-release-plugin -->
- <profile>
- <id>release-profile</id>
- <activation>
- <property>
- <name>performRelease</name>
- <value>true</value>
- </property>
- </activation>
- <build>
- <plugins>
- <!-- always add license and third-party files to classpath -->
- <plugin>
- <groupId>org.codelutin</groupId>
- <artifactId>maven-license-switcher-plugin</artifactId>
- <version>0.7</version>
- <configuration>
- <licenseName>${license-switcher.licenseName}</licenseName>
- </configuration>
- <executions>
- <execution>
- <id>attach-licenses</id>
- <goals>
- <goal>license</goal>
- <goal>third-party</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
-</project>
\ No newline at end of file
Copied: jaxx/tags/1.4/pom.xml (from rev 1346, jaxx/trunk/pom.xml)
===================================================================
--- jaxx/tags/1.4/pom.xml (rev 0)
+++ jaxx/tags/1.4/pom.xml 2009-04-20 15:58:49 UTC (rev 1347)
@@ -0,0 +1,260 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.codelutin</groupId>
+ <artifactId>lutinproject</artifactId>
+ <version>3.5.3</version>
+ </parent>
+
+ <groupId>org.codelutin</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.4</version>
+
+ <modules>
+ <module>jaxx-runtime-api</module>
+ <module>jaxx-runtime-swing</module>
+ <module>jaxx-runtime-validator</module>
+ <module>jaxx-runtime-validator-swing</module>
+
+ <module>jaxx-compiler-api</module>
+ <module>jaxx-compiler-swing</module>
+ <module>jaxx-compiler-validator</module>
+
+ <module>jaxx-swing-action</module>
+ <module>maven-jaxx-plugin</module>
+
+ <module>jaxx-example</module>
+ </modules>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.codelutin</groupId>
+ <artifactId>lutinutil</artifactId>
+ </dependency>
+ </dependencies>
+
+ <dependencyManagement>
+ <dependencies>
+
+ <!-- lutin dependencies -->
+
+ <dependency>
+ <groupId>org.codelutin</groupId>
+ <artifactId>lutinutil</artifactId>
+ <version>${lutinutil.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codelutin</groupId>
+ <artifactId>lutinpluginutil</artifactId>
+ <version>${lutinpluginutil.version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <!-- common dependencies -->
+
+ <dependency>
+ <groupId>commons-jxpath</groupId>
+ <artifactId>commons-jxpath</artifactId>
+ <version>1.3</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.4</version>
+ </dependency>
+
+ <!-- sun dependencies -->
+
+ <dependency>
+ <groupId>com.sun</groupId>
+ <artifactId>dt</artifactId>
+ <version>${java.version}</version>
+ <scope>system</scope>
+ <systemPath>/${java.home}/../lib/dt.jar</systemPath>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.help</groupId>
+ <artifactId>javahelp</artifactId>
+ <version>2.0.02</version>
+ </dependency>
+
+ <!-- maven dependencies -->
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-api</artifactId>
+ <version>${maven.version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ <version>${maven.version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <!-- xworks dependencies -->
+
+ <dependency>
+ <groupId>com.opensymphony</groupId>
+ <artifactId>xwork</artifactId>
+ <version>2.1.1-cl_20081015</version>
+ </dependency>
+
+ <!-- swinglabs dependencies -->
+
+ <dependency>
+ <groupId>org.swinglabs</groupId>
+ <artifactId>jxlayer</artifactId>
+ <version>3.0.1</version>
+ </dependency>
+
+ </dependencies>
+ </dependencyManagement>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Jaxx lutin library parent pom</description>
+ <inceptionYear>2008</inceptionYear>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+
+ <packaging>pom</packaging>
+
+ <properties>
+
+ <!-- id du projet du labs -->
+ <labs.id>38</labs.id>
+
+ <!-- nom du projet du labs -->
+ <labs.project>buix</labs.project>
+
+ <!-- libs version -->
+ <lutinutil.version>1.0.3</lutinutil.version>
+ <jaxx.version>${project.version}</jaxx.version>
+ <i18n.version>0.11</i18n.version>
+ <lutinpluginutil.version>0.4</lutinpluginutil.version>
+ <maven.version>2.0.10</maven.version>
+ </properties>
+
+ <build>
+
+ <pluginManagement>
+ <plugins>
+
+ <!-- plugin i18n -->
+ <plugin>
+ <groupId>org.codelutin</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <version>${i18n.version}</version>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-plugin-plugin</artifactId>
+ <version>2.4.3</version>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <locales>fr</locales>
+ <siteDirectory>src/site</siteDirectory>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.codelutin</groupId>
+ <artifactId>doxia-module-jrst</artifactId>
+ <version>1.0.0</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+
+ </plugins>
+ </pluginManagement>
+
+ <plugins>
+
+ </plugins>
+
+ </build>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+ <scm>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4?r…</url>
+ </scm>
+
+ <!-- Maven Environment : Repositories -->
+
+ <!--Code Lutin Repository-->
+ <repositories>
+ <repository>
+
+ <id>codelutin-repository</id>
+ <name>CodeLutinRepository</name>
+ <url>http://lutinbuilder.labs.libre-entreprise.org/maven2</url>
+ <snapshots>
+ <enabled>true</enabled>
+ <checksumPolicy>warn</checksumPolicy>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ <checksumPolicy>warn</checksumPolicy>
+ </releases>
+ </repository>
+ </repositories>
+
+ <profiles>
+ <!-- perform only on a release stage when using the maven-release-plugin -->
+ <profile>
+ <id>release-profile</id>
+ <activation>
+ <property>
+ <name>performRelease</name>
+ <value>true</value>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <!-- always add license and third-party files to classpath -->
+ <plugin>
+ <groupId>org.codelutin</groupId>
+ <artifactId>maven-license-switcher-plugin</artifactId>
+ <version>0.7</version>
+ <configuration>
+ <licenseName>${license-switcher.licenseName}</licenseName>
+ </configuration>
+ <executions>
+ <execution>
+ <id>attach-licenses</id>
+ <goals>
+ <goal>license</goal>
+ <goal>third-party</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
\ No newline at end of file
1
0
r1346 - in jaxx/trunk: . jaxx-compiler-api jaxx-compiler-swing jaxx-compiler-validator jaxx-example jaxx-runtime-api jaxx-runtime-swing jaxx-runtime-validator jaxx-runtime-validator-swing jaxx-swing-action maven-jaxx-plugin
by tchemit@users.labs.libre-entreprise.org April 20, 2009
by tchemit@users.labs.libre-entreprise.org April 20, 2009
April 20, 2009
Author: tchemit
Date: 2009-04-20 15:58:45 +0000 (Mon, 20 Apr 2009)
New Revision: 1346
Modified:
jaxx/trunk/jaxx-compiler-api/pom.xml
jaxx/trunk/jaxx-compiler-swing/pom.xml
jaxx/trunk/jaxx-compiler-validator/pom.xml
jaxx/trunk/jaxx-example/pom.xml
jaxx/trunk/jaxx-runtime-api/pom.xml
jaxx/trunk/jaxx-runtime-swing/pom.xml
jaxx/trunk/jaxx-runtime-validator-swing/pom.xml
jaxx/trunk/jaxx-runtime-validator/pom.xml
jaxx/trunk/jaxx-swing-action/pom.xml
jaxx/trunk/maven-jaxx-plugin/pom.xml
jaxx/trunk/pom.xml
Log:
[maven-release-plugin] prepare release 1.4
Modified: jaxx/trunk/jaxx-compiler-api/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-api/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/trunk/jaxx-compiler-api/pom.xml 2009-04-20 15:58:45 UTC (rev 1346)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -44,8 +44,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-api</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-api</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-compiler-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-swing/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/trunk/jaxx-compiler-swing/pom.xml 2009-04-20 15:58:45 UTC (rev 1346)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -50,8 +50,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-compiler-validator/pom.xml
===================================================================
--- jaxx/trunk/jaxx-compiler-validator/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/trunk/jaxx-compiler-validator/pom.xml 2009-04-20 15:58:45 UTC (rev 1346)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -62,8 +62,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-validator</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-compiler-validator</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-example/pom.xml
===================================================================
--- jaxx/trunk/jaxx-example/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/trunk/jaxx-example/pom.xml 2009-04-20 15:58:45 UTC (rev 1346)
@@ -9,7 +9,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -152,9 +152,9 @@
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-example</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-example</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
<profiles>
Modified: jaxx/trunk/jaxx-runtime-api/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-api/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/trunk/jaxx-runtime-api/pom.xml 2009-04-20 15:58:45 UTC (rev 1346)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -57,8 +57,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-api</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-api</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-swing/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/trunk/jaxx-runtime-swing/pom.xml 2009-04-20 15:58:45 UTC (rev 1346)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -44,8 +44,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-validator/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-validator/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/trunk/jaxx-runtime-validator/pom.xml 2009-04-20 15:58:45 UTC (rev 1346)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -68,8 +68,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-runtime-validator-swing/pom.xml
===================================================================
--- jaxx/trunk/jaxx-runtime-validator-swing/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/trunk/jaxx-runtime-validator-swing/pom.xml 2009-04-20 15:58:45 UTC (rev 1346)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -66,8 +66,8 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator-swing</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-runtime-validator-swing</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
</project>
Modified: jaxx/trunk/jaxx-swing-action/pom.xml
===================================================================
--- jaxx/trunk/jaxx-swing-action/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/trunk/jaxx-swing-action/pom.xml 2009-04-20 15:58:45 UTC (rev 1346)
@@ -11,7 +11,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -81,9 +81,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-swing-action</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/jaxx-swing-action</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/j…</url>
</scm>
</project>
Modified: jaxx/trunk/maven-jaxx-plugin/pom.xml
===================================================================
--- jaxx/trunk/maven-jaxx-plugin/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/trunk/maven-jaxx-plugin/pom.xml 2009-04-20 15:58:45 UTC (rev 1346)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
</parent>
<groupId>org.codelutin.jaxx</groupId>
@@ -145,9 +145,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection.child}</connection>
- <developerConnection>${maven.scm.developerConnection.child}</developerConnection>
- <url>${maven.scm.url.child}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/maven-jaxx-plugin</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4/maven-jaxx-plugin</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4/m…</url>
</scm>
</project>
\ No newline at end of file
Modified: jaxx/trunk/pom.xml
===================================================================
--- jaxx/trunk/pom.xml 2009-04-20 15:55:10 UTC (rev 1345)
+++ jaxx/trunk/pom.xml 2009-04-20 15:58:45 UTC (rev 1346)
@@ -14,7 +14,7 @@
<groupId>org.codelutin</groupId>
<artifactId>jaxx</artifactId>
- <version>1.4-SNAPSHOT</version>
+ <version>1.4</version>
<modules>
<module>jaxx-runtime-api</module>
@@ -197,9 +197,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>${maven.scm.connection}</connection>
- <developerConnection>${maven.scm.developerConnection}</developerConnection>
- <url>${maven.scm.url}</url>
+ <connection>scm:svn:svn://anonymous@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4</connection>
+ <developerConnection>scm:svn:svn+ssh://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/tags/1.4</developerConnection>
+ <url>http://labs.libre-entreprise.org/plugins/scmsvn/viewcvs.php/jaxx/tags/1.4?r…</url>
</scm>
<!-- Maven Environment : Repositories -->
1
0
April 20, 2009
Author: tchemit
Date: 2009-04-20 15:55:10 +0000 (Mon, 20 Apr 2009)
New Revision: 1345
Removed:
jaxx/trunk/jaxx-example/catalog.xml
jaxx/trunk/release.properties
Log:
bumps versions
use doxia-module-jrst
Deleted: jaxx/trunk/jaxx-example/catalog.xml
===================================================================
--- jaxx/trunk/jaxx-example/catalog.xml 2009-04-20 15:54:22 UTC (rev 1344)
+++ jaxx/trunk/jaxx-example/catalog.xml 2009-04-20 15:55:10 UTC (rev 1345)
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="system">
- <nextCatalog catalog="file:/home/chemit/.netbeans/6.5/var/cache/mavencachedirs/87431320//retriever/catalog.xml"/>
-</catalog>
\ No newline at end of file
Deleted: jaxx/trunk/release.properties
===================================================================
--- jaxx/trunk/release.properties 2009-04-20 15:54:22 UTC (rev 1344)
+++ jaxx/trunk/release.properties 2009-04-20 15:55:10 UTC (rev 1345)
@@ -1,8 +0,0 @@
-#release configuration
-#Mon Apr 20 17:49:54 CEST 2009
-preparationGoals=clean verify
-scm.commentPrefix=[maven-release-plugin]
-scm.username=tchemit
-exec.additionalArguments=-P codelutin-properties,codelutin-properties
-completedPhase=scm-check-modifications
-scm.url=scm\:svn\:svn+ssh\://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk
1
0
April 20, 2009
Author: tchemit
Date: 2009-04-20 15:54:22 +0000 (Mon, 20 Apr 2009)
New Revision: 1344
Added:
jaxx/trunk/release.properties
Modified:
jaxx/trunk/jaxx-example/pom.xml
Log:
bumps versions
use doxia-module-jrst
Modified: jaxx/trunk/jaxx-example/pom.xml
===================================================================
--- jaxx/trunk/jaxx-example/pom.xml 2009-04-20 15:49:30 UTC (rev 1343)
+++ jaxx/trunk/jaxx-example/pom.xml 2009-04-20 15:54:22 UTC (rev 1344)
@@ -24,11 +24,11 @@
<artifactId>jaxx-runtime-swing</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
+ <!--dependency>
<groupId>${project.groupId}</groupId>
<artifactId>jaxx-runtime-swing-widget</artifactId>
<version>${project.version}</version>
- </dependency>
+ </dependency-->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>jaxx-runtime-validator-swing</artifactId>
Added: jaxx/trunk/release.properties
===================================================================
--- jaxx/trunk/release.properties (rev 0)
+++ jaxx/trunk/release.properties 2009-04-20 15:54:22 UTC (rev 1344)
@@ -0,0 +1,8 @@
+#release configuration
+#Mon Apr 20 17:49:54 CEST 2009
+preparationGoals=clean verify
+scm.commentPrefix=[maven-release-plugin]
+scm.username=tchemit
+exec.additionalArguments=-P codelutin-properties,codelutin-properties
+completedPhase=scm-check-modifications
+scm.url=scm\:svn\:svn+ssh\://tchemit@labs.libre-entreprise.org/svnroot/buix/jaxx/trunk
1
0
r1343 - in jaxx/trunk: . jaxx-compiler-api/src/site jaxx-compiler-api/src/site/rst jaxx-compiler-swing/src/site jaxx-compiler-validator/src/site jaxx-example jaxx-example/src/site jaxx-example/src/site/rst jaxx-example/src/site/rst/images jaxx-runtime-api/src/site jaxx-runtime-swing/src/site jaxx-runtime-validator/src/site jaxx-swing-action/src/site jaxx-swing-action/src/site/rst maven-jaxx-plugin/src/site maven-jaxx-plugin/src/site/rst src/site src/site/rst
by tchemit@users.labs.libre-entreprise.org April 20, 2009
by tchemit@users.labs.libre-entreprise.org April 20, 2009
April 20, 2009
Author: tchemit
Date: 2009-04-20 15:49:30 +0000 (Mon, 20 Apr 2009)
New Revision: 1343
Added:
jaxx/trunk/jaxx-compiler-api/src/site/rst/
jaxx/trunk/jaxx-compiler-api/src/site/rst/BeanValidator.rst
jaxx/trunk/jaxx-compiler-api/src/site/rst/I18n.rst
jaxx/trunk/jaxx-compiler-api/src/site/rst/Interface.rst
jaxx/trunk/jaxx-compiler-api/src/site/rst/JAXXContext.rst
jaxx/trunk/jaxx-compiler-api/src/site/rst/JavaBean.rst
jaxx/trunk/jaxx-compiler-api/src/site/rst/NavigationTreeModel.rst
jaxx/trunk/jaxx-compiler-api/src/site/rst/Todo.rst
jaxx/trunk/jaxx-compiler-api/src/site/rst/index.rst
jaxx/trunk/jaxx-compiler-swing/src/site/rst/
jaxx/trunk/jaxx-compiler-validator/src/site/rst/
jaxx/trunk/jaxx-example/catalog.xml
jaxx/trunk/jaxx-example/src/site/rst/
jaxx/trunk/jaxx-example/src/site/rst/images/
jaxx/trunk/jaxx-example/src/site/rst/images/Components-screenshot.gif
jaxx/trunk/jaxx-example/src/site/rst/images/webstart.gif
jaxx/trunk/jaxx-example/src/site/rst/index.rst
jaxx/trunk/jaxx-runtime-api/src/site/rst/
jaxx/trunk/jaxx-runtime-swing/src/site/rst/
jaxx/trunk/jaxx-runtime-validator/src/site/rst/
jaxx/trunk/jaxx-swing-action/src/site/rst/
jaxx/trunk/jaxx-swing-action/src/site/rst/Todo.rst
jaxx/trunk/jaxx-swing-action/src/site/rst/index.rst
jaxx/trunk/maven-jaxx-plugin/src/site/rst/
jaxx/trunk/maven-jaxx-plugin/src/site/rst/Todo.rst
jaxx/trunk/maven-jaxx-plugin/src/site/rst/index.rst
jaxx/trunk/src/site/rst/
jaxx/trunk/src/site/rst/BeanValidator.rst
jaxx/trunk/src/site/rst/Core.rst
jaxx/trunk/src/site/rst/I18n.rst
jaxx/trunk/src/site/rst/JAXXContext.rst
jaxx/trunk/src/site/rst/NavigationTreeModel.rst
jaxx/trunk/src/site/rst/Todo.rst
jaxx/trunk/src/site/rst/index.rst
Modified:
jaxx/trunk/
jaxx/trunk/changelog.txt
jaxx/trunk/jaxx-example/pom.xml
jaxx/trunk/pom.xml
jaxx/trunk/src/site/site.xml
Log:
bumps versions
use doxia-module-jrst
Property changes on: jaxx/trunk
___________________________________________________________________
Name: svn:ignore
- *.ipr
*.iws
*.iml
target
*.log
+ *.ipr
*.iws
*.iml
target
catalog.xml
*.log
Modified: jaxx/trunk/changelog.txt
===================================================================
--- jaxx/trunk/changelog.txt 2009-04-20 15:48:49 UTC (rev 1342)
+++ jaxx/trunk/changelog.txt 2009-04-20 15:49:30 UTC (rev 1343)
@@ -1,3 +1,9 @@
+1.4
+ * 20090402 [chemit] - use lutinproject 3.5.3
+ - use doxia-module-jrst 1.0.0 (instead of maven-jrst-plugin)
+ - use maven-i18n-plugin 0.11
+ - use maven-license-switcher 0.7
+
1.3 chemit 20090409
* 20090329 [chemit] - add java help mojo
* 20090313 [chemit] - use i18n 0.10
Copied: jaxx/trunk/jaxx-compiler-api/src/site/rst/BeanValidator.rst (from rev 1307, jaxx/trunk/jaxx-compiler-api/src/site/fr/rst/BeanValidator.rst)
===================================================================
--- jaxx/trunk/jaxx-compiler-api/src/site/rst/BeanValidator.rst (rev 0)
+++ jaxx/trunk/jaxx-compiler-api/src/site/rst/BeanValidator.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,181 @@
+-------------
+BeanValidator
+-------------
+
+.. contents::
+
+
+Présentation
+============
+
+Ajout du support de validation dans JAXX.
+
+La techonologie utilisée est celle de Struts 2 (XWorks 2).
+
+
+Configuration
+=============
+
+La configuration des validateurs se fait via des fichier xml (on peut aussi utiliser des annotations,...).
+
+Ajout d'un validateur
+*********************
+
+Pour enregister un nouveau validateur sur un bean, il suffit de placer dans le même paquetage que le bean un fichier *XXX-validation.xml* où XXX est le nom non qualifié du bean.
+
+On peut de plus affecter un context de validation, dans ce cas le fichier doit s'appeler *XXX-YYY-validation.xml*, où YYY est le nom du context de validation.
+
+Ainsi on peut valider de différentes manières un bean (par exemple selon son cycle de vie :création, modification, ...).
+
+Ajout d'un nouveau type de validateur
+*************************************
+
+Il est aussi possible de définir de nouveau type de validateurs :
+
+ * créer une classe qui étend FieldValidator
+ * ajouter un fichier validators.xml (ou ajouter dans un tel fichier la définition du nouveau validator) à la racine du class-path.
+
+I18n
+****
+
+Afin de rendre le mécanisme multi-langue, on propose dans les fichiers de validations d'utiliser des clef i18n pour les messages.
+
+Un nouveau parseur dans notre plugin i18n a été ajouté pour détecter ces clefs. (*maven-i18n-plugin:0.7:parserValidation*)
+
+
+Intégration dans JAXX
+=====================
+
+Deux nouveaux tags ont été conçus pour pouvoir décrire un validateur dans les fichiers JAXX.
+
+Ce développement est dans le paquetage *jaxx.tags.validator*.
+
+tag BeanValidator
+*****************
+
+Permet de définir un nouveau validateur dans une classe JAXX.
+
+TODO Refaire cette doc qui n'est plas à jour suite au refactoring de la validation (20090202)
+
+Les attributs autorisés sont les suivants :
+
+ * *id* : le nom du validateur
+
+ * *bean* : l'id d'un bean connu par la classe JAXX. On ne peut pas utiliser ici une expression car on n'est pas sûr de pouvoir déterminer le type de cette expression pendant le parsing ? (a verifier).
+
+ * *beanClass* : le FQN de classe du bean à valider. Peut-être non présent si l'attribut *bean* est renseigné.
+
+ * *beanInitializer* : une expression pour initialiser le bean à valider. TODO a revoir : on devrait utiliser uniquement un seul attribut *bean*...
+
+ * *contextName* : le nom du contexte de validation.
+
+ * *autoField* : flag pour indiquer l'inscription implicite des validateurs de champs du bean. Pour ce faire on parcourt l'ensemble des champs du bean et on ne considère uniquement ceux dont on connait dans la classe JAXX un composent d'édition du champ (id=nom du champ). Il est possible de surcharger ce configuration implicite en rajoutant explicitement des champs (voir le tag *field*).
+
+ * *errorList* : le composant graphique pour afficher la liste des erreurs, doit étendre *javax.swing.JList*. Si non présent, on essayera le component d'id *errorList*.
+
+ * *errorListModel* : le modèle qui contient la liste des erreurs (et est liée au composant *errorList*), doit étendre *jaxx.runtime.validator.swing.SwingValidatorErrorListModel*. Si non présent on essayera le composent d'id *errorListModel*.
+
+ * *uiClass* : le FQN de la classe utilisé pour le rendu des erreurs sur les wigets d'édition. La classe doit étendre *jaxx.runtime.validator.swing.ui.AbstractBeanValidatorUI*. Si non présent, on utilise par défaut le render *jaxx.runtime.validator.swing.ui.IconValidationUI*.
+
+
+Le tag supporte aussi l'ajout de tag *field* comme fils pour définir explicitement des champs à validater.
+
+tag field
+*********
+
+Le tag *field* définit une entrée dans le validateur, on définit une correspondance entre le champ à valider et le composant d'édition de ce champ.
+
+Le tag supporte les attributs suivants :
+
+ * *name* : le nom de la propriété du bean associée.
+ Cet attribut est obligatoire.
+
+ * *component* : l'id du composant graphique d'édition associé à la propriété du bean.
+ Cet attribut peut être omis si le nom de la propriété du bean est identique à celui du composent graphique d'édition.
+
+
+Les classes du runtime
+======================
+
+Ce développement est dans le paquetage *jaxx.runtime.validator* (sauf pour l'interface *jaxx.runtime.JAXXValidator*).
+
+Il s'agit de l'ensemble des classes ajoutées dans le module *jaxx-core* pour encapsuler la validation dans les fichiers java générés à partir des fichiers JAXX.
+
+
+interface jaxx.runtime.JAXXValidator
+************************************
+
+Ce contrat a été ajouté à tous les objets JAXX générés (donc l'interface JAXXObject étend JAXXValidator).
+
+On définit ici uniquement des méthodes d'accès aux validateurs enregistrés dans le JAXXObject.
+
+TODO on pourrait ajouter des méthodes pour savoir l'état de validation d'un validateur ?
+
+
+classe jaxx.runtime.validator.swin.SwingValidator
+*************************************************
+
+Il s'agit de la classe principale d'encapsulation d'un validateur XWorks 2.
+
+Le principe est simple : le validateur écoute les modifications sur le bean associé et revalide le bean à chaque modification. La validation met à jour la liste des erreurs asociées.
+
+On se base sur les PropertyChangeListener pour écouter les modification des beans. Il faut donc que les beans supporte ces listeners.
+
+Pour les entités de ToPIA, il suffit de positionner un contexte (topia) au bean pour profiter des listeners liés.
+
+Pour les DTO de ToPIA, les générateurs ont été modifiés pour gérer ce support.
+
+Les méthodes à retenir sont :
+
+ * *setBean* pour affecter un bean au validateur (pour déasactiver passer null). Lors de la désactivation d'un bean, les erreurs associés sont retirées de la liste des erreurs.
+
+ * *setContextName* pour affecter un nouveau nom de context de validation (par défaut on utilise pas de context de validation).
+
+ * *validate* pour lancer une validation sur le bean liée (ne sera opérant uniquement si un bean est liée et qu'une liste d'erreur est liée).
+
+ * *isValid* pour connaitre l'état du validateur à un moment donné.
+
+Normalement la méthode *validate* ne devrait pas être appelée directement. : elle est automatiquement invoquée lorsqu'une propriété du bean est modifiée.
+
+classe jaxx.runtime.validator.swing.SwingValidatorErrorModel
+************************************************************
+
+Modélisation d'une erreur renvoyé par le validateur, on conserve ici :
+
+ * le validateur qui a provoqué l'erreur
+
+ * la propriété du bean en faute
+
+ * le composent graphique d'édtion de la propriété
+
+classe jaxx.runtime.validator.swing.SwingValidatorErrorListModel
+****************************************************************
+
+Le modèle de la liste des erreurs renvoyées par le validateur. Il s'agit d'une extension d'un *javax.swing.DefaultListModel* qui permet de gérer une liste d'erreurs provenant de plusieurs validateurs en même temps.
+
+classe jaxx.runtime.validator.swing.SwingValidatorErrorListMouseListener
+************************************************************************
+
+Un listener écoutant les double clics sur une liste d'erreurs et qui donne le focus au composent graphique d'édition associée à la propriété dont l'erreur est sélectionné.
+
+
+Les conversions
+===============
+
+Pour l'édition de proriétés qui ne sont pas des chaines de caractères, des erreurs de conversions peuvent survenir (conversion de la valeur de l'édtieur graphique vers le bean), avant que l'on utilise
+réellement la mécanique de la validation.
+
+Pour palier à ce problème on a intégré la gestion des erreurs de conversion dans le validateur.
+Pour ce faire, il suffit de faire appel à la méthode suivante pour injecter dans un bean une propriété :
+
+ ::
+
+ jaxx.runtime.Util.convert(validator,"nomDeLaPropriété",widget.getText(),TypeDeLaProriete.class);
+
+
+On obtiendra si une erreur de conversion intervient, une erreur dont le libellé est de la forme *error.convertor.XXX*
+où XXX est nom simple en minuscule du type de la propruité. (par exemple : *error.convertor.integer*).
+
+
+
+
Property changes on: jaxx/trunk/jaxx-compiler-api/src/site/rst/BeanValidator.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: jaxx/trunk/jaxx-compiler-api/src/site/rst/I18n.rst (from rev 1307, jaxx/trunk/jaxx-compiler-api/src/site/fr/rst/I18n.rst)
===================================================================
--- jaxx/trunk/jaxx-compiler-api/src/site/rst/I18n.rst (rev 0)
+++ jaxx/trunk/jaxx-compiler-api/src/site/rst/I18n.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,56 @@
+----
+I18n
+----
+
+.. contents::
+
+
+Présentation
+============
+
+Ajout du support i18n dans JAXX.
+
+On utilise la système i18n développé dans la librairie des lutins (*lutinlib*).
+
+Configuration
+=============
+
+Une option a été ajoutée dans le plugin maven de JAXX : *i18nable* pour permettre ou non l'utilisation de ce système.
+
+Par défaut, l'option est active (donc aucune configuration supplémentaire n'est nécessaire pour utiliser i18n dans JAXX).
+
+
+Fonctionnement
+==============
+
+Le fonctionnement est simple : lors de la compilation JAXX, lorsque l'on rencontre certains attributs on encapsule la
+valeur de l'attribution par un appel à la méthode
+
+::
+
+ org.codelutin.i18n.I18n._(String)
+
+
+La liste des attributs en question sont les suivants :
+
+ - title
+ - text
+ - toolTipText
+
+
+Ensuite l'utilisation du *parserJava* du plugin i18n permet la détection des clefs i18n.
+
+
+Pourquoi ne plus utiliser l'ancien parserJaxx du plugin i18n
+============================================================
+
+Un parseur avait été développé initialement pour détecter dans les fichiers JAXX (*parserJaxx*), les appels à la méthode de traduction
+i18n dans les attributs.
+
+Ce parseur n'est plus d'actualité car on ne doit plus avoir d'appel explicite à cette méthode dans les fichiers JAXX.
+
+De plus, même sans avoir mis en place le mécanisme i18n dans JAXX, ce parseur n'était plus d'actualité : il se base
+sur une liste prédéfinie d'attributs xml à scanner pour détecter des appels i18n; ce qui n'était pas acceptable à terme
+car si on ajoute un nouveau composent dans JAXX, le plugin i18n n'est pas capable de détecter les nouvelles clefs.
+
+Donc on préconise l'utilisation du *parserJava* du plugin i18n qui lui est capable de détecter tous les appels i18n.
Property changes on: jaxx/trunk/jaxx-compiler-api/src/site/rst/I18n.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: jaxx/trunk/jaxx-compiler-api/src/site/rst/Interface.rst (from rev 1307, jaxx/trunk/jaxx-compiler-api/src/site/fr/rst/Interface.rst)
===================================================================
--- jaxx/trunk/jaxx-compiler-api/src/site/rst/Interface.rst (rev 0)
+++ jaxx/trunk/jaxx-compiler-api/src/site/rst/Interface.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,38 @@
+---------
+Interface
+---------
+
+.. contents::
+
+
+Présentation
+============
+
+Ajout de contrats sur le code généré dans JAXX.
+
+Mécanisme
+=========
+
+Le compilateur JAXX génère des classes à partir de fichiers JAXX mais n'est pas capable d'ajouter des contrats sur
+les objets générés, donc interdit en quelque sorte la programmation par contrat.
+
+Pour palier à cette limitation, on a ajouté un attribut spécial *implements*.
+
+Cette attribut ne doit être placé que sur le tag racine d'un fichier JAXX et son contenu est le nom qualifié d'un ou
+plusieurs contrats séparaés par des virgules.
+
+::
+
+ <JPanel implements='java.lang.Comparable'>
+
+ <script>public int compareTo(JPanel o) { return getName().compareTo(o.getName()); }</script>
+
+ </JPanel>
+
+La classe générée aura bien le contrat *java.lang.Comparable*.
+
+TODO
+====
+
+Il serait intéressant lors de l'injection de contrats sur un objet jaxx de pouvoir vérifier si toutes les méthodes du
+contrat sont bien implantées dans la classe, et si ce n'est pas le cas de rendre la classe abstraite.
Property changes on: jaxx/trunk/jaxx-compiler-api/src/site/rst/Interface.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: jaxx/trunk/jaxx-compiler-api/src/site/rst/JAXXContext.rst (from rev 1307, jaxx/trunk/jaxx-compiler-api/src/site/fr/rst/JAXXContext.rst)
===================================================================
--- jaxx/trunk/jaxx-compiler-api/src/site/rst/JAXXContext.rst (rev 0)
+++ jaxx/trunk/jaxx-compiler-api/src/site/rst/JAXXContext.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,161 @@
+-----------
+JAXXContext
+-----------
+
+.. contents::
+
+
+Présentation
+============
+
+Ajout d'un context applicatif dans JAXX.
+
+Le besoin initial de ce développement est de pouvoir facilement intégrer un context applicatif dans JAXX et de pouvoir
+l'utiliser dans les fichiers JAXX pour injecter par exemple des données dans les widgets.
+
+jaxx.runtime.JAXXContext
+========================
+
+Il s'agit du contrat de base du context applicatif.
+
+Les entrées dans le context
+***************************
+
+Chaque donnée utilisable dans le context est caractérisée par deux propriétés :
+
+ * la type de l'objet
+
+ * un nom (facultatif) associé à la donnée
+
+Le type de l'objet correspondant en fait à la classe de la donnée.
+
+Le nom qui est facultatif permet de pouvoir distinguer plusieurs données d'un même type dans le context. Si le nom
+n'est pas utilisé pour caractériser une données on fixera alors sa valeur à *null*.
+
+Afin de pouvoir caractériser les entrées dans le context, une classe a été définie *jaxx.runtime.JAXXContextEntryDef*.
+
+Les méthodes de lecture
+***********************
+
+On a définit deux méthodes de lecture de données dans le context :
+
+ * *getContextValue(Class)* récupère la donnée *non nommée* dont le type correspond à celui passé.
+
+ * *getContextValue(Class,String)* récupère la donnée nommé dont le type correspond à celui passé.
+
+Les méthodes d'écriture
+***********************
+
+On a définit quatre méthodes d'écriture de données dans le context :
+
+ * *setContextValue(Object)* enregistre dans le context la donnée *non nommée*.
+
+ * *setContextValue(Object,String)* enregistre dans le context la donnée *nommée*.
+
+ * *removeContextValue(Class)* supprime du context, la donnée *non nommée* dont le type est passé.
+
+ * *removeContextValue(Class, String)* supprime du context, la donnée *nommée* dont le type est passé.
+
+Afin de pouvoir assurer une cohérence dans le context, chaque injection de donnée, sera toujours précédée par une
+suppression d'un éventuellement ancienne valeur qui aurait la même définition d'entrée.
+
+L'héritage
+**********
+
+Il est possible d'avoir une hériarchie de context qui s'enchaînent. Ce mécanisme a été mis en place pour répondre à un
+besion précis : chaque fichier JAXX donne lieu à une nouvelle classe qui possède son propre context.
+
+On peut avoir des fichiers JAXX qui utilisent d'autres fichiers JAXX, il faut donc être capable de lier le context du
+composent parent avec ses fils.
+
+La mise en place de l'héritage est transparente pour l'utilisateur : aucune méthode supplémentaire n'est requise.
+
+Les implantations de context
+============================
+
+jaxx.runtime.DefaultJAXXContext
+*******************************
+
+Il s'agit de l'implantation par défaut utilisée par les objects *JAXXObject* (objets générés).
+
+A noter que pour les opérations d'injection ou de suppression, on effectuera les opérations sur le context qui contient
+réellement la donnée, ce qui est important pour conserver la cohérence des contexts dans les contexts chaînés.
+
+Pour traiter le context parent, aucune méthode publique supplémentaire n'a été rajoutée, il suffit d'injecter un objet
+de type *JAXXContext* *non nommé* qui le context courant qui sera détecté comme une entrée de type context.
+
+Cette entrée spéciale ne sera pas stockée avec les autres entrées afin d'optimiser les algorithmes d'injection et de
+restitution.
+
+jaxx.runtime.JAXXInitialContext
+*******************************
+
+On a implanté un second type de context qui lui peut servir à l'initialisation des JAXXObject.
+
+Ce second type de context ajoute des méthodes pour préparer le context avant l'instanciation des JAXXObject.
+
+Ce context admet certaine limitation (pas de suppression dans le context), et apporte trois nouvelles méthodes :
+
+ * add(Object) : injecte dans le context une entrée non nommée et retourne l'instance du context.
+
+ * add(String,Object) : injecte dans le context une entrée nommé et retourne l'instance du context.
+
+ * to(JAXXContext) : injecte dans le context passé toutes les entrée du context.
+
+Les méthodes *add* peuvent être chaînées comme dans l'exemple suivant :
+
+::
+
+ JAXXInitialContext context = new JAXXInitialContext().add("string").add(0).add("currentDate",new Date());
+
+
+Intégration dans les JAXXObject
+===============================
+
+Le traitement d'un fichier JAXX donne lieu à une classe qui possède le contrat *jaxx.runtime.JAXXObject*.
+
+Ce contrat hérite donc du contrat *JAXXContext* (afin de pouvoir l'utiliser de manière transparente dans les fichiers JAXX).
+
+Afin de simplifier la génération et les évolutions du context indépendemment des évolutions des JAXXObject, on utilise
+un pattern de délégation au sein des object générés.
+
+Paramétrage de l'implantation du context
+****************************************
+
+Une propriété a été rajoutée sur le plugin JAXX, afin de pouvoir préciser l'implantation de context à utiliser :
+
+::
+
+ jaxx.jaxxContextImplementorClass
+
+Il s'agit du nom qualifié de la classe d'implantation à utiliser.
+
+Par défaut, si rien n'est renseigné, on utilisera un *jaxx.runtime.DefaultJAXXContext*.
+
+
+Initialisation d'un JAXXObject
+******************************
+
+Un nouveau constructeur a été ajouté dans les JAXXObjet générés afin de pouvoir facilement initialisé un tel objet à
+partir d'un context parent, son unique paramètre est le context parent. Ce constructeur est capable de différencer le
+type de context passé :
+
+ * s'il s'agit d'un *JAXXInitialContext*, on recopie alors dans le context réel de l'objet toutes les entrées du context passé.
+
+ * sinon le context passé est simplement injecté dans le context de l'objet (et donc sera utilisé comme le context parent de celui de l'objet).
+
+Voici un exemple d'initialisation d'un JAXXObject :
+
+::
+
+ java.util.Date currentDate = new java.util.Date();
+ JAXXInitialContext context = new JAXXInitialContext().add("string").add(0).add("currentDate",currentDate);
+ JAXXObject ui = new MyUI(context);
+
+ assert "string".equals(myUI.getContextValue(String.class));
+ assert 0 == myUI.getContextValue(Integer.class);
+ assert currentDate.equals(myUI.getContextValue(java.util.Date.class,"currentDate"));
+
+A noter, que l'initialisation du context d'un *JAXXObject* sera toujours effectuée avant la méthode *$initialize* générée
+par le compilateur JAXX, ce qui permet de pouvoir utiliser le context pour l'initialisation des widgets dans les fichiers JAXX.
+
Property changes on: jaxx/trunk/jaxx-compiler-api/src/site/rst/JAXXContext.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: jaxx/trunk/jaxx-compiler-api/src/site/rst/JavaBean.rst (from rev 1307, jaxx/trunk/jaxx-compiler-api/src/site/fr/rst/JavaBean.rst)
===================================================================
--- jaxx/trunk/jaxx-compiler-api/src/site/rst/JavaBean.rst (rev 0)
+++ jaxx/trunk/jaxx-compiler-api/src/site/rst/JavaBean.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,50 @@
+--------
+JavaBean
+--------
+
+.. contents::
+
+
+Présentation
+============
+
+Ajout du support complêt des javaBean dans JAXX.
+
+Mécanisme
+=========
+
+Il est possible dans JAXX de rajouter des objets quelconques via leur nom qualifié de classe :
+
+::
+
+ <JPanel>
+ <java.lang.Boolean id='myState' constructorParams='true'/>
+ <JLabel text='text' visible='{isMySate()}'/>
+ </JPanel>
+
+Avant l'ajout de la fonctionnalité, le code généré possèdait :
+
+ * une propriété en lecture seul nommé *myState*.
+
+Aucun support javaBean n'était présent et le databinding sur la propriété *visible* du label n'est pas créé. Cela veut
+dire que le label sera initialisé avec la valeur initiale du boolean et c'est tout...
+
+Avec l'ajout du support javaBean, on peut maintenant faire ces bindings, pour ce faire il suffit d'ajouter un attribut
+*javaBean* sur l'objet :
+
+::
+
+ <JPanel>
+ <java.lang.Boolean id='myState' constructorParams='true' javaBean='anyValue'/>
+ <JLabel text='text' visible='{isMySate()}'/>
+ </JPanel>
+
+On aura donc en plus :
+
+ * un mutateur sur la propriété *myState* qui déclanchera l'envoie d'un *PropertyChange* sur la propriété lors de modification de valeur.
+
+Ainsi le compilateur JAXX sera capable d'enregistrer un novueau dataBindig sur la propriété *visible* du label et la
+modification de l'état *myState* sera automatiquement répercuté sur la propriété.
+
+
+
Property changes on: jaxx/trunk/jaxx-compiler-api/src/site/rst/JavaBean.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: jaxx/trunk/jaxx-compiler-api/src/site/rst/NavigationTreeModel.rst (from rev 1307, jaxx/trunk/jaxx-compiler-api/src/site/fr/rst/NavigationTreeModel.rst)
===================================================================
--- jaxx/trunk/jaxx-compiler-api/src/site/rst/NavigationTreeModel.rst (rev 0)
+++ jaxx/trunk/jaxx-compiler-api/src/site/rst/NavigationTreeModel.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,168 @@
+-------------------
+NavigationTreeModel
+-------------------
+
+.. contents::
+
+
+Présentation
+============
+
+Ajout d'un modèle d'arbre de navigation.
+
+Le but de cette fonctionnalité est de pouvoir créer un arbre de navigation lié au context de JAXX, de définir des UI
+rattachés à chaque noeud.
+
+Le développement est effectué dans le paquetage *jaxx.runtime.swing.navigation*.
+
+jaxx.runtime.swing.navigation.NavigationTreeModel
+=================================================
+
+Il s'agit du modèle de l'arbre utilisé, c'est une extension d'un *javax.swing.tree.DefaultTreeModel*.
+
+Les noeuds présents dans ce modèle sont aussi typés en *jaxx.runtime.swing.navigation.NavigationTreeModel.NavigationTreeNode*.
+
+L'idée principale est de pouvoir associé à un noeud précis un chemin depuis la racine, ce que l'on appele *chemin de navigation*.
+
+Pour obtenir le chemin de navigation d'un noeud donné, on récupère l'enmseble des neoud depuis la racine vers ce noeud
+et les concatène en suffixant par le caractère séparateur défini.
+
+Définition d'un noeud
+=====================
+
+Le noeud (*jaxx.runtime.swing.navigation.NavigationTreeModel.NavigationTreeNode*) est une extension d'un *javax.swing.tree.DefaultMutableTreeNode*.
+
+Il apporte les nouvelles propriétés suivantes :
+
+ * *navigationPAth* : nom de chemin de navigation de ce noeud.
+
+ * *jaxxClass* : nom qualifié de la classe d'ui associé à ce noeud (doit être obligatoirement un *JAXXObject*)
+
+ * *jaxxActionClass* : nom qualifié de la classe d'handler d'ui associé à ce noeud (doit être obligatoirement un *JAXXAction*).
+
+ * *jaxxContextEntryDef* : définition de l'entrée dans le context JAXX associé à ce noeud.
+
+ * *jaxxContextEntryJXPath* : définition d'une expression JXPath à appliquer sur le bean associé au noeud.
+
+
+Retrouver un noeud à partir du chemin de navigation
+***************************************************
+
+Il est possible en connaissant le chemin de navigation d'un noued de récupérer le noeud dans l'arbre via la méthode
+
+::
+
+ model.findNode("chemin.de.navigation")
+
+Trouver la valeur associée dans le context JAXX à partir du chemin de navigation
+********************************************************************************
+
+Il est possible en connaissant le chemin de navigation d'un noued de récupérer la valeur associée dans le context JAXX.
+
+::
+
+ model.getJAXXContextValue(myJAXXContext, "chemin.de.navigation")* .
+
+L'algrotihme est le suivant :
+
+ * récupération du noeud associé au chemin de navigation
+
+ * recherche du premier noeud (dans les noeuds qui remontent vers la racine de l'arbre) dont la propriété *jaxxContextEntry* est non nulle, il s'agit du point d'entré dans le context JAXX.
+
+ * redescendre à partir de ce noeud vers le noeud d'origine (si ce noeud était différent) et en descendant conjointement dans l'objet du context JAXX :
+
+ - on utilise l'expression JXPath pour obtenir l'objet associé au noeud
+
+Exemple :
+
+::
+
+ "$root" + <-- la racine de l'abre
+ |
+ + "string" <-- attaché au context JAXX <java.lang.String,"string">
+ |
+ + "liste" + <-- attaché au context JAXX <java.util.List.class,"liste">
+ | |
+ | + "0" <-- le premier élément de la liste
+ | |
+ | + "1" <-- le second élément de la liste
+ | |
+ | + "2" <-- le troisième élément de la liste
+ |
+ + "locale" + <-- attaché au context JAXX <java.util.Locale>
+ |
+ + country
+ |
+ + language
+
+ // preparation du context
+ java.util.List myList = java.util.Arrays.asList("one","two","three");
+ java.util.Locale myLocale = java.util.Locale.FRENCH;
+ context.setContextValue(myList, "liste");
+ context.setContextValue("stringValue","string");
+ context.setContextValue(myLocale);
+
+
+ // récupération des valeurs dans le context à partir de chemin de navigation
+ assert model.getJAXXContextValue(context, "$root") == null;
+ assert model.getJAXXContextValue(context, "$root.string") == "stringValue";
+ assert model.getJAXXContextValue(context, "$root.liste") == myList;
+ assert model.getJAXXContextValue(context, "$root.liste.0") == "one";
+ assert model.getJAXXContextValue(context, "$root.liste.1") == "two";
+ assert model.getJAXXContextValue(context, "$root.liste.2") == "three";
+ assert model.getJAXXContextValue(context, "$root.locale") == myLocale;
+ assert model.getJAXXContextValue(context, "$root.locale.country") == myLocale.getCountry();
+ assert model.getJAXXContextValue(context, "$root.locale.language") == myLocale.getLanguage();
+
+TODO mettre à jour cet exemple suite à l'utilisation de JXPath pour naviguer dans les objets.
+
+A noter qu'une seconde méthode de récupération de valeur du context JAXX est disponible pour pouvoir récupérer cette
+valeur en connaissant le noeud :
+
+::
+
+ model.getJAXXContextValue(context, myNode);
+
+jaxx.runtime.swing.navigation.NavigationTreeSelectionAdapter
+============================================================
+
+Il s'agit d'un listener sur la sélection d'un noeud dans l'arbre de navigation basé sur notre modèle de navigation. Il
+étend *javax.swing.event.TreeSelectionListener*.
+
+Ce listener contient la gestion de passage d'un noeud à un autre avec interaction avec le context JAXX et affichage automatique de l'ui associé au noeud sélectionné.
+
+**Attention : la mécanique ne fonctionne que pour un arbre à selection unique.**
+
+Algorithme
+**********
+
+Voici l'algorithme utilisé lors de la sélection d'un nouveau noeud :
+
+ * *closeUI* : tentative de fermeture de l'ui lié au noeud précédemment selectionné, si cela n'aboutit pas on retourne sur le noeud précédent.
+
+ * *attachBeanFromNodeToContext* : injection dans le context JAXX de la valeur associée au nouveau noeud
+
+ * *createUI* : création de la nouvelle ui (si elle n'existe pas)
+
+ * *openUI* : ouverture de la nouvelle ui
+
+Si une erreur survient lors de ces opérations, on entre dans la méthode *goBackToPreviousNode* qui est abstraite et permet de notifier les erreur de retourner au noeud précdent.
+
+jaxx.runtime.swing.navigation.NavigationTreeSelectionAdapterWithCardLayout
+**************************************************************************
+
+Il s'agit d'une implantation du listener précédent qui suppose que les uis associées aux noeuds sont affichées dans un
+unique container en utilisant le layout *jaxx.runtime.swing.CardLayout2*.
+
+La contrainte de chaque ui sera extactement le chemin de navigation du noeud associé.
+
+Il possède deux méthodes abstraites :
+
+ * *getContentContainer* : qui indique le container d'ui.
+
+ * *getContentLayout* : qui indique le layout utilisé.
+
+Pour pouvoir utilisé cet *adapter*, il vous suffit de définir la méthode suivante (en plus des deux méthodes abstraites) :
+
+ * *goBackToPreviousNode* : comment gérer les erreurs et retourner au noeud précedent.
+
Property changes on: jaxx/trunk/jaxx-compiler-api/src/site/rst/NavigationTreeModel.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: jaxx/trunk/jaxx-compiler-api/src/site/rst/Todo.rst (from rev 1307, jaxx/trunk/jaxx-compiler-api/src/site/fr/rst/Todo.rst)
===================================================================
--- jaxx/trunk/jaxx-compiler-api/src/site/rst/Todo.rst (rev 0)
+++ jaxx/trunk/jaxx-compiler-api/src/site/rst/Todo.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,15 @@
+====
+TODO
+====
+
+ - réorganiser ce module maven en deux modules :
+
+ * un premier module de runtime
+
+ * un second module contenant uniquement le compilateur et non nécessaire au runtime.
+
+ Le second module pourrait être facultatif et le code pourrait directement être placé dans le module du plugin.
+
+ Cependant cela n'est pas possible actuelement car certains objets du runtime contiennent aussi du code utilisé
+ par le compilateur JAXX (par exemple StyleSheet). Il faut avant tout cloisonner le code non runtime.
+
\ No newline at end of file
Property changes on: jaxx/trunk/jaxx-compiler-api/src/site/rst/Todo.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: jaxx/trunk/jaxx-compiler-api/src/site/rst/index.rst (from rev 1307, jaxx/trunk/jaxx-compiler-api/src/site/fr/rst/index.rst)
===================================================================
--- jaxx/trunk/jaxx-compiler-api/src/site/rst/index.rst (rev 0)
+++ jaxx/trunk/jaxx-compiler-api/src/site/rst/index.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,41 @@
+jaxx-core
+=========
+
+.. contents::
+
+
+Présentation
+------------
+
+Le compilateur Jaxx TODO
+
+**Veuillez consulter la JavaDoc pour de plus ample détails sur les différentes
+librairies.**
+
+Nouvelles fonctionnalités
+-------------------------
+
+ * I18n_
+
+ * JAXXContext_
+
+ * BeanValidator_
+
+ * NavigationTreeModel_
+
+ * JavaBean_
+
+ * Interface_
+
+
+.. _I18n: I18n.html
+
+.. _JAXXContext: JAXXContext.html
+
+.. _BeanValidator: BeanValidator.html
+
+.. _NavigationTreeModel: NavigationTreeModel.html
+
+.. _Javabean: JavaBean.html
+
+.. _Interface: Interface.html
\ No newline at end of file
Property changes on: jaxx/trunk/jaxx-compiler-api/src/site/rst/index.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Added: jaxx/trunk/jaxx-example/catalog.xml
===================================================================
--- jaxx/trunk/jaxx-example/catalog.xml (rev 0)
+++ jaxx/trunk/jaxx-example/catalog.xml 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="system">
+ <nextCatalog catalog="file:/home/chemit/.netbeans/6.5/var/cache/mavencachedirs/87431320//retriever/catalog.xml"/>
+</catalog>
\ No newline at end of file
Modified: jaxx/trunk/jaxx-example/pom.xml
===================================================================
--- jaxx/trunk/jaxx-example/pom.xml 2009-04-20 15:48:49 UTC (rev 1342)
+++ jaxx/trunk/jaxx-example/pom.xml 2009-04-20 15:49:30 UTC (rev 1343)
@@ -26,6 +26,11 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime-swing-widget</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>jaxx-runtime-validator-swing</artifactId>
<version>${project.version}</version>
</dependency>
Copied: jaxx/trunk/jaxx-example/src/site/rst/images/Components-screenshot.gif (from rev 1307, jaxx/trunk/jaxx-example/src/site/fr/rst/images/Components-screenshot.gif)
===================================================================
(Binary files differ)
Property changes on: jaxx/trunk/jaxx-example/src/site/rst/images/Components-screenshot.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Name: svn:mergeinfo
+
Copied: jaxx/trunk/jaxx-example/src/site/rst/images/webstart.gif (from rev 1307, jaxx/trunk/jaxx-example/src/site/fr/rst/images/webstart.gif)
===================================================================
(Binary files differ)
Copied: jaxx/trunk/jaxx-example/src/site/rst/index.rst (from rev 1307, jaxx/trunk/jaxx-example/src/site/fr/rst/index.rst)
===================================================================
--- jaxx/trunk/jaxx-example/src/site/rst/index.rst (rev 0)
+++ jaxx/trunk/jaxx-example/src/site/rst/index.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,40 @@
+===================
+Examples/Components
+===================
+
+The Components demo displays many different Swing components being used in a variety of ways; it is JAXX's equivalent
+of the SwingSet demo. Various pages use advanced features such as data binding, scripting, event handling, and
+CSS stylesheets.
+
+Examples/Calculator
+===================
+
+This is an implementation of Challenge #2 from the `XUL Grand Coding Challenge 2004`_ . Because this example program
+has been implemented in so many different languages, you can easily compare JAXX's
+syntax against the competition and decide for yourself which you prefer.
+
+Screen shot
+-----------
+
+.. image:: images/Components-screenshot.gif
+
+Set it in action
+----------------
+
+|webstart|
+
+To run this example in `Java Web Start`_, click the `following link`_.
+
+
+Source code
+-----------
+
+Unlike the other examples, the source code for Components is too big to display here. You can view it yourself by
+downloading JAXX, and you can also view the source code for the individual demos by clicking the "Source" tabs.
+
+
+.. _Java Web Start: http://java.sun.com/products/javawebstart/
+
+.. |webstart| image:: images/webstart.gif
+
+.. _following link: ./launch-demo.jnlp
Copied: jaxx/trunk/jaxx-swing-action/src/site/rst/Todo.rst (from rev 1307, jaxx/trunk/jaxx-swing-action/src/site/fr/rst/Todo.rst)
===================================================================
--- jaxx/trunk/jaxx-swing-action/src/site/rst/Todo.rst (rev 0)
+++ jaxx/trunk/jaxx-swing-action/src/site/rst/Todo.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,4 @@
+TODO
+====
+
+a faire
\ No newline at end of file
Property changes on: jaxx/trunk/jaxx-swing-action/src/site/rst/Todo.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: jaxx/trunk/jaxx-swing-action/src/site/rst/index.rst (from rev 1307, jaxx/trunk/jaxx-swing-action/src/site/fr/rst/index.rst)
===================================================================
--- jaxx/trunk/jaxx-swing-action/src/site/rst/index.rst (rev 0)
+++ jaxx/trunk/jaxx-swing-action/src/site/rst/index.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,13 @@
+jaxx-swing-action
+=================
+
+.. contents::
+
+
+Présentation
+------------
+
+Framework de gestion des actions et onglets TODO
+
+**Veuillez consulter la JavaDoc pour de plus ample détails sur les différentes
+librairies.**
Property changes on: jaxx/trunk/jaxx-swing-action/src/site/rst/index.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: jaxx/trunk/maven-jaxx-plugin/src/site/rst/Todo.rst (from rev 1307, jaxx/trunk/maven-jaxx-plugin/src/site/fr/rst/Todo.rst)
===================================================================
--- jaxx/trunk/maven-jaxx-plugin/src/site/rst/Todo.rst (rev 0)
+++ jaxx/trunk/maven-jaxx-plugin/src/site/rst/Todo.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,4 @@
+TODO
+====
+
+a faire
\ No newline at end of file
Property changes on: jaxx/trunk/maven-jaxx-plugin/src/site/rst/Todo.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: jaxx/trunk/maven-jaxx-plugin/src/site/rst/index.rst (from rev 1307, jaxx/trunk/maven-jaxx-plugin/src/site/fr/rst/index.rst)
===================================================================
--- jaxx/trunk/maven-jaxx-plugin/src/site/rst/index.rst (rev 0)
+++ jaxx/trunk/maven-jaxx-plugin/src/site/rst/index.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,13 @@
+maven-jaxx-plugin
+=================
+
+.. contents::
+
+
+Présentation
+------------
+
+Le plugin maven pour lancer le compilateur jaxx dans un projet maven TODO
+
+**Veuillez consulter la JavaDoc pour de plus ample détails sur les différentes
+librairies.**
Property changes on: jaxx/trunk/maven-jaxx-plugin/src/site/rst/index.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: jaxx/trunk/pom.xml
===================================================================
--- jaxx/trunk/pom.xml 2009-04-20 15:48:49 UTC (rev 1342)
+++ jaxx/trunk/pom.xml 2009-04-20 15:49:30 UTC (rev 1343)
@@ -9,7 +9,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>lutinproject</artifactId>
- <version>3.4</version>
+ <version>3.5.3</version>
</parent>
<groupId>org.codelutin</groupId>
@@ -92,14 +92,14 @@
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
- <version>2.0.4</version>
+ <version>${maven.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
- <version>2.0.4</version>
+ <version>${maven.version}</version>
<scope>compile</scope>
</dependency>
@@ -109,8 +109,6 @@
<groupId>com.opensymphony</groupId>
<artifactId>xwork</artifactId>
<version>2.1.1-cl_20081015</version>
- <!--version>2.1.1-cl_20090130</version-->
- <!--version>2.1.1</version-->
</dependency>
<!-- swinglabs dependencies -->
@@ -149,8 +147,9 @@
<!-- libs version -->
<lutinutil.version>1.0.3</lutinutil.version>
<jaxx.version>${project.version}</jaxx.version>
- <i18n.version>0.10</i18n.version>
- <lutinpluginutil.version>0.3</lutinpluginutil.version>
+ <i18n.version>0.11</i18n.version>
+ <lutinpluginutil.version>0.4</lutinpluginutil.version>
+ <maven.version>2.0.10</maven.version>
</properties>
<build>
@@ -170,31 +169,26 @@
<version>2.4.3</version>
</plugin>
+ <plugin>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <locales>fr</locales>
+ <siteDirectory>src/site</siteDirectory>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.codelutin</groupId>
+ <artifactId>doxia-module-jrst</artifactId>
+ <version>1.0.0</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+
</plugins>
</pluginManagement>
<plugins>
- <!-- Always process jrst files, but only called on pre-site phase -->
- <plugin>
- <groupId>org.codelutin</groupId>
- <artifactId>maven-jrst-plugin</artifactId>
- <version>0.8.4</version>
- <configuration>
- <directoryIn>${maven.src.dir}/site</directoryIn>
- <directoryOut>${maven.site.gen.dir}</directoryOut>
- <defaultLocale>fr</defaultLocale>
- <inputEncoding>${project.build.sourceEncoding}</inputEncoding>
- <outputEncoding>${project.build.sourceEncoding}</outputEncoding>
- </configuration>
- <executions>
- <execution>
- <phase>pre-site</phase>
- <goals>
- <goal>jrst</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
+
</plugins>
</build>
@@ -244,7 +238,7 @@
<plugin>
<groupId>org.codelutin</groupId>
<artifactId>maven-license-switcher-plugin</artifactId>
- <version>0.6</version>
+ <version>0.7</version>
<configuration>
<licenseName>${license-switcher.licenseName}</licenseName>
</configuration>
Copied: jaxx/trunk/src/site/rst/BeanValidator.rst (from rev 1307, jaxx/trunk/src/site/fr/rst/BeanValidator.rst)
===================================================================
--- jaxx/trunk/src/site/rst/BeanValidator.rst (rev 0)
+++ jaxx/trunk/src/site/rst/BeanValidator.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,181 @@
+-------------
+BeanValidator
+-------------
+
+.. contents::
+
+
+**WARNING : documentation non à jour...**
+
+Présentation
+============
+
+Ajout du support de validation dans JAXX.
+
+La techonologie utilisée est celle de Struts 2 (XWorks 2).
+
+
+Configuration
+=============
+
+La configuration des validateurs se font via des fichier xml (on peut aussi utiliser des annotations,...).
+
+Ajout d'un validateur
+*********************
+
+Pour enregister un nouveau validateur sur un bean, il suffit de placer dans le même paquetage que le bean un fichier *XXX-validation.xml* où XXX est le nom non qualifié du bean.
+
+On peut de plus affecter un context de validation, dans ce cas le fichier doit s'appeler *XXX-YYY-validation.xml*, où YYY est le nom du context de validation.
+
+Ainsi on peut valider de différentes manières un bean (par exemple selon son cycle de vie :création, modification, ...).
+
+Ajout d'un nouveau type de validateur
+*************************************
+
+Il est aussi possible de définir de nouveau type de validateurs :
+
+ * créer une classe qui étend FieldValidator
+ * ajouter un fichier validators.xml (ou ajouter dans un tel fichier la définition du nouveau validator) à la racine du class-path.
+
+I18n
+****
+
+Afin de rendre le mécanisme multi-langue, on propose dans les fichiers de validations d'utiliser des clef i18n pour les messages.
+
+Un nouveau parseur dans notre plugin i18n a été ajouté pour détecter ces clefs. (*maven-i18n-plugin:0.7:parserValidation*)
+
+
+Intégration dans JAXX
+=====================
+
+Deux nouveaux tags ont été conçus pour pouvoir décrire un validateur dans les fichiers JAXX.
+
+Ce développement est dans le paquetage *jaxx.tags.validator*.
+
+tag BeanValidator
+*****************
+
+Permet de définir un nouveau validateur dans une classe JAXX.
+
+Les attributs autorisés sont les suivants :
+
+ * *id* : le nom du validateur
+
+ * *bean* : l'id d'un bean connu par la classe JAXX. On ne peut pas utiliser ici une expression car on n'est pas sûr de pouvoir déterminer le type de cette expression pendant le parsing ? (a verifier).
+
+ * *beanClass* : le FQN de classe du bean à valider. Peut-être non présent si l'attribut *bean* est renseigné.
+
+ * *beanInitializer* : une expression pour initialiser le bean à valider. TODO a revoir : on devrait utiliser uniquement un seul attribut *bean*...
+
+ * *contextName* : le nom du contexte de validation.
+
+ * *autoField* : flag pour indiquer l'inscription implicite des validateurs de champs du bean. Pour ce faire on parcourt l'ensemble des champs du bean et on ne considère uniquement ceux dont on connait dans la classe JAXX un composent d'édition du champ (id=nom du champ). Il est possible de surcharger ce configuration implicite en rajoutant explicitement des champs (voir le tag *field*).
+
+ * *errorList* : le composant graphique pour afficher la liste des erreurs, doit étendre *javax.swing.JList*. Si non présent, on essayera le component d'id *errorList*.
+
+ * *errorListModel* : le modèle qui contient la liste des erreurs (et est liée au composant *errorList*), doit étendre *jaxx.runtime.validator.swing.SwingValidatorErrorListModel*. Si non présent on essayera le composent d'id *errorListModel*.
+
+ * *uiClass* : le FQN de la classe utilisé pour le rendu des erreurs sur les wigets d'édition. La classe doit étendre *jaxx.runtime.validator.swing.ui.AbstractBeanValidatorUI*. Si non présent, on utilise par défaut le render *jaxx.runtime.validator.swing.ui.IconValidationUI*.
+
+
+Le tag supporte aussi l'ajout de tag *field* comme fils pour définir explicitement des champs à validater.
+
+tag field
+*********
+
+Le tag *field* définit une entrée dans le validateur, on définit une correspondance entre le champ à valider et le composant d'édition de ce champ.
+
+Le tag supporte les attributs suivants :
+
+ * *name* : le nom de la propriété du bean associée.
+ Cet attribut est obligatoire.
+
+ * *component* : l'id du composant graphique d'édition associé à la propriété du bean.
+ Cet attribut peut être omis si le nom de la propriété du bean est identique à celui du composent graphique d'édition.
+
+
+Les classes du runtime
+======================
+
+Ce développement est dans le paquetage *jaxx.runtime.validator* (sauf pour l'interface *jaxx.runtime.JAXXValidator*).
+
+Il s'agit de l'ensemble des classes ajoutées dans le module *jaxx-core* pour encapsuler la validation dans les fichiers java générés à partir des fichiers JAXX.
+
+
+interface jaxx.runtime.JAXXValidator
+************************************
+
+Ce contrat a été ajouté à tous les objets JAXX générés (donc l'interface JAXXObject étend JAXXValidator).
+
+On définit ici uniquement des méthodes d'accès aux validateurs enregistrés dans le JAXXObject.
+
+TODO on pourrait ajouter des méthodes pour savoir l'état de validation d'un validateur ?
+
+
+classe jaxx.runtime.validator.swing.SwingValidator
+**************************************************
+
+Il s'agit de la classe principale d'encapsulation d'un validateur XWorks 2.
+
+Le principe est simple : le validateur écoute les modifications sur le bean associé et revalide le bean à chaque modification. La validation met à jour la liste des erreurs asociées.
+
+On se base sur les PropertyChangeListener pour écouter les modification des beans. Il faut donc que les beans supporte ces listeners.
+
+Pour les entités de ToPIA, il suffit de positionner un contexte (topia) au bean pour profiter des listeners liés.
+
+Pour les DTO de ToPIA, les générateurs ont été modifiés pour gérer ce support.
+
+Les méthodes à retenir sont :
+
+ * *setBean* pour affecter un bean au validateur (pour déasactiver passer null). Lors de la désactivation d'un bean, les erreurs associés sont retirées de la liste des erreurs.
+
+ * *setContextName* pour affecter un nouveau nom de context de validation (par défaut on utilise pas de context de validation).
+
+ * *validate* pour lancer une validation sur le bean liée (ne sera opérant uniquement si un bean est liée et qu'une liste d'erreur est liée).
+
+ * *isValid* pour connaitre l'état du validateur à un moment donné.
+
+Normalement la méthode *validate* ne devrait pas être appelée directement. : elle est automatiquement invoquée lorsqu'une propriété du bean est modifiée.
+
+classe jaxx.runtime.validator.swing.SwingValidatorErrorModel
+************************************************************
+
+Modélisation d'une erreur renvoyé par le validateur, on conserve ici :
+
+ * le validateur qui a provoqué l'erreur
+
+ * la propriété du bean en faute
+
+ * le composent graphique d'édtion de la propriété
+
+classe jaxx.runtime.validator.swing.SwingValidatorErrorListModel
+****************************************************************
+
+Le modèle de la liste des erreurs renvoyées par le validateur. Il s'agit d'une extension d'un *javax.swing.DefaultListModel* qui permet de gérer une liste d'erreurs provenant de plusieurs validateurs en même temps.
+
+classe jaxx.runtime.validator.swing.SwingValidatorErrorListMouseListener
+************************************************************************
+
+Un listener écoutant les double clics sur une liste d'erreurs et qui donne le focus au composent graphique d'édition associée à la propriété dont l'erreur est sélectionné.
+
+
+Les conversions
+===============
+
+Pour l'édition de proriétés qui ne sont pas des chaines de caractères, des erreurs de conversions peuvent survenir (conversion de la valeur de l'édtieur graphique vers le bean), avant que l'on utilise
+réellement la mécanique de la validation.
+
+Pour palier à ce problème on a intégré la gestion des erreurs de conversion dans le validateur.
+Pour ce faire, il suffit de faire appel à la méthode suivante pour injecter dans un bean une propriété :
+
+ ::
+
+ jaxx.runtime.Util.convert(validator,"nomDeLaPropriété",widget.getText(),TypeDeLaProriete.class);
+
+
+On obtiendra si une erreur de conversion intervient, une erreur dont le libellé est de la forme *error.convertor.XXX*
+où XXX est nom simple en minuscule du type de la propruité. (par exemple : *error.convertor.integer*).
+
+
+
+
Property changes on: jaxx/trunk/src/site/rst/BeanValidator.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: jaxx/trunk/src/site/rst/Core.rst (from rev 1307, jaxx/trunk/src/site/fr/rst/Core.rst)
===================================================================
--- jaxx/trunk/src/site/rst/Core.rst (rev 0)
+++ jaxx/trunk/src/site/rst/Core.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,154 @@
+++++
+Core
+++++
+
+.. contents::
+
+Nouvelles fonctionnalités apportées sur les classes générées.
+
+---------
+Interface
+---------
+
+Présentation
+============
+
+Ajout de contrats sur le code généré dans JAXX.
+
+Mécanisme
+=========
+
+Le compilateur JAXX génère des classes à partir de fichiers JAXX mais n'est pas capable d'ajouter des contrats sur
+les objets générés, donc interdit en quelque sorte la programmation par contrat.
+
+Pour palier à cette limitation, on a ajouté un attribut spécial *implements*.
+
+Cette attribut ne doit être placé que sur le tag racine d'un fichier JAXX et son contenu est le nom qualifié d'un ou
+plusieurs contrats séparaés par des virgules.
+
+::
+
+ <JPanel implements='java.lang.Comparable'>
+
+ <script>public int compareTo(JPanel o) { return getName().compareTo(o.getName()); }</script>
+
+ </JPanel>
+
+La classe générée aura bien le contrat *java.lang.Comparable*.
+
+--------
+Abstract
+--------
+
+Présentation
+============
+
+Ajout de la possibilité de générer des classes abstraites.
+
+Mécanisme
+=========
+
+Ajout d'un attribut *abstract*.
+
+::
+
+ <JPanel abstract='true'/>
+
+La classe générée sera abstraite.
+
+--------
+Generics
+--------
+
+Présentation
+============
+
+Ajout de possible de type generique sur les inferfaces et superclass.
+
+Mécanisme
+=========
+
+Ajout d'un attribut genericType et superGenericType.
+
+Exemple : (fichier Parent.jaxx)
+::
+
+ <JPanel genericType='E'
+ implements='java.lang.Comparable<E>'
+ abstract='true' />
+
+La classe générée sera de la forme :
+
+::
+
+ public abstract Parent<E> implements java.lang.Comparable<E> {
+ ...
+ }
+
+Pour surcharger une telle classe (fichier Son.jaxx) :
+
+::
+
+ <Parent superGenericType='String'
+ abstract='true'/>
+
+La classe générée sera de la forme :
+
+::
+
+ public Son extends Parent<String> {
+ ...
+ }
+
+
+TODO
+====
+
+Permettre l'utilisation des types génériques dans les scripts.
+
+--------
+JavaBean
+--------
+
+Présentation
+============
+
+Ajout du support complêt des javaBean dans JAXX.
+
+Mécanisme
+=========
+
+Il est possible dans JAXX de rajouter des objets quelconques via leur nom qualifié de classe :
+
+::
+
+ <JPanel>
+ <java.lang.Boolean id='myState' constructorParams='true'/>
+ <JLabel text='text' visible='{isMySate()}'/>
+ </JPanel>
+
+Avant l'ajout de la fonctionnalité, le code généré possèdait :
+
+ * une propriété en lecture seul nommé *myState*.
+
+Aucun support javaBean n'était présent et le databinding sur la propriété *visible* du label n'est pas créé. Cela veut
+dire que le label sera initialisé avec la valeur initiale du boolean et c'est tout...
+
+Avec l'ajout du support javaBean, on peut maintenant faire ces bindings, pour ce faire il suffit d'ajouter un attribut
+*javaBean* sur l'objet :
+
+::
+
+ <JPanel>
+ <java.lang.Boolean id='myState' javaBean='true'/>
+ <JLabel text='text' visible='{isMySate()}'/>
+ </JPanel>
+
+On aura donc en plus :
+
+ * un mutateur sur la propriété *myState* qui déclanchera l'envoie d'un *PropertyChange* sur la propriété lors de modification de valeur.
+
+Ainsi le compilateur JAXX sera capable d'enregistrer un novueau dataBindig sur la propriété *visible* du label et la
+modification de l'état *myState* sera automatiquement répercuté sur la propriété.
+
+Note: le contenu de l'attribut *javaBean* est l'initialiteur de la propriété.
\ No newline at end of file
Property changes on: jaxx/trunk/src/site/rst/Core.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: jaxx/trunk/src/site/rst/I18n.rst (from rev 1307, jaxx/trunk/src/site/fr/rst/I18n.rst)
===================================================================
--- jaxx/trunk/src/site/rst/I18n.rst (rev 0)
+++ jaxx/trunk/src/site/rst/I18n.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,56 @@
+----
+I18n
+----
+
+.. contents::
+
+
+Présentation
+============
+
+Ajout du support i18n dans JAXX.
+
+On utilise la système i18n développé dans la librairie des lutins (*lutinlib*).
+
+Configuration
+=============
+
+Une option a été ajoutée dans le plugin maven de JAXX : *i18nable* pour permettre ou non l'utilisation de ce système.
+
+Par défaut, l'option est active (donc aucune configuration supplémentaire n'est nécessaire pour utiliser i18n dans JAXX).
+
+
+Fonctionnement
+==============
+
+Le fonctionnement est simple : lors de la compilation JAXX, lorsque l'on rencontre certains attributs on encapsule la
+valeur de l'attribution par un appel à la méthode
+
+::
+
+ org.codelutin.i18n.I18n._(String)
+
+
+La liste des attributs en question sont les suivants :
+
+ - title
+ - text
+ - toolTipText
+
+
+Ensuite l'utilisation du *parserJava* du plugin i18n permet la détection des clefs i18n.
+
+
+Pourquoi ne plus utiliser l'ancien parserJaxx du plugin i18n
+============================================================
+
+Un parseur avait été développé initialement pour détecter dans les fichiers JAXX (*parserJaxx*), les appels à la méthode de traduction
+i18n dans les attributs.
+
+Ce parseur n'est plus d'actualité car on ne doit plus avoir d'appel explicite à cette méthode dans les fichiers JAXX.
+
+De plus, même sans avoir mis en place le mécanisme i18n dans JAXX, ce parseur n'était plus d'actualité : il se base
+sur une liste prédéfinie d'attributs xml à scanner pour détecter des appels i18n; ce qui n'était pas acceptable à terme
+car si on ajoute un nouveau composent dans JAXX, le plugin i18n n'est pas capable de détecter les nouvelles clefs.
+
+Donc on préconise l'utilisation du *parserJava* du plugin i18n qui lui est capable de détecter tous les appels i18n.
Copied: jaxx/trunk/src/site/rst/JAXXContext.rst (from rev 1307, jaxx/trunk/src/site/fr/rst/JAXXContext.rst)
===================================================================
--- jaxx/trunk/src/site/rst/JAXXContext.rst (rev 0)
+++ jaxx/trunk/src/site/rst/JAXXContext.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,161 @@
+-----------
+JAXXContext
+-----------
+
+.. contents::
+
+
+Présentation
+============
+
+Ajout d'un context applicatif dans JAXX.
+
+Le besoin initial de ce développement est de pouvoir facilement intégrer un context applicatif dans JAXX et de pouvoir
+l'utiliser dans les fichiers JAXX pour injecter par exemple des données dans les widgets.
+
+jaxx.runtime.JAXXContext
+========================
+
+Il s'agit du contrat de base du context applicatif.
+
+Les entrées dans le context
+***************************
+
+Chaque donnée utilisable dans le context est caractérisée par deux propriétés :
+
+ * la type de l'objet
+
+ * un nom (facultatif) associé à la donnée
+
+Le type de l'objet correspondant en fait à la classe de la donnée.
+
+Le nom qui est facultatif permet de pouvoir distinguer plusieurs données d'un même type dans le context. Si le nom
+n'est pas utilisé pour caractériser une données on fixera alors sa valeur à *null*.
+
+Afin de pouvoir caractériser les entrées dans le context, une classe a été définie *jaxx.runtime.JAXXContextEntryDef*.
+
+Les méthodes de lecture
+***********************
+
+On a définit deux méthodes de lecture de données dans le context :
+
+ * *getContextValue(Class)* récupère la donnée *non nommée* dont le type correspond à celui passé.
+
+ * *getContextValue(Class,String)* récupère la donnée nommé dont le type correspond à celui passé.
+
+Les méthodes d'écriture
+***********************
+
+On a définit quatre méthodes d'écriture de données dans le context :
+
+ * *setContextValue(Object)* enregistre dans le context la donnée *non nommée*.
+
+ * *setContextValue(Object,String)* enregistre dans le context la donnée *nommée*.
+
+ * *removeContextValue(Class)* supprime du context, la donnée *non nommée* dont le type est passé.
+
+ * *removeContextValue(Class, String)* supprime du context, la donnée *nommée* dont le type est passé.
+
+Afin de pouvoir assurer une cohérence dans le context, chaque injection de donnée, sera toujours précédée par une
+suppression d'un éventuellement ancienne valeur qui aurait la même définition d'entrée.
+
+L'héritage
+**********
+
+Il est possible d'avoir une hériarchie de context qui s'enchaînent. Ce mécanisme a été mis en place pour répondre à un
+besion précis : chaque fichier JAXX donne lieu à une nouvelle classe qui possède son propre context.
+
+On peut avoir des fichiers JAXX qui utilisent d'autres fichiers JAXX, il faut donc être capable de lier le context du
+composent parent avec ses fils.
+
+La mise en place de l'héritage est transparente pour l'utilisateur : aucune méthode supplémentaire n'est requise.
+
+Les implantations de context
+============================
+
+jaxx.runtime.DefaultJAXXContext
+*******************************
+
+Il s'agit de l'implantation par défaut utilisée par les objects *JAXXObject* (objets générés).
+
+A noter que pour les opérations d'injection ou de suppression, on effectuera les opérations sur le context qui contient
+réellement la donnée, ce qui est important pour conserver la cohérence des contexts dans les contexts chaînés.
+
+Pour traiter le context parent, aucune méthode publique supplémentaire n'a été rajoutée, il suffit d'injecter un objet
+de type *JAXXContext* *non nommé* qui le context courant qui sera détecté comme une entrée de type context.
+
+Cette entrée spéciale ne sera pas stockée avec les autres entrées afin d'optimiser les algorithmes d'injection et de
+restitution.
+
+jaxx.runtime.JAXXInitialContext
+*******************************
+
+On a implanté un second type de context qui lui peut servir à l'initialisation des JAXXObject.
+
+Ce second type de context ajoute des méthodes pour préparer le context avant l'instanciation des JAXXObject.
+
+Ce context admet certaine limitation (pas de suppression dans le context), et apporte trois nouvelles méthodes :
+
+ * add(Object) : injecte dans le context une entrée non nommée et retourne l'instance du context.
+
+ * add(String,Object) : injecte dans le context une entrée nommé et retourne l'instance du context.
+
+ * to(JAXXContext) : injecte dans le context passé toutes les entrée du context.
+
+Les méthodes *add* peuvent être chaînées comme dans l'exemple suivant :
+
+::
+
+ JAXXInitialContext context = new JAXXInitialContext().add("string").add(0).add("currentDate",new Date());
+
+
+Intégration dans les JAXXObject
+===============================
+
+Le traitement d'un fichier JAXX donne lieu à une classe qui possède le contrat *jaxx.runtime.JAXXObject*.
+
+Ce contrat hérite donc du contrat *JAXXContext* (afin de pouvoir l'utiliser de manière transparente dans les fichiers JAXX).
+
+Afin de simplifier la génération et les évolutions du context indépendemment des évolutions des JAXXObject, on utilise
+un pattern de délégation au sein des object générés.
+
+Paramétrage de l'implantation du context
+****************************************
+
+Une propriété a été rajoutée sur le plugin JAXX, afin de pouvoir préciser l'implantation de context à utiliser :
+
+::
+
+ jaxx.jaxxContextImplementorClass
+
+Il s'agit du nom qualifié de la classe d'implantation à utiliser.
+
+Par défaut, si rien n'est renseigné, on utilisera un *jaxx.runtime.DefaultJAXXContext*.
+
+
+Initialisation d'un JAXXObject
+******************************
+
+Un nouveau constructeur a été ajouté dans les JAXXObjet générés afin de pouvoir facilement initialisé un tel objet à
+partir d'un context parent, son unique paramètre est le context parent. Ce constructeur est capable de différencer le
+type de context passé :
+
+ * s'il s'agit d'un *JAXXInitialContext*, on recopie alors dans le context réel de l'objet toutes les entrées du context passé.
+
+ * sinon le context passé est simplement injecté dans le context de l'objet (et donc sera utilisé comme le context parent de celui de l'objet).
+
+Voici un exemple d'initialisation d'un JAXXObject :
+
+::
+
+ java.util.Date currentDate = new java.util.Date();
+ JAXXInitialContext context = new JAXXInitialContext().add("string").add(0).add("currentDate",currentDate);
+ JAXXObject ui = new MyUI(context);
+
+ assert "string".equals(myUI.getContextValue(String.class));
+ assert 0 == myUI.getContextValue(Integer.class);
+ assert currentDate.equals(myUI.getContextValue(java.util.Date.class,"currentDate"));
+
+A noter, que l'initialisation du context d'un *JAXXObject* sera toujours effectuée avant la méthode *$initialize* générée
+par le compilateur JAXX, ce qui permet de pouvoir utiliser le context pour l'initialisation des widgets dans les fichiers JAXX.
+
Property changes on: jaxx/trunk/src/site/rst/JAXXContext.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: jaxx/trunk/src/site/rst/NavigationTreeModel.rst (from rev 1307, jaxx/trunk/src/site/fr/rst/NavigationTreeModel.rst)
===================================================================
--- jaxx/trunk/src/site/rst/NavigationTreeModel.rst (rev 0)
+++ jaxx/trunk/src/site/rst/NavigationTreeModel.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,169 @@
+-------------------
+NavigationTreeModel
+-------------------
+
+.. contents::
+
+**WARNING : documentation non à jour...**
+
+Présentation
+============
+
+Ajout d'un modèle d'arbre de navigation.
+
+Le but de cette fonctionnalité est de pouvoir créer un arbre de navigation lié au context de JAXX, de définir des UI
+rattachés à chaque noeud.
+
+Le développement est effectué dans le paquetage *jaxx.runtime.swing.navigation*.
+
+jaxx.runtime.swing.navigation.NavigationTreeModel
+=================================================
+
+Il s'agit du modèle de l'arbre utilisé, c'est une extension d'un *javax.swing.tree.DefaultTreeModel*.
+
+Les noeuds présents dans ce modèle sont aussi typés en *jaxx.runtime.swing.navigation.NavigationTreeModel.NavigationTreeNode*.
+
+L'idée principale est de pouvoir associer à un noeud précis un chemin depuis la racine, ce que l'on appele *chemin de navigation*.
+
+Pour obtenir le chemin de navigation d'un noeud donné, on récupère l'enmseble des neoud depuis la racine vers ce noeud
+et les concatène en suffixant par le caractère séparateur défini.
+
+Définition d'un noeud
+=====================
+
+Le noeud (*jaxx.runtime.swing.navigation.NavigationTreeModel.NavigationTreeNode*) est une extension d'un *javax.swing.tree.DefaultMutableTreeNode*.
+
+Il apporte les nouvelles propriétés suivantes :
+
+ * *navigationPAth* : nom de chemin de navigation de ce noeud.
+
+ * *jaxxClass* : nom qualifié de la classe d'ui associé à ce noeud (doit être obligatoirement un *JAXXObject*)
+
+ * *jaxxActionClass* : nom qualifié de la classe d'handler d'ui associé à ce noeud (doit être obligatoirement un *JAXXAction*).
+
+ * *jaxxContextEntryDef* : définition de l'entrée dans le context JAXX associé à ce noeud.
+
+ * *jaxxContextEntryJXPath* : définition d'une expression JXPath à appliquer sur le bean associé au noeud.
+
+
+Retrouver un noeud à partir du chemin de navigation
+***************************************************
+
+Il est possible en connaissant le chemin de navigation d'un noued de récupérer le noeud dans l'arbre via la méthode
+
+::
+
+ model.findNode("chemin.de.navigation")
+
+Trouver la valeur associée dans le context JAXX à partir du chemin de navigation
+********************************************************************************
+
+Il est possible en connaissant le chemin de navigation d'un noued de récupérer la valeur associée dans le context JAXX.
+
+::
+
+ model.getJAXXContextValue(myJAXXContext, "chemin.de.navigation")* .
+
+L'algrotihme est le suivant :
+
+ * récupération du noeud associé au chemin de navigation
+
+ * recherche du premier noeud (dans les noeuds qui remontent vers la racine de l'arbre) dont la propriété *jaxxContextEntry* est non nulle, il s'agit du point d'entré dans le context JAXX.
+
+ * redescendre à partir de ce noeud vers le noeud d'origine (si ce noeud était différent) et en descendant conjointement dans l'objet du context JAXX :
+
+ - on utilise l'expression JXPath pour obtenir l'objet associé au noeud
+
+Exemple :
+
+::
+
+ "$root" + <-- la racine de l'abre
+ |
+ + "string" <-- attaché au context JAXX <java.lang.String,"string">
+ |
+ + "liste" + <-- attaché au context JAXX <java.util.List.class,"liste">
+ | |
+ | + "0" <-- le premier élément de la liste
+ | |
+ | + "1" <-- le second élément de la liste
+ | |
+ | + "2" <-- le troisième élément de la liste
+ |
+ + "locale" + <-- attaché au context JAXX <java.util.Locale>
+ |
+ + country
+ |
+ + language
+
+ // preparation du context
+ java.util.List myList = java.util.Arrays.asList("one","two","three");
+ java.util.Locale myLocale = java.util.Locale.FRENCH;
+ context.setContextValue(myList, "liste");
+ context.setContextValue("stringValue","string");
+ context.setContextValue(myLocale);
+
+
+ // récupération des valeurs dans le context à partir de chemin de navigation
+ assert model.getJAXXContextValue(context, "$root") == null;
+ assert model.getJAXXContextValue(context, "$root.string") == "stringValue";
+ assert model.getJAXXContextValue(context, "$root.liste") == myList;
+ assert model.getJAXXContextValue(context, "$root.liste.0") == "one";
+ assert model.getJAXXContextValue(context, "$root.liste.1") == "two";
+ assert model.getJAXXContextValue(context, "$root.liste.2") == "three";
+ assert model.getJAXXContextValue(context, "$root.locale") == myLocale;
+ assert model.getJAXXContextValue(context, "$root.locale.country") == myLocale.getCountry();
+ assert model.getJAXXContextValue(context, "$root.locale.language") == myLocale.getLanguage();
+
+TODO mettre à jour cet exemple suite à l'utilisation de JXPath pour naviguer dans les objets.
+
+A noter qu'une seconde méthode de récupération de valeur du context JAXX est disponible pour pouvoir récupérer cette
+valeur en connaissant le noeud :
+
+::
+
+ model.getJAXXContextValue(context, myNode);
+
+jaxx.runtime.swing.navigation.NavigationTreeSelectionAdapter
+============================================================
+
+Il s'agit d'un listener sur la sélection d'un noeud dans l'arbre de navigation basé sur notre modèle de navigation. Il
+étend *javax.swing.event.TreeSelectionListener*.
+
+Ce listener contient la gestion de passage d'un noeud à un autre avec interaction avec le context JAXX et affichage automatique de l'ui associé au noeud sélectionné.
+
+**Attention : la mécanique ne fonctionne que pour un arbre à selection unique.**
+
+Algorithme
+**********
+
+Voici l'algorithme utilisé lors de la sélection d'un nouveau noeud :
+
+ * *closeUI* : tentative de fermeture de l'ui lié au noeud précédemment selectionné, si cela n'aboutit pas on retourne sur le noeud précédent.
+
+ * *attachBeanFromNodeToContext* : injection dans le context JAXX de la valeur associée au nouveau noeud
+
+ * *createUI* : création de la nouvelle ui (si elle n'existe pas)
+
+ * *openUI* : ouverture de la nouvelle ui
+
+Si une erreur survient lors de ces opérations, on entre dans la méthode *goBackToPreviousNode* qui est abstraite et permet de notifier les erreur de retourner au noeud précdent.
+
+jaxx.runtime.swing.navigation.NavigationTreeSelectionAdapterWithCardLayout
+**************************************************************************
+
+Il s'agit d'une implantation du listener précédent qui suppose que les uis associées aux noeuds sont affichées dans un
+unique container en utilisant le layout *jaxx.runtime.swing.CardLayout2*.
+
+La contrainte de chaque ui sera extactement le chemin de navigation du noeud associé.
+
+Il possède deux méthodes abstraites :
+
+ * *getContentContainer* : qui indique le container d'ui.
+
+ * *getContentLayout* : qui indique le layout utilisé.
+
+Pour pouvoir utilisé cet *adapter*, il vous suffit de définir la méthode suivante (en plus des deux méthodes abstraites) :
+
+ * *goBackToPreviousNode* : comment gérer les erreurs et retourner au noeud précedent.
+
Property changes on: jaxx/trunk/src/site/rst/NavigationTreeModel.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: jaxx/trunk/src/site/rst/Todo.rst (from rev 1307, jaxx/trunk/src/site/fr/rst/Todo.rst)
===================================================================
--- jaxx/trunk/src/site/rst/Todo.rst (rev 0)
+++ jaxx/trunk/src/site/rst/Todo.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,8 @@
+====
+TODO
+====
+
+ - mettre à jour les documentations techniques et utilisateur.
+
+ - enrichir les démos.
+
\ No newline at end of file
Property changes on: jaxx/trunk/src/site/rst/Todo.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: jaxx/trunk/src/site/rst/index.rst (from rev 1307, jaxx/trunk/src/site/fr/rst/index.rst)
===================================================================
--- jaxx/trunk/src/site/rst/index.rst (rev 0)
+++ jaxx/trunk/src/site/rst/index.rst 2009-04-20 15:49:30 UTC (rev 1343)
@@ -0,0 +1,46 @@
+jaxx-core
+=========
+
+.. contents::
+
+
+Présentation
+------------
+
+Le projet Jaxx.
+
+Depuis la version 1.0, et en prévision de nouveaux générateurs s'appuyant sur Jaxx,on a revu l'architecture du projet.
+
+Désormais, une séparation a été effectuée entre le code de compilation et le code d'exécution.
+
+Tout le code de compilation est en dépendance du plugin maven et vous ne devriez pas à avoir à vous en servir.
+
+Ce dont vous avez besoin dans vos dépendances sont uniquement les modules jaxx-runtime-xxx.
+
+TODO A finir la présentation de la nouvelle architecture (dans la version 1.2).
+
+**Veuillez consulter la JavaDoc pour de plus ample détails sur les différentes
+librairies.**
+
+Nouvelles fonctionnalités
+-------------------------
+
+ * Core_
+
+ * I18n_
+
+ * JAXXContext_
+
+ * BeanValidator_
+
+ * NavigationTreeModel_
+
+.. _Core: Core.html
+
+.. _I18n: I18n.html
+
+.. _JAXXContext: JAXXContext.html
+
+.. _BeanValidator: BeanValidator.html
+
+.. _NavigationTreeModel: NavigationTreeModel.html
Property changes on: jaxx/trunk/src/site/rst/index.rst
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: jaxx/trunk/src/site/site.xml
===================================================================
--- jaxx/trunk/src/site/site.xml 2009-04-20 15:48:49 UTC (rev 1342)
+++ jaxx/trunk/src/site/site.xml 2009-04-20 15:49:30 UTC (rev 1343)
@@ -34,6 +34,7 @@
<item name="maven-jaxx-plugin" href="http://buix.labs.libre-entreprise.org/jaxx/maven-jaxx-plugin"/>
<item name="Labs" href="http://labs.libre-entreprise.org/"/>
<item name="${project.organization.name}" href="${project.organization.url}"/>
+ <item name="original JAXX" href="http://buix.labs.libre-entreprise.org/original-jaxx"/>
</links>
<menu ref="parent"/>
1
0
r1342 - in jaxx/trunk: jaxx-compiler-api/src/site jaxx-compiler-swing/src/site jaxx-compiler-validator/src/site jaxx-example/src/site jaxx-runtime-api/src/site jaxx-runtime-swing/src/site jaxx-runtime-validator/src/site jaxx-swing-action/src/site maven-jaxx-plugin/src/site src/site
by tchemit@users.labs.libre-entreprise.org April 20, 2009
by tchemit@users.labs.libre-entreprise.org April 20, 2009
April 20, 2009
Author: tchemit
Date: 2009-04-20 15:48:49 +0000 (Mon, 20 Apr 2009)
New Revision: 1342
Removed:
jaxx/trunk/jaxx-compiler-api/src/site/fr/
jaxx/trunk/jaxx-compiler-swing/src/site/fr/
jaxx/trunk/jaxx-compiler-validator/src/site/fr/
jaxx/trunk/jaxx-example/src/site/fr/
jaxx/trunk/jaxx-runtime-api/src/site/fr/
jaxx/trunk/jaxx-runtime-swing/src/site/fr/
jaxx/trunk/jaxx-runtime-validator/src/site/fr/
jaxx/trunk/jaxx-swing-action/src/site/fr/
jaxx/trunk/maven-jaxx-plugin/src/site/fr/
jaxx/trunk/src/site/fr/
Log:
bumps versions
use doxia-module-jrst
1
0
r1341 - in guix/trunk: . guix-compiler/src/main/java/org guix-compiler/src/test/java/org guix-maven-plugin/src/main/java/org guix-maven-plugin/src/test/java/org guix-test/src/main/java/org guix-test/src/test/java/org src/main/java/org
by kmorin@users.labs.libre-entreprise.org April 20, 2009
by kmorin@users.labs.libre-entreprise.org April 20, 2009
April 20, 2009
Author: kmorin
Date: 2009-04-20 12:49:24 +0000 (Mon, 20 Apr 2009)
New Revision: 1341
Removed:
guix/trunk/guik-parser/
guix/trunk/guix-compiler/src/main/java/org/codelutin/
guix/trunk/guix-compiler/src/test/java/org/codelutin/
guix/trunk/guix-maven-plugin/src/main/java/org/codelutin/
guix/trunk/guix-maven-plugin/src/test/java/org/codelutin/
guix/trunk/guix-test/src/main/java/org/codelutin/
guix/trunk/guix-test/src/test/java/org/codelutin/
guix/trunk/src/main/java/org/codelutin/
Log:
Suppression des dossiers vides et inutiles.
1
0
Author: kmorin
Date: 2009-04-20 12:36:50 +0000 (Mon, 20 Apr 2009)
New Revision: 1340
Modified:
guix/trunk/doc/guix.zargo
Log:
Modification du nom ModelObject en GuixModelObject
Ajout du champ javadoc dans le GuixModelObject
Modified: guix/trunk/doc/guix.zargo
===================================================================
(Binary files differ)
1
0
April 20, 2009
Author: kmorin
Date: 2009-04-20 12:33:41 +0000 (Mon, 20 Apr 2009)
New Revision: 1339
Modified:
guix/trunk/guix-test/pom.xml
Log:
Corrections dans le pom
Modified: guix/trunk/guix-test/pom.xml
===================================================================
--- guix/trunk/guix-test/pom.xml 2009-04-20 12:33:09 UTC (rev 1338)
+++ guix/trunk/guix-test/pom.xml 2009-04-20 12:33:41 UTC (rev 1339)
@@ -14,14 +14,6 @@
<artifactId>guix-test</artifactId>
- <dependencies>
- <dependency>
- <groupId>xpp3</groupId>
- <artifactId>xpp3</artifactId>
- <version>1.1.3.3</version>
- </dependency>
- </dependencies>
-
<!-- ************************************************************* -->
<!-- *** Project Information ************************************* -->
<!-- ************************************************************* -->
@@ -48,7 +40,7 @@
<plugins>
<plugin>
- <groupId>org.codelutin.guix</groupId>
+ <groupId>org.nuiton.guix</groupId>
<artifactId>guix-maven-plugin</artifactId>
<version>${project.version}</version>
<executions>
1
0
r1338 - in guix/trunk/guix-compiler: . src/main/java/org/nuiton/guix src/main/java/org/nuiton/guix/compiler src/main/java/org/nuiton/guix/model src/main/java/org/nuiton/guix/tags
by kmorin@users.labs.libre-entreprise.org April 20, 2009
by kmorin@users.labs.libre-entreprise.org April 20, 2009
April 20, 2009
Author: kmorin
Date: 2009-04-20 12:33:09 +0000 (Mon, 20 Apr 2009)
New Revision: 1338
Added:
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/GuixModelObject.java
Modified:
guix/trunk/guix-compiler/pom.xml
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java
guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/TagManager.java
Log:
Mise a jour de la version de XPP
Corrections du parcours des fichiers guix
Modified: guix/trunk/guix-compiler/pom.xml
===================================================================
--- guix/trunk/guix-compiler/pom.xml 2009-04-18 08:45:28 UTC (rev 1337)
+++ guix/trunk/guix-compiler/pom.xml 2009-04-20 12:33:09 UTC (rev 1338)
@@ -18,7 +18,7 @@
<dependency>
<groupId>xpp3</groupId>
<artifactId>xpp3</artifactId>
- <version>1.1.3.3</version>
+ <version>1.1.4c</version>
</dependency>
</dependencies>
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java 2009-04-18 08:45:28 UTC (rev 1337)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/GuixLauncher.java 2009-04-20 12:33:09 UTC (rev 1338)
@@ -4,9 +4,10 @@
*/
package org.nuiton.guix;
+import java.io.IOException;
import org.nuiton.guix.compiler.GuixCompiler;
-import org.codelutin.guix.compiler.*;
import java.io.File;
+import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -16,7 +17,9 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.guix.model.ClassDescriptor;
-import org.codelutin.guix.model.GuixModelObject;
+import org.nuiton.guix.model.GuixModelObject;
+import org.xmlpull.v1.XmlPullParserFactory;
+import org.xmlpull.v1.XmlSerializer;
/**
* Launch Guix files compilation
@@ -26,8 +29,8 @@
public class GuixLauncher {
/** log */
- /* protected static final Log log =
- LogFactory.getLog(GuixLauncher.class);*/
+ /* protected static final Log log =
+ LogFactory.getLog(GuixLauncher.class);*/
/** original list of files to compile */
protected final File[] files;
/** original list of classes to compile */
@@ -88,56 +91,65 @@
File file = filesIterator.next();
String className = classNamesIterator.next();
/*if (log.isDebugEnabled()) {
- log.debug("compile first pass for " + className);
+ log.debug("compile first pass for " + className);
}*/
if (!compiledFiles.contains(file)) {
compiled = true;
compiledFiles.add(file);
- }
- if (compilers.containsKey(className)) {
- //throw new CompilerException("Internal error: " + className + " is already being compiled, attempting to compile it again");
- }
- File destDir = targetDirectory;
- if (destDir != null) {
- int dotPos = className.lastIndexOf(".");
- if (dotPos != -1) {
- destDir = new File(destDir, className.substring(0, dotPos).replace('.', File.separatorChar));
+ File destDir = targetDirectory;
+ if (destDir != null) {
+ int dotPos = className.lastIndexOf(".");
+ if (dotPos != -1) {
+ destDir = new File(destDir, className.substring(0, dotPos).replace('.', File.separatorChar));
+ }
+ if (!destDir.exists() && !destDir.mkdirs()) {
+ //log.warn("couldn't create directory " + destDir);
+ System.out.println("couldn't create directory " + destDir);
+ continue;
+ }
+ } else {
+ //destDir = file.getParentFile();
}
- if (!destDir.exists() && !destDir.mkdirs()) {
- //log.warn("couldn't create directory " + destDir);
- System.out.println("couldn't create directory " + destDir);
- continue;
+ GuixCompiler compiler = new GuixCompiler(
+ file.getParentFile(), file, className, this);
+ //addProfileTime(compiler, currentPass.name() + "_start");
+ compilers.put(className, compiler);
+ GuixModelObject rootModelObject = compiler.compile();
+ rootModelObjects.add(rootModelObject);
+ //addProfileTime(compiler, currentPass.name() + "_end");
+ //assert !symbolTables.values().contains(compiler.getSymbolTable()) : "symbolTable is already registered";
+ //symbolTables.put(file, compiler.getSymbolTable());
+ if (compiler.isFailed()) {
+ success = false;
}
- } else {
- //destDir = file.getParentFile();
- }
- GuixCompiler compiler = new GuixCompiler(
- file.getParentFile(), file, className,this);
- //addProfileTime(compiler, currentPass.name() + "_start");
- compilers.put(className, compiler);
- GuixModelObject rootModelObject = compiler.compile();
- rootModelObjects.add(rootModelObject);
- //addProfileTime(compiler, currentPass.name() + "_end");
- //assert !symbolTables.values().contains(compiler.getSymbolTable()) : "symbolTable is already registered";
- //symbolTables.put(file, compiler.getSymbolTable());
- if (compiler.isFailed()) {
- success = false;
}
- //}
}
} while (compiled);
- for(GuixModelObject mo : rootModelObjects) {
- //log.trace("class : "
- System.out.println("class : "
- + mo.getClassDescriptor().getPackageName()+ "."
- + mo.getClassDescriptor().getName()
- + " extends "
- + mo.getClassDescriptor().getSuperClass().getPackageName()
- + "." + mo.getClassDescriptor().getSuperClass().getName());
-
+ XmlPullParserFactory factory =
+ XmlPullParserFactory.newInstance(
+ System.getProperty(XmlPullParserFactory.PROPERTY_NAME),
+ null);
+
+ for (GuixModelObject mo : rootModelObjects) {
+
+ File f = new File(mo.getClassDescriptor().getName() + "ModelTree.xml");
+ if (!f.exists()) {
+ f.createNewFile();
+ }
+ System.out.println(f.getAbsolutePath());
+
+ XmlSerializer serializer = factory.newSerializer();
+
+ serializer.setOutput(new PrintWriter(f));
+ serializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n");
+ serializer.setProperty("http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "\t");
+
+ writeModelTree(serializer, mo);
+
+ serializer.endDocument();
}
/*// pass 2
@@ -237,11 +249,45 @@
}
}
+ private void writeModelTree(XmlSerializer serializer, GuixModelObject mo) throws IOException {
+ serializer.startTag("", "Object");
+ if (mo.getId() != null && !mo.getId().equals("")) {
+ serializer.attribute("", "id", mo.getId());
+ }
+ serializer.text(mo.getJavadoc());
+ serializer.startTag("", "class");
+ serializer.startTag("", "name");
+ serializer.text(mo.getClassDescriptor().getName());
+ serializer.endTag("", "name");
+ serializer.startTag("", "package");
+ if (mo.getClassDescriptor().getPackageName() != null && !mo.getClassDescriptor().getPackageName().equals("")) {
+ serializer.text(mo.getClassDescriptor().getPackageName());
+ }
+ serializer.endTag("", "package");
+ serializer.startTag("", "script");
+ if (mo.getClassDescriptor().getScript() != null && !mo.getClassDescriptor().getScript().equals("")) {
+ serializer.text(mo.getClassDescriptor().getScript());
+ }
+ serializer.endTag("", "script");
+ serializer.startTag("", "superclass");
+ if (mo.getClassDescriptor().getSuperClass() != null) {
+ serializer.text(mo.getClassDescriptor().getSuperClass().getPackageName() + "." + mo.getClassDescriptor().getSuperClass().getName());
+ }
+ serializer.endTag("", "superclass");
+ serializer.endTag("", "class");
+
+ for (GuixModelObject child : mo.getChildren()) {
+ writeModelTree(serializer, child);
+ }
+
+
+ serializer.endTag("", "Object");
+
+ }
+
public boolean registerClassDescriptor(ClassDescriptor classDescriptor) {
int i = 0;
- while ((i < classDescriptors.size())
- && (!classDescriptors.get(i).getName().equals(classDescriptor.getName()))
- && (!classDescriptors.get(i).getPackageName().equals(classDescriptor.getPackageName()))) {
+ while ((i < classDescriptors.size()) && (!classDescriptors.get(i).getName().equals(classDescriptor.getName())) && ((classDescriptors.get(i).getPackageName() == null) || (classDescriptor.getPackageName() == null) || (!classDescriptors.get(i).getPackageName().equals(classDescriptor.getPackageName())))) {
i++;
}
//if the ClassDescriptor does not exist
@@ -250,16 +296,18 @@
return true;
}
if (classDescriptor.getScript() != null) {
- if(classDescriptors.get(i).getScript() == null)
+ if (classDescriptors.get(i).getScript() == null) {
classDescriptors.get(i).setScript(classDescriptor.getScript());
- else if (!classDescriptors.get(i).getScript().equals(classDescriptor.getScript()))
+ } else if (!classDescriptors.get(i).getScript().equals(classDescriptor.getScript())) {
return false;
+ }
}
- if(classDescriptor.getSuperClass() != null) {
- if (classDescriptors.get(i).getSuperClass() == null)
+ if (classDescriptor.getSuperClass() != null) {
+ if (classDescriptors.get(i).getSuperClass() == null) {
classDescriptors.get(i).setSuperClass(classDescriptor.getSuperClass());
- else if (!classDescriptors.get(i).getSuperClass().equals(classDescriptor.getSuperClass()))
+ } else if (!classDescriptors.get(i).getSuperClass().equals(classDescriptor.getSuperClass())) {
return false;
+ }
}
return true;
}
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java 2009-04-18 08:45:28 UTC (rev 1337)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/compiler/GuixCompiler.java 2009-04-20 12:33:09 UTC (rev 1338)
@@ -19,7 +19,6 @@
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
-import org.xmlpull.v1.builder.XmlPullElement;
/**
* Compiles Guix files into Java classes
@@ -31,10 +30,6 @@
/** flag to detec if an error occurs while compiling jaxx file */
protected boolean failed;
/** Used for error reporting purposes,
- * so we can report the right line number. */
- protected Stack<XmlPullElement> tagsBeingCompiled =
- new Stack<XmlPullElement>();
- /** Used for error reporting purposes,
* so we can report the right source file. */
protected Stack<File> sourceFiles = new Stack<File>();
/** XML parser of src file. */
@@ -42,7 +37,7 @@
private File src;
private String outputClassName;
private GuixLauncher launchor;
-
+
/*------------------------------------------------------------------------*/
/*-- Constructor methods -------------------------------------------------*/
/*------------------------------------------------------------------------*/
@@ -82,7 +77,7 @@
String nameSpace = xpp.getNamespace();
String localName = xpp.getName();
String packageName =
- getPackageName(nameSpace, localName);
+ resolvePackageName(nameSpace, localName);
GuixModelObject root = new GuixModelObject(
xpp.getAttributeValue("", "id"), doc.toString());
@@ -94,21 +89,29 @@
root.getClassDescriptor().setSuperClass(new ClassDescriptor(
localName, packageName));
root.setAttributeDescriptors(getAttributes(xpp));
+ root.setChildren(new ArrayList<GuixModelObject>());
- while(xpp.getEventType() != XmlPullParser.START_TAG)
+ do {
xpp.nextToken();
+ } while(xpp.getEventType() != XmlPullParser.START_TAG);
+
if(xpp.getName().equals("script")) {
xpp.nextToken();
- if(xpp.getEventType() == XmlPullParser.CDSECT)
+ if(xpp.getEventType() == XmlPullParser.CDSECT) {
root.getClassDescriptor().setScript(xpp.getText());
+ }
while((xpp.getEventType() != XmlPullParser.END_TAG)
- || (!xpp.getName().equals("script")))
+ || (!xpp.getName().equals("script"))) {
xpp.nextToken();
+ }
+ do {
+ xpp.nextToken();
+ } while(xpp.getEventType() != XmlPullParser.START_TAG
+ && xpp.getEventType() != XmlPullParser.END_DOCUMENT);
}
failed = launchor.registerClassDescriptor(root.getClassDescriptor());
- xpp.nextToken();
if (xpp.getEventType() == XmlPullParser.START_TAG) {
compile(xpp,root,doc.toString());
}
@@ -123,25 +126,28 @@
/*------------------------------------------------------------------------*/
/*-- Compile methods -----------------------------------------------------*/
/*------------------------------------------------------------------------*/
- public void compile(final XmlPullParser xpp, GuixModelObject previousMO,
+ private void compile(final XmlPullParser xpp, GuixModelObject previousMO,
String javaDoc) throws IOException, XmlPullParserException {
String nameSpace = xpp.getNamespace();
String localName = xpp.getName();
- String packageName = getPackageName(nameSpace, localName);
+ String packageName = resolvePackageName(nameSpace, localName);
nameSpace = packageName + ".*";
GuixModelObject mo = new GuixModelObject(xpp.getAttributeValue("","id"),javaDoc);
mo.setParent(previousMO);
mo.setClassDescriptor(new ClassDescriptor(localName, packageName));
previousMO.getChildren().add(mo);
+ mo.setChildren(new ArrayList<GuixModelObject>());
- failed = launchor.registerClassDescriptor(mo.getClassDescriptor());
+ failed = !launchor.registerClassDescriptor(mo.getClassDescriptor());
+
if(!failed) {
GuixModelObject prev = mo;
StringBuffer doc = new StringBuffer();
do {
- xpp.next();
+ xpp.nextToken();
+
if (xpp.getEventType() == XmlPullParser.END_TAG) {
prev = prev.getParent();
}
@@ -156,7 +162,7 @@
}
}
- private String getPackageName(String nameSpace, String localName) {
+ private String resolvePackageName(String nameSpace, String localName) {
// resolve class tags into fully-qualified class name
String packageName;
if (nameSpace != null && nameSpace.endsWith("*")) {
Added: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/GuixModelObject.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/GuixModelObject.java (rev 0)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/model/GuixModelObject.java 2009-04-20 12:33:09 UTC (rev 1338)
@@ -0,0 +1,75 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.nuiton.guix.model;
+
+import java.util.List;
+
+/**
+ *
+ * @author morin
+ */
+public class GuixModelObject {
+
+ private String id;
+ private GuixModelObject parent;
+ private List<GuixModelObject> children;
+ private ClassDescriptor classDescriptor;
+ private List<AttributeDescriptor> attributeDescriptors;
+ private String javadoc;
+
+ public GuixModelObject(String id, String javadoc) {
+ this.id = id;
+ this.javadoc = javadoc;
+ }
+
+ public List<AttributeDescriptor> getAttributeDescriptors() {
+ return attributeDescriptors;
+ }
+
+ public void setAttributeDescriptors(List<AttributeDescriptor> attributeDescriptors) {
+ this.attributeDescriptors = attributeDescriptors;
+ }
+
+ public List<GuixModelObject> getChildren() {
+ return children;
+ }
+
+ public void setChildren(List<GuixModelObject> children) {
+ this.children = children;
+ }
+
+ public ClassDescriptor getClassDescriptor() {
+ return classDescriptor;
+ }
+
+ public void setClassDescriptor(ClassDescriptor classDescriptor) {
+ this.classDescriptor = classDescriptor;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public GuixModelObject getParent() {
+ return parent;
+ }
+
+ public void setParent(GuixModelObject parent) {
+ this.parent = parent;
+ }
+
+ public String getJavadoc() {
+ return javadoc;
+ }
+
+ public void setJavadoc(String javadoc) {
+ this.javadoc = javadoc;
+ }
+}
Modified: guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/TagManager.java
===================================================================
--- guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/TagManager.java 2009-04-18 08:45:28 UTC (rev 1337)
+++ guix/trunk/guix-compiler/src/main/java/org/nuiton/guix/tags/TagManager.java 2009-04-20 12:33:09 UTC (rev 1338)
@@ -4,6 +4,8 @@
*/
package org.nuiton.guix.tags;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -381,9 +383,17 @@
}
}*/
- if (result != null && !result.equals(originalName))
- result = resolveClassName(result); // check for aliases against the new name as well
+ //if (result != null && !result.equals(originalName))
+ //result = resolveClassName(result); // check for aliases against the new name as well
+ Class clazz;
+ try {
+ clazz = Class.forName(name);
+ result = clazz.getCanonicalName();
+ } catch (ClassNotFoundException ex) {
+ result = null;
+ }
+
return result;
}
1
0
r1337 - jaxx/trunk/jaxx-runtime-validator-swing/src/site
by tchemit@users.labs.libre-entreprise.org April 18, 2009
by tchemit@users.labs.libre-entreprise.org April 18, 2009
April 18, 2009
Author: tchemit
Date: 2009-04-18 08:45:28 +0000 (Sat, 18 Apr 2009)
New Revision: 1337
Removed:
jaxx/trunk/jaxx-runtime-validator-swing/src/site/fr/
Log:
pas de site dans les modules
1
0
r1336 - in guix/trunk: . src/main/java/org src/main/java/org/nuiton src/test/java/org src/test/java/org/nuiton
by kmorin@users.labs.libre-entreprise.org April 17, 2009
by kmorin@users.labs.libre-entreprise.org April 17, 2009
April 17, 2009
Author: kmorin
Date: 2009-04-17 15:45:46 +0000 (Fri, 17 Apr 2009)
New Revision: 1336
Added:
guix/trunk/src/main/java/org/nuiton/
guix/trunk/src/main/java/org/nuiton/guix/
guix/trunk/src/test/java/org/nuiton/
guix/trunk/src/test/java/org/nuiton/guix/
Modified:
guix/trunk/pom.xml
Log:
Modification des packages en org.nuiton au lieu de org.codelutin
Modified: guix/trunk/pom.xml
===================================================================
--- guix/trunk/pom.xml 2009-04-17 15:45:31 UTC (rev 1335)
+++ guix/trunk/pom.xml 2009-04-17 15:45:46 UTC (rev 1336)
@@ -13,14 +13,14 @@
<version>3.4</version>
</parent>
- <groupId>org.codelutin.guix</groupId>
+ <groupId>org.nuiton.guix</groupId>
<artifactId>guix</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>guix-compiler</module>
<module>guix-maven-plugin</module>
- <module>guix-test</module>
+ <module>guix-test</module>
</modules>
<dependencies>
1
0