This commit was manufactured by cvs2svn to create branch 'R0_7_maintenance'.
diff --git a/features/org.eclipse.jem-feature/.cvsignore b/features/org.eclipse.jem-feature/.cvsignore
deleted file mode 100644
index c14487c..0000000
--- a/features/org.eclipse.jem-feature/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-build.xml
diff --git a/features/org.eclipse.jem-feature/.project b/features/org.eclipse.jem-feature/.project
deleted file mode 100644
index 04e071f..0000000
--- a/features/org.eclipse.jem-feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jem-feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/features/org.eclipse.jem-feature/build.properties b/features/org.eclipse.jem-feature/build.properties
deleted file mode 100644
index 4ce7515..0000000
--- a/features/org.eclipse.jem-feature/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               feature.properties,\
-               epl-v10.html,\
-               eclipse_update_120.jpg,\
-               license.html
-
-
diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/.classpath b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/.classpath
deleted file mode 100644
index 059b9d1..0000000
--- a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry exported="true" kind="lib" path="runtime/event.jar"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/.project b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/.project
deleted file mode 100644
index 8c8107f..0000000
--- a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>com.ibm.etools.emf.event</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/about.html b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/about.html
deleted file mode 100644
index 6f6b96c..0000000
--- a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/about.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>February 24, 2005</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/build.properties b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/build.properties
deleted file mode 100644
index 0cb2fd1..0000000
--- a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/build.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = runtime/event.jar,\
-               plugin.xml,\
-               about.html
diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/plugin.xml b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/plugin.xml
deleted file mode 100644
index 55ff069..0000000
--- a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/plugin.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin
-   id="com.ibm.etools.emf.event"
-   name="Event Model"
-   version="3.0.0.1">
-
-   <runtime>
-      <library name="runtime/event.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-<!-- build-level = "20030806_1713SL" *** With fix 10028 merged in. -->
-   <requires>
-      <import plugin="org.eclipse.emf.ecore" version="2.0.0" match="compatible"/>
-   </requires>
-
-
-   <extension
-         point="org.eclipse.emf.ecore.generated_package">
-      <package
-            uri="event.xmi"
-            class="com.ibm.etools.emf.event.impl.EventPackageImpl">
-      </package>
-   </extension>
-
-</plugin>
diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/runtime/event.jar b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/runtime/event.jar
deleted file mode 100644
index b64130c..0000000
--- a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/runtime/event.jar
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.jem-feature/eclipse_update_120.jpg b/features/org.eclipse.jem-feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.jem-feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.jem-feature/epl-v10.html b/features/org.eclipse.jem-feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.jem-feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.jem-feature/feature.properties b/features/org.eclipse.jem-feature/feature.properties
deleted file mode 100644
index 0a70e2b..0000000
--- a/features/org.eclipse.jem-feature/feature.properties
+++ /dev/null
@@ -1,131 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#
-# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/features/org.eclipse.jem-feature/Attic/feature.properties,v $
-# $Revision: 1.6 $  $Date: 2005/02/28 19:02:00 $
-#
-
-
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Java EMF Model
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=Visual Editor update site
-
-# "description" property - description of the feature
-description=Java EMF Model, including BeanInfo, Java Model, Proxy support (with remote vm and IDE vm support).
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-January 28, 2004\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments\n\
-("Fragments"), and features ("Features"). A Feature is a bundle of one or\n\
-more Plug-ins and/or Fragments and associated material. Files named\n\
-"feature.xml" may contain a list of the names and version numbers of the\n\
-Plug-ins and/or Fragments associated with a Feature. Plug-ins and Fragments\n\
-are located in directories named "plugins" and Features are located in\n\
-directories named "features".\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Subdirectories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE CPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n
-########### end of license property ##########################################
diff --git a/features/org.eclipse.jem-feature/feature.xml b/features/org.eclipse.jem-feature/feature.xml
deleted file mode 100644
index aef44d8..0000000
--- a/features/org.eclipse.jem-feature/feature.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jem"
-      label="%featureName"
-      version="1.1.0"
-      provider-name="%providerName"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/tools/ve/updates/1.0"/>
-   </url>
-
-   <requires>
-      <import feature="org.eclipse.jdt" version="3.1.0"/>
-      <import feature="org.eclipse.emf" version="2.1.0"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.jem.beaninfo"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.jem.proxy"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.jem"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.jem.workbench"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="com.ibm.etools.emf.event"
-         download-size="0"
-         install-size="0"
-         version="3.0.0.1"/>
-
-   <plugin
-         id="org.eclipse.jem.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.jem.util"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-</feature>
diff --git a/features/org.eclipse.jem-feature/license.html b/features/org.eclipse.jem-feature/license.html
deleted file mode 100644
index 3259fb9..0000000
--- a/features/org.eclipse.jem-feature/license.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>January 28, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of  the Plug-ins and/or Fragments associated with a Feature.   Plug-ins and Fragments are located in directories
-   named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-  
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-  
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-</body>
-</html>
diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/build.properties b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/build.properties
deleted file mode 100644
index ea394f9..0000000
--- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = epl-v10.html,\
-               eclipse_update_120.jpg,\
-               feature.properties,\
-               feature.xml,\
-               license.html
-generate.feature@org.eclipse.jem.source=org.eclipse.jem
diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/eclipse_update_120.jpg b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/epl-v10.html b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/feature.properties b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/feature.properties
deleted file mode 100644
index 2154c2b..0000000
--- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/feature.properties
+++ /dev/null
@@ -1,131 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#
-# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/Attic/feature.properties,v $
-# $Revision: 1.6 $  $Date: 2005/02/28 19:02:00 $
-#
-
-
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Java EMF Model SDK
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=Visual Editor update site
-
-# "description" property - description of the feature
-description=Binaries and API documentation and source zips for the Visual Editor.
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-January 28, 2004\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments\n\
-("Fragments"), and features ("Features"). A Feature is a bundle of one or\n\
-more Plug-ins and/or Fragments and associated material. Files named\n\
-"feature.xml" may contain a list of the names and version numbers of the\n\
-Plug-ins and/or Fragments associated with a Feature. Plug-ins and Fragments\n\
-are located in directories named "plugins" and Features are located in\n\
-directories named "features".\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Subdirectories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE CPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n
-########### end of license property ##########################################
diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/feature.xml b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/feature.xml
deleted file mode 100644
index 12ae816..0000000
--- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/feature.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jem.sdk"
-      label="%featureName"
-      version="1.1.0"
-      provider-name="%providerName"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/tools/ve/updates/1.0"/>
-   </url>
-
-   <includes
-         id="org.eclipse.jem"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jem.source"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.jem.sdk"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-</feature>
diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/license.html b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/license.html
deleted file mode 100644
index 3259fb9..0000000
--- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/license.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>January 28, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of  the Plug-ins and/or Fragments associated with a Feature.   Plug-ins and Fragments are located in directories
-   named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-  
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-  
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-</body>
-</html>
diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/.project b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/.project
deleted file mode 100644
index 4f232d3..0000000
--- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jem.sdk</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/META-INF/MANIFEST.MF b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/META-INF/MANIFEST.MF
deleted file mode 100644
index 5178f94..0000000
--- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jem.sdk
-Bundle-Version: 1.1.0
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/about.html b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/about.html
deleted file mode 100644
index 6f6b96c..0000000
--- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/about.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>February 24, 2005</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/about.ini b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/about.ini
deleted file mode 100644
index a21a3ec..0000000
--- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/about.ini
+++ /dev/null
@@ -1,29 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/about.mappings b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/about.properties b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/about.properties
deleted file mode 100644
index 37842ee..0000000
--- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/about.properties
+++ /dev/null
@@ -1,29 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#
-# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/Attic/about.properties,v $
-# $Revision: 1.4 $  $Date: 2005/02/15 23:13:16 $
-#
-
-
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-
-blurb=Java EMF Model SDK\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others. 2000, 2004.  All rights reserved.\n\
-Visit http://www.eclipse.org/vep
diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/build.properties b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/build.properties
deleted file mode 100644
index 3b1b87e..0000000
--- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = about.html,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               eclipse32.gif,\
-               plugin.xml,\
-               plugin.properties,\
-               META-INF/
diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/eclipse32.gif b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/plugin.properties b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/plugin.properties
deleted file mode 100644
index c83dcb5..0000000
--- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#
-# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/Attic/plugin.properties,v $
-# $Revision: 1.4 $  $Date: 2005/02/15 23:13:16 $
-#
-
-
-pluginName=Java EMF Model SDK
-providerName = Eclipse.org
diff --git a/features/org.eclipse.jem-feature/sourceTemplateFeature/build.properties b/features/org.eclipse.jem-feature/sourceTemplateFeature/build.properties
deleted file mode 100644
index 4ce7515..0000000
--- a/features/org.eclipse.jem-feature/sourceTemplateFeature/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               feature.properties,\
-               epl-v10.html,\
-               eclipse_update_120.jpg,\
-               license.html
-
-
diff --git a/features/org.eclipse.jem-feature/sourceTemplateFeature/eclipse_update_120.jpg b/features/org.eclipse.jem-feature/sourceTemplateFeature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.jem-feature/sourceTemplateFeature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.jem-feature/sourceTemplateFeature/epl-v10.html b/features/org.eclipse.jem-feature/sourceTemplateFeature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.jem-feature/sourceTemplateFeature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.jem-feature/sourceTemplateFeature/feature.properties b/features/org.eclipse.jem-feature/sourceTemplateFeature/feature.properties
deleted file mode 100644
index 2d01395..0000000
--- a/features/org.eclipse.jem-feature/sourceTemplateFeature/feature.properties
+++ /dev/null
@@ -1,131 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#
-# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/features/org.eclipse.jem-feature/sourceTemplateFeature/Attic/feature.properties,v $
-# $Revision: 1.7 $  $Date: 2005/02/28 19:02:00 $
-#
-
-
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Java EMF Model Source
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=Visual Editor update site
-
-# "description" property - description of the feature
-description=API documentation and source zips for the Java EMF Model.
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-January 28, 2004\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments\n\
-("Fragments"), and features ("Features"). A Feature is a bundle of one or\n\
-more Plug-ins and/or Fragments and associated material. Files named\n\
-"feature.xml" may contain a list of the names and version numbers of the\n\
-Plug-ins and/or Fragments associated with a Feature. Plug-ins and Fragments\n\
-are located in directories named "plugins" and Features are located in\n\
-directories named "features".\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Subdirectories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE CPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n
-########### end of license property ##########################################
diff --git a/features/org.eclipse.jem-feature/sourceTemplateFeature/license.html b/features/org.eclipse.jem-feature/sourceTemplateFeature/license.html
deleted file mode 100644
index 3259fb9..0000000
--- a/features/org.eclipse.jem-feature/sourceTemplateFeature/license.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>January 28, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of  the Plug-ins and/or Fragments associated with a Feature.   Plug-ins and Fragments are located in directories
-   named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-  
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-  
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-</body>
-</html>
diff --git a/features/org.eclipse.jem-feature/sourceTemplatePlugin/about.html b/features/org.eclipse.jem-feature/sourceTemplatePlugin/about.html
deleted file mode 100644
index dae413b..0000000
--- a/features/org.eclipse.jem-feature/sourceTemplatePlugin/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>February 24, 2005</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.jem-feature/sourceTemplatePlugin/about.ini b/features/org.eclipse.jem-feature/sourceTemplatePlugin/about.ini
deleted file mode 100644
index a21a3ec..0000000
--- a/features/org.eclipse.jem-feature/sourceTemplatePlugin/about.ini
+++ /dev/null
@@ -1,29 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
diff --git a/features/org.eclipse.jem-feature/sourceTemplatePlugin/about.mappings b/features/org.eclipse.jem-feature/sourceTemplatePlugin/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/features/org.eclipse.jem-feature/sourceTemplatePlugin/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/features/org.eclipse.jem-feature/sourceTemplatePlugin/about.properties b/features/org.eclipse.jem-feature/sourceTemplatePlugin/about.properties
deleted file mode 100644
index bf7deb4..0000000
--- a/features/org.eclipse.jem-feature/sourceTemplatePlugin/about.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#
-# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/features/org.eclipse.jem-feature/sourceTemplatePlugin/Attic/about.properties,v $
-# $Revision: 1.5 $  $Date: 2005/02/15 23:13:16 $
-#
-
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-
-blurb=Java EMF Model SDK\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others. 2000, 2004.  All rights reserved.\n\
-Visit http://www.eclipse.org/vep
diff --git a/features/org.eclipse.jem-feature/sourceTemplatePlugin/build.properties b/features/org.eclipse.jem-feature/sourceTemplatePlugin/build.properties
deleted file mode 100644
index 1b757be..0000000
--- a/features/org.eclipse.jem-feature/sourceTemplatePlugin/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = plugin.xml,\
-               plugin.properties,\
-               about.html,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               eclipse32.gif,\
-               src/,\
-               META-INF/
-sourcePlugin = true
diff --git a/features/org.eclipse.jem-feature/sourceTemplatePlugin/eclipse32.gif b/features/org.eclipse.jem-feature/sourceTemplatePlugin/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/features/org.eclipse.jem-feature/sourceTemplatePlugin/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.jem-feature/sourceTemplatePlugin/plugin.properties b/features/org.eclipse.jem-feature/sourceTemplatePlugin/plugin.properties
deleted file mode 100644
index 569a6f6..0000000
--- a/features/org.eclipse.jem-feature/sourceTemplatePlugin/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-#
-# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/features/org.eclipse.jem-feature/sourceTemplatePlugin/Attic/plugin.properties,v $
-# $Revision: 1.3 $  $Date: 2005/02/15 23:13:16 $
-#
-
-
-pluginName = Java EMF Model Source
-providerName = Eclipse.org
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.beaninfo.ui/.project b/plugins/org.eclipse.jem.beaninfo.ui/.project
deleted file mode 100644
index 3898d56..0000000
--- a/plugins/org.eclipse.jem.beaninfo.ui/.project
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jem.beaninfo.ui</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.jem.beaninfo.ui/OBSOLETE-moved to org.eclipse.jem.ui b/plugins/org.eclipse.jem.beaninfo.ui/OBSOLETE-moved to org.eclipse.jem.ui
deleted file mode 100644
index e69de29..0000000
--- a/plugins/org.eclipse.jem.beaninfo.ui/OBSOLETE-moved to org.eclipse.jem.ui
+++ /dev/null
diff --git a/plugins/org.eclipse.jem.beaninfo/.classpath b/plugins/org.eclipse.jem.beaninfo/.classpath
deleted file mode 100644
index 3e7a2ef..0000000
--- a/plugins/org.eclipse.jem.beaninfo/.classpath
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="beaninfo"/>
-	<classpathentry output="bin_beaninfocommon" kind="src" path="beaninfoCommon"/>
-	<classpathentry output="bin_vm_beaninfovm" kind="src" path="vm_beaninfovm"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.jem.beaninfo/.cvsignore b/plugins/org.eclipse.jem.beaninfo/.cvsignore
deleted file mode 100644
index 9b8171d..0000000
--- a/plugins/org.eclipse.jem.beaninfo/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-bin
-build.xml
-bin_beaninfocommon
-bin_vm_beaninfovm
diff --git a/plugins/org.eclipse.jem.beaninfo/.options b/plugins/org.eclipse.jem.beaninfo/.options
deleted file mode 100644
index 5b24652..0000000
--- a/plugins/org.eclipse.jem.beaninfo/.options
+++ /dev/null
@@ -1,3 +0,0 @@
-org.eclipse.jem.beaninfo/debug/logtrace=default
-org.eclipse.jem.beaninfo/debug/logtracefile=default
-org.eclipse.jem.beaninfo/debug/loglevel=default
diff --git a/plugins/org.eclipse.jem.beaninfo/.project b/plugins/org.eclipse.jem.beaninfo/.project
deleted file mode 100644
index 7938070..0000000
--- a/plugins/org.eclipse.jem.beaninfo/.project
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jem.beaninfo</name>
-	<comment></comment>
-	<projects>
-		<project>com.ibm.etools.emf.event</project>
-		<project>org.apache.xerces</project>
-		<project>org.eclipse.compare</project>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.core.runtime.compatibility</project>
-		<project>org.eclipse.emf.ecore</project>
-		<project>org.eclipse.emf.ecore.xmi</project>
-		<project>org.eclipse.jdt.core</project>
-		<project>org.eclipse.jdt.launching</project>
-		<project>org.eclipse.jem</project>
-		<project>org.eclipse.jem.proxy</project>
-		<project>org.eclipse.jem.workbench</project>
-		<project>org.eclipse.osgi</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>com.ibm.rtp.tools.rose.builder</name>
-			<arguments>
-				<dictionary>
-					<key>rose</key>
-					<value></value>
-				</dictionary>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>com.ibm.rtp.tools.rose.toolnature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.jem.beaninfo/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.jem.beaninfo/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 794b7f6..0000000
--- a/plugins/org.eclipse.jem.beaninfo/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed May 18 16:43:27 EDT 2005
-eclipse.preferences.version=1
-encoding//beaninfo/org/eclipse/jem/internal/beaninfo/core/messages.properties=8859_1
diff --git a/plugins/org.eclipse.jem.beaninfo/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.jem.beaninfo/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 4a7c7a1..0000000
--- a/plugins/org.eclipse.jem.beaninfo/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,282 +0,0 @@
-#Thu Jun 16 12:45:44 EDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=1
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=150
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=150
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
diff --git a/plugins/org.eclipse.jem.beaninfo/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.jem.beaninfo/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 4cff627..0000000
--- a/plugins/org.eclipse.jem.beaninfo/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-#Wed May 11 16:20:15 EDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;org.eclipse.wtp;org.eclipse.jem;org.eclipse.ve.internal.cdm;org.eclipse.ve.internal.cde;org.eclipse.ve.internal.jcm;org.eclipse.ve.internal.java;org.eclipse.ve;com;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates/>
diff --git a/plugins/org.eclipse.jem.beaninfo/.settings/org.eclipse.pde.core.prefs b/plugins/org.eclipse.jem.beaninfo/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 59dc168..0000000
--- a/plugins/org.eclipse.jem.beaninfo/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Thu Jun 16 11:09:08 EDT 2005
-eclipse.preferences.version=1
-selfhosting.binExcludes=/org.eclipse.jem.beaninfo/bin_vm_beaninfovm
diff --git a/plugins/org.eclipse.jem.beaninfo/META-INF/MANIFEST.MF b/plugins/org.eclipse.jem.beaninfo/META-INF/MANIFEST.MF
deleted file mode 100644
index ea0df67..0000000
--- a/plugins/org.eclipse.jem.beaninfo/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,32 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jem.beaninfo; singleton:=true
-Bundle-Version: 1.1.0
-Bundle-ClassPath: beaninfo.jar,
- beaninfocommon.jar
-Bundle-Activator: org.eclipse.jem.internal.beaninfo.core.BeaninfoPlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.jem.beaninfo.vm,
- org.eclipse.jem.internal.beaninfo,
- org.eclipse.jem.internal.beaninfo.adapters,
- org.eclipse.jem.internal.beaninfo.common,
- org.eclipse.jem.internal.beaninfo.core,
- org.eclipse.jem.internal.beaninfo.impl,
- org.eclipse.jem.internal.beaninfo.vm
-Require-Bundle: org.eclipse.jem.proxy,
- com.ibm.etools.emf.event,
- org.eclipse.jdt.core,
- org.eclipse.jem.workbench,
- org.eclipse.core.resources,
- org.eclipse.emf.ecore,
- org.eclipse.jem,
- org.eclipse.emf.ecore.xmi,
- org.eclipse.osgi,
- org.eclipse.ui;resolution:=optional,
- org.eclipse.core.runtime,
- org.eclipse.debug.core,
- org.eclipse.jem.util,
- org.eclipse.emf.ecore.change
-Eclipse-AutoStart: true
diff --git a/plugins/org.eclipse.jem.beaninfo/about.html b/plugins/org.eclipse.jem.beaninfo/about.html
deleted file mode 100644
index 6f6b96c..0000000
--- a/plugins/org.eclipse.jem.beaninfo/about.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>February 24, 2005</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeanDecorator.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeanDecorator.java
deleted file mode 100644
index a7cd9f0..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeanDecorator.java
+++ /dev/null
@@ -1,432 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jem.internal.beaninfo;
-/*
- *  $RCSfile: BeanDecorator.java,v $
- *  $Revision: 1.9 $  $Date: 2005/04/14 19:05:36 $ 
- */
-
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.jem.java.JavaClass;
-import java.net.URL;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Bean Decorator</b></em>'.
- * <!-- end-user-doc -->
- *
- * <!-- begin-model-doc -->
- * Equivalent to BeanDecorator in java.
- * <!-- end-model-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperProperties <em>Merge Super Properties</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperMethods <em>Merge Super Methods</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperEvents <em>Merge Super Events</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isIntrospectProperties <em>Introspect Properties</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isIntrospectMethods <em>Introspect Methods</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isIntrospectEvents <em>Introspect Events</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isDoBeaninfo <em>Do Beaninfo</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#getNotInheritedPropertyNames <em>Not Inherited Property Names</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#getNotInheritedMethodNames <em>Not Inherited Method Names</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#getNotInheritedEventNames <em>Not Inherited Event Names</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#getCustomizerClass <em>Customizer Class</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getBeanDecorator()
- * @model
- * @generated
- */
-
-
-public interface BeanDecorator extends FeatureDecorator{
-	
-	/**
-	 * Returns the value of the '<em><b>Merge Super Properties</b></em>' attribute.
-	 * The default value is <code>"true"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Merge Super Properties</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * Should the properties of super types be merged when asking for eAllAttributes/eAllReferences.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Merge Super Properties</em>' attribute.
-	 * @see #isSetMergeSuperProperties()
-	 * @see #unsetMergeSuperProperties()
-	 * @see #setMergeSuperProperties(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getBeanDecorator_MergeSuperProperties()
-	 * @model default="true" unsettable="true"
-	 * @generated
-	 */
-	boolean isMergeSuperProperties();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperProperties <em>Merge Super Properties</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Merge Super Properties</em>' attribute.
-	 * @see #isSetMergeSuperProperties()
-	 * @see #unsetMergeSuperProperties()
-	 * @see #isMergeSuperProperties()
-	 * @generated
-	 */
-	void setMergeSuperProperties(boolean value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperProperties <em>Merge Super Properties</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetMergeSuperProperties()
-	 * @see #isMergeSuperProperties()
-	 * @see #setMergeSuperProperties(boolean)
-	 * @generated
-	 */
-	void unsetMergeSuperProperties();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperProperties <em>Merge Super Properties</em>}' attribute is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Merge Super Properties</em>' attribute is set.
-	 * @see #unsetMergeSuperProperties()
-	 * @see #isMergeSuperProperties()
-	 * @see #setMergeSuperProperties(boolean)
-	 * @generated
-	 */
-	boolean isSetMergeSuperProperties();
-
-	/**
-	 * Returns the value of the '<em><b>Merge Super Methods</b></em>' attribute.
-	 * The default value is <code>"true"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Merge Super Behaviors</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * Should the methods of super types be merged when asking for eAllBehaviors.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Merge Super Methods</em>' attribute.
-	 * @see #isSetMergeSuperMethods()
-	 * @see #unsetMergeSuperMethods()
-	 * @see #setMergeSuperMethods(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getBeanDecorator_MergeSuperMethods()
-	 * @model default="true" unsettable="true"
-	 * @generated
-	 */
-	boolean isMergeSuperMethods();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperMethods <em>Merge Super Methods</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Merge Super Methods</em>' attribute.
-	 * @see #isSetMergeSuperMethods()
-	 * @see #unsetMergeSuperMethods()
-	 * @see #isMergeSuperMethods()
-	 * @generated
-	 */
-	void setMergeSuperMethods(boolean value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperMethods <em>Merge Super Methods</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetMergeSuperMethods()
-	 * @see #isMergeSuperMethods()
-	 * @see #setMergeSuperMethods(boolean)
-	 * @generated
-	 */
-	void unsetMergeSuperMethods();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperMethods <em>Merge Super Methods</em>}' attribute is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Merge Super Methods</em>' attribute is set.
-	 * @see #unsetMergeSuperMethods()
-	 * @see #isMergeSuperMethods()
-	 * @see #setMergeSuperMethods(boolean)
-	 * @generated
-	 */
-	boolean isSetMergeSuperMethods();
-
-	/**
-	 * Returns the value of the '<em><b>Merge Super Events</b></em>' attribute.
-	 * The default value is <code>"true"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Merge Super Events</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * Should the events of super types be merged when asking for eAllEvents.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Merge Super Events</em>' attribute.
-	 * @see #isSetMergeSuperEvents()
-	 * @see #unsetMergeSuperEvents()
-	 * @see #setMergeSuperEvents(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getBeanDecorator_MergeSuperEvents()
-	 * @model default="true" unsettable="true"
-	 * @generated
-	 */
-	boolean isMergeSuperEvents();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperEvents <em>Merge Super Events</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Merge Super Events</em>' attribute.
-	 * @see #isSetMergeSuperEvents()
-	 * @see #unsetMergeSuperEvents()
-	 * @see #isMergeSuperEvents()
-	 * @generated
-	 */
-	void setMergeSuperEvents(boolean value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperEvents <em>Merge Super Events</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetMergeSuperEvents()
-	 * @see #isMergeSuperEvents()
-	 * @see #setMergeSuperEvents(boolean)
-	 * @generated
-	 */
-	void unsetMergeSuperEvents();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperEvents <em>Merge Super Events</em>}' attribute is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Merge Super Events</em>' attribute is set.
-	 * @see #unsetMergeSuperEvents()
-	 * @see #isMergeSuperEvents()
-	 * @see #setMergeSuperEvents(boolean)
-	 * @generated
-	 */
-	boolean isSetMergeSuperEvents();
-
-	/**
-	 * Returns the value of the '<em><b>Introspect Properties</b></em>' attribute.
-	 * The default value is <code>"true"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Introspect Properties</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * Should the properties from the introspection be added to the class. This allows properties to not be introspected and to use only what is defined explicitly in the JavaClass xmi file.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Introspect Properties</em>' attribute.
-	 * @see #setIntrospectProperties(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getBeanDecorator_IntrospectProperties()
-	 * @model default="true"
-	 * @generated
-	 */
-	boolean isIntrospectProperties();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isIntrospectProperties <em>Introspect Properties</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Introspect Properties</em>' attribute.
-	 * @see #isIntrospectProperties()
-	 * @generated
-	 */
-	void setIntrospectProperties(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>Introspect Methods</b></em>' attribute.
-	 * The default value is <code>"true"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Introspect Behaviors</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * Should the methods from the introspection be added to the class. This allows methods to not be introspected and to use only what is defined explicitly in the JavaClass xmi file.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Introspect Methods</em>' attribute.
-	 * @see #setIntrospectMethods(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getBeanDecorator_IntrospectMethods()
-	 * @model default="true"
-	 * @generated
-	 */
-	boolean isIntrospectMethods();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isIntrospectMethods <em>Introspect Methods</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Introspect Methods</em>' attribute.
-	 * @see #isIntrospectMethods()
-	 * @generated
-	 */
-	void setIntrospectMethods(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>Introspect Events</b></em>' attribute.
-	 * The default value is <code>"true"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Introspect Events</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * Should the events from the introspection be added to the class. This allows events to not be introspected and to use only what is defined explicitly in the JavaClass xmi file.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Introspect Events</em>' attribute.
-	 * @see #setIntrospectEvents(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getBeanDecorator_IntrospectEvents()
-	 * @model default="true"
-	 * @generated
-	 */
-	boolean isIntrospectEvents();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isIntrospectEvents <em>Introspect Events</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Introspect Events</em>' attribute.
-	 * @see #isIntrospectEvents()
-	 * @generated
-	 */
-	void setIntrospectEvents(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>Customizer Class</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Customizer Class</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Customizer Class</em>' reference.
-	 * @see #setCustomizerClass(JavaClass)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getBeanDecorator_CustomizerClass()
-	 * @model
-	 * @generated
-	 */
-	JavaClass getCustomizerClass();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#getCustomizerClass <em>Customizer Class</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Customizer Class</em>' reference.
-	 * @see #getCustomizerClass()
-	 * @generated
-	 */
-	void setCustomizerClass(JavaClass value);
-
-	/**
-	 * Returns the value of the '<em><b>Do Beaninfo</b></em>' attribute.
-	 * The default value is <code>"true"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Do Beaninfo</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * This means do we go and get the beaninfo from the remote vm. If false, then it will not try to get the beaninfo. This doesn't prevent introspection through reflection. That is controled by the separate introspect... attributes.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Do Beaninfo</em>' attribute.
-	 * @see #setDoBeaninfo(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getBeanDecorator_DoBeaninfo()
-	 * @model default="true"
-	 * @generated
-	 */
-	boolean isDoBeaninfo();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isDoBeaninfo <em>Do Beaninfo</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Do Beaninfo</em>' attribute.
-	 * @see #isDoBeaninfo()
-	 * @generated
-	 */
-	void setDoBeaninfo(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>Not Inherited Property Names</b></em>' attribute list.
-	 * The list contents are of type {@link java.lang.String}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * This is the list of inherited property names to not use in getAllProperties(). These names are properties that should not be inherited and should not show through. If the inherited property is not on the list then it will show in getAllProperties().
-	 * <p>
-	 * This list will be empty if all properties are inherited or if the mergeSuperProperties flag is false.
-	 * <p>
-	 * Note: This attribute is not meant to be changed by clients. It is an internal attribute.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Not Inherited Property Names</em>' attribute list.
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getBeanDecorator_NotInheritedPropertyNames()
-	 * @model type="java.lang.String"
-	 * @generated
-	 */
-	EList getNotInheritedPropertyNames();
-
-	/**
-	 * Returns the value of the '<em><b>Not Inherited Method Names</b></em>' attribute list.
-	 * The list contents are of type {@link java.lang.String}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * This is the list of inherited method names to not use in eAllOperations(). These names are operations that should not be inherited and should not show through. If the inherited operation is not on the list then it will show in getAllOperations().
-	 * <p>
-	 * This list will be empty if all operations are inherited or if the mergeSuperBehaviors flag is false.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Not Inherited Method Names</em>' attribute list.
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getBeanDecorator_NotInheritedMethodNames()
-	 * @model type="java.lang.String"
-	 * @generated
-	 */
-	EList getNotInheritedMethodNames();
-
-	/**
-	 * Returns the value of the '<em><b>Not Inherited Event Names</b></em>' attribute list.
-	 * The list contents are of type {@link java.lang.String}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * This is the list of inherited event names to not use in getAllEvents(). These names are events that should not be inherited and should not show through. If the inherited event is not on the list then it will show in getAllEvents().
-	 * <p>
-	 * This list will be empty if all events are inherited or if the mergeSuperEvents flag is false.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Not Inherited Event Names</em>' attribute list.
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getBeanDecorator_NotInheritedEventNames()
-	 * @model type="java.lang.String"
-	 * @generated
-	 */
-	EList getNotInheritedEventNames();
-
-	/**
-	 * Return the URL of a 16x16 Color icon
-	 */
-	URL getIconURL();
-	
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeanEvent.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeanEvent.java
deleted file mode 100644
index fbd56cf..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeanEvent.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jem.internal.beaninfo;
-/*
- *  $RCSfile: BeanEvent.java,v $
- *  $Revision: 1.6 $  $Date: 2005/04/14 19:05:36 $ 
- */
-
-import org.eclipse.jem.java.JavaEvent;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Bean Event</b></em>'.
- * <!-- end-user-doc -->
- *
- * <!-- begin-model-doc -->
- * Event from Introspection/Reflection.
- * <p>
- * The BeanEvent will be under the JavaClass' events and allEvents feature. Each BeanEvent will be decorated by an EventSetDecorator.
- * <!-- end-model-doc -->
- *
- *
- * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getBeanEvent()
- * @model
- * @generated
- */
-
-public interface BeanEvent extends JavaEvent{
-
-	
-	
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeaninfoFactory.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeaninfoFactory.java
deleted file mode 100644
index 1d99aaa..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeaninfoFactory.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package org.eclipse.jem.internal.beaninfo;
-/*******************************************************************************
- * Copyright (c)  2001, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: BeaninfoFactory.java,v $
- *  $Revision: 1.3 $  $Date: 2005/02/15 22:44:20 $ 
- */
-
-
-import org.eclipse.emf.ecore.EFactory;
-/**
- * <!-- begin-user-doc -->
- * The <b>Factory</b> for the model.
- * It provides a create method for each non-abstract class of the model.
- * <!-- end-user-doc -->
- * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage
- * @generated
- */
-
-
-public interface BeaninfoFactory extends EFactory{
-	/**
-	 * The singleton instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	BeaninfoFactory eINSTANCE = new org.eclipse.jem.internal.beaninfo.impl.BeaninfoFactoryImpl();
-
-	/**
-	 * Returns a new object of class '<em>Feature Decorator</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Feature Decorator</em>'.
-	 * @generated
-	 */
-	FeatureDecorator createFeatureDecorator();
-
-	/**
-	 * Returns a new object of class '<em>Event Set Decorator</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Event Set Decorator</em>'.
-	 * @generated
-	 */
-	EventSetDecorator createEventSetDecorator();
-
-	/**
-	 * Returns a new object of class '<em>Method Proxy</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Method Proxy</em>'.
-	 * @generated
-	 */
-	MethodProxy createMethodProxy();
-
-	/**
-	 * Returns a new object of class '<em>Property Decorator</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Property Decorator</em>'.
-	 * @generated
-	 */
-	PropertyDecorator createPropertyDecorator();
-
-	/**
-	 * Returns a new object of class '<em>Indexed Property Decorator</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Indexed Property Decorator</em>'.
-	 * @generated
-	 */
-	IndexedPropertyDecorator createIndexedPropertyDecorator();
-
-	/**
-	 * Returns a new object of class '<em>Bean Decorator</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Bean Decorator</em>'.
-	 * @generated
-	 */
-	BeanDecorator createBeanDecorator();
-
-	/**
-	 * Returns a new object of class '<em>Method Decorator</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Method Decorator</em>'.
-	 * @generated
-	 */
-	MethodDecorator createMethodDecorator();
-
-	/**
-	 * Returns a new object of class '<em>Parameter Decorator</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Parameter Decorator</em>'.
-	 * @generated
-	 */
-	ParameterDecorator createParameterDecorator();
-
-	/**
-	 * Returns the package supported by this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the package supported by this factory.
-	 * @generated
-	 */
-	BeaninfoPackage getBeaninfoPackage();
-
-	/**
-	 * Returns a new object of class '<em>Bean Event</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Bean Event</em>'.
-	 * @generated
-	 */
-	BeanEvent createBeanEvent();
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeaninfoPackage.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeaninfoPackage.java
deleted file mode 100644
index 736ad9d..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeaninfoPackage.java
+++ /dev/null
@@ -1,2691 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jem.internal.beaninfo;
-/*
- *  $RCSfile: BeaninfoPackage.java,v $
- *  $Revision: 1.8 $  $Date: 2005/04/14 19:05:36 $ 
- */
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EcorePackage;
-
-import org.eclipse.jem.java.JavaRefPackage;
-/**
- * <!-- begin-user-doc -->
- * The <b>Package</b> for the model.
- * It contains accessors for the meta objects to represent
- * <ul>
- *   <li>each class,</li>
- *   <li>each feature of each class,</li>
- *   <li>each enum,</li>
- *   <li>and each data type</li>
- * </ul>
- * <!-- end-user-doc -->
- * @see org.eclipse.jem.internal.beaninfo.BeaninfoFactory
- * @generated
- */
-
-public interface BeaninfoPackage extends EPackage{
-	/**
-	 * The package name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNAME = "beaninfo"; //$NON-NLS-1$
-
-	/**
-	 * The package namespace URI.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_URI = "http:///org/eclipse/jem/internal/beaninfo/beaninfo.ecore"; //$NON-NLS-1$
-
-	/**
-	 * The package namespace name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_PREFIX = "org.eclipse.jem.internal.beaninfo.beaninfo"; //$NON-NLS-1$
-
-	/**
-	 * The singleton instance of the package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	BeaninfoPackage eINSTANCE = org.eclipse.jem.internal.beaninfo.impl.BeaninfoPackageImpl.init();
-
-	
-	/**
-	 * The meta object id for the '{@link org.eclipse.jem.internal.beaninfo.impl.FeatureDecoratorImpl <em>Feature Decorator</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jem.internal.beaninfo.impl.FeatureDecoratorImpl
-	 * @see org.eclipse.jem.internal.beaninfo.impl.BeaninfoPackageImpl#getFeatureDecorator()
-	 * @generated
-	 */
-	int FEATURE_DECORATOR = 0;
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR__EANNOTATIONS = EcorePackage.EANNOTATION__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Source</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR__SOURCE = EcorePackage.EANNOTATION__SOURCE;
-
-	/**
-	 * The feature id for the '<em><b>Details</b></em>' map.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR__DETAILS = EcorePackage.EANNOTATION__DETAILS;
-
-	/**
-	 * The feature id for the '<em><b>EModel Element</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR__EMODEL_ELEMENT = EcorePackage.EANNOTATION__EMODEL_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Contents</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR__CONTENTS = EcorePackage.EANNOTATION__CONTENTS;
-
-	/**
-	 * The feature id for the '<em><b>References</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR__REFERENCES = EcorePackage.EANNOTATION__REFERENCES;
-
-	/**
-	 * The feature id for the '<em><b>Display Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR__DISPLAY_NAME = EcorePackage.EANNOTATION_FEATURE_COUNT + 0;
-	/**
-	 * The feature id for the '<em><b>Short Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR__SHORT_DESCRIPTION = EcorePackage.EANNOTATION_FEATURE_COUNT + 1;
-	/**
-	 * The feature id for the '<em><b>Category</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR__CATEGORY = EcorePackage.EANNOTATION_FEATURE_COUNT + 2;
-	/**
-	 * The feature id for the '<em><b>Expert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR__EXPERT = EcorePackage.EANNOTATION_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Hidden</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR__HIDDEN = EcorePackage.EANNOTATION_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Preferred</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR__PREFERRED = EcorePackage.EANNOTATION_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>Merge Introspection</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR__MERGE_INTROSPECTION = EcorePackage.EANNOTATION_FEATURE_COUNT + 6;
-	/**
-	 * The feature id for the '<em><b>Attributes Explicit Empty</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY = EcorePackage.EANNOTATION_FEATURE_COUNT + 7;
-
-	/**
-	 * The feature id for the '<em><b>Implicitly Set Bits</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR__IMPLICITLY_SET_BITS = EcorePackage.EANNOTATION_FEATURE_COUNT + 8;
-
-	/**
-	 * The feature id for the '<em><b>Implicit Decorator Flag</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR__IMPLICIT_DECORATOR_FLAG = EcorePackage.EANNOTATION_FEATURE_COUNT + 9;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jem.internal.beaninfo.impl.EventSetDecoratorImpl <em>Event Set Decorator</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jem.internal.beaninfo.impl.EventSetDecoratorImpl
-	 * @see org.eclipse.jem.internal.beaninfo.impl.BeaninfoPackageImpl#getEventSetDecorator()
-	 * @generated
-	 */
-	int EVENT_SET_DECORATOR = 2;
-	/**
-	 * The meta object id for the '{@link org.eclipse.jem.internal.beaninfo.impl.MethodProxyImpl <em>Method Proxy</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jem.internal.beaninfo.impl.MethodProxyImpl
-	 * @see org.eclipse.jem.internal.beaninfo.impl.BeaninfoPackageImpl#getMethodProxy()
-	 * @generated
-	 */
-	int METHOD_PROXY = 7;
-	/**
-	 * The meta object id for the '{@link org.eclipse.jem.internal.beaninfo.impl.PropertyDecoratorImpl <em>Property Decorator</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jem.internal.beaninfo.impl.PropertyDecoratorImpl
-	 * @see org.eclipse.jem.internal.beaninfo.impl.BeaninfoPackageImpl#getPropertyDecorator()
-	 * @generated
-	 */
-	int PROPERTY_DECORATOR = 5;
-	/**
-	 * The meta object id for the '{@link org.eclipse.jem.internal.beaninfo.impl.IndexedPropertyDecoratorImpl <em>Indexed Property Decorator</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jem.internal.beaninfo.impl.IndexedPropertyDecoratorImpl
-	 * @see org.eclipse.jem.internal.beaninfo.impl.BeaninfoPackageImpl#getIndexedPropertyDecorator()
-	 * @generated
-	 */
-	int INDEXED_PROPERTY_DECORATOR = 6;
-	/**
-	 * The meta object id for the '{@link org.eclipse.jem.internal.beaninfo.impl.BeanDecoratorImpl <em>Bean Decorator</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jem.internal.beaninfo.impl.BeanDecoratorImpl
-	 * @see org.eclipse.jem.internal.beaninfo.impl.BeaninfoPackageImpl#getBeanDecorator()
-	 * @generated
-	 */
-	int BEAN_DECORATOR = 1;
-	/**
-	 * The meta object id for the '{@link org.eclipse.jem.internal.beaninfo.impl.MethodDecoratorImpl <em>Method Decorator</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jem.internal.beaninfo.impl.MethodDecoratorImpl
-	 * @see org.eclipse.jem.internal.beaninfo.impl.BeaninfoPackageImpl#getMethodDecorator()
-	 * @generated
-	 */
-	int METHOD_DECORATOR = 3;
-	/**
-	 * The meta object id for the '{@link org.eclipse.jem.internal.beaninfo.impl.ParameterDecoratorImpl <em>Parameter Decorator</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jem.internal.beaninfo.impl.ParameterDecoratorImpl
-	 * @see org.eclipse.jem.internal.beaninfo.impl.BeaninfoPackageImpl#getParameterDecorator()
-	 * @generated
-	 */
-	int PARAMETER_DECORATOR = 4;
-	/**
-	 * The meta object id for the '<em>Feature Attribute Value</em>' data type.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jem.internal.beaninfo.common.FeatureAttributeValue
-	 * @see org.eclipse.jem.internal.beaninfo.impl.BeaninfoPackageImpl#getFeatureAttributeValue()
-	 * @generated
-	 */
-	int FEATURE_ATTRIBUTE_VALUE = 11;
-	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' map.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR__ATTRIBUTES = EcorePackage.EANNOTATION_FEATURE_COUNT + 10;
-	/**
-	 * The number of structural features of the the '<em>Feature Decorator</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_DECORATOR_FEATURE_COUNT = EcorePackage.EANNOTATION_FEATURE_COUNT + 11;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__EANNOTATIONS = FEATURE_DECORATOR__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Source</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__SOURCE = FEATURE_DECORATOR__SOURCE;
-
-	/**
-	 * The feature id for the '<em><b>Details</b></em>' map.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__DETAILS = FEATURE_DECORATOR__DETAILS;
-
-	/**
-	 * The feature id for the '<em><b>EModel Element</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__EMODEL_ELEMENT = FEATURE_DECORATOR__EMODEL_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Contents</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__CONTENTS = FEATURE_DECORATOR__CONTENTS;
-
-	/**
-	 * The feature id for the '<em><b>References</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__REFERENCES = FEATURE_DECORATOR__REFERENCES;
-
-	/**
-	 * The feature id for the '<em><b>Display Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__DISPLAY_NAME = FEATURE_DECORATOR__DISPLAY_NAME;
-	/**
-	 * The feature id for the '<em><b>Short Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__SHORT_DESCRIPTION = FEATURE_DECORATOR__SHORT_DESCRIPTION;
-	/**
-	 * The feature id for the '<em><b>Category</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__CATEGORY = FEATURE_DECORATOR__CATEGORY;
-	/**
-	 * The feature id for the '<em><b>Expert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__EXPERT = FEATURE_DECORATOR__EXPERT;
-
-	/**
-	 * The feature id for the '<em><b>Hidden</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__HIDDEN = FEATURE_DECORATOR__HIDDEN;
-
-	/**
-	 * The feature id for the '<em><b>Preferred</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__PREFERRED = FEATURE_DECORATOR__PREFERRED;
-
-	/**
-	 * The feature id for the '<em><b>Merge Introspection</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__MERGE_INTROSPECTION = FEATURE_DECORATOR__MERGE_INTROSPECTION;
-	/**
-	 * The feature id for the '<em><b>Attributes Explicit Empty</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY = FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY;
-
-	/**
-	 * The feature id for the '<em><b>Implicitly Set Bits</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__IMPLICITLY_SET_BITS = FEATURE_DECORATOR__IMPLICITLY_SET_BITS;
-
-	/**
-	 * The feature id for the '<em><b>Implicit Decorator Flag</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__IMPLICIT_DECORATOR_FLAG = FEATURE_DECORATOR__IMPLICIT_DECORATOR_FLAG;
-
-	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' map.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__ATTRIBUTES = FEATURE_DECORATOR__ATTRIBUTES;
-	/**
-	 * The feature id for the '<em><b>Merge Super Properties</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__MERGE_SUPER_PROPERTIES = FEATURE_DECORATOR_FEATURE_COUNT + 0;
-	/**
-	 * The feature id for the '<em><b>Merge Super Methods</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__MERGE_SUPER_METHODS = FEATURE_DECORATOR_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Merge Super Events</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__MERGE_SUPER_EVENTS = FEATURE_DECORATOR_FEATURE_COUNT + 2;
-	/**
-	 * The feature id for the '<em><b>Introspect Properties</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__INTROSPECT_PROPERTIES = FEATURE_DECORATOR_FEATURE_COUNT + 3;
-	/**
-	 * The feature id for the '<em><b>Introspect Methods</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__INTROSPECT_METHODS = FEATURE_DECORATOR_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Introspect Events</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__INTROSPECT_EVENTS = FEATURE_DECORATOR_FEATURE_COUNT + 5;
-	/**
-	 * The feature id for the '<em><b>Do Beaninfo</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__DO_BEANINFO = FEATURE_DECORATOR_FEATURE_COUNT + 6;
-	/**
-	 * The feature id for the '<em><b>Not Inherited Property Names</b></em>' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__NOT_INHERITED_PROPERTY_NAMES = FEATURE_DECORATOR_FEATURE_COUNT + 7;
-
-	/**
-	 * The feature id for the '<em><b>Not Inherited Method Names</b></em>' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__NOT_INHERITED_METHOD_NAMES = FEATURE_DECORATOR_FEATURE_COUNT + 8;
-
-	/**
-	 * The feature id for the '<em><b>Not Inherited Event Names</b></em>' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__NOT_INHERITED_EVENT_NAMES = FEATURE_DECORATOR_FEATURE_COUNT + 9;
-
-	/**
-	 * The feature id for the '<em><b>Customizer Class</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR__CUSTOMIZER_CLASS = FEATURE_DECORATOR_FEATURE_COUNT + 10;
-	/**
-	 * The number of structural features of the the '<em>Bean Decorator</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_DECORATOR_FEATURE_COUNT = FEATURE_DECORATOR_FEATURE_COUNT + 11;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__EANNOTATIONS = FEATURE_DECORATOR__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Source</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__SOURCE = FEATURE_DECORATOR__SOURCE;
-
-	/**
-	 * The feature id for the '<em><b>Details</b></em>' map.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__DETAILS = FEATURE_DECORATOR__DETAILS;
-
-	/**
-	 * The feature id for the '<em><b>EModel Element</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__EMODEL_ELEMENT = FEATURE_DECORATOR__EMODEL_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Contents</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__CONTENTS = FEATURE_DECORATOR__CONTENTS;
-
-	/**
-	 * The feature id for the '<em><b>References</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__REFERENCES = FEATURE_DECORATOR__REFERENCES;
-
-	/**
-	 * The feature id for the '<em><b>Display Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__DISPLAY_NAME = FEATURE_DECORATOR__DISPLAY_NAME;
-	/**
-	 * The feature id for the '<em><b>Short Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__SHORT_DESCRIPTION = FEATURE_DECORATOR__SHORT_DESCRIPTION;
-	/**
-	 * The feature id for the '<em><b>Category</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__CATEGORY = FEATURE_DECORATOR__CATEGORY;
-	/**
-	 * The feature id for the '<em><b>Expert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__EXPERT = FEATURE_DECORATOR__EXPERT;
-
-	/**
-	 * The feature id for the '<em><b>Hidden</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__HIDDEN = FEATURE_DECORATOR__HIDDEN;
-
-	/**
-	 * The feature id for the '<em><b>Preferred</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__PREFERRED = FEATURE_DECORATOR__PREFERRED;
-
-	/**
-	 * The feature id for the '<em><b>Merge Introspection</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__MERGE_INTROSPECTION = FEATURE_DECORATOR__MERGE_INTROSPECTION;
-	/**
-	 * The feature id for the '<em><b>Attributes Explicit Empty</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY = FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY;
-
-	/**
-	 * The feature id for the '<em><b>Implicitly Set Bits</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__IMPLICITLY_SET_BITS = FEATURE_DECORATOR__IMPLICITLY_SET_BITS;
-
-	/**
-	 * The feature id for the '<em><b>Implicit Decorator Flag</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__IMPLICIT_DECORATOR_FLAG = FEATURE_DECORATOR__IMPLICIT_DECORATOR_FLAG;
-
-	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' map.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__ATTRIBUTES = FEATURE_DECORATOR__ATTRIBUTES;
-	/**
-	 * The feature id for the '<em><b>In Default Event Set</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__IN_DEFAULT_EVENT_SET = FEATURE_DECORATOR_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Unicast</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__UNICAST = FEATURE_DECORATOR_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Listener Methods Explicit Empty</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__LISTENER_METHODS_EXPLICIT_EMPTY = FEATURE_DECORATOR_FEATURE_COUNT + 2;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jem.internal.beaninfo.impl.BeanEventImpl <em>Bean Event</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jem.internal.beaninfo.impl.BeanEventImpl
-	 * @see org.eclipse.jem.internal.beaninfo.impl.BeaninfoPackageImpl#getBeanEvent()
-	 * @generated
-	 */
-	int BEAN_EVENT = 8;
-	/**
-	 * The feature id for the '<em><b>Add Listener Method</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__ADD_LISTENER_METHOD = FEATURE_DECORATOR_FEATURE_COUNT + 3;
-	/**
-	 * The feature id for the '<em><b>Listener Methods</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__LISTENER_METHODS = FEATURE_DECORATOR_FEATURE_COUNT + 4;
-	/**
-	 * The feature id for the '<em><b>Listener Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__LISTENER_TYPE = FEATURE_DECORATOR_FEATURE_COUNT + 5;
-	/**
-	 * The feature id for the '<em><b>Remove Listener Method</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__REMOVE_LISTENER_METHOD = FEATURE_DECORATOR_FEATURE_COUNT + 6;
-	/**
-	 * The feature id for the '<em><b>Event Adapter Class</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__EVENT_ADAPTER_CLASS = FEATURE_DECORATOR_FEATURE_COUNT + 7;
-
-	/**
-	 * The feature id for the '<em><b>Ser List Mthd</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR__SER_LIST_MTHD = FEATURE_DECORATOR_FEATURE_COUNT + 8;
-
-	/**
-	 * The number of structural features of the the '<em>Event Set Decorator</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT_SET_DECORATOR_FEATURE_COUNT = FEATURE_DECORATOR_FEATURE_COUNT + 9;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__EANNOTATIONS = FEATURE_DECORATOR__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Source</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__SOURCE = FEATURE_DECORATOR__SOURCE;
-
-	/**
-	 * The feature id for the '<em><b>Details</b></em>' map.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__DETAILS = FEATURE_DECORATOR__DETAILS;
-
-	/**
-	 * The feature id for the '<em><b>EModel Element</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__EMODEL_ELEMENT = FEATURE_DECORATOR__EMODEL_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Contents</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__CONTENTS = FEATURE_DECORATOR__CONTENTS;
-
-	/**
-	 * The feature id for the '<em><b>References</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__REFERENCES = FEATURE_DECORATOR__REFERENCES;
-
-	/**
-	 * The feature id for the '<em><b>Display Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__DISPLAY_NAME = FEATURE_DECORATOR__DISPLAY_NAME;
-	/**
-	 * The feature id for the '<em><b>Short Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__SHORT_DESCRIPTION = FEATURE_DECORATOR__SHORT_DESCRIPTION;
-	/**
-	 * The feature id for the '<em><b>Category</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__CATEGORY = FEATURE_DECORATOR__CATEGORY;
-	/**
-	 * The feature id for the '<em><b>Expert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__EXPERT = FEATURE_DECORATOR__EXPERT;
-
-	/**
-	 * The feature id for the '<em><b>Hidden</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__HIDDEN = FEATURE_DECORATOR__HIDDEN;
-
-	/**
-	 * The feature id for the '<em><b>Preferred</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__PREFERRED = FEATURE_DECORATOR__PREFERRED;
-
-	/**
-	 * The feature id for the '<em><b>Merge Introspection</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__MERGE_INTROSPECTION = FEATURE_DECORATOR__MERGE_INTROSPECTION;
-	/**
-	 * The feature id for the '<em><b>Attributes Explicit Empty</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY = FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY;
-
-	/**
-	 * The feature id for the '<em><b>Implicitly Set Bits</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__IMPLICITLY_SET_BITS = FEATURE_DECORATOR__IMPLICITLY_SET_BITS;
-
-	/**
-	 * The feature id for the '<em><b>Implicit Decorator Flag</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__IMPLICIT_DECORATOR_FLAG = FEATURE_DECORATOR__IMPLICIT_DECORATOR_FLAG;
-
-	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' map.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__ATTRIBUTES = FEATURE_DECORATOR__ATTRIBUTES;
-	/**
-	 * The feature id for the '<em><b>Parms Explicit Empty</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__PARMS_EXPLICIT_EMPTY = FEATURE_DECORATOR_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Parameter Descriptors</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__PARAMETER_DESCRIPTORS = FEATURE_DECORATOR_FEATURE_COUNT + 1;
-	/**
-	 * The feature id for the '<em><b>Ser Parm Desc</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR__SER_PARM_DESC = FEATURE_DECORATOR_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the the '<em>Method Decorator</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_DECORATOR_FEATURE_COUNT = FEATURE_DECORATOR_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__EANNOTATIONS = FEATURE_DECORATOR__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Source</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__SOURCE = FEATURE_DECORATOR__SOURCE;
-
-	/**
-	 * The feature id for the '<em><b>Details</b></em>' map.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__DETAILS = FEATURE_DECORATOR__DETAILS;
-
-	/**
-	 * The feature id for the '<em><b>EModel Element</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__EMODEL_ELEMENT = FEATURE_DECORATOR__EMODEL_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Contents</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__CONTENTS = FEATURE_DECORATOR__CONTENTS;
-
-	/**
-	 * The feature id for the '<em><b>References</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__REFERENCES = FEATURE_DECORATOR__REFERENCES;
-
-	/**
-	 * The feature id for the '<em><b>Display Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__DISPLAY_NAME = FEATURE_DECORATOR__DISPLAY_NAME;
-	/**
-	 * The feature id for the '<em><b>Short Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__SHORT_DESCRIPTION = FEATURE_DECORATOR__SHORT_DESCRIPTION;
-	/**
-	 * The feature id for the '<em><b>Category</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__CATEGORY = FEATURE_DECORATOR__CATEGORY;
-	/**
-	 * The feature id for the '<em><b>Expert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__EXPERT = FEATURE_DECORATOR__EXPERT;
-
-	/**
-	 * The feature id for the '<em><b>Hidden</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__HIDDEN = FEATURE_DECORATOR__HIDDEN;
-
-	/**
-	 * The feature id for the '<em><b>Preferred</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__PREFERRED = FEATURE_DECORATOR__PREFERRED;
-
-	/**
-	 * The feature id for the '<em><b>Merge Introspection</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__MERGE_INTROSPECTION = FEATURE_DECORATOR__MERGE_INTROSPECTION;
-	/**
-	 * The feature id for the '<em><b>Attributes Explicit Empty</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY = FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY;
-
-	/**
-	 * The feature id for the '<em><b>Implicitly Set Bits</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__IMPLICITLY_SET_BITS = FEATURE_DECORATOR__IMPLICITLY_SET_BITS;
-
-	/**
-	 * The feature id for the '<em><b>Implicit Decorator Flag</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__IMPLICIT_DECORATOR_FLAG = FEATURE_DECORATOR__IMPLICIT_DECORATOR_FLAG;
-
-	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' map.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__ATTRIBUTES = FEATURE_DECORATOR__ATTRIBUTES;
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__NAME = FEATURE_DECORATOR_FEATURE_COUNT + 0;
-	/**
-	 * The feature id for the '<em><b>Parameter</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR__PARAMETER = FEATURE_DECORATOR_FEATURE_COUNT + 1;
-	/**
-	 * The number of structural features of the the '<em>Parameter Decorator</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_DECORATOR_FEATURE_COUNT = FEATURE_DECORATOR_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__EANNOTATIONS = FEATURE_DECORATOR__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Source</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__SOURCE = FEATURE_DECORATOR__SOURCE;
-
-	/**
-	 * The feature id for the '<em><b>Details</b></em>' map.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__DETAILS = FEATURE_DECORATOR__DETAILS;
-
-	/**
-	 * The feature id for the '<em><b>EModel Element</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__EMODEL_ELEMENT = FEATURE_DECORATOR__EMODEL_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Contents</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__CONTENTS = FEATURE_DECORATOR__CONTENTS;
-
-	/**
-	 * The feature id for the '<em><b>References</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__REFERENCES = FEATURE_DECORATOR__REFERENCES;
-
-	/**
-	 * The feature id for the '<em><b>Display Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__DISPLAY_NAME = FEATURE_DECORATOR__DISPLAY_NAME;
-	/**
-	 * The feature id for the '<em><b>Short Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__SHORT_DESCRIPTION = FEATURE_DECORATOR__SHORT_DESCRIPTION;
-	/**
-	 * The feature id for the '<em><b>Category</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__CATEGORY = FEATURE_DECORATOR__CATEGORY;
-	/**
-	 * The feature id for the '<em><b>Expert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__EXPERT = FEATURE_DECORATOR__EXPERT;
-
-	/**
-	 * The feature id for the '<em><b>Hidden</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__HIDDEN = FEATURE_DECORATOR__HIDDEN;
-
-	/**
-	 * The feature id for the '<em><b>Preferred</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__PREFERRED = FEATURE_DECORATOR__PREFERRED;
-
-	/**
-	 * The feature id for the '<em><b>Merge Introspection</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__MERGE_INTROSPECTION = FEATURE_DECORATOR__MERGE_INTROSPECTION;
-	/**
-	 * The feature id for the '<em><b>Attributes Explicit Empty</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY = FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY;
-
-	/**
-	 * The feature id for the '<em><b>Implicitly Set Bits</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__IMPLICITLY_SET_BITS = FEATURE_DECORATOR__IMPLICITLY_SET_BITS;
-
-	/**
-	 * The feature id for the '<em><b>Implicit Decorator Flag</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__IMPLICIT_DECORATOR_FLAG = FEATURE_DECORATOR__IMPLICIT_DECORATOR_FLAG;
-
-	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' map.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__ATTRIBUTES = FEATURE_DECORATOR__ATTRIBUTES;
-	/**
-	 * The feature id for the '<em><b>Bound</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__BOUND = FEATURE_DECORATOR_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Constrained</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__CONSTRAINED = FEATURE_DECORATOR_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Design Time</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__DESIGN_TIME = FEATURE_DECORATOR_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Always Incompatible</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__ALWAYS_INCOMPATIBLE = FEATURE_DECORATOR_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Filter Flags</b></em>' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__FILTER_FLAGS = FEATURE_DECORATOR_FEATURE_COUNT + 4;
-	/**
-	 * The feature id for the '<em><b>Field Read Only</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__FIELD_READ_ONLY = FEATURE_DECORATOR_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>Property Editor Class</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__PROPERTY_EDITOR_CLASS = FEATURE_DECORATOR_FEATURE_COUNT + 6;
-	/**
-	 * The feature id for the '<em><b>Read Method</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__READ_METHOD = FEATURE_DECORATOR_FEATURE_COUNT + 7;
-	/**
-	 * The feature id for the '<em><b>Write Method</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__WRITE_METHOD = FEATURE_DECORATOR_FEATURE_COUNT + 8;
-	/**
-	 * The feature id for the '<em><b>Field</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR__FIELD = FEATURE_DECORATOR_FEATURE_COUNT + 9;
-
-	/**
-	 * The number of structural features of the the '<em>Property Decorator</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DECORATOR_FEATURE_COUNT = FEATURE_DECORATOR_FEATURE_COUNT + 10;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__EANNOTATIONS = PROPERTY_DECORATOR__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Source</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__SOURCE = PROPERTY_DECORATOR__SOURCE;
-
-	/**
-	 * The feature id for the '<em><b>Details</b></em>' map.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__DETAILS = PROPERTY_DECORATOR__DETAILS;
-
-	/**
-	 * The feature id for the '<em><b>EModel Element</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__EMODEL_ELEMENT = PROPERTY_DECORATOR__EMODEL_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Contents</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__CONTENTS = PROPERTY_DECORATOR__CONTENTS;
-
-	/**
-	 * The feature id for the '<em><b>References</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__REFERENCES = PROPERTY_DECORATOR__REFERENCES;
-
-	/**
-	 * The feature id for the '<em><b>Display Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__DISPLAY_NAME = PROPERTY_DECORATOR__DISPLAY_NAME;
-	/**
-	 * The feature id for the '<em><b>Short Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__SHORT_DESCRIPTION = PROPERTY_DECORATOR__SHORT_DESCRIPTION;
-	/**
-	 * The feature id for the '<em><b>Category</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__CATEGORY = PROPERTY_DECORATOR__CATEGORY;
-	/**
-	 * The feature id for the '<em><b>Expert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__EXPERT = PROPERTY_DECORATOR__EXPERT;
-
-	/**
-	 * The feature id for the '<em><b>Hidden</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__HIDDEN = PROPERTY_DECORATOR__HIDDEN;
-
-	/**
-	 * The feature id for the '<em><b>Preferred</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__PREFERRED = PROPERTY_DECORATOR__PREFERRED;
-
-	/**
-	 * The feature id for the '<em><b>Merge Introspection</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__MERGE_INTROSPECTION = PROPERTY_DECORATOR__MERGE_INTROSPECTION;
-	/**
-	 * The feature id for the '<em><b>Attributes Explicit Empty</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY = PROPERTY_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY;
-
-	/**
-	 * The feature id for the '<em><b>Implicitly Set Bits</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__IMPLICITLY_SET_BITS = PROPERTY_DECORATOR__IMPLICITLY_SET_BITS;
-
-	/**
-	 * The feature id for the '<em><b>Implicit Decorator Flag</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__IMPLICIT_DECORATOR_FLAG = PROPERTY_DECORATOR__IMPLICIT_DECORATOR_FLAG;
-
-	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' map.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__ATTRIBUTES = PROPERTY_DECORATOR__ATTRIBUTES;
-	/**
-	 * The feature id for the '<em><b>Bound</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__BOUND = PROPERTY_DECORATOR__BOUND;
-
-	/**
-	 * The feature id for the '<em><b>Constrained</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__CONSTRAINED = PROPERTY_DECORATOR__CONSTRAINED;
-
-	/**
-	 * The feature id for the '<em><b>Design Time</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__DESIGN_TIME = PROPERTY_DECORATOR__DESIGN_TIME;
-
-	/**
-	 * The feature id for the '<em><b>Always Incompatible</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__ALWAYS_INCOMPATIBLE = PROPERTY_DECORATOR__ALWAYS_INCOMPATIBLE;
-
-	/**
-	 * The feature id for the '<em><b>Filter Flags</b></em>' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__FILTER_FLAGS = PROPERTY_DECORATOR__FILTER_FLAGS;
-	/**
-	 * The feature id for the '<em><b>Field Read Only</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__FIELD_READ_ONLY = PROPERTY_DECORATOR__FIELD_READ_ONLY;
-
-	/**
-	 * The feature id for the '<em><b>Property Editor Class</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__PROPERTY_EDITOR_CLASS = PROPERTY_DECORATOR__PROPERTY_EDITOR_CLASS;
-	/**
-	 * The feature id for the '<em><b>Read Method</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__READ_METHOD = PROPERTY_DECORATOR__READ_METHOD;
-	/**
-	 * The feature id for the '<em><b>Write Method</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__WRITE_METHOD = PROPERTY_DECORATOR__WRITE_METHOD;
-	/**
-	 * The feature id for the '<em><b>Field</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__FIELD = PROPERTY_DECORATOR__FIELD;
-
-	/**
-	 * The feature id for the '<em><b>Indexed Read Method</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__INDEXED_READ_METHOD = PROPERTY_DECORATOR_FEATURE_COUNT + 0;
-	/**
-	 * The feature id for the '<em><b>Indexed Write Method</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR__INDEXED_WRITE_METHOD = PROPERTY_DECORATOR_FEATURE_COUNT + 1;
-	/**
-	 * The number of structural features of the the '<em>Indexed Property Decorator</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEXED_PROPERTY_DECORATOR_FEATURE_COUNT = PROPERTY_DECORATOR_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_PROXY__EANNOTATIONS = EcorePackage.EOPERATION__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_PROXY__NAME = EcorePackage.EOPERATION__NAME;
-	/**
-	 * The feature id for the '<em><b>Ordered</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_PROXY__ORDERED = EcorePackage.EOPERATION__ORDERED;
-
-	/**
-	 * The feature id for the '<em><b>Unique</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_PROXY__UNIQUE = EcorePackage.EOPERATION__UNIQUE;
-
-	/**
-	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_PROXY__LOWER_BOUND = EcorePackage.EOPERATION__LOWER_BOUND;
-
-	/**
-	 * The feature id for the '<em><b>Upper Bound</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_PROXY__UPPER_BOUND = EcorePackage.EOPERATION__UPPER_BOUND;
-
-	/**
-	 * The feature id for the '<em><b>Many</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_PROXY__MANY = EcorePackage.EOPERATION__MANY;
-
-	/**
-	 * The feature id for the '<em><b>Required</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_PROXY__REQUIRED = EcorePackage.EOPERATION__REQUIRED;
-
-	/**
-	 * The feature id for the '<em><b>EType</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_PROXY__ETYPE = EcorePackage.EOPERATION__ETYPE;
-
-	/**
-	 * The feature id for the '<em><b>EContaining Class</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_PROXY__ECONTAINING_CLASS = EcorePackage.EOPERATION__ECONTAINING_CLASS;
-
-	/**
-	 * The feature id for the '<em><b>EParameters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_PROXY__EPARAMETERS = EcorePackage.EOPERATION__EPARAMETERS;
-
-	/**
-	 * The feature id for the '<em><b>EExceptions</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_PROXY__EEXCEPTIONS = EcorePackage.EOPERATION__EEXCEPTIONS;
-
-	/**
-	 * The feature id for the '<em><b>Method</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_PROXY__METHOD = EcorePackage.EOPERATION_FEATURE_COUNT + 0;
-	/**
-	 * The number of structural features of the the '<em>Method Proxy</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int METHOD_PROXY_FEATURE_COUNT = EcorePackage.EOPERATION_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT__EANNOTATIONS = JavaRefPackage.JAVA_EVENT__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT__NAME = JavaRefPackage.JAVA_EVENT__NAME;
-	/**
-	 * The feature id for the '<em><b>Ordered</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT__ORDERED = JavaRefPackage.JAVA_EVENT__ORDERED;
-
-	/**
-	 * The feature id for the '<em><b>Unique</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT__UNIQUE = JavaRefPackage.JAVA_EVENT__UNIQUE;
-
-	/**
-	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT__LOWER_BOUND = JavaRefPackage.JAVA_EVENT__LOWER_BOUND;
-
-	/**
-	 * The feature id for the '<em><b>Upper Bound</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT__UPPER_BOUND = JavaRefPackage.JAVA_EVENT__UPPER_BOUND;
-
-	/**
-	 * The feature id for the '<em><b>Many</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT__MANY = JavaRefPackage.JAVA_EVENT__MANY;
-
-	/**
-	 * The feature id for the '<em><b>Required</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT__REQUIRED = JavaRefPackage.JAVA_EVENT__REQUIRED;
-
-	/**
-	 * The feature id for the '<em><b>EType</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT__ETYPE = JavaRefPackage.JAVA_EVENT__ETYPE;
-
-	/**
-	 * The feature id for the '<em><b>Changeable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT__CHANGEABLE = JavaRefPackage.JAVA_EVENT__CHANGEABLE;
-
-	/**
-	 * The feature id for the '<em><b>Volatile</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT__VOLATILE = JavaRefPackage.JAVA_EVENT__VOLATILE;
-
-	/**
-	 * The feature id for the '<em><b>Transient</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT__TRANSIENT = JavaRefPackage.JAVA_EVENT__TRANSIENT;
-
-	/**
-	 * The feature id for the '<em><b>Default Value Literal</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT__DEFAULT_VALUE_LITERAL = JavaRefPackage.JAVA_EVENT__DEFAULT_VALUE_LITERAL;
-
-	/**
-	 * The feature id for the '<em><b>Default Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT__DEFAULT_VALUE = JavaRefPackage.JAVA_EVENT__DEFAULT_VALUE;
-
-	/**
-	 * The feature id for the '<em><b>Unsettable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT__UNSETTABLE = JavaRefPackage.JAVA_EVENT__UNSETTABLE;
-
-	/**
-	 * The feature id for the '<em><b>Derived</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT__DERIVED = JavaRefPackage.JAVA_EVENT__DERIVED;
-
-	/**
-	 * The feature id for the '<em><b>EContaining Class</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT__ECONTAINING_CLASS = JavaRefPackage.JAVA_EVENT__ECONTAINING_CLASS;
-
-	/**
-	 * The number of structural features of the the '<em>Bean Event</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEAN_EVENT_FEATURE_COUNT = JavaRefPackage.JAVA_EVENT_FEATURE_COUNT + 0;
-
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jem.internal.beaninfo.impl.FeatureAttributeMapEntryImpl <em>Feature Attribute Map Entry</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jem.internal.beaninfo.impl.FeatureAttributeMapEntryImpl
-	 * @see org.eclipse.jem.internal.beaninfo.impl.BeaninfoPackageImpl#getFeatureAttributeMapEntry()
-	 * @generated
-	 */
-	int FEATURE_ATTRIBUTE_MAP_ENTRY = 9;
-
-	/**
-	 * The feature id for the '<em><b>Key</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_ATTRIBUTE_MAP_ENTRY__KEY = 0;
-
-	/**
-	 * The feature id for the '<em><b>Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_ATTRIBUTE_MAP_ENTRY__VALUE = 1;
-
-	/**
-	 * The number of structural features of the the '<em>Feature Attribute Map Entry</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_ATTRIBUTE_MAP_ENTRY_FEATURE_COUNT = 2;
-
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jem.internal.beaninfo.ImplicitItem <em>Implicit Item</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jem.internal.beaninfo.ImplicitItem
-	 * @see org.eclipse.jem.internal.beaninfo.impl.BeaninfoPackageImpl#getImplicitItem()
-	 * @generated
-	 */
-	int IMPLICIT_ITEM = 10;
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator <em>Feature Decorator</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Feature Decorator</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.FeatureDecorator
-	 * @generated
-	 */
-	EClass getFeatureDecorator();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getDisplayName <em>Display Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Display Name</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.FeatureDecorator#getDisplayName()
-	 * @see #getFeatureDecorator()
-	 * @generated
-	 */
-	EAttribute getFeatureDecorator_DisplayName();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getShortDescription <em>Short Description</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Short Description</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.FeatureDecorator#getShortDescription()
-	 * @see #getFeatureDecorator()
-	 * @generated
-	 */
-	EAttribute getFeatureDecorator_ShortDescription();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getCategory <em>Category</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Category</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.FeatureDecorator#getCategory()
-	 * @see #getFeatureDecorator()
-	 * @generated
-	 */
-	EAttribute getFeatureDecorator_Category();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isExpert <em>Expert</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Expert</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.FeatureDecorator#isExpert()
-	 * @see #getFeatureDecorator()
-	 * @generated
-	 */
-	EAttribute getFeatureDecorator_Expert();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isHidden <em>Hidden</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Hidden</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.FeatureDecorator#isHidden()
-	 * @see #getFeatureDecorator()
-	 * @generated
-	 */
-	EAttribute getFeatureDecorator_Hidden();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isPreferred <em>Preferred</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Preferred</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.FeatureDecorator#isPreferred()
-	 * @see #getFeatureDecorator()
-	 * @generated
-	 */
-	EAttribute getFeatureDecorator_Preferred();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isMergeIntrospection <em>Merge Introspection</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Merge Introspection</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.FeatureDecorator#isMergeIntrospection()
-	 * @see #getFeatureDecorator()
-	 * @generated
-	 */
-	EAttribute getFeatureDecorator_MergeIntrospection();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isAttributesExplicitEmpty <em>Attributes Explicit Empty</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Attributes Explicit Empty</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.FeatureDecorator#isAttributesExplicitEmpty()
-	 * @see #getFeatureDecorator()
-	 * @generated
-	 */
-	EAttribute getFeatureDecorator_AttributesExplicitEmpty();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getImplicitlySetBits <em>Implicitly Set Bits</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Implicitly Set Bits</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.FeatureDecorator#getImplicitlySetBits()
-	 * @see #getFeatureDecorator()
-	 * @generated
-	 */
-	EAttribute getFeatureDecorator_ImplicitlySetBits();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getImplicitDecoratorFlag <em>Implicit Decorator Flag</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Implicit Decorator Flag</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.FeatureDecorator#getImplicitDecoratorFlag()
-	 * @see #getFeatureDecorator()
-	 * @generated
-	 */
-	EAttribute getFeatureDecorator_ImplicitDecoratorFlag();
-
-	/**
-	 * Returns the meta object for the map '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getAttributes <em>Attributes</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the map '<em>Attributes</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.FeatureDecorator#getAttributes()
-	 * @see #getFeatureDecorator()
-	 * @generated
-	 */
-	EReference getFeatureDecorator_Attributes();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator <em>Event Set Decorator</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Event Set Decorator</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.EventSetDecorator
-	 * @generated
-	 */
-	EClass getEventSetDecorator();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#isInDefaultEventSet <em>In Default Event Set</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>In Default Event Set</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.EventSetDecorator#isInDefaultEventSet()
-	 * @see #getEventSetDecorator()
-	 * @generated
-	 */
-	EAttribute getEventSetDecorator_InDefaultEventSet();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#isUnicast <em>Unicast</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Unicast</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.EventSetDecorator#isUnicast()
-	 * @see #getEventSetDecorator()
-	 * @generated
-	 */
-	EAttribute getEventSetDecorator_Unicast();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#isListenerMethodsExplicitEmpty <em>Listener Methods Explicit Empty</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Listener Methods Explicit Empty</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.EventSetDecorator#isListenerMethodsExplicitEmpty()
-	 * @see #getEventSetDecorator()
-	 * @generated
-	 */
-	EAttribute getEventSetDecorator_ListenerMethodsExplicitEmpty();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#getAddListenerMethod <em>Add Listener Method</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Add Listener Method</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.EventSetDecorator#getAddListenerMethod()
-	 * @see #getEventSetDecorator()
-	 * @generated
-	 */
-	EReference getEventSetDecorator_AddListenerMethod();
-
-	/**
-	 * Returns the meta object for the reference list '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#getListenerMethods <em>Listener Methods</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Listener Methods</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.EventSetDecorator#getListenerMethods()
-	 * @see #getEventSetDecorator()
-	 * @generated
-	 */
-	EReference getEventSetDecorator_ListenerMethods();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#getListenerType <em>Listener Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Listener Type</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.EventSetDecorator#getListenerType()
-	 * @see #getEventSetDecorator()
-	 * @generated
-	 */
-	EReference getEventSetDecorator_ListenerType();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#getRemoveListenerMethod <em>Remove Listener Method</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Remove Listener Method</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.EventSetDecorator#getRemoveListenerMethod()
-	 * @see #getEventSetDecorator()
-	 * @generated
-	 */
-	EReference getEventSetDecorator_RemoveListenerMethod();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#getEventAdapterClass <em>Event Adapter Class</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Event Adapter Class</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.EventSetDecorator#getEventAdapterClass()
-	 * @see #getEventSetDecorator()
-	 * @generated
-	 */
-	EReference getEventSetDecorator_EventAdapterClass();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#getSerListMthd <em>Ser List Mthd</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Ser List Mthd</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.EventSetDecorator#getSerListMthd()
-	 * @see #getEventSetDecorator()
-	 * @generated
-	 */
-	EReference getEventSetDecorator_SerListMthd();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jem.internal.beaninfo.MethodProxy <em>Method Proxy</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Method Proxy</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.MethodProxy
-	 * @generated
-	 */
-	EClass getMethodProxy();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.jem.internal.beaninfo.MethodProxy#getMethod <em>Method</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Method</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.MethodProxy#getMethod()
-	 * @see #getMethodProxy()
-	 * @generated
-	 */
-	EReference getMethodProxy_Method();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator <em>Property Decorator</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Property Decorator</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.PropertyDecorator
-	 * @generated
-	 */
-	EClass getPropertyDecorator();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isBound <em>Bound</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Bound</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.PropertyDecorator#isBound()
-	 * @see #getPropertyDecorator()
-	 * @generated
-	 */
-	EAttribute getPropertyDecorator_Bound();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isConstrained <em>Constrained</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Constrained</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.PropertyDecorator#isConstrained()
-	 * @see #getPropertyDecorator()
-	 * @generated
-	 */
-	EAttribute getPropertyDecorator_Constrained();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isDesignTime <em>Design Time</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Design Time</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.PropertyDecorator#isDesignTime()
-	 * @see #getPropertyDecorator()
-	 * @generated
-	 */
-	EAttribute getPropertyDecorator_DesignTime();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isAlwaysIncompatible <em>Always Incompatible</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Always Incompatible</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.PropertyDecorator#isAlwaysIncompatible()
-	 * @see #getPropertyDecorator()
-	 * @generated
-	 */
-	EAttribute getPropertyDecorator_AlwaysIncompatible();
-
-	/**
-	 * Returns the meta object for the attribute list '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getFilterFlags <em>Filter Flags</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute list '<em>Filter Flags</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.PropertyDecorator#getFilterFlags()
-	 * @see #getPropertyDecorator()
-	 * @generated
-	 */
-	EAttribute getPropertyDecorator_FilterFlags();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isFieldReadOnly <em>Field Read Only</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Field Read Only</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.PropertyDecorator#isFieldReadOnly()
-	 * @see #getPropertyDecorator()
-	 * @generated
-	 */
-	EAttribute getPropertyDecorator_FieldReadOnly();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getPropertyEditorClass <em>Property Editor Class</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Property Editor Class</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.PropertyDecorator#getPropertyEditorClass()
-	 * @see #getPropertyDecorator()
-	 * @generated
-	 */
-	EReference getPropertyDecorator_PropertyEditorClass();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getReadMethod <em>Read Method</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Read Method</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.PropertyDecorator#getReadMethod()
-	 * @see #getPropertyDecorator()
-	 * @generated
-	 */
-	EReference getPropertyDecorator_ReadMethod();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getWriteMethod <em>Write Method</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Write Method</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.PropertyDecorator#getWriteMethod()
-	 * @see #getPropertyDecorator()
-	 * @generated
-	 */
-	EReference getPropertyDecorator_WriteMethod();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getField <em>Field</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Field</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.PropertyDecorator#getField()
-	 * @see #getPropertyDecorator()
-	 * @generated
-	 */
-	EReference getPropertyDecorator_Field();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jem.internal.beaninfo.IndexedPropertyDecorator <em>Indexed Property Decorator</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Indexed Property Decorator</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.IndexedPropertyDecorator
-	 * @generated
-	 */
-	EClass getIndexedPropertyDecorator();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.jem.internal.beaninfo.IndexedPropertyDecorator#getIndexedReadMethod <em>Indexed Read Method</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Indexed Read Method</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.IndexedPropertyDecorator#getIndexedReadMethod()
-	 * @see #getIndexedPropertyDecorator()
-	 * @generated
-	 */
-	EReference getIndexedPropertyDecorator_IndexedReadMethod();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.jem.internal.beaninfo.IndexedPropertyDecorator#getIndexedWriteMethod <em>Indexed Write Method</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Indexed Write Method</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.IndexedPropertyDecorator#getIndexedWriteMethod()
-	 * @see #getIndexedPropertyDecorator()
-	 * @generated
-	 */
-	EReference getIndexedPropertyDecorator_IndexedWriteMethod();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator <em>Bean Decorator</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Bean Decorator</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.BeanDecorator
-	 * @generated
-	 */
-	EClass getBeanDecorator();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperProperties <em>Merge Super Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Merge Super Properties</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperProperties()
-	 * @see #getBeanDecorator()
-	 * @generated
-	 */
-	EAttribute getBeanDecorator_MergeSuperProperties();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperMethods <em>Merge Super Methods</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Merge Super Methods</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperMethods()
-	 * @see #getBeanDecorator()
-	 * @generated
-	 */
-	EAttribute getBeanDecorator_MergeSuperMethods();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperEvents <em>Merge Super Events</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Merge Super Events</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperEvents()
-	 * @see #getBeanDecorator()
-	 * @generated
-	 */
-	EAttribute getBeanDecorator_MergeSuperEvents();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isIntrospectProperties <em>Introspect Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Introspect Properties</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.BeanDecorator#isIntrospectProperties()
-	 * @see #getBeanDecorator()
-	 * @generated
-	 */
-	EAttribute getBeanDecorator_IntrospectProperties();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isIntrospectMethods <em>Introspect Methods</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Introspect Methods</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.BeanDecorator#isIntrospectMethods()
-	 * @see #getBeanDecorator()
-	 * @generated
-	 */
-	EAttribute getBeanDecorator_IntrospectMethods();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isIntrospectEvents <em>Introspect Events</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Introspect Events</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.BeanDecorator#isIntrospectEvents()
-	 * @see #getBeanDecorator()
-	 * @generated
-	 */
-	EAttribute getBeanDecorator_IntrospectEvents();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#getCustomizerClass <em>Customizer Class</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Customizer Class</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.BeanDecorator#getCustomizerClass()
-	 * @see #getBeanDecorator()
-	 * @generated
-	 */
-	EReference getBeanDecorator_CustomizerClass();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jem.internal.beaninfo.MethodDecorator <em>Method Decorator</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Method Decorator</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.MethodDecorator
-	 * @generated
-	 */
-	EClass getMethodDecorator();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.MethodDecorator#isParmsExplicitEmpty <em>Parms Explicit Empty</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Parms Explicit Empty</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.MethodDecorator#isParmsExplicitEmpty()
-	 * @see #getMethodDecorator()
-	 * @generated
-	 */
-	EAttribute getMethodDecorator_ParmsExplicitEmpty();
-
-	/**
-	 * Returns the meta object for the reference list '{@link org.eclipse.jem.internal.beaninfo.MethodDecorator#getParameterDescriptors <em>Parameter Descriptors</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Parameter Descriptors</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.MethodDecorator#getParameterDescriptors()
-	 * @see #getMethodDecorator()
-	 * @generated
-	 */
-	EReference getMethodDecorator_ParameterDescriptors();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jem.internal.beaninfo.MethodDecorator#getSerParmDesc <em>Ser Parm Desc</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Ser Parm Desc</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.MethodDecorator#getSerParmDesc()
-	 * @see #getMethodDecorator()
-	 * @generated
-	 */
-	EReference getMethodDecorator_SerParmDesc();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jem.internal.beaninfo.ParameterDecorator <em>Parameter Decorator</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Parameter Decorator</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.ParameterDecorator
-	 * @generated
-	 */
-	EClass getParameterDecorator();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.ParameterDecorator#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.ParameterDecorator#getName()
-	 * @see #getParameterDecorator()
-	 * @generated
-	 */
-	EAttribute getParameterDecorator_Name();
-
-	/**
-	 * Returns the meta object for data type '{@link org.eclipse.jem.internal.beaninfo.common.FeatureAttributeValue <em>Feature Attribute Value</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for data type '<em>Feature Attribute Value</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.common.FeatureAttributeValue
-	 * @model instanceClass="org.eclipse.jem.internal.beaninfo.common.FeatureAttributeValue"
-	 * @generated
-	 */
-	EDataType getFeatureAttributeValue();
-
-	/**
-	 * Returns the factory that creates the instances of the model.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the factory that creates the instances of the model.
-	 * @generated
-	 */
-	BeaninfoFactory getBeaninfoFactory();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isDoBeaninfo <em>Do Beaninfo</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Do Beaninfo</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.BeanDecorator#isDoBeaninfo()
-	 * @see #getBeanDecorator()
-	 * @generated
-	 */
-	EAttribute getBeanDecorator_DoBeaninfo();
-
-	/**
-	 * Returns the meta object for the attribute list '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#getNotInheritedPropertyNames <em>Not Inherited Property Names</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute list '<em>Not Inherited Property Names</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.BeanDecorator#getNotInheritedPropertyNames()
-	 * @see #getBeanDecorator()
-	 * @generated
-	 */
-	EAttribute getBeanDecorator_NotInheritedPropertyNames();
-
-	/**
-	 * Returns the meta object for the attribute list '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#getNotInheritedMethodNames <em>Not Inherited Method Names</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute list '<em>Not Inherited Method Names</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.BeanDecorator#getNotInheritedMethodNames()
-	 * @see #getBeanDecorator()
-	 * @generated
-	 */
-	EAttribute getBeanDecorator_NotInheritedMethodNames();
-
-	/**
-	 * Returns the meta object for the attribute list '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#getNotInheritedEventNames <em>Not Inherited Event Names</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute list '<em>Not Inherited Event Names</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.BeanDecorator#getNotInheritedEventNames()
-	 * @see #getBeanDecorator()
-	 * @generated
-	 */
-	EAttribute getBeanDecorator_NotInheritedEventNames();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.jem.internal.beaninfo.ParameterDecorator#getParameter <em>Parameter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Parameter</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.ParameterDecorator#getParameter()
-	 * @see #getParameterDecorator()
-	 * @generated
-	 */
-	EReference getParameterDecorator_Parameter();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jem.internal.beaninfo.BeanEvent <em>Bean Event</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Bean Event</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.BeanEvent
-	 * @generated
-	 */
-	EClass getBeanEvent();
-
-	/**
-	 * Returns the meta object for class '{@link java.util.Map.Entry <em>Feature Attribute Map Entry</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Feature Attribute Map Entry</em>'.
-	 * @see java.util.Map.Entry
-	 * @model keyType="java.lang.String"
-	 *        valueType="org.eclipse.jem.internal.beaninfo.common.FeatureAttributeValue" valueDataType="org.eclipse.jem.internal.beaninfo.FeatureAttributeValue"
-	 * @generated
-	 */
-	EClass getFeatureAttributeMapEntry();
-
-	/**
-	 * Returns the meta object for the attribute '{@link java.util.Map.Entry <em>Key</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Key</em>'.
-	 * @see java.util.Map.Entry
-	 * @see #getFeatureAttributeMapEntry()
-	 * @generated
-	 */
-	EAttribute getFeatureAttributeMapEntry_Key();
-
-	/**
-	 * Returns the meta object for the attribute '{@link java.util.Map.Entry <em>Value</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Value</em>'.
-	 * @see java.util.Map.Entry
-	 * @see #getFeatureAttributeMapEntry()
-	 * @generated
-	 */
-	EAttribute getFeatureAttributeMapEntry_Value();
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.jem.internal.beaninfo.ImplicitItem <em>Implicit Item</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Implicit Item</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.ImplicitItem
-	 * @generated
-	 */
-	EEnum getImplicitItem();
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/EventSetDecorator.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/EventSetDecorator.java
deleted file mode 100644
index 1b982f8..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/EventSetDecorator.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jem.internal.beaninfo;
-/*
- *  $RCSfile: EventSetDecorator.java,v $
- *  $Revision: 1.6 $  $Date: 2005/04/14 19:05:36 $ 
- */
-
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.jem.java.JavaClass;
-import org.eclipse.jem.java.Method;
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Event Set Decorator</b></em>'.
- * <!-- end-user-doc -->
- *
- * <!-- begin-model-doc -->
- * Equivalent to EventSetDecorator in java.
- * <!-- end-model-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#isInDefaultEventSet <em>In Default Event Set</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#isUnicast <em>Unicast</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#isListenerMethodsExplicitEmpty <em>Listener Methods Explicit Empty</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#getAddListenerMethod <em>Add Listener Method</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#getListenerMethods <em>Listener Methods</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#getListenerType <em>Listener Type</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#getRemoveListenerMethod <em>Remove Listener Method</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#getEventAdapterClass <em>Event Adapter Class</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#getSerListMthd <em>Ser List Mthd</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getEventSetDecorator()
- * @model
- * @generated
- */
-
-
-public interface EventSetDecorator extends FeatureDecorator{
-	public static final String EVENTADAPTERCLASS = "eventAdapterClass"; //$NON-NLS-1$
-	/**
-	 * Returns the value of the '<em><b>In Default Event Set</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>In Default Event Set</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>In Default Event Set</em>' attribute.
-	 * @see #isSetInDefaultEventSet()
-	 * @see #unsetInDefaultEventSet()
-	 * @see #setInDefaultEventSet(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getEventSetDecorator_InDefaultEventSet()
-	 * @model unsettable="true"
-	 * @generated
-	 */
-	boolean isInDefaultEventSet();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#isInDefaultEventSet <em>In Default Event Set</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>In Default Event Set</em>' attribute.
-	 * @see #isSetInDefaultEventSet()
-	 * @see #unsetInDefaultEventSet()
-	 * @see #isInDefaultEventSet()
-	 * @generated
-	 */
-	void setInDefaultEventSet(boolean value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#isInDefaultEventSet <em>In Default Event Set</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetInDefaultEventSet()
-	 * @see #isInDefaultEventSet()
-	 * @see #setInDefaultEventSet(boolean)
-	 * @generated
-	 */
-	void unsetInDefaultEventSet();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#isInDefaultEventSet <em>In Default Event Set</em>}' attribute is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>In Default Event Set</em>' attribute is set.
-	 * @see #unsetInDefaultEventSet()
-	 * @see #isInDefaultEventSet()
-	 * @see #setInDefaultEventSet(boolean)
-	 * @generated
-	 */
-	boolean isSetInDefaultEventSet();
-
-	/**
-	 * Returns the value of the '<em><b>Unicast</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Unicast</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Unicast</em>' attribute.
-	 * @see #isSetUnicast()
-	 * @see #unsetUnicast()
-	 * @see #setUnicast(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getEventSetDecorator_Unicast()
-	 * @model unsettable="true"
-	 * @generated
-	 */
-	boolean isUnicast();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#isUnicast <em>Unicast</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Unicast</em>' attribute.
-	 * @see #isSetUnicast()
-	 * @see #unsetUnicast()
-	 * @see #isUnicast()
-	 * @generated
-	 */
-	void setUnicast(boolean value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#isUnicast <em>Unicast</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetUnicast()
-	 * @see #isUnicast()
-	 * @see #setUnicast(boolean)
-	 * @generated
-	 */
-	void unsetUnicast();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#isUnicast <em>Unicast</em>}' attribute is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Unicast</em>' attribute is set.
-	 * @see #unsetUnicast()
-	 * @see #isUnicast()
-	 * @see #setUnicast(boolean)
-	 * @generated
-	 */
-	boolean isSetUnicast();
-
-	/**
-	 * Returns the value of the '<em><b>Listener Methods Explicit Empty</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * Set true if the listenerMethods feature is explicitly set as empty and is not to have listener methods merged in from BeanInfo or reflection.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Listener Methods Explicit Empty</em>' attribute.
-	 * @see #setListenerMethodsExplicitEmpty(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getEventSetDecorator_ListenerMethodsExplicitEmpty()
-	 * @model
-	 * @generated
-	 */
-	boolean isListenerMethodsExplicitEmpty();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#isListenerMethodsExplicitEmpty <em>Listener Methods Explicit Empty</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Listener Methods Explicit Empty</em>' attribute.
-	 * @see #isListenerMethodsExplicitEmpty()
-	 * @generated
-	 */
-	void setListenerMethodsExplicitEmpty(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>Add Listener Method</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Add Listener Method</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Add Listener Method</em>' reference.
-	 * @see #setAddListenerMethod(Method)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getEventSetDecorator_AddListenerMethod()
-	 * @model required="true"
-	 * @generated
-	 */
-	Method getAddListenerMethod();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#getAddListenerMethod <em>Add Listener Method</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Add Listener Method</em>' reference.
-	 * @see #getAddListenerMethod()
-	 * @generated
-	 */
-	void setAddListenerMethod(Method value);
-
-	/**
-	 * Returns the value of the '<em><b>Listener Methods</b></em>' reference list.
-	 * The list contents are of type {@link org.eclipse.jem.internal.beaninfo.MethodProxy}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Listener Methods</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * listener methods. If it is desired that the list be explicitly empty and not have BeanInfo set it, then set listenerMethodsExplicitEmpty to true.
-	 * <p>
-	 * ListenerMethods will be decorated with MethodDecorators.
-	 * <p>
-	 * Note: This is a derived setting, which means it will not notify out changes to it. To here changes to it, listen on "serListMthd" notifications instead.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Listener Methods</em>' reference list.
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getEventSetDecorator_ListenerMethods()
-	 * @model type="org.eclipse.jem.internal.beaninfo.MethodProxy" required="true" transient="true" volatile="true" derived="true"
-	 * @generated
-	 */
-	EList getListenerMethods();
-
-	/**
-	 * Returns the value of the '<em><b>Listener Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Listener Type</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Listener Type</em>' reference.
-	 * @see #setListenerType(JavaClass)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getEventSetDecorator_ListenerType()
-	 * @model required="true"
-	 * @generated
-	 */
-	JavaClass getListenerType();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#getListenerType <em>Listener Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Listener Type</em>' reference.
-	 * @see #getListenerType()
-	 * @generated
-	 */
-	void setListenerType(JavaClass value);
-
-	/**
-	 * Returns the value of the '<em><b>Remove Listener Method</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Remove Listener Method</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Remove Listener Method</em>' reference.
-	 * @see #setRemoveListenerMethod(Method)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getEventSetDecorator_RemoveListenerMethod()
-	 * @model required="true"
-	 * @generated
-	 */
-	Method getRemoveListenerMethod();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#getRemoveListenerMethod <em>Remove Listener Method</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Remove Listener Method</em>' reference.
-	 * @see #getRemoveListenerMethod()
-	 * @generated
-	 */
-	void setRemoveListenerMethod(Method value);
-
-	/**
-	 * Returns the value of the '<em><b>Event Adapter Class</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * For some listener interfaces an adapter class is provided that implements default no-op methods, e.g. java.awt.event.FocusEvent which has java.awt.event.FocusAdapter. The Adapter class is provided in a key/value pair on the java.beans.EventSetDescriptor with a key defined in a static final constants EVENTADAPTERCLASS = "eventAdapterClass".
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Event Adapter Class</em>' reference.
-	 * @see #setEventAdapterClass(JavaClass)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getEventSetDecorator_EventAdapterClass()
-	 * @model
-	 * @generated
-	 */
-	JavaClass getEventAdapterClass();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#getEventAdapterClass <em>Event Adapter Class</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Event Adapter Class</em>' reference.
-	 * @see #getEventAdapterClass()
-	 * @generated
-	 */
-	void setEventAdapterClass(JavaClass value);
-
-	/**
-	 * Returns the value of the '<em><b>Ser List Mthd</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jem.internal.beaninfo.MethodProxy}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * This is a private feature. It is used internally only. 
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Ser List Mthd</em>' containment reference list.
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getEventSetDecorator_SerListMthd()
-	 * @model type="org.eclipse.jem.internal.beaninfo.MethodProxy" containment="true" required="true"
-	 * @generated
-	 */
-	EList getSerListMthd();
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/FeatureDecorator.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/FeatureDecorator.java
deleted file mode 100644
index 4b502c0..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/FeatureDecorator.java
+++ /dev/null
@@ -1,491 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jem.internal.beaninfo;
-/*
- *  $RCSfile: FeatureDecorator.java,v $
- *  $Revision: 1.7 $  $Date: 2005/04/14 19:05:36 $ 
- */
-
-
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EAnnotation;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Feature Decorator</b></em>'.
- * <!-- end-user-doc -->
- *
- * <!-- begin-model-doc -->
- * Equivalent to FeatureDescriptor in java.
- * <p>
- * Note: If any attribute is explicitly set then the BeanInfo/Reflection will not be merged into the decorator. This provides a way of overriding the BeanInfos. Also for any many-valued attribute, if it is desired to have it explicitly empty and not have BeanInfo fill it in, there will be another attribute named of the form "attibutueExplicitEmpty" If this is true then the BeanInfo will not merge in and will leave it empty.
- * <p>
- * These comments about merging apply to all subclasses of this decorator too. 
- * <!-- end-model-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getDisplayName <em>Display Name</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getShortDescription <em>Short Description</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getCategory <em>Category</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isExpert <em>Expert</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isHidden <em>Hidden</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isPreferred <em>Preferred</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isMergeIntrospection <em>Merge Introspection</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isAttributesExplicitEmpty <em>Attributes Explicit Empty</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getImplicitlySetBits <em>Implicitly Set Bits</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getImplicitDecoratorFlag <em>Implicit Decorator Flag</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getAttributes <em>Attributes</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getFeatureDecorator()
- * @model
- * @generated
- */
-
-
-public interface FeatureDecorator extends EAnnotation{
-		
-	/**
-	 * Returns the value of the '<em><b>Display Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Display Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Display Name</em>' attribute.
-	 * @see #isSetDisplayName()
-	 * @see #unsetDisplayName()
-	 * @see #setDisplayName(String)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getFeatureDecorator_DisplayName()
-	 * @model unsettable="true"
-	 * @generated
-	 */
-	String getDisplayName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getDisplayName <em>Display Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Display Name</em>' attribute.
-	 * @see #isSetDisplayName()
-	 * @see #unsetDisplayName()
-	 * @see #getDisplayName()
-	 * @generated
-	 */
-	void setDisplayName(String value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getDisplayName <em>Display Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetDisplayName()
-	 * @see #getDisplayName()
-	 * @see #setDisplayName(String)
-	 * @generated
-	 */
-	void unsetDisplayName();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getDisplayName <em>Display Name</em>}' attribute is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Display Name</em>' attribute is set.
-	 * @see #unsetDisplayName()
-	 * @see #getDisplayName()
-	 * @see #setDisplayName(String)
-	 * @generated
-	 */
-	boolean isSetDisplayName();
-
-	/**
-	 * Returns the value of the '<em><b>Short Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Short Description</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Short Description</em>' attribute.
-	 * @see #isSetShortDescription()
-	 * @see #unsetShortDescription()
-	 * @see #setShortDescription(String)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getFeatureDecorator_ShortDescription()
-	 * @model unsettable="true"
-	 * @generated
-	 */
-	String getShortDescription();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getShortDescription <em>Short Description</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Short Description</em>' attribute.
-	 * @see #isSetShortDescription()
-	 * @see #unsetShortDescription()
-	 * @see #getShortDescription()
-	 * @generated
-	 */
-	void setShortDescription(String value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getShortDescription <em>Short Description</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetShortDescription()
-	 * @see #getShortDescription()
-	 * @see #setShortDescription(String)
-	 * @generated
-	 */
-	void unsetShortDescription();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getShortDescription <em>Short Description</em>}' attribute is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Short Description</em>' attribute is set.
-	 * @see #unsetShortDescription()
-	 * @see #getShortDescription()
-	 * @see #setShortDescription(String)
-	 * @generated
-	 */
-	boolean isSetShortDescription();
-
-	/**
-	 * Returns the value of the '<em><b>Category</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Category</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Category</em>' attribute.
-	 * @see #setCategory(String)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getFeatureDecorator_Category()
-	 * @model
-	 * @generated
-	 */
-	String getCategory();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getCategory <em>Category</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Category</em>' attribute.
-	 * @see #getCategory()
-	 * @generated
-	 */
-	void setCategory(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Expert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Expert</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Expert</em>' attribute.
-	 * @see #isSetExpert()
-	 * @see #unsetExpert()
-	 * @see #setExpert(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getFeatureDecorator_Expert()
-	 * @model unsettable="true"
-	 * @generated
-	 */
-	boolean isExpert();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isExpert <em>Expert</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Expert</em>' attribute.
-	 * @see #isSetExpert()
-	 * @see #unsetExpert()
-	 * @see #isExpert()
-	 * @generated
-	 */
-	void setExpert(boolean value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isExpert <em>Expert</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetExpert()
-	 * @see #isExpert()
-	 * @see #setExpert(boolean)
-	 * @generated
-	 */
-	void unsetExpert();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isExpert <em>Expert</em>}' attribute is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Expert</em>' attribute is set.
-	 * @see #unsetExpert()
-	 * @see #isExpert()
-	 * @see #setExpert(boolean)
-	 * @generated
-	 */
-	boolean isSetExpert();
-
-	/**
-	 * Returns the value of the '<em><b>Hidden</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Hidden</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Hidden</em>' attribute.
-	 * @see #isSetHidden()
-	 * @see #unsetHidden()
-	 * @see #setHidden(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getFeatureDecorator_Hidden()
-	 * @model unsettable="true"
-	 * @generated
-	 */
-	boolean isHidden();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isHidden <em>Hidden</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Hidden</em>' attribute.
-	 * @see #isSetHidden()
-	 * @see #unsetHidden()
-	 * @see #isHidden()
-	 * @generated
-	 */
-	void setHidden(boolean value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isHidden <em>Hidden</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetHidden()
-	 * @see #isHidden()
-	 * @see #setHidden(boolean)
-	 * @generated
-	 */
-	void unsetHidden();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isHidden <em>Hidden</em>}' attribute is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Hidden</em>' attribute is set.
-	 * @see #unsetHidden()
-	 * @see #isHidden()
-	 * @see #setHidden(boolean)
-	 * @generated
-	 */
-	boolean isSetHidden();
-
-	/**
-	 * Returns the value of the '<em><b>Preferred</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Preferred</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Preferred</em>' attribute.
-	 * @see #isSetPreferred()
-	 * @see #unsetPreferred()
-	 * @see #setPreferred(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getFeatureDecorator_Preferred()
-	 * @model unsettable="true"
-	 * @generated
-	 */
-	boolean isPreferred();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isPreferred <em>Preferred</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Preferred</em>' attribute.
-	 * @see #isSetPreferred()
-	 * @see #unsetPreferred()
-	 * @see #isPreferred()
-	 * @generated
-	 */
-	void setPreferred(boolean value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isPreferred <em>Preferred</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetPreferred()
-	 * @see #isPreferred()
-	 * @see #setPreferred(boolean)
-	 * @generated
-	 */
-	void unsetPreferred();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isPreferred <em>Preferred</em>}' attribute is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Preferred</em>' attribute is set.
-	 * @see #unsetPreferred()
-	 * @see #isPreferred()
-	 * @see #setPreferred(boolean)
-	 * @generated
-	 */
-	boolean isSetPreferred();
-
-	/**
-	 * Returns the value of the '<em><b>Merge Introspection</b></em>' attribute.
-	 * The default value is <code>"true"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Merge Introspection</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * Should the introspection results be merged into this decorator. If this is set to false, then the introspection results are ignored for this particular decorator. This is an internal feature simply to allow desired override capabilities. Customers would use it to prevent ANY introspection/reflection from occurring.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Merge Introspection</em>' attribute.
-	 * @see #setMergeIntrospection(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getFeatureDecorator_MergeIntrospection()
-	 * @model default="true"
-	 * @generated
-	 */
-	boolean isMergeIntrospection();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isMergeIntrospection <em>Merge Introspection</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Merge Introspection</em>' attribute.
-	 * @see #isMergeIntrospection()
-	 * @generated
-	 */
-	void setMergeIntrospection(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>Attributes Explicit Empty</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * The attributes are explicitly set as empty and not retrieved from the beaninfo/reflection. Customers should set this if they want the list of attributes to be empty and not merged with the BeanInfo results. 
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Attributes Explicit Empty</em>' attribute.
-	 * @see #setAttributesExplicitEmpty(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getFeatureDecorator_AttributesExplicitEmpty()
-	 * @model
-	 * @generated
-	 */
-	boolean isAttributesExplicitEmpty();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isAttributesExplicitEmpty <em>Attributes Explicit Empty</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Attributes Explicit Empty</em>' attribute.
-	 * @see #isAttributesExplicitEmpty()
-	 * @generated
-	 */
-	void setAttributesExplicitEmpty(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>Implicitly Set Bits</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * A bitflag for which attributes have been set by BeanInfo/Reflection.
-	 * <p>
-	 * This is an internal attribute that is used by the BeanInfo maintanance. It is not meant to be used by customers.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Implicitly Set Bits</em>' attribute.
-	 * @see #setImplicitlySetBits(long)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getFeatureDecorator_ImplicitlySetBits()
-	 * @model
-	 * @generated
-	 */
-	long getImplicitlySetBits();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getImplicitlySetBits <em>Implicitly Set Bits</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Implicitly Set Bits</em>' attribute.
-	 * @see #getImplicitlySetBits()
-	 * @generated
-	 */
-	void setImplicitlySetBits(long value);
-
-	/**
-	 * Returns the value of the '<em><b>Implicit Decorator Flag</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.jem.internal.beaninfo.ImplicitItem}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * Is this decorator/feature implicit. This means created by Introspection/Reflection and not by customer.
-	 * <p>
-	 * This is an internal attribute that is used by the BeanInfo maintanance. It is not meant to be used by customers.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Implicit Decorator Flag</em>' attribute.
-	 * @see org.eclipse.jem.internal.beaninfo.ImplicitItem
-	 * @see #setImplicitDecoratorFlag(ImplicitItem)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getFeatureDecorator_ImplicitDecoratorFlag()
-	 * @model
-	 * @generated
-	 */
-	ImplicitItem getImplicitDecoratorFlag();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getImplicitDecoratorFlag <em>Implicit Decorator Flag</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Implicit Decorator Flag</em>' attribute.
-	 * @see org.eclipse.jem.internal.beaninfo.ImplicitItem
-	 * @see #getImplicitDecoratorFlag()
-	 * @generated
-	 */
-	void setImplicitDecoratorFlag(ImplicitItem value);
-
-	/**
-	 * Returns the value of the '<em><b>Attributes</b></em>' map.
-	 * The key is of type {@link java.lang.String},
-	 * and the value is of type {@link org.eclipse.jem.internal.beaninfo.common.FeatureAttributeValue},
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Attributes</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * Feature attributes. Key/value pairs. If it is desired that the feature attributes is explicitly empty and not have BeanInfo/reflection set it, set attributesExplicitEmpty to true.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Attributes</em>' map.
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getFeatureDecorator_Attributes()
-	 * @model mapType="org.eclipse.jem.internal.beaninfo.FeatureAttributeMapEntry" keyType="java.lang.String" valueType="org.eclipse.jem.internal.beaninfo.common.FeatureAttributeValue"
-	 * @generated
-	 */
-	EMap getAttributes();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model parameters=""
-	 * @generated
-	 */
-	String getName();
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/ImplicitItem.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/ImplicitItem.java
deleted file mode 100644
index 197d462..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/ImplicitItem.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jem.internal.beaninfo;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.AbstractEnumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>Implicit Item</b></em>',
- * and utility methods for working with them.
- * <!-- end-user-doc -->
- * <!-- begin-model-doc -->
- * This enum is an internal enum. It is used by BeanInfo for cache maintenance.
- * <p>
- * This enum is not meant to be used by clients.
- * <!-- end-model-doc -->
- * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getImplicitItem()
- * @model
- * @generated
- */
-public final class ImplicitItem extends AbstractEnumerator {
-	/**
-	 * The '<em><b>NOT IMPLICIT</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * Means this decorator is not implicit. That is it was created by customer.
-	 * <!-- end-model-doc -->
-	 * @see #NOT_IMPLICIT_LITERAL
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int NOT_IMPLICIT = 0;
-
-	/**
-	 * The '<em><b>IMPLICIT DECORATOR</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * This means that the decorator is implicit. That is it was not created by the customer.
-	 * <!-- end-model-doc -->
-	 * @see #IMPLICIT_DECORATOR_LITERAL
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int IMPLICIT_DECORATOR = 1;
-
-	/**
-	 * The '<em><b>IMPLICIT DECORATOR AND FEATURE</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * This means the decorator and the feature where implicit. That is they were not created by the customer.
-	 * <!-- end-model-doc -->
-	 * @see #IMPLICIT_DECORATOR_AND_FEATURE_LITERAL
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int IMPLICIT_DECORATOR_AND_FEATURE = 2;
-
-	/**
-	 * The '<em><b>NOT IMPLICIT</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #NOT_IMPLICIT
-	 * @generated
-	 * @ordered
-	 */
-	public static final ImplicitItem NOT_IMPLICIT_LITERAL = new ImplicitItem(NOT_IMPLICIT, "NOT_IMPLICIT");
-
-	/**
-	 * The '<em><b>IMPLICIT DECORATOR</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #IMPLICIT_DECORATOR
-	 * @generated
-	 * @ordered
-	 */
-	public static final ImplicitItem IMPLICIT_DECORATOR_LITERAL = new ImplicitItem(IMPLICIT_DECORATOR, "IMPLICIT_DECORATOR");
-
-	/**
-	 * The '<em><b>IMPLICIT DECORATOR AND FEATURE</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #IMPLICIT_DECORATOR_AND_FEATURE
-	 * @generated
-	 * @ordered
-	 */
-	public static final ImplicitItem IMPLICIT_DECORATOR_AND_FEATURE_LITERAL = new ImplicitItem(IMPLICIT_DECORATOR_AND_FEATURE, "IMPLICIT_DECORATOR_AND_FEATURE");
-
-	/**
-	 * An array of all the '<em><b>Implicit Item</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final ImplicitItem[] VALUES_ARRAY =
-		new ImplicitItem[] {
-			NOT_IMPLICIT_LITERAL,
-			IMPLICIT_DECORATOR_LITERAL,
-			IMPLICIT_DECORATOR_AND_FEATURE_LITERAL,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Implicit Item</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Implicit Item</b></em>' literal with the specified name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static ImplicitItem get(String name) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			ImplicitItem result = VALUES_ARRAY[i];
-			if (result.toString().equals(name)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Implicit Item</b></em>' literal with the specified value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static ImplicitItem get(int value) {
-		switch (value) {
-			case NOT_IMPLICIT: return NOT_IMPLICIT_LITERAL;
-			case IMPLICIT_DECORATOR: return IMPLICIT_DECORATOR_LITERAL;
-			case IMPLICIT_DECORATOR_AND_FEATURE: return IMPLICIT_DECORATOR_AND_FEATURE_LITERAL;
-		}
-		return null;	
-	}
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private ImplicitItem(int value, String name) {
-		super(value, name);
-	}
-
-} //ImplicitItem
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/IndexedPropertyDecorator.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/IndexedPropertyDecorator.java
deleted file mode 100644
index 9dd17c8..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/IndexedPropertyDecorator.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jem.internal.beaninfo;
-/*
- *  $RCSfile: IndexedPropertyDecorator.java,v $
- *  $Revision: 1.6 $  $Date: 2005/04/14 19:05:36 $ 
- */
-
-
-import org.eclipse.jem.java.Method;
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Indexed Property Decorator</b></em>'.
- * <!-- end-user-doc -->
- *
- * <!-- begin-model-doc -->
- * Equivalent to IndexedPropertyDecorator
- * <!-- end-model-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.IndexedPropertyDecorator#getIndexedReadMethod <em>Indexed Read Method</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.IndexedPropertyDecorator#getIndexedWriteMethod <em>Indexed Write Method</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getIndexedPropertyDecorator()
- * @model
- * @generated
- */
-
-
-public interface IndexedPropertyDecorator extends PropertyDecorator{
-	/**
-	 * Returns the value of the '<em><b>Indexed Read Method</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Indexed Read Method</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Indexed Read Method</em>' reference.
-	 * @see #isSetIndexedReadMethod()
-	 * @see #unsetIndexedReadMethod()
-	 * @see #setIndexedReadMethod(Method)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getIndexedPropertyDecorator_IndexedReadMethod()
-	 * @model unsettable="true"
-	 * @generated
-	 */
-	Method getIndexedReadMethod();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.IndexedPropertyDecorator#getIndexedReadMethod <em>Indexed Read Method</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Indexed Read Method</em>' reference.
-	 * @see #isSetIndexedReadMethod()
-	 * @see #unsetIndexedReadMethod()
-	 * @see #getIndexedReadMethod()
-	 * @generated
-	 */
-	void setIndexedReadMethod(Method value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.IndexedPropertyDecorator#getIndexedReadMethod <em>Indexed Read Method</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetIndexedReadMethod()
-	 * @see #getIndexedReadMethod()
-	 * @see #setIndexedReadMethod(Method)
-	 * @generated
-	 */
-	void unsetIndexedReadMethod();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.IndexedPropertyDecorator#getIndexedReadMethod <em>Indexed Read Method</em>}' reference is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Indexed Read Method</em>' reference is set.
-	 * @see #unsetIndexedReadMethod()
-	 * @see #getIndexedReadMethod()
-	 * @see #setIndexedReadMethod(Method)
-	 * @generated
-	 */
-	boolean isSetIndexedReadMethod();
-
-	/**
-	 * Returns the value of the '<em><b>Indexed Write Method</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Indexed Write Method</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Indexed Write Method</em>' reference.
-	 * @see #isSetIndexedWriteMethod()
-	 * @see #unsetIndexedWriteMethod()
-	 * @see #setIndexedWriteMethod(Method)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getIndexedPropertyDecorator_IndexedWriteMethod()
-	 * @model unsettable="true"
-	 * @generated
-	 */
-	Method getIndexedWriteMethod();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.IndexedPropertyDecorator#getIndexedWriteMethod <em>Indexed Write Method</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Indexed Write Method</em>' reference.
-	 * @see #isSetIndexedWriteMethod()
-	 * @see #unsetIndexedWriteMethod()
-	 * @see #getIndexedWriteMethod()
-	 * @generated
-	 */
-	void setIndexedWriteMethod(Method value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.IndexedPropertyDecorator#getIndexedWriteMethod <em>Indexed Write Method</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetIndexedWriteMethod()
-	 * @see #getIndexedWriteMethod()
-	 * @see #setIndexedWriteMethod(Method)
-	 * @generated
-	 */
-	void unsetIndexedWriteMethod();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.IndexedPropertyDecorator#getIndexedWriteMethod <em>Indexed Write Method</em>}' reference is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Indexed Write Method</em>' reference is set.
-	 * @see #unsetIndexedWriteMethod()
-	 * @see #getIndexedWriteMethod()
-	 * @see #setIndexedWriteMethod(Method)
-	 * @generated
-	 */
-	boolean isSetIndexedWriteMethod();
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/MethodDecorator.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/MethodDecorator.java
deleted file mode 100644
index 33ee350..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/MethodDecorator.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jem.internal.beaninfo;
-/*
- *  $RCSfile: MethodDecorator.java,v $
- *  $Revision: 1.6 $  $Date: 2005/04/14 19:05:36 $ 
- */
-
-
-import org.eclipse.emf.common.util.EList;
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Method Decorator</b></em>'.
- * <!-- end-user-doc -->
- *
- * <!-- begin-model-doc -->
- * Equivalent to MethodDecorator in java.
- * <!-- end-model-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.MethodDecorator#isParmsExplicitEmpty <em>Parms Explicit Empty</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.MethodDecorator#getParameterDescriptors <em>Parameter Descriptors</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.MethodDecorator#getSerParmDesc <em>Ser Parm Desc</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getMethodDecorator()
- * @model
- * @generated
- */
-
-
-public interface MethodDecorator extends FeatureDecorator{
-	/**
-	 * Returns the value of the '<em><b>Parms Explicit Empty</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * Set true if the parms feature is explicitly set as empty and is not to have parameters merged in from BeanInfo or reflection.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Parms Explicit Empty</em>' attribute.
-	 * @see #setParmsExplicitEmpty(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getMethodDecorator_ParmsExplicitEmpty()
-	 * @model
-	 * @generated
-	 */
-	boolean isParmsExplicitEmpty();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.MethodDecorator#isParmsExplicitEmpty <em>Parms Explicit Empty</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Parms Explicit Empty</em>' attribute.
-	 * @see #isParmsExplicitEmpty()
-	 * @generated
-	 */
-	void setParmsExplicitEmpty(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>Parameter Descriptors</b></em>' reference list.
-	 * The list contents are of type {@link org.eclipse.jem.internal.beaninfo.ParameterDecorator}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Parameter Descriptors</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * This is the parameter descriptors list.
-	 * <p>
-	 * Note: This is a derived setting, which means it will not notify out changes to it. To here changes to it, listen on "serParmDesc" notifications instead.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Parameter Descriptors</em>' reference list.
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getMethodDecorator_ParameterDescriptors()
-	 * @model type="org.eclipse.jem.internal.beaninfo.ParameterDecorator" transient="true" volatile="true" derived="true"
-	 * @generated
-	 */
-	EList getParameterDescriptors();
-
-	/**
-	 * Returns the value of the '<em><b>Ser Parm Desc</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jem.internal.beaninfo.ParameterDecorator}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Ser Parm Desc</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * This is a private feature. It is used internally only. 
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Ser Parm Desc</em>' containment reference list.
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getMethodDecorator_SerParmDesc()
-	 * @model type="org.eclipse.jem.internal.beaninfo.ParameterDecorator" containment="true"
-	 * @generated
-	 */
-	EList getSerParmDesc();
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/MethodProxy.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/MethodProxy.java
deleted file mode 100644
index d7a852a..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/MethodProxy.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jem.internal.beaninfo;
-/*
- *  $RCSfile: MethodProxy.java,v $
- *  $Revision: 1.6 $  $Date: 2005/04/14 19:05:36 $ 
- */
-
-
-import org.eclipse.emf.ecore.EOperation;
-
-import org.eclipse.jem.java.Method;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Method Proxy</b></em>'.
- * <!-- end-user-doc -->
- *
- * <!-- begin-model-doc -->
- * This is just a wrapper of a java Method. It allows access to the method but doesn't duplicate the interface for it.
- * <p>
- * MethodProxies will be in the eBehaviors setting for any methods that are in the JavaClass methods setting so that they are not duplicated.
- * <p>
- * MethodProxies would also have MethodDecorators.
- * <!-- end-model-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.MethodProxy#getMethod <em>Method</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getMethodProxy()
- * @model
- * @generated
- */
-
-
-public interface MethodProxy extends EOperation{
-	/**
-	 * Returns the value of the '<em><b>Method</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Method</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Method</em>' reference.
-	 * @see #setMethod(Method)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getMethodProxy_Method()
-	 * @model required="true"
-	 * @generated
-	 */
-	Method getMethod();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.MethodProxy#getMethod <em>Method</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Method</em>' reference.
-	 * @see #getMethod()
-	 * @generated
-	 */
-	void setMethod(Method value);
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/ParameterDecorator.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/ParameterDecorator.java
deleted file mode 100644
index 42ef547..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/ParameterDecorator.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jem.internal.beaninfo;
-/*
- *  $RCSfile: ParameterDecorator.java,v $
- *  $Revision: 1.5 $  $Date: 2005/04/14 19:05:36 $ 
- */
-
-
-import org.eclipse.jem.java.JavaParameter;
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Parameter Decorator</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.ParameterDecorator#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.ParameterDecorator#getParameter <em>Parameter</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getParameterDecorator()
- * @model
- * @generated
- */
-
-
-public interface ParameterDecorator extends FeatureDecorator{
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * The name is explicit here because unlike the other feature decorators, the name does not come from the object being decorated.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getParameterDecorator_Name()
-	 * @model
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.ParameterDecorator#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	void setName(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Parameter</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Parameter</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * The JavaParameter that this ParameterDecorator is decorating. Can't use eDecorates in this.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Parameter</em>' reference.
-	 * @see #setParameter(JavaParameter)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getParameterDecorator_Parameter()
-	 * @model transient="true"
-	 * @generated
-	 */
-	JavaParameter getParameter();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.ParameterDecorator#getParameter <em>Parameter</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Parameter</em>' reference.
-	 * @see #getParameter()
-	 * @generated
-	 */
-	void setParameter(JavaParameter value);
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/PropertyDecorator.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/PropertyDecorator.java
deleted file mode 100644
index 382a68b..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/PropertyDecorator.java
+++ /dev/null
@@ -1,496 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jem.internal.beaninfo;
-/*
- *  $RCSfile: PropertyDecorator.java,v $
- *  $Revision: 1.8 $  $Date: 2005/04/14 19:05:36 $ 
- */
-
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClassifier;
-
-import org.eclipse.jem.java.Field;
-import org.eclipse.jem.java.JavaClass;
-import org.eclipse.jem.java.Method;
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Property Decorator</b></em>'.
- * <!-- end-user-doc -->
- *
- * <!-- begin-model-doc -->
- * Equivalent to PropertyDecorator in java.
- * <!-- end-model-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isBound <em>Bound</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isConstrained <em>Constrained</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isDesignTime <em>Design Time</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isAlwaysIncompatible <em>Always Incompatible</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getFilterFlags <em>Filter Flags</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isFieldReadOnly <em>Field Read Only</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getPropertyEditorClass <em>Property Editor Class</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getReadMethod <em>Read Method</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getWriteMethod <em>Write Method</em>}</li>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getField <em>Field</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getPropertyDecorator()
- * @model
- * @generated
- */
-
-
-public interface PropertyDecorator extends FeatureDecorator{
-	/**
-	 * Returns the value of the '<em><b>Bound</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Bound</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Bound</em>' attribute.
-	 * @see #isSetBound()
-	 * @see #unsetBound()
-	 * @see #setBound(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getPropertyDecorator_Bound()
-	 * @model unsettable="true"
-	 * @generated
-	 */
-	boolean isBound();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isBound <em>Bound</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Bound</em>' attribute.
-	 * @see #isSetBound()
-	 * @see #unsetBound()
-	 * @see #isBound()
-	 * @generated
-	 */
-	void setBound(boolean value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isBound <em>Bound</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetBound()
-	 * @see #isBound()
-	 * @see #setBound(boolean)
-	 * @generated
-	 */
-	void unsetBound();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isBound <em>Bound</em>}' attribute is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Bound</em>' attribute is set.
-	 * @see #unsetBound()
-	 * @see #isBound()
-	 * @see #setBound(boolean)
-	 * @generated
-	 */
-	boolean isSetBound();
-
-	/**
-	 * Returns the value of the '<em><b>Constrained</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Constrained</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Constrained</em>' attribute.
-	 * @see #isSetConstrained()
-	 * @see #unsetConstrained()
-	 * @see #setConstrained(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getPropertyDecorator_Constrained()
-	 * @model unsettable="true"
-	 * @generated
-	 */
-	boolean isConstrained();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isConstrained <em>Constrained</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Constrained</em>' attribute.
-	 * @see #isSetConstrained()
-	 * @see #unsetConstrained()
-	 * @see #isConstrained()
-	 * @generated
-	 */
-	void setConstrained(boolean value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isConstrained <em>Constrained</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetConstrained()
-	 * @see #isConstrained()
-	 * @see #setConstrained(boolean)
-	 * @generated
-	 */
-	void unsetConstrained();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isConstrained <em>Constrained</em>}' attribute is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Constrained</em>' attribute is set.
-	 * @see #unsetConstrained()
-	 * @see #isConstrained()
-	 * @see #setConstrained(boolean)
-	 * @generated
-	 */
-	boolean isSetConstrained();
-
-	/**
-	 * Returns the value of the '<em><b>Design Time</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Design Time</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * If not set, then normal default processing.
-	 * 
-	 * If set true, then this property is a design time property. This means it will show up in the property sheet, but it won't be able to be connected to at runtime. It may not even be a true bean property but instead the builder will know how to handle it.
-	 * 
-	 * If set false, then this property will not show up on the property sheet, but will be able to be connected to for runtime.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Design Time</em>' attribute.
-	 * @see #isSetDesignTime()
-	 * @see #unsetDesignTime()
-	 * @see #setDesignTime(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getPropertyDecorator_DesignTime()
-	 * @model unsettable="true"
-	 * @generated
-	 */
-	boolean isDesignTime();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isDesignTime <em>Design Time</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Design Time</em>' attribute.
-	 * @see #isSetDesignTime()
-	 * @see #unsetDesignTime()
-	 * @see #isDesignTime()
-	 * @generated
-	 */
-	void setDesignTime(boolean value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isDesignTime <em>Design Time</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetDesignTime()
-	 * @see #isDesignTime()
-	 * @see #setDesignTime(boolean)
-	 * @generated
-	 */
-	void unsetDesignTime();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isDesignTime <em>Design Time</em>}' attribute is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Design Time</em>' attribute is set.
-	 * @see #unsetDesignTime()
-	 * @see #isDesignTime()
-	 * @see #setDesignTime(boolean)
-	 * @generated
-	 */
-	boolean isSetDesignTime();
-
-	/**
-	 * Returns the value of the '<em><b>Always Incompatible</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Always Incompatible</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * If set true, then when multiple objects are selected, this property is always incompatible with each other. So in this case the property will not show up on the property sheet if more than one object has been selected.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Always Incompatible</em>' attribute.
-	 * @see #setAlwaysIncompatible(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getPropertyDecorator_AlwaysIncompatible()
-	 * @model
-	 * @generated
-	 */
-	boolean isAlwaysIncompatible();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isAlwaysIncompatible <em>Always Incompatible</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Always Incompatible</em>' attribute.
-	 * @see #isAlwaysIncompatible()
-	 * @generated
-	 */
-	void setAlwaysIncompatible(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>Filter Flags</b></em>' attribute list.
-	 * The list contents are of type {@link java.lang.String}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Filter Flags</em>' attribute list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Filter Flags</em>' attribute list.
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getPropertyDecorator_FilterFlags()
-	 * @model type="java.lang.String"
-	 * @generated
-	 */
-	EList getFilterFlags();
-
-	/**
-	 * Returns the value of the '<em><b>Field Read Only</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * Is this field read-only (i.e. is a "final" field). This is only referenced if the field reference is set.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Field Read Only</em>' attribute.
-	 * @see #setFieldReadOnly(boolean)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getPropertyDecorator_FieldReadOnly()
-	 * @model
-	 * @generated
-	 */
-	boolean isFieldReadOnly();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isFieldReadOnly <em>Field Read Only</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Field Read Only</em>' attribute.
-	 * @see #isFieldReadOnly()
-	 * @generated
-	 */
-	void setFieldReadOnly(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>Property Editor Class</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Property Editor Class</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Property Editor Class</em>' reference.
-	 * @see #setPropertyEditorClass(JavaClass)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getPropertyDecorator_PropertyEditorClass()
-	 * @model
-	 * @generated
-	 */
-	JavaClass getPropertyEditorClass();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getPropertyEditorClass <em>Property Editor Class</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Property Editor Class</em>' reference.
-	 * @see #getPropertyEditorClass()
-	 * @generated
-	 */
-	void setPropertyEditorClass(JavaClass value);
-
-	/**
-	 * Returns the value of the '<em><b>Read Method</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Read Method</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Read Method</em>' reference.
-	 * @see #isSetReadMethod()
-	 * @see #unsetReadMethod()
-	 * @see #setReadMethod(Method)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getPropertyDecorator_ReadMethod()
-	 * @model unsettable="true"
-	 * @generated
-	 */
-	Method getReadMethod();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getReadMethod <em>Read Method</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Read Method</em>' reference.
-	 * @see #isSetReadMethod()
-	 * @see #unsetReadMethod()
-	 * @see #getReadMethod()
-	 * @generated
-	 */
-	void setReadMethod(Method value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getReadMethod <em>Read Method</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetReadMethod()
-	 * @see #getReadMethod()
-	 * @see #setReadMethod(Method)
-	 * @generated
-	 */
-	void unsetReadMethod();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getReadMethod <em>Read Method</em>}' reference is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Read Method</em>' reference is set.
-	 * @see #unsetReadMethod()
-	 * @see #getReadMethod()
-	 * @see #setReadMethod(Method)
-	 * @generated
-	 */
-	boolean isSetReadMethod();
-
-	/**
-	 * Returns the value of the '<em><b>Write Method</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Write Method</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Write Method</em>' reference.
-	 * @see #isSetWriteMethod()
-	 * @see #unsetWriteMethod()
-	 * @see #setWriteMethod(Method)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getPropertyDecorator_WriteMethod()
-	 * @model unsettable="true"
-	 * @generated
-	 */
-	Method getWriteMethod();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getWriteMethod <em>Write Method</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Write Method</em>' reference.
-	 * @see #isSetWriteMethod()
-	 * @see #unsetWriteMethod()
-	 * @see #getWriteMethod()
-	 * @generated
-	 */
-	void setWriteMethod(Method value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getWriteMethod <em>Write Method</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetWriteMethod()
-	 * @see #getWriteMethod()
-	 * @see #setWriteMethod(Method)
-	 * @generated
-	 */
-	void unsetWriteMethod();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getWriteMethod <em>Write Method</em>}' reference is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Write Method</em>' reference is set.
-	 * @see #unsetWriteMethod()
-	 * @see #getWriteMethod()
-	 * @see #setWriteMethod(Method)
-	 * @generated
-	 */
-	boolean isSetWriteMethod();
-
-	/**
-	 * Returns the value of the '<em><b>Field</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * If this is set, then this property is a field and not a getter/setter property. This is an extension that the Visual Editor uses to the BeanInfo model.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Field</em>' reference.
-	 * @see #isSetField()
-	 * @see #unsetField()
-	 * @see #setField(Field)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getPropertyDecorator_Field()
-	 * @model unsettable="true"
-	 * @generated
-	 */
-	Field getField();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getField <em>Field</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Field</em>' reference.
-	 * @see #isSetField()
-	 * @see #unsetField()
-	 * @see #getField()
-	 * @generated
-	 */
-	void setField(Field value);
-
-	/**
-	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getField <em>Field</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetField()
-	 * @see #getField()
-	 * @see #setField(Field)
-	 * @generated
-	 */
-	void unsetField();
-
-	/**
-	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getField <em>Field</em>}' reference is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Field</em>' reference is set.
-	 * @see #unsetField()
-	 * @see #getField()
-	 * @see #setField(Field)
-	 * @generated
-	 */
-	boolean isSetField();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model parameters=""
-	 * @generated
-	 */
-	EClassifier getPropertyType();
-
-	/**
-	 * @return boolean for whether this property is writeable or not
-	 * It could have a write method or it could have a field (e.g. java.awt.Insets.top)
-	 */
-	boolean isWriteable();
-
-	/**
-	 * @return boolean for whether this property is readable or not
-	 * It could have a read method or it could have a field (e.g. java.awt.Insets.top)
-	 */
-	boolean isReadable();
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeanInfoAdapterMessages.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeanInfoAdapterMessages.java
deleted file mode 100644
index 2b49711..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeanInfoAdapterMessages.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jem.internal.beaninfo.adapters;
-
-import org.eclipse.osgi.util.NLS;
-
-public final class BeanInfoAdapterMessages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.jem.internal.beaninfo.adapters.messages";//$NON-NLS-1$
-
-	private BeanInfoAdapterMessages() {
-		// Do not instantiate
-	}
-
-	public static String INTROSPECT_FAILED_EXC_;
-	public static String BeaninfoClassAdapter_ClassNotFound;
-	public static String BeaninfoNature_InvalidProject;
-	public static String UICreateRegistryJobHandler_StartBeaninfoRegistry;
-
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, BeanInfoAdapterMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeanInfoDecoratorUtility.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeanInfoDecoratorUtility.java
deleted file mode 100644
index fb18ccf..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeanInfoDecoratorUtility.java
+++ /dev/null
@@ -1,1446 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: BeanInfoDecoratorUtility.java,v $
- *  $Revision: 1.4 $  $Date: 2005/05/11 22:41:17 $ 
- */
-package org.eclipse.jem.internal.beaninfo.adapters;
-
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.*;
-import org.eclipse.emf.ecore.change.*;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-import org.eclipse.jem.internal.beaninfo.*;
-import org.eclipse.jem.internal.beaninfo.common.*;
-import org.eclipse.jem.internal.beaninfo.core.BeaninfoPlugin;
-import org.eclipse.jem.internal.beaninfo.core.Utilities;
-import org.eclipse.jem.internal.beaninfo.impl.*;
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.java.*;
-
-/**
- * This is a utility class for handling the BeanInfo decorators with respect to the overrides (explicit settings) vs. introspected/reflected (implicit
- * settings) It handles the transmission of data from the VM for introspection.
- * 
- * @since 1.1.0
- */
-public class BeanInfoDecoratorUtility {
-
-	/**
-	 * Clear out the implicit settings for FeatureDecorator.
-	 * 
-	 * @param decor
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void clear(FeatureDecorator decor) {
-		long implicitSettings = decor.getImplicitlySetBits();
-		// For each setting, see if it was implicitly set, and if it was, then unset it.
-		if ((implicitSettings & FeatureDecoratorImpl.FEATURE_DISPLAYNAME_IMPLICIT) != 0)
-			decor.unsetDisplayName();
-		if ((implicitSettings & FeatureDecoratorImpl.FEATURE_SHORTDESC_IMPLICIT) != 0)
-			decor.unsetShortDescription();
-		if ((implicitSettings & FeatureDecoratorImpl.FEATURE_CATEGORY_IMPLICIT) != 0)
-			decor.eUnset(BeaninfoPackage.eINSTANCE.getFeatureDecorator_Category());
-		if ((implicitSettings & FeatureDecoratorImpl.FEATURE_EXPERT_IMPLICIT) != 0)
-			decor.unsetExpert();
-		if ((implicitSettings & FeatureDecoratorImpl.FEATURE_HIDDEN_IMPLICIT) != 0)
-			decor.unsetHidden();
-		if ((implicitSettings & FeatureDecoratorImpl.FEATURE_PREFERRED_IMPLICIT) != 0)
-			decor.unsetPreferred();
-		if ((implicitSettings & FeatureDecoratorImpl.FEATURE_ATTRIBUTES_IMPLICIT) != 0)
-			decor.eUnset(BeaninfoPackage.eINSTANCE.getFeatureDecorator_Attributes());
-		decor
-				.setImplicitlySetBits(implicitSettings
-						& ~(FeatureDecoratorImpl.FEATURE_DISPLAYNAME_IMPLICIT | FeatureDecoratorImpl.FEATURE_SHORTDESC_IMPLICIT
-								| FeatureDecoratorImpl.FEATURE_CATEGORY_IMPLICIT | FeatureDecoratorImpl.FEATURE_EXPERT_IMPLICIT
-								| FeatureDecoratorImpl.FEATURE_HIDDEN_IMPLICIT | FeatureDecoratorImpl.FEATURE_PREFERRED_IMPLICIT | FeatureDecoratorImpl.FEATURE_ATTRIBUTES_IMPLICIT));
-	}
-
-	/**
-	 * Clear out the implicit settings for BeanDecorator
-	 * 
-	 * @param decor
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void clear(BeanDecorator decor) {
-		clear((FeatureDecorator) decor);
-		long implicitSettings = decor.getImplicitlySetBits();
-		// For each setting, see if it was implicitly set, and if it was, then unset it.
-		if ((implicitSettings & BeanDecoratorImpl.BEAN_CUSTOMIZER_IMPLICIT) != 0)
-			decor.eUnset(BeaninfoPackage.eINSTANCE.getBeanDecorator_CustomizerClass());
-		if ((implicitSettings & BeanDecoratorImpl.BEAN_MERGE_INHERITED_PROPERTIES_IMPLICIT) != 0)
-			decor.unsetMergeSuperProperties();
-		if ((implicitSettings & BeanDecoratorImpl.BEAN_MERGE_INHERITED_OPERATIONS_IMPLICIT) != 0)
-			decor.unsetMergeSuperMethods();
-		if ((implicitSettings & BeanDecoratorImpl.BEAN_MERGE_INHERITED_EVENTS_IMPLICIT) != 0)
-			decor.unsetMergeSuperEvents();
-		if (decor.eIsSet(BeaninfoPackage.eINSTANCE.getBeanDecorator_NotInheritedPropertyNames()))
-			decor.eUnset(BeaninfoPackage.eINSTANCE.getBeanDecorator_NotInheritedPropertyNames()); // Just clear them. This is our attribute. It should
-																							   // not be set overrides.
-		if (decor.eIsSet(BeaninfoPackage.eINSTANCE.getBeanDecorator_NotInheritedMethodNames()))
-			decor.eUnset(BeaninfoPackage.eINSTANCE.getBeanDecorator_NotInheritedMethodNames()); // Just clear them. This is our attribute. It should
-																							   // not be set overrides.
-		if (decor.eIsSet(BeaninfoPackage.eINSTANCE.getBeanDecorator_NotInheritedEventNames()))
-			decor.eUnset(BeaninfoPackage.eINSTANCE.getBeanDecorator_NotInheritedEventNames()); // Just clear them. This is our attribute. It should not
-																							// be set overrides.
-
-		decor.setImplicitlySetBits(implicitSettings
-				& ~(BeanDecoratorImpl.BEAN_CUSTOMIZER_IMPLICIT | BeanDecoratorImpl.BEAN_MERGE_INHERITED_PROPERTIES_IMPLICIT
-						| BeanDecoratorImpl.BEAN_MERGE_INHERITED_OPERATIONS_IMPLICIT | BeanDecoratorImpl.BEAN_MERGE_INHERITED_EVENTS_IMPLICIT));
-	}
-
-	/**
-	 * Clear out the implicit settings of the PropertyDecorator.
-	 * 
-	 * @param decor
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void clear(PropertyDecorator decor) {
-		clear((FeatureDecorator) decor);
-		long implicitSettings = decor.getImplicitlySetBits();
-		// For each setting, see if it was implicitly set, and if it was, then unset it.
-		if ((implicitSettings & PropertyDecoratorImpl.PROPERTY_EDITOR_CLASS_IMPLICIT) != 0)
-			decor.eUnset(BeaninfoPackage.eINSTANCE.getPropertyDecorator_PropertyEditorClass());
-		if ((implicitSettings & PropertyDecoratorImpl.PROPERTY_READMETHOD_IMPLICIT) != 0)
-			decor.unsetReadMethod();
-		if ((implicitSettings & PropertyDecoratorImpl.PROPERTY_WRITEMETHOD_IMPLICIT) != 0)
-			decor.unsetWriteMethod();
-		if ((implicitSettings & PropertyDecoratorImpl.PROPERTY_FIELD_IMPLICIT) != 0) {
-			decor.unsetField();		
-			decor.eUnset(BeaninfoPackage.eINSTANCE.getPropertyDecorator_Field());
-		}
-		if ((implicitSettings & PropertyDecoratorImpl.PROPERTY_BOUND_IMPLICIT) != 0)
-			decor.unsetBound();
-		if ((implicitSettings & PropertyDecoratorImpl.PROPERTY_CONSTRAINED_IMPLICIT) != 0)
-			decor.unsetConstrained();
-		if ((implicitSettings & PropertyDecoratorImpl.PROPERTY_DESIGNTIME_IMPLICIT) != 0)
-			decor.unsetDesignTime();
-		decor.setImplicitlySetBits(implicitSettings
-				& ~(PropertyDecoratorImpl.PROPERTY_EDITOR_CLASS_IMPLICIT | PropertyDecoratorImpl.PROPERTY_READMETHOD_IMPLICIT
-						| PropertyDecoratorImpl.PROPERTY_WRITEMETHOD_IMPLICIT | PropertyDecoratorImpl.PROPERTY_BOUND_IMPLICIT
-						| PropertyDecoratorImpl.PROPERTY_CONSTRAINED_IMPLICIT | PropertyDecoratorImpl.PROPERTY_DESIGNTIME_IMPLICIT));
-	}
-
-	/**
-	 * Clear out the implicit settings of the IndexedPropertyDecorator.
-	 * 
-	 * @param decor
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void clear(IndexedPropertyDecorator decor) {
-		clear((PropertyDecorator) decor);
-		long implicitSettings = decor.getImplicitlySetBits();
-		// For each setting, see if it was implicitly set, and if it was, then unset it.
-		if ((implicitSettings & IndexedPropertyDecoratorImpl.INDEXED_READMETHOD_IMPLICIT) != 0)
-			decor.unsetIndexedReadMethod();
-		if ((implicitSettings & IndexedPropertyDecoratorImpl.INDEXED_WRITEMETHOD_IMPLICIT) != 0)
-			decor.unsetIndexedWriteMethod();
-		decor.setImplicitlySetBits(implicitSettings
-				& ~(IndexedPropertyDecoratorImpl.INDEXED_READMETHOD_IMPLICIT | IndexedPropertyDecoratorImpl.INDEXED_WRITEMETHOD_IMPLICIT));
-	}
-
-	/**
-	 * Clear the method decorator of any implicit settings.
-	 * 
-	 * @param decor
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void clear(MethodDecorator decor) {
-		clear((FeatureDecorator) decor);
-		long implicitSettings = decor.getImplicitlySetBits();
-		// For each setting, see if it was implicitly set, and if it was, then unset it.
-		if ((implicitSettings & (MethodDecoratorImpl.METHOD_PARAMETERS_IMPLICIT | MethodDecoratorImpl.METHOD_PARAMETERS_DEFAULT)) != 0)
-			decor.eUnset(BeaninfoPackage.eINSTANCE.getMethodDecorator_SerParmDesc());
-		decor.setImplicitlySetBits(implicitSettings
-				& ~(MethodDecoratorImpl.METHOD_PARAMETERS_IMPLICIT | MethodDecoratorImpl.METHOD_PARAMETERS_DEFAULT));
-	}
-
-	/**
-	 * Clear the event set decorator of any implicit settings.
-	 * 
-	 * @param decor
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void clear(EventSetDecorator decor) {
-		clear((FeatureDecorator) decor);
-		long implicitSettings = decor.getImplicitlySetBits();
-		// For each setting, see if it was implicitly set, and if it was, then unset it.
-		if ((implicitSettings & EventSetDecoratorImpl.EVENT_ADDLISTENERMETHOD_IMPLICIT) != 0)
-			decor.eUnset(BeaninfoPackage.eINSTANCE.getEventSetDecorator_AddListenerMethod());
-		if ((implicitSettings & EventSetDecoratorImpl.EVENT_ADAPTERCLASS_IMPLICIT) != 0)
-			decor.eUnset(BeaninfoPackage.eINSTANCE.getEventSetDecorator_EventAdapterClass());
-		if ((implicitSettings & (EventSetDecoratorImpl.EVENT_LISTENERMETHODS_IMPLICIT | EventSetDecoratorImpl.EVENT_LISTENERMETHODS_DEFAULT)) != 0)
-			decor.eUnset(BeaninfoPackage.eINSTANCE.getEventSetDecorator_SerListMthd());
-		if ((implicitSettings & EventSetDecoratorImpl.EVENT_REMOVELISTENERMETHOD_IMPLICIT) != 0)
-			decor.eUnset(BeaninfoPackage.eINSTANCE.getEventSetDecorator_RemoveListenerMethod());
-		if ((implicitSettings & EventSetDecoratorImpl.EVENT_DEFAULTEVENTSET_IMPLICIT) != 0)
-			decor.unsetInDefaultEventSet();
-		if ((implicitSettings & EventSetDecoratorImpl.EVENT_UNICAST_IMPLICIT) != 0)
-			decor.unsetUnicast();
-		if ((implicitSettings & EventSetDecoratorImpl.EVENT_LISTENERTYPE_IMPLICIT) != 0)
-			decor.eUnset(BeaninfoPackage.eINSTANCE.getEventSetDecorator_ListenerType());
-
-		decor.setImplicitlySetBits(implicitSettings
-				& ~(EventSetDecoratorImpl.EVENT_ADDLISTENERMETHOD_IMPLICIT | EventSetDecoratorImpl.EVENT_ADAPTERCLASS_IMPLICIT
-						| EventSetDecoratorImpl.EVENT_LISTENERMETHODS_IMPLICIT | EventSetDecoratorImpl.EVENT_LISTENERMETHODS_DEFAULT
-						| EventSetDecoratorImpl.EVENT_REMOVELISTENERMETHOD_IMPLICIT | EventSetDecoratorImpl.EVENT_DEFAULTEVENTSET_IMPLICIT
-						| EventSetDecoratorImpl.EVENT_UNICAST_IMPLICIT | EventSetDecoratorImpl.EVENT_LISTENERTYPE_IMPLICIT));
-
-	}
-
-	public static void introspect(IBeanProxy modelBeaninfoProxy, IntrospectCallBack callback) {
-		ProxyIntrospectCallBack cb = new ProxyIntrospectCallBack(callback);
-		modelBeaninfoProxy.getProxyFactoryRegistry().getCallbackRegistry().registerCallback(modelBeaninfoProxy, cb);
-		try {
-			BeaninfoProxyConstants.getConstants(modelBeaninfoProxy.getProxyFactoryRegistry()).getSendBeanInfoProxy()
-					.invokeCatchThrowableExceptions(modelBeaninfoProxy);
-		} finally {
-			modelBeaninfoProxy.getProxyFactoryRegistry().getCallbackRegistry().deregisterCallback(modelBeaninfoProxy);
-		}
-
-	}
-
-	/**
-	 * This call back is for each requested type of record. It allows the callee to process this record.
-	 * 
-	 * @since 1.1.0
-	 */
-	public interface IntrospectCallBack {
-
-		/**
-		 * Process the BeanDecoratorRecord. The callee can decide what needs to be done with this record. It would return the BeandDecorator that needs
-		 * to have the record applied to. If it returns <code>null</code> then the record will be ignored.
-		 * <p>
-		 * Note: This will be called on a separate thread from that which initiated the request. Therefor be careful with any locks because you may
-		 * have them on a separate thread.
-		 * 
-		 * @param record
-		 * @return BeanDecorator to be applied to, or <code>null</code> if record is to be ignored.
-		 * 
-		 * @since 1.1.0
-		 */
-		public BeanDecorator process(BeanRecord record);
-
-		/**
-		 * Process the PropertyRecord. The callee can decide what needs to be done with this record. It would return the PropertyDecorator that needs
-		 * to have the record applied to. If it returns <code>null</code> then the record will be ignored.
-		 * <p>
-		 * Note: This will be called on a separate thread from that which initiated the request. Therefor be careful with any locks because you may
-		 * have them on a separate thread.
-		 * 
-		 * @param record
-		 * @return PropertyDecorator to be applied to, or <code>null</code> if record is to be ignored.
-		 * 
-		 * @since 1.1.0
-		 */
-		public PropertyDecorator process(PropertyRecord record);
-
-		/**
-		 * Process the IndexedPropertyRecord. The callee can decide what needs to be done with this record. It would return the
-		 * IndexedPropertyDecorator that needs to have the record applied to. If it returns <code>null</code> then the record will be ignored.
-		 * 
-		 * <p>
-		 * Note: This will be called on a separate thread from that which initiated the request. Therefor be careful with any locks because you may
-		 * have them on a separate thread.
-		 * 
-		 * @param record
-		 * @return PropertyDecorator to be applied to, or <code>null</code> if record is to be ignored. There is a possibility that a straight
-		 *         PropertyDecorator can be returned instead (in the case that it was explictly set by overrides as a property but beaninfo thinks it
-		 *         is an index. This can be handled by it will only set the PropertyRecord part. It normally should be an IndexedPropertyDecorator
-		 *         returned.
-		 * 
-		 * @since 1.1.0
-		 */
-		public PropertyDecorator process(IndexedPropertyRecord record);
-
-		/**
-		 * Process the MethodRecord. The callee can decide what needs to be done with this record. It would return the MethodDecorator that needs to
-		 * have the record applied to. If it returns <code>null</code> then the record will be ignored.
-		 * 
-		 * <p>
-		 * Note: This will be called on a separate thread from that which initiated the request. Therefor be careful with any locks because you may
-		 * have them on a separate thread.
-		 * 
-		 * @param record
-		 * @return MethodDecorator to be applied to, or <code>null</code> if record is to be ignored.
-		 * 
-		 * @since 1.1.0
-		 */
-
-		public MethodDecorator process(MethodRecord record);
-
-		/**
-		 * Process the EventRecord. The callee can decide what needs to be done with this record. It would return the EventSetDecorator that needs to
-		 * have the record applied to. If it returns <code>null</code> then the record will be ignored.
-		 * 
-		 * <p>
-		 * Note: This will be called on a separate thread from that which initiated the request. Therefor be careful with any locks because you may
-		 * have them on a separate thread.
-		 * 
-		 * @param record
-		 * @return EventSetDecorator to be applied to, or <code>null</code> if record is to be ignored.
-		 * 
-		 * @since 1.1.0
-		 */
-
-		public EventSetDecorator process(EventSetRecord record);
-	}
-
-	private static class ProxyIntrospectCallBack implements ICallback {
-
-		private IntrospectCallBack introspectCallback;
-
-		public ProxyIntrospectCallBack(IntrospectCallBack introspectCallback) {
-			this.introspectCallback = introspectCallback;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jem.internal.proxy.core.ICallback#calledBack(int, org.eclipse.jem.internal.proxy.core.IBeanProxy)
-		 */
-		public Object calledBack(int msgID, IBeanProxy parm) {
-			return null; // Not used.
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jem.internal.proxy.core.ICallback#calledBack(int, java.lang.Object)
-		 */
-		public Object calledBack(int msgID, Object parm) {
-			return null; // Not used.
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jem.internal.proxy.core.ICallback#calledBack(int, java.lang.Object[])
-		 */
-		public Object calledBack(int msgID, Object[] parms) {
-			return null; // Not used.
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jem.internal.proxy.core.ICallback#calledBackStream(int, java.io.InputStream)
-		 */
-		public void calledBackStream(int msgID, InputStream is) {
-			ObjectInputStream ois;
-			try {
-				ois = new ObjectInputStream(is);
-				while (true) {
-					int cmdId = ois.readInt();
-					switch (cmdId) {
-						case IBeanInfoIntrospectionConstants.BEAN_DECORATOR_SENT:
-							try {
-								BeanRecord br = (BeanRecord) ois.readObject();
-								BeanDecorator bd = introspectCallback.process(br);
-								if (bd != null) {
-									clear(bd);
-									applyRecord(bd, br);
-								}
-							} catch (IOException e) {
-								BeaninfoPlugin.getPlugin().getLogger().log(e);
-							} catch (ClassCastException e) {
-								BeaninfoPlugin.getPlugin().getLogger().log(e);
-							} catch (ClassNotFoundException e) {
-								BeaninfoPlugin.getPlugin().getLogger().log(e);
-							}
-							break;
-						case IBeanInfoIntrospectionConstants.PROPERTY_DECORATORS_SENT:
-							try {
-								int propCount = ois.readInt();
-								for (int i = 0; i < propCount; i++) {
-									PropertyRecord pr = (PropertyRecord) ois.readObject();
-									if (pr.getClass() == IndexedPropertyRecord.class) {
-										IndexedPropertyRecord ipr = (IndexedPropertyRecord) pr;
-										PropertyDecorator ip = introspectCallback.process(ipr);
-										if (ip != null) {
-											// It actually could be either a property decorator or an indexed property decorator. This could happen
-											// because the overrides file has explicitly declared a PropertyDecorator, so we can't change it to an
-											// Indexed.
-											// So in that case we can only fill the property part.
-											if (ip.eClass().getClassifierID() == BeaninfoPackage.INDEXED_PROPERTY_DECORATOR)
-												applyRecord((IndexedPropertyDecorator) ip, ipr);
-											else
-												applyRecord(ip, pr); // It was forced to be a property and not indexed.
-										}
-									} else {
-										PropertyDecorator p = introspectCallback.process(pr);
-										if (p != null) {
-											// It actually could be either a property decorator or an indexed property decorator. This could happen
-											// because the overrides file has explicitly declared an IndexedPropertyDecorator, so we can't change it
-											// to an
-											// Property.
-											// So in that case we can only fill the property part.
-											applyRecord(p, pr);
-										}
-									}
-								}
-							} catch (IOException e) {
-								BeaninfoPlugin.getPlugin().getLogger().log(e);
-							} catch (ClassNotFoundException e) {
-								BeaninfoPlugin.getPlugin().getLogger().log(e);
-							} catch (ClassCastException e) {
-								// In case we got bad data sent in.
-								BeaninfoPlugin.getPlugin().getLogger().log(e);
-							} finally {
-							}
-							break;
-
-						case IBeanInfoIntrospectionConstants.METHOD_DECORATORS_SENT:
-							try {
-								int opCount = ois.readInt();
-								for (int i = 0; i < opCount; i++) {
-									MethodRecord mr = (MethodRecord) ois.readObject();
-									MethodDecorator m = introspectCallback.process(mr);
-									if (m != null)
-										applyRecord(m, mr);
-								}
-							} catch (IOException e) {
-								BeaninfoPlugin.getPlugin().getLogger().log(e);
-							} catch (ClassNotFoundException e) {
-								BeaninfoPlugin.getPlugin().getLogger().log(e);
-							} catch (ClassCastException e) {
-								// In case we got bad data sent in.
-								BeaninfoPlugin.getPlugin().getLogger().log(e);
-							}
-							break;
-
-						case IBeanInfoIntrospectionConstants.EVENT_DECORATORS_SENT:
-							try {
-								int opCount = ois.readInt();
-								for (int i = 0; i < opCount; i++) {
-									EventSetRecord evr = (EventSetRecord) ois.readObject();
-									EventSetDecorator e = introspectCallback.process(evr);
-									if (e != null)
-										applyRecord(e, evr);
-								}
-							} catch (IOException e) {
-								BeaninfoPlugin.getPlugin().getLogger().log(e);
-							} catch (ClassNotFoundException e) {
-								BeaninfoPlugin.getPlugin().getLogger().log(e);
-							} catch (ClassCastException e) {
-								// In case we got bad data sent in.
-								BeaninfoPlugin.getPlugin().getLogger().log(e);
-							}
-							break;
-
-						case IBeanInfoIntrospectionConstants.DONE:
-							return;	// Good. This is a good stop.
-							
-						default:
-							return;	// This is invalid. Should of gotton something.
-					}
-				}
-			} catch (IOException e) {
-				BeaninfoPlugin.getPlugin().getLogger().log(e);
-			}
-		}
-	}
-
-	/**
-	 * Apply the feature record to the feature decorator. This is protected because this is an abstract and should never be called by itself.
-	 * <p>
-	 * 
-	 * @param decor
-	 * @param record
-	 * 
-	 * @since 1.1.0
-	 */
-	protected static void applyRecord(FeatureDecorator decor, FeatureRecord record) {
-		// Subclasses will clear their decor, which will automatically clear the FeatureDecor part for us.
-		long implicitSettings = decor.getImplicitlySetBits();
-		if (record.displayName != null && !decor.isSetDisplayName()) {
-			decor.setDisplayName(record.displayName);
-			implicitSettings |= FeatureDecoratorImpl.FEATURE_DISPLAYNAME_IMPLICIT;
-		}
-		if (record.shortDescription != null && !decor.isSetShortDescription()) {
-			decor.setShortDescription(record.shortDescription);
-			implicitSettings |= FeatureDecoratorImpl.FEATURE_SHORTDESC_IMPLICIT;
-		}
-		if (record.category != null && !decor.eIsSet(BeaninfoPackage.eINSTANCE.getFeatureDecorator_Category())) {
-			decor.setCategory(record.category);
-			implicitSettings |= FeatureDecoratorImpl.FEATURE_CATEGORY_IMPLICIT;
-		}
-		if (!decor.isSetExpert()) {
-			if (decor.isExpert() != record.expert)
-				decor.setExpert(record.expert); // Don't want to explicitly set it if it is equal to default (this will put less out to the cache file
-												// and so will parse and apply faster).
-			implicitSettings |= FeatureDecoratorImpl.FEATURE_EXPERT_IMPLICIT;
-		}
-		if (!decor.isSetHidden()) {
-			if (decor.isHidden() != record.hidden)
-				decor.setHidden(record.hidden);
-			implicitSettings |= FeatureDecoratorImpl.FEATURE_HIDDEN_IMPLICIT;
-		}
-		if (!decor.isSetPreferred()) {
-			if (decor.isPreferred() != record.preferred)
-				decor.setPreferred(record.preferred);
-			implicitSettings |= FeatureDecoratorImpl.FEATURE_PREFERRED_IMPLICIT;
-		}
-		if (record.attributeNames != null && !decor.isAttributesExplicitEmpty()
-				&& !decor.eIsSet(BeaninfoPackage.eINSTANCE.getFeatureDecorator_Attributes())) {
-			// This is a list, so we need to read an fill in.
-			EMap attrs = decor.getAttributes();
-			for (int i = 0; i < record.attributeNames.length; i++) {
-				FeatureAttributeMapEntryImpl entry = (FeatureAttributeMapEntryImpl) ((BeaninfoFactoryImpl) BeaninfoFactory.eINSTANCE)
-						.createFeatureAttributeMapEntry();
-				entry.setTypedKey(record.attributeNames[i]);
-				entry.setTypedValue(record.attributeValues[i]);
-				attrs.add(entry);
-			}
-			implicitSettings |= FeatureDecoratorImpl.FEATURE_ATTRIBUTES_IMPLICIT;
-		}
-
-		decor.setImplicitlySetBits(implicitSettings); // Now save was implicitly set.
-	}
-
-	/**
-	 * Apply the bean record to the bean decorator.
-	 * 
-	 * @param decor
-	 * @param record
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void applyRecord(BeanDecorator decor, BeanRecord record) {
-		applyRecord((FeatureDecorator) decor, record);
-
-		long implicitSettings = decor.getImplicitlySetBits();
-		if (record.customizerClassName != null && !decor.eIsSet(BeaninfoPackage.eINSTANCE.getBeanDecorator_CustomizerClass())) {
-			decor.setCustomizerClass(createJavaClassProxy(record.customizerClassName));
-			implicitSettings |= BeanDecoratorImpl.BEAN_CUSTOMIZER_IMPLICIT;
-		}
-		if (!decor.isSetMergeSuperProperties()) {
-			if (decor.isMergeSuperProperties() != record.mergeInheritedProperties)
-				decor.setMergeSuperProperties(record.mergeInheritedProperties);
-			implicitSettings |= BeanDecoratorImpl.BEAN_MERGE_INHERITED_PROPERTIES_IMPLICIT;
-		}
-		if (!decor.isSetMergeSuperMethods()) {
-			if (decor.isMergeSuperMethods() != record.mergeInheritedOperations)
-				decor.setMergeSuperMethods(record.mergeInheritedOperations);
-			implicitSettings |= BeanDecoratorImpl.BEAN_MERGE_INHERITED_OPERATIONS_IMPLICIT;
-		}
-		if (!decor.isSetMergeSuperEvents()) {
-			if (decor.isMergeSuperEvents() != record.mergeInheritedEvents)
-				decor.setMergeSuperEvents(record.mergeInheritedEvents);
-			implicitSettings |= BeanDecoratorImpl.BEAN_MERGE_INHERITED_EVENTS_IMPLICIT;
-		}
-		if (record.notInheritedPropertyNames != null) {
-			// This is always applied. This isn't a client override so we can just slam it.
-			decor.getNotInheritedPropertyNames().addAll(Arrays.asList(record.notInheritedPropertyNames));
-		}
-		if (record.notInheritedOperationNames != null) {
-			// This is always applied. This isn't a client override so we can just slam it.
-			decor.getNotInheritedMethodNames().addAll(Arrays.asList(record.notInheritedOperationNames));
-		}
-		if (record.notInheritedEventNames != null) {
-			// This is always applied. This isn't a client override so we can just slam it.
-			decor.getNotInheritedEventNames().addAll(Arrays.asList(record.notInheritedEventNames));
-		}
-
-		decor.setImplicitlySetBits(implicitSettings); // Now save was implicitly set.
-	}
-
-	/**
-	 * Apply the PropertyRecord to the PropertyDecorator.
-	 * 
-	 * @param decor
-	 * @param record
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void applyRecord(PropertyDecorator decor, PropertyRecord record) {
-		applyRecord((FeatureDecorator) decor, record);
-
-		applyOnly(decor, record);
-	}
-
-	/*
-	 * Apply only to property decorator part. Allows IndexedProperty to apply just the Property part and not do duplicate work
-	 */
-	private static void applyOnly(PropertyDecorator decor, PropertyRecord record) {
-		long implicitSettings = decor.getImplicitlySetBits();
-		if (record.propertyEditorClassName != null && !decor.eIsSet(BeaninfoPackage.eINSTANCE.getPropertyDecorator_PropertyEditorClass())) {
-			decor.setPropertyEditorClass(createJavaClassProxy(record.propertyEditorClassName));
-			implicitSettings |= PropertyDecoratorImpl.PROPERTY_EDITOR_CLASS_IMPLICIT;
-		}
-		if (record.readMethod != null && !decor.isSetReadMethod()) {
-			decor.setReadMethod(createJavaMethodProxy(record.readMethod));
-			implicitSettings |= PropertyDecoratorImpl.PROPERTY_READMETHOD_IMPLICIT;
-		}
-		if (record.writeMethod != null && !decor.isSetWriteMethod()) {
-			decor.setWriteMethod(createJavaMethodProxy(record.writeMethod));
-			implicitSettings |= PropertyDecoratorImpl.PROPERTY_WRITEMETHOD_IMPLICIT;
-		}
-		if (record.field != null && !decor.isSetField()) {
-			decor.setField(createJavaFieldProxy(record.field));
-			if (decor.isFieldReadOnly() != record.field.readOnly)
-				decor.setFieldReadOnly(record.field.readOnly);
-			implicitSettings |= PropertyDecoratorImpl.PROPERTY_FIELD_IMPLICIT;
-		}		
-		if (!decor.isSetBound()) {
-			if (decor.isBound() != record.bound)
-				decor.setBound(record.bound);
-			implicitSettings |= PropertyDecoratorImpl.PROPERTY_BOUND_IMPLICIT;
-		}
-		if (!decor.isSetConstrained()) {
-			if (decor.isConstrained() != record.constrained)
-				decor.setConstrained(record.constrained);
-			implicitSettings |= PropertyDecoratorImpl.PROPERTY_CONSTRAINED_IMPLICIT;
-		}
-		if (record.designTime != null && !decor.isSetDesignTime()) {
-			// Design time is slightly different than the other booleans because
-			// explicitly set to true/false is important versus not explicitly set at all (which is false).
-			decor.setDesignTime(record.designTime.booleanValue());
-			implicitSettings |= PropertyDecoratorImpl.PROPERTY_DESIGNTIME_IMPLICIT;
-		}
-
-		decor.setImplicitlySetBits(implicitSettings); // Now save was implicitly set.
-
-	}
-
-	public static void applyRecord(IndexedPropertyDecorator decor, IndexedPropertyRecord record) {
-		applyRecord((FeatureDecorator) decor, record);
-		applyOnly(decor, record);
-
-		long implicitSettings = decor.getImplicitlySetBits();
-		if (record.indexedReadMethod != null && !decor.isSetIndexedReadMethod()) {
-			decor.setIndexedReadMethod(createJavaMethodProxy(record.indexedReadMethod));
-			implicitSettings |= IndexedPropertyDecoratorImpl.INDEXED_READMETHOD_IMPLICIT;
-		}
-		if (record.indexedWriteMethod != null && !decor.isSetIndexedWriteMethod()) {
-			decor.setIndexedWriteMethod(createJavaMethodProxy(record.indexedWriteMethod));
-			implicitSettings |= IndexedPropertyDecoratorImpl.INDEXED_WRITEMETHOD_IMPLICIT;
-		}
-		decor.setImplicitlySetBits(implicitSettings); // Now save was implicitly set.
-	}
-
-	/**
-	 * Apply the method record to the method decorator.
-	 * 
-	 * @param decor
-	 * @param record
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void applyRecord(MethodDecorator decor, MethodRecord record) {
-		applyRecord((FeatureDecorator) decor, record);
-
-		long implicitSettings = decor.getImplicitlySetBits();
-		if (record.parameters != null && !decor.isParmsExplicitEmpty()
-				&& !decor.eIsSet(BeaninfoPackage.eINSTANCE.getMethodDecorator_ParameterDescriptors())) {
-			// This is a list, so we need to read an fill in.
-			List parms = decor.getSerParmDesc(); // So as not to have it implicitly fill it in, which it would if we called getParameterDescriptors.
-			for (int i = 0; i < record.parameters.length; i++) {
-				ParameterDecorator parm = BeaninfoFactory.eINSTANCE.createParameterDecorator();
-				applyRecord(parm, record.parameters[i]);
-				parms.add(parm);
-			}
-			implicitSettings |= MethodDecoratorImpl.METHOD_PARAMETERS_IMPLICIT;
-			implicitSettings &= ~MethodDecoratorImpl.METHOD_PARAMETERS_DEFAULT; // Should of already been cleared, but be safe.
-		}
-
-		decor.setImplicitlySetBits(implicitSettings); // Now save was implicitly set.
-	}
-
-	public static void applyRecord(ParameterDecorator decor, ParameterRecord record) {
-		applyRecord((FeatureDecorator) decor, record);
-
-		long implicitSettings = decor.getImplicitlySetBits();
-		if (record.name != null && !decor.eIsSet(BeaninfoPackage.eINSTANCE.getParameterDecorator_Name())) {
-			decor.setName(record.name);
-			implicitSettings |= ParameterDecoratorImpl.PARAMETER_NAME_IMPLICIT;
-		}
-		decor.setImplicitlySetBits(implicitSettings); // Now save was implicitly set.
-	}
-
-	/**
-	 * Apply the event set record to the event set decorator.
-	 * 
-	 * @param decor
-	 * @param record
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void applyRecord(EventSetDecorator decor, EventSetRecord record) {
-		applyRecord((FeatureDecorator) decor, record);
-
-		long implicitSettings = decor.getImplicitlySetBits();
-		if (record.addListenerMethod != null && !decor.eIsSet(BeaninfoPackage.eINSTANCE.getEventSetDecorator_AddListenerMethod())) {
-			decor.setAddListenerMethod(createJavaMethodProxy(record.addListenerMethod));
-			implicitSettings |= EventSetDecoratorImpl.EVENT_ADDLISTENERMETHOD_IMPLICIT;
-		}
-		if (record.eventAdapterClassName != null && !decor.eIsSet(BeaninfoPackage.eINSTANCE.getEventSetDecorator_EventAdapterClass())) {
-			decor.setEventAdapterClass(createJavaClassProxy(record.eventAdapterClassName));
-			implicitSettings |= EventSetDecoratorImpl.EVENT_ADAPTERCLASS_IMPLICIT;
-		}
-		if (record.listenerMethodDescriptors != null && !decor.isListenerMethodsExplicitEmpty()
-				&& !decor.eIsSet(BeaninfoPackage.eINSTANCE.getEventSetDecorator_ListenerMethods())) {
-			List methods = decor.getSerListMthd(); // So as not to have it implicitly fill it in, which it would if we called getListenerMethods.
-			for (int i = 0; i < record.listenerMethodDescriptors.length; i++) {
-				BeaninfoFactory bfact = BeaninfoFactory.eINSTANCE;
-				MethodRecord mr = record.listenerMethodDescriptors[i];
-				Method method = createJavaMethodProxy(mr.methodForDescriptor);
-				// We need a method proxy, and a method decorator.
-				MethodProxy mproxy = bfact.createMethodProxy();
-				mproxy.setMethod(method);
-				mproxy.setName(mr.name);
-				MethodDecorator md = bfact.createMethodDecorator();
-				applyRecord(md, mr);
-				mproxy.getEAnnotations().add(md);
-				methods.add(mproxy);
-			}
-			implicitSettings |= EventSetDecoratorImpl.EVENT_LISTENERMETHODS_IMPLICIT;
-			implicitSettings &= ~EventSetDecoratorImpl.EVENT_LISTENERMETHODS_DEFAULT; // Should of already been cleared, but be safe.
-		}
-		if (record.listenerTypeName != null && !decor.eIsSet(BeaninfoPackage.eINSTANCE.getEventSetDecorator_ListenerType())) {
-			decor.setListenerType(createJavaClassProxy(record.listenerTypeName));
-			implicitSettings |= EventSetDecoratorImpl.EVENT_LISTENERTYPE_IMPLICIT;
-		}
-		if (record.removeListenerMethod != null && !decor.eIsSet(BeaninfoPackage.eINSTANCE.getEventSetDecorator_RemoveListenerMethod())) {
-			decor.setRemoveListenerMethod(createJavaMethodProxy(record.removeListenerMethod));
-			implicitSettings |= EventSetDecoratorImpl.EVENT_REMOVELISTENERMETHOD_IMPLICIT;
-		}
-		if (!decor.isSetInDefaultEventSet()) {
-			if (record.inDefaultEventSet != decor.isInDefaultEventSet())
-				decor.setInDefaultEventSet(record.inDefaultEventSet);
-			implicitSettings |= EventSetDecoratorImpl.EVENT_DEFAULTEVENTSET_IMPLICIT;
-		}
-		if (!decor.isSetUnicast()) {
-			if (record.unicast != decor.isUnicast())
-				decor.setUnicast(record.unicast);
-			implicitSettings |= EventSetDecoratorImpl.EVENT_UNICAST_IMPLICIT;
-		}
-
-		decor.setImplicitlySetBits(implicitSettings); // Now save was implicitly set.
-	}
-
-	/**
-	 * Create a java class proxy for the given name. By being a proxy we don't need to actually have the resource set. Nor do we need to fluff one up
-	 * until someone actually asks for it.
-	 * <p>
-	 * The jniName must refer to a JavaClass or errors could occur later on.
-	 * 
-	 * @param jniName
-	 *            classname in JNI format.
-	 * @return JavaClass proxy or <code>null</code> if not a java class (it may be a type).
-	 * 
-	 * @since 1.1.0
-	 */
-	public static JavaClass createJavaClassProxy(String jniName) {
-		JavaHelpers jh = createJavaTypeProxy(jniName);
-		return jh instanceof JavaClass ? (JavaClass) jh : null;
-	}
-
-	/**
-	 * Create a JavaHelpers proxy for the given name. By being a proxy we don't need to actually have the resource set. Nor do we need to fluff one up
-	 * until someone actually asks for it.
-	 * 
-	 * @param jniName
-	 *            typename in JNI format.
-	 * @return JavaHelper proxy.
-	 * 
-	 * @since 1.1.0
-	 */
-	public static JavaHelpers createJavaTypeProxy(String jniName) {
-		String formalName = MapJNITypes.getFormalTypeName(jniName);
-
-		URI uri = Utilities.getJavaClassURI(formalName);
-		JavaHelpers jh = null;
-		if (MapJNITypes.isFormalTypePrimitive(formalName))
-			jh = JavaRefFactory.eINSTANCE.createJavaDataType();
-		else
-			jh = JavaRefFactory.eINSTANCE.createJavaClass();
-		((InternalEObject) jh).eSetProxyURI(uri);
-		return jh;
-	}
-
-	public static Method createJavaMethodProxy(ReflectMethodRecord method) {
-		String[] parmTypes = method.parameterTypeNames != null ? new String[method.parameterTypeNames.length] : null;
-		if (parmTypes != null)
-			for (int i = 0; i < method.parameterTypeNames.length; i++) {
-				parmTypes[i] = MapJNITypes.getFormalTypeName(method.parameterTypeNames[i]);
-			}
-		URI uri = Utilities.getMethodURI(MapJNITypes.getFormalTypeName(method.className), method.methodName, parmTypes);
-		Method methodEMF = JavaRefFactory.eINSTANCE.createMethod();
-		((InternalEObject) methodEMF).eSetProxyURI(uri);
-		return methodEMF;
-	}
-	
-	public static Field createJavaFieldProxy(ReflectFieldRecord field) {
-		URI uri = Utilities.getFieldURI(MapJNITypes.getFormalTypeName(field.className), field.fieldName);
-		Field fieldEMF = JavaRefFactory.eINSTANCE.createField();
-		((InternalEObject) fieldEMF).eSetProxyURI(uri);
-		return fieldEMF;
-	}	
-
-	/**
-	 * Set the properties on the PropertyDecorator. These come from reflection. Since this is a private interface between BeaninfoClassAdapter and
-	 * this class, not all possible settings need to be mentioned. Only the ones that can be set by reflection. It is assumed that clear has already
-	 * been done so that there are no old implicit settings. It will check if properties are set already before setting so that don't wipe out
-	 * explicit settings.
-	 * 
-	 * @param prop
-	 * @param bound
-	 * @param constrained
-	 * @param getter
-	 * @param setter
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void setProperties(PropertyDecorator prop, boolean bound, boolean constrained, Method getter, Method setter) {
-		long implicitSettings = prop.getImplicitlySetBits();
-		if (getter != null && !prop.isSetReadMethod()) {
-			prop.setReadMethod(getter);
-			implicitSettings |= PropertyDecoratorImpl.PROPERTY_READMETHOD_IMPLICIT;
-		}
-		if (setter != null && !prop.isSetWriteMethod()) {
-			prop.setWriteMethod(setter);
-			implicitSettings |= PropertyDecoratorImpl.PROPERTY_WRITEMETHOD_IMPLICIT;
-		}
-		if (!prop.isSetBound()) {
-			if (prop.isBound() != bound)
-				prop.setBound(bound);
-			implicitSettings |= PropertyDecoratorImpl.PROPERTY_BOUND_IMPLICIT;
-		}
-		if (!prop.isSetConstrained()) {
-			if (prop.isConstrained() != constrained)
-				prop.setConstrained(constrained);
-			implicitSettings |= PropertyDecoratorImpl.PROPERTY_CONSTRAINED_IMPLICIT;
-		}
-		prop.setImplicitlySetBits(implicitSettings); // Now save was implicitly set.
-	}
-
-	/**
-	 * Set the properties on the IndexedPropertyDecorator. These come from reflection. It is only the indexed portion. The base property portion
-	 * should have already been set. Since this is a private interface between BeaninfoClassAdapter and this class, not all possible settings need to
-	 * be mentioned. Only the ones that can be set by reflection. It is assumed that clear has already been done so that there are no old implicit
-	 * settings. It will check if properties are set already before setting so that don't wipe out explicit settings.
-	 * 
-	 * @param prop
-	 * @param indexedGetter
-	 * @param indexedSetter
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void setProperties(IndexedPropertyDecorator prop, Method indexedGetter, Method indexedSetter) {
-		long implicitSettings = prop.getImplicitlySetBits();
-		if (indexedGetter != null && !prop.isSetIndexedReadMethod()) {
-			prop.setIndexedReadMethod(indexedGetter);
-			implicitSettings |= IndexedPropertyDecoratorImpl.INDEXED_READMETHOD_IMPLICIT;
-		}
-		if (indexedSetter != null && !prop.isSetIndexedWriteMethod()) {
-			prop.setIndexedWriteMethod(indexedSetter);
-			implicitSettings |= IndexedPropertyDecoratorImpl.INDEXED_WRITEMETHOD_IMPLICIT;
-		}
-		prop.setImplicitlySetBits(implicitSettings); // Now save was implicitly set.
-	}
-
-	/**
-	 * Set the properties on the EventSetDecorator. These come from reflection. Since this is a private interface between BeaninfoClassAdapter and
-	 * this class, not all possible settings need to be mentioned. Only the ones that can be set by reflection. It is assumed that clear has already
-	 * been done so that there are no old implicit settings. It will check if properties are set already before setting so that don't wipe out
-	 * explicit settings.
-	 * 
-	 * @param event
-	 * @param bound
-	 * @param constrained
-	 * @param getter
-	 * @param setter
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void setProperties(EventSetDecorator event, Method addListenerMethod, Method removeListenerMethod, boolean unicast,
-			JavaClass listenerType) {
-		long implicitSettings = event.getImplicitlySetBits();
-		if (addListenerMethod != null && !event.eIsSet(BeaninfoPackage.eINSTANCE.getEventSetDecorator_AddListenerMethod())) {
-			event.setAddListenerMethod(addListenerMethod);
-			implicitSettings |= EventSetDecoratorImpl.EVENT_ADDLISTENERMETHOD_IMPLICIT;
-		}
-		if (removeListenerMethod != null && !event.eIsSet(BeaninfoPackage.eINSTANCE.getEventSetDecorator_RemoveListenerMethod())) {
-			event.setRemoveListenerMethod(removeListenerMethod);
-			implicitSettings |= EventSetDecoratorImpl.EVENT_REMOVELISTENERMETHOD_IMPLICIT;
-		}
-		if (!event.isSetUnicast()) {
-			if (event.isUnicast() != unicast)
-				event.setUnicast(unicast);
-			implicitSettings |= PropertyDecoratorImpl.PROPERTY_BOUND_IMPLICIT;
-		}
-		if (listenerType != null && !event.eIsSet(BeaninfoPackage.eINSTANCE.getEventSetDecorator_ListenerType())) {
-			event.setListenerType(listenerType);
-			implicitSettings |= EventSetDecoratorImpl.EVENT_LISTENERTYPE_IMPLICIT;
-		}
-
-		event.setImplicitlySetBits(implicitSettings); // Now save was implicitly set.
-	}
-
-	/**
-	 * Build the appropriate change record for the bean decorator. Either it is an add of a new bean decorator or it is the setting of the implicit
-	 * settings on an non-implicit bean decorator.
-	 * @param cd
-	 * @param bd
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void buildChange(ChangeDescription cd, BeanDecorator bd) {
-		// Only do anything if merge introspection. If no merge introspection, then there is no change needed.
-		if (bd.isMergeIntrospection()) {
-			if (bd.getImplicitDecoratorFlag() != ImplicitItem.NOT_IMPLICIT_LITERAL) {
-				// It is implicit, so do an add to end, new value.
-				doAddToEnd(cd, getFeatureChangeList(cd, bd.getEModelElement()), EcorePackage.eINSTANCE.getEModelElement_EAnnotations(), bd, true);
-			} else {
-				// Just do sets on implicit changed ones
-				buildNonImplicitChange(cd, getFeatureChangeList(cd, bd), bd);
-			}
-		}
-
-	}
-
-	/**
-	 * Build the appropriate change record for the property decorator. Either it is an add of a new property decorator or it is the setting of the implicit
-	 * settings on an non-implicit property decorator. The same is true of the feature that it decorates. It may be new or it may be an existing one.
-	 * @param cd
-	 * @param pd
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void buildChange(ChangeDescription cd, PropertyDecorator pd) {
-		// Only do changes if merge introspection. If not merging, then there are no changes.
-		if (pd.isMergeIntrospection()) {
-			boolean indexed = pd.eClass().getClassifierID() == BeaninfoPackage.INDEXED_PROPERTY_DECORATOR;
-			EStructuralFeature feature = (EStructuralFeature) pd.getEModelElement();
-			switch (pd.getImplicitDecoratorFlag().getValue()) {
-				case ImplicitItem.IMPLICIT_DECORATOR:
-					// The decorator is implicit, so clone it, and apply to feature, and then do the standard property applies to the feature.
-					List fcs = getFeatureChangeList(cd, feature);
-					doAddToEnd(cd, fcs, pd.eContainingFeature(), pd, true);
-					buildNonImplicitChange(cd, fcs, feature, indexed);
-					break;
-				case ImplicitItem.IMPLICIT_DECORATOR_AND_FEATURE:
-					// The decorator AND feature are implicit. Just clone them and add to the class.
-					doAddToEnd(cd, getFeatureChangeList(cd, feature.eContainer()), feature.eContainingFeature(), feature, true);
-					break;
-				case ImplicitItem.NOT_IMPLICIT:
-					// Neither the feature nor the decorator are implicit. So need to do applies against them.
-					buildNonImplicitChange(cd, getFeatureChangeList(cd, pd), pd, indexed);
-					buildNonImplicitChange(cd, getFeatureChangeList(cd, feature), feature, indexed);
-					break;
-			}
-		}
-	}
-	
-	/**
-	 * Build the appropriate change record for the event set decorator. Either it is an add of a new event set decorator or it is the setting of the implicit
-	 * settings on an non-implicit event set decorator. The same is true of the feature that it decorates. It may be new or it may be an existing one.
-	 * @param cd
-	 * @param ed
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void buildChange(ChangeDescription cd, EventSetDecorator ed) {
-		// Only build changes if merge introspection. If not merge then there are no changes.
-		if (ed.isMergeIntrospection()) {
-			JavaEvent event = (JavaEvent) ed.getEModelElement();
-			switch (ed.getImplicitDecoratorFlag().getValue()) {
-				case ImplicitItem.IMPLICIT_DECORATOR:
-					// The decorator is implicit, so clone it, and apply to feature, and then do the standard property applies to the feature.
-					List fcs = getFeatureChangeList(cd, event);
-					doAddToEnd(cd, fcs, ed.eContainingFeature(), ed, true);
-					buildNonImplicitChange(cd, fcs, event);
-					break;
-				case ImplicitItem.IMPLICIT_DECORATOR_AND_FEATURE:
-					// The decorator AND feature are implicit. Just clone them and add to the class.
-					doAddToEnd(cd, getFeatureChangeList(cd, event.eContainer()), event.eContainingFeature(), event, true);
-					break;
-				case ImplicitItem.NOT_IMPLICIT:
-					// Neither the feature nor the decorator are implicit. So need to do applies against them.
-					buildNonImplicitChange(cd, getFeatureChangeList(cd, ed), ed);
-					buildNonImplicitChange(cd, getFeatureChangeList(cd, event), event);
-					break;
-			}
-		}
-	}
-
-	/**
-	 * Build the appropriate change record for the method decorator. Either it is an add of a new method decorator or it is the setting of the implicit
-	 * settings on an non-implicit method decorator. The same is true of the operation that it decorates. It may be new or it may be an existing one.
-	 * @param cd
-	 * @param md
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void buildChange(ChangeDescription cd, MethodDecorator md) {
-		// Only do any builds if merge introspection. If not merge introspection then nothing should be changed.
-		if (md.isMergeIntrospection()) {
-			EOperation oper = (EOperation) md.getEModelElement();
-			switch (md.getImplicitDecoratorFlag().getValue()) {
-				case ImplicitItem.IMPLICIT_DECORATOR:
-					// The decorator is implicit, so clone it, and apply to feature, and then do the standard property applies to the feature.
-					List fcs = getFeatureChangeList(cd, oper);
-					doAddToEnd(cd, fcs, md.eContainingFeature(), md, true);
-					buildNonImplicitChange(cd, fcs, oper);
-					break;
-				case ImplicitItem.IMPLICIT_DECORATOR_AND_FEATURE:
-					// The decorator AND feature are implicit. Just clone them and add to the class.
-					doAddToEnd(cd, getFeatureChangeList(cd, oper.eContainer()), oper.eContainingFeature(), oper, true);
-					break;
-				case ImplicitItem.NOT_IMPLICIT:
-					// Neither the feature nor the decorator are implicit. So need to do applies against them.
-					buildNonImplicitChange(cd, getFeatureChangeList(cd, md), md);
-					buildNonImplicitChange(cd, getFeatureChangeList(cd, oper), oper);
-					break;
-			}
-		}
-	}
-	
-	private final static Integer ZERO = new Integer(0);
-	private final static Integer ONE = new Integer(1);
-	private final static Integer MINUS_ONE = new Integer(-1);
-	
-	/**
-	 * Build the non-implicit changes into the feature. This creates changes for the implicit settings
-	 * that always occur for a property decorator.
-	 *  
-	 * @param cd
-	 * @param fcs FeatureChanges list for the feature.
-	 * @param feature
-	 * @param indexed <code>true</code> if this is for an indexed feature.
-	 * 
-	 * @since 1.1.0
-	 */
-	protected static void buildNonImplicitChange(ChangeDescription cd, List fcs, EStructuralFeature feature, boolean indexed) {
-		doSet(cd, fcs, EcorePackage.eINSTANCE.getENamedElement_Name(), feature.getName(), false);
-		doSet(cd, fcs, EcorePackage.eINSTANCE.getEStructuralFeature_Transient(), Boolean.FALSE, false);
-		doSet(cd, fcs, EcorePackage.eINSTANCE.getEStructuralFeature_Volatile(), Boolean.FALSE, false);
-		doSet(cd, fcs, EcorePackage.eINSTANCE.getEStructuralFeature_Changeable(), Boolean.valueOf(feature.isChangeable()), false);
-		doSet(cd, fcs, EcorePackage.eINSTANCE.getETypedElement_EType(), feature.getEType(), false);
-		if (!indexed) {
-			doSet(cd, fcs, EcorePackage.eINSTANCE.getETypedElement_LowerBound(), ZERO, false);
-			doSet(cd, fcs, EcorePackage.eINSTANCE.getETypedElement_UpperBound(), ONE, false);
-		} else {
-			doSet(cd, fcs, EcorePackage.eINSTANCE.getETypedElement_LowerBound(), ZERO, false);
-			doSet(cd, fcs, EcorePackage.eINSTANCE.getETypedElement_UpperBound(), MINUS_ONE, false);
-			doSet(cd, fcs, EcorePackage.eINSTANCE.getETypedElement_Unique(), Boolean.TRUE, false);
-		}
-	}
-
-	/**
-	 * Build the non-implicit changes into the event. This creates changes for the implicit settings
-	 * that always occur for an event set decorator.
-	 *  
-	 * @param cd
-	 * @param fcs FeatureChanges list for the feature.
-	 * @param event
-	 * 
-	 * @since 1.1.0
-	 */
-	protected static void buildNonImplicitChange(ChangeDescription cd, List fcs, JavaEvent event) {
-		doSet(cd, fcs, EcorePackage.eINSTANCE.getENamedElement_Name(), event.getName(), false);
-	}
-
-	/**
-	 * Build the non-implicit changes into the operation. This creates changes for the implicit settings
-	 * that always occur for an method decorator.
-	 *  
-	 * @param cd
-	 * @param fcs FeatureChanges list for the feature.
-	 * @param oper
-	 * 
-	 * @since 1.1.0
-	 */
-	protected static void buildNonImplicitChange(ChangeDescription cd, List fcs, EOperation oper) {
-		doSet(cd, fcs, EcorePackage.eINSTANCE.getENamedElement_Name(), oper.getName(), false);
-		try {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getMethodProxy_Method(), ((MethodProxy) oper).getMethod(), false);	// This is a method that is not in this resource, so no clone.
-		} catch (ClassCastException e) {
-			// It will be a MethodProxy 99.9% of the time, so save by not doing instanceof.
-		}
-	}
-
-	/**
-	 * Build up the changes for a non-implicit feature decorator. This means create changes for implicit set features.
-	 * 
-	 * @param cd
-	 * @param fcs
-	 *            the FeatureChanges list for the given decorator.
-	 * @param decor
-	 * 
-	 * @since 1.1.0
-	 */
-	protected static void buildNonImplicitChange(ChangeDescription cd, List fcs, FeatureDecorator decor) {
-		long implicitSettings = decor.getImplicitlySetBits();
-		if (implicitSettings != 0)
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getFeatureDecorator_ImplicitlySetBits(), new Long(implicitSettings), false);
-		
-		if ((implicitSettings & FeatureDecoratorImpl.FEATURE_DISPLAYNAME_IMPLICIT) != 0) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getFeatureDecorator_DisplayName(), decor.getDisplayName(), false);
-		}
-		if ((implicitSettings & FeatureDecoratorImpl.FEATURE_SHORTDESC_IMPLICIT) != 0) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getFeatureDecorator_ShortDescription(), decor.getShortDescription(), false);
-		}
-		if ((implicitSettings & FeatureDecoratorImpl.FEATURE_CATEGORY_IMPLICIT) != 0) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getFeatureDecorator_Category(), decor.getCategory(), false);
-		}
-		if ((implicitSettings & FeatureDecoratorImpl.FEATURE_EXPERT_IMPLICIT) != 0 && decor.isSetExpert()) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getFeatureDecorator_Expert(), Boolean.valueOf(decor.isExpert()), false);
-		}
-		if ((implicitSettings & FeatureDecoratorImpl.FEATURE_HIDDEN_IMPLICIT) != 0 && decor.isSetHidden()) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getFeatureDecorator_Hidden(), Boolean.valueOf(decor.isHidden()), false);
-		}
-		if ((implicitSettings & FeatureDecoratorImpl.FEATURE_PREFERRED_IMPLICIT) != 0 && decor.isSetPreferred()) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getFeatureDecorator_Preferred(), Boolean.valueOf(decor.isPreferred()), false);
-		}
-		if ((implicitSettings & FeatureDecoratorImpl.FEATURE_ATTRIBUTES_IMPLICIT) != 0) {
-			doAddAllToEnd(cd, fcs, BeaninfoPackage.eINSTANCE.getFeatureDecorator_Attributes(), decor.getAttributes(), true);
-		}
-	}
-
-	/**
-	 * Build up the changes for a non-implicit bean decorator. This means create changes for implicit set features.
-	 * 
-	 * @param cd
-	 * @param fcs
-	 *            the FeatureChanges list for the given decorator.
-	 * @param decor
-	 * 
-	 * @since 1.1.0
-	 */
-	protected static void buildNonImplicitChange(ChangeDescription cd, List fcs, BeanDecorator decor) {
-		buildNonImplicitChange(cd, fcs, (FeatureDecorator) decor);
-		long implicitSettings = decor.getImplicitlySetBits();
-		if ((implicitSettings & BeanDecoratorImpl.BEAN_CUSTOMIZER_IMPLICIT) != 0) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getBeanDecorator_CustomizerClass(), decor.getCustomizerClass(), false); // Customizer class is
-																															 // not in this resource,
-																															 // so we don't clone it.
-		}
-		if ((implicitSettings & BeanDecoratorImpl.BEAN_MERGE_INHERITED_PROPERTIES_IMPLICIT) != 0 && decor.isSetMergeSuperProperties()) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getBeanDecorator_MergeSuperProperties(), Boolean.valueOf(decor.isMergeSuperProperties()), false);
-		}
-		if ((implicitSettings & BeanDecoratorImpl.BEAN_MERGE_INHERITED_OPERATIONS_IMPLICIT) != 0 && decor.isSetMergeSuperMethods()) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getBeanDecorator_MergeSuperMethods(), Boolean.valueOf(decor.isMergeSuperMethods()), false);
-		}
-		if ((implicitSettings & BeanDecoratorImpl.BEAN_MERGE_INHERITED_EVENTS_IMPLICIT) != 0 && decor.isSetMergeSuperEvents()) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getBeanDecorator_MergeSuperEvents(), Boolean.valueOf(decor.isMergeSuperEvents()), false);
-		}
-		if (!decor.getNotInheritedPropertyNames().isEmpty()) {
-			doAddAllToEnd(cd, fcs, BeaninfoPackage.eINSTANCE.getBeanDecorator_NotInheritedPropertyNames(), decor.getNotInheritedPropertyNames(), false);
-		}
-		if (!decor.getNotInheritedMethodNames().isEmpty()) {
-			doAddAllToEnd(cd, fcs, BeaninfoPackage.eINSTANCE.getBeanDecorator_NotInheritedMethodNames(), decor.getNotInheritedMethodNames(), false);
-		}
-		if (!decor.getNotInheritedEventNames().isEmpty()) {
-			doAddAllToEnd(cd, fcs, BeaninfoPackage.eINSTANCE.getBeanDecorator_NotInheritedEventNames(), decor.getNotInheritedEventNames(), false);
-		}
-	}
-
-	/**
-	 * Build up the changes for a non-implicit property decorator. This means create changes for implicit set features.
-	 * 
-	 * @param cd
-	 * @param fcs
-	 *            the FeatureChanges list for the given decorator.
-	 * @param decor
-	 * @param indexed <code>true</code> if this is an indexed property decorator.
-	 * 
-	 * @since 1.1.0
-	 */
-	protected static void buildNonImplicitChange(ChangeDescription cd, List fcs, PropertyDecorator decor, boolean indexed) {
-		buildNonImplicitChange(cd, fcs, decor);
-		long implicitSettings = decor.getImplicitlySetBits();
-		if ((implicitSettings & PropertyDecoratorImpl.PROPERTY_EDITOR_CLASS_IMPLICIT) != 0) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getPropertyDecorator_PropertyEditorClass(), decor.getPropertyEditorClass(), false); // Property Editor class is
-																															 // not in this resource,
-																															 // so we don't clone it.
-		}
-		if ((implicitSettings & PropertyDecoratorImpl.PROPERTY_READMETHOD_IMPLICIT) != 0) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getPropertyDecorator_ReadMethod(), decor.getReadMethod(), false); 
-		}
-		if ((implicitSettings & PropertyDecoratorImpl.PROPERTY_WRITEMETHOD_IMPLICIT) != 0) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getPropertyDecorator_WriteMethod(), decor.getWriteMethod(), false); 
-		}
-		if ((implicitSettings & PropertyDecoratorImpl.PROPERTY_FIELD_IMPLICIT) != 0) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getPropertyDecorator_Field(), decor.getField(), false); 
-			if (decor.eIsSet(BeaninfoPackage.eINSTANCE.getPropertyDecorator_FieldReadOnly()))
-				doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getPropertyDecorator_FieldReadOnly(), Boolean.valueOf(decor.isFieldReadOnly()), false);
-		}		
-		if ((implicitSettings & PropertyDecoratorImpl.PROPERTY_BOUND_IMPLICIT) != 0 && decor.isSetBound()) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getPropertyDecorator_Bound(), Boolean.valueOf(decor.isBound()), false);
-		}
-		if ((implicitSettings & PropertyDecoratorImpl.PROPERTY_CONSTRAINED_IMPLICIT) != 0 && decor.isSetConstrained()) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getPropertyDecorator_Constrained(), Boolean.valueOf(decor.isConstrained()), false);
-		}
-		if ((implicitSettings & PropertyDecoratorImpl.PROPERTY_DESIGNTIME_IMPLICIT) != 0) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getPropertyDecorator_DesignTime(), Boolean.valueOf(decor.isDesignTime()), false);
-		}
-		
-		if (indexed) {
-			IndexedPropertyDecorator ipd = (IndexedPropertyDecorator) decor;
-			if ((implicitSettings & IndexedPropertyDecoratorImpl.INDEXED_READMETHOD_IMPLICIT) != 0) {
-				doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getIndexedPropertyDecorator_IndexedReadMethod(), ipd.getIndexedReadMethod(), false); 
-			}
-			if ((implicitSettings & IndexedPropertyDecoratorImpl.INDEXED_WRITEMETHOD_IMPLICIT) != 0) {
-				doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getIndexedPropertyDecorator_IndexedWriteMethod(), ipd.getIndexedWriteMethod(), false); 
-			}
-		}
-	}
-	
-	/**
-	 * Build up the changes for a non-implicit event set decorator. This means create changes for implicit set features.
-	 * 
-	 * @param cd
-	 * @param fcs
-	 *            the FeatureChanges list for the given decorator.
-	 * @param decor
-	 * 
-	 * @since 1.1.0
-	 */
-	protected static void buildNonImplicitChange(ChangeDescription cd, List fcs, EventSetDecorator decor) {
-		buildNonImplicitChange(cd, fcs, (FeatureDecorator) decor);
-		long implicitSettings = decor.getImplicitlySetBits();
-		if ((implicitSettings & EventSetDecoratorImpl.EVENT_ADDLISTENERMETHOD_IMPLICIT) != 0) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getEventSetDecorator_AddListenerMethod(), decor.getAddListenerMethod(), false); // listener method is
-																															 // not in this resource,
-																															 // so we don't clone it.
-		}
-		if ((implicitSettings & EventSetDecoratorImpl.EVENT_ADAPTERCLASS_IMPLICIT) != 0) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getEventSetDecorator_EventAdapterClass(), decor.getEventAdapterClass(), false);
-		}
-		if ((implicitSettings & EventSetDecoratorImpl.EVENT_LISTENERMETHODS_IMPLICIT) != 0) {
-			doAddAllToEnd(cd, fcs, BeaninfoPackage.eINSTANCE.getEventSetDecorator_SerListMthd(), decor.getSerListMthd(), true);	// These need to be cloned because they are contained here.
-		}
-		if ((implicitSettings & EventSetDecoratorImpl.EVENT_LISTENERTYPE_IMPLICIT) != 0) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getEventSetDecorator_ListenerType(), decor.getListenerType(), false);
-		}
-		if ((implicitSettings & EventSetDecoratorImpl.EVENT_REMOVELISTENERMETHOD_IMPLICIT) != 0) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getEventSetDecorator_RemoveListenerMethod(), decor.getRemoveListenerMethod(), false);
-		}
-		if ((implicitSettings & EventSetDecoratorImpl.EVENT_DEFAULTEVENTSET_IMPLICIT) != 0 && decor.isSetInDefaultEventSet()) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getEventSetDecorator_InDefaultEventSet(), Boolean.valueOf(decor.isInDefaultEventSet()), false);
-		}
-		if ((implicitSettings & EventSetDecoratorImpl.EVENT_UNICAST_IMPLICIT) != 0 && decor.isSetUnicast()) {
-			doSet(cd, fcs, BeaninfoPackage.eINSTANCE.getEventSetDecorator_Unicast(), Boolean.valueOf(decor.isUnicast()), false);
-		}
-	}
-
-	/**
-	 * Build up the changes for a non-implicit method decorator. This means create changes for implicit set features.
-	 * 
-	 * @param cd
-	 * @param fcs
-	 *            the FeatureChanges list for the given decorator.
-	 * @param decor
-	 * 
-	 * @since 1.1.0
-	 */
-	protected static void buildNonImplicitChange(ChangeDescription cd, List fcs, MethodDecorator decor) {
-		buildNonImplicitChange(cd, fcs, (FeatureDecorator) decor);
-		long implicitSettings = decor.getImplicitlySetBits();
-		if ((implicitSettings & MethodDecoratorImpl.METHOD_PARAMETERS_IMPLICIT) != 0) {
-			doAddAllToEnd(cd, fcs, BeaninfoPackage.eINSTANCE.getMethodDecorator_SerParmDesc(), decor.getSerParmDesc(), true); 
-		}
-	}
-
-
-	/**
-	 * Get the feature change list for an object. Create it one if necessary.
-	 * 
-	 * @param cd
-	 * @param object
-	 * @return feature change list.
-	 * 
-	 * @since 1.1.0
-	 */
-	protected static List getFeatureChangeList(ChangeDescription cd, EObject object) {
-		List fcs = (List) cd.getObjectChanges().get(object); // Get the feature changes if any.
-		if (fcs == null) {
-			Map.Entry entry = ChangeFactory.eINSTANCE.createEObjectToChangesMapEntry(object);
-			cd.getObjectChanges().add(entry);
-			fcs = (List) entry.getValue();
-		}
-		return fcs;
-	}
-
-	/**
-	 * Return the FeatureChange record for a feature wrt/object. Create one if necessary. If it creates it, it will mark it as "set". All of our
-	 * changes here are set kind of changes, not unset kind.
-	 * 
-	 * @param fcs
-	 *            feature change list from the ChangeDescripion.getObjectChanges for the given object.
-	 * @param feature
-	 * @return feature change
-	 * 
-	 * @since 1.1.0
-	 */
-	protected static FeatureChange getFeatureChange(List fcs, EStructuralFeature feature) {
-		if (!fcs.isEmpty()) {
-			for (int i = 0; i < fcs.size(); i++) {
-				FeatureChange fc = (FeatureChange) fcs.get(i);
-				if (fc.getFeature() == feature)
-					return fc;
-			}
-		}
-
-		// Either new object changes or no feature change found. Create one.
-		FeatureChange fc = ChangeFactory.eINSTANCE.createFeatureChange(feature, null, true);
-		fcs.add(fc);
-		return fc;
-	}
-
-	/**
-	 * Create a change for add to end of the given feature (must be isMany()). If newObject is true, then this means this is not a pointer to an
-	 * existing object and so it must be cloned. It is assumed that there will be no further changes to this object because those will not be known
-	 * about.
-	 * 
-	 * @param cd
-	 * @param fcs
-	 *            feature change list from the ChangeDescripion.getObjectChanges for the given object.
-	 * @param feature
-	 *            the feature being added to.
-	 * @param addedValue
-	 *            the value being added.
-	 * @param newValue
-	 *            <code>true</code> if new object in the resource, a clone will be made. <code>false</code> if an existing object. Must be an
-	 *            EObject for cloning. Best if not true for non-eobjects.
-	 * @return the addedValue or the clone if it was cloned.
-	 * 
-	 * @since 1.1.0
-	 */
-	protected static Object doAddToEnd(ChangeDescription cd, List fcs, EStructuralFeature feature, Object addedValue, boolean newValue) {
-		FeatureChange fc = getFeatureChange(fcs, feature);
-		if (newValue) {
-			try {
-				addedValue = EcoreUtil.copy((EObject) addedValue);
-				cd.getObjectsToAttach().add(addedValue);
-			} catch (ClassCastException e) {
-				// Normally should not occur, but if it does, it means we can't clone, so don't clone.
-			}
-		}
-		List lcs = fc.getListChanges();
-		// Find the one with add and -1, i.e. add to end. There should only be one.
-		ListChange lc = null;
-		for (int i = 0; i < lcs.size(); i++) {
-			ListChange lca = (ListChange) lcs.get(i);
-			if (lca.getKind() == ChangeKind.ADD_LITERAL && lca.getIndex() == -1) {
-				lc = lca;
-				break;
-			}
-		}
-		if (lc == null) {
-			lc = ChangeFactory.eINSTANCE.createListChange();
-			lcs.add(lc);
-		}
-
-		lc.getValues().add(addedValue);
-		return addedValue;
-	}
-
-	/**
-	 * Create a change for add all to end of the given feature (must be isMany()). If newValue is true, then this means this is not a pointer to
-	 * existing objects and so it must be cloned. It is assumed that there will be no further changes to this object because those will not be known
-	 * about.
-	 * 
-	 * @param cd
-	 * @param fcs
-	 *            feature change list from the ChangeDescripion.getObjectChanges for the given object.
-	 * @param feature
-	 *            the feature being added to.
-	 * @param addedValues
-	 *            the values being added.
-	 * @param newValue
-	 *            <code>true</code> if new objects in the resource, clones will be made. <code>false</code> if an existing object. Must be EObject
-	 *            for cloning. Best if not true for non-eobjects.
-	 * @return the addedValues or the clones if it was cloned.
-	 * 
-	 * @since 1.1.0
-	 */
-	protected static Object doAddAllToEnd(ChangeDescription cd, List fcs, EStructuralFeature feature, Collection addedValues, boolean newValue) {
-		FeatureChange fc = getFeatureChange(fcs, feature);
-		if (newValue) {
-			try {
-				addedValues = EcoreUtil.copyAll(addedValues);
-				cd.getObjectsToAttach().addAll(addedValues);
-			} catch (ClassCastException e) {
-				// Normally should not occur, but if it does, it means we can't clone, so don't clone.
-			}
-		}
-		List lcs = fc.getListChanges();
-		// Find the one with add and -1, i.e. add to end. There should only be one.
-		ListChange lc = null;
-		for (int i = 0; i < lcs.size(); i++) {
-			ListChange lca = (ListChange) lcs.get(i);
-			if (lca.getKind() == ChangeKind.ADD_LITERAL && lca.getIndex() == -1) {
-				lc = lca;
-				break;
-			}
-		}
-		if (lc == null) {
-			lc = ChangeFactory.eINSTANCE.createListChange();
-			lcs.add(lc);
-		}
-
-		lc.getValues().addAll(addedValues);
-		return addedValues;
-	}
-
-	/**
-	 * Create a change for set a given feature (must be !isMany()). If newValue is true, then this means this is not a pointer to an existing object
-	 * and so it must be cloned. It is assumed that there will be no further changes to this object because those will not be known about.
-	 * <p>
-	 * Any further sets to this feature will result in the previous setting being lost.
-	 * 
-	 * @param cd
-	 * @param fcs
-	 *            feature change list from the ChangeDescripion.getObjectChanges for the given object.
-	 * @param feature
-	 *            the feature being set to.
-	 * @param setValue
-	 *            the value being set.
-	 * @param newValue
-	 *            <code>true</code> if new object in the resource, a clone will be made. <code>false</code> if an existing object. Must be an
-	 *            EObject for cloning. Best if not true for non-eobjects.
-	 * @return the setValue or the clone if it was cloned.
-	 * 
-	 * @since 1.1.0
-	 */
-	protected static Object doSet(ChangeDescription cd, List fcs, EStructuralFeature feature, Object setValue, boolean newValue) {
-
-		FeatureChange fc = getFeatureChange(fcs, feature);
-		if (newValue) {
-			try {
-				setValue = EcoreUtil.copy((EObject) setValue);
-				cd.getObjectsToAttach().add(setValue);
-			} catch (ClassCastException e) {
-				// Normally should not occur, but if it does, it means we can't clone, so don't clone.
-			}
-		}
-
-		if (setValue instanceof EObject)
-			fc.setReferenceValue((EObject) setValue);
-		else
-			fc.setDataValue(EcoreUtil.convertToString((EDataType) feature.getEType(), setValue));
-		return setValue;
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoAdapterFactory.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoAdapterFactory.java
deleted file mode 100644
index 4f4e08a..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoAdapterFactory.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jem.internal.beaninfo.adapters;
-/*
- *  $RCSfile: BeaninfoAdapterFactory.java,v $
- *  $Revision: 1.6 $  $Date: 2005/02/15 22:44:20 $ 
- */
-import java.lang.ref.ReferenceQueue;
-import java.lang.ref.WeakReference;
-import java.util.*;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
-
-import org.eclipse.jem.internal.beaninfo.core.*;
-import org.eclipse.jem.internal.java.beaninfo.IIntrospectionAdapter;
-import org.eclipse.jem.internal.proxy.core.ProxyFactoryRegistry;
-import org.eclipse.jem.java.ArrayType;
-/**
- * BeaninfoAdapterFactory - the factory for 
- * beaninfo introspection to populate the Java Model.
- * Creation date: (11/1/2000 11:52:55 AM)
- * @author: Administrator
- */
-public class BeaninfoAdapterFactory extends AdapterFactoryImpl {
-	protected IBeaninfoSupplier fInfoSupplier;
-
-	// Maintain a mapping of the source objects to the adaptors which have
-	// introspected from them.  This allows a close operation to force those
-	// adapters to clear out the data. It also allows for marking an adapter as stale
-	// so that next time it introspects it will re-get the data.
-	// 
-	// This is a WeakReference so that we don't hold onto adapters that were
-	// explicitly removed in other ways.
-	private Map fIntrospected = new HashMap();	// NOTE: This is to be accessed only under sync(this)!
-	private ReferenceQueue fRefQ = new ReferenceQueue();
-	private static class WeakValue extends WeakReference {
-		private Object key;
-		public WeakValue(Object aKey, Object value, ReferenceQueue que) {
-			super(value, que);
-			key = aKey;
-		}
-
-		public Object getKey() {
-			return key;
-		}
-	};
-
-	public BeaninfoAdapterFactory(IBeaninfoSupplier supplier) {
-		fInfoSupplier = supplier;
-	}
-	
-	public Adapter createAdapter(Notifier target, Object type) {
-		if (type == IIntrospectionAdapter.ADAPTER_KEY) {
-			return !(target instanceof ArrayType) ? new BeaninfoClassAdapter(this) : null;	// Array types don't have beaninfo adapters.
-		} else
-			return new BeaninfoSuperAdapter();
-	}
-	
-	/**
-	 * @see org.eclipse.emf.common.notify.AdapterFactory#isFactoryForType(Object)
-	 */
-	public boolean isFactoryForType(Object type) {
-		return IIntrospectionAdapter.ADAPTER_KEY == type || BeaninfoSuperAdapter.ADAPTER_KEY == type;
-	}	
-
-	public ProxyFactoryRegistry getRegistry() {
-		return fInfoSupplier.getRegistry();
-	}
-	
-	public boolean isRegistryCreated() {
-		return fInfoSupplier.isRegistryCreated();
-	}
-
-	public ProxyFactoryRegistry recycleRegistry() {
-		markAllStale(); // At this point in time we need to mark them all stale because we are recycling. MarkAllStale also closes the registry.
-		return getRegistry();
-	}
-	
-	public IProject getProject() {
-		return fInfoSupplier.getProject();
-	}
-
-	/**
-	 * Close ALL adapters. Also remove the adapters so that they
-	 * are not being held onto. This means we are closing the project or removing the nature.
-	 */
-	public void closeAll(boolean clearResults) {
-		processQueue();
-		synchronized (this) {
-			// We are going to be removing all of them, so just set introspected to an empty one
-			// and use the real one. This way we won't get concurrent modifications as we remove
-			// it from the notifier removeAdapter.
-			Map intr = fIntrospected;
-			fIntrospected = Collections.EMPTY_MAP;	// Since we are closing we can keep the unmodifiable one here.
-			Iterator i = intr.values().iterator();
-			while (i.hasNext()) {
-				BeaninfoClassAdapter a = (BeaninfoClassAdapter) ((WeakValue) i.next()).get();
-				if (a != null) {
-					if (clearResults)
-						a.clearIntrospection();
-					Notifier notifier = a.getTarget();
-					if (notifier != null)
-						notifier.eAdapters().remove(a);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Mark ALL adapters as stale. This occurs because we've recycled the registry.
-	 */
-	public void markAllStale() {
-		ProxyFactoryRegistry fact = isRegistryCreated() ? getRegistry() : null;
-		processQueue();
-		synchronized (this) {
-			Iterator i = fIntrospected.values().iterator();
-			while (i.hasNext()) {
-				BeaninfoClassAdapter a = (BeaninfoClassAdapter) ((WeakValue) i.next()).get();
-				if (a != null)
-					a.markStaleFactory(fact);
-			}
-			fInfoSupplier.closeRegistry();	// Get rid of the registry now since it is not needed. This way we won't accidentily hold onto it when not needed.
-		}
-	}
-	/**
-	 * Mark the introspection as stale for a source object. Also clear results if told to.
-	 * @param sourceName Fully qualified source name, use type for reflection, i.e. "a.b.c.Class1$InnerClass"
-	 * @param clearResults clear out the results. If false, they will be reused if possible on recycle.
-	 */
-	public void markStaleIntrospection(String sourceName, boolean clearResults) {
-		processQueue();
-		synchronized (this) {
-			WeakValue ref = (WeakValue) fIntrospected.get(sourceName);
-			if (ref != null) {
-				BeaninfoClassAdapter a = (BeaninfoClassAdapter) ref.get();
-				if (a != null) {
-					if (clearResults)
-						a.clearIntrospection();
-					a.markStaleFactory(isRegistryCreated() ? getRegistry() : null); // Mark it stale with the current registry.
-				}
-			}
-		}
-	}
-	
-	public void markStaleIntrospectionPlusInner(String sourceName, boolean clearResults) {
-		processQueue();
-		String sourceNameForInner = sourceName + '$';
-		synchronized (this) {
-			Iterator itr = fIntrospected.entrySet().iterator();
-			while (itr.hasNext()) {
-				Map.Entry entry = (Map.Entry) itr.next();
-				String entryName = (String) entry.getKey();
-				if (entryName.equals(sourceName) || entryName.startsWith(sourceNameForInner)) {
-					// It is the item or one of its inner classes.
-					WeakValue ref = (WeakValue) entry.getValue();
-					BeaninfoClassAdapter a = (BeaninfoClassAdapter) ref.get();					
-					if (a != null) {
-						if (clearResults)
-							a.clearIntrospection();
-						a.markStaleFactory(isRegistryCreated() ? getRegistry() : null); // Mark it stale with the current registry.
-					}
-				}
-			}
-		}
-	}	
-
-	/**
-	 * Register an adapter for introspection.
-	 * @param sourceName Fully qualified source name, use type for reflection, i.e. "a.b.c.Class1$InnerClass"
-	 * @param adapter The adapter to register
-	 */
-	public void registerIntrospection(String sourceName, BeaninfoClassAdapter adapter) {
-		// Create it as a weak reference so that it doesn't hold onto the adapter if it is ever removed
-		// and thrown away (or the MOF resource itself is thrown away).
-		processQueue();
-		synchronized (this) {
-			fIntrospected.put(sourceName, new WeakValue(sourceName, adapter, fRefQ));
-		}
-	}
-	
-	/**
-	 * Remove adapter. This happens in the case that adapter is being removed and
-	 * we want to remove it from our list. This is an internal API only for use by
-	 * the adapter itself.
-	 */
-	public synchronized void removeAdapter(BeaninfoClassAdapter a) {
-		fIntrospected.remove(a.getJavaClass().getQualifiedNameForReflection());
-	}
-
-	private synchronized void processQueue() {
-		WeakValue wv;
-		while ((wv = (WeakValue) fRefQ.poll()) != null) {
-			fIntrospected.remove(wv.getKey());
-		}
-	}
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoClassAdapter.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoClassAdapter.java
deleted file mode 100644
index 2a53e67..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoClassAdapter.java
+++ /dev/null
@@ -1,2475 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jem.internal.beaninfo.adapters;
-/*
- *  $RCSfile: BeaninfoClassAdapter.java,v $
- *  $Revision: 1.40 $  $Date: 2005/07/07 22:26:16 $ 
- */
-
-import java.io.FileNotFoundException;
-import java.lang.ref.WeakReference;
-import java.text.MessageFormat;
-import java.util.*;
-import java.util.logging.Level;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.common.util.*;
-import org.eclipse.emf.ecore.*;
-import org.eclipse.emf.ecore.change.ChangeDescription;
-import org.eclipse.emf.ecore.change.ChangeFactory;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.ESuperAdapter;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EcoreEList;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.xmi.XMIResource;
-
-import org.eclipse.jem.internal.beaninfo.*;
-import org.eclipse.jem.internal.beaninfo.common.*;
-import org.eclipse.jem.internal.beaninfo.core.*;
-import org.eclipse.jem.internal.java.beaninfo.IIntrospectionAdapter;
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.java.*;
-import org.eclipse.jem.java.impl.JavaClassImpl;
-import org.eclipse.jem.util.TimerTests;
-import org.eclipse.jem.util.logger.proxy.Logger;
-
-import com.ibm.etools.emf.event.EventFactory;
-import com.ibm.etools.emf.event.EventUtil;
-
-/**
- * Beaninfo adapter for doing introspection on a Java Model class.
- * <p>
- * The first time a introspect request is made, it will use the ClassEntry from the cache controller to determine if it should load from the
- * cache or do a complete introspection. After that it will always do a complete introspection when it is marked as needing introspection.
- * This is because the cache is useless to us then. At that point in time we already know that we or one of our superclasses or one of 
- * outer classes has changed, thereby requiring us to reintrospect, the cache is invalid at that point. Also once we did an introspection we
- * don't want to do a load from cache but instead do a merge because someone may of been holding onto the features and we don't want to
- * throw them away unnecessarily.
- * <p> 
- * TODO Need to re-look into this to see if we can do a merge with the cache file because if it was an external jar and it has now gone
- * valid, why waste time reintrospecting. But this needs to be carefully thought about. 
- * <p> 
- * The resource change listener
- * will automatically mark any subclasses (both the BeaninfoClassAdapter and the ClassEntry) as being stale for us. That way we don't need
- * to waste time checking the ce and superclasses everytime. We will keep the ClassEntry around simply to make the marking of it as stale easier for the
- * resource listener. Finding the ce everytime would be expensive.
- * <p> 
- * This is the process for determining if introspection required:
- * <ol>
- * <li>If needsIntrospection flag is false, then do nothing. Doesn't need introspection.
- * <li>If class is undefined, then just set up for an undefined class and return. (In this case the CE should be thrown away, it should of been deleted).
- * <li>If never introspected (not RETRIEVED_FULL_DOCUMENT), get the CE, get the modification stamp and call isStaleStamp. This determines if this
- * stamp or any super class stamp is stale wrt to current stamp. If it is not stale, then load from cache because the cache is good. 
- * <li>If no cache or cache is stale or has introspected once, then introspect and replace cache.
- * </ol>
- * 
- */
-
-public class BeaninfoClassAdapter extends AdapterImpl implements IIntrospectionAdapter {
-	
-	public static final String REFLECT_PROPERTIES = "Reflect properties";	// Reflect properties in IDE //$NON-NLS-1$
-	public static final String APPLY_EXTENSIONS = "Apply Overrides";	// Apply override files //$NON-NLS-1$
-	public static final String REMOTE_INTROSPECT = "Remote Introspect";	// Introspect on remote //$NON-NLS-1$
-	public static final String INTROSPECT = "Introspect";	// Straight introspection, whether load from cache or introspect. //$NON-NLS-1$
-	public static final String LOAD_FROM_CACHE = "Load from Cache"; //$NON-NLS-1$
-	
-	// TODO Put this back (if necessary, not sure since haven't done it yet) when we do override change recording too to handle overrides. 
-	// This will make it even faster because such
-	// overrides rarely change and so can be glombed together into one large change. So then we would have two change caches per
-	// class, one is the override record, which will be created once, the first time the class is referenced after a stale
-	// configuration, and then the other is the introspection/reflection results, which will be created each time there is
-	// a cache change. Both will be applied only once, the first time the class is referenced after a project has been opened.
-	// No need to load at any other time because any changes will simply be a merge of the changes (thru reflection/introspection) into
-	// the existing set and then a new change cache will be created containing the entire set of implicit changes, both the previous
-	// ones that are still valid, and any new ones.
-//	/**
-//	 * Pausable Change Recorder.
-//	 * 
-//	 * @since 1.1.0
-//	 */
-//	private static class PausableChangeRecorder extends ChangeRecorder {
-//		
-//		/**
-//		 * @param rootObject
-//		 * 
-//		 * @since 1.1.0
-//		 */
-//		public PausableChangeRecorder(EObject rootObject) {
-//			super(rootObject);
-//		}
-//		/**
-//		 * Pause recording
-//		 * 
-//		 * 
-//		 * @since 1.1.0
-//		 */
-//		public void pause() {
-//			recording = false;
-//		}
-//		
-//		/**
-//		 * Resume recording
-//		 * 
-//		 * 
-//		 * @since 1.1.0
-//		 */
-//		public void resume() {
-//			recording = true;
-//		}
-//	}
-	
-	public static BeaninfoClassAdapter getBeaninfoClassAdapter(EObject jc) {
-		return (BeaninfoClassAdapter) EcoreUtil.getExistingAdapter(jc, IIntrospectionAdapter.ADAPTER_KEY);
-	}
-	
-	/**
-	 * Clear out the introspection because introspection is being closed or removed from the project.
-	 * Don't want anything hanging around that we had done.
-	 */
-	public void clearIntrospection() {
-		// Clear out the beandecorator if implicitly created.
-		Iterator beanItr = getJavaClass().getEAnnotationsInternal().iterator();
-		while (beanItr.hasNext()) {
-			EAnnotation dec = (EAnnotation) beanItr.next();
-			if (dec instanceof BeanDecorator) {
-				BeanDecorator decor = (BeanDecorator) dec;
-				if (decor.getImplicitDecoratorFlag() == ImplicitItem.IMPLICIT_DECORATOR_LITERAL) {
-					beanItr.remove();
-					((InternalEObject) decor).eSetProxyURI(BAD_URI); // Mark it as bad proxy so we know it is no longer any use.
-				} else {
-					BeanInfoDecoratorUtility.clear((BeanDecorator) dec);
-				}
-				break;
-			}
-		}
-		// Clear out the features that we implicitly created.
-		Iterator propItr = getJavaClass().getEStructuralFeaturesInternal().iterator();
-		while (propItr.hasNext()) {
-			EStructuralFeature prop = (EStructuralFeature) propItr.next();
-			Iterator pdItr = prop.getEAnnotations().iterator();
-			while (pdItr.hasNext()) {
-				EAnnotation dec = (EAnnotation) pdItr.next();
-				if (dec instanceof PropertyDecorator) {
-					PropertyDecorator pd = (PropertyDecorator) dec;
-					if (pd.getImplicitDecoratorFlag() == ImplicitItem.NOT_IMPLICIT_LITERAL)
-						BeanInfoDecoratorUtility.clear(pd);
-					else {
-						pdItr.remove(); // Remove it from the property.
-						((InternalEObject) pd).eSetProxyURI(BAD_URI); // Mark it as bad proxy so we know it is no longer any use.
-					}
-					if (pd.getImplicitDecoratorFlag() == ImplicitItem.IMPLICIT_DECORATOR_AND_FEATURE_LITERAL) {
-						propItr.remove(); // Remove the feature itself
-						((InternalEObject) prop).eSetProxyURI(BAD_URI); // Mark it as bad proxy so we know it is no longer any use.
-					}
-					break;
-				}
-			}
-		}
-		
-		// Clear out the operations that we implicitly created.
-		Iterator operItr = getJavaClass().getEOperationsInternal().iterator();
-		while (operItr.hasNext()) {
-			EOperation oper = (EOperation) operItr.next();
-			Iterator mdItr = oper.getEAnnotations().iterator();
-			while (mdItr.hasNext()) {
-				EAnnotation dec = (EAnnotation) mdItr.next();
-				if (dec instanceof MethodDecorator) {
-					MethodDecorator md = (MethodDecorator) dec;
-					if (md.getImplicitDecoratorFlag() == ImplicitItem.NOT_IMPLICIT_LITERAL)
-						BeanInfoDecoratorUtility.clear(md);
-					else {
-						mdItr.remove(); // Remove it from the operation.
-						((InternalEObject) md).eSetProxyURI(BAD_URI); // Mark it as bad proxy so we know it is no longer any use.
-					}
-					if (md.getImplicitDecoratorFlag() == ImplicitItem.IMPLICIT_DECORATOR_AND_FEATURE_LITERAL) {
-						operItr.remove(); // Remove the oepration itself
-						((InternalEObject) oper).eSetProxyURI(BAD_URI); // Mark it as bad proxy so we know it is no longer any use.
-					}
-					break;
-				}
-			}
-			
-			// Clear out the events that we implicitly created.
-			Iterator evtItr = getJavaClass().getEventsGen().iterator();
-			while (evtItr.hasNext()) {
-				JavaEvent evt = (JavaEvent) evtItr.next();
-				Iterator edItr = evt.getEAnnotations().iterator();
-				while (edItr.hasNext()) {
-					EAnnotation dec = (EAnnotation) edItr.next();
-					if (dec instanceof EventSetDecorator) {
-						EventSetDecorator ed = (EventSetDecorator) dec;
-						if (ed.getImplicitDecoratorFlag() == ImplicitItem.NOT_IMPLICIT_LITERAL)
-							BeanInfoDecoratorUtility.clear(ed);
-						else {
-							edItr.remove(); // Remove it from the event.
-							((InternalEObject) ed).eSetProxyURI(BAD_URI); // Mark it as bad proxy so we know it is no longer any use.
-						}
-						if (ed.getImplicitDecoratorFlag() == ImplicitItem.IMPLICIT_DECORATOR_AND_FEATURE_LITERAL) {
-							evtItr.remove(); // Remove the event itself
-							((InternalEObject) evt).eSetProxyURI(BAD_URI); // Mark it as bad proxy so we know it is no longer any use.
-						}
-						break;
-					}
-				}
-			}				
-		}
-
-		synchronized(this) {
-			needsIntrospection = true;
-		}
-	}
-	
-	private void clearAll() {
-		clearIntrospection();	// First get rid of the ones we did so that they are marked as proxies.
-		
-		// Clear out the annotations.
-		getJavaClass().getEAnnotationsInternal().clear();
-		// Clear out the attributes.
-		getJavaClass().getEStructuralFeaturesInternal().clear();	
-		// Clear out the operations.
-		getJavaClass().getEOperationsInternal().clear();
-		// Clear out the events.
-		getJavaClass().getEventsGen().clear();
-		
-		retrievedExtensionDocument = NEVER_RETRIEVED_EXTENSION_DOCUMENT;	// Since we cleared everything, go back to no doc applied.
-	}
-	
-
-	/**
-	 * @version 	1.0
-	 * @author
-	 */
-
-	// A URI that will never resolve. Used to mark an object as no longer valid.
-	protected static final URI BAD_URI = URI.createURI("baduri"); //$NON-NLS-1$
-
-	protected boolean needsIntrospection = true;
-	
-	protected BeanInfoCacheController.ClassEntry classEntry;
-	
-	protected boolean isIntrospecting;
-
-	protected boolean isDoingAllProperties;
-
-	protected boolean isDoingAllOperations;
-
-	protected boolean isDoingAllEvents;
-
-	protected final static int
-		NEVER_RETRIEVED_EXTENSION_DOCUMENT = 0,
-		RETRIEVED_ROOT_ONLY = 1,
-		RETRIEVED_FULL_DOCUMENT = 2;
-	protected int retrievedExtensionDocument = NEVER_RETRIEVED_EXTENSION_DOCUMENT;
-
-	protected BeaninfoAdapterFactory adapterFactory;
-
-	private WeakReference staleFactory; // When reference not null, then this factory is a stale factory and 
-	// a new one is needed when the factory returned == this one.
-	// It is a WeakRef so that if the factory goes away on its own
-	// that we don't hold onto it.
-
-	// A temporary hashset of the local properties. Used when creating a new
-	// property to use the old one. It is cleared out at the end of attribute introspection.
-	// It is only built once during attribute introspection so that we have the snapshot
-	// of before the introspection (i.e. the ones that were specifically added by users
-	// and not through introspection). The ones that we are adding do not need to be checked
-	// against each other because there will not be conflicts.
-	//
-	// Also at the end, we will go through the properties and see if it exists in the fPropertiesMap and
-	// it is not the value Boolean.FALSE in the map, and the entry is implicitly created. This means this
-	// was an implicit entry from the previous introspection and was not re-created in this introspection.
-	private HashMap propertiesMap;
-	private List featuresRealList; // Temp pointer to the real list we are building. It is the true list in java class.
-	
-	// A temporary hashmap of the local operations. Used when creating a new
-	// operation to reuse the old one. It is cleared out at the end of operation introspection.
-	// It is only built once during operation introspection so that we have the snapshot
-	// of before the introspection.
-	private HashMap operationsMap;
-	private EList operationsRealList; // Temp pointer to the real list we are building. It is the true list in java class.
-	// A set of operations as we create them so that we which ones we added/kept and which are no longer in use and can be removed.	
-	// If they aren't in this set at the end, then we know it should be removed if it is one we had created in the past.
-	private HashSet newoperations; 
-
-	// A temporary hashset of the local events. Used when creating a new
-	// event to use the old one. It is cleared out at the end of event introspection.
-	// It is only built once during event introspection so that we have the snapshot
-	// of before the introspection (i.e. the ones that were specifically added by users
-	// and not through introspection). The ones that we are adding do not need to be checked
-	// against each other because there will not be conflicts.
-	//
-	// Also at the end, we will go through the events and see if it exists in the fEventsMap and
-	// it is not the value Boolean.FALSE in the map, and the entry is implicitly created. This means this
-	// was an implicit entry from the previous introspection and was not re-created in this introspection.
-	private HashMap eventsMap;
-	private EList eventsRealList; // Temp pointer to the real list we are building. It is the true list in java class.
-
-	private Boolean defaultBound;
-	// Whether this class is default bound or not (i.e. does this class implement add/remove property change listener. If null, then not yet queried.
-
-	public BeaninfoClassAdapter(BeaninfoAdapterFactory factory) {
-		super();
-		adapterFactory = factory;
-	}
-
-	/*
-	 * Answer whether this java class is still connected to a live resource. It happens during unloading
-	 * that we are no longer connected to a resource (because the javapackage has already been processed and
-	 * unloaded) or the resource is in the process of being unloaded, but the unloading process will still 
-	 * call accessors on this java class, which will come over here. In those cases we should treat as
-	 * introspection completed without doing anything.
-	 */
-	protected boolean isResourceConnected() {
-		Resource res = getJavaClass().eResource();
-		return res != null && res.isLoaded();
-	}
-
-	protected final ProxyFactoryRegistry getRegistry() {
-		ProxyFactoryRegistry factory = adapterFactory.getRegistry();
-		if (staleFactory != null && factory == staleFactory.get()) {
-			// We need to recycle the factory. The returned factory is the same factory when it went stale.
-			factory = adapterFactory.recycleRegistry();
-		}
-		staleFactory = null; // Whether we recycled or not, it is no longer stale.
-		return factory;
-	}
-
-	/**
-	 * Return whether this adapter has been marked as stale. Needed
-	 * by the users so that they can recycle if necessary.
-	 */
-	public boolean isStale() {
-		return staleFactory != null;
-	}
-
-	protected BeaninfoAdapterFactory getAdapterFactory() {
-		return adapterFactory;
-	}
-
-	public boolean isAdapterForType(Object key) {
-		return IIntrospectionAdapter.ADAPTER_KEY.equals(key);
-	}
-
-	/**
-	 * This map is keyed by name. It is a snapshot of the properties at the
-	 * time the introspection/reflection of properties was started. It is used
-	 * for quick lookup.
-	 *
-	 * Once a property is used, the entry is replaced with a Boolean.FALSE. This
-	 * is so we know which have already been used and at the end, which need
-	 * to be deleted since they weren't used (i.e. the ones that aren't FALSE).
-	 */
-	protected HashMap getPropertiesMap() {
-		if (propertiesMap == null) {
-			List localFeatures = getJavaClass().getEStructuralFeaturesInternal();
-			propertiesMap = new HashMap(localFeatures.size());
-			Iterator itr = localFeatures.iterator();
-			while (itr.hasNext()) {
-				EStructuralFeature feature = (EStructuralFeature) itr.next();
-				propertiesMap.put(feature.getName(), feature);
-			}
-		}
-		return propertiesMap;
-	}
-
-	/**
-	 * Get it once so that we don't need to keep getting it over and over.
-	 */
-	protected List getFeaturesList() {
-		if (featuresRealList == null)
-			featuresRealList = getJavaClass().getEStructuralFeaturesInternal();
-		return featuresRealList;
-	}
-
-	/**
-	 * The map is keyed by longName. If a Method is passed in, then the
-	 * id of the method is used (this is in reflection), if an IBeanProxy
-	 * is passed in, then an id is created and looked up (this is in introspection).
-	 * The map is used for a quick lookup of behaviors at the time introspection
-	 * of behaviors started.
-	 */
-	protected HashMap getOperationsMap() {
-		if (operationsMap == null) {
-			List locals = getJavaClass().getEOperationsInternal();
-			int l = locals.size();
-			operationsMap = new HashMap(l);
-			for (int i = 0; i < l; i++) {
-				EOperation op = (EOperation) locals.get(i);
-				operationsMap.put(formLongName(op), op);
-			}
-		}
-		return operationsMap;
-	}
-
-	/**
-	 * Get it once so that we don't need to keep getting it over and over.
-	 */
-	protected EList getOperationsList() {
-		if (operationsRealList == null)
-			operationsRealList = getJavaClass().getEOperationsInternal();
-		return operationsRealList;
-	}
-
-	/**
-	 * The map is keyed by name.
-	 * The map is used for a quick lookup of events at the time introspection
-	 * of events started.
-	 *
-	 * Once an event is used, the entry is replaced with a Boolean.FALSE. This
-	 * is so we know which have already been used and at the end, which need
-	 * to be deleted since they weren't used (i.e. the ones that aren't FALSE).
-	 */
-	protected HashMap getEventsMap() {
-		if (eventsMap == null) {
-			List locals = getJavaClass().getEventsGen();
-			eventsMap = new HashMap(locals.size());
-			Iterator itr = locals.iterator();
-			while (itr.hasNext()) {
-				JavaEvent event = (JavaEvent) itr.next();
-				eventsMap.put(event.getName(), event);
-			}
-		}
-		return eventsMap;
-	}
-
-	/**
-	 * Get it once so that we don't need to keep getting it over and over.
-	 */
-	protected EList getEventsList() {
-		if (eventsRealList == null)
-			eventsRealList = getJavaClass().getEventsGen();
-		return eventsRealList;
-	}
-
-	public void introspectIfNecessary() {
-		introspectIfNecessary(false);
-	}
-	
-	protected void introspectIfNecessary(boolean doOperations) {
-		boolean doIntrospection = false;
-		synchronized (this) {
-			doIntrospection = needsIntrospection && !isIntrospecting; 
-			if (doIntrospection)
-				isIntrospecting = true;
-		}
-		if (doIntrospection) {
-			boolean didIntrospection = false;
-			try {				
-				introspect(doOperations);
-				didIntrospection = true;
-			} catch (Throwable e) {
-				BeaninfoPlugin.getPlugin().getLogger().log(
-					new Status(
-						IStatus.WARNING,
-						BeaninfoPlugin.getPlugin().getBundle().getSymbolicName(),
-						0,
-						MessageFormat.format(
-							BeanInfoAdapterMessages.INTROSPECT_FAILED_EXC_, 
-							new Object[] { getJavaClass().getJavaName(), ""}), //$NON-NLS-1$
-						e));
-			} finally {
-				synchronized (this) {
-					isIntrospecting = false;
-					needsIntrospection = !didIntrospection;
-				}
-			}
-		}
-	}
-
-	/**
-	 * Get the class entry. 
-	 * @return
-	 * 
-	 * @since 1.1.0
-	 */
-	public BeanInfoCacheController.ClassEntry getClassEntry() {
-		return classEntry;
-	}
-	
-	private boolean canUseCache() {
-		// We check our level, we assume not stale unless CE says stale.
-		synchronized (this) {
-			// We may already have a class entry due to a subclass doing a check, so if we do, we'll use it. Else we'll get the latest one.
-			if (classEntry == null)
-				classEntry = BeanInfoCacheController.INSTANCE.getClassEntry(getJavaClass());
-			if (classEntry != null) {
-				// We have a cache to check.
-				long modStamp = classEntry.getModificationStamp();
-				// A sanity check, if this was an old, but now deleted one we want to throw it away and get it again. It may now be valid.
-				if (modStamp == BeanInfoCacheController.ClassEntry.DELETED_MODIFICATION_STAMP) {
-					classEntry = BeanInfoCacheController.INSTANCE.getClassEntry(getJavaClass());
-					if (classEntry != null)
-						modStamp = classEntry.getModificationStamp();
-				}
-				if (modStamp == IResource.NULL_STAMP || modStamp == BeanInfoCacheController.ClassEntry.DELETED_MODIFICATION_STAMP)
-					return false;	// We are stale.
-			} else
-				return false;	// We don't have a cache entry to check against, which means are deleted, or never cached.
-		}
-		
-		// Now try the supers to see if we are out of date to them.
-		// Note: Only if this is an interface could there be more than one eSuperType.
-		List supers = getJavaClass().getESuperTypes();
-		if (!supers.isEmpty()) {
-			BeaninfoClassAdapter bca = getBeaninfoClassAdapter((EObject) supers.get(0));
-			if (bca.getClassEntry().getModificationStamp() != classEntry.getSuperModificationStamp())
-				return false; // Out-of-date wrt/super.
-			String[] iNames = classEntry.getInterfaceNames();
-			if (iNames != null) {
-				if (iNames.length != supers.size() - 1)
-					return false; // We have a different number of supers, so stale.
-				// Now the interfaces may not be in the same order, but there shouldn't be too many, so we'll use O(n2) lookup. We'll try starting at
-				// the same index just in case. That way if they are the same order it will be linear instead. Most likely will be same order.
-				long[] iStamp = classEntry.getInterfaceModificationStamps();
-				for (int i = 1; i <= iNames.length; i++) {
-					JavaClass javaClass = (JavaClass) supers.get(i);
-					String intName = (javaClass).getQualifiedNameForReflection();
-					// Find it in the names list.
-					int stop = i-1;
-					int indx = stop;	// Start at the stop, when we hit it again we will be done.
-					boolean found = false;
-					do {
-						if (iNames[indx].equals(intName)) {
-							found = true;
-							break;
-						}
-					} while ((++indx)%iNames.length != stop);
-					if (!found)
-						return false;	// Couldn't find it, so we are stale.
-					if (iStamp[indx] != getBeaninfoClassAdapter(javaClass).getClassEntry().getModificationStamp())
-						return false;	// We didn't match it, so we are stale.
-				}
-			}
-		}
-		return true;	// If we got here everything is ok.
-	}
-
-	private boolean canUseOverrideCache() {
-		// We check our config stamp.
-		// TODO in future can we listen for config changes and mark classes stale if the config changes?
-		synchronized (this) {
-			// We may already have a class entry due to a subclass doing a check, so if we do, we'll use it. Else we'll get the latest one.
-			if (classEntry == null)
-				classEntry = BeanInfoCacheController.INSTANCE.getClassEntry(getJavaClass());
-			if (classEntry != null) {
-				// We have a cache to check.
-				// A sanity check, if this was an old, but now deleted one we want to throw it away and get it again. It may now be valid.
-				if (classEntry.isDeleted()) {
-					classEntry = BeanInfoCacheController.INSTANCE.getClassEntry(getJavaClass());
-					if (classEntry != null)
-						if (classEntry.isDeleted())
-							return false;	// We have been deleted. Probably shouldn't of gotton here in this case.
-				}
-			} else
-				return false;	// We don't have a cache entry to check against, which means are deleted, or never cached.
-			return classEntry.getConfigurationModificationStamp() == Platform.getPlatformAdmin().getState(false).getTimeStamp();
-		}
-		
-	}
-
-	/**
-	 * Check if the cache for this entry is stale compared to the modification stamp, or if the modification stamp itself is stale, meaning
-	 * subclass was stale already.
-	 * 
-	 * @param requestStamp the timestamp to compare against. 
-	 * @return <code>true</code> if we can use the incoming cache stamp.
-	 * 
-	 * @since 1.1.0
-	 */
-	protected boolean canUseCache(long requestStamp) {
-		long modStamp;
-		// Now get the current mod stamp for this class so we can compare it.
-		synchronized (this) {
-			// We may already have a class entry due to a subclass doing a check, so if we do, we'll use it. Else we'll get the latest one.
-			if (classEntry == null)
-				classEntry = BeanInfoCacheController.INSTANCE.getClassEntry(getJavaClass());
-			if (classEntry != null) {
-				// We have a cache to check.
-				modStamp = classEntry.getModificationStamp();
-				// A sanity check, if this was an old, but now deleted one we want to throw it away and get it again. It may now be valid.
-				if (modStamp == BeanInfoCacheController.ClassEntry.DELETED_MODIFICATION_STAMP) {
-					classEntry = BeanInfoCacheController.INSTANCE.getClassEntry(getJavaClass());
-					if (classEntry != null)
-						modStamp = classEntry.getModificationStamp();
-				}
-				if (modStamp == IResource.NULL_STAMP && modStamp == BeanInfoCacheController.ClassEntry.DELETED_MODIFICATION_STAMP)
-					return false;	// Since we are stale, child asking question must also be stale and can't use the cache.
-			} else
-				return false;	// We don't have a cache entry to check against, so child must be stale too.
-		}
-		// If the requested stamp is not the same as ours, then it is out of date (it couldn't be newer but it could be older).
-		return requestStamp == modStamp;
-	}
-		
-	/*
-	 * This should only be called through introspectIfNecessary so that flags are set correctly.
-	 */
-	private void introspect(boolean doOperations) {
-		IBeanProxy beaninfo = null;
-		try {
-			if (isResourceConnected()) {
-				// See if are valid kind of class.
-				if (getJavaClass().getKind() == TypeKind.UNDEFINED_LITERAL) {
-					// Not valid, don't let any further introspection occur.
-					// Mark that we've done all introspections so as not to waste time until we get notified that it has been added
-					// back in.
-					synchronized(this) {
-						if (classEntry != null) {
-							classEntry.markDeleted();	// mark it deleted in case still sitting in cache (maybe because it was in an external jar, we can't know if deleted when jar changed).
-							classEntry = null;	// Get rid of it since now deleted.
-						}
-						needsIntrospection = false;
-					}
-					
-					if (retrievedExtensionDocument == RETRIEVED_FULL_DOCUMENT) {
-						// We've been defined at one point. Need to clear everything and step back
-						// to never retrieved so that we now get the root added in. If we had been
-						// previously defined, then we didn't have root. We will have to lose
-						// all other updates too. But they can come back when we're defined.
-						clearAll();
-						retrievedExtensionDocument = NEVER_RETRIEVED_EXTENSION_DOCUMENT;
-					}
-					if (retrievedExtensionDocument == NEVER_RETRIEVED_EXTENSION_DOCUMENT)
-						applyExtensionDocument(true);	// Add in Root stuff so that it will work correctly even though undefined.
-				} else {
-					// TODO For now cause recycle of vm if any super type is stale so that if registry is stale for the super type it will be
-					// recreated. This is needed because reflection requires superProperties, etc. and recreating the registry
-					// currently re-marks everyone as stale, including this subclass. This would mean that
-					// re-introspection would need to be done, even though we just did it. The stale registry business needs to be re-addressed so that it is
-					// a lot smarter. 
-					List supers = getJavaClass().getEAllSuperTypes();
-					for (int i = 0; i < supers.size(); i++) {
-						BeaninfoClassAdapter bca = (BeaninfoClassAdapter) EcoreUtil.getExistingAdapter((EObject) supers.get(i),
-								IIntrospectionAdapter.ADAPTER_KEY);
-						if (bca != null && bca.isStale())
-							bca.getRegistry();
-					}
-					// Now we need to force introspection, if needed, of all parents because we need them to be up-to-date for the
-					// class entry.
-					// TODO see if we can come up with a better way that we KNOW the CE is correct, even if any supers are stale.
-					supers = getJavaClass().getESuperTypes();
-					for (int i = 0; i < supers.size(); i++) {
-						BeaninfoClassAdapter bca = (BeaninfoClassAdapter) EcoreUtil.getRegisteredAdapter((EObject) supers.get(i),
-								IIntrospectionAdapter.ADAPTER_KEY);
-						bca.introspectIfNecessary();
-					}
-
-					TimerTests.basicTest.startCumulativeStep(INTROSPECT);
-					if (retrievedExtensionDocument == RETRIEVED_ROOT_ONLY) {
-						// We need to clear out EVERYTHING because we are coming from an undefined to a defined.
-						// Nothing previous is now valid. (Particularly the root stuff).
-						clearAll();
-					}
-					boolean firstTime = false;
-					if (retrievedExtensionDocument != RETRIEVED_FULL_DOCUMENT) {
-						firstTime = true;	// If we need to apply the extension doc, then this is the first time.
-						applyExtensionDocument(false); // Apply the extension doc before we do anything.
-					}
-
-					// Now check to see if we can use the cache.
-					boolean doIntrospection = true;
-					if (firstTime) {
-						// Check if we can use the cache. Use Max value so that first level test (ourself) will always pass and go on to the supers.
-						if (canUseCache()) {
-							TimerTests.basicTest.startCumulativeStep(LOAD_FROM_CACHE);
-							// We can use the cache.
-							Resource cres = BeanInfoCacheController.INSTANCE.getCache(getJavaClass(), classEntry, true);
-							if (cres != null) {
-								try {
-									// Got a cache to use, now apply it.
-									for (Iterator cds = cres.getContents().iterator(); cds.hasNext();) {
-										ChangeDescription cacheCD = (ChangeDescription) cds.next();
-										cacheCD.apply();
-									}
-									// We need to walk through and create the appropriate ID's for events/actions/properties because by
-									// default from the change descriptions these don't get reflected back. And if some one doesn't
-									// use an ID to get them, they won't have an id set.
-									doIDs();
-									doIntrospection = false;
-								} catch (RuntimeException e) {
-									BeaninfoPlugin.getPlugin().getLogger().log(
-										MessageFormat.format(
-												BeanInfoAdapterMessages.INTROSPECT_FAILED_EXC_, 
-												new Object[] { getJavaClass().getJavaName(), ""}), //$NON-NLS-1$
-										Level.WARNING);
-									BeaninfoPlugin.getPlugin().getLogger().log(e);
-								} finally {
-									// Remove the cres since it is now invalid. The applies cause them to be invalid.
-									cres.getResourceSet().getResources().remove(cres);
-									if (doIntrospection) {
-										// Apply had failed. We don't know how far it went. We need to wipe out and reget EVERYTHING.
-										clearAll();
-										applyExtensionDocument(false); // Re-apply the extension doc before we do anything else.
-									}
-								}
-							}
-							TimerTests.basicTest.stopCumulativeStep(LOAD_FROM_CACHE);
-						}
-					}
-					
-					if (doIntrospection) {
-						// Finally we can get to handling ourselves.
-						TimerTests.basicTest.startCumulativeStep(REMOTE_INTROSPECT);
-						BeanDecorator decor = Utilities.getBeanDecorator(getJavaClass());
-						if (decor == null) {
-							decor = BeaninfoFactory.eINSTANCE.createBeanDecorator();
-							decor.setImplicitDecoratorFlag(ImplicitItem.IMPLICIT_DECORATOR_LITERAL);
-							getJavaClass().getEAnnotations().add(decor);
-						} else
-							BeanInfoDecoratorUtility.clear(decor);	// Clear out previous results.
-						
-						boolean doReflection = true;
-						if (doOperations)
-							newoperations = new HashSet(50);
-						if (decor.isDoBeaninfo()) {
-							int doFlags = 0;
-							if (decor == null || decor.isMergeIntrospection())
-								doFlags |= IBeanInfoIntrospectionConstants.DO_BEAN_DECOR;
-							if (decor == null || decor.isIntrospectEvents())
-								doFlags |= IBeanInfoIntrospectionConstants.DO_EVENTS;
-							if (decor == null || decor.isIntrospectProperties())
-								doFlags |= IBeanInfoIntrospectionConstants.DO_PROPERTIES;
-							if (doOperations && (decor == null || decor.isIntrospectMethods()))
-								doFlags |= IBeanInfoIntrospectionConstants.DO_METHODS;
-							
-							if (doFlags != 0) {
-								// There was something remote to do.
-								IBeanTypeProxy targetType = null;
-								ProxyFactoryRegistry registry = getRegistry();
-								if (registry != null && registry.isValid())
-									targetType = registry.getBeanTypeProxyFactory().getBeanTypeProxy(getJavaClass().getQualifiedNameForReflection());
-								if (targetType != null) {
-									if (targetType.getInitializationError() == null) {
-										// If an exception is thrown, treat this as no proxy, however log it because we
-										// shouldn't have exceptions during introspection, but if we do it should be logged
-										// so it can be corrected.
-										try {
-											beaninfo = getProxyConstants().getIntrospectProxy().invoke(null,
-													new IBeanProxy[] { targetType, getRegistry().getBeanProxyFactory().createBeanProxyWith(false), getRegistry().getBeanProxyFactory().createBeanProxyWith(doFlags)});
-										} catch (ThrowableProxy e) {
-											BeaninfoPlugin.getPlugin().getLogger().log(
-													new Status(IStatus.WARNING, BeaninfoPlugin.getPlugin().getBundle().getSymbolicName(), 0,
-															MessageFormat.format(BeanInfoAdapterMessages.INTROSPECT_FAILED_EXC_, new Object[] { //$NON-NLS-1$
-																	getJavaClass().getJavaName(), ""}), //$NON-NLS-1$
-																	e));
-										}
-									} else {
-										// The class itself couldn't be initialized. Just log it, but treat as no proxy.
-										BeaninfoPlugin.getPlugin().getLogger()
-										.log(
-												new Status(IStatus.WARNING, BeaninfoPlugin.getPlugin().getBundle().getSymbolicName(), 0,
-														MessageFormat.format(BeanInfoAdapterMessages.INTROSPECT_FAILED_EXC_, new Object[] { //$NON-NLS-1$
-																getJavaClass().getJavaName(), targetType.getInitializationError()}), null));
-									}
-								} else {
-									// The class itself could not be found. Just log it, but treat as no proxy.
-									BeaninfoPlugin.getPlugin().getLogger().log(
-											new Status(IStatus.INFO, BeaninfoPlugin.getPlugin().getBundle().getSymbolicName(), 0, MessageFormat.format(
-													BeanInfoAdapterMessages.INTROSPECT_FAILED_EXC_, new Object[] { 
-															getJavaClass().getJavaName(),
-															BeanInfoAdapterMessages.BeaninfoClassAdapter_ClassNotFound}), 
-															null));
-								}
-								
-								if (beaninfo != null) {
-									doReflection = false;	// We have a beaninfo, so we are doing introspection.
-									final BeanDecorator bdecor = decor;
-									// We have a beaninfo to process.
-									BeanInfoDecoratorUtility.introspect(beaninfo, new BeanInfoDecoratorUtility.IntrospectCallBack() {
-
-										/*; (non-Javadoc)
-										 * @see org.eclipse.jem.internal.beaninfo.adapters.BeanInfoDecoratorUtility.IntrospectCallBack#process(org.eclipse.jem.internal.beaninfo.common.BeanRecord)
-										 */
-										public BeanDecorator process(BeanRecord record) {
-											return bdecor;
-										}
-
-										/* (non-Javadoc)
-										 * @see org.eclipse.jem.internal.beaninfo.adapters.BeanInfoDecoratorUtility.IntrospectCallBack#process(org.eclipse.jem.internal.beaninfo.common.PropertyRecord)
-										 */
-										public PropertyDecorator process(PropertyRecord record) {
-											return calculateProperty(record, false);
-										}
-
-										/* (non-Javadoc)
-										 * @see org.eclipse.jem.internal.beaninfo.adapters.BeanInfoDecoratorUtility.IntrospectCallBack#process(org.eclipse.jem.internal.beaninfo.common.IndexedPropertyRecord)
-										 */
-										public PropertyDecorator process(IndexedPropertyRecord record) {
-											return calculateProperty(record, true);
-										}
-
-										/* (non-Javadoc)
-										 * @see org.eclipse.jem.internal.beaninfo.adapters.BeanInfoDecoratorUtility.IntrospectCallBack#process(org.eclipse.jem.internal.beaninfo.common.MethodRecord)
-										 */
-										public MethodDecorator process(MethodRecord record) {
-											return calculateOperation(record);
-										}
-
-										/* (non-Javadoc)
-										 * @see org.eclipse.jem.internal.beaninfo.adapters.BeanInfoDecoratorUtility.IntrospectCallBack#process(org.eclipse.jem.internal.beaninfo.common.EventSetRecord)
-										 */
-										public EventSetDecorator process(EventSetRecord record) {
-											return calculateEvent(record);
-										}
-									});
-								} 
-							}
-						}
-						
-						if (doReflection) {
-							// Need to do reflection stuff.
-							if (decor.isIntrospectProperties())
-								reflectProperties();
-							if (doOperations && decor.isIntrospectMethods())
-								reflectOperations();
-							if (decor.isIntrospectEvents())
-								reflectEvents();
-						}
-						ChangeDescription cd = ChangeFactory.eINSTANCE.createChangeDescription();						
-						BeanInfoDecoratorUtility.buildChange(cd, decor);
-						finalizeProperties(cd);
-						if (doOperations)
-							finalizeOperations(cd);
-						finalizeEvents(cd);
-
-						classEntry = BeanInfoCacheController.INSTANCE.newCache(getJavaClass(), cd, doOperations ? BeanInfoCacheController.REFLECTION_OPERATIONS_CACHE : BeanInfoCacheController.REFLECTION_CACHE);
-						TimerTests.basicTest.stopCumulativeStep(REMOTE_INTROSPECT); 
-					}
-					TimerTests.basicTest.stopCumulativeStep(INTROSPECT);
-				}
-				getAdapterFactory().registerIntrospection(getJavaClass().getQualifiedNameForReflection(), this);
-			}
-		} finally {
-			if (beaninfo != null) {
-				beaninfo.getProxyFactoryRegistry().releaseProxy(beaninfo); // Dispose of the beaninfo since we now have everything.
-			}
-			eventsMap = null; // Clear out the temp lists.
-			eventsRealList = null;
-			operationsMap = null; // Clear out the temp lists.
-			operationsRealList = null;
-			newoperations = null;
-			propertiesMap = null; // Get rid of accumulated map.
-			featuresRealList = null; // Release the real list.
-		}
-	}
-
-	private void doIDs() {
-		// Do properties.
-		if (getJavaClass().eIsSet(EcorePackage.eINSTANCE.getEClass_EStructuralFeatures())) {
-			List features = getFeaturesList();
-			int len = features.size();
-			for (int i = 0; i < len; i++) {
-				EStructuralFeature f = (EStructuralFeature) features.get(i);
-				PropertyDecorator pd = Utilities.getPropertyDecorator(f);
-				if (pd == null || !pd.isMergeIntrospection())
-					continue; // Not a property for us to give an ID to.
-				setPropertyID(f.getName(), f);
-			}
-		}
-		
-		// Do events.
-		if (getJavaClass().eIsSet(JavaRefPackage.eINSTANCE.getJavaClass_Events())) {
-			List events = getEventsList();
-			int len = events.size();
-			for (int i = 0; i < len; i++) {
-				BeanEvent e = (BeanEvent) events.get(i);
-				EventSetDecorator ed = Utilities.getEventSetDecorator(e);
-				if (ed == null || !ed.isMergeIntrospection())
-					continue; // Not an event for us to give an ID to.
-				setEventID(e.getName(), e);
-			}
-		}
-
-		// Do Operations.
-		if (getJavaClass().eIsSet(EcorePackage.eINSTANCE.getEClass_EOperations())) {
-			List ops = getOperationsList();
-			int len = ops.size();
-			for (int i = 0; i < len; i++) {
-				EOperation o = (EOperation) ops.get(i);
-				MethodDecorator md = Utilities.getMethodDecorator(o);
-				if (md == null || !md.isMergeIntrospection())
-					continue; // Not an event for us to give an ID to.
-				setMethodID(o.getName(), o);
-			}
-		}
-	}
-
-	private static final String ROOT_OVERRIDE = BeaninfoPlugin.ROOT+BeaninfoPlugin.OVERRIDE_EXTENSION;	 //$NON-NLS-1$
-	
-	protected void applyExtensionDocument(boolean rootOnly) {
-		try {
-			TimerTests.basicTest.startCumulativeStep(APPLY_EXTENSIONS);
-			boolean canUseCache = !rootOnly && canUseOverrideCache();
-			boolean alreadyRetrievedRoot = retrievedExtensionDocument == RETRIEVED_ROOT_ONLY;
-			retrievedExtensionDocument = rootOnly ? RETRIEVED_ROOT_ONLY : RETRIEVED_FULL_DOCUMENT;
-			JavaClass jc = getJavaClass();
-			Resource mergeIntoResource = jc.eResource();
-			ResourceSet rset = mergeIntoResource.getResourceSet();
-			String className = jc.getName();
-			if (canUseCache) {
-				// We can use the cache, see if we actually have one.
-				if (getClassEntry().overrideCacheExists()) {
-					// Get the cache and apply it before anything else.
-					Resource cacheRes = BeanInfoCacheController.INSTANCE.getCache(jc, getClassEntry(), false);
-					if (cacheRes != null) {
-						try {
-							EventUtil util = EventFactory.eINSTANCE.createEventUtil(jc, rset);
-							util.doForwardEvents(cacheRes.getContents());
-						} catch (WrappedException e) {
-							BeaninfoPlugin.getPlugin().getLogger().log(
-									new Status(IStatus.WARNING, BeaninfoPlugin.PI_BEANINFO_PLUGINID, 0,
-											"Error processing file\"" + cacheRes.getURI() + "\"", e.exception())); //$NON-NLS-1$ //$NON-NLS-2$						
-						} finally {
-							cacheRes.getResourceSet().getResources().remove(cacheRes); // We don't need it around once we do the merge. Normal merge would of gotton rid of it, but in case of error we do it here.
-						}
-					} else
-						canUseCache = false; // Need to rebuild the cache.
-				}
-			}
-			List overrideCache = null;
-			if (!alreadyRetrievedRoot && (rootOnly || jc.getSupertype() == null)) {
-				// It is a root class. Need to merge in root stuff.
-				if (!canUseCache) {
-					overrideCache = createOverrideCache(overrideCache, getAdapterFactory().getProject(), BeaninfoPlugin.ROOT, ROOT_OVERRIDE, rset, jc);
-				}
-				applyExtensionDocTo(rset, jc, ROOT_OVERRIDE, BeaninfoPlugin.ROOT, BeaninfoPlugin.ROOT);
-				if (rootOnly)
-					return;
-			}
-
-			String baseOverridefile = className + BeaninfoPlugin.OVERRIDE_EXTENSION; // getName() returns inner classes with "$" notation, which is good. //$NON-NLS-1$
-			String packageName = jc.getJavaPackage().getPackageName();
-			if (!canUseCache) {
-				overrideCache = createOverrideCache(overrideCache, getAdapterFactory().getProject(), packageName, baseOverridefile, rset, jc);
-			}
-			applyExtensionDocTo(rset, jc, baseOverridefile, packageName, className);
-			
-			if (!canUseCache) {
-				// We have an override cache to store. If the cache is null, this will flag that there is no override cache for the current configuration. That way we won't bother trying again until config changes.
-				BeanInfoCacheController.INSTANCE.newCache(jc, overrideCache, BeanInfoCacheController.OVERRIDES_CACHE);
-			}
-			
-		} finally {
-			TimerTests.basicTest.stopCumulativeStep(APPLY_EXTENSIONS);	
-		}
-	}
-	
-	/*
-	 * Build up the fixed overrides into the cache, and apply as we gather them.
-	 * Return the cache or null if the cache is empty at the end.
-	 */
-	private List createOverrideCache(List cache, IProject project, String packageName, String overrideFile, ResourceSet rset, JavaClass mergeIntoJavaClass) {
-		// Now get the overrides paths
-		String[] paths = BeaninfoPlugin.getPlugin().getOverridePaths(project, packageName);
-		if (paths.length == 0)
-			return cache;
-		
-		// Now apply the overrides.
-		if (cache == null)
-			cache = new ArrayList();
-		BeaninfoPlugin.IOverrideRunnable runnable = new ExtensionDocApplies(overrideFile, rset, mergeIntoJavaClass, cache);
-		for (int i = 0; i < paths.length; i++) {
-			runnable.run(paths[i]);
-		}
-		return !cache.isEmpty() ? cache : null;
-	}
-	
-	private class ExtensionDocApplies implements BeaninfoPlugin.IOverrideRunnable {
-		
-		private final String overrideFile;
-		private final ResourceSet rset;
-		private final JavaClass mergeIntoJavaClass;
-		private final List overridesCache;
-
-		public ExtensionDocApplies(String overrideFile, ResourceSet rset, JavaClass mergeIntoJavaClass, List overridesCache) {
-			this.overrideFile = overrideFile;
-			this.rset = rset;
-			this.mergeIntoJavaClass = mergeIntoJavaClass;
-			this.overridesCache = overridesCache;
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jem.internal.beaninfo.core.BeaninfoPlugin.IOverrideRunnable#run(java.lang.String)
-		 */
-		public void run(String overridePath) {
-			Resource overrideRes = null;
-			URI uri = URI.createURI(overridePath+overrideFile);
-			try {
-				overrideRes = rset.getResource(uri, true);
-				run(overrideRes);
-			} catch (WrappedException e) {
-				// FileNotFoundException is ok
-				if (!(e.exception() instanceof FileNotFoundException)) {
-					if (e.exception() instanceof CoreException
-						&& ((CoreException) e.exception()).getStatus().getCode() == IResourceStatus.RESOURCE_NOT_FOUND) {
-						// This is ok. Means uri_mapping not set so couldn't find in Workspace, also ok.
-					} else {
-						BeaninfoPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, BeaninfoPlugin.PI_BEANINFO_PLUGINID, 0, "Error loading file\"" + uri + "\"", e.exception())); //$NON-NLS-1$ //$NON-NLS-2$						
-					}
-				}
-				// In case it happened after creating resource but during load. Need to get rid of it in the finally.	
-				overrideRes = rset.getResource(uri, false);				
-			} catch (Exception e) {
-				// Couldn't load it for some reason.
-				BeaninfoPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, BeaninfoPlugin.PI_BEANINFO_PLUGINID, 0, "Error loading file\"" + uri + "\"", e)); //$NON-NLS-1$ //$NON-NLS-2$
-				overrideRes = rset.getResource(uri, false); // In case it happened after creating resource but during load so that we can get rid of it.
-			} finally {
-				if (overrideRes != null)
-					rset.getResources().remove(overrideRes); // We don't need it around once we do the merge. Normal merge would of gotton rid of it, but in case of error we do it here.
-			}
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jem.internal.beaninfo.core.BeaninfoPlugin.IOverrideRunnable#run(org.eclipse.emf.ecore.resource.Resource)
-		 */
-		public void run(Resource overrideRes) {
-			try {
-				if (overridesCache != null)
-					overridesCache.addAll(EcoreUtil.copyAll(overrideRes.getContents()));	// Make a copy for the override cache to be used next time needed.
-				EventUtil util = EventFactory.eINSTANCE.createEventUtil(mergeIntoJavaClass, rset);
-				util.doForwardEvents(overrideRes.getContents());
-			} catch (WrappedException e) {
-				BeaninfoPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, BeaninfoPlugin.PI_BEANINFO_PLUGINID, 0, "Error processing file\"" + overrideRes.getURI() + "\"", e.exception())); //$NON-NLS-1$ //$NON-NLS-2$						
-			}
-		}
-	}
-	protected void applyExtensionDocTo(ResourceSet rset, JavaClass mergeIntoJavaClass, String overrideFile, String packageName, String className) {
-		BeaninfoPlugin.getPlugin().applyOverrides(getAdapterFactory().getProject(), packageName, className, mergeIntoJavaClass, rset, 
-			new ExtensionDocApplies(overrideFile, rset, mergeIntoJavaClass, null));
-	}
-
-	/**
-	 * Return the target as a JavaClass 
-	 */
-	protected JavaClassImpl getJavaClass() {
-		return (JavaClassImpl) getTarget();
-	}
-
-	/**
-	 * Answer the beaninfo constants record
-	 */
-	protected BeaninfoProxyConstants getProxyConstants() {
-		return BeaninfoProxyConstants.getConstants(getRegistry());
-	}
-
-	/**
-	 * @see org.eclipse.jem.java.beaninfo.IIntrospectionAdapter#getEStructuralFeatures()
-	 */
-	public EList getEStructuralFeatures() {
-		introspectIfNecessary();
-		return getJavaClass().getEStructuralFeaturesInternal();
-	}
-	
-	/**
-	 * @see org.eclipse.jem.java.beaninfo.IIntrospectionAdapter#getAllProperties()
-	 */
-	public EList getAllProperties() {
-		return allProperties();
-	}	
-	
-	/**
-	 * @see org.eclipse.jem.java.beaninfo.IIntrospectionAdapter#getEOperations()
-	 */
-	public EList getEOperations() {
-		if (getClassEntry() != null && getClassEntry().isOperationsStored())
-			introspectIfNecessary();	// Already stored, just do if necessary.
-		else {
-			synchronized (this) {
-				needsIntrospection = true;	// Force reintrospection because we either aren't storing operations, or have never loaded.
-			}
-			introspectIfNecessary(true);	// But force the operations now.
-		}
-		return getJavaClass().getEOperationsInternal();
-	}
-	
-	/**
-	 * @see org.eclipse.jem.java.beaninfo.IIntrospectionAdapter#getEAllOperations()
-	 */
-	public BasicEList getEAllOperations() {
-		return allOperations();
-	}
-	
-	/**
-	 * @see org.eclipse.jem.java.beaninfo.IIntrospectionAdapter#getEvents()
-	 */
-	public EList getEvents() {
-		introspectIfNecessary();
-		return getJavaClass().getEventsGen();
-	}
-	
-	/**
-	 * @see org.eclipse.jem.java.beaninfo.IIntrospectionAdapter#getAllEvents()
-	 */
-	public EList getAllEvents() {
-		return allEvents();
-	}					
-
-	private void finalizeProperties(ChangeDescription cd) {
-		// Now go through the list and remove those that should be removed, and set the etype for those that don't have it set.
-		Map oldLocals = getPropertiesMap();
-		Iterator itr = getFeaturesList().iterator();
-		while (itr.hasNext()) {
-			EStructuralFeature a = (EStructuralFeature) itr.next();
-			PropertyDecorator p = Utilities.getPropertyDecorator(a);
-			Object aOld = oldLocals.get(a.getName());
-			if (aOld != null && aOld != Boolean.FALSE) {
-				// A candidate for removal. It was in the old list and it was not processed.
-				if (p != null) {
-					ImplicitItem implicit = p.getImplicitDecoratorFlag();
-					if (implicit != ImplicitItem.NOT_IMPLICIT_LITERAL) {
-						p.setEModelElement(null); // Remove from the feature;
-						((InternalEObject) p).eSetProxyURI(BAD_URI);
-						// Mark it as bad proxy so we know it is no longer any use.
-						p = null;
-						if (implicit == ImplicitItem.IMPLICIT_DECORATOR_AND_FEATURE_LITERAL) {
-							itr.remove(); // Remove it, this was implicitly created and not processed this time.
-							((InternalEObject) a).eSetProxyURI(BAD_URI);	// Mark it as bad proxy so we know it is no longer any use.
-							continue;
-						}
-						// Need to go on because we need to check the eType to make sure it is set. At this point we have no decorator but we still have a feature.
-					}
-				}
-			}
-			
-			// [79083] Also check for eType not set, and if it is, set it to EObject type. That way it will be valid, but not valid as 
-			// a bean setting.
-			if (a.getEType() == null) {
-				// Set it to EObject type. If it becomes valid later (through the class being changed), then the introspect/reflect
-				// will set it to the correct type.
-				a.setEType(EcorePackage.eINSTANCE.getEObject());
-				Logger logger = BeaninfoPlugin.getPlugin().getLogger();
-				if (logger.isLoggingLevel(Level.WARNING))
-					logger.logWarning("Feature \""+getJavaClass().getQualifiedName()+"->"+a.getName()+"\" did not have a type set. Typically due to override file creating feature but property not found on introspection/reflection."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			}
-			
-			if (p != null && cd != null) {
-				// Now create the appropriate cache entry for this property.
-				BeanInfoDecoratorUtility.buildChange(cd, p);
-			}
-		}
-	}
-
-	/**
-	 * merge all  the Properties (i.e. supertypes) (properties)
-	 */
-	protected EList allProperties() {
-		
-		EList jcAllProperties = getJavaClass().getAllPropertiesGen();
-		BeaninfoSuperAdapter superAdapter =
-			(BeaninfoSuperAdapter) EcoreUtil.getRegisteredAdapter(getJavaClass(), BeaninfoSuperAdapter.class);
-		if (jcAllProperties != null) {
-			// See if new one required.
-			if (superAdapter == null || !superAdapter.isAllPropertiesCollectionModified())
-				return jcAllProperties;
-			// Can't get superadapter, so must not be attached to a resource, so return current list. Or no change required.       		
-		}
-		
-		UniqueEList.FastCompare allProperties = new UniqueEList.FastCompare() {
-			/**
-			 * Comment for <code>serialVersionUID</code>
-			 * 
-			 * @since 1.1.0
-			 */
-			private static final long serialVersionUID = 1L;
-
-			protected Object[] newData(int capacity) {
-				return new EStructuralFeature[capacity];
-			}
-		};
-		boolean doAllProperties = false;
-		synchronized(this) {
-			// If we are introspecting, don't do all properties because it is an invalid list. Just return empty without reseting the all modified flag.
-			doAllProperties = !isDoingAllProperties && !isIntrospecting && isResourceConnected();
-			if (doAllProperties)
-				isDoingAllProperties = true;
-		}
-		if (doAllProperties) {
-			try {
-				EList localProperties = getJavaClass().getProperties();
-				// Kludge: BeanInfo spec doesn't address Interfaces, but some people want to use them.
-				// Interfaces can have multiple extends, while the Introspector ignores these for reflection,
-				// the truth is most people want these. So we will add them in. But since there could be more than one it
-				// gets confusing. We need to look for dups from the super types and still keep order.
-				//
-				// Supertypes will never be more than one entry for classes, it is possible to be 0, 1, 2 or more for interfaces.
-				List superTypes = getJavaClass().getESuperTypes();
-				if (!superTypes.isEmpty()) {
-					// Now we need to merge in the supers.
-					BeanDecorator bd = Utilities.getBeanDecorator(getJavaClass());
-					// If there is only one supertype, we can add to the actual events, else we will use the linked hashset so that
-					// we don't add possible duplicates (e.g. IA extends IB,IC and IB extends IC. In this case there would be dups
-					// because IB would contribute IC's too).
-					Collection workingAllProperties = superTypes.size() == 1 ? (Collection) allProperties : new LinkedHashSet(); 
-					// We will now merge as directed.
-					boolean mergeAll = bd == null || bd.isMergeSuperProperties();
-					if (!mergeAll) {
-						// we don't to want to merge super properties, but we still need super non-properties or explict ones.
-						int lenST = superTypes.size();
-						for (int i=0; i<lenST; i++) {
-							List supers = ((JavaClass) superTypes.get(i)).getAllProperties();
-							int len = supers.size();
-							for (int i1 = 0; i1 < len; i1++) {
-								EStructuralFeature p = (EStructuralFeature) supers.get(i1);
-								PropertyDecorator pd = Utilities.getPropertyDecorator(p);
-								if ( pd == null || (pd.getImplicitDecoratorFlag() == ImplicitItem.NOT_IMPLICIT_LITERAL && !pd.isMergeIntrospection()))
-									workingAllProperties.add(p);
-							}
-						}
-					} else {
-						// We want to merge all.					
-						// BeanInfo could of given us the not merge list. If the list is empty, then we accept all.
-						if (bd != null && bd.eIsSet(BeaninfoPackage.eINSTANCE.getBeanDecorator_NotInheritedPropertyNames())) {
-							// We were given a list of names.
-							// Get the names into a set to create a quick lookup.
-							HashSet superSet = new HashSet(bd.getNotInheritedPropertyNames());
-							
-							// Now walk and add in non-bean properties (and bean properties that were explicitly added and not mergeable (i.e. didn't come thru beaninfo)) 
-							// and add those not specifically called out by BeanInfo in the not inherited list.
-							int lenST = superTypes.size();
-							for (int i=0; i<lenST; i++) {
-								List supers = ((JavaClass) superTypes.get(i)).getAllProperties();
-								int len = supers.size();
-								for (int i1 = 0; i1 < len; i1++) {
-									EStructuralFeature p = (EStructuralFeature) supers.get(i1);
-									PropertyDecorator pd = Utilities.getPropertyDecorator(p);
-									if (pd == null || (pd.getImplicitDecoratorFlag() == ImplicitItem.NOT_IMPLICIT_LITERAL && !pd.isMergeIntrospection()) || !superSet.contains(pd.getName()))
-										workingAllProperties.add(p);
-								}
-							}
-						} else {
-							// BeanInfo (or reflection always does this) called out that all super properties are good
-							int lenST = superTypes.size();
-							for (int i=0; i<lenST; i++) {
-								workingAllProperties.addAll(((JavaClass) superTypes.get(i)).getAllProperties());
-							}
-						}
-					}
-					if (workingAllProperties != allProperties)
-						allProperties.addAll(workingAllProperties);	// Now copy over the ordered super properties.
-				}
-				allProperties.addAll(localProperties);				
-				superAdapter.setAllPropertiesCollectionModified(false); // Now built, so reset to not changed.
-			} finally {
-				synchronized(this) {
-					isDoingAllProperties = false;
-				}
-			}
-		}
-
-		if (!allProperties.isEmpty()) {
-			allProperties.shrink();
-			return new EcoreEList.UnmodifiableEList.FastCompare(
-				getJavaClass(),
-				null,
-				allProperties.size(),
-				allProperties.data());
-		} else
-			return ECollections.EMPTY_ELIST;
-	}
-
-	/*
-	 * Fill in the property using the prop record. If this one that should have merging done, then
-	 * return the PropertyDecorator so that it can have the PropertyRecord merged into it. Else
-	 * return null if no merging.
-	 */
-	protected PropertyDecorator calculateProperty(PropertyRecord pr, boolean indexed) {
-		// If this is an indexed property, then a few fields will not be set in here, but
-		// will instead be set by the calculateIndexedProperty, which will be called.
-		boolean changeable = pr.writeMethod != null || (pr.field != null && !pr.field.readOnly);
-		JavaHelpers type = pr.propertyTypeName != null ? Utilities.getJavaType(MapJNITypes.getFormalTypeName(pr.propertyTypeName), getJavaClass().eResource().getResourceSet()) : null;
-
-		if (indexed) {
-			// If no array write method found, then see if there is an indexed write method. If there is, then it is changable.
-			if (!changeable)
-				changeable = ((IndexedPropertyRecord) pr).indexedWriteMethod != null;
-			if (type == null) {
-				// If no array type from above, create one from the indexed type proxy. Add '[]' to turn it into an array.
-				type = Utilities.getJavaType(MapJNITypes.getFormalTypeName(((IndexedPropertyRecord) pr).indexedPropertyTypeName)+"[]", getJavaClass().eResource().getResourceSet()); //$NON-NLS-1$
-			}
-		}
-
-		if (type != null)
-			return createProperty(pr.name, indexed, changeable, type); // A valid property descriptor.
-		else
-			return null;
-	}
-
-	/**
-	 * Fill in the property and its decorator using the passed in information.
-	 */
-	protected PropertyDecorator createProperty(String name, boolean indexed, boolean changeable, EClassifier type) {
-		// First find if there is already a property of this name, and if there is, is the PropertyDecorator
-		// marked to not allow merging in of introspection results.		
-		HashMap existingLocals = getPropertiesMap();
-		EStructuralFeature prop = null;
-		PropertyDecorator pd = null;
-		Object p = existingLocals.get(name);
-		if (Boolean.FALSE == p)
-			return null; // We've already processed this name, can't process it again.
-		if (p != null) {
-			// We've found one of the same name. Whether we modify it or use it as is, we put in a
-			// special dummy in its place. That marks that we've already processed it and accepted it.
-			existingLocals.put(name, Boolean.FALSE);
-
-			// If the decorator for this entry says not to merge then return.
-			// If there is no PropertyDecorator, then we will merge. If they
-			// didn't want to merge then should of created of property decorator and said no merge.
-			pd = Utilities.getPropertyDecorator((EStructuralFeature) p);
-			if (pd != null && !pd.isMergeIntrospection())
-				return null;
-			prop = (EStructuralFeature) p;
-		}
-
-		// Need to test if this is an implicit decorator and it is not of the 
-		// same type (i.e. is indexed now but wasn't or visa-versa, then we need
-		// to get rid of the decorator and recreate it. If it is not implicit, then
-		// we have to use it as is because the user specified, so it won't become
-		// an indexed if the user did not created it as an index, and visa-versa.
-		// Also if it is implicit, then we need to unset certain features that may of
-		// been set by a previous reflection which has now become introspected.
-		// When reflected we set the actual fields instead of the letting proxy determine them.
-		if (pd != null) {
-			if (pd.getImplicitDecoratorFlag() == ImplicitItem.NOT_IMPLICIT_LITERAL) {
-				// We can't change the type for explicit.
-				indexed = pd instanceof IndexedPropertyDecorator;
-			} else {
-				if ((indexed && !(pd instanceof IndexedPropertyDecorator)) || (!indexed && pd instanceof IndexedPropertyDecorator)) {
-					// It is implicit and of a different type, so just get rid of it and let it be recreated correctly.
-					prop.getEAnnotations().remove(pd);
-					pd = null;
-				}
-			}
-			if (pd != null)
-				if (indexed)
-					BeanInfoDecoratorUtility.clear((IndexedPropertyDecorator) pd);
-				else
-					BeanInfoDecoratorUtility.clear(pd);
-		}
-
-		ImplicitItem implicit = pd == null ? ImplicitItem.IMPLICIT_DECORATOR_LITERAL : pd.getImplicitDecoratorFlag();
-		if (prop == null) {
-			// We will create a new property.
-			// We can't have an implicit feature, but an explicit decorator.
-			getFeaturesList().add(prop = EcoreFactory.eINSTANCE.createEReference());
-			implicit = ImplicitItem.IMPLICIT_DECORATOR_AND_FEATURE_LITERAL;
-		}
-
-		setPropertyID(name, prop);
-		prop.setName(name);
-		prop.setTransient(false);
-		prop.setVolatile(false);
-		prop.setChangeable(changeable);
-
-		// Containment and Unsettable is tricky for EReferences. There is no way to know whether it has been explicitly set to false, or it defaulted to
-		// false because ECore has not made containment/unsettable an unsettable feature. So we need to instead use the algorithm of if we here 
-		// created the feature, then we will by default set it to containment/unsettable. If it was created through diff merge, then
-		// we will leave it alone. It is the responsibility of the merge file writer to set containment/unsettable correctly.
-		if (implicit == ImplicitItem.IMPLICIT_DECORATOR_AND_FEATURE_LITERAL) {
-			prop.setUnsettable(true);
-		}
-		prop.setEType(type);
-		if (!indexed) {
-			prop.setLowerBound(0);
-			prop.setUpperBound(1);
-		} else {
-			prop.setLowerBound(0);
-			prop.setUpperBound(-1);
-			prop.setUnique(true);
-		}
-
-		// Now create/fill in the property descriptor for it.
-		// If there already is one then we
-		// will use it. This allows merging with beanfinfo.		
-		if (pd == null) {
-			pd =
-				(!indexed)
-					? BeaninfoFactory.eINSTANCE.createPropertyDecorator()
-					: BeaninfoFactory.eINSTANCE.createIndexedPropertyDecorator();
-			pd.setImplicitDecoratorFlag(implicit);
-			prop.getEAnnotations().add(pd);
-		}
-		return pd;
-	}
-
-	/**
-	 * @param name
-	 * @param prop
-	 * 
-	 * @since 1.1.0
-	 */
-	private void setPropertyID(String name, EStructuralFeature prop) {
-		// Now fill it in. Normal id for an attribute is "classname.attributename" but we can't use that
-		// for us because that format is used by Java Core for a field and there would be confusion.
-		// So we will use '/' instead.
-		((XMIResource) prop.eResource()).setID(prop, getJavaClass().getName() + BeaninfoJavaReflectionKeyExtension.FEATURE + name);
-	}
-
-	/*
-	 * Reflect the properties. This requires going through local methods and matching them up to
-	 * see if they are properties.
-	 */
-	private void reflectProperties() {
-		// If we are set to mergeSuperTypeProperties, then we need to get the super properties.
-		// This is so that duplicate any from super that we find here. When reflecting we don't
-		// allow discovered duplicates unless they are different types.
-		//
-		// Kludge: BeanInfo spec doesn't address Interfaces, but some people want to use them.
-		// Interfaces can have multiple extends, while the Introspector ignores these for reflection,
-		// the truth is most people want these. So we will add them in. But since there could be more than one it
-		// gets confusing. We need to look for dups from the super types.
-		//
-		// Supertypes will never be more than one entry for classes, it is possible to be 0, 1, 2 or more for interfaces.
-		TimerTests.basicTest.startCumulativeStep(REFLECT_PROPERTIES);		
-		Set supers = new HashSet(50);
-		BeanDecorator bd = Utilities.getBeanDecorator(getJavaClass());
-		if (bd == null || bd.isMergeSuperProperties()) {
-			List superTypes = getJavaClass().getESuperTypes();
-			if (!superTypes.isEmpty()) {
-				int lenST = superTypes.size();
-				for (int i=0; i<lenST; i++) {
-					List superAll = ((JavaClass) superTypes.get(i)).getAllProperties();
-					int len = superAll.size();
-					for (int i1=0; i1<len; i1++) {
-						EStructuralFeature sf = (EStructuralFeature) superAll.get(i1);
-						supers.add(sf.getName());
-					}
-				}
-			}
-		}
-
-		// If any of the classes in the hierarchy are bound, then all reflected properties are considered bound.
-		boolean isBound = isDefaultBound();
-		if (!isBound) {
-			List superTypes = getJavaClass().getEAllSuperTypes();
-			// Start from end because that will be first class above the this one.
-			for (int i=superTypes.size()-1; !isBound && i>=0; i--) {
-				JavaClass spr = (JavaClass) superTypes.get(i);
-				BeaninfoClassAdapter bi = (BeaninfoClassAdapter) EcoreUtil.getExistingAdapter(spr, IIntrospectionAdapter.ADAPTER_KEY);
-				// They should all be reflected, but be on safe side, check if null.
-				if (bi != null)
-					isBound = bi.isDefaultBound();
-			}
-		}
-
-		HashMap props = new HashMap();
-
-		Iterator itr = getJavaClass().getPublicMethods().iterator();
-		while (itr.hasNext()) {
-			Method mthd = (Method) itr.next();
-			if (mthd.isStatic() || mthd.isConstructor())
-				continue; // Statics/constructors don't participate as properties
-			if (mthd.getName().startsWith("get")) { //$NON-NLS-1$
-				String name = java.beans.Introspector.decapitalize(mthd.getName().substring(3));
-				if (name.length() == 0 || supers.contains(name))
-					continue;	// Had get(...) and not getXXX(...) so not a getter. Or this is the same name as a super, either way ignore it.
-				PropertyInfo propInfo = (PropertyInfo) props.get(name);
-				if (propInfo == null) {
-					propInfo = new PropertyInfo();
-					if (propInfo.setGetter(mthd, false))
-						props.put(name, propInfo);
-				} else
-					propInfo.setGetter(mthd, false);
-			} else if (mthd.getName().startsWith("is")) { //$NON-NLS-1$
-				String name = java.beans.Introspector.decapitalize(mthd.getName().substring(2));
-				if (name.length() == 0 || supers.contains(name))
-					continue;	// Had is(...) and not isXXX(...) so not a getter. Or this is the same name as a super, either way ignore it.
-				PropertyInfo propInfo = (PropertyInfo) props.get(name);
-				if (propInfo == null) {
-					propInfo = new PropertyInfo();
-					if (propInfo.setGetter(mthd, true))
-						props.put(name, propInfo);
-				} else
-					propInfo.setGetter(mthd, true);
-			} else if (mthd.getName().startsWith("set")) { //$NON-NLS-1$
-				String name = java.beans.Introspector.decapitalize(mthd.getName().substring(3));
-				if (name.length() == 0 || supers.contains(name))
-					continue;	// Had set(...) and not setXXX(...) so not a setter. Or this is the same name as a super, either way ignore it.				
-				PropertyInfo propInfo = (PropertyInfo) props.get(name);
-				if (propInfo == null) {
-					propInfo = new PropertyInfo();
-					if (propInfo.setSetter(mthd))
-						props.put(name, propInfo);
-				} else
-					propInfo.setSetter(mthd);
-			}
-		}
-
-		// Now go through the hash map and create the properties.
-		itr = props.entrySet().iterator();
-		while (itr.hasNext()) {
-			Map.Entry entry = (Map.Entry) itr.next();
-			((PropertyInfo) entry.getValue()).createProperty((String) entry.getKey(), isBound);
-		}
-		TimerTests.basicTest.stopCumulativeStep(REFLECT_PROPERTIES);		
-	}
-
-	private class PropertyInfo {
-		
-		public EClassifier type, indexedType;
-		public boolean constrained;
-		public Method getter, setter, indexedGetter, indexedSetter;
-
-		public boolean setGetter(Method get, boolean mustBeBoolean) {
-			List parms = get.getParameters();
-			if (parms.size() > 1)
-				return false; // Invalid - improper number of parms.
-			boolean indexed = parms.size() == 1;
-			if (indexed && !((JavaParameter) parms.get(0)).getEType().getName().equals("int")) //$NON-NLS-1$
-				return false; // Invalid - a parm that is not an int is invalid for indexed.
-			EClassifier retType = get.getReturnType();
-			if (retType == null || retType.getName().equals("void")) //$NON-NLS-1$
-				return false; // Invalid - must have a return type
-			if (mustBeBoolean && !retType.getName().equals("boolean")) //$NON-NLS-1$
-				return false; // Invalid - it must be a boolean.
-			if (indexed) {
-				if (indexedType != null) {
-					if (indexedType != retType)
-						return false; // Invalid - type is different from previous info.
-				}
-				if (type != null && !(((JavaHelpers) type).isArray() && ((ArrayType) type).getComponentType() == retType))
-					return false; // Invalid - indexed type doesn't match component type of base type.
-			} else {
-				if (type != null) {
-					if (type != retType)
-						return false; // Invalid - type is different from previous info.
-				}
-				if (indexedType != null && !(((JavaHelpers) retType).isArray() && ((ArrayType) retType).getComponentType() == indexedType))
-					if (type == null) {
-						// We had a potential indexed and had not yet found the regular type. We've now found
-						// the regular type, and it is not indexed. So it takes priority and will wipe out
-						// the indexed type.
-						indexedGetter = null;
-						indexedSetter = null;
-						indexedType = null;
-					} else
-						return false; // Invalid - indexed type doesn't match component type of base type we already have
-			}
-
-			if (indexed) {
-				if (indexedGetter != null)
-					return false; // Already have an indexed getter.
-				indexedGetter = get;
-				indexedType = retType;
-			} else {
-				if (getter != null)
-					return false; // Already have a getter
-				getter = get;
-				type = retType;
-			}
-			return true;
-		}
-
-		public boolean setSetter(Method set) {
-			List parms = set.getParameters();
-			if (parms.size() > 2 || parms.size() < 1)
-				return false; // Invalid - improper number of parms.
-			boolean indexed = parms.size() == 2;
-			if (indexed && !((JavaParameter) parms.get(0)).getEType().getName().equals("int")) //$NON-NLS-1$
-				return false; // Invalid - a parm that is not an int is invalid for indexed.
-			EClassifier retType = set.getReturnType();
-			if (retType != null && !retType.getName().equals("void")) //$NON-NLS-1$
-				return false; // Invalid - must not have a return type
-			EClassifier propType = null;
-			if (indexed) {
-				propType = ((JavaParameter) parms.get(1)).getEType();
-				if (indexedType != null) {
-					if (indexedType != propType)
-						return false; // Invalid - type is different from previous info.
-				}
-				if (type != null && !(((JavaHelpers) type).isArray() && ((ArrayType) type).getComponentType() == propType))
-					return false; // Invalid - indexed type doesn't match component type of base type, or base type not an array
-			} else {
-				propType = ((JavaParameter) parms.get(0)).getEType();
-				if (type != null) {
-					if (type != propType)
-						return false; // Invalid - type is different from previous info.
-				}
-				if (indexedType != null
-					&& !(((JavaHelpers) propType).isArray() && ((ArrayType) propType).getComponentType() == indexedType))
-					if (type == null) {
-						// We had a potential indexed and had not yet found the regular type. We've now found
-						// the regular type, and it is not indexed of the correct type. So it takes priority and will wipe out
-						// the indexed type.
-						indexedGetter = null;
-						indexedSetter = null;
-						indexedType = null;
-					} else
-						return false; // Invalid - indexed type doesn't match component type of base type from this setter.
-			}
-
-			if (indexed) {
-				if (indexedSetter != null)
-					return false; // Already have an indexed getter.
-				indexedSetter = set;
-				indexedType = propType;
-			} else {
-				if (setter != null)
-					return false; // Already have a getter
-				setter = set;
-				type = propType;
-			}
-
-			if (set.getJavaExceptions().contains(Utilities.getJavaClass("java.beans.PropertyVetoException", getJavaClass().eResource().getResourceSet()))) //$NON-NLS-1$
-				constrained = true;
-			return true;
-		}
-
-		public void createProperty(String name, boolean isBound) {
-			boolean indexed = indexedType != null;
-			if (indexed && type == null)
-				return; // A potential indexed, but never found the getter/setter of the regular type.
-
-			PropertyDecorator prop =
-				BeaninfoClassAdapter.this.createProperty(
-					name,
-					indexed,
-					(!indexed) ? (setter != null) : (setter != null || indexedSetter != null),
-					type);
-			if (prop == null)
-				return; // Reflection not wanted.
-
-			indexed = prop instanceof IndexedPropertyDecorator; // It could of been forced back to not indexed if explicitly set.
-
-			// At this point in time all implicit settings have been cleared. This is done back in createProperty() method above.
-			// So now apply reflected settings on the property decorator. 
-			BeanInfoDecoratorUtility.setProperties(prop, isBound, constrained, getter, setter);
-			if (indexed)
-				BeanInfoDecoratorUtility.setProperties((IndexedPropertyDecorator) prop, indexedGetter, indexedSetter);
-
-		}
-	};
-
-	/*
-	 * Should only be called from introspect so that flags are correct.
-	 */
-	private void finalizeOperations(ChangeDescription cd) {
-		// Now go through the list and remove those that should be removed.
-		Iterator itr = getOperationsList().iterator();
-		while (itr.hasNext()) {
-			EOperation a = (EOperation) itr.next();
-			MethodDecorator m = Utilities.getMethodDecorator(a);
-			if (!newoperations.contains(a)) {
-				// A candidate for removal. It is in the list but we didn't add it. Check to see if it one we had created in the past.
-				// If no methoddecorator, then keep it, not one ours.
-				if (m != null) {
-					ImplicitItem implicit = m.getImplicitDecoratorFlag();
-					if (implicit != ImplicitItem.NOT_IMPLICIT_LITERAL) {
-						m.setEModelElement(null); // Remove it because it was implicit.
-						 ((InternalEObject) m).eSetProxyURI(BAD_URI);
-						if (implicit == ImplicitItem.IMPLICIT_DECORATOR_AND_FEATURE_LITERAL) {
-							itr.remove(); // The operation was implicit too.
-							 ((InternalEObject) a).eSetProxyURI(BAD_URI);
-						}
-						continue;	// At this point we no longer have a method decorator, so go to next.
-					}
-				}
-			}
-			
-			if (m != null && cd != null) {
-				// Now create the appropriate cache entry for this method.
-				BeanInfoDecoratorUtility.buildChange(cd, m);
-			}
-		}
-	}
-
-	/**
-	 * Fill in the behavior and its decorator using the mthdDesc.
-	 */
-	protected MethodDecorator calculateOperation(MethodRecord record) {
-		return createOperation(record.name, formLongName(record), null, record);
-	}
-
-	/**
-	 * Fill in the behavior and its decorator using the passed in information.
-	 */
-	protected MethodDecorator createOperation(String name, String longName, Method method, MethodRecord record) {
-		// First find if there is already a behavior of this name and method signature , and if there is, is the MethodDecorator
-		// marked to not allow merging in of introspection results.
-		HashMap existingLocals = getOperationsMap();
-		EOperation oper = null;
-		MethodDecorator md = null;
-		Object b = null;
-		if (name != null)
-			b = existingLocals.get(longName);
-		else
-			b = existingLocals.get(longName);
-			
-		if (b != null) {
-			// If the decorator for this entry says not to merge then return.
-			// If there is no decorator, then we will merge. If they didn't want to
-			// merge, then they should of created a decorator with no merge on it.
-			md = Utilities.getMethodDecorator((EOperation) b);
-			if (md != null && !md.isMergeIntrospection())
-				return null;
-			oper = (EOperation) b;
-		}
-
-		// Need to find the method and method id.
-		if (method == null) {
-			// No method sent, create a proxy to it from the record.
-			method = BeanInfoDecoratorUtility.createJavaMethodProxy(record.methodForDescriptor);
-		}
-
-		ImplicitItem implicit = md == null ? ImplicitItem.IMPLICIT_DECORATOR_LITERAL : ImplicitItem.NOT_IMPLICIT_LITERAL;
-		if (oper == null) {
-			// We will create a new MethodProxy.
-			oper = BeaninfoFactory.eINSTANCE.createMethodProxy();
-			getOperationsList().add(oper);
-			implicit = ImplicitItem.IMPLICIT_DECORATOR_AND_FEATURE_LITERAL; 
-		}		
-		if (name == null)
-			name = method.getName();		
-
-		// Now fill it in.
-		if (oper instanceof MethodProxy)
-			 ((MethodProxy) oper).setMethod(method);
-		setMethodID(name, oper);
-		oper.setName(name);
-		newoperations.add(oper);
-
-		// Now create/fill in the method decorator for it.
-		// If there already is one then we
-		// will use it. This allows merging with beaninfo.		
-		if (md == null) {
-			md = BeaninfoFactory.eINSTANCE.createMethodDecorator();
-			md.setImplicitDecoratorFlag(implicit);
-			oper.getEAnnotations().add(md);
-		} else
-			BeanInfoDecoratorUtility.clear(md);
-		return md;
-	}
-
-	/**
-	 * @param name
-	 * @param oper
-	 * 
-	 * @since 1.1.0
-	 */
-	private void setMethodID(String name, EOperation oper) {
-		((XMIResource) oper.eResource()).setID(oper, getJavaClass().getName() + BeaninfoJavaReflectionKeyExtension.BEHAVIOR + name);
-	}
-
-	private void reflectOperations() {
-		// If we are set to mergeSuperTypeBehaviors, then we need to get the super behaviors.
-		// This is so that duplicate any from super that we find here. When reflecting we don't
-		// allow discovered duplicates unless they are different signatures. So all super operations
-		// will be allowed and we will not override them.
-		//
-		// Kludge: BeanInfo spec doesn't address Interfaces, but some people want to use them.
-		// Interfaces can have multiple extends, while the Introspector ignores these for reflection,
-		// the truth is most people want these. So we will add them in. But since there could be more than one it
-		// gets confusing. We need to look for dups from the super types.
-		//
-		// Supertypes will never be more than one entry for classes, it is possible to be 0, 1, 2 or more for interfaces.
-		Set supers = new HashSet(50);
-		BeanDecorator bd = Utilities.getBeanDecorator(getJavaClass());
-		if (bd == null || bd.isMergeSuperMethods()) {
-			List superTypes = getJavaClass().getESuperTypes();
-			if (!superTypes.isEmpty()) {
-				int lenST = superTypes.size();
-				for (int i=0; i<lenST; i++) {
-					List superAll = ((JavaClass) superTypes.get(i)).getEAllOperations();
-					int len = superAll.size();
-					for (int i1=0; i1<len; i1++) {
-						EOperation op = (EOperation) superAll.get(i1);
-						supers.add(formLongName(op));
-					}
-				}
-			}
-		}
-
-		Iterator itr = getJavaClass().getPublicMethods().iterator();
-		while (itr.hasNext()) {
-			Method mthd = (Method) itr.next();
-			if (mthd.isStatic() || mthd.isConstructor())
-				continue; // Statics/constructors don't participate as behaviors	
-			String longName = formLongName(mthd);
-			// Add if super not already contain it.
-			if (!supers.contains(longName))
-				createOperation(null, longName, mthd, null);	// Don't pass a name, try to create it by name, only use ID if there is more than one of the same name.
-		}
-	}
-
-	/*
-	 * merge all  the Behaviors(i.e. supertypes)
-	 */
-	protected BasicEList allOperations() {
-		BasicEList jcAllOperations = (BasicEList) getJavaClass().primGetEAllOperations();
-		BeaninfoSuperAdapter superAdapter =
-			(BeaninfoSuperAdapter) EcoreUtil.getRegisteredAdapter(getJavaClass(), BeaninfoSuperAdapter.class);
-		if (jcAllOperations != null) {
-			// See if new one required.
-			if (superAdapter == null || !superAdapter.isAllOperationsCollectionModified())
-				return jcAllOperations;
-			// Can't get superadapter, so must not be attached to a resource, so return current list. Or no change required.       		
-		}
-
-		UniqueEList.FastCompare allOperations = new UniqueEList.FastCompare() {
-			/**
-			 * Comment for <code>serialVersionUID</code>
-			 * 
-			 * @since 1.1.0
-			 */
-			private static final long serialVersionUID = 1L;
-
-			protected Object[] newData(int capacity) {
-				return new EOperation[capacity];
-			}
-		};
-		boolean doAllOperations = false;
-		synchronized(this) {
-			// If we are introspecting, don't do all operatoins because it is an invalid list. Just return empty without reseting the all modified flag.
-			doAllOperations = !isDoingAllOperations && !isIntrospecting && isResourceConnected();
-			if (doAllOperations)
-				isDoingAllOperations = true;
-		}
-
-		if (doAllOperations) {
-			try {
-				EList localOperations = getJavaClass().getEOperations();
-				// Kludge: BeanInfo spec doesn't address Interfaces, but some people want to use them.
-				// Interfaces can have multiple extends, while the Introspector ignores these for reflection,
-				// the truth is most people want these. So we will add them in. But since there could be more than one it
-				// gets confusing. We need to look for dups from the super types and still keep order.
-				//
-				// Supertypes will never be more than one entry for classes, it is possible to be 0, 1, 2 or more for interfaces.
-				List superTypes = getJavaClass().getESuperTypes();
-				if (!superTypes.isEmpty()) {
-					// Now we need to merge in the supers.
-					BeanDecorator bd = Utilities.getBeanDecorator(getJavaClass());
-					// If there is only one supertype, we can add to the actual events, else we will use the linked hashset so that
-					// we don't add possible duplicates (e.g. IA extends IB,IC and IB extends IC. In this case there would be dups
-					// because IB would contribute IC's too).
-					Collection workingAllOperations = superTypes.size() == 1 ? (Collection) allOperations : new LinkedHashSet(); 
-					// We will now merge as directed.
-					boolean mergeAll = bd == null || bd.isMergeSuperMethods();
-					if (!mergeAll) {
-						// we don't to want to merge super operations, but we still need super non-operations.
-						int lenST = superTypes.size();
-						for (int i=0; i<lenST; i++) {
-							List supers = ((JavaClass) superTypes.get(i)).getEAllOperations();
-							int len = supers.size();
-							for (int i1 = 0; i1 < len; i1++) {
-								EOperation o = (EOperation) supers.get(i1);
-								MethodDecorator md = Utilities.getMethodDecorator(o);
-								if (md == null || (md.getImplicitDecoratorFlag() == ImplicitItem.NOT_IMPLICIT_LITERAL && !md.isMergeIntrospection()))
-									workingAllOperations.add(o);
-							}
-						}
-					} else {
-						// We want to merge all.
-						// BeanInfo could of given us the don't merge list. If the list is empty, then we accept all.
-						if (bd != null && bd.eIsSet(BeaninfoPackage.eINSTANCE.getBeanDecorator_NotInheritedMethodNames())) {
-							// We were given a list of names.
-							// Get the names into a set to create a quick lookup.
-							HashSet superSet = new HashSet(bd.getNotInheritedMethodNames());
-							
-							// Now walk and add in non-bean operations (and bean operations that were explicitly added and not mergeable (i.e. didn't come thru beaninfo)) 
-							// and add those not specifically called out by BeanInfo not merge list.
-							int lenST = superTypes.size();
-							for (int i=0; i<lenST; i++) {
-								List supers = ((JavaClass) superTypes.get(i)).getEAllOperations();
-								int len = supers.size();
-								for (int i1 = 0; i1 < len; i1++) {
-									EOperation o = (EOperation) supers.get(i1);
-									MethodDecorator md = Utilities.getMethodDecorator(o);
-									if (md == null || (md.getImplicitDecoratorFlag() == ImplicitItem.NOT_IMPLICIT_LITERAL && !md.isMergeIntrospection()))
-										workingAllOperations.add(o);
-									else {
-										String longName = formLongName(o);
-										if (longName == null || !superSet.contains(longName))
-											workingAllOperations.add(o);
-									}
-								}
-							}
-						} else {
-							int lenST = superTypes.size();
-							for (int i=0; i<lenST; i++) {
-								workingAllOperations.addAll(((JavaClass) superTypes.get(i)).getEAllOperations());
-							}
-						}
-					}
-					if (workingAllOperations != allOperations)
-						allOperations.addAll(workingAllOperations);	// Now copy over the ordered super operations.					
-				}
-				allOperations.addAll(localOperations);				
-				ESuperAdapter sa = getJavaClass().getESuperAdapter();
-				sa.setAllOperationsCollectionModified(false); // Now built, so reset to not changed.
-			} finally {
-				synchronized(this) {
-					isDoingAllProperties = false;
-				}
-			}
-		}
-
-		allOperations.shrink();
-		return new EcoreEList.UnmodifiableEList.FastCompare(
-			getJavaClass(),
-			EcorePackage.eINSTANCE.getEClass_EAllOperations(),
-			allOperations.size(),
-			allOperations.data());
-
-	}
-
-	/*
-	 * Should only be called from introspect so that flags are correct.
-	 */
-	private void finalizeEvents(ChangeDescription cd) {
-		// Now go through the list and remove those that should be removed.
-		Map oldLocals = getEventsMap();
-		Iterator itr = getEventsList().iterator();
-		while (itr.hasNext()) {
-			JavaEvent a = (JavaEvent) itr.next();
-			EventSetDecorator e = Utilities.getEventSetDecorator(a);
-			Object aOld = oldLocals.get(a.getName());
-			if (aOld != null && aOld != Boolean.FALSE) {
-				// A candidate for removal. It was in the old list and it was not processed.
-				if (e != null) {
-					ImplicitItem implicit = e.getImplicitDecoratorFlag();
-					if (implicit != ImplicitItem.NOT_IMPLICIT_LITERAL) {
-						e.setEModelElement(null); // Remove it because it was implicit.
-						((InternalEObject) e).eSetProxyURI(BAD_URI);
-						if (implicit == ImplicitItem.IMPLICIT_DECORATOR_AND_FEATURE_LITERAL) {
-							itr.remove(); // The feature was implicit too.
-							((InternalEObject) a).eSetProxyURI(BAD_URI);
-						}
-						continue;	// At this point we don't have a decorator any more, so don't bother going on.
-					}
-				}
-			}
-			
-			if (e != null && cd != null) {
-				// Now create the appropriate cache entry for this event.
-				BeanInfoDecoratorUtility.buildChange(cd, e);
-			}
-		}
-	}
-
-	/**
-	 * Fill in the event and its decorator using the eventDesc.
-	 */
-	protected EventSetDecorator calculateEvent(EventSetRecord record) {
-		return createEvent(record.name);
-	}
-
-	/**
-	 * Fill in the event and its decorator using the passed in information.
-	 */
-	protected EventSetDecorator createEvent(String name) {
-		// First find if there is already an event of this name, and if there is, is the EventSetDecorator
-		// marked to not allow merging in of introspection results.
-		HashMap existingLocals = getEventsMap();
-		JavaEvent event = null;
-		EventSetDecorator ed = null;
-		Object b = existingLocals.get(name);
-		if (Boolean.FALSE == b)
-			return null; // We've already processed this event, can't process it again.			
-		if (b != null) {
-			// We've found one of the same event. Whether we modify it or use it as is, we put in a
-			// special dummy in its place. That marks that we've already processed it and accepted it.
-			existingLocals.put(name, Boolean.FALSE);
-
-			// If the decorator for this entry says not to merge then return.
-			// If there is no decorator, then we will merge. If they didn't want to
-			// merge, then they should of created a decorator with no merge on it.
-			ed = Utilities.getEventSetDecorator((JavaEvent) b);
-			if (ed != null && !ed.isMergeIntrospection())
-				return null;
-			event = (JavaEvent) b;
-		}
-		
-		ImplicitItem implicit = ed == null ? ImplicitItem.IMPLICIT_DECORATOR_LITERAL : ImplicitItem.NOT_IMPLICIT_LITERAL;
-		if (event == null) {
-			// We will create a new Event.
-			event = BeaninfoFactory.eINSTANCE.createBeanEvent();
-			getEventsList().add(event);
-			implicit = ImplicitItem.IMPLICIT_DECORATOR_AND_FEATURE_LITERAL; // Can't have an implicit feature but explicit decorator.
-		}
-
-		setEventID(name, event);
-		event.setName(name);
-
-		// Now create in the event decorator for it.
-		// If there already is one then we
-		// will use it. This allows merging with beaninfo.		
-		if (ed == null) {
-			ed = BeaninfoFactory.eINSTANCE.createEventSetDecorator();
-			ed.setImplicitDecoratorFlag(implicit);
-			event.getEAnnotations().add(ed);
-		} else
-			BeanInfoDecoratorUtility.clear(ed);
-		return ed;
-	}
-
-	/**
-	 * @param name
-	 * @param event
-	 * 
-	 * @since 1.1.0
-	 */
-	private void setEventID(String name, JavaEvent event) {
-		// Now fill it in.
-		((XMIResource) event.eResource()).setID(event, getJavaClass().getName() + BeaninfoJavaReflectionKeyExtension.EVENT + name);
-	}
-
-	/**
-	 * Reflect the events. This requires going through local public methods and creating an 
-	 * event for the discovered events.
-	 */
-	protected void reflectEvents() {
-		// If we are set to mergeSuperTypeEvents, then we need to get the super events.
-		// This is so that duplicate any from super that we find here. When reflecting we don't
-		// allow discovered duplicates.
-		//
-		// Kludge: BeanInfo spec doesn't address Interfaces, but some people want to use them.
-		// Interfaces can have multiple extends, while the Introspector ignores these for reflection,
-		// the truth is most people want these. So we will add them in. But since there could be more than one it
-		// gets confusing. We need to look for dups from the super types.
-		//
-		// Supertypes will never be more than one entry for classes, it is possible to be 0, 1, 2 or more for interfaces.
-		Set supers = new HashSet(50);
-		BeanDecorator bd = Utilities.getBeanDecorator(getJavaClass());
-		if (bd == null || bd.isMergeSuperEvents()) {
-			List superTypes = getJavaClass().getESuperTypes();
-			if (!superTypes.isEmpty()) {
-				int lenST = superTypes.size();
-				for (int i=0; i<lenST; i++) {
-					List superAll = ((JavaClass) superTypes.get(i)).getAllEvents();
-					int len = superAll.size();
-					for (int i1=0; i1<len; i1++) {
-						JavaEvent se = (JavaEvent) superAll.get(i1);
-						supers.add(se.getName());
-					}
-				}
-			}
-		}
-
-		HashMap events = new HashMap();
-		eventListenerClass = (JavaClass) JavaRefFactory.eINSTANCE.reflectType("java.util.EventListener", getJavaClass()); // Initialize, needed for building eventinfos. //$NON-NLS-1$
-		tooManyExceptionClass = (JavaClass) JavaRefFactory.eINSTANCE.reflectType("java.util.TooManyListenersException", getJavaClass()); // Initialize, needed for building eventinfos. //$NON-NLS-1$
-		Iterator itr = getJavaClass().getPublicMethods().iterator();
-		while (itr.hasNext()) {
-			Method mthd = (Method) itr.next();
-			if (mthd.isStatic() || mthd.isConstructor())
-				continue; // Statics/constructors don't participate in events.
-			String key = validEventAdder(mthd);
-			if (key != null) {
-				EventInfo eventInfo = (EventInfo) events.get(key);
-				if (eventInfo == null) {
-					eventInfo = new EventInfo();
-					eventInfo.setAdder(mthd);
-					events.put(key, eventInfo);
-				} else
-					eventInfo.setAdder(mthd);
-			} else {
-				key = validEventRemove(mthd);
-				if (key != null) {
-					EventInfo eventInfo = (EventInfo) events.get(key);
-					if (eventInfo == null) {
-						eventInfo = new EventInfo();
-						eventInfo.setRemover(mthd);
-						events.put(key, eventInfo);
-					} else
-						eventInfo.setRemover(mthd);
-				}
-			}
-		}
-
-		eventListenerClass = null; // No longer need it.
-
-		// Now actually create the events.
-		HashSet eventNames = new HashSet(events.size()); // Set of found event names, to prevent duplicates
-		Iterator evtItr = events.entrySet().iterator();
-		while (evtItr.hasNext()) {
-			Map.Entry eventMap = (Map.Entry) evtItr.next();
-			EventInfo ei = (EventInfo) eventMap.getValue();
-			if (ei.isValidInfo()) {
-				String eventName = getEventName((String) eventMap.getKey());
-				if (eventNames.contains(eventName))
-					continue;	// Aleady created it. (Note: Introspector actually takes last one over previous dups, but the order is totally undefined, so choosing first is just as good or bad.
-
-				if (supers.contains(eventName))
-					continue; // Don't override a super event.
-
-				if (ei.createEvent(eventName))
-					eventNames.add(eventName); // It was validly created.
-			}
-		}
-
-		tooManyExceptionClass = null; // No longer need it.
-	}
-
-	/**
-	 * merge all the Events (i.e. supertypes)
-	 */
-	protected EList allEvents() {
-
-		EList jcAllEvents = getJavaClass().getAllEventsGen();
-		BeaninfoSuperAdapter superAdapter =
-			(BeaninfoSuperAdapter) EcoreUtil.getRegisteredAdapter(getJavaClass(), BeaninfoSuperAdapter.class);
-		if (jcAllEvents != null) {
-			// See if new one required.
-			if (superAdapter == null || !superAdapter.isAllEventsCollectionModified())
-				return jcAllEvents;
-			// Can't get superadapter, so must not be attached to a resource, so return current list. Or no change required.       		
-		}
-
-		UniqueEList.FastCompare allEvents = new UniqueEList.FastCompare() {
-			/**
-			 * Comment for <code>serialVersionUID</code>
-			 * 
-			 * @since 1.1.0
-			 */
-			private static final long serialVersionUID = 1L;
-
-			protected Object[] newData(int capacity) {
-				return new JavaEvent[capacity];
-			}
-		};
-		
-		boolean doAllEvents = false;
-		synchronized(this) {
-			// If we are introspecting, don't do all properties because it is an invalid list. Just return empty without reseting the all modified flag.
-			doAllEvents = !isDoingAllEvents && !isIntrospecting && isResourceConnected();
-			if (doAllEvents)
-				isDoingAllEvents = true;
-		}
-
-		if (doAllEvents) {
-			try {
-				EList localEvents = getJavaClass().getEvents();
-				// Kludge: BeanInfo spec doesn't address Interfaces, but some people want to use them.
-				// Interfaces can have multiple extends, while the Introspector ignores these for reflection,
-				// the truth is most people want these. So we will add them in. But since there could be more than one it
-				// gets confusing. We need to look for dups from the super types and still keep order.
-				//
-				// Supertypes will never be more than one entry for classes, it is possible to be 0, 1, 2 or more for interfaces.
-				List superTypes = getJavaClass().getESuperTypes();
-				if (!superTypes.isEmpty()) {
-					// Now we need to merge in the supers.
-					BeanDecorator bd = Utilities.getBeanDecorator(getJavaClass());
-					// If there is only one supertype, we can add to the actual events, else we will use the linked hashset so that
-					// we don't add possible duplicates (e.g. IA extends IB,IC and IB extends IC. In this case there would be dups
-					// because IB would contribute IC's too).
-					Collection workingAllEvents = superTypes.size() == 1 ? (Collection) allEvents : new LinkedHashSet(); 
-					// We will now merge as directed.
-					boolean mergeAll = bd == null || bd.isMergeSuperEvents();
-					if (!mergeAll) {
-						// we don't to want to merge super events, but we still need super non-events or explicit ones.
-						int lenST = superTypes.size();
-						for (int i=0; i<lenST; i++) {
-							List supers = ((JavaClass) superTypes.get(i)).getAllEvents();
-							int len = supers.size();
-							for (int i1 = 0; i1 < len; i1++) {
-								JavaEvent e = (JavaEvent) supers.get(i1);
-								EventSetDecorator ed = Utilities.getEventSetDecorator(e);
-								if (ed == null || (ed.getImplicitDecoratorFlag() == ImplicitItem.NOT_IMPLICIT_LITERAL && !ed.isMergeIntrospection()))
-									workingAllEvents.add(e);
-							}
-						}
-					} else {
-						// We want to merge all.					
-						// BeanInfo has given us the not merge list. If the list is empty, then we accept all.
-						if (bd != null && bd.eIsSet(BeaninfoPackage.eINSTANCE.getBeanDecorator_NotInheritedEventNames())) {
-							// We were given a list of names.
-							// Get the names into a set to create a quick lookup.
-							HashSet superSet = new HashSet(bd.getNotInheritedEventNames());
-							
-							// Now walk and add in non-bean events (and bean events that were explicitly added and not mergeable (i.e. didn't come thru beaninfo)) 
-							// and add those not specifically called out by BeanInfo.
-							int lenST = superTypes.size();
-							for (int i=0; i<lenST; i++) {
-								List supers = ((JavaClass) superTypes.get(i)).getAllEvents();
-								int len = supers.size();
-								for (int i1 = 0; i1 < len; i1++) {
-									JavaEvent e = (JavaEvent) supers.get(i1);
-									EventSetDecorator ed = Utilities.getEventSetDecorator(e);
-									if (ed == null || (ed.getImplicitDecoratorFlag() == ImplicitItem.NOT_IMPLICIT_LITERAL && !ed.isMergeIntrospection()) || !superSet.contains(ed.getName()))
-										workingAllEvents.add(e);
-								}
-							}
-						} else {
-							// BeanInfo called out that all super events should be added, or no beaninfo.
-							int lenST = superTypes.size();
-							for (int i=0; i<lenST; i++) {
-								workingAllEvents.addAll(((JavaClass) superTypes.get(i)).getAllEvents());
-							}
-						}
-					}
-					if (workingAllEvents != allEvents)
-						allEvents.addAll(workingAllEvents);	// Now copy over the ordered super events.
-				}
-				allEvents.addAll(localEvents);				
-				superAdapter.setAllEventsCollectionModified(false); // Now built, so reset to not changed.
-			} finally {
-				synchronized (this) {
-					isDoingAllEvents = false;
-				}
-			}
-		}
-
-		if (allEvents.isEmpty())
-			return ECollections.EMPTY_ELIST;
-		else {
-			allEvents.shrink();
-			return new EcoreEList.UnmodifiableEList.FastCompare(
-				getJavaClass(),
-				JavaRefPackage.eINSTANCE.getJavaClass_AllEvents(),
-				allEvents.size(),
-				allEvents.data());
-		}
-
-	}
-
-	private JavaClass eventListenerClass, // Event Listener class. Needed for validation.
-	tooManyExceptionClass; // Too many listeners exception.
-
-	/*
-	 * Pass in the key, it will be used to form the name.
-	 */
-	protected String getEventName(String key) {
-		return key.substring(0, key.indexOf(':'));
-	}
-
-	/*	
-	 * Answers event key if valid, null if not valid.
-	 */
-	protected String validEventAdder(Method method) {
-		String name = method.getName();
-		if (!name.startsWith("add") || !name.endsWith("Listener")) //$NON-NLS-1$ //$NON-NLS-2$
-			return null; // Not valid format for an add listener name.
-
-		List parms = method.getParameters();
-		if (parms.size() != 1)
-			return null; // Invalid - improper number of parms.
-
-		EClassifier returnType = method.getReturnType();
-		if (returnType == null || !returnType.getName().equals("void")) //$NON-NLS-1$
-			return null; // Invalid - must be void return type.
-
-		EClassifier parmType = ((JavaParameter) parms.get(0)).getEType();
-		if (!BeaninfoClassAdapter.this.eventListenerClass.isAssignableFrom(parmType))
-			return null; // Parm must be inherit from EventListener
-
-		// This is a unique containing event name and listener type
-		// This is so we can have a unique key for two events with the same
-		// name but different listener type. (This matches Introspector so that we aren't
-		// coming up with different results.
-		return java.beans.Introspector.decapitalize(name.substring(3, name.length() - 8))
-			+ ':'
-			+ ((JavaHelpers) parmType).getQualifiedName();
-	}
-
-	/*
-	 * Answers event key if valid, null if not valid.
-	 */
-	protected String validEventRemove(Method method) {
-		String name = method.getName();
-		if (!name.startsWith("remove") || !name.endsWith("Listener")) //$NON-NLS-1$ //$NON-NLS-2$
-			return null; // Not valid format for a remove listener name.
-
-		List parms = method.getParameters();
-		if (parms.size() != 1)
-			return null; // Invalid - improper number of parms.
-
-		EClassifier returnType = method.getReturnType();
-		if (returnType == null || !returnType.getName().equals("void")) //$NON-NLS-1$
-			return null; // Invalid - must be void return type.
-
-		EClassifier parmType = ((JavaParameter) parms.get(0)).getEType();
-		if (!BeaninfoClassAdapter.this.eventListenerClass.isAssignableFrom(parmType))
-			return null; // Parm must be inherit from EventListener
-
-		// This is a unique containing event name and listener type
-		// This is so we can have a unique key for two events with the same
-		// name but different listener type. (This matches Introspector so that we aren't
-		// coming up with different results).
-		return java.beans.Introspector.decapitalize(name.substring(6, name.length() - 8))
-			+ ':'
-			+ ((JavaHelpers) parmType).getQualifiedName();
-	}
-
-	public boolean isDefaultBound() {
-		if (defaultBound == null) {
-			// Haven't yet decided on it.
-			Iterator methods = getJavaClass().getPublicMethods().iterator();
-			boolean foundAdd = false, foundRemove = false;
-			while (methods.hasNext() && (!foundAdd || !foundRemove)) {
-				Method method = (Method) methods.next();
-				if ("addPropertyChangeListener".equals(method.getName())) { //$NON-NLS-1$
-					List parms = method.getParameters();
-					if (parms.size() == 1) {
-						JavaParameter parm = (JavaParameter) parms.get(0);
-						if ("java.beans.PropertyChangeListener".equals(((JavaHelpers) parm.getEType()).getQualifiedName())) { //$NON-NLS-1$
-							foundAdd = true;
-							continue;
-						}
-					}
-				} else if ("removePropertyChangeListener".equals(method.getName())) { //$NON-NLS-1$
-					List parms = method.getParameters();
-					if (parms.size() == 1) {
-						JavaParameter parm = (JavaParameter) parms.get(0);
-						if ("java.beans.PropertyChangeListener".equals(((JavaHelpers) parm.getEType()).getQualifiedName())) { //$NON-NLS-1$
-							foundRemove = true;
-							continue;
-						}
-					}
-				}
-			}
-
-			defaultBound = (foundAdd && foundRemove) ? Boolean.TRUE : Boolean.FALSE;
-		}
-		return defaultBound.booleanValue();
-	}
-
-	private class EventInfo {
-		
-		public Method addListenerMethod;
-		public Method removeListenerMethod;
-
-		public void setAdder(Method addMethod) {
-			addListenerMethod = addMethod;
-		}
-
-		public void setRemover(Method removeMethod) {
-			removeListenerMethod = removeMethod;
-		}
-
-		// Answer whether this is a valid event info.
-		public boolean isValidInfo() {
-			return (addListenerMethod != null && removeListenerMethod != null);
-		}
-
-		public boolean createEvent(String name) {
-			EventSetDecorator ed = BeaninfoClassAdapter.this.createEvent(name);
-			if (ed == null)
-				return false; // Reflection not wanted.
-
-
-			// See if unicast.
-			boolean unicast = false;
-			List exceptions = addListenerMethod.getJavaExceptions();
-			int len = exceptions.size();
-			for(int i=0; i<len; i++) {
-				if (exceptions.get(i) == BeaninfoClassAdapter.this.tooManyExceptionClass) {
-					unicast = true;
-					break;
-				}
-			}
-			// We'll let listener methods get retrieved dynamically when needed.
-			BeanInfoDecoratorUtility.setProperties(ed, addListenerMethod, removeListenerMethod, unicast, (JavaClass) ((JavaParameter) addListenerMethod.getParameters().get(0)).getEType());
-			return true;
-		}
-
-	}
-
-	/**
-	 * Mark this factory as the stale factory.
-	 */
-	public void markStaleFactory(ProxyFactoryRegistry stale) {
-		if (staleFactory == null) {
-			// It's not stale so make it stale.
-			// So that next access will re-introspect
-			defaultBound = null; // So query on next request.
-			staleFactory = new WeakReference(stale);
-
-			// Need to mark the esuperadapter that things have changed so that any 
-			// subtype will know to reuse the parent for anything that requires knowing parent info.
-			Adapter a = EcoreUtil.getExistingAdapter(getTarget(), ESuperAdapter.class);
-			// Simulate that this objects super has changed. This will make all subclasses
-			// think about the super has changed and next retrieving anything that involves the
-			// super will cause a rebuild to occur.
-			Notification note =
-				new ENotificationImpl((InternalEObject) getTarget(), Notification.SET, EcorePackage.ECLASS__ESUPER_TYPES, null, null);
-			if (a != null)
-				a.notifyChanged(note);
-			// Do the same with BeaninfoSuperAdapter so that events also will be rebuilt.
-			a = EcoreUtil.getExistingAdapter(getTarget(), BeaninfoSuperAdapter.ADAPTER_KEY);
-			if (a != null)
-				a.notifyChanged(note);
-			synchronized (this) {
-				needsIntrospection = true;
-			}
-		}
-	}
-
-	/**
-	 * Form a longname for the addkey function.
-	 */
-	private String formLongName(EOperation feature) {
-		Method mthd = null;
-		if (feature instanceof Method)
-			mthd = (Method) feature;
-		else if (feature instanceof MethodProxy)
-			mthd = ((MethodProxy) feature).getMethod();
-		else
-			return null; // Don't know what it is.
-
-		StringBuffer longName = new StringBuffer(100);
-		longName.append(feature.getName()); // Feature Name
-		longName.append(':');
-		longName.append(mthd.getName()); // Method Name
-		longName.append('(');
-		List p = mthd.getParameters();
-		for (int i = 0; i < p.size(); i++) {
-			JavaParameter parm = (JavaParameter) p.get(i);
-			if (i>0)
-				longName.append(',');
-			longName.append(parm.getJavaType().getQualifiedName());
-		}
-
-		return longName.toString();
-	}
-	
-	/*
-	 * More than one operation can have the same name. To identify them uniquely, the long name is created,
-	 * which is formed from the name and the method signature.
-	 */
-	private String formLongName(MethodRecord record) {
-		StringBuffer longName = new StringBuffer(100);
-		longName.append(record.name); // Feature Name
-		longName.append(':');
-		longName.append(record.methodForDescriptor.methodName); // Method Name
-		longName.append('(');
-		String[] p = record.methodForDescriptor.parameterTypeNames;
-		if (p != null)
-			for (int i = 0; i < p.length; i++) {
-				if (i>0)
-					longName.append(',');
-				longName.append(MapJNITypes.getFormalTypeName(p[i]));
-			}
-
-		return longName.toString();
-	}
-	/**
-	 * @see org.eclipse.emf.common.notify.Adapter#notifyChanged(Notification)
-	 */
-	public void notifyChanged(Notification msg) {
-		// In case of removing adapter, make sure we are first removed from the factory so it doesn't know about us anymore.
-		if (msg.getEventType() == Notification.REMOVING_ADAPTER)
-			getAdapterFactory().removeAdapter(this);
-	}
-
-	/**
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return super.toString() + '(' + (getJavaClass() != null ? getJavaClass().getQualifiedName() : "?") + ')'; //$NON-NLS-1$
-	}
-
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoJavaReflectionKeyExtension.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoJavaReflectionKeyExtension.java
deleted file mode 100644
index 444fad2..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoJavaReflectionKeyExtension.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jem.internal.beaninfo.adapters;
-/*
- *  $RCSfile: BeaninfoJavaReflectionKeyExtension.java,v $
- *  $Revision: 1.5 $  $Date: 2005/02/15 22:44:20 $ 
- */
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.xmi.XMIResource;
-
-import org.eclipse.jem.java.JavaClass;
-import org.eclipse.jem.internal.java.adapters.IJavaReflectionKeyExtension;
-import org.eclipse.jem.internal.java.adapters.JavaReflectionKey;
-
-/**
- * Java Reflection Key extension to retrieve keys for beaninfo creations.
- * 
- * Handles attributes and behaviors.
- * 
- * @version 	1.0
- * @author R. L. Kulp  
- */
-public class BeaninfoJavaReflectionKeyExtension implements IJavaReflectionKeyExtension {
-	
-	// The format of the keys are:
-	// behaviors:  "classname/behavior/behaviorname"
-	// structural features: "classname/featurename"
-	public static final String 
-		BEHAVIOR = "/operation/",	// Piece in key that indicates this is a behavior. //$NON-NLS-1$
-		EVENT = "/event/",		// Piece in key that indicates this is an event. //$NON-NLS-1$
-		FEATURE = "/";			// Piece in key that indicates this is an attribute. //$NON-NLS-1$
-	
-	/**
-	 * Get the object for this key.
-	 */
-	public Object getObject(String key, JavaReflectionKey reflectionKey) {
-		if (key != null) {
-			int ibehave = key.indexOf(BEHAVIOR);
-			if (ibehave > -1) {
-				// We have a possible behavior.
-				String classname = key.substring(0, ibehave);
-				int ibehaveName = ibehave+BEHAVIOR.length();
-				if (ibehaveName < key.length()) {
-					JavaClass javaclass = getJavaClass(reflectionKey, classname);
-					if (javaclass != null) {
-						javaclass.getEOperations();	// Get the list introspected and populated if not already.
-						return reflectionKey.primGet(key);	// It should now be there, 
-					}
-				}
-			} else {
-				int ievent = key.indexOf(EVENT);
-				if (ievent > -1) {
-					// We have a possible event.
-					String classname = key.substring(0, ievent);
-					int ieventName = ievent+EVENT.length();
-					if (ieventName < key.length()) {
-						JavaClass javaclass = getJavaClass(reflectionKey, classname);
-						if (javaclass != null) {
-							javaclass.getEvents();	// Get the list introspected and populated if not already.
-							return reflectionKey.primGet(key);	// It should now be there, 
-						}
-					}
-				} else {
-					int ifeature = key.indexOf(FEATURE);
-					if (ifeature > -1) {
-						// We have a possible feature.
-						String classname = key.substring(0, ifeature);
-						int ifeatureName = ifeature+FEATURE.length();
-						if (ifeatureName < key.length()) {
-							String feature = key.substring(ifeatureName);
-							JavaClass javaclass = getJavaClass(reflectionKey, classname);
-							if (javaclass != null) {
-								// This is just a hack until we can get ID situation straightened out.
-								// Need to cause introspection of the attributes and references.
-								javaclass.getEStructuralFeatures();
-								Object result = reflectionKey.primGet(key);	// See if it now got added as an id.
-								if (result == null) {
-									// Well, it could of been added by the diff merge, which as of now can't handle ids.
-									// So we will find it within the attributes/references.
-									result = findFeature(feature, javaclass.getEReferences());
-									if (result == null)
-										result = findFeature(feature, javaclass.getEAttributes());									
-									if (result instanceof EStructuralFeature) {
-										// Need to add it as an id so next time won't come through here.
-										((XMIResource) javaclass.eResource()).setID((EObject) result, key);	// So next time it will find it directly.
-									}
-								}
-								return result;
-							}
-						}
-					}
-				}
-			}
-		}
-						
-		return null;
-	}
-
-	private EStructuralFeature findFeature(String featureName, List featureList) {
-		Iterator itr = featureList.iterator();		
-		while (itr.hasNext()) {
-			EStructuralFeature feature = (EStructuralFeature) itr.next();
-			if (featureName.equals(feature.getName())) {
-				return feature;
-			}
-		}
-		return null;
-	}
-
-	protected JavaClass getJavaClass(JavaReflectionKey reflectionKey, String classname) {
-		Object eclass = reflectionKey.primGet(classname);
-		if (eclass == null) 
-			eclass = reflectionKey.getJavaType(classname);	// Let it create it.
-		if (eclass instanceof JavaClass)
-			return (JavaClass) eclass;
-		else
-			return null;
-	}
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoModelSynchronizer.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoModelSynchronizer.java
deleted file mode 100644
index 7bcc977..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoModelSynchronizer.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jem.internal.beaninfo.adapters;
-/*
- *  $RCSfile: BeaninfoModelSynchronizer.java,v $
- *  $Revision: 1.7 $  $Date: 2005/02/15 22:44:20 $ 
- */
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.*;
-
-import org.eclipse.jem.internal.adapters.jdom.JavaModelListener;
-/**
- * This class listens for changes to the java model and flushs the
- * appropriate class introspection.
- */
-
-public class BeaninfoModelSynchronizer extends JavaModelListener {
-	protected BeaninfoAdapterFactory fAdapterFactory;
-	protected IJavaProject fProject; // The project this listener is opened on.
-	private static final IPath BEANINFOCONFIG_PATH = new Path(BeaninfoNature.P_BEANINFO_SEARCH_PATH);	//$NON-NLS-1$	
-
-	public BeaninfoModelSynchronizer(BeaninfoAdapterFactory aFactory, IJavaProject aProject) {
-		super(ElementChangedEvent.POST_CHANGE);
-		fAdapterFactory = aFactory;
-		fProject = aProject;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jem.internal.adapters.jdom.JavaModelListener#getJavaProject()
-	 */
-	protected IJavaProject getJavaProject() {
-		return fProject;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jem.internal.adapters.jdom.JavaModelListener#isAlsoClasspathChange(org.eclipse.core.runtime.IPath)
-	 */
-	protected boolean isAlsoClasspathChange(IPath path) {
-		return path.equals(BEANINFOCONFIG_PATH);
-	}
-	
-	/**
-	 * Stop the synchronizer from listening to any more changes.
-	 */
-	public void stopSynchronizer(boolean clearResults) {
-		JavaCore.removeElementChangedListener(this);
-		getAdapterFactory().closeAll(clearResults);
-	}
-
-	public BeaninfoAdapterFactory getAdapterFactory() {
-		return fAdapterFactory;
-	}
-
-	protected void processJavaElementChanged(IJavaProject element, IJavaElementDelta delta) {
-		if (isInClasspath(element)) {
-			if (delta.getKind() == IJavaElementDelta.REMOVED || delta.getKind() == IJavaElementDelta.ADDED) {
-				// Don't need to do anything for delete/close/add/open of main project because there is much more that needs to
-				// be done by BeaninfoNature on project close/delete, so nature listens for this and does the appropriate cleanup.			
-				if (!element.equals(fProject)) {
-					// However, all other projects are required projects and if they are deleted/closed/added/opened when need to do
-					// a full flush because we don't know any of the state, whether they are still there or not.
-					getAdapterFactory().markAllStale();
-				}
-				return;
-			} else if (isClasspathResourceChange(delta)) {
-				getAdapterFactory().markAllStale(); // The .classpath file (or .beaninfoconfig) itself in SOME DEPENDENT PROJECT has changed. 
-				return;
-			}
-			processChildren(element, delta);
-		}
-	}
-
-	/**
-	 * Handle the change for a single element, children will be handled separately.
-	 * If a working copy, then ignore it because we don't care about changes until
-	 * they are committed. Else, if the CU has changed content then mark all of the
-	 * types in this CU (such as inner classes) as stale.
-	 * If it is not a content change then process the children.
-	 */
-	protected void processJavaElementChanged(ICompilationUnit element, IJavaElementDelta delta) {
-		switch (delta.getKind()) {
-			case IJavaElementDelta.CHANGED :
-				// A file save had occurred. It doesn't matter if currently working copy or not.
-				// It means something has changed to the file on disk, but don't know what.
-				if ((delta.getFlags() & IJavaElementDelta.F_PRIMARY_RESOURCE) != 0) {
-					getAdapterFactory().markStaleIntrospectionPlusInner(getFullNameFromElement(element), false);	// Flush everything, including inner classes.
-				}						
-				
-				break;
-			case IJavaElementDelta.ADDED:
-			case IJavaElementDelta.REMOVED:
-				// Need to know for add because we optimize the beaninfo such that once found as undefined, it won't
-				// introspect again until we mark it stale. So we need to mark it stale to refresh it.
-				
-				// It doesn't matter if totally removed or just moved somewhere else, we will clear out
-				// adapter because there could be a rename which would be a different class.
-				// Currently the element is already deleted or added and there is no way to find the types in the unit to flush.
-				// So instead we ask factory to flush all it any that start with it plus for inner classes.				
-				getAdapterFactory().markStaleIntrospectionPlusInner(getFullNameFromElement(element), true);	// Flush everything, including inner classes.
-				break;
-		}
-	}
-
-	/**
-	 * Handle the change for a single element, children will be handled separately.
-		 */
-	protected void processJavaElementChanged(IClassFile element, IJavaElementDelta delta) {
-		if (delta.getKind() == IJavaElementDelta.REMOVED) {
-			// It doesn't matter if totally removed or just moved somewhere else, we will clear out and remove the
-			// adapter because there could be a rename which would be a different class.
-			// Currently the element is already deleted and there is no way to find the types in the unit to remove.
-			// So instead we ask factory to remove all it any that start with it plus for inner classes.
-			getAdapterFactory().markStaleIntrospectionPlusInner(getFullNameFromElement(element), true);
-			return; // Since the classfile was removed we don't need to process the children (actually the children list will be empty
-		}
-		IJavaElementDelta[] children = delta.getAffectedChildren();
-		for (int ii = 0; ii < children.length; ii++) {
-			processDelta(children[ii]);
-		}
-	}
-
-	protected String getFullNameFromElement(IJavaElement element) {
-		String name = element.getElementName();		
-		if (!(element instanceof ICompilationUnit || element instanceof IClassFile))
-			return name;	// Shouldn't be here
-		
-		// remove extension.
-		int periodNdx = name.lastIndexOf('.');
-		if (periodNdx == -1)
-			return name;	// Shouldn't be here. There should be an extension
-					
-		String typeName = null;
-		String parentName = element.getParent().getElementName();
-		if (parentName == null || parentName.length() == 0)
-			typeName = name.substring(0, periodNdx); // In default package
-		else
-			typeName = parentName + "." + name.substring(0, periodNdx); //$NON-NLS-1$
-								
-		return typeName;
-	}
-
-	/**
-	 * Handle the change for a single element, children will be handled separately.
-	 * If the classpath has changed, mark all as stale because we don't know what
-	 * has changed. Things that were in the path may no longer be in the path, or
-	 * the order was changed, which could affect the introspection.
-	 */
-	protected void processJavaElementChanged(IPackageFragmentRoot element, IJavaElementDelta delta) {
-		if (isClassPathChange(delta))
-			fAdapterFactory.markAllStale();
-		else
-			super.processJavaElementChanged(element, delta);
-	}
-	
-	protected void processJavaElementChanged(IPackageFragment element, IJavaElementDelta delta) {
-		switch (delta.getKind()) {
-			case IJavaElementDelta.ADDED:
-				break;	// Don't need to do anything on a new package. If this was from a new fragroot, we would recycle already. Otherwise, it will find this package on the first use.
-			case IJavaElementDelta.REMOVED:
-				if (delta.getAffectedChildren().length == 0)
-					fAdapterFactory.markAllStale();
-				break;
-			default :
-				super.processJavaElementChanged(element, delta);
-		}
-	}
-	
-
-	/**
-	 * Handle the change for a single element, children will be handled separately.
-	 * Something about the type has changed. If it was removed (not a move), then close the
-	 * adapter too.
-	 */
-	protected void processJavaElementChanged(IType element, IJavaElementDelta delta) {
-		if (delta.getKind() == IJavaElementDelta.REMOVED) {
-			// Close it out. Doesn't matter if moved_to, that would be a rename which requires brand new class.
-			// We can't actually get rid of the beaninfo adapter because it may be asked for again
-			// just to see if not defined. It may also come back later and we want to know about
-			// it to recycle the vm.
-			getAdapterFactory().markStaleIntrospection(element.getFullyQualifiedName(), true);	
-		} else
-			getAdapterFactory().markStaleIntrospection(element.getFullyQualifiedName(), false); // Just mark it stale
-		processChildren(element, delta);
-	}
-
-	public String toString() {
-		return super.toString()+" "+fProject.getElementName(); //$NON-NLS-1$
-	}
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoNature.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoNature.java
deleted file mode 100644
index 6f66127..0000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoNature.java
+++ /dev/null
@@ -1,977 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jem.internal.beaninfo.adapters;
-/*
- *  $RCSfile: BeaninfoNature.java,v $
- *  $Revision: 1.34 $  $Date: 2005/07/20 22:57:42 $ 
- */
-
-import java.io.*;
-import java.text.MessageFormat;
-import java.util.*;
-import java.util.logging.Level;
-
-import javax.xml.parsers.*;
-import javax.xml.transform.*;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
-import org.eclipse.jdt.core.*;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.xml.sax.InputSource;
-
-import org.eclipse.jem.internal.beaninfo.core.*;
-import org.eclipse.jem.internal.java.adapters.JavaXMIFactoryImpl;
-import org.eclipse.jem.internal.java.beaninfo.IIntrospectionAdapter;
-import org.eclipse.jem.internal.java.init.JavaInit;
-import org.eclipse.jem.internal.plugin.JavaEMFNature;
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.util.emf.workbench.ResourceHandler;
-
-
-/**
- * The beaninfo nature. It is created for a project and holds the
- * necessary info for beaninfo to be performed on a project.
- */
-
-public class BeaninfoNature implements IProjectNature {
-
-	public static final String NATURE_ID = BeaninfoPlugin.PI_BEANINFO_PLUGINID + ".BeanInfoNature"; //$NON-NLS-1$
-	public static final String P_BEANINFO_SEARCH_PATH = ".beaninfoConfig"; //$NON-NLS-1$
-	
-	public static final QualifiedName CONFIG_INFO_SESSION_KEY = new QualifiedName(BeaninfoPlugin.PI_BEANINFO_PLUGINID, "CONFIG_INFO"); //$NON-NLS-1$
-	public static final QualifiedName BEANINFO_CONTRIBUTORS_SESSION_KEY = new QualifiedName(BeaninfoPlugin.PI_BEANINFO_PLUGINID, "BEANINFO_CONTRIBUTORS"); //$NON-NLS-1$
-
-	private ProxyFactoryRegistry.IRegistryListener registryListener = new ProxyFactoryRegistry.IRegistryListener() {
-		/**
-		 * @see org.eclipse.jem.internal.proxy.core.ProxyFactoryRegistry.IRegistryListener#registryTerminated(ProxyFactoryRegistry)
-		 */
-		public void registryTerminated(ProxyFactoryRegistry registry) {
-			markAllStale();
-		};
-	};
-
-	/**
-	 * Get the runtime nature for the project, create it if necessary.
-	 */
-	public static BeaninfoNature getRuntime(IProject project) throws CoreException {
-		JavaEMFNature.createRuntime(project);	// Must force JAVAEMFNature creation first before we try to get ours. There is a chicken/egg problem if we let our nature try to get JavaEMFNature during setProject.
-		if (project.hasNature(NATURE_ID))
-			return (BeaninfoNature) project.getNature(NATURE_ID);
-		else
-			return createRuntime(project);
-	}
-	
-	/**
-	 * Return whether this project has a BeanInfo runtime turned on.
-	 * 
-	 * @param project
-	 * @return <code>true</code> if it has the a BeanInfo runtime.
-	 * @throws CoreException
-	 * 
-	 * @since 1.0.0
-	 */
-	public static boolean hasRuntime(IProject project) throws CoreException {
-		return project.hasNature(NATURE_ID);
-	}
-
-	/**
-	 * Test if this is a valid project for a Beaninfo Nature. It must be
-	 * a JavaProject.
-	 */
-	public static boolean isValidProject(IProject project) {
-		try {
-			return project.hasNature(JavaCore.NATURE_ID);
-		} catch (CoreException e) {
-			return false;
-		}
-	}
-
-	/**
-	 * Create the runtime.
-	 */
-	private static BeaninfoNature createRuntime(IProject project) throws CoreException {
-		if (!isValidProject(project))
-			throw new CoreException(
-				new Status(
-					IStatus.ERROR,
-					BeaninfoPlugin.PI_BEANINFO_PLUGINID,
-					0,
-					MessageFormat.format(
-						BeanInfoAdapterMessages.INTROSPECT_FAILED_EXC_, 
-						new Object[] { project.getName(), BeanInfoAdapterMessages.BeaninfoNature_InvalidProject}), 
-					null));
-
-		addNatureToProject(project, NATURE_ID);
-		return (BeaninfoNature) project.getNature(NATURE_ID);
-	}
-
-	private static void addNatureToProject(IProject proj, String natureId) throws CoreException {
-		IProjectDescription description = proj.getDescription();
-		String[] prevNatures = description.getNatureIds();
-		String[] newNatures = new String[prevNatures.length + 1];
-		System.arraycopy(prevNatures, 0, newNatures, 0, prevNatures.length);
-		newNatures[prevNatures.length] = natureId;
-		description.setNatureIds(newNatures);
-		proj.setDescription(description, null);
-	}
-
-	private IProject fProject;
-	protected ProxyFactoryRegistry fRegistry;
-	protected ResourceSet javaRSet;
-	protected BeaninfoModelSynchronizer fSynchronizer;
-	protected static BeaninfoJavaReflectionKeyExtension fReflectionKeyExtension;
-
-	/** 
-	 * Configures the project with this nature.
-	 * This is called by <code>IProject.getNature</code> and should not
-	 * be called directly by clients.
-	 * The nature extension id is added to the list of natures on the project by
-	 * <code>IProject.getNature</code>, and need not be added here.
-	 *
-	 * @exception CoreException if this method fails.
-	 */
-	public void configure() throws CoreException {
-	}
-
-	/** 
-	 * Removes this nature from the project, performing any required deconfiguration.
-	 * This is called by <code>IProject.removeNature</code> and should not
-	 * be called directly by clients.
-	 * The nature id is removed from the list of natures on the project by
-	 * <code>IProject.removeNature</code>, and need not be removed here.
-	 *
-	 * @exception CoreException if this method fails. 
-	 */
-	public void deconfigure() throws CoreException {
-		removeSharedProperty(P_BEANINFO_SEARCH_PATH, null);
-		cleanup(true, true);
-	}
-	
-	/**
-	 * Shutdown the nature. Called by BeanInfoPlugin to tell the nature that the plugin is being shutdown.
-	 * It needs to cleanup.
-	 * TODO <package-protected> because only BeanInfoPlugin should call it. (public for now but when we make
-	 * BeanInfoNature an API it will be moved into the same package as BeanInfoPlugin).
-	 * 
-	 * @since 1.0.0
-	 */
-	public void shutdown() {
-		cleanup(true, false);
-	}
-
-
-	/**
-	 * Return a new ResourceSet that is linked correctly to this Beaninfo Nature.
-	 * <p>
-	 * This links up a ResourceSet so that it will work correctly with this nature.
-	 * It makes sure that going through the ResourceSet that any "java:/..."
-	 * classes can be found and it makes sure that any new classes are placed into the
-	 * nature's resource set and not resource set doing the calling.
-	 * <p>
-	 * This should be used any time a resource set is needed that is not the
-	 * project wide resource set associated with beaninfos, but will reference
-	 * Java Model classes or instantiate.
-	 * <p>
-	 * An additional change is made too. The ResourceFactoryRegistry's extensionToResourceFactory map is modified
-	 * to have an "java"->XMIResourceFactory entry added to it if EMF Examples is loaded. EMF Examples add
-	 * the "java" extension and sets it to their own special JavaResourceFactory. 
-	 * If EMF Examples is not loaded, then it falls back to the default "*" mapping, which is to XMIResourceFactory.
-	 * This normally causes problems for many
-	 * customers. If users of this resource set really want the EMF examples entry instead, after they retrieve the
-	 * new resource set they can do this:
-	 * <p>
-	 * <pre><code>
-	 * 	rset = beaninfoNature.newResourceSet();
-	 * 	rset.getResourceFactoryRegistry().getExtensionToFactoryMap().remove("java");
-	 * </code></pre>
-	 * 
-	 * @return a ResourceSet that is specially connected to the JEM java model.
-	 * 
-	 * @since 1.0.0
-	 */
-	public ResourceSet newResourceSet() {
-		SpecialResourceSet rset = new SpecialResourceSet();
-		rset.add(new ResourceHandler() {
-			public EObject getEObjectFailed(ResourceSet originatingResourceSet, URI uri, boolean loadOnDemand) {
-				return null; // We don't have any special things we can do in this case.
-			}
-
-			public Resource getResource(ResourceSet originatingResourceSet, URI uri) {
-				// Always try to get it out of the nature's resource set because it may of been loaded there either as 
-				// the "java:..." type or it could of been an override extra file (such as an override EMF package, for
-				// example jcf has a side package containing the definition of the new attribute type. That file
-				// will also be loaded into this resourceset. So to find it we need to go in here and try.
-				//
-				// However, if not found we won't go and try to load the resource. That could load in the wrong place.
-				// Kludge: Because of a bug (feature :-)) in XMLHandler.getPackageFromURI(), it doesn't use getResource(...,true) and it tries instead
-				// to use uri inputstream to load the package when not found. This bypasses our special create resource and so
-				// packages are not automatically created. So we need to do load on demand here instead if it is a java protocol.
-				// EMF will not be fixing this. It is working as designed.
-				return getResourceSet().getResource(uri, JavaXMIFactoryImpl.SCHEME.equals(uri.scheme()));
-			}
-
-			public Resource createResource(ResourceSet originatingResourceSet, URI uri) {
-				// This is the one. It has got here because it couldn't find a resource already loaded.
-				// If it is a "java:/..." protocol resource, then we want to make sure it is loaded at the BeaninfoNature context
-				// instead of the lower one.
-				if (JavaXMIFactoryImpl.SCHEME.equals(uri.scheme()))
-					return getResourceSet().getResource(uri, true);
-				else
-					return null;
-			}
-		});
-		// [71473] Restore "*.java" to be an XMIResource. If EMF Examples are loaded they overload this and load their special resource for "*.java" which we don't want.
-		// If some user really wants that, they grab the resource resource set and remove our override.
-		if (Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().containsKey("java")) { //$NON-NLS-1$
-			// Need to add an override to go to XMI instead.
-			rset.getResourceFactoryRegistry().getExtensionToFactoryMap().put("java", new XMIResourceFactoryImpl()); //$NON-NLS-1$
-		}
-		return rset;
-	}
-	/**
-	 * Clean up, this means either the project is being closed, deleted, or it means that
-	 * the nature is being removed from the project. Either way that means to
-	 * terminate the VM and remove what we added to the context if the flag says clear it.
-	 * <p>
-	 * This should be called ONLY when this instance of the nature is no longer needed. It
-	 * will be recreated for any new uses. That is because we will be removing ourselves
-	 * from the list of active natures in the BeanInfoPlugin.
-	 * <p>
-	 * <b>Note:</b> This will be called from the BeanInfoCacheController. It knows when the project is
-	 * being closed or deleted.
-	 * 
-	 * @param clearResults clear the results such that any JEM model objects have no BeanInfo
-	 * adapters attached to them. This allows BeanInfo to be GC'd without being hung onto.
-	 *  
-	 * @param deregister Deregister from the BeanInfoPlugin. Normally this will always be true, but it
-	 * will be called with false when BeanInfoPlugin is calling back to shutdown.
-	 */
-	public void cleanup(boolean clearResults, boolean deregister) {
-		if (deregister)
-			BeaninfoPlugin.getPlugin().removeBeanInfoNature(this);
-		fSynchronizer.stopSynchronizer(clearResults);
-		Init.cleanup(javaRSet, clearResults);
-		if (fRegistry != null)
-			fRegistry.terminateRegistry(true);
-
-		javaRSet = null;
-		fRegistry = null;
-		fProject = null;
-		fSynchronizer = null;
-	}
-
-	/** 
-	 * Returns the project to which this project nature applies.
-	 *
-	 * @return the project handle
-	 */
-	public IProject getProject() {
-		return fProject;
-	}
-
-	/**
-	 * Sets the project to which this nature applies.
-	 * Used when instantiating this project nature runtime.
-	 * This is called by <code>IProject.addNature</code>
-	 * and should not be called directly by clients.
-	 *
-	 * @param project the project to which this nature applies
-	 */
-	public void setProject(IProject project) {
-//		BeanInfoCacheController.INSTANCE.getClass();	// Instantiates the controller if not already started.
-		fProject = project;
-		BeaninfoPlugin.getPlugin().addBeanInfoNature(this);
-
-		try {
-			// The nature has been started for this project, need to setup the introspection process now.
-			JavaEMFNature javaNature = JavaEMFNature.createRuntime(fProject);
-			JavaInit.init();
-			if (fReflectionKeyExtension == null) {
-				// Register the reflection key extension.
-				fReflectionKeyExtension = new BeaninfoJavaReflectionKeyExtension();
-				JavaXMIFactoryImpl.INSTANCE.registerReflectionKeyExtension(fReflectionKeyExtension);
-			}
-
-			javaRSet = javaNature.getResourceSet();
-			Init.initialize(javaRSet, new IBeaninfoSupplier() {
-				public ProxyFactoryRegistry getRegistry() {
-					return BeaninfoNature.this.getRegistry();
-				}
-
-				public boolean isRegistryCreated() {
-					return BeaninfoNature.this.isRegistryCreated();
-				}
-				
-				public void closeRegistry() {
-					BeaninfoNature.this.closeRegistry();
-				}
-				
-				public IProject getProject() {
-					return BeaninfoNature.this.getProject();
-				}
-			});
-			fSynchronizer =
-				new BeaninfoModelSynchronizer(
-					(BeaninfoAdapterFactory) EcoreUtil.getAdapterFactory(javaRSet.getAdapterFactories(), IIntrospectionAdapter.ADAPTER_KEY),
-					JavaCore.create(javaNature.getProject()));
-		} catch (CoreException e) {
-e.printStackTrace();			
-			BeaninfoPlugin.getPlugin().getLogger().log(e.getStatus());
-		}
-	}
-
-	/**
-	 * Close the registry. It needs to be recycled because a class has changed
-	 * and now the new class needs to be accessed.
-	 */
-	protected void closeRegistry() {
-		ProxyFactoryRegistry reg = null;
-		synchronized (this) {
-			reg = fRegistry;
-			fRegistry = null;
-			try {
-				// Wipe out the Session properties so that they are recomputed.
-				getProject().setSessionProperty(CONFIG_INFO_SESSION_KEY, null);
-				getProject().setSessionProperty(BEANINFO_CONTRIBUTORS_SESSION_KEY, null);			
-			} catch (CoreException e) {
-				BeaninfoPlugin.getPlugin().getLogger().log(e, Level.INFO);
-			}
-		}
-		if (reg != null) {
-			reg.removeRegistryListener(registryListener);
-			reg.terminateRegistry();
-		}
-	}
-
-	private static final String PI_CLASS = "class"; //$NON-NLS-1$
-	
-	/**
-	 * Using the given configuration info, compute the BeanInfo config info needed. This sets the
-	 * session properties BEANINFO_CONTRIBUTORS_SESSION_KEY and CONFIG_INFO_SESSION_KEY.
-	 * 
-	 * @param info
-	 * @throws CoreException
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void computeBeanInfoConfigInfo(IConfigurationContributionInfo info) throws CoreException {
-		// First time for this nature, or first time after registry reset. Need to compute the info.
-		// It is possible for this to be called BEFORE the first usage of BeanInfo. The editor usually
-		// brings up the editor's registry before it gets anything from BeanInfo.
-		List contributorsList = new ArrayList(10);
-		if (!info.getContainerIds().isEmpty()) {
-			// Run through all of the visible container ids that are applicable and get BeanInfo contributors.
-			Iterator containerIdItr = info.getContainerIds().entrySet().iterator();
-			while (containerIdItr.hasNext()) {
-				Map.Entry entry = (Map.Entry) containerIdItr.next();
-				if (((Boolean) entry.getValue()).booleanValue()) {
-					IConfigurationElement[] contributors = BeaninfoPlugin.getPlugin().getContainerIdContributors(
-							(String) entry.getKey());
-					if (contributors != null) {
-						for (int i = 0; i < contributors.length; i++) {
-							try {
-								Object contributor = contributors[i].createExecutableExtension(PI_CLASS);
-								if (contributor instanceof IBeanInfoContributor)
-									contributorsList.add(contributor);
-							} catch (CoreException e) {
-								BeaninfoPlugin.getPlugin().getLogger().log(e, Level.WARNING);
-							}
-						}
-					}
-				}
-			}						
-		}
-		
-		if (!info.getPluginIds().isEmpty()) {
-			// Run through all of the visible plugin ids that are applicable and get BeanInfo contributors.
-				Iterator pluginIdItr = info.getPluginIds().entrySet().iterator();
-				while (pluginIdItr.hasNext()) {
-					Map.Entry entry = (Map.Entry) pluginIdItr.next();
-					if (((Boolean) entry.getValue()).booleanValue()) {
-						IConfigurationElement[] contributors = BeaninfoPlugin.getPlugin().getPluginContributors(
-								(String) entry.getKey());
-						if (contributors != null) {
-							for (int i = 0; i < contributors.length; i++) {
-							try {
-								Object contributor = contributors[i].createExecutableExtension(PI_CLASS);
-								if (contributor instanceof IBeanInfoContributor)
-									contributorsList.add(contributor);
-							} catch (CoreException e) {
-								BeaninfoPlugin.getPlugin().getLogger().log(e, Level.WARNING);
-							}
-						}
-					}
-				}
-			}
-		}
-			
-			// Save it for all beaninfo processing (and configuration processing if they implement proxy configuration contributor).
-		IBeanInfoContributor[] explicitContributors = (IBeanInfoContributor[]) contributorsList.toArray(new IBeanInfoContributor[contributorsList.size()]);
-		info.getJavaProject().getProject().setSessionProperty(BEANINFO_CONTRIBUTORS_SESSION_KEY, explicitContributors);
-		// Save it for override processing. That happens over and over later after all config processing is done.
-		// Do it last so that if there is a race condition, since this property is a flag to indicate we have data,
-		// we need to make sure the Beaninfo data is already set at the point we set this.
-		// We could actually set it twice because of this, but it is the same data, so, so what.
-		info.getJavaProject().getProject().setSessionProperty(CONFIG_INFO_SESSION_KEY, info);
-	}
-
-	/**
-	 * Get registry, creating it if necessary.
-	 * @return the registry.
-	 * 
-	 * @since 1.0.0
-	 */
-	public ProxyFactoryRegistry getRegistry() {
-		synchronized (this) {
-			if (fRegistry != null)
-				return fRegistry;
-		}
-		// Now need to start the appropriate job. In another class so that it can handle dynamically checking if 
-		// UI is available to even do this (it maybe not in a UI mode, so then just do it.
-		CreateRegistryJobHandler.createRegistry(this);
-		return fRegistry;
-	}
-	
-	/*
-	 * This is <package-protected> so that only the appropriate create job in this
-	 * package can call it. This is because this must be controlled to only be
-	 * done when build not in progress and serial access.
-	 */
-	void createRegistry(IProgressMonitor pm) {
-		pm.beginTask(BeanInfoAdapterMessages.UICreateRegistryJobHandler_StartBeaninfoRegistry, 100); 
-		if (isRegistryCreated()) {
-			pm.done();
-			return; // It had already been created. Could of been because threads were racing to do the creation, and one got there first.
-		}
-
-		try {
-			ConfigurationContributor configurationContributor = (ConfigurationContributor) getConfigurationContributor();
-			configurationContributor.setNature(this);
-			ProxyFactoryRegistry registry = ProxyLaunchSupport.startImplementation(fProject, "Beaninfo", //$NON-NLS-1$
-					new IConfigurationContributor[] { configurationContributor}, false, new SubProgressMonitor(pm, 100));
-			registry.addRegistryListener(registryListener);
-			synchronized(this) {
-				fRegistry = registry;
-			}
-		} catch (CoreException e) {
-			BeaninfoPlugin.getPlugin().getLogger().log(e.getStatus());
-		} finally {
-			pm.done();
-		}
-	}
-	
-	public synchronized boolean isRegistryCreated() {
-		return fRegistry != null;
-	}
-	
-	/**
-	 * Check to see if the nature is still valid. If the project has been
-	 * renamed, the nature is still around, but the project has been closed.
-	 * So the nature is now invalid.
-	 * 
-	 * @return Is this a valid nature. I.e. is the project still open.
-	 */
-	public boolean isValidNature() {
-		return fProject != null;
-	}
-
-	/**
-	 * Set the search path onto the registry.
-	 */
-	protected void setProxySearchPath(ProxyFactoryRegistry registry, List searchPaths) {
-		if (searchPaths != null) {
-			String[] stringSearchPath = (String[]) searchPaths.toArray(new String[searchPaths.size()]);
-			Utilities.setBeanInfoSearchPath(registry, stringSearchPath);
-		} else
-			Utilities.setBeanInfoSearchPath(registry, null);
-	}
-
-	private static final String ENCODING = "UTF-8"; //$NON-NLS-1$
-	static final String sBeaninfos = "beaninfos"; // Root element name //$NON-NLS-1$
-	/**
-	 * Get the persistent search path. It is copy.
-	 */
-	public BeaninfosDoc getSearchPath() {
-		BeaninfosDoc bdoc = null;
-		try {
-			InputStream property = getSharedProperty(P_BEANINFO_SEARCH_PATH);
-			if (property != null) {
-				try {
-					// Need to reconstruct from the XML format.
-					Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new InputStreamReader(property, ENCODING)));
-					Element root = doc.getDocumentElement();
-					if (root != null && root.getNodeName().equalsIgnoreCase(sBeaninfos)) {
-						bdoc = BeaninfosDoc.readEntry(new DOMReader(), root, getProject());
-					}
-				} finally {
-					try {
-						property.close();
-					} catch (IOException e) {
-					}
-				}
-			}
-		} catch (CoreE