[e-cvs] cvs commit: e/src/safej/javax/swing/text AbstractDocument.safej AbstractDocument.safej AbstractDocument.safej AbstractDocument.safej AbstractDocument.safej AbstractDocument.safej AbstractWriter.safej AsyncBoxView.safej AsyncBoxView.safej AsyncBoxView.safej BoxView.safej ComponentView.safej CompositeView.safej DateFormatter.safej DefaultCaret.safej DefaultEditorKit.safej DefaultEditorKit.safej DefaultEditorKit.safej DefaultEditorKit.safej DefaultEditorKit.safej DefaultEditorKit.safej DefaultEditorKit.safej DefaultEditorKit.safej DefaultEditorKit.safej DefaultFormatter.safej DefaultFormatterFactory.safej DefaultHighlighter.safej DefaultHighlighter.safej DefaultStyledDocument.safej DefaultStyledDocument.safej DefaultStyledDocument.safej DefaultStyledDocument.safej DefaultTextUI.safej DocumentFilter.safej DocumentFilter.safej EditorKit.safej ElementIterator.safej FieldView.safej FlowView.safej FlowView.safej GapContent.safej GlyphView.safej GlyphView.safej IconView.safe! j InternationalFormatter.safej JTextComponent.safej JTextComponent.safej JTextComponent.safej LabelView.safej LayeredHighlighter.safej LayeredHighlighter.safej LayoutQueue.safej MaskFormatter.safej NavigationFilter.safej NavigationFilter.safej NumberFormatter.safej ParagraphView.safej PasswordView.safej PlainDocument.safej PlainView.safej Position.safej Segment.safej SimpleAttributeSet.safej StringContent.safej StyleConstants.safej StyleConstants.safej StyleConstants.safej StyleConstants.safej StyleConstants.safej StyleContext.safej StyleContext.safej StyleContext.safej StyledEditorKit.safej StyledEditorKit.safej StyledEditorKit.safej StyledEditorKit.safej StyledEditorKit.safej StyledEditorKit.safej StyledEditorKit.safej StyledEditorKit.safej StyledEditorKit.safej TabSet.safej TabStop.safej TableView.safej TableView.safej TableView.safej TextAction.safej Utilities.safej View.safej WrappedPlainView.safej ZoneView.safej

markm@eros.cs.jhu.edu markm@eros.cs.jhu.edu
Mon, 24 Dec 2001 00:04:45 -0500


markm       01/12/24 00:04:44

  Modified:    src/esrc/scripts tamingConverter.e
               src/jsrc/org/erights/e/elang/interp ScopeSetup.java
               src/jsrc/org/erights/e/elib/base MessageDesc.java
                        ParamDesc.java
               src/jsrc/org/erights/e/elib/prim StaticMaker.java
               src/jsrc/org/erights/e/elib/ref ExternalRef.java Ref.java
               src/jsrc/org/erights/e/elib/tables CompositeTwine.java
                        EList.java EmptyTwine.java LocatedTwine.java
                        SimpleTwine.java Twine.java
               src/jsrc/org/quasiliteral/term Term.java
               src/safej/java/awt AWTEvent.safej AWTEventMulticaster.safej
                        AWTKeyStroke.safej AWTPermission.safej
                        AlphaComposite.safej BasicStroke.safej
                        BorderLayout.safej
                        BufferCapabilities$FlipContents.safej
                        BufferCapabilities.safej Button.safej Canvas.safej
                        CardLayout.safej Checkbox.safej CheckboxGroup.safej
                        CheckboxMenuItem.safej Choice.safej Color.safej
                        Component.safej ComponentOrientation.safej
                        Container.safej
                        ContainerOrderFocusTraversalPolicy.safej
                        Cursor.safej DefaultFocusTraversalPolicy.safej
                        DefaultKeyboardFocusManager.safej Dialog.safej
                        Dimension.safej DisplayMode.safej Event.safej
                        EventQueue.safej FileDialog.safej FlowLayout.safej
                        FocusTraversalPolicy.safej Font.safej
                        FontMetrics.safej Frame.safej GradientPaint.safej
                        Graphics.safej Graphics2D.safej
                        GraphicsConfigTemplate.safej
                        GraphicsConfiguration.safej GraphicsDevice.safej
                        GraphicsEnvironment.safej GridBagConstraints.safej
                        GridBagLayout.safej GridLayout.safej Image.safej
                        ImageCapabilities.safej Insets.safej
                        JobAttributes$DefaultSelectionType.safej
                        JobAttributes$DestinationType.safej
                        JobAttributes$DialogType.safej
                        JobAttributes$MultipleDocumentHandlingType.safej
                        JobAttributes$SidesType.safej JobAttributes.safej
                        KeyEventDispatcher.safej KeyboardFocusManager.safej
                        Label.safej List.safej MediaTracker.safej
                        Menu.safej MenuBar.safej MenuComponent.safej
                        MenuItem.safej MenuShortcut.safej
                        PageAttributes$ColorType.safej
                        PageAttributes$MediaType.safej
                        PageAttributes$OrientationRequestedType.safej
                        PageAttributes$OriginType.safej
                        PageAttributes$PrintQualityType.safej
                        PageAttributes.safej Panel.safej Point.safej
                        Polygon.safej PopupMenu.safej PrintJob.safej
                        Rectangle.safej RenderingHints$Key.safej
                        RenderingHints.safej Robot.safej ScrollPane.safej
                        ScrollPaneAdjustable.safej Scrollbar.safej
                        SystemColor.safej TextArea.safej
                        TextComponent.safej TextField.safej
                        TexturePaint.safej Toolkit.safej Window.safej
               src/safej/java/awt/event AWTEventListenerProxy.safej
                        ActionEvent.safej AdjustmentEvent.safej
                        ComponentAdapter.safej ComponentEvent.safej
                        ContainerAdapter.safej ContainerEvent.safej
                        FocusAdapter.safej FocusEvent.safej
                        HierarchyBoundsAdapter.safej HierarchyEvent.safej
                        InputEvent.safej InputMethodEvent.safej
                        InvocationEvent.safej ItemEvent.safej
                        KeyAdapter.safej KeyEvent.safej MouseAdapter.safej
                        MouseEvent.safej MouseMotionAdapter.safej
                        MouseWheelEvent.safej PaintEvent.safej
                        TextEvent.safej WindowAdapter.safej
                        WindowEvent.safej
               src/safej/javax/swing AbstractAction.safej
                        AbstractButton.safej AbstractCellEditor.safej
                        AbstractListModel.safej AbstractSpinnerModel.safej
                        ActionMap.safej BorderFactory.safej
                        Box$Filler.safej Box.safej BoxLayout.safej
                        ButtonGroup.safej CellRendererPane.safej
                        ComponentInputMap.safej DebugGraphics.safej
                        DefaultBoundedRangeModel.safej
                        DefaultButtonModel.safej DefaultCellEditor.safej
                        DefaultComboBoxModel.safej
                        DefaultDesktopManager.safej
                        DefaultFocusManager.safej
                        DefaultListCellRenderer$UIResource.safej
                        DefaultListCellRenderer.safej
                        DefaultListModel.safej
                        DefaultListSelectionModel.safej
                        DefaultSingleSelectionModel.safej
                        FocusManager.safej GrayFilter.safej ImageIcon.safej
                        InputMap.safej InputVerifier.safej
                        InternalFrameFocusTraversalPolicy.safej
                        JApplet.safej JButton.safej JCheckBox.safej
                        JCheckBoxMenuItem.safej JColorChooser.safej
                        JComboBox.safej
                        JComponent$AccessibleJComponent.safej
                        JComponent.safej JDesktopPane.safej JDialog.safej
                        JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink.safej
                        JEditorPane.safej JFileChooser.safej
                        JFormattedTextField$AbstractFormatter.safej
                        JFormattedTextField$AbstractFormatterFactory.safej
                        JFormattedTextField.safej JFrame.safej
                        JInternalFrame$JDesktopIcon.safej
                        JInternalFrame.safej JLabel.safej
                        JLayeredPane.safej JList.safej JMenu.safej
                        JMenuBar.safej JMenuItem.safej JOptionPane.safej
                        JPanel.safej JPasswordField.safej
                        JPopupMenu$Separator.safej JPopupMenu.safej
                        JProgressBar.safej JRadioButton.safej
                        JRadioButtonMenuItem.safej JRootPane.safej
                        JScrollBar.safej JScrollPane.safej JSeparator.safej
                        JSlider.safej JSpinner$DateEditor.safej
                        JSpinner$DefaultEditor.safej
                        JSpinner$ListEditor.safej
                        JSpinner$NumberEditor.safej JSpinner.safej
                        JSplitPane.safej JTabbedPane.safej JTable.safej
                        JTextArea.safej JTextField.safej JTextPane.safej
                        JToggleButton$ToggleButtonModel.safej
                        JToggleButton.safej JToolBar$Separator.safej
                        JToolBar.safej JToolTip.safej
                        JTree$DynamicUtilTreeNode.safej JTree.safej
                        JViewport$ViewListener.safej JViewport.safej
                        JWindow.safej KeyStroke.safej
                        LayoutFocusTraversalPolicy.safej LookAndFeel.safej
                        MenuSelectionManager.safej OverlayLayout.safej
                        Popup.safej PopupFactory.safej
                        ProgressMonitor.safej
                        ProgressMonitorInputStream.safej
                        RepaintManager.safej
                        ScrollPaneLayout$UIResource.safej
                        ScrollPaneLayout.safej SizeRequirements.safej
                        SizeSequence.safej
                        SortingFocusTraversalPolicy.safej
                        SpinnerDateModel.safej SpinnerListModel.safej
                        SpinnerNumberModel.safej Spring.safej
                        SpringLayout$Constraints.safej SpringLayout.safej
                        SwingUtilities.safej Timer.safej
                        ToolTipManager.safej TransferHandler.safej
                        UIDefaults$LazyInputMap.safej
                        UIDefaults$ProxyLazyValue.safej UIDefaults.safej
                        UIManager$LookAndFeelInfo.safej UIManager.safej
                        ViewportLayout.safej
               src/safej/javax/swing/event AncestorEvent.safej
                        CaretEvent.safej ChangeEvent.safej
                        DocumentEvent$EventType.safej
                        EventListenerList.safej
                        HyperlinkEvent$EventType.safej HyperlinkEvent.safej
                        InternalFrameAdapter.safej InternalFrameEvent.safej
                        ListDataEvent.safej ListSelectionEvent.safej
                        MenuDragMouseEvent.safej MenuEvent.safej
                        MenuKeyEvent.safej MouseInputAdapter.safej
                        PopupMenuEvent.safej
                        SwingPropertyChangeSupport.safej
                        TableColumnModelEvent.safej TableModelEvent.safej
                        TreeExpansionEvent.safej TreeModelEvent.safej
                        TreeSelectionEvent.safej UndoableEditEvent.safej
               src/safej/javax/swing/text
                        AbstractDocument$AbstractElement.safej
                        AbstractDocument$BranchElement.safej
                        AbstractDocument$DefaultDocumentEvent.safej
                        AbstractDocument$ElementEdit.safej
                        AbstractDocument$LeafElement.safej
                        AbstractDocument.safej AbstractWriter.safej
                        AsyncBoxView$ChildLocator.safej
                        AsyncBoxView$ChildState.safej AsyncBoxView.safej
                        BoxView.safej ComponentView.safej
                        CompositeView.safej DateFormatter.safej
                        DefaultCaret.safej
                        DefaultEditorKit$BeepAction.safej
                        DefaultEditorKit$CopyAction.safej
                        DefaultEditorKit$CutAction.safej
                        DefaultEditorKit$DefaultKeyTypedAction.safej
                        DefaultEditorKit$InsertBreakAction.safej
                        DefaultEditorKit$InsertContentAction.safej
                        DefaultEditorKit$InsertTabAction.safej
                        DefaultEditorKit$PasteAction.safej
                        DefaultEditorKit.safej DefaultFormatter.safej
                        DefaultFormatterFactory.safej
                        DefaultHighlighter$DefaultHighlightPainter.safej
                        DefaultHighlighter.safej
                        DefaultStyledDocument$AttributeUndoableEdit.safej
                        DefaultStyledDocument$ElementBuffer.safej
                        DefaultStyledDocument$ElementSpec.safej
                        DefaultStyledDocument.safej DefaultTextUI.safej
                        DocumentFilter$FilterBypass.safej
                        DocumentFilter.safej EditorKit.safej
                        ElementIterator.safej FieldView.safej
                        FlowView$FlowStrategy.safej FlowView.safej
                        GapContent.safej GlyphView$GlyphPainter.safej
                        GlyphView.safej IconView.safej
                        InternationalFormatter.safej
                        JTextComponent$AccessibleJTextComponent.safej
                        JTextComponent$KeyBinding.safej
                        JTextComponent.safej LabelView.safej
                        LayeredHighlighter$LayerPainter.safej
                        LayeredHighlighter.safej LayoutQueue.safej
                        MaskFormatter.safej
                        NavigationFilter$FilterBypass.safej
                        NavigationFilter.safej NumberFormatter.safej
                        ParagraphView.safej PasswordView.safej
                        PlainDocument.safej PlainView.safej
                        Position$Bias.safej Segment.safej
                        SimpleAttributeSet.safej StringContent.safej
                        StyleConstants$CharacterConstants.safej
                        StyleConstants$ColorConstants.safej
                        StyleConstants$FontConstants.safej
                        StyleConstants$ParagraphConstants.safej
                        StyleConstants.safej StyleContext$NamedStyle.safej
                        StyleContext$SmallAttributeSet.safej
                        StyleContext.safej
                        StyledEditorKit$AlignmentAction.safej
                        StyledEditorKit$BoldAction.safej
                        StyledEditorKit$FontFamilyAction.safej
                        StyledEditorKit$FontSizeAction.safej
                        StyledEditorKit$ForegroundAction.safej
                        StyledEditorKit$ItalicAction.safej
                        StyledEditorKit$StyledTextAction.safej
                        StyledEditorKit$UnderlineAction.safej
                        StyledEditorKit.safej TabSet.safej TabStop.safej
                        TableView$TableCell.safej TableView$TableRow.safej
                        TableView.safej TextAction.safej Utilities.safej
                        View.safej WrappedPlainView.safej ZoneView.safej
  Log:
  Using safej info to decide on importability, but not yet for methods

Revision  Changes    Path
1.2       +76 -1     e/src/esrc/scripts/tamingConverter.e

Index: tamingConverter.e
===================================================================
RCS file: /cvs/e/src/esrc/scripts/tamingConverter.e,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- tamingConverter.e	2001/12/13 05:01:31	1.1
+++ tamingConverter.e	2001/12/24 05:04:28	1.2
@@ -68,6 +68,80 @@
     dir[path] textWriter()
 }
 
+def simpMethod(term`method(static(@oldStatic),
+                           signature(@sig),
+                           suppress(@oldSuppress),
+                           comment(@oldMethComment?))`) :any {
+    def newStatic := switch (oldStatic) { 
+        match term`"true"`  { [term`static`] }
+        match term`"false"` { [] }
+    }
+    def newSuppress := switch (oldSuppress) {
+        match term`"true"`  { [term`suppress`] }
+        match term`"false"` { [] }
+    }
+    def newMethComment := switch (oldMethComment) {
+        match [comment] { [term`comment($comment)`] }
+        match []        { [] }
+    }
+    term`method($newStatic?, $newSuppress?, $sig, $newMethComment?)`
+}
+
+def simpClass(term`class(name(@name),
+                         method@oldMeths*,
+                         byproxy(@oldByproxy?),
+                         selfless(@oldSelfless?),
+                         byconstruction(@oldByconstruction?),
+                         persistent(@oldPersistent?),
+                         safe(@oldSafe),
+                         comment(@oldClassComment?))`) :any {
+    def staticMeths := [] diverge()
+    def instMeths := [] diverge()
+    for oldMeth in oldMeths {
+        def newMeth := simpMethod(oldMeth)
+        if (newMeth =~ term`method(static, @rest*)`) {
+            staticMeths push(term`method($rest*)`)
+        } else {
+            instMeths push(newMeth)
+        }
+    }
+    def deems := [] diverge()
+    switch (oldByproxy) {
+        match [term`"true"`]  { deems push(term`PassByProxy`) }
+        match [term`"false"`] {}
+        match []              {}
+    }
+    switch (oldSelfless) {
+        match [term`"true"`]  { deems push(term`Selfless`) }
+        match [term`"false"`] {}
+        match []              {}
+    }
+    switch (oldByconstruction) {
+        match [term`"true"`]  { deems push(term`PassByConstruction`) }
+        match [term`"false"`] {}
+        match []              {}
+    }
+    switch (oldPersistent) {
+        match [term`"true"`]  { deems push(term`Persistent`) }
+        match [term`"false"`] {}
+        match []              {}
+    }
+    def newSafe := switch (oldSafe) {
+        match term`"true"`  { [term`safe`] }
+        match term`"false"` { [] }
+    }
+    def newClassComment := switch (oldClassComment) {
+        match [comment] { [term`comment($comment)`] }
+        match []        { [] }
+    }
+    term`class($newSafe?,
+               $name,
+               deem($deems*),
+               statics($staticMeths*),
+               methods($instMeths*),
+               $newClassComment?)`
+}
+
 def convert(smlFiledir, safejRootDir) {
     if (smlFiledir isDirectory()) {
         for sub in smlFiledir {
@@ -75,11 +149,12 @@
         }
     } else if (smlFiledir getName() =~ `@_.txt`) {
         def tree := qsml2term(smlFiledir getText())
+        def simp := simpClass(tree)
         def fqname := fqn(tree)
         def pathName := path(fqname)
         def out := openForWriting(safejRootDir, pathName)
         try {
-            tree prettyPrintOn(out, false)
+            simp prettyPrintOn(out, false)
         } finally {
             out close()
         }



1.83      +5 -5      e/src/jsrc/org/erights/e/elang/interp/ScopeSetup.java

Index: ScopeSetup.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/interp/ScopeSetup.java,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -r1.82 -r1.83
--- ScopeSetup.java	2001/12/19 10:18:07	1.82
+++ ScopeSetup.java	2001/12/24 05:04:28	1.83
@@ -120,16 +120,16 @@
                 "}}");
 
         um.comp("MapMaker", ConstMap.GetMaker());
-        um.comp("TwineMaker", Twine.TwineMaker);
+        um.comp("TwineMaker", Twine.GetTwineMaker());
         um.comp("SourceSpanMaker", SourceSpan.SourceSpanMaker);
-        um.init("Ref", Ref.RefMaker);          // not uconstant??
+        um.init("Ref", Ref.GetRefMaker());          // not uconstant??
         um.init("equalizer", Equalizer.make());
 
-        um.init("PromiseMaker", Ref.RefMaker); //XXX deprecated?
+        um.init("PromiseMaker", Ref.GetRefMaker()); //XXX deprecated?
 
         um.comp("ProtocolDescMaker", ProtocolDesc.ProtocolDescMaker);
-        um.comp("MessageDescMaker", MessageDesc.MessageDescMaker);
-        um.comp("ParamDescMaker", ParamDesc.ParamDescMaker);
+        um.comp("MessageDescMaker", MessageDesc.GetMessageDescMaker());
+        um.comp("ParamDescMaker", ParamDesc.GetParamDescMaker());
         um.comp("settable", SettableSlotMaker.THE_ONE);
         um.comp("final", FinalSlotMaker.THE_ONE);
         um.comp("defineSlot", SlotDefiner.THE_ONE);



1.16      +11 -2     e/src/jsrc/org/erights/e/elib/base/MessageDesc.java

Index: MessageDesc.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/base/MessageDesc.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- MessageDesc.java	2001/12/19 10:18:07	1.15
+++ MessageDesc.java	2001/12/24 05:04:28	1.16
@@ -40,8 +40,17 @@
     /**
      *
      */
-    static public final StaticMaker MessageDescMaker =
-      StaticMaker.make(MessageDesc.class);
+    static private StaticMaker OptMessageDescMaker = null;
+
+    /**
+     *
+     */
+    static public StaticMaker GetMessageDescMaker() {
+        if (null == OptMessageDescMaker) {
+            OptMessageDescMaker = StaticMaker.make(MessageDesc.class);
+        }
+        return OptMessageDescMaker;
+    }
 
     private String myDocComment;
 



1.16      +8 -2      e/src/jsrc/org/erights/e/elib/base/ParamDesc.java

Index: ParamDesc.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/base/ParamDesc.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- ParamDesc.java	2001/12/19 10:18:07	1.15
+++ ParamDesc.java	2001/12/24 05:04:28	1.16
@@ -35,8 +35,14 @@
  */
 public class ParamDesc implements Persistent {
 
-    static public final StaticMaker ParamDescMaker =
-      StaticMaker.make(ParamDesc.class);
+    static private StaticMaker OptParamDescMaker = null;
+
+    static public StaticMaker GetParamDescMaker() {
+        if (null == OptParamDescMaker) {
+            OptParamDescMaker = StaticMaker.make(ParamDesc.class);
+        }
+        return OptParamDescMaker;
+    }
 
     /** @serial Writes "_" for anonymous parameter */
     private String myName;



1.28      +100 -6    e/src/jsrc/org/erights/e/elib/prim/StaticMaker.java

Index: StaticMaker.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/StaticMaker.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- StaticMaker.java	2001/12/18 05:24:42	1.27
+++ StaticMaker.java	2001/12/24 05:04:28	1.28
@@ -20,6 +20,8 @@
 */
 
 import org.erights.e.develop.exception.ThrowableSugar;
+import org.erights.e.develop.exception.ExceptionMgr;
+import org.erights.e.develop.format.StringHelper;
 import org.erights.e.elib.base.Callable;
 import org.erights.e.elib.base.ClassDesc;
 import org.erights.e.elib.base.MessageDesc;
@@ -30,15 +32,27 @@
 import org.erights.e.elib.serial.PassByConstruction;
 import org.erights.e.elib.serial.Persistent;
 import org.erights.e.elib.tables.ConstList;
-import org.erights.e.elib.tables.ConstSet;
 import org.erights.e.elib.tables.EMap;
 import org.erights.e.elib.tables.FlexList;
 import org.erights.e.elib.tables.FlexMap;
 import org.erights.e.elib.tables.FlexSet;
+import org.erights.e.elib.tables.IdentityCacheTable;
+import org.erights.e.elib.tables.Twine;
 import org.erights.e.elib.util.AlreadyDefinedException;
 import org.erights.e.elib.util.ClassCache;
+import org.erights.e.meta.java.net.URLSugar;
+import org.quasiliteral.term.Term;
+import org.quasiliteral.term.TermBuilder;
+import org.quasiliteral.term.TermParser;
+import org.quasiliteral.term.QuasiBuilder;
+import org.quasiliteral.term.QuasiBuilderAdaptor;
+import org.quasiliteral.astro.AstroSchema;
+import org.quasiliteral.astro.BaseSchema;
+import org.quasiliteral.astro.AstroBuilder;
 
 import java.io.ObjectStreamException;
+import java.io.IOException;
+import java.net.URL;
 
 /**
  * How a Java class's static methods are made accessible to E
@@ -110,17 +124,84 @@
         "org.capml.quasi.XMLQuasiParser",
     };
 
-    static private final ConstSet ApprovedClasses;
+    static private final FlexSet ApprovedClasses;
 
     static {
         int len = ApprovedClassList.length;
-        FlexSet set = FlexSet.fromType(String.class, len);
+        ApprovedClasses = FlexSet.fromType(String.class, len);
         for (int i = 0; i < len; i++) {
-            set.addElement(ApprovedClassList[i], true);
+            ApprovedClasses.addElement(ApprovedClassList[i], true);
         }
-        ApprovedClasses = set.snapshot();
     }
 
+    static private final IdentityCacheTable SAFEJ_CACHE =
+      new IdentityCacheTable(Term.class, 100);
+
+    static private final String[] SafejTagNames = {
+        "LiteralChar",
+        "LiteralInteger",
+        "LiteralFloat64",
+        "LiteralString",
+
+        "class",
+        "name",
+        "method",
+        "static",
+        "signature",
+        "suppress",
+        "comment",
+        "byproxy",
+        "selfless",
+        "byconstruction",
+        "persistent",
+        "safe"
+    };
+
+    /**
+     *
+     */
+    static public final AstroSchema SAFEJ_SCHEMA =
+      new BaseSchema("safej", ConstList.fromArray(SafejTagNames));
+
+    /**
+     *
+     */
+    static public final AstroBuilder SAFEJ_BUILDER =
+      new TermBuilder(SAFEJ_SCHEMA);
+
+    /**
+     *
+     */
+    static public final QuasiBuilder SAFEJ_QBUILDER =
+      new QuasiBuilderAdaptor(SAFEJ_BUILDER);
+
+    /**
+     *
+     */
+    static public Term getOptSafej(String fqn) {
+        Twine tfqn = Twine.fromString(fqn);
+        Term optResult = (Term)SAFEJ_CACHE.get(tfqn, null);
+        if (null != optResult) {
+            return optResult;
+        }
+        String path = StringHelper.replaceAll(fqn, ".", "/") + ".safej";
+        URL optTermURL = ClassLoader.getSystemResource(path);
+        if (null == optTermURL) {
+            return null;
+        }
+        String termSrc;
+        try {
+            termSrc = URLSugar.getText(optTermURL);
+        } catch (IOException ioe) {
+            throw ExceptionMgr.asSafe(ioe);
+        }
+//        Term result = (Term)TermParser.run(Twine.fromString(termSrc),
+//                                           SAFEJ_QBUILDER);
+        Term result = (Term)TermParser.run(Twine.fromString(termSrc));
+        SAFEJ_CACHE.put(tfqn, result);
+        return result;
+    }
+
     /**
      * Is clazz approved as safe? <p>
      *
@@ -128,11 +209,24 @@
      * provides no authority.
      */
     static public boolean approve(Class clazz) {
+        String fqn = clazz.getName();
+        if (ApprovedClasses.contains(fqn)) {
+            return true;
+        }
         if (clazz.isArray()) {
             //Array types are safe
+            ApprovedClasses.addElement(fqn, true);
+            return true;
+        }
+        Term optTerm = getOptSafej(fqn);
+        if (null == optTerm) {
+            return false;
+        }
+        Term arg0 = (Term)optTerm.getArgs().get(0);
+        if (arg0.getTag().getTagName() == "safe") {
             return true;
         }
-        return ApprovedClasses.contains(clazz.getName());
+        return false;
     }
 
     /**



1.5       +1 -1      e/src/jsrc/org/erights/e/elib/ref/ExternalRef.java

Index: ExternalRef.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/ExternalRef.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ExternalRef.java	2001/12/02 06:01:46	1.4
+++ ExternalRef.java	2001/12/24 05:04:28	1.5
@@ -139,7 +139,7 @@
             //called from outside my target's vat's thread
             Waiter waiter = new Waiter();
             Object[] args = { myTarget, waiter };
-            myTargetsRunner.sendAllOnly(Ref.RefMaker,
+            myTargetsRunner.sendAllOnly(Ref.GetRefMaker(),
                                         "whenResolvedOnly",
                                         args);
             waiter.waitFor();



1.35      +11 -2     e/src/jsrc/org/erights/e/elib/ref/Ref.java

Index: Ref.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/Ref.java,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- Ref.java	2001/12/02 06:01:46	1.34
+++ Ref.java	2001/12/24 05:04:28	1.35
@@ -60,8 +60,17 @@
  */
 public abstract class Ref implements Callable {
 
-    static public final StaticMaker RefMaker
-      = StaticMaker.make(Ref.class);
+    /**
+     * Initialized lazily to avoid a circular initialization problem
+     */
+    static private StaticMaker OptRefMaker = null;
+
+    static public StaticMaker GetRefMaker() {
+        if (null == OptRefMaker) {
+            OptRefMaker = StaticMaker.make(Ref.class);
+        }
+        return OptRefMaker;
+    }
 
     static public final String NEAR = "NEAR";
 



1.16      +1 -1      e/src/jsrc/org/erights/e/elib/tables/CompositeTwine.java

Index: CompositeTwine.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/tables/CompositeTwine.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- CompositeTwine.java	2001/12/02 06:01:47	1.15
+++ CompositeTwine.java	2001/12/24 05:04:28	1.16
@@ -54,7 +54,7 @@
      * 'TwineMaker fromParts(myParts)'
      */
     public Object[] getCanonicalState() {
-        Object[] result = { TwineMaker, "fromParts", myParts };
+        Object[] result = { GetTwineMaker(), "fromParts", myParts };
         return result;
     }
 



1.36      +7 -0      e/src/jsrc/org/erights/e/elib/tables/EList.java

Index: EList.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/tables/EList.java,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- EList.java	2001/12/17 16:49:47	1.35
+++ EList.java	2001/12/24 05:04:28	1.36
@@ -535,4 +535,11 @@
         }
         out.print(right);
     }
+
+    /**
+     *
+     */
+    public String toString() {
+        return E.toString(this);
+    }
 }



1.10      +1 -1      e/src/jsrc/org/erights/e/elib/tables/EmptyTwine.java

Index: EmptyTwine.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/tables/EmptyTwine.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- EmptyTwine.java	2001/12/02 06:01:47	1.9
+++ EmptyTwine.java	2001/12/24 05:04:28	1.10
@@ -45,7 +45,7 @@
      *
      */
     static private final Object[] CanonicalState =
-      { TwineMaker, "fromString", "" };
+      { GetTwineMaker(), "fromString", "" };
 
     /**
      *



1.13      +1 -1      e/src/jsrc/org/erights/e/elib/tables/LocatedTwine.java

Index: LocatedTwine.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/tables/LocatedTwine.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- LocatedTwine.java	2001/12/02 06:01:47	1.12
+++ LocatedTwine.java	2001/12/24 05:04:28	1.13
@@ -59,7 +59,7 @@
      * 'TwineMaker fromString(myStr, mySpan)'
      */
     public Object[] getCanonicalState() {
-        Object[] result = { TwineMaker, "fromString", myStr, mySpan };
+        Object[] result = { GetTwineMaker(), "fromString", myStr, mySpan };
         return result;
     }
 



1.13      +1 -1      e/src/jsrc/org/erights/e/elib/tables/SimpleTwine.java

Index: SimpleTwine.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/tables/SimpleTwine.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- SimpleTwine.java	2001/12/02 06:01:47	1.12
+++ SimpleTwine.java	2001/12/24 05:04:28	1.13
@@ -51,7 +51,7 @@
      * 'TwineMaker fromString(myStr)'
      */
     public Object[] getCanonicalState() {
-        Object[] result = { TwineMaker, "fromString", myStr };
+        Object[] result = { GetTwineMaker(), "fromString", myStr };
         return result;
     }
 



1.26      +9 -3      e/src/jsrc/org/erights/e/elib/tables/Twine.java

Index: Twine.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/tables/Twine.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- Twine.java	2001/12/02 06:01:47	1.25
+++ Twine.java	2001/12/24 05:04:28	1.26
@@ -53,10 +53,16 @@
     static private final long serialVersionUID = 5436911677426527143L;
 
     /**
-     *
+     * Initialized lazily to avoid a circular initialization problem
      */
-    static public final StaticMaker TwineMaker =
-      StaticMaker.make(Twine.class);
+    static private StaticMaker OptTwineMaker = null;
+
+    static public StaticMaker GetTwineMaker() {
+        if (null == OptTwineMaker) {
+            OptTwineMaker = StaticMaker.make(Twine.class);
+        }
+        return OptTwineMaker;
+    }
 
     /**
      * Package scoped to deter the creation of any other immediate subclasses



1.22      +6 -4      e/src/jsrc/org/quasiliteral/term/Term.java

Index: Term.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/quasiliteral/term/Term.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- Term.java	2001/12/22 05:46:10	1.21
+++ Term.java	2001/12/24 05:04:30	1.22
@@ -43,10 +43,9 @@
   implements Selfless, PassByConstruction, Persistent, Astro {
 
     /**
-     *
+     * Initialized lazily to avoid a circularity.
      */
-    static public final StaticMaker TermMaker =
-      StaticMaker.make(Term.class);
+    static private StaticMaker OptTermMaker = null;
 
     /**
      * @serial Represents the token-type of the functor of this term.
@@ -116,8 +115,11 @@
      * Uses 'TermMaker new(myTag, myOptData, mySource, myArgs)'
      */
     public Object[] getCanonicalState() {
+        if (null == OptTermMaker) {
+            OptTermMaker = StaticMaker.make(Term.class);
+        }
         Object[] result = {
-            TermMaker, "new", myTag, myOptData, mySource, myArgs
+            OptTermMaker, "new", myTag, myOptData, mySource, myArgs
         };
         return result;
     }



1.2       +8 -31     e/src/safej/java/awt/AWTEvent.safej

Index: AWTEvent.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/AWTEvent.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AWTEvent.safej	2001/12/13 05:01:31	1.1
+++ AWTEvent.safej	2001/12/24 05:04:30	1.2
@@ -1,31 +1,8 @@
-class(name("java.awt.AWTEvent"),
-      method(static("true"),
-             signature("new(Event)"),
-             suppress("true"),
-             comment),
-      method(static("true"),
-             signature("new(Object, int)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setSource(Object)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getID()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("toString()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("paramString()"),
-             suppress("true"),
-             comment),
-      byproxy,
-      selfless,
-      byconstruction,
-      persistent,
-      safe("false"),
-      comment)
\ No newline at end of file
+class("java.awt.AWTEvent",
+      deem,
+      statics(method(suppress, "new(Event)"),
+              method(suppress, "new(Object, int)")),
+      methods(method(suppress, "setSource(Object)"),
+              method(suppress, "getID()"),
+              method(suppress, "toString()"),
+              method(suppress, "paramString()")))
\ No newline at end of file



1.2       +75 -294   e/src/safej/java/awt/AWTEventMulticaster.safej

Index: AWTEventMulticaster.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/AWTEventMulticaster.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AWTEventMulticaster.safej	2001/12/13 05:01:31	1.1
+++ AWTEventMulticaster.safej	2001/12/24 05:04:30	1.2
@@ -1,295 +1,76 @@
-class(name("java.awt.AWTEventMulticaster"),
-      method(static("false"),
-             signature("componentResized(ComponentEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("componentMoved(ComponentEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("componentShown(ComponentEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("componentHidden(ComponentEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("componentAdded(ContainerEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("componentRemoved(ContainerEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("focusGained(FocusEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("focusLost(FocusEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("keyTyped(KeyEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("keyPressed(KeyEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("keyReleased(KeyEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("mouseClicked(MouseEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("mousePressed(MouseEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("mouseReleased(MouseEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("mouseEntered(MouseEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("mouseExited(MouseEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("mouseDragged(MouseEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("mouseMoved(MouseEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("windowOpened(WindowEvent)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("windowClosing(WindowEvent)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("windowClosed(WindowEvent)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("windowIconified(WindowEvent)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("windowDeiconified(WindowEvent)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("windowActivated(WindowEvent)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("windowDeactivated(WindowEvent)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("windowStateChanged(WindowEvent)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("windowGainedFocus(WindowEvent)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("windowLostFocus(WindowEvent)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("actionPerformed(ActionEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("itemStateChanged(ItemEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("adjustmentValueChanged(AdjustmentEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("textValueChanged(TextEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("inputMethodTextChanged(InputMethodEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("caretPositionChanged(InputMethodEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("hierarchyChanged(HierarchyEvent)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("ancestorMoved(HierarchyEvent)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("ancestorResized(HierarchyEvent)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("mouseWheelMoved(MouseWheelEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("add(ComponentListener, ComponentListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("add(ContainerListener, ContainerListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("add(FocusListener, FocusListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("add(KeyListener, KeyListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("add(MouseListener, MouseListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("add(MouseMotionListener, MouseMotionListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("add(WindowListener, WindowListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("add(WindowStateListener, WindowStateListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("add(WindowFocusListener, WindowFocusListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("add(ActionListener, ActionListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("add(ItemListener, ItemListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("add(AdjustmentListener, AdjustmentListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("add(TextListener, TextListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("add(InputMethodListener, InputMethodListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("add(HierarchyListener, HierarchyListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("add(HierarchyBoundsListener, HierarchyBoundsListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("add(MouseWheelListener, MouseWheelListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("remove(ComponentListener, ComponentListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("remove(ContainerListener, ContainerListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("remove(FocusListener, FocusListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("remove(KeyListener, KeyListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("remove(MouseListener, MouseListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("remove(MouseMotionListener, MouseMotionListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("remove(WindowListener, WindowListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("remove(WindowStateListener, WindowStateListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("remove(WindowFocusListener, WindowFocusListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("remove(ActionListener, ActionListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("remove(ItemListener, ItemListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("remove(AdjustmentListener, AdjustmentListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("remove(TextListener, TextListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("remove(InputMethodListener, InputMethodListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("remove(HierarchyListener, HierarchyListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("remove(HierarchyBoundsListener, HierarchyBoundsListener)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("remove(MouseWheelListener, MouseWheelListener)"),
-             suppress("false"),
-             comment),
-      byproxy,
-      selfless,
-      byconstruction,
-      persistent,
-      safe("false"),
+class("java.awt.AWTEventMulticaster",
+      deem,
+      statics,
+      methods(method("componentResized(ComponentEvent)"),
+              method("componentMoved(ComponentEvent)"),
+              method("componentShown(ComponentEvent)"),
+              method("componentHidden(ComponentEvent)"),
+              method("componentAdded(ContainerEvent)"),
+              method("componentRemoved(ContainerEvent)"),
+              method("focusGained(FocusEvent)"),
+              method("focusLost(FocusEvent)"),
+              method("keyTyped(KeyEvent)"),
+              method("keyPressed(KeyEvent)"),
+              method("keyReleased(KeyEvent)"),
+              method("mouseClicked(MouseEvent)"),
+              method("mousePressed(MouseEvent)"),
+              method("mouseReleased(MouseEvent)"),
+              method("mouseEntered(MouseEvent)"),
+              method("mouseExited(MouseEvent)"),
+              method("mouseDragged(MouseEvent)"),
+              method("mouseMoved(MouseEvent)"),
+              method(suppress, "windowOpened(WindowEvent)"),
+              method(suppress, "windowClosing(WindowEvent)"),
+              method(suppress, "windowClosed(WindowEvent)"),
+              method(suppress, "windowIconified(WindowEvent)"),
+              method(suppress, "windowDeiconified(WindowEvent)"),
+              method(suppress, "windowActivated(WindowEvent)"),
+              method(suppress, "windowDeactivated(WindowEvent)"),
+              method(suppress, "windowStateChanged(WindowEvent)"),
+              method(suppress, "windowGainedFocus(WindowEvent)"),
+              method(suppress, "windowLostFocus(WindowEvent)"),
+              method("actionPerformed(ActionEvent)"),
+              method("itemStateChanged(ItemEvent)"),
+              method("adjustmentValueChanged(AdjustmentEvent)"),
+              method("textValueChanged(TextEvent)"),
+              method("inputMethodTextChanged(InputMethodEvent)"),
+              method("caretPositionChanged(InputMethodEvent)"),
+              method(suppress, "hierarchyChanged(HierarchyEvent)"),
+              method(suppress, "ancestorMoved(HierarchyEvent)"),
+              method(suppress, "ancestorResized(HierarchyEvent)"),
+              method("mouseWheelMoved(MouseWheelEvent)"),
+              method("add(ComponentListener, ComponentListener)"),
+              method("add(ContainerListener, ContainerListener)"),
+              method("add(FocusListener, FocusListener)"),
+              method("add(KeyListener, KeyListener)"),
+              method("add(MouseListener, MouseListener)"),
+              method("add(MouseMotionListener, MouseMotionListener)"),
+              method("add(WindowListener, WindowListener)"),
+              method("add(WindowStateListener, WindowStateListener)"),
+              method("add(WindowFocusListener, WindowFocusListener)"),
+              method("add(ActionListener, ActionListener)"),
+              method("add(ItemListener, ItemListener)"),
+              method("add(AdjustmentListener, AdjustmentListener)"),
+              method("add(TextListener, TextListener)"),
+              method("add(InputMethodListener, InputMethodListener)"),
+              method("add(HierarchyListener, HierarchyListener)"),
+              method("add(HierarchyBoundsListener, HierarchyBoundsListener)"),
+              method("add(MouseWheelListener, MouseWheelListener)"),
+              method("remove(ComponentListener, ComponentListener)"),
+              method("remove(ContainerListener, ContainerListener)"),
+              method("remove(FocusListener, FocusListener)"),
+              method("remove(KeyListener, KeyListener)"),
+              method("remove(MouseListener, MouseListener)"),
+              method("remove(MouseMotionListener, MouseMotionListener)"),
+              method("remove(WindowListener, WindowListener)"),
+              method("remove(WindowStateListener, WindowStateListener)"),
+              method("remove(WindowFocusListener, WindowFocusListener)"),
+              method("remove(ActionListener, ActionListener)"),
+              method("remove(ItemListener, ItemListener)"),
+              method("remove(AdjustmentListener, AdjustmentListener)"),
+              method("remove(TextListener, TextListener)"),
+              method("remove(InputMethodListener, InputMethodListener)"),
+              method("remove(HierarchyListener, HierarchyListener)"),
+              method("remove(HierarchyBoundsListener, HierarchyBoundsListener)"),
+              method("remove(MouseWheelListener, MouseWheelListener)")),
       comment("Used for creating your own components, unlikely to be useful, but left as unsafe; windowEvent handlers probably safe too, but suppressed on general principles"))



1.2       +18 -63    e/src/safej/java/awt/AWTKeyStroke.safej

Index: AWTKeyStroke.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/AWTKeyStroke.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AWTKeyStroke.safej	2001/12/13 05:01:31	1.1
+++ AWTKeyStroke.safej	2001/12/24 05:04:30	1.2
@@ -1,63 +1,18 @@
-class(name("java.awt.AWTKeyStroke"),
-      method(static("false"),
-             signature("getAWTKeyStroke(char)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getAWTKeyStroke(Character, int)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getAWTKeyStroke(int, int, boolean)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getAWTKeyStroke(int, int)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getAWTKeyStrokeForEvent(KeyEvent)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getAWTKeyStroke(String)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getKeyChar()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getKeyCode()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getModifiers()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("isOnKeyRelease()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getKeyEventType()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("hashCode()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("equals(Object)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("toString()"),
-             suppress("false"),
-             comment),
-      byproxy,
-      selfless,
-      byconstruction,
-      persistent,
-      safe("true"),
-      comment)
\ No newline at end of file
+class(safe,
+      "java.awt.AWTKeyStroke",
+      deem,
+      statics,
+      methods(method("getAWTKeyStroke(char)"),
+              method("getAWTKeyStroke(Character, int)"),
+              method("getAWTKeyStroke(int, int, boolean)"),
+              method("getAWTKeyStroke(int, int)"),
+              method("getAWTKeyStrokeForEvent(KeyEvent)"),
+              method("getAWTKeyStroke(String)"),
+              method("getKeyChar()"),
+              method("getKeyCode()"),
+              method("getModifiers()"),
+              method("isOnKeyRelease()"),
+              method("getKeyEventType()"),
+              method("hashCode()"),
+              method("equals(Object)"),
+              method("toString()")))
\ No newline at end of file



1.2       +5 -15     e/src/safej/java/awt/AWTPermission.safej

Index: AWTPermission.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/AWTPermission.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AWTPermission.safej	2001/12/13 05:01:31	1.1
+++ AWTPermission.safej	2001/12/24 05:04:30	1.2
@@ -1,15 +1,5 @@
-class(name("java.awt.AWTPermission"),
-      method(static("true"),
-             signature("new(String)"),
-             suppress("true"),
-             comment),
-      method(static("true"),
-             signature("new(String, String)"),
-             suppress("true"),
-             comment),
-      byproxy,
-      selfless,
-      byconstruction,
-      persistent,
-      safe("false"),
-      comment)
\ No newline at end of file
+class("java.awt.AWTPermission",
+      deem,
+      statics(method(suppress, "new(String)"),
+              method(suppress, "new(String, String)")),
+      methods)
\ No newline at end of file



1.2       +11 -35    e/src/safej/java/awt/AlphaComposite.safej

Index: AlphaComposite.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/AlphaComposite.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AlphaComposite.safej	2001/12/13 05:01:31	1.1
+++ AlphaComposite.safej	2001/12/24 05:04:30	1.2
@@ -1,35 +1,11 @@
-class(name("java.awt.AlphaComposite"),
-      method(static("false"),
-             signature("getInstance(int)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getInstance(int, float)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("createContext(ColorModel, ColorModel, RenderingHints)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getAlpha()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getRule()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("hashCode()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("equals(Object)"),
-             suppress("false"),
-             comment),
-      byproxy,
-      selfless,
-      byconstruction,
-      persistent,
-      safe("true"),
-      comment)
\ No newline at end of file
+class(safe,
+      "java.awt.AlphaComposite",
+      deem,
+      statics,
+      methods(method("getInstance(int)"),
+              method("getInstance(int, float)"),
+              method("createContext(ColorModel, ColorModel, RenderingHints)"),
+              method("getAlpha()"),
+              method("getRule()"),
+              method("hashCode()"),
+              method("equals(Object)")))
\ No newline at end of file



1.2       +17 -62    e/src/safej/java/awt/BasicStroke.safej

Index: BasicStroke.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/BasicStroke.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BasicStroke.safej	2001/12/13 05:01:31	1.1
+++ BasicStroke.safej	2001/12/24 05:04:30	1.2
@@ -1,63 +1,18 @@
-class(name("java.awt.BasicStroke"),
-      method(static("true"),
-             signature("new(float, int, int, float, float[], float)"),
-             suppress("false"),
-             comment),
-      method(static("true"),
-             signature("new(float, int, int, float)"),
-             suppress("false"),
-             comment),
-      method(static("true"),
-             signature("new(float, int, int)"),
-             suppress("false"),
-             comment),
-      method(static("true"),
-             signature("new(float)"),
-             suppress("false"),
-             comment),
-      method(static("true"),
-             signature("new()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("createStrokedShape(Shape)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getLineWidth()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getEndCap()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getLineJoin()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getMiterLimit()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getDashArray()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getDashPhase()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("hashCode()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("equals(Object)"),
-             suppress("false"),
-             comment),
-      byproxy,
-      selfless,
-      byconstruction,
-      persistent,
-      safe("true"),
+class(safe,
+      "java.awt.BasicStroke",
+      deem,
+      statics(method("new(float, int, int, float, float[], float)"),
+              method("new(float, int, int, float)"),
+              method("new(float, int, int)"),
+              method("new(float)"),
+              method("new()")),
+      methods(method("createStrokedShape(Shape)"),
+              method("getLineWidth()"),
+              method("getEndCap()"),
+              method("getLineJoin()"),
+              method("getMiterLimit()"),
+              method("getDashArray()"),
+              method("getDashPhase()"),
+              method(suppress, "hashCode()"),
+              method("equals(Object)")),
       comment("REVIEW should probably be pass by copy"))



1.2       +20 -75    e/src/safej/java/awt/BorderLayout.safej

Index: BorderLayout.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/BorderLayout.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BorderLayout.safej	2001/12/13 05:01:31	1.1
+++ BorderLayout.safej	2001/12/24 05:04:30	1.2
@@ -1,75 +1,20 @@
-class(name("java.awt.BorderLayout"),
-      method(static("true"),
-             signature("new()"),
-             suppress("false"),
-             comment),
-      method(static("true"),
-             signature("new(int, int)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getHgap()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("setHgap(int)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getVgap()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("setVgap(int)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("addLayoutComponent(Component, Object)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("addLayoutComponent(String, Component)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("removeLayoutComponent(Component)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("minimumLayoutSize(Container)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("preferredLayoutSize(Container)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("maximumLayoutSize(Container)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getLayoutAlignmentX(Container)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getLayoutAlignmentY(Container)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("invalidateLayout(Container)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("layoutContainer(Container)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("toString()"),
-             suppress("false"),
-             comment),
-      byproxy,
-      selfless,
-      byconstruction,
-      persistent,
-      safe("true"),
-      comment)
\ No newline at end of file
+class(safe,
+      "java.awt.BorderLayout",
+      deem,
+      statics(method("new()"),
+              method("new(int, int)")),
+      methods(method("getHgap()"),
+              method("setHgap(int)"),
+              method("getVgap()"),
+              method("setVgap(int)"),
+              method(suppress, "addLayoutComponent(Component, Object)"),
+              method(suppress, "addLayoutComponent(String, Component)"),
+              method(suppress, "removeLayoutComponent(Component)"),
+              method(suppress, "minimumLayoutSize(Container)"),
+              method(suppress, "preferredLayoutSize(Container)"),
+              method(suppress, "maximumLayoutSize(Container)"),
+              method("getLayoutAlignmentX(Container)"),
+              method("getLayoutAlignmentY(Container)"),
+              method("invalidateLayout(Container)"),
+              method(suppress, "layoutContainer(Container)"),
+              method("toString()")))
\ No newline at end of file



1.2       +1 -7      e/src/safej/java/awt/BufferCapabilities$FlipContents.safej

Index: BufferCapabilities$FlipContents.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/BufferCapabilities$FlipContents.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BufferCapabilities$FlipContents.safej	2001/12/13 05:01:31	1.1
+++ BufferCapabilities$FlipContents.safej	2001/12/24 05:04:30	1.2
@@ -1,7 +1 @@
-class(name("java.awt.BufferCapabilities.FlipContents"),
-      byproxy,
-      selfless,
-      byconstruction,
-      persistent,
-      safe("false"),
-      comment)
\ No newline at end of file
+class("java.awt.BufferCapabilities.FlipContents", deem, statics, methods)
\ No newline at end of file



1.2       +10 -39    e/src/safej/java/awt/BufferCapabilities.safej

Index: BufferCapabilities.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/BufferCapabilities.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BufferCapabilities.safej	2001/12/13 05:01:31	1.1
+++ BufferCapabilities.safej	2001/12/24 05:04:30	1.2
@@ -1,39 +1,10 @@
-class(name("java.awt.BufferCapabilities"),
-      method(static("true"),
-             signature("new(ImageCapabilities, ImageCapabilities, BufferCapabilities.FlipContents)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getFrontBufferCapabilities()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getBackBufferCapabilities()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("isPageFlipping()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getFlipContents()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("isFullScreenRequired()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("isMultiBufferAvailable()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("clone()"),
-             suppress("false"),
-             comment),
-      byproxy,
-      selfless,
-      byconstruction,
-      persistent,
-      safe("false"),
-      comment)
\ No newline at end of file
+class("java.awt.BufferCapabilities",
+      deem,
+      statics(method("new(ImageCapabilities, ImageCapabilities, BufferCapabilities.FlipContents)")),
+      methods(method("getFrontBufferCapabilities()"),
+              method("getBackBufferCapabilities()"),
+              method("isPageFlipping()"),
+              method("getFlipContents()"),
+              method("isFullScreenRequired()"),
+              method("isMultiBufferAvailable()"),
+              method("clone()")))
\ No newline at end of file



1.2       +14 -55    e/src/safej/java/awt/Button.safej

Index: Button.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/Button.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Button.safej	2001/12/13 05:01:31	1.1
+++ Button.safej	2001/12/24 05:04:30	1.2
@@ -1,55 +1,14 @@
-class(name("java.awt.Button"),
-      method(static("true"),
-             signature("new()"),
-             suppress("true"),
-             comment),
-      method(static("true"),
-             signature("new(String)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("addNotify()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getLabel()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setLabel(String)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setActionCommand(String)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getActionCommand()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("addActionListener(ActionListener)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("removeActionListener(ActionListener)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getActionListeners()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getListeners(Class)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getAccessibleContext()"),
-             suppress("true"),
-             comment),
-      byproxy,
-      selfless,
-      byconstruction,
-      persistent,
-      safe("false"),
-      comment)
\ No newline at end of file
+class("java.awt.Button",
+      deem,
+      statics(method(suppress, "new()"),
+              method(suppress, "new(String)")),
+      methods(method(suppress, "addNotify()"),
+              method(suppress, "getLabel()"),
+              method(suppress, "setLabel(String)"),
+              method(suppress, "setActionCommand(String)"),
+              method(suppress, "getActionCommand()"),
+              method(suppress, "addActionListener(ActionListener)"),
+              method(suppress, "removeActionListener(ActionListener)"),
+              method(suppress, "getActionListeners()"),
+              method(suppress, "getListeners(Class)"),
+              method(suppress, "getAccessibleContext()")))
\ No newline at end of file



1.2       +11 -42    e/src/safej/java/awt/Canvas.safej

Index: Canvas.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/Canvas.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Canvas.safej	2001/12/13 05:01:31	1.1
+++ Canvas.safej	2001/12/24 05:04:30	1.2
@@ -1,43 +1,12 @@
-class(name("java.awt.Canvas"),
-      method(static("true"),
-             signature("new()"),
-             suppress("true"),
-             comment),
-      method(static("true"),
-             signature("new(GraphicsConfiguration)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("addNotify()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("paint(Graphics)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("update(Graphics)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("createBufferStrategy(int)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("createBufferStrategy(int, BufferCapabilities)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getBufferStrategy()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getAccessibleContext()"),
-             suppress("true"),
-             comment),
-      byproxy,
-      selfless,
-      byconstruction,
-      persistent,
-      safe("false"),
+class("java.awt.Canvas",
+      deem,
+      statics(method(suppress, "new()"),
+              method(suppress, "new(GraphicsConfiguration)")),
+      methods(method(suppress, "addNotify()"),
+              method(suppress, "paint(Graphics)"),
+              method(suppress, "update(Graphics)"),
+              method(suppress, "createBufferStrategy(int)"),
+              method(suppress, "createBufferStrategy(int, BufferCapabilities)"),
+              method(suppress, "getBufferStrategy()"),
+              method(suppress, "getAccessibleContext()")),
       comment("Replaced by JPanel"))



1.2       +25 -95    e/src/safej/java/awt/CardLayout.safej

Index: CardLayout.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/CardLayout.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CardLayout.safej	2001/12/13 05:01:31	1.1
+++ CardLayout.safej	2001/12/24 05:04:30	1.2
@@ -1,95 +1,25 @@
-class(name("java.awt.CardLayout"),
-      method(static("true"),
-             signature("new()"),
-             suppress("false"),
-             comment),
-      method(static("true"),
-             signature("new(int, int)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getHgap()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("setHgap(int)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getVgap()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("setVgap(int)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("addLayoutComponent(Component, Object)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("addLayoutComponent(String, Component)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("removeLayoutComponent(Component)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("preferredLayoutSize(Container)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("minimumLayoutSize(Container)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("maximumLayoutSize(Container)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getLayoutAlignmentX(Container)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getLayoutAlignmentY(Container)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("invalidateLayout(Container)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("layoutContainer(Container)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("first(Container)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("next(Container)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("previous(Container)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("last(Container)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("show(Container, String)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("toString()"),
-             suppress("true"),
-             comment),
-      byproxy,
-      selfless,
-      byconstruction,
-      persistent,
-      safe("true"),
-      comment)
\ No newline at end of file
+class(safe,
+      "java.awt.CardLayout",
+      deem,
+      statics(method("new()"),
+              method("new(int, int)")),
+      methods(method("getHgap()"),
+              method("setHgap(int)"),
+              method("getVgap()"),
+              method("setVgap(int)"),
+              method("addLayoutComponent(Component, Object)"),
+              method("addLayoutComponent(String, Component)"),
+              method("removeLayoutComponent(Component)"),
+              method("preferredLayoutSize(Container)"),
+              method("minimumLayoutSize(Container)"),
+              method("maximumLayoutSize(Container)"),
+              method("getLayoutAlignmentX(Container)"),
+              method("getLayoutAlignmentY(Container)"),
+              method("invalidateLayout(Container)"),
+              method("layoutContainer(Container)"),
+              method("first(Container)"),
+              method("next(Container)"),
+              method("previous(Container)"),
+              method("last(Container)"),
+              method("show(Container, String)"),
+              method(suppress, "toString()")))
\ No newline at end of file



1.2       +20 -79    e/src/safej/java/awt/Checkbox.safej

Index: Checkbox.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/Checkbox.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Checkbox.safej	2001/12/13 05:01:31	1.1
+++ Checkbox.safej	2001/12/24 05:04:30	1.2
@@ -1,79 +1,20 @@
-class(name("java.awt.Checkbox"),
-      method(static("true"),
-             signature("new()"),
-             suppress("true"),
-             comment),
-      method(static("true"),
-             signature("new(String)"),
-             suppress("true"),
-             comment),
-      method(static("true"),
-             signature("new(String, boolean)"),
-             suppress("true"),
-             comment),
-      method(static("true"),
-             signature("new(String, boolean, CheckboxGroup)"),
-             suppress("true"),
-             comment),
-      method(static("true"),
-             signature("new(String, CheckboxGroup, boolean)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("addNotify()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getLabel()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setLabel(String)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getState()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setState(boolean)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getSelectedObjects()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getCheckboxGroup()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setCheckboxGroup(CheckboxGroup)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("addItemListener(ItemListener)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("removeItemListener(ItemListener)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getItemListeners()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getListeners(Class)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getAccessibleContext()"),
-             suppress("true"),
-             comment),
-      byproxy,
-      selfless,
-      byconstruction,
-      persistent,
-      safe("false"),
-      comment)
\ No newline at end of file
+class("java.awt.Checkbox",
+      deem,
+      statics(method(suppress, "new()"),
+              method(suppress, "new(String)"),
+              method(suppress, "new(String, boolean)"),
+              method(suppress, "new(String, boolean, CheckboxGroup)"),
+              method(suppress, "new(String, CheckboxGroup, boolean)")),
+      methods(method(suppress, "addNotify()"),
+              method(suppress, "getLabel()"),
+              method(suppress, "setLabel(String)"),
+              method(suppress, "getState()"),
+              method(suppress, "setState(boolean)"),
+              method(suppress, "getSelectedObjects()"),
+              method(suppress, "getCheckboxGroup()"),
+              method(suppress, "setCheckboxGroup(CheckboxGroup)"),
+              method(suppress, "addItemListener(ItemListener)"),
+              method(suppress, "removeItemListener(ItemListener)"),
+              method(suppress, "getItemListeners()"),
+              method(suppress, "getListeners(Class)"),
+              method(suppress, "getAccessibleContext()")))
\ No newline at end of file



1.2       +8 -31     e/src/safej/java/awt/CheckboxGroup.safej

Index: CheckboxGroup.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/CheckboxGroup.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CheckboxGroup.safej	2001/12/13 05:01:31	1.1
+++ CheckboxGroup.safej	2001/12/24 05:04:30	1.2
@@ -1,31 +1,8 @@
-class(name("java.awt.CheckboxGroup"),
-      method(static("true"),
-             signature("new()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getSelectedCheckbox()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getCurrent()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setSelectedCheckbox(Checkbox)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setCurrent(Checkbox)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("toString()"),
-             suppress("true"),
-             comment),
-      byproxy,
-      selfless,
-      byconstruction,
-      persistent,
-      safe("false"),
-      comment)
\ No newline at end of file
+class("java.awt.CheckboxGroup",
+      deem,
+      statics(method(suppress, "new()")),
+      methods(method(suppress, "getSelectedCheckbox()"),
+              method(suppress, "getCurrent()"),
+              method(suppress, "setSelectedCheckbox(Checkbox)"),
+              method(suppress, "setCurrent(Checkbox)"),
+              method(suppress, "toString()")))
\ No newline at end of file



1.2       +15 -59    e/src/safej/java/awt/CheckboxMenuItem.safej

Index: CheckboxMenuItem.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/CheckboxMenuItem.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CheckboxMenuItem.safej	2001/12/13 05:01:31	1.1
+++ CheckboxMenuItem.safej	2001/12/24 05:04:30	1.2
@@ -1,59 +1,15 @@
-class(name("java.awt.CheckboxMenuItem"),
-      method(static("true"),
-             signature("new()"),
-             suppress("true"),
-             comment),
-      method(static("true"),
-             signature("new(String)"),
-             suppress("true"),
-             comment),
-      method(static("true"),
-             signature("new(String, boolean)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("addNotify()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getState()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setState(boolean)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getSelectedObjects()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("addItemListener(ItemListener)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("removeItemListener(ItemListener)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getItemListeners()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getListeners(Class)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("paramString()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getAccessibleContext()"),
-             suppress("true"),
-             comment),
-      byproxy,
-      selfless,
-      byconstruction,
-      persistent,
-      safe("false"),
-      comment)
\ No newline at end of file
+class("java.awt.CheckboxMenuItem",
+      deem,
+      statics(method(suppress, "new()"),
+              method(suppress, "new(String)"),
+              method(suppress, "new(String, boolean)")),
+      methods(method(suppress, "addNotify()"),
+              method(suppress, "getState()"),
+              method(suppress, "setState(boolean)"),
+              method(suppress, "getSelectedObjects()"),
+              method(suppress, "addItemListener(ItemListener)"),
+              method(suppress, "removeItemListener(ItemListener)"),
+              method(suppress, "getItemListeners()"),
+              method(suppress, "getListeners(Class)"),
+              method(suppress, "paramString()"),
+              method(suppress, "getAccessibleContext()")))
\ No newline at end of file



1.2       +23 -91    e/src/safej/java/awt/Choice.safej

Index: Choice.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/Choice.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Choice.safej	2001/12/13 05:01:31	1.1
+++ Choice.safej	2001/12/24 05:04:30	1.2
@@ -1,91 +1,23 @@
-class(name("java.awt.Choice"),
-      method(static("true"),
-             signature("new()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("addNotify()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getItemCount()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("countItems()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getItem(int)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("add(String)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("addItem(String)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("insert(String, int)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("remove(String)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("remove(int)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("removeAll()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getSelectedItem()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getSelectedObjects()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getSelectedIndex()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("select(int)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("select(String)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("addItemListener(ItemListener)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("removeItemListener(ItemListener)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getItemListeners()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getListeners(Class)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getAccessibleContext()"),
-             suppress("true"),
-             comment),
-      byproxy,
-      selfless,
-      byconstruction,
-      persistent,
-      safe("false"),
-      comment)
\ No newline at end of file
+class("java.awt.Choice",
+      deem,
+      statics(method(suppress, "new()")),
+      methods(method(suppress, "addNotify()"),
+              method(suppress, "getItemCount()"),
+              method(suppress, "countItems()"),
+              method(suppress, "getItem(int)"),
+              method(suppress, "add(String)"),
+              method(suppress, "addItem(String)"),
+              method(suppress, "insert(String, int)"),
+              method(suppress, "remove(String)"),
+              method(suppress, "remove(int)"),
+              method(suppress, "removeAll()"),
+              method(suppress, "getSelectedItem()"),
+              method(suppress, "getSelectedObjects()"),
+              method(suppress, "getSelectedIndex()"),
+              method(suppress, "select(int)"),
+              method(suppress, "select(String)"),
+              method(suppress, "addItemListener(ItemListener)"),
+              method(suppress, "removeItemListener(ItemListener)"),
+              method(suppress, "getItemListeners()"),
+              method(suppress, "getListeners(Class)"),
+              method(suppress, "getAccessibleContext()")))
\ No newline at end of file



1.2       +36 -139   e/src/safej/java/awt/Color.safej

Index: Color.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/Color.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Color.safej	2001/12/13 05:01:31	1.1
+++ Color.safej	2001/12/24 05:04:30	1.2
@@ -1,139 +1,36 @@
-class(name("java.awt.Color"),
-      method(static("true"),
-             signature("new(int, int, int)"),
-             suppress("false"),
-             comment),
-      method(static("true"),
-             signature("new(int, int, int, int)"),
-             suppress("false"),
-             comment),
-      method(static("true"),
-             signature("new(int)"),
-             suppress("false"),
-             comment),
-      method(static("true"),
-             signature("new(int, boolean)"),
-             suppress("false"),
-             comment),
-      method(static("true"),
-             signature("new(float, float, float)"),
-             suppress("false"),
-             comment),
-      method(static("true"),
-             signature("new(float, float, float, float)"),
-             suppress("false"),
-             comment),
-      method(static("true"),
-             signature("new(ColorSpace, float[], float)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getRed()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getGreen()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getBlue()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getAlpha()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getRGB()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("brighter()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("darker()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("hashCode()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("equals(Object)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("toString()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("decode(String)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getColor(String)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getColor(String, Color)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getColor(String, int)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("HSBtoRGB(float, float, float)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("RGBtoHSB(int, int, int, float[])"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getHSBColor(float, float, float)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getRGBComponents(float[])"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getRGBColorComponents(float[])"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getComponents(float[])"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getColorComponents(float[])"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getComponents(ColorSpace, float[])"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getColorComponents(ColorSpace, float[])"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getColorSpace()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("createContext(ColorModel, Rectangle, Rectangle2D, AffineTransform, RenderingHints)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getTransparency()"),
-             suppress("false"),
-             comment),
-      byproxy,
-      selfless,
-      byconstruction,
-      persistent,
-      safe("true"),
-      comment)
\ No newline at end of file
+class(safe,
+      "java.awt.Color",
+      deem,
+      statics(method("new(int, int, int)"),
+              method("new(int, int, int, int)"),
+              method("new(int)"),
+              method("new(int, boolean)"),
+              method("new(float, float, float)"),
+              method("new(float, float, float, float)"),
+              method("new(ColorSpace, float[], float)")),
+      methods(method("getRed()"),
+              method("getGreen()"),
+              method("getBlue()"),
+              method("getAlpha()"),
+              method("getRGB()"),
+              method("brighter()"),
+              method("darker()"),
+              method("hashCode()"),
+              method("equals(Object)"),
+              method("toString()"),
+              method("decode(String)"),
+              method("getColor(String)"),
+              method("getColor(String, Color)"),
+              method("getColor(String, int)"),
+              method("HSBtoRGB(float, float, float)"),
+              method("RGBtoHSB(int, int, int, float[])"),
+              method("getHSBColor(float, float, float)"),
+              method("getRGBComponents(float[])"),
+              method("getRGBColorComponents(float[])"),
+              method("getComponents(float[])"),
+              method("getColorComponents(float[])"),
+              method("getComponents(ColorSpace, float[])"),
+              method("getColorComponents(ColorSpace, float[])"),
+              method("getColorSpace()"),
+              method("createContext(ColorModel, Rectangle, Rectangle2D, AffineTransform, RenderingHints)"),
+              method("getTransparency()")))
\ No newline at end of file



1.2       +190 -751  e/src/safej/java/awt/Component.safej

Index: Component.safej
===================================================================
RCS file: /cvs/e/src/safej/java/awt/Component.safej,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Component.safej	2001/12/13 05:01:31	1.1
+++ Component.safej	2001/12/24 05:04:30	1.2
@@ -1,751 +1,190 @@
-class(name("java.awt.Component"),
-      method(static("false"),
-             signature("getName()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("setName(String)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getParent()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getPeer()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setDropTarget(DropTarget)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getDropTarget()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getGraphicsConfiguration()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getTreeLock()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getToolkit()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("isValid()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("isDisplayable()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("isVisible()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("isShowing()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("isEnabled()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("setEnabled(boolean)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("enable()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("enable(boolean)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("disable()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("isDoubleBuffered()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("enableInputMethods(boolean)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setVisible(boolean)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("show()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("show(boolean)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("hide()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getForeground()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("setForeground(Color)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("isForegroundSet()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getBackground()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("setBackground(Color)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("isBackgroundSet()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getFont()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("setFont(Font)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("isFontSet()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getLocale()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setLocale(Locale)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getColorModel()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getLocation()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getLocationOnScreen()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("location()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setLocation(int, int)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("move(int, int)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setLocation(Point)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getSize()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("size()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setSize(int, int)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("resize(int, int)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setSize(Dimension)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("resize(Dimension)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getBounds()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("bounds()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setBounds(int, int, int, int)"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("reshape(int, int, int, int)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("setBounds(Rectangle)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getX()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getY()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getWidth()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getHeight()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getBounds(Rectangle)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getSize(Dimension)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getLocation(Point)"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("isOpaque()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("isLightweight()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getPreferredSize()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("preferredSize()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getMinimumSize()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("minimumSize()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("getMaximumSize()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getAlignmentX()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getAlignmentY()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("doLayout()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("layout()"),
-             suppress("true"),
-             comment),
-      method(static("false"),
-             signature("validate()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("invalidate()"),
-             suppress("false"),
-             comment),
-      method(static("false"),
-             signature("getGraphics()"),
-             suppress("false"),
-             comment),
-      method(static(