From a3ebbdf1df546c419613e8c2510894c83df2338a Mon Sep 17 00:00:00 2001
From: cbridgha
Date: Mon, 7 Aug 2006 17:53:57 +0000
Subject: This commit was manufactured by cvs2svn to create branch
'R1_5_maintenance'.
---
docs/org.eclipse.jst.j2ee.doc.user/.cvsignore | 4 -
docs/org.eclipse.jst.j2ee.doc.user/.project | 22 -
.../META-INF/MANIFEST.MF | 7 -
docs/org.eclipse.jst.j2ee.doc.user/about.html | 34 -
.../org.eclipse.jst.j2ee.doc.user/build.properties | 9 -
.../images/AddRelationship.gif | Bin 18371 -> 0 bytes
.../images/ProjectExplorer.gif | Bin 9622 -> 0 bytes
.../images/Relationships.gif | Bin 2856 -> 0 bytes
.../images/n5rpdcst.gif | Bin 3594 -> 0 bytes
.../org.eclipse.jst.j2ee.doc.user/images/ycwin.gif | Bin 221 -> 0 bytes
.../jst_j2ee_relsmap.ditamap | 140 -
.../jst_j2ee_relsmap.xml | 5 -
.../jst_j2ee_toc.ditamap | 91 -
.../org.eclipse.jst.j2ee.doc.user/jst_j2ee_toc.xml | 44 -
docs/org.eclipse.jst.j2ee.doc.user/myplugin.xml | 22 -
.../org.eclipse.jst.j2ee.doc.user.maplist | 9 -
.../org.eclipse.jst.j2ee.doc.userindex.html | 175 -
.../org.eclipse.jst.j2ee.doc.userindex.xml | 225 -
.../plugin.properties | 13 -
docs/org.eclipse.jst.j2ee.doc.user/plugin.xml | 22 -
.../topics/cjappcliproj.dita | 77 -
.../topics/cjappcliproj.html | 110 -
.../topics/cjarch.dita | 45 -
.../topics/cjarch.html | 94 -
.../topics/cjcircle.dita | 27 -
.../topics/cjcircle.html | 56 -
.../topics/cjearproj.dita | 70 -
.../topics/cjearproj.html | 118 -
.../topics/cjpers.dita | 74 -
.../topics/cjpers.html | 120 -
.../topics/cjview.dita | 34 -
.../topics/cjview.html | 66 -
.../topics/cjviewfilters.dita | 30 -
.../topics/cjviewfilters.html | 60 -
.../topics/ph-importexport.dita | 15 -
.../topics/ph-importexport.html | 58 -
.../topics/ph-j2eeapp.dita | 16 -
.../topics/ph-j2eeapp.html | 47 -
.../topics/ph-projects.dita | 16 -
.../topics/ph-projects.html | 50 -
.../topics/ph-ref.dita | 15 -
.../topics/ph-ref.html | 42 -
.../topics/rjlimitcurrent.dita | 71 -
.../topics/rjlimitcurrent.html | 89 -
.../topics/rvalerr.dita | 191 -
.../topics/rvalerr.html | 326 --
.../topics/rvalidators.dita | 153 -
.../topics/rvalidators.html | 257 -
.../topics/taddingfacet.dita | 69 -
.../topics/taddingfacet.html | 122 -
.../topics/tjappproj.dita | 71 -
.../topics/tjappproj.html | 131 -
.../topics/tjcircleb.dita | 39 -
.../topics/tjcircleb.html | 76 -
.../topics/tjear.dita | 78 -
.../topics/tjear.html | 142 -
.../topics/tjexpapp.dita | 37 -
.../topics/tjexpapp.html | 85 -
.../topics/tjexpear.dita | 46 -
.../topics/tjexpear.html | 96 -
.../topics/tjexprar.dita | 39 -
.../topics/tjexprar.html | 49 -
.../topics/tjimpapp.dita | 52 -
.../topics/tjimpapp.html | 101 -
.../topics/tjimpear.dita | 67 -
.../topics/tjimpear.html | 129 -
.../topics/tjimprar.dita | 56 -
.../topics/tjimprar.html | 63 -
.../topics/tjrar.dita | 72 -
.../topics/tjrar.html | 124 -
.../topics/tjtargetserver.dita | 85 -
.../topics/tjtargetserver.html | 131 -
.../topics/tjval.dita | 65 -
.../topics/tjval.html | 113 -
.../topics/tjvaldisable.dita | 38 -
.../topics/tjvaldisable.html | 81 -
.../topics/tjvalglobalpref.dita | 48 -
.../topics/tjvalglobalpref.html | 94 -
.../topics/tjvalmanual.dita | 37 -
.../topics/tjvalmanual.html | 81 -
.../topics/tjvalselect.dita | 46 -
.../topics/tjvalselect.html | 90 -
docs/org.eclipse.jst.j2ee.infopop/.cvsignore | 1 -
docs/org.eclipse.jst.j2ee.infopop/.project | 22 -
.../EJBCreateWizard_HelpContexts.xml | 82 -
.../ExportWizard_HelpContexts.xml | 54 -
.../ImportWizard_HelpContexts.xml | 57 -
.../J2EEGeneral_HelpContexts.xml | 24 -
.../META-INF/MANIFEST.MF | 7 -
.../Preferences_HelpContexts.xml | 75 -
.../ProjectCreateWizard_HelpContexts.xml | 92 -
.../ProjectPrefs_HelpContexts.xml | 40 -
docs/org.eclipse.jst.j2ee.infopop/about.html | 34 -
docs/org.eclipse.jst.j2ee.infopop/build.properties | 13 -
.../org.eclipse.jst.j2ee.infopop/plugin.properties | 15 -
docs/org.eclipse.jst.j2ee.infopop/plugin.xml | 25 -
docs/org.eclipse.jst.servlet.ui.infopop/.cvsignore | 1 -
docs/org.eclipse.jst.servlet.ui.infopop/.project | 11 -
.../DynWebWizContexts.xml | 34 -
.../META-INF/MANIFEST.MF | 8 -
.../ServletWizContexts.xml | 39 -
docs/org.eclipse.jst.servlet.ui.infopop/about.html | 34 -
.../build.properties | 7 -
.../plugin.properties | 13 -
docs/org.eclipse.jst.servlet.ui.infopop/plugin.xml | 26 -
docs/org.eclipse.wst.web.ui.infopop/.cvsignore | 1 -
docs/org.eclipse.wst.web.ui.infopop/.project | 11 -
.../META-INF/MANIFEST.MF | 8 -
.../StaticWebWizContexts.xml | 33 -
docs/org.eclipse.wst.web.ui.infopop/about.html | 34 -
.../build.properties | 6 -
.../plugin.properties | 13 -
docs/org.eclipse.wst.web.ui.infopop/plugin.xml | 24 -
features/org.eclipse.jem-feature/.cvsignore | 1 -
features/org.eclipse.jem-feature/.project | 17 -
features/org.eclipse.jem-feature/build.properties | 17 -
.../com.ibm.etools.emf.event/.classpath | 6 -
.../com.ibm.etools.emf.event/.project | 28 -
.../com.ibm.etools.emf.event/META-INF/MANIFEST.MF | 14 -
.../com.ibm.etools.emf.event/about.html | 25 -
.../com.ibm.etools.emf.event/build.properties | 18 -
.../com.ibm.etools.emf.event/com/.placeholder | 1 -
.../event/com/ibm/etools/emf/event/Add.class | Bin 383 -> 0 bytes
.../event/com/ibm/etools/emf/event/AddMany.class | Bin 264 -> 0 bytes
.../com/ibm/etools/emf/event/Change$Setting.class | Bin 456 -> 0 bytes
.../event/com/ibm/etools/emf/event/Change.class | Bin 357 -> 0 bytes
.../com/ibm/etools/emf/event/ChangeUtil.class | Bin 822 -> 0 bytes
.../ibm/etools/emf/event/EObjectDescriptor.class | Bin 399 -> 0 bytes
.../event/com/ibm/etools/emf/event/Event.class | Bin 794 -> 0 bytes
.../com/ibm/etools/emf/event/EventFactory.class | Bin 1281 -> 0 bytes
.../event/com/ibm/etools/emf/event/EventKind.class | Bin 2077 -> 0 bytes
.../com/ibm/etools/emf/event/EventPackage.class | Bin 6880 -> 0 bytes
.../event/com/ibm/etools/emf/event/EventUtil.class | Bin 798 -> 0 bytes
.../com/ibm/etools/emf/event/FeatureKind.class | Bin 1532 -> 0 bytes
.../event/com/ibm/etools/emf/event/Move.class | Bin 265 -> 0 bytes
.../com/ibm/etools/emf/event/NotifierKind.class | Bin 1529 -> 0 bytes
.../event/com/ibm/etools/emf/event/Remove.class | Bin 389 -> 0 bytes
.../com/ibm/etools/emf/event/RemoveMany.class | Bin 270 -> 0 bytes
.../event/com/ibm/etools/emf/event/Set.class | Bin 546 -> 0 bytes
.../event/com/ibm/etools/emf/event/Setting.class | Bin 341 -> 0 bytes
.../event/com/ibm/etools/emf/event/Unset.class | Bin 330 -> 0 bytes
.../com/ibm/etools/emf/event/impl/AddImpl.class | Bin 7418 -> 0 bytes
.../ibm/etools/emf/event/impl/AddManyImpl.class | Bin 7406 -> 0 bytes
.../ibm/etools/emf/event/impl/ChangeHelper.class | Bin 8597 -> 0 bytes
.../emf/event/impl/ChangeImpl$SettingImpl.class | Bin 2660 -> 0 bytes
.../com/ibm/etools/emf/event/impl/ChangeImpl.class | Bin 2080 -> 0 bytes
.../ibm/etools/emf/event/impl/ChangeUtilImpl.class | Bin 5886 -> 0 bytes
.../emf/event/impl/EObjectDescriptorImpl.class | Bin 5567 -> 0 bytes
.../ibm/etools/emf/event/impl/EventAdapter.class | Bin 7068 -> 0 bytes
.../etools/emf/event/impl/EventFactoryImpl.class | Bin 6530 -> 0 bytes
.../ibm/etools/emf/event/impl/EventHelper.class | Bin 11888 -> 0 bytes
.../com/ibm/etools/emf/event/impl/EventImpl.class | Bin 8526 -> 0 bytes
.../etools/emf/event/impl/EventPackageImpl.class | Bin 14825 -> 0 bytes
.../etools/emf/event/impl/EventReaderHelper.class | Bin 11606 -> 0 bytes
.../impl/EventUtilImpl$BackwardEventIterator.class | Bin 1337 -> 0 bytes
.../impl/EventUtilImpl$ForwardEventIterator.class | Bin 1295 -> 0 bytes
.../ibm/etools/emf/event/impl/EventUtilImpl.class | Bin 12968 -> 0 bytes
.../event/impl/EventWriterHelper$EObjectData.class | Bin 3145 -> 0 bytes
.../etools/emf/event/impl/EventWriterHelper.class | Bin 12383 -> 0 bytes
.../com/ibm/etools/emf/event/impl/MoveImpl.class | Bin 6679 -> 0 bytes
.../com/ibm/etools/emf/event/impl/RemoveImpl.class | Bin 7432 -> 0 bytes
.../ibm/etools/emf/event/impl/RemoveManyImpl.class | Bin 7424 -> 0 bytes
.../com/ibm/etools/emf/event/impl/SetImpl.class | Bin 8626 -> 0 bytes
.../ibm/etools/emf/event/impl/SettingImpl.class | Bin 3987 -> 0 bytes
.../com/ibm/etools/emf/event/impl/UnsetImpl.class | Bin 6828 -> 0 bytes
.../emf/event/util/EventAdapterFactory$1.class | Bin 3022 -> 0 bytes
.../emf/event/util/EventAdapterFactory.class | Bin 2511 -> 0 bytes
.../ibm/etools/emf/event/util/EventSwitch.class | Bin 4126 -> 0 bytes
.../com.ibm.etools.emf.event/model/event.mdl | 5029 --------------------
.../com.ibm.etools.emf.event/plugin.xml | 14 -
.../org.eclipse.jem-feature/eclipse_update_120.jpg | Bin 21695 -> 0 bytes
features/org.eclipse.jem-feature/epl-v10.html | 328 --
.../org.eclipse.jem-feature/feature.properties | 149 -
features/org.eclipse.jem-feature/feature.xml | 80 -
features/org.eclipse.jem-feature/license.html | 79 -
.../org.eclipse.jem.sdk-feature/build.properties | 16 -
.../eclipse_update_120.jpg | Bin 21695 -> 0 bytes
.../org.eclipse.jem.sdk-feature/epl-v10.html | 328 --
.../org.eclipse.jem.sdk-feature/feature.properties | 149 -
.../org.eclipse.jem.sdk-feature/feature.xml | 41 -
.../org.eclipse.jem.sdk-feature/license.html | 79 -
.../org.eclipse.jem.sdk/.project | 22 -
.../org.eclipse.jem.sdk/META-INF/MANIFEST.MF | 7 -
.../org.eclipse.jem.sdk/about.html | 25 -
.../org.eclipse.jem.sdk/about.ini | 29 -
.../org.eclipse.jem.sdk/about.mappings | 6 -
.../org.eclipse.jem.sdk/about.properties | 29 -
.../org.eclipse.jem.sdk/build.properties | 18 -
.../org.eclipse.jem.sdk/eclipse32.png | Bin 4594 -> 0 bytes
.../org.eclipse.jem.sdk/plugin.properties | 18 -
.../org.eclipse.jem-feature/rootfiles/epl-v10.html | 304 --
.../org.eclipse.jem-feature/rootfiles/notice.html | 79 -
.../sourceTemplateFeature/build.properties | 17 -
.../sourceTemplateFeature/eclipse_update_120.jpg | Bin 21695 -> 0 bytes
.../sourceTemplateFeature/epl-v10.html | 328 --
.../sourceTemplateFeature/feature.properties | 149 -
.../sourceTemplateFeature/license.html | 79 -
.../sourceTemplatePlugin/about.html | 25 -
.../sourceTemplatePlugin/about.ini | 29 -
.../sourceTemplatePlugin/about.mappings | 6 -
.../sourceTemplatePlugin/about.properties | 28 -
.../sourceTemplatePlugin/build.properties | 20 -
.../sourceTemplatePlugin/eclipse32.png | Bin 4594 -> 0 bytes
.../sourceTemplatePlugin/plugin.properties | 18 -
plugins/org.eclipse.jem.beaninfo.ui/.project | 12 -
.../OBSOLETE-moved to org.eclipse.jem.ui | 0
plugins/org.eclipse.jem.beaninfo/.classpath | 9 -
plugins/org.eclipse.jem.beaninfo/.cvsignore | 4 -
plugins/org.eclipse.jem.beaninfo/.options | 3 -
plugins/org.eclipse.jem.beaninfo/.project | 38 -
.../.settings/org.eclipse.core.resources.prefs | 3 -
.../.settings/org.eclipse.jdt.core.prefs | 289 --
.../.settings/org.eclipse.jdt.ui.prefs | 8 -
.../.settings/org.eclipse.pde.core.prefs | 3 -
.../org.eclipse.jem.beaninfo/META-INF/MANIFEST.MF | 30 -
plugins/org.eclipse.jem.beaninfo/about.html | 25 -
.../jem/internal/beaninfo/BeanDecorator.java | 432 --
.../eclipse/jem/internal/beaninfo/BeanEvent.java | 41 -
.../jem/internal/beaninfo/BeaninfoFactory.java | 128 -
.../jem/internal/beaninfo/BeaninfoPackage.java | 2692 -----------
.../jem/internal/beaninfo/EventSetDecorator.java | 326 --
.../jem/internal/beaninfo/FeatureDecorator.java | 491 --
.../jem/internal/beaninfo/ImplicitItem.java | 168 -
.../beaninfo/IndexedPropertyDecorator.java | 149 -
.../jem/internal/beaninfo/MethodDecorator.java | 109 -
.../eclipse/jem/internal/beaninfo/MethodProxy.java | 75 -
.../jem/internal/beaninfo/ParameterDecorator.java | 97 -
.../jem/internal/beaninfo/PropertyDecorator.java | 513 --
.../beaninfo/adapters/BeanInfoAdapterMessages.java | 31 -
.../adapters/BeanInfoDecoratorUtility.java | 1457 ------
.../beaninfo/adapters/BeaninfoAdapterFactory.java | 229 -
.../beaninfo/adapters/BeaninfoClassAdapter.java | 2678 -----------
.../BeaninfoJavaReflectionKeyExtension.java | 133 -
.../adapters/BeaninfoModelSynchronizer.java | 198 -
.../internal/beaninfo/adapters/BeaninfoNature.java | 1026 ----
.../beaninfo/adapters/BeaninfoProxyConstants.java | 106 -
.../beaninfo/adapters/BeaninfoSuperAdapter.java | 118 -
.../adapters/CreateRegistryJobHandler.java | 165 -
.../jem/internal/beaninfo/adapters/DOMReader.java | 73 -
.../jem/internal/beaninfo/adapters/IReader.java | 32 -
.../beaninfo/adapters/SpecialResourceSet.java | 44 -
.../adapters/UICreateRegistryJobHandler.java | 106 -
.../internal/beaninfo/adapters/messages.properties | 19 -
.../beaninfo/core/BeanInfoCacheController.java | 1603 -------
.../beaninfo/core/BeanInfoContributorAdapter.java | 148 -
.../beaninfo/core/BeaninfoCoreMessages.java | 28 -
.../jem/internal/beaninfo/core/BeaninfoEntry.java | 373 --
.../jem/internal/beaninfo/core/BeaninfoPlugin.java | 752 ---
.../beaninfo/core/BeaninfoRegistration.java | 79 -
.../jem/internal/beaninfo/core/BeaninfosDoc.java | 87 -
.../beaninfo/core/ConfigurationElementReader.java | 73 -
.../beaninfo/core/IBeanInfoContributor.java | 78 -
.../internal/beaninfo/core/IBeaninfoSupplier.java | 75 -
.../internal/beaninfo/core/IBeaninfosDocEntry.java | 33 -
.../eclipse/jem/internal/beaninfo/core/Init.java | 67 -
.../internal/beaninfo/core/SearchpathEntry.java | 189 -
.../jem/internal/beaninfo/core/Utilities.java | 501 --
.../jem/internal/beaninfo/core/messages.properties | 12 -
.../internal/beaninfo/impl/BeanDecoratorImpl.java | 1072 -----
.../jem/internal/beaninfo/impl/BeanEventImpl.java | 314 --
.../beaninfo/impl/BeaninfoFactoryImpl.java | 239 -
.../beaninfo/impl/BeaninfoPackageImpl.java | 1012 ----
.../beaninfo/impl/EventSetDecoratorImpl.java | 991 ----
.../impl/FeatureAttributeMapEntryImpl.java | 308 --
.../beaninfo/impl/FeatureDecoratorImpl.java | 1058 ----
.../impl/IndexedPropertyDecoratorImpl.java | 664 ---
.../beaninfo/impl/MethodDecoratorImpl.java | 592 ---
.../internal/beaninfo/impl/MethodProxyImpl.java | 342 --
.../beaninfo/impl/ParameterDecoratorImpl.java | 522 --
.../beaninfo/impl/PropertyDecoratorImpl.java | 1177 -----
.../beaninfo/common/IBaseBeanInfoConstants.java | 155 -
.../jem/internal/beaninfo/common/BeanRecord.java | 53 -
.../internal/beaninfo/common/EventSetRecord.java | 37 -
.../beaninfo/common/FeatureAttributeValue.java | 785 ---
.../internal/beaninfo/common/FeatureRecord.java | 41 -
.../common/IBeanInfoIntrospectionConstants.java | 129 -
.../beaninfo/common/IndexedPropertyRecord.java | 32 -
.../internal/beaninfo/common/InvalidObject.java | 53 -
.../jem/internal/beaninfo/common/MethodRecord.java | 38 -
.../internal/beaninfo/common/ParameterRecord.java | 32 -
.../internal/beaninfo/common/PropertyRecord.java | 37 -
.../beaninfo/common/ReflectFieldRecord.java | 35 -
.../beaninfo/common/ReflectMethodRecord.java | 35 -
plugins/org.eclipse.jem.beaninfo/build.properties | 30 -
.../org.eclipse.jem.beaninfo/model/beaninfo.ecore | 290 --
.../model/introspect.genmodel | 97 -
plugins/org.eclipse.jem.beaninfo/plugin.properties | 20 -
plugins/org.eclipse.jem.beaninfo/plugin.xml | 36 -
plugins/org.eclipse.jem.beaninfo/proxy.jars | 2 -
plugins/org.eclipse.jem.beaninfo/rose/.cvsignore | 2 -
plugins/org.eclipse.jem.beaninfo/rose/beaninfo.cat | 3301 -------------
.../org.eclipse.jem.beaninfo/rose/introspect.mdl | 556 ---
.../schema/registrations.exsd | 258 -
.../org/eclipse/jem/beaninfo/vm/BaseBeanInfo.java | 850 ----
.../jem/beaninfo/vm/basebeaninfonls.properties | 31 -
.../eclipse/jem/beaninfo/vm/beaninfo.properties | 32 -
.../beaninfo/vm/BeanDescriptorEquality.java | 77 -
.../beaninfo/vm/EventSetDescriptorEquality.java | 145 -
.../beaninfo/vm/FeatureDescriptorEquality.java | 201 -
.../vm/IndexedPropertyDescriptorEquality.java | 91 -
.../beaninfo/vm/MethodDescriptorEquality.java | 135 -
.../jem/internal/beaninfo/vm/ModelingBeanInfo.java | 863 ----
.../internal/beaninfo/vm/ModelingBeanInfo15.java | 43 -
.../beaninfo/vm/ModelingBeanInfoPre15.java | 31 -
.../beaninfo/vm/ParameterDescriptorEquality.java | 37 -
.../beaninfo/vm/PropertyDescriptorEquality.java | 83 -
plugins/org.eclipse.jem.proxy/.classpath | 13 -
plugins/org.eclipse.jem.proxy/.cvsignore | 4 -
plugins/org.eclipse.jem.proxy/.options | 9 -
plugins/org.eclipse.jem.proxy/.project | 28 -
.../.settings/org.eclipse.core.resources.prefs | 3 -
.../.settings/org.eclipse.jdt.core.prefs | 289 --
.../.settings/org.eclipse.jdt.ui.prefs | 8 -
.../.settings/org.eclipse.pde.core.prefs | 3 -
plugins/org.eclipse.jem.proxy/META-INF/MANIFEST.MF | 28 -
plugins/org.eclipse.jem.proxy/about.html | 25 -
plugins/org.eclipse.jem.proxy/build.properties | 31 -
.../internal/proxy/initParser/ArrayArguments.java | 136 -
.../jem/internal/proxy/initParser/Block.java | 113 -
.../internal/proxy/initParser/BooleanLiteral.java | 63 -
.../CannotProcessArrayTypesException.java | 29 -
.../CannotProcessInnerClassesException.java | 29 -
.../jem/internal/proxy/initParser/Cast.java | 173 -
.../jem/internal/proxy/initParser/CharLiteral.java | 114 -
.../jem/internal/proxy/initParser/Constructor.java | 339 --
.../proxy/initParser/EvaluationException.java | 46 -
.../jem/internal/proxy/initParser/Expression.java | 130 -
.../jem/internal/proxy/initParser/Field.java | 146 -
.../proxy/initParser/IParserConstants.java | 51 -
.../InitializationStringEvaluationException.java | 34 -
.../initParser/InitializationStringParser.java | 300 --
.../jem/internal/proxy/initParser/Message.java | 224 -
.../internal/proxy/initParser/MessageArgument.java | 123 -
.../jem/internal/proxy/initParser/NullLiteral.java | 59 -
.../internal/proxy/initParser/NumberLiteral.java | 171 -
.../proxy/initParser/PrimitiveOperation.java | 113 -
.../proxy/initParser/ProxyInitParserMessages.java | 46 -
.../jem/internal/proxy/initParser/Statement.java | 201 -
.../jem/internal/proxy/initParser/Static.java | 305 --
.../internal/proxy/initParser/StringLiteral.java | 142 -
.../internal/proxy/initParser/messages.properties | 24 -
.../proxy/initParser/tree/AbstractEnum.java | 73 -
.../jem/internal/proxy/initParser/tree/Enum.java | 37 -
.../proxy/initParser/tree/ExpressionProcesser.java | 3364 -------------
.../proxy/initParser/tree/ForExpression.java | 213 -
.../initParser/tree/IExpressionConstants.java | 26 -
.../proxy/initParser/tree/InfixOperator.java | 212 -
.../initParser/tree/InitparserTreeMessages.java | 43 -
.../tree/InternalConditionalOperandType.java | 70 -
.../initParser/tree/InternalExpressionProxy.java | 77 -
.../initParser/tree/InternalExpressionTypes.java | 303 --
.../initParser/tree/InternalIfElseOperandType.java | 60 -
.../initParser/tree/InternalInfixOperandType.java | 63 -
.../tree/NoExpressionValueException.java | 87 -
.../proxy/initParser/tree/PrefixOperator.java | 77 -
.../proxy/initParser/tree/VariableReference.java | 58 -
.../proxy/initParser/tree/messages.properties | 29 -
plugins/org.eclipse.jem.proxy/plugin.properties | 21 -
plugins/org.eclipse.jem.proxy/plugin.xml | 21 -
plugins/org.eclipse.jem.proxy/proxy.jars | 4 -
.../proxy/awt/IStandardAwtBeanProxyFactory.java | 48 -
.../proxy/awt/JavaStandardAwtBeanConstants.java | 254 -
.../proxy/core/BaseProxyFactoryRegistry.java | 89 -
.../proxy/core/CollectionBeanProxyWrapper.java | 137 -
.../core/ConfigurationContributorAdapter.java | 51 -
.../core/ContainerPathContributionMapping.java | 196 -
.../proxy/core/ContributorExtensionPointInfo.java | 42 -
.../proxy/core/EnumerationBeanProxyWrapper.java | 77 -
.../jem/internal/proxy/core/Expression.java | 2546 ----------
.../jem/internal/proxy/core/ExpressionProxy.java | 349 --
.../proxy/core/IAccessibleObjectProxy.java | 39 -
.../jem/internal/proxy/core/IArrayBeanProxy.java | 92 -
.../internal/proxy/core/IArrayBeanTypeProxy.java | 41 -
.../jem/internal/proxy/core/IBeanProxy.java | 80 -
.../jem/internal/proxy/core/IBeanProxyFactory.java | 49 -
.../proxy/core/IBeanTypeExpressionProxy.java | 32 -
.../jem/internal/proxy/core/IBeanTypeProxy.java | 319 --
.../internal/proxy/core/IBeanTypeProxyFactory.java | 31 -
.../jem/internal/proxy/core/IBooleanBeanProxy.java | 31 -
.../eclipse/jem/internal/proxy/core/ICallback.java | 152 -
.../jem/internal/proxy/core/ICallbackRegistry.java | 75 -
.../internal/proxy/core/ICharacterBeanProxy.java | 35 -
.../core/IConfigurationContributionController.java | 172 -
.../proxy/core/IConfigurationContributionInfo.java | 164 -
.../proxy/core/IConfigurationContributor.java | 76 -
.../jem/internal/proxy/core/IConstructorProxy.java | 42 -
.../internal/proxy/core/IDimensionBeanProxy.java | 34 -
.../jem/internal/proxy/core/IExpression.java | 1009 ----
.../proxy/core/IExtensionRegistration.java | 42 -
.../jem/internal/proxy/core/IFieldProxy.java | 45 -
.../jem/internal/proxy/core/IIntegerBeanProxy.java | 29 -
.../jem/internal/proxy/core/IInvokable.java | 83 -
.../jem/internal/proxy/core/IMethodProxy.java | 52 -
.../internal/proxy/core/IMethodProxyFactory.java | 83 -
.../jem/internal/proxy/core/INumberBeanProxy.java | 59 -
.../proxy/core/IPDEContributeClasspath.java | 49 -
.../jem/internal/proxy/core/IPointBeanProxy.java | 33 -
.../eclipse/jem/internal/proxy/core/IProxy.java | 48 -
.../jem/internal/proxy/core/IProxyBeanType.java | 85 -
.../jem/internal/proxy/core/IProxyConstants.java | 69 -
.../jem/internal/proxy/core/IProxyField.java | 25 -
.../jem/internal/proxy/core/IProxyMethod.java | 26 -
.../internal/proxy/core/IRectangleBeanProxy.java | 43 -
.../proxy/core/IStandardBeanProxyFactory.java | 202 -
.../proxy/core/IStandardBeanTypeProxyFactory.java | 168 -
.../jem/internal/proxy/core/IStringBeanProxy.java | 30 -
.../eclipse/jem/internal/proxy/core/IUIRunner.java | 40 -
.../proxy/core/IteratorBeanProxyWrapper.java | 84 -
.../proxy/core/JavaStandardBeanProxyConstants.java | 347 --
.../internal/proxy/core/ListBeanProxyWrapper.java | 111 -
.../proxy/core/ListIteratorBeanProxyWrapper.java | 84 -
.../jem/internal/proxy/core/ListenerList.java | 195 -
.../jem/internal/proxy/core/MapJNITypes.java | 72 -
.../proxy/core/PDEContributeClasspath.java | 100 -
.../proxy/core/PDEContributeClasspathInstance.java | 52 -
.../internal/proxy/core/PDEProcessForPlugin.java | 68 -
.../internal/proxy/core/ProxyFactoryRegistry.java | 327 --
.../jem/internal/proxy/core/ProxyFindSupport.java | 209 -
.../internal/proxy/core/ProxyLaunchSupport.java | 871 ----
.../jem/internal/proxy/core/ProxyMessages.java | 48 -
.../jem/internal/proxy/core/ProxyPlugin.java | 1371 ------
.../jem/internal/proxy/core/ThrowableProxy.java | 68 -
.../eclipse/jem/internal/proxy/core/UIRunner.java | 105 -
.../jem/internal/proxy/core/messages.properties | 49 -
.../proxy/common/AmbiguousMethodException.java | 33 -
.../internal/proxy/common/CommandException.java | 50 -
.../internal/proxy/common/GenericEventQueue.java | 146 -
.../jem/internal/proxy/common/ICallback.java | 30 -
.../internal/proxy/common/ICallbackHandler.java | 101 -
.../internal/proxy/common/ICallbackRunnable.java | 28 -
.../internal/proxy/common/ICommandException.java | 20 -
.../internal/proxy/common/IVMCallbackServer.java | 48 -
.../jem/internal/proxy/common/IVMServer.java | 50 -
.../jem/internal/proxy/common/MapTypes.java | 159 -
.../jem/internal/proxy/common/Messages.java | 41 -
.../jem/internal/proxy/common/MethodHelper.java | 272 --
.../proxy/common/UnresolvedCompilationError.java | 47 -
.../jem/internal/proxy/common/messages.properties | 11 -
.../proxy/remote/BeanProxyValueSender.java | 96 -
.../jem/internal/proxy/remote/DebugModeHelper.java | 365 --
.../jem/internal/proxy/remote/IREMBeanProxy.java | 63 -
.../internal/proxy/remote/IREMBeanTypeProxy.java | 42 -
.../proxy/remote/IREMBeanTypeProxyFactory.java | 85 -
.../jem/internal/proxy/remote/IREMConnection.java | 106 -
.../proxy/remote/IREMConstantBeanProxy.java | 25 -
.../proxy/remote/IREMConstantBeanTypeProxy.java | 32 -
.../proxy/remote/IREMExpressionConnection.java | 182 -
.../jem/internal/proxy/remote/IREMMethodProxy.java | 34 -
.../proxy/remote/IREMSpecialBeanTypeProxy.java | 32 -
...ocalFileConfigurationContributorController.java | 292 --
.../proxy/remote/LocalProxyLaunchDelegate.java | 475 --
.../jem/internal/proxy/remote/MessageDialog.java | 331 --
.../internal/proxy/remote/ProxyRemoteMessages.java | 55 -
.../jem/internal/proxy/remote/ProxyRemoteUtil.java | 61 -
.../proxy/remote/REMAbstractBeanProxy.java | 134 -
.../proxy/remote/REMAbstractBeanTypeProxy.java | 703 ---
.../remote/REMAbstractNumberBeanTypeProxy.java | 72 -
.../proxy/remote/REMAccessibleObjectProxy.java | 53 -
.../proxy/remote/REMAnAbstractBeanTypeProxy.java | 75 -
.../internal/proxy/remote/REMArrayBeanProxy.java | 253 -
.../proxy/remote/REMArrayBeanTypeProxy.java | 340 --
.../jem/internal/proxy/remote/REMBeanProxy.java | 39 -
.../internal/proxy/remote/REMBeanTypeProxy.java | 66 -
.../proxy/remote/REMBigDecimalBeanProxy.java | 45 -
.../proxy/remote/REMBigDecimalBeanTypeProxy.java | 73 -
.../proxy/remote/REMBigIntegerBeanProxy.java | 45 -
.../proxy/remote/REMBigIntegerBeanTypeProxy.java | 75 -
.../proxy/remote/REMBooleanClassBeanProxy.java | 96 -
.../proxy/remote/REMBooleanClassBeanTypeProxy.java | 93 -
.../proxy/remote/REMBooleanTypeBeanProxy.java | 104 -
.../proxy/remote/REMBooleanTypeBeanTypeProxy.java | 69 -
.../proxy/remote/REMByteClassBeanProxy.java | 45 -
.../proxy/remote/REMByteClassBeanTypeProxy.java | 85 -
.../proxy/remote/REMByteTypeBeanProxy.java | 133 -
.../proxy/remote/REMByteTypeBeanTypeProxy.java | 110 -
.../proxy/remote/REMCallbackInputStream.java | 146 -
.../internal/proxy/remote/REMCallbackRegistry.java | 185 -
.../internal/proxy/remote/REMCallbackThread.java | 327 --
.../proxy/remote/REMCharacterClassBeanProxy.java | 150 -
.../remote/REMCharacterClassBeanTypeProxy.java | 85 -
.../proxy/remote/REMCharacterTypeBeanProxy.java | 155 -
.../remote/REMCharacterTypeBeanTypeProxy.java | 66 -
.../proxy/remote/REMClassBeanTypeProxy.java | 75 -
.../jem/internal/proxy/remote/REMConnection.java | 342 --
.../proxy/remote/REMConstantBeanProxy.java | 100 -
.../internal/proxy/remote/REMConstructorProxy.java | 109 -
.../proxy/remote/REMConstructorTypeProxy.java | 67 -
.../proxy/remote/REMDoubleClassBeanProxy.java | 44 -
.../proxy/remote/REMDoubleClassBeanTypeProxy.java | 73 -
.../proxy/remote/REMDoubleTypeBeanProxy.java | 133 -
.../proxy/remote/REMDoubleTypeBeanTypeProxy.java | 98 -
.../jem/internal/proxy/remote/REMExpression.java | 1864 --------
.../jem/internal/proxy/remote/REMFieldProxy.java | 106 -
.../internal/proxy/remote/REMFieldTypeProxy.java | 67 -
.../proxy/remote/REMFloatClassBeanProxy.java | 44 -
.../proxy/remote/REMFloatClassBeanTypeProxy.java | 74 -
.../proxy/remote/REMFloatTypeBeanProxy.java | 131 -
.../proxy/remote/REMFloatTypeBeanTypeProxy.java | 98 -
.../proxy/remote/REMInitErrorBeanTypeProxy.java | 469 --
.../proxy/remote/REMIntegerClassBeanProxy.java | 49 -
.../proxy/remote/REMIntegerClassBeanTypeProxy.java | 85 -
.../proxy/remote/REMIntegerTypeBeanProxy.java | 132 -
.../proxy/remote/REMIntegerTypeBeanTypeProxy.java | 111 -
.../proxy/remote/REMInterfaceBeanTypeProxy.java | 72 -
.../jem/internal/proxy/remote/REMInvokable.java | 233 -
.../proxy/remote/REMLongClassBeanProxy.java | 44 -
.../proxy/remote/REMLongClassBeanTypeProxy.java | 87 -
.../proxy/remote/REMLongTypeBeanProxy.java | 131 -
.../proxy/remote/REMLongTypeBeanTypeProxy.java | 115 -
.../proxy/remote/REMMasterServerThread.java | 172 -
.../jem/internal/proxy/remote/REMMethodProxy.java | 276 --
.../proxy/remote/REMMethodProxyFactory.java | 305 --
.../internal/proxy/remote/REMMethodTypeProxy.java | 67 -
.../internal/proxy/remote/REMNumberBeanProxy.java | 106 -
.../proxy/remote/REMPrimitiveBeanTypeProxy.java | 234 -
.../internal/proxy/remote/REMProxyConstants.java | 679 ---
.../proxy/remote/REMProxyFactoryRegistry.java | 476 --
.../proxy/remote/REMRegistryController.java | 198 -
.../proxy/remote/REMShortClassBeanProxy.java | 44 -
.../proxy/remote/REMShortClassBeanTypeProxy.java | 84 -
.../proxy/remote/REMShortTypeBeanProxy.java | 132 -
.../proxy/remote/REMShortTypeBeanTypeProxy.java | 109 -
.../remote/REMStandardBeanProxyConstants.java | 508 --
.../proxy/remote/REMStandardBeanProxyFactory.java | 854 ----
.../remote/REMStandardBeanTypeProxyFactory.java | 690 ---
.../internal/proxy/remote/REMStringBeanProxy.java | 83 -
.../proxy/remote/REMStringBeanTypeProxy.java | 124 -
.../proxy/remote/REMThrowableBeanProxy.java | 214 -
.../proxy/remote/REMThrowableBeanTypeProxy.java | 68 -
.../proxy/remote/REMVoidBeanTypeProxy.java | 83 -
.../proxy/remote/awt/REMDimensionBeanProxy.java | 68 -
.../remote/awt/REMDimensionBeanTypeProxy.java | 67 -
.../proxy/remote/awt/REMPointBeanProxy.java | 71 -
.../proxy/remote/awt/REMPointBeanTypeProxy.java | 67 -
.../proxy/remote/awt/REMRectangleBeanProxy.java | 120 -
.../remote/awt/REMRectangleBeanTypeProxy.java | 67 -
.../internal/proxy/remote/awt/REMRegisterAWT.java | 38 -
.../remote/awt/REMStandardAWTBeanProxyFactory.java | 74 -
.../awt/REMStandardAWTBeanTypeProxyFactory.java | 82 -
.../jem/internal/proxy/remote/messages.properties | 67 -
.../proxy/ide/IDEAccessibleObjectProxy.java | 56 -
.../jem/internal/proxy/ide/IDEArrayBeanProxy.java | 279 --
.../internal/proxy/ide/IDEArrayBeanTypeProxy.java | 326 --
.../jem/internal/proxy/ide/IDEBeanProxy.java | 101 -
.../jem/internal/proxy/ide/IDEBeanTypeProxy.java | 451 --
.../proxy/ide/IDEBigDecimalBeanTypeProxy.java | 38 -
.../proxy/ide/IDEBigIntegerBeanTypeProxy.java | 40 -
.../internal/proxy/ide/IDEBooleanBeanProxy.java | 45 -
.../proxy/ide/IDEBooleanBeanTypeProxy.java | 46 -
.../proxy/ide/IDEBooleanClassBeanTypeProxy.java | 49 -
.../proxy/ide/IDEBooleanTypeBeanTypeProxy.java | 59 -
.../proxy/ide/IDEByteClassBeanTypeProxy.java | 32 -
.../proxy/ide/IDEByteTypeBeanTypeProxy.java | 36 -
.../internal/proxy/ide/IDECallbackRegistry.java | 150 -
.../proxy/ide/IDECharTypeBeanTypeProxy.java | 39 -
.../internal/proxy/ide/IDECharacterBeanProxy.java | 84 -
.../proxy/ide/IDECharacterClassBeanTypeProxy.java | 30 -
.../internal/proxy/ide/IDEClassBeanTypeProxy.java | 63 -
.../internal/proxy/ide/IDEConstructorProxy.java | 119 -
.../proxy/ide/IDEConstructorTypeProxy.java | 35 -
.../proxy/ide/IDEDoubleClassBeanTypeProxy.java | 32 -
.../proxy/ide/IDEDoubleTypeBeanTypeProxy.java | 37 -
.../jem/internal/proxy/ide/IDEExpression.java | 1077 -----
.../ide/IDEExtensionBeanTypeProxyFactory.java | 28 -
.../jem/internal/proxy/ide/IDEFieldProxy.java | 96 -
.../jem/internal/proxy/ide/IDEFieldTypeProxy.java | 33 -
.../proxy/ide/IDEFloatClassBeanTypeProxy.java | 30 -
.../proxy/ide/IDEFloatTypeBeanTypeProxy.java | 40 -
.../proxy/ide/IDEInitErrorBeanTypeProxy.java | 260 -
.../internal/proxy/ide/IDEIntegerBeanProxy.java | 38 -
.../proxy/ide/IDEIntegerClassBeanTypeProxy.java | 57 -
.../proxy/ide/IDEIntegerTypeBeanTypeProxy.java | 69 -
.../proxy/ide/IDELongClassBeanTypeProxy.java | 32 -
.../proxy/ide/IDELongTypeBeanTypeProxy.java | 41 -
.../jem/internal/proxy/ide/IDEMethodProxy.java | 191 -
.../internal/proxy/ide/IDEMethodProxyFactory.java | 337 --
.../jem/internal/proxy/ide/IDEMethodTypeProxy.java | 35 -
.../jem/internal/proxy/ide/IDENumberBeanProxy.java | 107 -
.../internal/proxy/ide/IDENumberBeanTypeProxy.java | 51 -
.../jem/internal/proxy/ide/IDEObjectBeanProxy.java | 65 -
.../proxy/ide/IDEPrimitiveBeanTypeProxy.java | 36 -
.../proxy/ide/IDEProxyFactoryRegistry.java | 205 -
.../jem/internal/proxy/ide/IDERegistration.java | 154 -
.../proxy/ide/IDEShortClassBeanTypeProxy.java | 28 -
.../proxy/ide/IDEShortTypeBeanTypeProxy.java | 36 -
.../proxy/ide/IDEStandardBeanProxyFactory.java | 262 -
.../proxy/ide/IDEStandardBeanTypeProxyFactory.java | 465 --
.../jem/internal/proxy/ide/IDEStringBeanProxy.java | 40 -
.../internal/proxy/ide/IDEStringBeanTypeProxy.java | 49 -
.../jem/internal/proxy/ide/IDEThrowableProxy.java | 100 -
.../jem/internal/proxy/ide/IDEVMServer.java | 83 -
.../jem/internal/proxy/ide/IIDEBeanProxy.java | 29 -
.../proxy/ide/awt/IDEDimensionBeanProxy.java | 51 -
.../proxy/ide/awt/IDEDimensionBeanTypeProxy.java | 46 -
.../internal/proxy/ide/awt/IDEPointBeanProxy.java | 51 -
.../proxy/ide/awt/IDEPointBeanTypeProxy.java | 44 -
.../proxy/ide/awt/IDERectangleBeanProxy.java | 73 -
.../proxy/ide/awt/IDERectangleBeanTypeProxy.java | 45 -
.../jem/internal/proxy/ide/awt/IDERegisterAWT.java | 29 -
.../ide/awt/IDEStandardAWTBeanProxyFactory.java | 47 -
.../awt/IDEStandardAWTBeanTypeProxyFactory.java | 85 -
.../proxy/common/remote/CommandErrorException.java | 76 -
.../jem/internal/proxy/common/remote/Commands.java | 1450 ------
.../proxy/common/remote/ExpressionCommands.java | 345 --
.../proxy/common/remote/IOCommandException.java | 60 -
.../proxy/common/remote/TransmitableArray.java | 36 -
.../common/remote/UnexpectedCommandException.java | 72 -
.../UnexpectedExceptionCommandException.java | 67 -
.../org.eclipse.jem.proxy/schema/contributors.exsd | 149 -
.../org.eclipse.jem.proxy/schema/extensions.exsd | 157 -
.../jem/internal/proxy/vm/remote/AWTStarter.java | 35 -
.../jem/internal/proxy/vm/remote/ArrayHelper.java | 71 -
.../internal/proxy/vm/remote/CallbackHandler.java | 181 -
.../proxy/vm/remote/CallbackOutputStream.java | 155 -
.../jem/internal/proxy/vm/remote/ClassHelper.java | 48 -
.../proxy/vm/remote/ConnectionHandler.java | 926 ----
.../internal/proxy/vm/remote/ConnectionThread.java | 53 -
.../vm/remote/ExpressionProcesserController.java | 809 ----
.../jem/internal/proxy/vm/remote/IdentityMap.java | 96 -
.../proxy/vm/remote/RemoteVMApplication.java | 45 -
.../proxy/vm/remote/RemoteVMServerThread.java | 717 ---
.../proxy/vm/remote/StackTraceUtility.java | 32 -
plugins/org.eclipse.jem.ui/.classpath | 8 -
plugins/org.eclipse.jem.ui/.cvsignore | 2 -
plugins/org.eclipse.jem.ui/.options | 3 -
plugins/org.eclipse.jem.ui/.project | 28 -
.../.settings/org.eclipse.jdt.core.prefs | 289 --
.../.settings/org.eclipse.jdt.ui.prefs | 8 -
plugins/org.eclipse.jem.ui/META-INF/MANIFEST.MF | 27 -
plugins/org.eclipse.jem.ui/about.html | 25 -
.../internal/beaninfo/ui/BIListElementSorter.java | 78 -
.../beaninfo/ui/BPBeaninfoListElement.java | 80 -
.../jem/internal/beaninfo/ui/BPListElement.java | 56 -
.../internal/beaninfo/ui/BPSearchListElement.java | 71 -
.../internal/beaninfo/ui/BeanInfoUIMessages.java | 94 -
.../beaninfo/ui/BeaninfoEntrySearchpathDialog.java | 448 --
.../internal/beaninfo/ui/BeaninfoPathsBlock.java | 550 ---
.../beaninfo/ui/BeaninfosPropertyPage.java | 209 -
.../beaninfo/ui/BeaninfosWorkbookPage.java | 640 ---
.../jem/internal/beaninfo/ui/ExceptionHandler.java | 81 -
.../jem/internal/beaninfo/ui/IBuildSearchPage.java | 24 -
.../beaninfo/ui/IStatusChangeListener.java | 32 -
.../jem/internal/beaninfo/ui/ImageDisposer.java | 50 -
.../jem/internal/beaninfo/ui/OverlayComposite.java | 200 -
.../beaninfo/ui/PackageOnlyContentProvider.java | 57 -
.../internal/beaninfo/ui/PackagesWorkbookPage.java | 464 --
.../internal/beaninfo/ui/SPListElementSorter.java | 88 -
.../beaninfo/ui/SearchPathListLabelProvider.java | 375 --
.../ui/SearchpathOrderingWorkbookPage.java | 326 --
.../jem/internal/beaninfo/ui/StatusHelper.java | 67 -
.../ui/TypedElementSelectionValidator.java | 99 -
.../internal/beaninfo/ui/TypedViewerFilter.java | 45 -
.../beaninfo/ui/VariableSelectionBlock.java | 310 --
.../jem/internal/beaninfo/ui/messages.properties | 109 -
plugins/org.eclipse.jem.ui/build.properties | 22 -
plugins/org.eclipse.jem.ui/icons/blank.gif | Bin 70 -> 0 bytes
plugins/org.eclipse.jem.ui/icons/cp_order_obj.gif | Bin 326 -> 0 bytes
.../icons/full/ctool16/run_exc.gif | Bin 379 -> 0 bytes
.../icons/full/obj16/file_obj.gif | Bin 561 -> 0 bytes
.../icons/full/wizban/run_wiz.gif | Bin 3202 -> 0 bytes
plugins/org.eclipse.jem.ui/icons/javabean.gif | Bin 310 -> 0 bytes
.../icons/package_obj_missing.gif | Bin 211 -> 0 bytes
plugins/org.eclipse.jem.ui/icons/plugin_obj.gif | Bin 328 -> 0 bytes
plugins/org.eclipse.jem.ui/plugin.properties | 33 -
plugins/org.eclipse.jem.ui/plugin.xml | 134 -
.../eclipse/jem/internal/ui/core/JEMUIPlugin.java | 60 -
.../internal/ui/proxy/ProxyLaunchMenuDelegate.java | 31 -
.../ui/proxy/ProxyLaunchToolbarDelegate.java | 127 -
.../jem/internal/ui/proxy/ProxyUIMessages.java | 29 -
.../SelectDefaultConfigurationActionDelegate.java | 244 -
.../jem/internal/ui/proxy/messages.properties | 17 -
.../ui/proxy/remote/LocalLaunchProjectTab.java | 261 -
.../ui/proxy/remote/LocalLaunchTabGroup.java | 49 -
.../ui/proxy/remote/ProxyRemoteUIMessages.java | 35 -
.../internal/ui/proxy/remote/messages.properties | 23 -
plugins/org.eclipse.jem.workbench/.classpath | 7 -
plugins/org.eclipse.jem.workbench/.cvsignore | 2 -
plugins/org.eclipse.jem.workbench/.project | 28 -
.../.settings/org.eclipse.jdt.core.prefs | 289 --
.../.settings/org.eclipse.jdt.ui.prefs | 8 -
.../org.eclipse.jem.workbench/META-INF/MANIFEST.MF | 18 -
plugins/org.eclipse.jem.workbench/about.html | 25 -
plugins/org.eclipse.jem.workbench/build.properties | 20 -
.../org.eclipse.jem.workbench/plugin.properties | 20 -
plugins/org.eclipse.jem.workbench/plugin.xml | 23 -
.../jem/internal/adapters/jdom/JDOMAdaptor.java | 351 --
.../internal/adapters/jdom/JDOMClassFinder.java | 94 -
.../internal/adapters/jdom/JDOMSearchHelper.java | 370 --
.../adapters/jdom/JavaClassJDOMAdaptor.java | 703 ---
.../adapters/jdom/JavaFieldJDOMAdaptor.java | 291 --
.../adapters/jdom/JavaJDOMAdapterFactory.java | 233 -
.../adapters/jdom/JavaMethodJDOMAdaptor.java | 364 --
.../internal/adapters/jdom/JavaModelListener.java | 44 -
.../adapters/jdom/JavaReflectionSynchronizer.java | 349 --
.../jem/internal/plugin/IJavaProjectInfo.java | 20 -
.../eclipse/jem/internal/plugin/JavaEMFNature.java | 180 -
.../eclipse/jem/internal/plugin/JavaPlugin.java | 67 -
.../jem/internal/plugin/JavaProjectInfo.java | 50 -
.../jem/workbench/utility/ASTBoundResolver.java | 117 -
.../jem/workbench/utility/IJavaEMFNature.java | 26 -
.../jem/workbench/utility/JavaModelListener.java | 426 --
.../jem/workbench/utility/JemProjectUtilities.java | 746 ---
.../jem/workbench/utility/NoASTResolver.java | 51 -
.../utility/ParseTreeCreationFromAST.java | 587 ---
.../utility/WorkbenchUtilityMessages.java | 32 -
.../jem/workbench/utility/messages.properties | 15 -
plugins/org.eclipse.jem/.classpath | 8 -
.../.settings/org.eclipse.jdt.core.prefs | 289 --
plugins/org.eclipse.jem/META-INF/MANIFEST.MF | 28 -
.../impl/NaiveExpressionFlattener.java | 331 --
.../META-INF/MANIFEST.MF | 18 -
.../META-INF/MANIFEST.MF | 13 -
.../plugin.xml | 7 -
.../.settings/org.eclipse.pde.prefs | 13 -
.../META-INF/MANIFEST.MF | 25 -
.../META-INF/MANIFEST.MF | 29 -
.../classpath/FlexibleProjectContainer.java | 512 --
.../integration/JavaArtifactEditModel.java | 217 -
.../JavaProjectFacetCreationDataModelProvider.java | 30 -
.../org.eclipse.jst.j2ee.core/META-INF/MANIFEST.MF | 81 -
.../internal/validation/AbstractEJBValidator.java | 320 --
.../validation/ApplicationClientValidator.java | 157 -
.../internal/validation/ConnectorValidator.java | 133 -
.../model/internal/validation/EJBValidator.java | 529 --
.../model/internal/validation/EarValidator.java | 959 ----
.../model/internal/validation/J2EEValidator.java | 596 ---
.../model/internal/validation/WarValidator.java | 1420 ------
.../org.eclipse.jst.j2ee.core/model/j2ee.genmodel | 898 ----
.../mofj2ee/ejb.properties | 51 -
.../META-INF/MANIFEST.MF | 28 -
.../org.eclipse.jst.j2ee.jca/META-INF/MANIFEST.MF | 40 -
...ectorFacetProjectCreationDataModelProvider.java | 59 -
.../ConnectorComponentLoadStrategyImpl.java | 287 --
.../META-INF/MANIFEST.MF | 42 -
.../j2ee/navigator/internal/J2EEViewerSorter.java | 54 -
.../org.eclipse.jst.j2ee.ui/META-INF/MANIFEST.MF | 72 -
.../internal/WebLibDependencyPropertiesPage.java | 341 --
.../j2ee/internal/plugin/CommonEditorUtility.java | 101 -
.../j2ee/internal/plugin/UIProjectUtilities.java | 144 -
.../war/ui/util/J2EEWebAppItemProvider.java | 240 -
.../internal/wizard/EARComponentImportPage.java | 125 -
.../J2EEComponentFacetCreationWizardPage.java | 104 -
.../jst/j2ee/internal/wizard/J2EEExportPage.java | 390 --
.../j2ee/internal/wizard/J2EEModuleImportPage.java | 100 -
.../wizard/NewJ2EEComponentSelectionPage.java | 537 ---
.../j2ee/ui/project/facet/EarProjectFirstPage.java | 34 -
.../facet/RuntimeMismatchMarkerResolutions.java | 122 -
.../ui/project/facet/UtilityProjectWizard.java | 68 -
plugins/org.eclipse.jst.j2ee.ui/plugin.properties | 53 -
plugins/org.eclipse.jst.j2ee.ui/plugin.xml | 707 ---
.../org.eclipse.jst.j2ee.web/META-INF/MANIFEST.MF | 48 -
.../web/operations/NewServletClassOperation.java | 435 --
.../jst/j2ee/internal/web/plugin/WebPlugin.java | 295 --
.../operations/WebComponentSaveStrategyImpl.java | 110 -
.../WebFacetProjectCreationDataModelProvider.java | 61 -
.../web/componentcore/util/WebArtifactEdit.java | 651 ---
.../META-INF/MANIFEST.MF | 35 -
.../WebServicesNavigatorSynchronizer.java | 105 -
.../META-INF/MANIFEST.MF | 35 -
.../webservice/helper/WebServicesManager.java | 917 ----
plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF | 75 -
.../AppClientComponentImportDataModelProvider.java | 69 -
...lientFacetProjectCreationDataModelProvider.java | 60 -
.../operations/ComponentSaveStrategyImpl.java | 238 -
.../operations/J2EEComponentSaveStrategyImpl.java | 203 -
plugins/org.eclipse.jst.j2ee/build.properties | 33 -
.../jst/j2ee/internal/common/ClasspathModel.java | 726 ---
.../classpath/J2EEComponentClasspathContainer.java | 311 --
.../classpath/J2EEComponentClasspathUpdater.java | 418 --
.../webservices/WSDLServiceExtManager.java | 32 -
.../EARComponentImportDataModelProvider.java | 725 ---
.../J2EEArtifactImportDataModelProvider.java | 238 -
...omponentFromEnterpriseApplicationOperation.java | 83 -
.../EarComponentCreationFacetOperation.java | 131 -
.../EARFacetProjectCreationDataModelProvider.java | 30 -
.../j2ee/project/facet/EarFacetRuntimeHandler.java | 214 -
.../jst/j2ee/project/facet/EarFacetValidator.java | 138 -
.../UtilityProjectCreationDataModelProvider.java | 55 -
.../J2EEModuleVirtualArchiveComponent.java | 54 -
.../componentcore/J2EEModuleVirtualComponent.java | 159 -
.../AppClientBinaryComponentHelper.java | 86 -
.../componentcore/EJBBinaryComponentHelper.java | 86 -
.../EnterpriseBinaryComponentHelper.java | 186 -
.../componentcore/JCABinaryComponentHelper.java | 86 -
.../UtilityBinaryComponentHelper.java | 88 -
.../componentcore/WebBinaryComponentHelper.java | 86 -
.../project/J2EECreationResourceHandler.java | 161 -
.../internal/project/J2EEProjectUtilities.java | 898 ----
.../project/facet/J2EEFacetInstallDelegate.java | 143 -
.../J2EEFacetProjectCreationDataModelProvider.java | 168 -
.../J2EEModuleFacetInstallDataModelProvider.java | 236 -
.../deployables/J2EEDeployableFactory.java | 186 -
.../deployables/J2EEFlexProjDeployable.java | 471 --
.../jst/j2ee/internal/plugin/J2EEPlugin.java | 650 ---
.../j2ee/internal/validation/UIEarValidator.java | 678 ---
plugins/org.eclipse.jst.j2ee/plugin.xml | 767 ---
.../property_files/j2eecreation.properties | 142 -
.../listeners/ProjectRefactoringListener.java | 230 -
.../operations/ProjectDeleteOperation.java | 79 -
.../operations/ProjectRefactorMetadata.java | 369 --
.../operations/ProjectRenameOperation.java | 129 -
.../UpdateDependentModuleonDeleteOp.java | 150 -
.../META-INF/MANIFEST.MF | 43 -
.../actions/ConvertToWebModuleTypeAction.java | 129 -
.../internal/navigator/CompressedJavaProject.java | 119 -
.../internal/navigator/WebJavaContentProvider.java | 233 -
.../MultiSelectFilteredFileSelectionDialog.java | 663 ---
.../org.eclipse.wst.web.ui/META-INF/MANIFEST.MF | 24 -
.../wst/web/ui/internal/WSTWebUIPlugin.java | 114 -
.../wizards/DataModelFacetCreationWizardPage.java | 249 -
.../wizards/NewProjectDataModelFacetWizard.java | 498 --
.../wizards/SimpleWebProjectFirstPage.java | 17 -
plugins/org.eclipse.wst.web/META-INF/MANIFEST.MF | 27 -
.../wst/project/facet/IProductConstants.java | 31 -
.../eclipse/wst/project/facet/ProductManager.java | 62 -
...leWebFacetProjectCreationDataModelProvider.java | 20 -
.../internal/deployables/ComponentDeployable.java | 377 --
817 files changed, 135274 deletions(-)
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/.cvsignore
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/.project
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/META-INF/MANIFEST.MF
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/about.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/build.properties
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/images/AddRelationship.gif
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/images/ProjectExplorer.gif
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/images/Relationships.gif
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/images/n5rpdcst.gif
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/images/ycwin.gif
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/jst_j2ee_relsmap.ditamap
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/jst_j2ee_relsmap.xml
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/jst_j2ee_toc.ditamap
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/jst_j2ee_toc.xml
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/myplugin.xml
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/org.eclipse.jst.j2ee.doc.user.maplist
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/org.eclipse.jst.j2ee.doc.userindex.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/org.eclipse.jst.j2ee.doc.userindex.xml
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/plugin.properties
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/plugin.xml
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/cjappcliproj.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/cjappcliproj.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/cjarch.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/cjarch.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/cjcircle.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/cjcircle.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/cjearproj.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/cjearproj.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/cjpers.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/cjpers.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/cjview.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/cjview.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/cjviewfilters.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/cjviewfilters.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/ph-importexport.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/ph-importexport.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/ph-j2eeapp.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/ph-j2eeapp.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/ph-projects.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/ph-projects.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/ph-ref.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/ph-ref.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/rjlimitcurrent.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/rjlimitcurrent.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/rvalerr.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/rvalerr.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/rvalidators.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/rvalidators.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/taddingfacet.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/taddingfacet.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjappproj.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjappproj.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjcircleb.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjcircleb.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjear.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjear.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjexpapp.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjexpapp.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjexpear.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjexpear.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjexprar.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjexprar.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjimpapp.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjimpapp.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjimpear.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjimpear.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjimprar.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjimprar.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjrar.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjrar.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjtargetserver.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjtargetserver.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjval.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjval.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjvaldisable.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjvaldisable.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjvalglobalpref.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjvalglobalpref.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjvalmanual.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjvalmanual.html
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjvalselect.dita
delete mode 100644 docs/org.eclipse.jst.j2ee.doc.user/topics/tjvalselect.html
delete mode 100644 docs/org.eclipse.jst.j2ee.infopop/.cvsignore
delete mode 100644 docs/org.eclipse.jst.j2ee.infopop/.project
delete mode 100644 docs/org.eclipse.jst.j2ee.infopop/EJBCreateWizard_HelpContexts.xml
delete mode 100644 docs/org.eclipse.jst.j2ee.infopop/ExportWizard_HelpContexts.xml
delete mode 100644 docs/org.eclipse.jst.j2ee.infopop/ImportWizard_HelpContexts.xml
delete mode 100644 docs/org.eclipse.jst.j2ee.infopop/J2EEGeneral_HelpContexts.xml
delete mode 100644 docs/org.eclipse.jst.j2ee.infopop/META-INF/MANIFEST.MF
delete mode 100644 docs/org.eclipse.jst.j2ee.infopop/Preferences_HelpContexts.xml
delete mode 100644 docs/org.eclipse.jst.j2ee.infopop/ProjectCreateWizard_HelpContexts.xml
delete mode 100644 docs/org.eclipse.jst.j2ee.infopop/ProjectPrefs_HelpContexts.xml
delete mode 100644 docs/org.eclipse.jst.j2ee.infopop/about.html
delete mode 100644 docs/org.eclipse.jst.j2ee.infopop/build.properties
delete mode 100644 docs/org.eclipse.jst.j2ee.infopop/plugin.properties
delete mode 100644 docs/org.eclipse.jst.j2ee.infopop/plugin.xml
delete mode 100644 docs/org.eclipse.jst.servlet.ui.infopop/.cvsignore
delete mode 100644 docs/org.eclipse.jst.servlet.ui.infopop/.project
delete mode 100644 docs/org.eclipse.jst.servlet.ui.infopop/DynWebWizContexts.xml
delete mode 100644 docs/org.eclipse.jst.servlet.ui.infopop/META-INF/MANIFEST.MF
delete mode 100644 docs/org.eclipse.jst.servlet.ui.infopop/ServletWizContexts.xml
delete mode 100644 docs/org.eclipse.jst.servlet.ui.infopop/about.html
delete mode 100644 docs/org.eclipse.jst.servlet.ui.infopop/build.properties
delete mode 100644 docs/org.eclipse.jst.servlet.ui.infopop/plugin.properties
delete mode 100644 docs/org.eclipse.jst.servlet.ui.infopop/plugin.xml
delete mode 100644 docs/org.eclipse.wst.web.ui.infopop/.cvsignore
delete mode 100644 docs/org.eclipse.wst.web.ui.infopop/.project
delete mode 100644 docs/org.eclipse.wst.web.ui.infopop/META-INF/MANIFEST.MF
delete mode 100644 docs/org.eclipse.wst.web.ui.infopop/StaticWebWizContexts.xml
delete mode 100644 docs/org.eclipse.wst.web.ui.infopop/about.html
delete mode 100644 docs/org.eclipse.wst.web.ui.infopop/build.properties
delete mode 100644 docs/org.eclipse.wst.web.ui.infopop/plugin.properties
delete mode 100644 docs/org.eclipse.wst.web.ui.infopop/plugin.xml
delete mode 100644 features/org.eclipse.jem-feature/.cvsignore
delete mode 100644 features/org.eclipse.jem-feature/.project
delete mode 100644 features/org.eclipse.jem-feature/build.properties
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/.classpath
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/.project
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/META-INF/MANIFEST.MF
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/about.html
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/build.properties
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/com/.placeholder
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Add.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/AddMany.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Change$Setting.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Change.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/ChangeUtil.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EObjectDescriptor.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Event.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EventFactory.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EventKind.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EventPackage.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EventUtil.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/FeatureKind.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Move.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/NotifierKind.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Remove.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/RemoveMany.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Set.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Setting.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Unset.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/AddImpl.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/AddManyImpl.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/ChangeHelper.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/ChangeImpl$SettingImpl.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/ChangeImpl.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/ChangeUtilImpl.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EObjectDescriptorImpl.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventAdapter.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventFactoryImpl.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventHelper.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventImpl.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventPackageImpl.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventReaderHelper.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventUtilImpl$BackwardEventIterator.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventUtilImpl$ForwardEventIterator.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventUtilImpl.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventWriterHelper$EObjectData.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventWriterHelper.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/MoveImpl.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/RemoveImpl.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/RemoveManyImpl.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/SetImpl.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/SettingImpl.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/UnsetImpl.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/util/EventAdapterFactory$1.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/util/EventAdapterFactory.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/util/EventSwitch.class
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/model/event.mdl
delete mode 100644 features/org.eclipse.jem-feature/com.ibm.etools.emf.event/plugin.xml
delete mode 100644 features/org.eclipse.jem-feature/eclipse_update_120.jpg
delete mode 100644 features/org.eclipse.jem-feature/epl-v10.html
delete mode 100644 features/org.eclipse.jem-feature/feature.properties
delete mode 100644 features/org.eclipse.jem-feature/feature.xml
delete mode 100644 features/org.eclipse.jem-feature/license.html
delete mode 100644 features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/build.properties
delete mode 100644 features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/eclipse_update_120.jpg
delete mode 100644 features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/epl-v10.html
delete mode 100644 features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/feature.properties
delete mode 100644 features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/feature.xml
delete mode 100644 features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/license.html
delete mode 100644 features/org.eclipse.jem-feature/org.eclipse.jem.sdk/.project
delete mode 100644 features/org.eclipse.jem-feature/org.eclipse.jem.sdk/META-INF/MANIFEST.MF
delete mode 100644 features/org.eclipse.jem-feature/org.eclipse.jem.sdk/about.html
delete mode 100644 features/org.eclipse.jem-feature/org.eclipse.jem.sdk/about.ini
delete mode 100644 features/org.eclipse.jem-feature/org.eclipse.jem.sdk/about.mappings
delete mode 100644 features/org.eclipse.jem-feature/org.eclipse.jem.sdk/about.properties
delete mode 100644 features/org.eclipse.jem-feature/org.eclipse.jem.sdk/build.properties
delete mode 100644 features/org.eclipse.jem-feature/org.eclipse.jem.sdk/eclipse32.png
delete mode 100644 features/org.eclipse.jem-feature/org.eclipse.jem.sdk/plugin.properties
delete mode 100644 features/org.eclipse.jem-feature/rootfiles/epl-v10.html
delete mode 100644 features/org.eclipse.jem-feature/rootfiles/notice.html
delete mode 100644 features/org.eclipse.jem-feature/sourceTemplateFeature/build.properties
delete mode 100644 features/org.eclipse.jem-feature/sourceTemplateFeature/eclipse_update_120.jpg
delete mode 100644 features/org.eclipse.jem-feature/sourceTemplateFeature/epl-v10.html
delete mode 100644 features/org.eclipse.jem-feature/sourceTemplateFeature/feature.properties
delete mode 100644 features/org.eclipse.jem-feature/sourceTemplateFeature/license.html
delete mode 100644 features/org.eclipse.jem-feature/sourceTemplatePlugin/about.html
delete mode 100644 features/org.eclipse.jem-feature/sourceTemplatePlugin/about.ini
delete mode 100644 features/org.eclipse.jem-feature/sourceTemplatePlugin/about.mappings
delete mode 100644 features/org.eclipse.jem-feature/sourceTemplatePlugin/about.properties
delete mode 100644 features/org.eclipse.jem-feature/sourceTemplatePlugin/build.properties
delete mode 100644 features/org.eclipse.jem-feature/sourceTemplatePlugin/eclipse32.png
delete mode 100644 features/org.eclipse.jem-feature/sourceTemplatePlugin/plugin.properties
delete mode 100644 plugins/org.eclipse.jem.beaninfo.ui/.project
delete mode 100644 plugins/org.eclipse.jem.beaninfo.ui/OBSOLETE-moved to org.eclipse.jem.ui
delete mode 100644 plugins/org.eclipse.jem.beaninfo/.classpath
delete mode 100644 plugins/org.eclipse.jem.beaninfo/.cvsignore
delete mode 100644 plugins/org.eclipse.jem.beaninfo/.options
delete mode 100644 plugins/org.eclipse.jem.beaninfo/.project
delete mode 100644 plugins/org.eclipse.jem.beaninfo/.settings/org.eclipse.core.resources.prefs
delete mode 100644 plugins/org.eclipse.jem.beaninfo/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 plugins/org.eclipse.jem.beaninfo/.settings/org.eclipse.jdt.ui.prefs
delete mode 100644 plugins/org.eclipse.jem.beaninfo/.settings/org.eclipse.pde.core.prefs
delete mode 100644 plugins/org.eclipse.jem.beaninfo/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jem.beaninfo/about.html
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeanDecorator.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeanEvent.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeaninfoFactory.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeaninfoPackage.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/EventSetDecorator.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/FeatureDecorator.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/ImplicitItem.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/IndexedPropertyDecorator.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/MethodDecorator.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/MethodProxy.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/ParameterDecorator.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/PropertyDecorator.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeanInfoAdapterMessages.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeanInfoDecoratorUtility.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoAdapterFactory.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoClassAdapter.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoJavaReflectionKeyExtension.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoModelSynchronizer.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoNature.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoProxyConstants.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoSuperAdapter.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/CreateRegistryJobHandler.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/DOMReader.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/IReader.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/SpecialResourceSet.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/UICreateRegistryJobHandler.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/messages.properties
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeanInfoCacheController.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeanInfoContributorAdapter.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfoCoreMessages.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfoEntry.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfoPlugin.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfoRegistration.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfosDoc.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/ConfigurationElementReader.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/IBeanInfoContributor.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/IBeaninfoSupplier.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/IBeaninfosDocEntry.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/Init.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/SearchpathEntry.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/Utilities.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/messages.properties
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeanDecoratorImpl.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeanEventImpl.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeaninfoFactoryImpl.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeaninfoPackageImpl.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/EventSetDecoratorImpl.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/FeatureAttributeMapEntryImpl.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/FeatureDecoratorImpl.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/IndexedPropertyDecoratorImpl.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/MethodDecoratorImpl.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/MethodProxyImpl.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/ParameterDecoratorImpl.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/PropertyDecoratorImpl.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/beaninfo/common/IBaseBeanInfoConstants.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/BeanRecord.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/EventSetRecord.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/FeatureAttributeValue.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/FeatureRecord.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/IBeanInfoIntrospectionConstants.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/IndexedPropertyRecord.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/InvalidObject.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/MethodRecord.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/ParameterRecord.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/PropertyRecord.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/ReflectFieldRecord.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/ReflectMethodRecord.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/build.properties
delete mode 100644 plugins/org.eclipse.jem.beaninfo/model/beaninfo.ecore
delete mode 100644 plugins/org.eclipse.jem.beaninfo/model/introspect.genmodel
delete mode 100644 plugins/org.eclipse.jem.beaninfo/plugin.properties
delete mode 100644 plugins/org.eclipse.jem.beaninfo/plugin.xml
delete mode 100644 plugins/org.eclipse.jem.beaninfo/proxy.jars
delete mode 100644 plugins/org.eclipse.jem.beaninfo/rose/.cvsignore
delete mode 100644 plugins/org.eclipse.jem.beaninfo/rose/beaninfo.cat
delete mode 100644 plugins/org.eclipse.jem.beaninfo/rose/introspect.mdl
delete mode 100644 plugins/org.eclipse.jem.beaninfo/schema/registrations.exsd
delete mode 100644 plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/beaninfo/vm/BaseBeanInfo.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/beaninfo/vm/basebeaninfonls.properties
delete mode 100644 plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/beaninfo/vm/beaninfo.properties
delete mode 100644 plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/BeanDescriptorEquality.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/EventSetDescriptorEquality.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/FeatureDescriptorEquality.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/IndexedPropertyDescriptorEquality.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/MethodDescriptorEquality.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/ModelingBeanInfo.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/ModelingBeanInfo15.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/ModelingBeanInfoPre15.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/ParameterDescriptorEquality.java
delete mode 100644 plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/PropertyDescriptorEquality.java
delete mode 100644 plugins/org.eclipse.jem.proxy/.classpath
delete mode 100644 plugins/org.eclipse.jem.proxy/.cvsignore
delete mode 100644 plugins/org.eclipse.jem.proxy/.options
delete mode 100644 plugins/org.eclipse.jem.proxy/.project
delete mode 100644 plugins/org.eclipse.jem.proxy/.settings/org.eclipse.core.resources.prefs
delete mode 100644 plugins/org.eclipse.jem.proxy/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 plugins/org.eclipse.jem.proxy/.settings/org.eclipse.jdt.ui.prefs
delete mode 100644 plugins/org.eclipse.jem.proxy/.settings/org.eclipse.pde.core.prefs
delete mode 100644 plugins/org.eclipse.jem.proxy/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jem.proxy/about.html
delete mode 100644 plugins/org.eclipse.jem.proxy/build.properties
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/ArrayArguments.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Block.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/BooleanLiteral.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/CannotProcessArrayTypesException.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/CannotProcessInnerClassesException.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Cast.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/CharLiteral.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Constructor.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/EvaluationException.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Expression.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Field.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/IParserConstants.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/InitializationStringEvaluationException.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/InitializationStringParser.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Message.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/MessageArgument.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/NullLiteral.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/NumberLiteral.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/PrimitiveOperation.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/ProxyInitParserMessages.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Statement.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Static.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/StringLiteral.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/messages.properties
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/AbstractEnum.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/Enum.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/ExpressionProcesser.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/ForExpression.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/IExpressionConstants.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InfixOperator.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InitparserTreeMessages.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalConditionalOperandType.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalExpressionProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalExpressionTypes.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalIfElseOperandType.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalInfixOperandType.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/NoExpressionValueException.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/PrefixOperator.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/VariableReference.java
delete mode 100644 plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/messages.properties
delete mode 100644 plugins/org.eclipse.jem.proxy/plugin.properties
delete mode 100644 plugins/org.eclipse.jem.proxy/plugin.xml
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy.jars
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/awt/IStandardAwtBeanProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/awt/JavaStandardAwtBeanConstants.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/BaseProxyFactoryRegistry.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/CollectionBeanProxyWrapper.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ConfigurationContributorAdapter.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ContainerPathContributionMapping.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ContributorExtensionPointInfo.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/EnumerationBeanProxyWrapper.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/Expression.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ExpressionProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IAccessibleObjectProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IArrayBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IArrayBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanTypeExpressionProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanTypeProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBooleanBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ICallback.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ICallbackRegistry.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ICharacterBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IConfigurationContributionController.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IConfigurationContributionInfo.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IConfigurationContributor.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IConstructorProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IDimensionBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IExpression.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IExtensionRegistration.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IFieldProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IIntegerBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IInvokable.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IMethodProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IMethodProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/INumberBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IPDEContributeClasspath.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IPointBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxyBeanType.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxyConstants.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxyField.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxyMethod.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IRectangleBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IStandardBeanProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IStandardBeanTypeProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IStringBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IUIRunner.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IteratorBeanProxyWrapper.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/JavaStandardBeanProxyConstants.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ListBeanProxyWrapper.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ListIteratorBeanProxyWrapper.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ListenerList.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/MapJNITypes.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/PDEContributeClasspath.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/PDEContributeClasspathInstance.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/PDEProcessForPlugin.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyFactoryRegistry.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyFindSupport.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyLaunchSupport.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyMessages.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyPlugin.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ThrowableProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/UIRunner.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/messages.properties
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/AmbiguousMethodException.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/CommandException.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/GenericEventQueue.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/ICallback.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/ICallbackHandler.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/ICallbackRunnable.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/ICommandException.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/IVMCallbackServer.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/IVMServer.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/MapTypes.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/Messages.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/MethodHelper.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/UnresolvedCompilationError.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/messages.properties
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/BeanProxyValueSender.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/DebugModeHelper.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMBeanTypeProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMConnection.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMConstantBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMConstantBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMExpressionConnection.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMMethodProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMSpecialBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalFileConfigurationContributorController.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalProxyLaunchDelegate.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/MessageDialog.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/ProxyRemoteMessages.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/ProxyRemoteUtil.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMAbstractBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMAbstractBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMAbstractNumberBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMAccessibleObjectProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMAnAbstractBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMArrayBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMArrayBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMBigDecimalBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMBigDecimalBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMBigIntegerBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMBigIntegerBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMBooleanClassBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMBooleanClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMBooleanTypeBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMBooleanTypeBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMByteClassBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMByteClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMByteTypeBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMByteTypeBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMCallbackInputStream.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMCallbackRegistry.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMCallbackThread.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMCharacterClassBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMCharacterClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMCharacterTypeBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMCharacterTypeBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMConnection.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMConstantBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMConstructorProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMConstructorTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMDoubleClassBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMDoubleClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMDoubleTypeBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMDoubleTypeBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMExpression.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFieldProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFieldTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFloatClassBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFloatClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFloatTypeBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFloatTypeBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMInitErrorBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMIntegerClassBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMIntegerClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMIntegerTypeBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMIntegerTypeBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMInterfaceBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMInvokable.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMLongClassBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMLongClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMLongTypeBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMLongTypeBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMMasterServerThread.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMMethodProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMMethodProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMMethodTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMNumberBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMPrimitiveBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMProxyConstants.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMProxyFactoryRegistry.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMRegistryController.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMShortClassBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMShortClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMShortTypeBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMShortTypeBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStandardBeanProxyConstants.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStandardBeanProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStandardBeanTypeProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStringBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStringBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMThrowableBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMThrowableBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMVoidBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMDimensionBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMDimensionBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMPointBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMPointBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMRectangleBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMRectangleBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMRegisterAWT.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMStandardAWTBeanProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMStandardAWTBeanTypeProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/messages.properties
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEAccessibleObjectProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEArrayBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEArrayBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBigDecimalBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBigIntegerBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBooleanBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBooleanBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBooleanClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBooleanTypeBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEByteClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEByteTypeBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDECallbackRegistry.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDECharTypeBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDECharacterBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDECharacterClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEConstructorProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEConstructorTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEDoubleClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEDoubleTypeBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEExpression.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEExtensionBeanTypeProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEFieldProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEFieldTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEFloatClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEFloatTypeBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEInitErrorBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEIntegerBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEIntegerClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEIntegerTypeBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDELongClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDELongTypeBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEMethodProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEMethodProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEMethodTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDENumberBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDENumberBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEObjectBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEPrimitiveBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEProxyFactoryRegistry.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDERegistration.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEShortClassBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEShortTypeBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStandardBeanProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStandardBeanTypeProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStringBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStringBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEThrowableProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEVMServer.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IIDEBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/awt/IDEDimensionBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/awt/IDEDimensionBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/awt/IDEPointBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/awt/IDEPointBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/awt/IDERectangleBeanProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/awt/IDERectangleBeanTypeProxy.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/awt/IDERegisterAWT.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/awt/IDEStandardAWTBeanProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/awt/IDEStandardAWTBeanTypeProxyFactory.java
delete mode 100644 plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/CommandErrorException.java
delete mode 100644 plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/Commands.java
delete mode 100644 plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/ExpressionCommands.java
delete mode 100644 plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/IOCommandException.java
delete mode 100644 plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/TransmitableArray.java
delete mode 100644 plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/UnexpectedCommandException.java
delete mode 100644 plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/UnexpectedExceptionCommandException.java
delete mode 100644 plugins/org.eclipse.jem.proxy/schema/contributors.exsd
delete mode 100644 plugins/org.eclipse.jem.proxy/schema/extensions.exsd
delete mode 100644 plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/AWTStarter.java
delete mode 100644 plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/ArrayHelper.java
delete mode 100644 plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/CallbackHandler.java
delete mode 100644 plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/CallbackOutputStream.java
delete mode 100644 plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/ClassHelper.java
delete mode 100644 plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/ConnectionHandler.java
delete mode 100644 plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/ConnectionThread.java
delete mode 100644 plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/ExpressionProcesserController.java
delete mode 100644 plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/IdentityMap.java
delete mode 100644 plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/RemoteVMApplication.java
delete mode 100644 plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/RemoteVMServerThread.java
delete mode 100644 plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/StackTraceUtility.java
delete mode 100644 plugins/org.eclipse.jem.ui/.classpath
delete mode 100644 plugins/org.eclipse.jem.ui/.cvsignore
delete mode 100644 plugins/org.eclipse.jem.ui/.options
delete mode 100644 plugins/org.eclipse.jem.ui/.project
delete mode 100644 plugins/org.eclipse.jem.ui/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 plugins/org.eclipse.jem.ui/.settings/org.eclipse.jdt.ui.prefs
delete mode 100644 plugins/org.eclipse.jem.ui/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jem.ui/about.html
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/BIListElementSorter.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/BPBeaninfoListElement.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/BPListElement.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/BPSearchListElement.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/BeanInfoUIMessages.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/BeaninfoEntrySearchpathDialog.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/BeaninfoPathsBlock.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/BeaninfosPropertyPage.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/BeaninfosWorkbookPage.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/ExceptionHandler.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/IBuildSearchPage.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/IStatusChangeListener.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/ImageDisposer.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/OverlayComposite.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/PackageOnlyContentProvider.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/PackagesWorkbookPage.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/SPListElementSorter.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/SearchPathListLabelProvider.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/SearchpathOrderingWorkbookPage.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/StatusHelper.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/TypedElementSelectionValidator.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/TypedViewerFilter.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/VariableSelectionBlock.java
delete mode 100644 plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/messages.properties
delete mode 100644 plugins/org.eclipse.jem.ui/build.properties
delete mode 100644 plugins/org.eclipse.jem.ui/icons/blank.gif
delete mode 100644 plugins/org.eclipse.jem.ui/icons/cp_order_obj.gif
delete mode 100644 plugins/org.eclipse.jem.ui/icons/full/ctool16/run_exc.gif
delete mode 100644 plugins/org.eclipse.jem.ui/icons/full/obj16/file_obj.gif
delete mode 100644 plugins/org.eclipse.jem.ui/icons/full/wizban/run_wiz.gif
delete mode 100644 plugins/org.eclipse.jem.ui/icons/javabean.gif
delete mode 100644 plugins/org.eclipse.jem.ui/icons/package_obj_missing.gif
delete mode 100644 plugins/org.eclipse.jem.ui/icons/plugin_obj.gif
delete mode 100644 plugins/org.eclipse.jem.ui/plugin.properties
delete mode 100644 plugins/org.eclipse.jem.ui/plugin.xml
delete mode 100644 plugins/org.eclipse.jem.ui/ui/org/eclipse/jem/internal/ui/core/JEMUIPlugin.java
delete mode 100644 plugins/org.eclipse.jem.ui/ui/org/eclipse/jem/internal/ui/proxy/ProxyLaunchMenuDelegate.java
delete mode 100644 plugins/org.eclipse.jem.ui/ui/org/eclipse/jem/internal/ui/proxy/ProxyLaunchToolbarDelegate.java
delete mode 100644 plugins/org.eclipse.jem.ui/ui/org/eclipse/jem/internal/ui/proxy/ProxyUIMessages.java
delete mode 100644 plugins/org.eclipse.jem.ui/ui/org/eclipse/jem/internal/ui/proxy/SelectDefaultConfigurationActionDelegate.java
delete mode 100644 plugins/org.eclipse.jem.ui/ui/org/eclipse/jem/internal/ui/proxy/messages.properties
delete mode 100644 plugins/org.eclipse.jem.ui/ui/org/eclipse/jem/internal/ui/proxy/remote/LocalLaunchProjectTab.java
delete mode 100644 plugins/org.eclipse.jem.ui/ui/org/eclipse/jem/internal/ui/proxy/remote/LocalLaunchTabGroup.java
delete mode 100644 plugins/org.eclipse.jem.ui/ui/org/eclipse/jem/internal/ui/proxy/remote/ProxyRemoteUIMessages.java
delete mode 100644 plugins/org.eclipse.jem.ui/ui/org/eclipse/jem/internal/ui/proxy/remote/messages.properties
delete mode 100644 plugins/org.eclipse.jem.workbench/.classpath
delete mode 100644 plugins/org.eclipse.jem.workbench/.cvsignore
delete mode 100644 plugins/org.eclipse.jem.workbench/.project
delete mode 100644 plugins/org.eclipse.jem.workbench/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 plugins/org.eclipse.jem.workbench/.settings/org.eclipse.jdt.ui.prefs
delete mode 100644 plugins/org.eclipse.jem.workbench/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jem.workbench/about.html
delete mode 100644 plugins/org.eclipse.jem.workbench/build.properties
delete mode 100644 plugins/org.eclipse.jem.workbench/plugin.properties
delete mode 100644 plugins/org.eclipse.jem.workbench/plugin.xml
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JDOMAdaptor.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JDOMClassFinder.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JDOMSearchHelper.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaClassJDOMAdaptor.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaFieldJDOMAdaptor.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaJDOMAdapterFactory.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaMethodJDOMAdaptor.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaModelListener.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaReflectionSynchronizer.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/plugin/IJavaProjectInfo.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/plugin/JavaEMFNature.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/plugin/JavaPlugin.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/plugin/JavaProjectInfo.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ASTBoundResolver.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/IJavaEMFNature.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/JavaModelListener.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/JemProjectUtilities.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/NoASTResolver.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ParseTreeCreationFromAST.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/WorkbenchUtilityMessages.java
delete mode 100644 plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/messages.properties
delete mode 100644 plugins/org.eclipse.jem/.classpath
delete mode 100644 plugins/org.eclipse.jem/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 plugins/org.eclipse.jem/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/impl/NaiveExpressionFlattener.java
delete mode 100644 plugins/org.eclipse.jst.common.annotations.controller/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jst.common.annotations.core/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jst.common.annotations.core/plugin.xml
delete mode 100644 plugins/org.eclipse.jst.common.annotations.ui/.settings/org.eclipse.pde.prefs
delete mode 100644 plugins/org.eclipse.jst.common.annotations.ui/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jst.common.frameworks/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/classpath/FlexibleProjectContainer.java
delete mode 100644 plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/integration/JavaArtifactEditModel.java
delete mode 100644 plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaProjectFacetCreationDataModelProvider.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.core/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/AbstractEJBValidator.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/ApplicationClientValidator.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/ConnectorValidator.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/EJBValidator.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/EarValidator.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/J2EEValidator.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/WarValidator.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.core/model/j2ee.genmodel
delete mode 100644 plugins/org.eclipse.jst.j2ee.core/mofj2ee/ejb.properties
delete mode 100644 plugins/org.eclipse.jst.j2ee.jca.ui/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jst.j2ee.jca/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jst.j2ee.jca/jca/org/eclipse/jst/j2ee/jca/project/facet/ConnectorFacetProjectCreationDataModelProvider.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.jca/jcaedit/org/eclipse/jst/j2ee/internal/jca/archive/operations/ConnectorComponentLoadStrategyImpl.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.navigator.ui/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jst.j2ee.navigator.ui/j2ee-navigator/org/eclipse/jst/j2ee/navigator/internal/J2EEViewerSorter.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.ui/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/WebLibDependencyPropertiesPage.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/plugin/CommonEditorUtility.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/plugin/UIProjectUtilities.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/war/ui/util/J2EEWebAppItemProvider.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/EARComponentImportPage.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEComponentFacetCreationWizardPage.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEExportPage.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEModuleImportPage.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJ2EEComponentSelectionPage.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/EarProjectFirstPage.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/RuntimeMismatchMarkerResolutions.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/UtilityProjectWizard.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.ui/plugin.properties
delete mode 100644 plugins/org.eclipse.jst.j2ee.ui/plugin.xml
delete mode 100644 plugins/org.eclipse.jst.j2ee.web/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewServletClassOperation.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/plugin/WebPlugin.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/internal/web/archive/operations/WebComponentSaveStrategyImpl.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/internal/web/archive/operations/WebFacetProjectCreationDataModelProvider.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/componentcore/util/WebArtifactEdit.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.webservice.ui/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jst.j2ee.webservice.ui/webservices_ui/org/eclipse/jst/j2ee/internal/webservice/WebServicesNavigatorSynchronizer.java
delete mode 100644 plugins/org.eclipse.jst.j2ee.webservice/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/helper/WebServicesManager.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jst.j2ee/appclientcreation/org/eclipse/jst/j2ee/applicationclient/internal/creation/AppClientComponentImportDataModelProvider.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/appclientcreation/org/eclipse/jst/j2ee/applicationclient/internal/creation/AppClientFacetProjectCreationDataModelProvider.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/ComponentSaveStrategyImpl.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/J2EEComponentSaveStrategyImpl.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/build.properties
delete mode 100644 plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/ClasspathModel.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathContainer.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathUpdater.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/webservices/WSDLServiceExtManager.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EARComponentImportDataModelProvider.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEArtifactImportDataModelProvider.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/RemoveComponentFromEnterpriseApplicationOperation.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EarComponentCreationFacetOperation.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/EARFacetProjectCreationDataModelProvider.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/EarFacetRuntimeHandler.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/EarFacetValidator.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/UtilityProjectCreationDataModelProvider.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/componentcore/J2EEModuleVirtualArchiveComponent.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/componentcore/J2EEModuleVirtualComponent.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/AppClientBinaryComponentHelper.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EJBBinaryComponentHelper.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EnterpriseBinaryComponentHelper.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/JCABinaryComponentHelper.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/UtilityBinaryComponentHelper.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/WebBinaryComponentHelper.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EECreationResourceHandler.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEProjectUtilities.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/project/facet/J2EEFacetInstallDelegate.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/project/facet/J2EEFacetProjectCreationDataModelProvider.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/project/facet/J2EEModuleFacetInstallDataModelProvider.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deployables/J2EEDeployableFactory.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deployables/J2EEFlexProjDeployable.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/plugin/J2EEPlugin.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/validation/UIEarValidator.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/plugin.xml
delete mode 100644 plugins/org.eclipse.jst.j2ee/property_files/j2eecreation.properties
delete mode 100644 plugins/org.eclipse.jst.j2ee/refactor/org/eclipse/jst/j2ee/refactor/listeners/ProjectRefactoringListener.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/refactor/org/eclipse/jst/j2ee/refactor/operations/ProjectDeleteOperation.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/refactor/org/eclipse/jst/j2ee/refactor/operations/ProjectRefactorMetadata.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/refactor/org/eclipse/jst/j2ee/refactor/operations/ProjectRenameOperation.java
delete mode 100644 plugins/org.eclipse.jst.j2ee/refactor/org/eclipse/jst/j2ee/refactor/operations/UpdateDependentModuleonDeleteOp.java
delete mode 100644 plugins/org.eclipse.jst.servlet.ui/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/actions/ConvertToWebModuleTypeAction.java
delete mode 100644 plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/CompressedJavaProject.java
delete mode 100644 plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/WebJavaContentProvider.java
delete mode 100644 plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/MultiSelectFilteredFileSelectionDialog.java
delete mode 100644 plugins/org.eclipse.wst.web.ui/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/WSTWebUIPlugin.java
delete mode 100644 plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/DataModelFacetCreationWizardPage.java
delete mode 100644 plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/NewProjectDataModelFacetWizard.java
delete mode 100644 plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/SimpleWebProjectFirstPage.java
delete mode 100644 plugins/org.eclipse.wst.web/META-INF/MANIFEST.MF
delete mode 100644 plugins/org.eclipse.wst.web/static_web_project/org/eclipse/wst/project/facet/IProductConstants.java
delete mode 100644 plugins/org.eclipse.wst.web/static_web_project/org/eclipse/wst/project/facet/ProductManager.java
delete mode 100644 plugins/org.eclipse.wst.web/static_web_project/org/eclipse/wst/project/facet/SimpleWebFacetProjectCreationDataModelProvider.java
delete mode 100644 plugins/org.eclipse.wst.web/static_web_project/org/eclipse/wst/web/internal/deployables/ComponentDeployable.java
diff --git a/docs/org.eclipse.jst.j2ee.doc.user/.cvsignore b/docs/org.eclipse.jst.j2ee.doc.user/.cvsignore
deleted file mode 100644
index 6e60185a7..000000000
--- a/docs/org.eclipse.jst.j2ee.doc.user/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-build.xml
-org.eclipse.jst.j2ee.doc.user_1.0.0.jar
-temp
-DitaLink.cat
\ No newline at end of file
diff --git a/docs/org.eclipse.jst.j2ee.doc.user/.project b/docs/org.eclipse.jst.j2ee.doc.user/.project
deleted file mode 100644
index 86d94083c..000000000
--- a/docs/org.eclipse.jst.j2ee.doc.user/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
May 2, 2006
- -The Eclipse Foundation makes available all content in this plug-in -("Content"). Unless otherwise indicated below, the Content is provided to you -under the terms and conditions of the Eclipse Public License Version 1.0 -("EPL"). A copy of the EPL is available at -http://www.eclipse.org/org/documents/epl-v10.php. -For purposes of the EPL, "Program" will mean the Content.
- -If you did not receive this Content directly from the Eclipse Foundation, the -Content is being redistributed by another party ("Redistributor") 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 -and such source code may be obtained at -http://www.eclipse.org/.
- - - diff --git a/docs/org.eclipse.jst.j2ee.doc.user/build.properties b/docs/org.eclipse.jst.j2ee.doc.user/build.properties deleted file mode 100644 index a3ec344f8..000000000 --- a/docs/org.eclipse.jst.j2ee.doc.user/build.properties +++ /dev/null @@ -1,9 +0,0 @@ -bin.includes = images/,\ - jst_j2ee_toc.xml,\ - topics/,\ - plugin.xml,\ - plugin.properties,\ - META-INF/,\ - about.html,\ - org.eclipse.jst.j2ee.doc.userindex.html -src.includes = build.properties,\ \ No newline at end of file diff --git a/docs/org.eclipse.jst.j2ee.doc.user/images/AddRelationship.gif b/docs/org.eclipse.jst.j2ee.doc.user/images/AddRelationship.gif deleted file mode 100644 index a56a758a4..000000000 Binary files a/docs/org.eclipse.jst.j2ee.doc.user/images/AddRelationship.gif and /dev/null differ diff --git a/docs/org.eclipse.jst.j2ee.doc.user/images/ProjectExplorer.gif b/docs/org.eclipse.jst.j2ee.doc.user/images/ProjectExplorer.gif deleted file mode 100644 index d5c72901b..000000000 Binary files a/docs/org.eclipse.jst.j2ee.doc.user/images/ProjectExplorer.gif and /dev/null differ diff --git a/docs/org.eclipse.jst.j2ee.doc.user/images/Relationships.gif b/docs/org.eclipse.jst.j2ee.doc.user/images/Relationships.gif deleted file mode 100644 index a9f52eb04..000000000 Binary files a/docs/org.eclipse.jst.j2ee.doc.user/images/Relationships.gif and /dev/null differ diff --git a/docs/org.eclipse.jst.j2ee.doc.user/images/n5rpdcst.gif b/docs/org.eclipse.jst.j2ee.doc.user/images/n5rpdcst.gif deleted file mode 100644 index 68be18cb6..000000000 Binary files a/docs/org.eclipse.jst.j2ee.doc.user/images/n5rpdcst.gif and /dev/null differ diff --git a/docs/org.eclipse.jst.j2ee.doc.user/images/ycwin.gif b/docs/org.eclipse.jst.j2ee.doc.user/images/ycwin.gif deleted file mode 100644 index 895f9ca06..000000000 Binary files a/docs/org.eclipse.jst.j2ee.doc.user/images/ycwin.gif and /dev/null differ diff --git a/docs/org.eclipse.jst.j2ee.doc.user/jst_j2ee_relsmap.ditamap b/docs/org.eclipse.jst.j2ee.doc.user/jst_j2ee_relsmap.ditamap deleted file mode 100644 index c0ba382ac..000000000 --- a/docs/org.eclipse.jst.j2ee.doc.user/jst_j2ee_relsmap.ditamap +++ /dev/null @@ -1,140 +0,0 @@ - - - diff --git a/docs/org.eclipse.jst.j2ee.doc.user/jst_j2ee_relsmap.xml b/docs/org.eclipse.jst.j2ee.doc.user/jst_j2ee_relsmap.xml deleted file mode 100644 index a0c990b2e..000000000 --- a/docs/org.eclipse.jst.j2ee.doc.user/jst_j2ee_relsmap.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - Application client projects contain the
-resources needed for application client modules. An application client module
-is used to contain a full-function client
An application client project enables you to do the following things:
-Like
In the workbench, application client projects are always referenced by
-enterprise application (EAR) projects. When you create an application client
-project, you specify the enterprise application project to which the application
-client project belongs. A module element is automatically added to the
An application client project is deployed as a JAR file. This application
-client JAR file contains the necessary resources for the application, including
Application client projects are typically run on networked client systems
-connected to J2EE (EJB) servers. The point of entry for the application client
-is a
A J2EE application client container provides access to the J2EE service -(JNDI naming services, deployment services, transaction services, and security -services) and communications APIs (internet protocols, Remote Method Invocation -protocols, Object Management Group protocols, Messaging protocols, and data -formats).
-By default, application client projects contain one folder named
Application client projects contain the -resources needed for application client modules. An application client module -is used to contain a full-function client Javaâ„¢ application (non Web-based) that connects -to and uses the J2EE resources defined in your server. When you place the -client code in an application client module instead of a simple JAR file, -the application client benefits from the server's resources (it does not need -to re-specify the class path to J2EE and server JAR files) as well as from -easier JNDI lookup (the client container fills in the initial context and -other parameters). The application client project allows you to work as if -you are creating a standalone Java application in a Java project.
- -An application client project enables you to do the following things:
- -Like Java projects, application client projects contain the -resources needed for application clients, including Java class -files. When you create a new application client project, the environment is -set up for Java development. A Java builder is associated with the -project so the Java source can be incrementally compiled as it is updated. -The application client project contains information about the type hierarchy -and Java elements. -This information is kept current as changes are made, and the Java builder -will incrementally compile the resources within these projects as the resources -are updated.
- -In the workbench, application client projects are always referenced by -enterprise application (EAR) projects. When you create an application client -project, you specify the enterprise application project to which the application -client project belongs. A module element is automatically added to the application.xml deployment -descriptor for the EAR project.
- -An application client project is deployed as a JAR file. This application -client JAR file contains the necessary resources for the application, including Java class -files, and deployment descriptor information and any meta-data extensions -and bindings files.
- -Application client projects are typically run on networked client systems -connected to J2EE (EJB) servers. The point of entry for the application client -is a Java main-class, -which is simply a Java class that contains a static main method. The class -is declared in the manifest file of the client module.
- -A J2EE application client container provides access to the J2EE service -(JNDI naming services, deployment services, transaction services, and security -services) and communications APIs (internet protocols, Remote Method Invocation -protocols, Object Management Group protocols, Messaging protocols, and data -formats).
- -By default, application client projects contain one folder named appClientModule, -which contains both Java source code and compiled .class files, -along with all the meta-data files in the META-INF subfolder.
- - - -The economy and technology of today have -intensified the need for faster, more efficient, and larger-scale information -management solutions. The J2EE specification satisfies these challenges by -providing a programming model that improves development productivity, standardizes -the platform for hosting enterprise applications, and ensures portability -of developed applications with an extensive test suite.
-J2EE architecture supports component-based development of multi-tier enterprise -applications. A J2EE application system typically includes the following tiers:
-J2EE applications are comprised of components, containers, and services. -Components are application-level components. Web components, such as Servlets -and JSPs, provide dynamic responses to requests from a Web page. EJB components -contain server-side business logic for enterprise applications. Web and EJB -component containers host services that support Web and EJB modules.
-For more information on J2EE architecture and its implicit technologies,
-download and read the
The Javaâ„¢ 2 Platform, Enterprise Edition (J2EE) -provides a standard for developing multitier, enterprise services.
- -The economy and technology of today have -intensified the need for faster, more efficient, and larger-scale information -management solutions. The J2EE specification satisfies these challenges by -providing a programming model that improves development productivity, standardizes -the platform for hosting enterprise applications, and ensures portability -of developed applications with an extensive test suite.
- -J2EE architecture supports component-based development of multi-tier enterprise -applications. A J2EE application system typically includes the following tiers:
- -J2EE applications are comprised of components, containers, and services. -Components are application-level components. Web components, such as Servlets -and JSPs, provide dynamic responses to requests from a Web page. EJB components -contain server-side business logic for enterprise applications. Web and EJB -component containers host services that support Web and EJB modules.
- -For more information on J2EE architecture and its implicit technologies, -download and read the J2EE 1.4 Specification.
- - - -A cyclical dependency between two or more
-modules in an enterprise application most commonly occurs when projects are
-imported from outside the Workbench. When a cycle exists between two or more
-modules in an enterprise application, the
Therefore, the best practice is to componentize your projects or modules. -This allows you to have your module dependencies function as a tree instead -of a cycle diagram. This practice has the added benefit of producing a better -factored and layered application.
- -A cyclical dependency between two or more -modules in an enterprise application most commonly occurs when projects are -imported from outside the Workbench. When a cycle exists between two or more -modules in an enterprise application, the Javaâ„¢ builder cannot accurately compute the -build order of the projects. Full builds fail under these conditions, or require -several invocations.
- -Therefore, the best practice is to componentize your projects or modules. -This allows you to have your module dependencies function as a tree instead -of a cycle diagram. This practice has the added benefit of producing a better -factored and layered application.
- - - -An enterprise application project contains
-a set of references to other J2EE modules and
When a J2EE module project is created, it can be associated with an enterprise -application project. The project wizards aid this by allowing you to specify -a new or existing enterprise application project. Enterprise application projects -are exported as EAR (enterprise archive) files that include all files defined -in the Enterprise Application project as well as the appropriate archive file -for each J2EE module or utility JAR project defined in the deployment descriptor, -such as Web archive (WAR) files and EJB JAR files.
-An enterprise application can contain utility JAR files that are to be
-used by the contained modules. This allows sharing of code at the application
-level by multiple Web, EJB, or application client modules. These JAR files
-are commonly referred to as utility JAR files. The utility JAR files
-defined for an enterprise application project can be actual JAR files in the
-project, or you can include utility
To start developing J2EE applications, you typically first create an enterprise
-application project to tie together your Web, EJB, and application client
-modules. The enterprise application project is used to compose an entire application
-from the various modules. Since no source code is built directly into an enterprise
-application, these projects are not
When you create an enterprise application project using the workbench, -the following key files are automatically created:
An enterprise application project ties -together the resources that are required to deploy a J2EE enterprise application.
- -An enterprise application project contains -a set of references to other J2EE modules and Javaâ„¢ projects that are combined to compose -an EAR file. These projects can be Web modules, EJB modules, application client -modules, connector modules, general utility Java JAR files, and EJB client JAR files. -Enterprise application projects created in the workbench include a deployment -descriptor, as well as files that are common to all J2EE modules that are -defined in the deployment descriptor.
- -When a J2EE module project is created, it can be associated with an enterprise -application project. The project wizards aid this by allowing you to specify -a new or existing enterprise application project. Enterprise application projects -are exported as EAR (enterprise archive) files that include all files defined -in the Enterprise Application project as well as the appropriate archive file -for each J2EE module or utility JAR project defined in the deployment descriptor, -such as Web archive (WAR) files and EJB JAR files.
- -An enterprise application can contain utility JAR files that are to be -used by the contained modules. This allows sharing of code at the application -level by multiple Web, EJB, or application client modules. These JAR files -are commonly referred to as utility JAR files. The utility JAR files -defined for an enterprise application project can be actual JAR files in the -project, or you can include utility Java projects that are designated to become -the utility JAR files during assembly and deployment.
- -To start developing J2EE applications, you typically first create an enterprise -application project to tie together your Web, EJB, and application client -modules. The enterprise application project is used to compose an entire application -from the various modules. Since no source code is built directly into an enterprise -application, these projects are not Java projects, and they are not compiled -by the Java builder.
- -You can rearrange the location, tiling, and
-size of the views within the perspective. You can also add other views to
-the J2EE perspective by clicking
The workbench provides synchronization between different views and editors. -This is also true in the J2EE perspective.
-By default, the J2EE perspective includes the following workbench views:
-The J2EE perspective includes workbench -views that you can use when developing resources for enterprise applications, -EJB modules, Web modules, application client modules, and connector projects -or modules.
- -You can rearrange the location, tiling, and -size of the views within the perspective. You can also add other views to -the J2EE perspective by clicking
- - and selecting the view.The workbench provides synchronization between different views and editors. -This is also true in the J2EE perspective.
- -By default, the J2EE perspective includes the following workbench views:
- -The Project Explorer view provides an integrated
-view of all project resources, including models of J2EE deployment descriptors,
You should use this view to work with your J2EE deployment descriptors -and their content. You can view an enterprise application project and see -all of the modules associated with it.
-You can also filter what you see in the Project Explorer view to hide projects,
-folders, or files that you don't want to see. To enable or disable filters,
-click the
Alternately, you can filter what you see by showing or hiding working sets,
-groups of related resources or projects. See
The following image shows the Project Explorer view with a few projects:
While developing J2EE applications in -the J2EE perspective, the Project Explorer view is your main view of your -J2EE projects and resources.
- -The Project Explorer view provides an integrated -view of all project resources, including models of J2EE deployment descriptors, Javaâ„¢ artifacts, -resources, Web services, databases, and dynamic Web project artifacts.
- -You should use this view to work with your J2EE deployment descriptors -and their content. You can view an enterprise application project and see -all of the modules associated with it.
- -You can also filter what you see in the Project Explorer view to hide projects, -folders, or files that you don't want to see. To enable or disable filters, -click the Filters button from the drop-down menu at -the top right corner of the view. For more information, see Filters in the Project Explorer view.
- -Alternately, you can filter what you see by showing or hiding working sets, -groups of related resources or projects. See Working Sets.
- -The following image shows the Project Explorer view with a few projects:
To enable or disable filters, open the Select
-Common Navigator Filters window by clicking the
On the Select Common Navigator Filters tab, select the check boxes next
-to the filters you want to enable. For example, when the
On the Available Extensions and Filters tab, the filters work in the opposite
-way: the selected check boxes describe the projects, folders, and files that
-are shown in the Project Explorer view. For example, if you clear the check
-box next to
You can filter the Project Explorer -view to hide projects, folders, or files that you don't want to see.
- -To enable or disable filters, open the Select -Common Navigator Filters window by clicking the Filters button -from the drop-down menu at the top right corner of the view. This window lists -the available filters.
- -On the Select Common Navigator Filters tab, select the check boxes next -to the filters you want to enable. For example, when the Closed -projects filter is enabled, closed projects are not shown in the -Project Explorer view. Other filters can hide empty packages, non-java files, -and files with names ending in ".class".
- -On the Available Extensions and Filters tab, the filters work in the opposite -way: the selected check boxes describe the projects, folders, and files that -are shown in the Project Explorer view. For example, if you clear the check -box next to J2EE Deployment Descriptors, the deployment -descriptors are hidden from each project in the view.
- - - -These topics cover how to import files and projects into the workbench -and export files and projects to disk.
-These topics deal with the Javaâ„¢ 2 Platform, Enterprise Edition (J2EE).
-The workbench can work with many different types of projects. The -following topics cover creating and managing some of the types of projects -related to J2EE development.
-The following reference material on J2EE is available:
-When -you create an enterprise application project, it is recommended that you do -not give it a name that contains double-byte character set (DBCS) characters.
This topic outlines current known limitations -and restrictions for J2EE tooling.
- -When -you create an enterprise application project, it is recommended that you do -not give it a name that contains double-byte character set (DBCS) characters.
-You may encounter these common error -messages when you validate your projects.
- - - - -Message prefix | - -Message | - -Explanation | - -
---|---|---|
Application Client validator | - -||
CHKJ1000 | - -Validation failed because the application client file -is not valid. Ensure that the deployment descriptor is valid. | - -The application-client.xml file cannot be loaded. The
-project metadata cannot be initialized from the application-client.xml file.
-
|
-
-
EAR validator | - -||
CHKJ1001 | - -The EAR project {0} is invalid. | - -The application.xml file cannot be loaded. The project
-metadata cannot be initialized from the application.xml file.
|
-
-
EJB validator | - -||
CHKJ2019 | - -The {0} key class must be serializable at runtime. | - -The EJB is compliant with the EJB specification. This -message is a warning that problems may occur. The warning appears when a type -needs to be serializable at runtime and when serializability cannot be verified -at compile-time. A type is serializable if, at runtime, it is a primitive -type, a primitive array, a remote object, or if it implements java.io.Serializable. -This message flags java.lang.Object and it cannot be disabled. You can either -make the object serializable at compile-time or ignore the warning. | - -
CHKJ2412 | - -The return type must be serializable at runtime. | - -|
CHKJ2413 | - -Argument {1} of {0} must be serializable at runtime. | - -|
CHKJ2102 | - -Either a finder descriptor, or a matching custom finder method on the -{0} class, must be defined. | - -A finder descriptor must exist for every finder method. | - -
CHKJ2873 | - -Migrate this bean's datasource binding to a CMP Connection Factory -binding. | - -- - |
CHKJ2874 | - -Migrate this EJB module's default datasource binding to a default CMP -Connection Factory binding. | - -- - |
CHKJ2875E | - -<ejb-client-jar> {0} must exist in every EAR file -that contains this EJB module. | - -If <ejb-client-jar> is specified -in ejb-jar.xml, a corresponding EJB client project must -contain the home and remote interfaces and any other types that a client will -need. If these types are all contained in a single EJB project, delete the <ejb-client-jar> line -in the deployment descriptor. Otherwise, ensure that the EJB client project -exists, is open, and is a project utility JAR in every EAR that uses this -EJB project as a module. | - -
CHKJ2905 | - -The EJB validator did not run because ejb-jar.xml could not be loaded. -Run the XML validator for more information. | - -CHKJ2905 means that the project's metadata could not be initialized
-from ejb-jar.xml.
|
-
-
JSP validator | - -||
IWAW0482 | - -No valid JspTranslator | - -There is a path problem with the project; the JSP Validator
-needs access to the WAS runtime code. If IWAW0482E appears on all web projects,
-check the Variable or JRE path:
|
-
-
WAR validator | - -||
CHKJ3008 | - -Missing or invalid WAR file. | - -The web.xml file cannot be loaded. The project metadata
-cannot be initialized from the web.xml file.
|
-
-
XML validator | - -||
- - | The content of element type "ejb-jar" is incomplete, it must match -"(description?,display-name?,small-icon?,large-icon?,enterprise-beans,assembly-descriptor?,ejb-client-jar?)". | - -The EJB 1.1 and 2.0 specifications mandate that at least one enterprise -bean must exist in an EJB .jar file. This error message is normal during development -of EJB .jar files and can be ignored until you perform a production action, -such as exporting or deploying code. Define at least one enterprise bean in -the project. | - -
This table lists the validators that -are available for the different project types and gives a brief description -of each validator.
- - - - -Validator name | - -Description | - -
---|---|
Application Client Validator | - -The Application Client Validator validates
-the following Application Client project resources:
|
-
-
Connector Validator | - -The Connector validator checks for invalid J2EE specification -levels in connector projects. | - -
DTD Validator | - -The DTD validator determines whether the -current state of a DTD is semantically valid. XML files are validated according -to the XML specification Extensible Markup Language (XML) 1.0 from -the W3C Web site. As well, the DTD validator checks for errors such as references -to entities and elements that do not exist. | - -
EAR Validator | - -The EAR Validator validates the following:
-
Note that the EAR Validator only ensures the validity and dependency -of the module projects with respect to the enterprise application project. - |
-
-
EJB Validator | - -The EJB Validator verifies that enterprise
-beans contained in an EJB project comply with the Sun Enterprise JavaBeansâ„¢ Specifications
-(1.1, 2.0, and 2.1), depending on the level of the bean. Code validation for
-the EJB 1.0 specification is not supported. Specifically, the EJB Validator -validates the following resources: -
|
-
-
EL Syntax Validator | - -- - |
HTML Syntax Validator | - -The HTML Syntax Validator validates HTML
-basic syntax and HTML DTD compliance in the following Web project resources:
-
|
-
-
JSP Syntax Validator | - -The JSP Syntax Validator validates JSP files -in a project by translating them into the corresponding Java code -and then checking the Java code for compile errors. | - -
War Validator | - -The War Validator validates the following
-web project resources:
|
-
-
WSDL Validator | - -The WSDL validator checks the following in WSDL files:
|
-
-
WS-I Message Validator | - -WS-I Message validator checks SOAP messages against -WS-I Profiles. A user can capture and verify SOAP messages using the TCP/IP -Monitor. The validator checks a message log that is saved as a project resource -(.wsimsg). The log conforms to a format as specified by WS-I. | - -
XML Schema Validator | - -The XML schema validator determines whether -the current state of an XML schema file is semantically valid. XML schemas -are validated according to the XML Schema specification XML Schema Part 1: Structures from the W3C Web site. | - -
XML Validator | - -The XML validator ensures that an XML file -is well-formed. It also verifies if an XML file is valid - that is, it follows -the constraints established in the DTD or XML schema the XML file is associated -with. | - -
- - | - - |
Facets -define characteristics and requirements for projects. When you add a facet -to a project, that project is configured to perform a certain task, fulfill -certain requirements, or have certain characteristics. For example, the EAR -facet sets up a project to function as an enterprise application by adding -a deployment descriptor and setting up the project's classpath.
You -can add facets only to J2EE projects and other types of projects that are -based on J2EE projects, such as enterprise application projects, dynamic Web -projects, and EJB projects. You cannot add facets to a Java project or plug-in -project, for example. Typically, a facet-enabled project has at least one -facet when it is created, allowing you to add more facets if necessary. For -example, a new EJB project has the EJB Module facet. You can then add other -facets to this project like the EJBDoclet (XDoclet) facet.
Some facets -require other facets as prerequisites. Other facets cannot be in the same -project together. For example, you cannot add the Dynamic Web Module facet -to an EJB project because the EJB project already has the EJB Module facet. -Some facets can be removed from a project and others cannot.
New projects -generally have facets added to them when they are created. To add another -facet to a project that already exists, follow these steps:
Only the facets that are valid for the project -are listed:
You
-can also choose a preset combination of facets from the
This topic explains how to add a facet -to an existing project in your workspace.
- -Facets -define characteristics and requirements for projects. When you add a facet -to a project, that project is configured to perform a certain task, fulfill -certain requirements, or have certain characteristics. For example, the EAR -facet sets up a project to function as an enterprise application by adding -a deployment descriptor and setting up the project's classpath.
-You -can add facets only to J2EE projects and other types of projects that are -based on J2EE projects, such as enterprise application projects, dynamic Web -projects, and EJB projects. You cannot add facets to a Java project or plug-in -project, for example. Typically, a facet-enabled project has at least one -facet when it is created, allowing you to add more facets if necessary. For -example, a new EJB project has the EJB Module facet. You can then add other -facets to this project like the EJBDoclet (XDoclet) facet.
-Some facets -require other facets as prerequisites. Other facets cannot be in the same -project together. For example, you cannot add the Dynamic Web Module facet -to an EJB project because the EJB project already has the EJB Module facet. -Some facets can be removed from a project and others cannot.
-New projects -generally have facets added to them when they are created. To add another -facet to a project that already exists, follow these steps:
-Application -client projects contain the resources needed for application client modules. -Application client projects contain programs that run on networked client -systems. An application client project is deployed as a JAR file.
Like -the other types of projects, application client projects can contain one or -more project facets, which represent units of functionality in the project. -A new application client project should have the Application Client module -facet. Depending on what you want to use the project for, you may want to -enable other facets for the project.
To create a J2EE application client -project:
You can use a wizard to create a new -application client project and add it to a new or existing enterprise application -project.
- -Application -client projects contain the resources needed for application client modules. -Application client projects contain programs that run on networked client -systems. An application client project is deployed as a JAR file.
-Like -the other types of projects, application client projects can contain one or -more project facets, which represent units of functionality in the project. -A new application client project should have the Application Client module -facet. Depending on what you want to use the project for, you may want to -enable other facets for the project.
-To create a J2EE application client -project:
-A cyclical dependency between two
-or more modules in an enterprise application most commonly occurs when projects
-are imported from outside the workbench. When a cycle exists between two or
-more modules in an enterprise application, the
Therefore, the best practice is to organize your -projects or modules into components. This allows your module dependencies -to function as a tree instead of a cycle diagram. This practice has the added -benefit of producing a better factored and layered application.
You can resolve cyclical dependencies -after an EAR is imported.
- -A cyclical dependency between two -or more modules in an enterprise application most commonly occurs when projects -are imported from outside the workbench. When a cycle exists between two or -more modules in an enterprise application, the Javaâ„¢ builder cannot accurately compute the -build order of the projects. Full builds fail under these conditions, or require -several invocations.
-Therefore, the best practice is to organize your -projects or modules into components. This allows your module dependencies -to function as a tree instead of a cycle diagram. This practice has the added -benefit of producing a better factored and layered application.
-Enterprise -application projects contain references to the resources needed for enterprise -applications and can contain a combination of Web modules, JAR files, connector -modules, EJB modules, and application client modules. An enterprise application -project is deployed in the form of an EAR file, and is therefore sometimes -referred to as an EAR project. The modules in an enterprise application project -are mapped to other J2EE projects. The mapping information is stored in metadata -files within the enterprise application project. The metadata files are used -for exporting the project to an EAR file and for running the project on the -server.
Like the other types of projects, enterprise application projects -can contain one or more project facets, which represent units of functionality -in the project. To be deployed as an EAR file, the new project must have the -EAR facet. Depending on what you want to use the project for, you may want -to enable other facets for the project.
To -create a J2EE enterprise application project:
Enterprise -application projects contain references to the resources needed for enterprise -applications and can contain a combination of Web modules, JAR files, connector -modules, EJB modules, and application client modules. An enterprise application -project is deployed in the form of an EAR file, and is therefore sometimes -referred to as an EAR project. The modules in an enterprise application project -are mapped to other J2EE projects. The mapping information is stored in metadata -files within the enterprise application project. The metadata files are used -for exporting the project to an EAR file and for running the project on the -server.
-Like the other types of projects, enterprise application projects -can contain one or more project facets, which represent units of functionality -in the project. To be deployed as an EAR file, the new project must have the -EAR facet. Depending on what you want to use the project for, you may want -to enable other facets for the project.
-When -you create an enterprise application project, it is recommended that you do -not give it a name that contains double-byte character set (DBCS) characters.
-To -create a J2EE enterprise application project:
-To export -an application client project from the workbench:
You can export an application client -project as a JAR file.
- -To export -an application client project from the workbench:
-To export -an enterprise application project into an EAR file:
Enterprise applications are deployed -in the form of an EAR file. Use the Export wizard to export an enterprise -application project into an EAR file for deployment.
- -To export -an enterprise application project into an EAR file:
-To export -the contents of a connector project to a RAR file:
To export the contents of a connector project to a RAR file:
-To import -an application client JAR file using the wizard:
Application client projects are deployed -as JAR files. You can import an application client project that has been deployed -into a JAR file by using the Import wizard.
- -To import -an application client JAR file using the wizard:
-You can
-also choose to import utility JAR files as utility
To import an EAR file using the wizard:
Enterprise application projects are -deployed into EAR files. You can import an enterprise application project -by importing it from a deployed EAR file.
- -You can -also choose to import utility JAR files as utility Javaâ„¢ projects. You can also use the wizard -to change the new project names for the EAR file and modules that will be -imported.
-To import an EAR file using the wizard:
-To import -a connector project RAR file using the wizard:
To import a connector project RAR file using the wizard:
-A connector -is a J2EE standard extension mechanism for containers to provide connectivity -to enterprise information systems (EISs). A connector is specific to an EIS -and consists of a resource adapter and application development tools. A resource -adapter is a system-level software driver that is used by an EJB container -or an application client to connect to an EIS. Connectors comply with the -J2EE Connector architecture (JCA).
Like the other types of projects, -connector projects can contain one or more project facets, which represent -units of functionality in the project. A new application client project should -have the J2C Module facet. Depending on what you want to use the project for, -you may want to enable other facets for the project.
To -create a new connector project:
A connector is a J2EE standard extension -mechanism for containers to provide connectivity to enterprise information -systems (EISs).
- -A connector -is a J2EE standard extension mechanism for containers to provide connectivity -to enterprise information systems (EISs). A connector is specific to an EIS -and consists of a resource adapter and application development tools. A resource -adapter is a system-level software driver that is used by an EJB container -or an application client to connect to an EIS. Connectors comply with the -J2EE Connector architecture (JCA).
-Like the other types of projects, -connector projects can contain one or more project facets, which represent -units of functionality in the project. A new application client project should -have the J2C Module facet. Depending on what you want to use the project for, -you may want to enable other facets for the project.
-To -create a new connector project:
-In order
-to support different application servers that use different JDK levels for
-their
You can also add more than -one target server for your project. In this case, the workbench prevents you -from adding any facets not supported by all of the target servers. If you -add more than one target server, one of those servers must be the primary -server, the server that will contribute to the project's class path.
When -the project is created, the class path of the project is updated with two -class path containers. One container is the JDK container and the other is -the server container. The JDK container points to the directory that contains -the JAR files that are necessary to support the JDK version. The server container -points to the directory that contains the multiple public JAR files available -in the selected server. The project then compiles based on the required JAR -files located in these folders, and you do not need to worry about adding -additional JAR files from the server during development. When the project -is compiled, the JAR files are included in the class path. You can still add -your own JAR files to the class path.
The target runtime environment -is specified in the org.eclipse.wst.common.project.facet.core.xml file in -the project's .settings folder. You should not edit this file manually; instead, -use the properties window as described in this topic.
All J2EE project
-creation and import wizards prompt you to specify the target server for the
-resulting projects. The list of target servers that you can choose from is
-filtered based on installed runtimes, the J2EE level of the application, and
-the J2EE module type. For example, for EJB projects only application servers
-that support Enterprise
To modify -the target runtime and default server for an existing project:
Only the runtimes compatible with the project's facets are shown.
-You can select the
If you don't see the runtime that you
-want to use, you need to add it to the runtimes in the workbench. See
If you select -any runtimes for the project, you must make one of those runtimes the primary -runtime for the project. If you select only one runtime from the list, that -runtime is automatically made the primary runtime. The primary runtime is -shown in bold text.
When you develop J2EE applications, -you can specify the server runtime environments for your J2EE projects. The -target server is specified during project creation and import, and it can -be changed in the project properties. The target server setting is the default -mechanism for setting the class path for J2EE projects.
- -In order -to support different application servers that use different JDK levels for -their Javaâ„¢ Runtime -Environment (JRE), the workbench prompts you for a target server setting for -each J2EE project. For example, if you want to take advantage of the features -of JDK 1.4.2, your applications require different class path entries than -those that were used in previous versions of the workbench. By prompting you -to specify a target server, the workbench enforces that proper entries are -added for running on the server you choose.
-You can also add more than -one target server for your project. In this case, the workbench prevents you -from adding any facets not supported by all of the target servers. If you -add more than one target server, one of those servers must be the primary -server, the server that will contribute to the project's class path.
-When -the project is created, the class path of the project is updated with two -class path containers. One container is the JDK container and the other is -the server container. The JDK container points to the directory that contains -the JAR files that are necessary to support the JDK version. The server container -points to the directory that contains the multiple public JAR files available -in the selected server. The project then compiles based on the required JAR -files located in these folders, and you do not need to worry about adding -additional JAR files from the server during development. When the project -is compiled, the JAR files are included in the class path. You can still add -your own JAR files to the class path.
-The target runtime environment -is specified in the org.eclipse.wst.common.project.facet.core.xml file in -the project's .settings folder. You should not edit this file manually; instead, -use the properties window as described in this topic.
-All J2EE project -creation and import wizards prompt you to specify the target server for the -resulting projects. The list of target servers that you can choose from is -filtered based on installed runtimes, the J2EE level of the application, and -the J2EE module type. For example, for EJB projects only application servers -that support Enterprise JavaBeansâ„¢ are displayed. All projects -inside a single EAR file must be targeted to the same server. If you create -a new project and add it to an existing EAR project during creation, the project -inherits the target server setting of the EAR project.
-To modify -the target runtime and default server for an existing project:
-By default, the workbench validates -your files automatically after any build, including automatic builds. You -can also begin the validation process manually without building.
On -the workbench Properties window, you can enable or disable validators to be -used on your projects. Also, you can enable or disable validators for each -enterprise application module project individually on the Properties page -for that project.
Each validator can apply to certain types of files, -certain project natures, and certain project facets. When a validator applies -to a project facet or nature, the workbench uses that validator only on projects -that have that facet or nature. Likewise, most validators apply only to certain -types of files, so the workbench uses those validators only on those types -of files.
Follow these steps to validate your files:
The workbench includes validators that -check certain files in your enterprise application module projects for errors.
- -By default, the workbench validates -your files automatically after any build, including automatic builds. You -can also begin the validation process manually without building.
-On -the workbench Properties window, you can enable or disable validators to be -used on your projects. Also, you can enable or disable validators for each -enterprise application module project individually on the Properties page -for that project.
-Each validator can apply to certain types of files, -certain project natures, and certain project facets. When a validator applies -to a project facet or nature, the workbench uses that validator only on projects -that have that facet or nature. Likewise, most validators apply only to certain -types of files, so the workbench uses those validators only on those types -of files.
-Follow these steps to validate your files:
-You can disable one or more validators -individually or disable validation entirely. Also, you can set validation -settings for your entire workspace and for individual projects.
- -The default validation preferences -are specified globally on the Validation page of the Preferences dialog. To -allow projects to override these default validation preferences:
For a given project, you can override -the global validation preferences.
- -The default validation preferences -are specified globally on the Validation page of the Preferences dialog. To -allow projects to override these default validation preferences:
-The validators used depend on the -global and project validation settings. When you validate a project manually, -the global settings are used unless both of the following are true:
Whether the workbench uses the global or project validation preferences, -only the validators selected to run on manual validation are used when you -run a manual validation.
To manually invoke an immediate code validation:
When you run a manual validation, all -resources in the selected project are validated according to the validation -settings.
- -Whether the workbench uses the global or project validation preferences, -only the validators selected to run on manual validation are used when you -run a manual validation.
-To manually invoke an immediate code validation:
-To choose the validators that you -want to use for a project:
You can select specific validators to -run during manual and build code validation. You can set each validator to -run on manual validation, build validation, both, or neither.
- -To choose the validators that you -want to use for a project:
-May 2, 2006
- -The Eclipse Foundation makes available all content in this plug-in -("Content"). Unless otherwise indicated below, the Content is provided to you -under the terms and conditions of the Eclipse Public License Version 1.0 -("EPL"). A copy of the EPL is available at -http://www.eclipse.org/org/documents/epl-v10.php. -For purposes of the EPL, "Program" will mean the Content.
- -If you did not receive this Content directly from the Eclipse Foundation, the -Content is being redistributed by another party ("Redistributor") 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 -and such source code may be obtained at -http://www.eclipse.org/.
- - - diff --git a/docs/org.eclipse.jst.j2ee.infopop/build.properties b/docs/org.eclipse.jst.j2ee.infopop/build.properties deleted file mode 100644 index 76f5c9f12..000000000 --- a/docs/org.eclipse.jst.j2ee.infopop/build.properties +++ /dev/null @@ -1,13 +0,0 @@ -bin.includes = DeleteBean_HelpContexts.xml,\ - EJBCreateWizard_HelpContexts.xml,\ - ExportWizard_HelpContexts.xml,\ - ImportWizard_HelpContexts.xml,\ - J2EEGeneral_HelpContexts.xml,\ - Preferences_HelpContexts.xml,\ - ProjectCreateWizard_HelpContexts.xml,\ - ProjectPrefs_HelpContexts.xml,\ - about.html,\ - plugin.properties,\ - plugin.xml,\ - META-INF/ -src.includes = build.properties diff --git a/docs/org.eclipse.jst.j2ee.infopop/plugin.properties b/docs/org.eclipse.jst.j2ee.infopop/plugin.properties deleted file mode 100644 index b56d2b5d9..000000000 --- a/docs/org.eclipse.jst.j2ee.infopop/plugin.properties +++ /dev/null @@ -1,15 +0,0 @@ -############################################################################### -# Copyright (c) 2001, 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 -############################################################################### -# NLS_MESSAGEFORMAT_VAR -# NLS_ENCODING=UTF-8 - -pluginName = J2EE tools infopops -pluginProvider = Eclipse.org diff --git a/docs/org.eclipse.jst.j2ee.infopop/plugin.xml b/docs/org.eclipse.jst.j2ee.infopop/plugin.xml deleted file mode 100644 index 2a6d7c69b..000000000 --- a/docs/org.eclipse.jst.j2ee.infopop/plugin.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - -May 2, 2006
- -The Eclipse Foundation makes available all content in this plug-in -("Content"). Unless otherwise indicated below, the Content is provided to you -under the terms and conditions of the Eclipse Public License Version 1.0 -("EPL"). A copy of the EPL is available at -http://www.eclipse.org/org/documents/epl-v10.php. -For purposes of the EPL, "Program" will mean the Content.
- -If you did not receive this Content directly from the Eclipse Foundation, the -Content is being redistributed by another party ("Redistributor") 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 -and such source code may be obtained at -http://www.eclipse.org/.
- - - diff --git a/docs/org.eclipse.jst.servlet.ui.infopop/build.properties b/docs/org.eclipse.jst.servlet.ui.infopop/build.properties deleted file mode 100644 index 64113c34a..000000000 --- a/docs/org.eclipse.jst.servlet.ui.infopop/build.properties +++ /dev/null @@ -1,7 +0,0 @@ -bin.includes = ServletWizContexts.xml,\ - about.html,\ - plugin.xml,\ - plugin.properties,\ - META-INF/,\ - DynWebWizContexts.xml -src.includes = build.properties diff --git a/docs/org.eclipse.jst.servlet.ui.infopop/plugin.properties b/docs/org.eclipse.jst.servlet.ui.infopop/plugin.properties deleted file mode 100644 index 21abadf85..000000000 --- a/docs/org.eclipse.jst.servlet.ui.infopop/plugin.properties +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################### -# Copyright (c) 2001, 2006 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 -############################################################################### - -pluginName = Servlet infopop -pluginProvider = Eclipse.org \ No newline at end of file diff --git a/docs/org.eclipse.jst.servlet.ui.infopop/plugin.xml b/docs/org.eclipse.jst.servlet.ui.infopop/plugin.xml deleted file mode 100644 index 17201145a..000000000 --- a/docs/org.eclipse.jst.servlet.ui.infopop/plugin.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - -May 2, 2006
- -The Eclipse Foundation makes available all content in this plug-in -("Content"). Unless otherwise indicated below, the Content is provided to you -under the terms and conditions of the Eclipse Public License Version 1.0 -("EPL"). A copy of the EPL is available at -http://www.eclipse.org/org/documents/epl-v10.php. -For purposes of the EPL, "Program" will mean the Content.
- -If you did not receive this Content directly from the Eclipse Foundation, the -Content is being redistributed by another party ("Redistributor") 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 -and such source code may be obtained at -http://www.eclipse.org/.
- - - diff --git a/docs/org.eclipse.wst.web.ui.infopop/build.properties b/docs/org.eclipse.wst.web.ui.infopop/build.properties deleted file mode 100644 index d9a93d8ce..000000000 --- a/docs/org.eclipse.wst.web.ui.infopop/build.properties +++ /dev/null @@ -1,6 +0,0 @@ -bin.includes = StaticWebWizContexts.xml,\ - about.html,\ - plugin.xml,\ - plugin.properties,\ - META-INF/ -src.includes = build.properties diff --git a/docs/org.eclipse.wst.web.ui.infopop/plugin.properties b/docs/org.eclipse.wst.web.ui.infopop/plugin.properties deleted file mode 100644 index b61d2de9c..000000000 --- a/docs/org.eclipse.wst.web.ui.infopop/plugin.properties +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################### -# Copyright (c) 2006 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 -############################################################################### - -pluginName = Static Web infopop -pluginProvider = Eclipse.org \ No newline at end of file diff --git a/docs/org.eclipse.wst.web.ui.infopop/plugin.xml b/docs/org.eclipse.wst.web.ui.infopop/plugin.xml deleted file mode 100644 index 20ac01893..000000000 --- a/docs/org.eclipse.wst.web.ui.infopop/plugin.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - -May 2, 2006
-The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise -indicated below, the Content is provided to you under the terms and conditions of the -Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available -at http://www.eclipse.org/legal/epl-v10.html. -For purposes of the EPL, "Program" will mean the Content.
- -If you did not receive this Content directly from the Eclipse Foundation, the Content is -being redistributed by another party ("Redistributor") 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 -and such source code may be obtained at http://www.eclipse.org.
- - \ 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 306e6ce63..000000000 --- a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/build.properties +++ /dev/null @@ -1,18 +0,0 @@ -############################################################################### -# Copyright (c) 2003, 2006 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,\ - about.html,\ - META-INF/,\ - com/,\ - model/,\ - . -jars.compile.order = . -source.. = event/ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/com/.placeholder b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/com/.placeholder deleted file mode 100644 index 26350fc03..000000000 --- a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/com/.placeholder +++ /dev/null @@ -1 +0,0 @@ -This is here just to get rid of "com not found" PDE warning from build.properties. \ No newline at end of file diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Add.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Add.class deleted file mode 100644 index 17b5bdb14..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Add.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/AddMany.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/AddMany.class deleted file mode 100644 index c053bf693..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/AddMany.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Change$Setting.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Change$Setting.class deleted file mode 100644 index fe248145a..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Change$Setting.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Change.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Change.class deleted file mode 100644 index 7fe913c77..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Change.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/ChangeUtil.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/ChangeUtil.class deleted file mode 100644 index c7c7899a1..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/ChangeUtil.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EObjectDescriptor.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EObjectDescriptor.class deleted file mode 100644 index 0d659b756..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EObjectDescriptor.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Event.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Event.class deleted file mode 100644 index c361b71be..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Event.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EventFactory.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EventFactory.class deleted file mode 100644 index 25dcfcb74..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EventFactory.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EventKind.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EventKind.class deleted file mode 100644 index 893be6690..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EventKind.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EventPackage.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EventPackage.class deleted file mode 100644 index 6dc91a9b8..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EventPackage.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EventUtil.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EventUtil.class deleted file mode 100644 index a98222f0c..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/EventUtil.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/FeatureKind.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/FeatureKind.class deleted file mode 100644 index 50b23c67f..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/FeatureKind.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Move.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Move.class deleted file mode 100644 index 95f1d4293..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Move.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/NotifierKind.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/NotifierKind.class deleted file mode 100644 index 5fb13bc0e..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/NotifierKind.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Remove.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Remove.class deleted file mode 100644 index 9433b3de6..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Remove.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/RemoveMany.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/RemoveMany.class deleted file mode 100644 index 8bff8f6e9..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/RemoveMany.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Set.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Set.class deleted file mode 100644 index 19ad02e73..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Set.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Setting.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Setting.class deleted file mode 100644 index a03e43e70..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Setting.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Unset.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Unset.class deleted file mode 100644 index 4d4a1aa9e..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/Unset.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/AddImpl.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/AddImpl.class deleted file mode 100644 index 5cffa91fe..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/AddImpl.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/AddManyImpl.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/AddManyImpl.class deleted file mode 100644 index ecf8c2b3e..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/AddManyImpl.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/ChangeHelper.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/ChangeHelper.class deleted file mode 100644 index 9aa403fb3..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/ChangeHelper.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/ChangeImpl$SettingImpl.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/ChangeImpl$SettingImpl.class deleted file mode 100644 index 0af8abfd2..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/ChangeImpl$SettingImpl.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/ChangeImpl.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/ChangeImpl.class deleted file mode 100644 index 4334dd22c..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/ChangeImpl.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/ChangeUtilImpl.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/ChangeUtilImpl.class deleted file mode 100644 index 0085e625f..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/ChangeUtilImpl.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EObjectDescriptorImpl.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EObjectDescriptorImpl.class deleted file mode 100644 index d524ebffa..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EObjectDescriptorImpl.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventAdapter.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventAdapter.class deleted file mode 100644 index 0f7bcb595..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventAdapter.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventFactoryImpl.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventFactoryImpl.class deleted file mode 100644 index fc343e257..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventFactoryImpl.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventHelper.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventHelper.class deleted file mode 100644 index f64220123..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventHelper.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventImpl.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventImpl.class deleted file mode 100644 index c7c449358..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventImpl.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventPackageImpl.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventPackageImpl.class deleted file mode 100644 index 4406c9b4f..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventPackageImpl.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventReaderHelper.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventReaderHelper.class deleted file mode 100644 index e1f7e6b41..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventReaderHelper.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventUtilImpl$BackwardEventIterator.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventUtilImpl$BackwardEventIterator.class deleted file mode 100644 index ba6d2da79..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventUtilImpl$BackwardEventIterator.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventUtilImpl$ForwardEventIterator.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventUtilImpl$ForwardEventIterator.class deleted file mode 100644 index 755b83efb..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventUtilImpl$ForwardEventIterator.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventUtilImpl.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventUtilImpl.class deleted file mode 100644 index d35605342..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventUtilImpl.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventWriterHelper$EObjectData.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventWriterHelper$EObjectData.class deleted file mode 100644 index 4d24d952c..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventWriterHelper$EObjectData.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventWriterHelper.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventWriterHelper.class deleted file mode 100644 index cd01db202..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/EventWriterHelper.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/MoveImpl.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/MoveImpl.class deleted file mode 100644 index 2fa43dfa9..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/MoveImpl.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/RemoveImpl.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/RemoveImpl.class deleted file mode 100644 index 31628712d..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/RemoveImpl.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/RemoveManyImpl.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/RemoveManyImpl.class deleted file mode 100644 index 5cb5312d7..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/RemoveManyImpl.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/SetImpl.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/SetImpl.class deleted file mode 100644 index 3e783660b..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/SetImpl.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/SettingImpl.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/SettingImpl.class deleted file mode 100644 index a9e1de2a9..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/SettingImpl.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/UnsetImpl.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/UnsetImpl.class deleted file mode 100644 index 82a223d47..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/impl/UnsetImpl.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/util/EventAdapterFactory$1.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/util/EventAdapterFactory$1.class deleted file mode 100644 index 59acfe9dc..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/util/EventAdapterFactory$1.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/util/EventAdapterFactory.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/util/EventAdapterFactory.class deleted file mode 100644 index aee179d5f..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/util/EventAdapterFactory.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/util/EventSwitch.class b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/util/EventSwitch.class deleted file mode 100644 index dbe729fef..000000000 Binary files a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/event/com/ibm/etools/emf/event/util/EventSwitch.class and /dev/null differ diff --git a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/model/event.mdl b/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/model/event.mdl deleted file mode 100644 index 3277b1365..000000000 --- a/features/org.eclipse.jem-feature/com.ibm.etools.emf.event/model/event.mdl +++ /dev/null @@ -1,5029 +0,0 @@ - -(object Petal - version 42 - _written "Rose 4.5.8163.3" - charSet 0) - -(object Design "Logical View" - is_unit TRUE - is_loaded TRUE - defaults (object defaults - rightMargin 0.250000 - leftMargin 0.250000 - topMargin 0.250000 - bottomMargin 0.500000 - pageOverlap 0.250000 - clipIconLabels TRUE - autoResize TRUE - snapToGrid TRUE - gridX 16 - gridY 16 - defaultFont (object Font - size 10 - face "Arial" - bold FALSE - italics FALSE - underline FALSE - strike FALSE - color 0 - default_color TRUE) - showMessageNum 1 - showClassOfObject TRUE - notation "Unified") - root_usecase_package (object Class_Category "Use Case View" - quid "3B1FE4BB00C5" - exportControl "Public" - global TRUE - logical_models (list unit_reference_list) - logical_presentations (list unit_reference_list - (object UseCaseDiagram "Main" - quid "3B1FE4C60144" - title "Main" - zoom 100 - max_height 28350 - max_width 21600 - origin_x 0 - origin_y 0 - items (list diagram_item_list)))) - root_category (object Class_Category "Logical View" - quid "3B1FE4BB008A" - exportControl "Public" - global TRUE - subsystem "Component View" - quidu "3B1FE4BB00C6" - logical_models (list unit_reference_list - (object Association "$UNNAMED$0" - quid "3E25D35F00CD" - roles (list role_list - (object Role "addedEObjects" - attributes (list Attribute_Set) - quid "3E25D36000F7" - label "addedEObjects" - supplier "Logical View::ecore::EObject" - quidu "3C4F1C860123" - client_cardinality (value cardinality "0..n") - Containment "By Value" - is_navigable TRUE) - (object Role "$UNNAMED$1" - attributes (list Attribute_Set) - quid "3E25D36000F8" - supplier "Logical View::Event::Event" - quidu "3BCC796B0129" - is_aggregate TRUE))) - (object Class_Category "ecore" - is_unit TRUE - is_loaded FALSE - file_name "$VABASE_PLUGINS_PATH\\org.eclipse.emf.ecore\\src\\model\\org.eclipse.emf.Ecore.cat" - quid "39A5ED04004E") - (object Class_Category "Event" - quid "3E2C51040188" - exportControl "Public" - logical_models (list unit_reference_list - (object Class "Event" - quid "3BCC796B0129" - class_attributes (list class_attribute_list - (object ClassAttribute "eventKind" - attributes (list Attribute_Set - (object Attribute - tool "Ecore" - name "isTransient" - value TRUE) - (object Attribute - tool "Ecore" - name "isVolatile" - value TRUE) - (object Attribute - tool "Ecore" - name "isChangeable" - value FALSE)) - quid "3DD0052F03A1" - type "EventKind" - exportControl "Implementation") - (object ClassAttribute "notifierURI" - quid "3E5955180270" - type "String" - exportControl "Public") - (object ClassAttribute "featureName" - quid "3E2701CB011D" - type "String" - exportControl "Public") - (object ClassAttribute "notifier" - attributes (list Attribute_Set - (object Attribute - tool "Ecore" - name "isTransient" - value TRUE)) - quid "3E7916F60246" - type "Notifier" - exportControl "Implementation")) - language "C++" - abstract TRUE) - (object Class "JavaObject" - quid "3BF407B80040" - stereotype "datatype" - class_attributes (list class_attribute_list - (object ClassAttribute "java.lang.Object" - quid "3BF407DB0018" - stereotype "javaclass" - exportControl "Public")) - language "C++") - (object Class "EventKind" - quid "3E2336250182" - stereotype "enumeration" - class_attributes (list class_attribute_list - (object ClassAttribute "set" - quid "3E23366400F7" - exportControl "Public") - (object ClassAttribute "unset" - quid "3E2336650134" - exportControl "Public") - (object ClassAttribute "add" - quid "3E2336660349" - exportControl "Public") - (object ClassAttribute "remove" - quid "3E233668012F" - exportControl "Public") - (object ClassAttribute "addMany" - quid "3E23366901DA" - exportControl "Public") - (object ClassAttribute "removeMany" - quid "3E23366D0262" - exportControl "Public") - (object ClassAttribute "move" - quid "3E233681008A" - exportControl "Public")) - language "Java") - (object Class "Add" - quid "3E25CD5F033B" - superclasses (list inheritance_relationship_list - (object Inheritance_Relationship - quid "3E25D3E10279" - supplier "Logical View::Event::Event" - quidu "3BCC796B0129")) - class_attributes (list class_attribute_list - (object ClassAttribute "position" - quid "3E25F7350165" - type "int" - initv "-1" - exportControl "Public") - (object ClassAttribute "literal" - quid "3E2D8E9203B4" - type "String" - exportControl "Public") - (object ClassAttribute "object" - attributes (list Attribute_Set - (object Attribute - tool "Ecore" - name "isTransient" - value TRUE)) - quid "3E7A631302F5" - type "JavaObject" - exportControl "Implementation")) - language "Java") - (object Class "AddMany" - quid "3E25CD6403C5" - superclasses (list inheritance_relationship_list - (object Inheritance_Relationship - quid "3E25D3E503AB" - supplier "Logical View::Event::Event" - quidu "3BCC796B0129")) - class_attributes (list class_attribute_list - (object ClassAttribute "positions" - quid "3E2D8E9A0275" - stereotype "0..*" - type "int" - exportControl "Public") - (object ClassAttribute "literals" - quid "3E7A637602ED" - stereotype "0..*" - type "String" - exportControl "Public") - (object ClassAttribute "objects" - attributes (list Attribute_Set - (object Attribute - tool "Ecore" - name "isTransient" - value TRUE)) - quid "3E7A6336006A" - stereotype "0..*" - type "JavaObject" - exportControl "Implementation")) - language "Java") - (object Class "Set" - quid "3E25CD7D02DA" - superclasses (list inheritance_relationship_list - (object Inheritance_Relationship - quid "3E25D4010383" - supplier "Logical View::Event::Event" - quidu "3BCC796B0129")) - class_attributes (list class_attribute_list - (object ClassAttribute "oldLiteral" - attributes (list Attribute_Set - (object Attribute - tool "Ecore" - name "isUnsettable" - value TRUE)) - quid "3E2D8E71019A" - type "String" - exportControl "Public") - (object ClassAttribute "oldObject" - attributes (list Attribute_Set - (object Attribute - tool "Ecore" - name "isTransient" - value TRUE) - (object Attribute - tool "Ecore" - name "isUnsettable" - value TRUE)) - quid "3E7A63AE008B" - type "JavaObject" - exportControl "Implementation") - (object ClassAttribute "newLiteral" - quid "3E2D8E8000A1" - type "String" - exportControl "Public") - (object ClassAttribute "newObject" - attributes (list Attribute_Set - (object Attribute - tool "Ecore" - name "isTransient" - value TRUE)) - quid "3E7A63B5032A" - type "JavaObject" - exportControl "Implementation")) - language "Java") - (object Class "Unset" - quid "3E25CD830166" - superclasses (list inheritance_relationship_list - (object Inheritance_Relationship - quid "3E25D3FB0294" - supplier "Logical View::Event::Event" - quidu "3BCC796B0129")) - class_attributes (list class_attribute_list - (object ClassAttribute "literal" - quid "3E2D8E88030F" - type "String" - exportControl "Public") - (object ClassAttribute "object" - attributes (list Attribute_Set - (object Attribute - tool "Ecore" - name "isTransient" - value TRUE)) - quid "3E7A639C0251" - type "JavaObject" - exportControl "Implementation")) - language "Java") - (object Class "Remove" - quid "3E25CD8A0383" - superclasses (list inheritance_relationship_list - (object Inheritance_Relationship - quid "3E25D3EA00EB" - supplier "Logical View::Event::Event" - quidu "3BCC796B0129")) - class_attributes (list class_attribute_list - (object ClassAttribute "position" - quid "3E25CDAB0272" - type "int" - initv "-1" - exportControl "Public") - (object ClassAttribute "literal" - quid "3E2D8EAE0260" - type "String" - exportControl "Public") - (object ClassAttribute "object" - attributes (list Attribute_Set - (object Attribute - tool "Ecore" - name "isTransient" - value TRUE)) - quid "3E7A635002AC" - type "JavaObject" - exportControl "Implementation")) - language "Java") - (object Class "RemoveMany" - quid "3E25CD9200E6" - superclasses (list inheritance_relationship_list - (object Inheritance_Relationship - quid "3E25D3F60016" - supplier "Logical View::Event::Event" - quidu "3BCC796B0129")) - class_attributes (list class_attribute_list - (object ClassAttribute "positions" - quid "3E25D04C02A2" - stereotype "0..*" - type "int" - exportControl "Public") - (object ClassAttribute "literals" - quid "3E2D8EB801BA" - stereotype "0..*" - type "String" - exportControl "Public") - (object ClassAttribute "objects" - attributes (list Attribute_Set - (object Attribute - tool "Ecore" - name "isTransient" - value TRUE)) - quid "3E7A635803E4" - stereotype "0..*" - type "JavaObject" - exportControl "Implementation")) - language "Java") - (object Class "Move" - quid "3E25CDC00345" - superclasses (list inheritance_relationship_list - (object Inheritance_Relationship - quid "3E25D3F201A1" - supplier "Logical View::Event::Event" - quidu "3BCC796B0129")) - class_attributes (list class_attribute_list - (object ClassAttribute "oldPosition" - quid "3E25CDC60004" - type "int" - initv "-1" - exportControl "Public") - (object ClassAttribute "newPosition" - quid "3E25CDCB030F" - type "int" - initv "-1" - exportControl "Public")) - language "Java") - (object Class "Notifier" - quid "3E26EC5E01E8" - stereotype "datatype" - class_attributes (list class_attribute_list - (object ClassAttribute "org.eclipse.emf.common.notify.Notifier" - quid "3E26EC9600DA" - stereotype "javaclass" - exportControl "Public")) - language "Java") - (object Class "Resource" - quid "3E272527006F" - stereotype "datatype" - class_attributes (list class_attribute_list - (object ClassAttribute "org.eclipse.emf.ecore.resource.Resource" - quid "3E272539011F" - stereotype "javaclass" - exportControl "Public")) - language "Java") - (object Class "Setting" - quid "3E39A511000E" - class_attributes (list class_attribute_list - (object ClassAttribute "refName" - quid "3E65541A0335" - type "String" - exportControl "Public") - (object ClassAttribute "value" - quid "3E39A5330003" - type "String" - exportControl "Public") - (object ClassAttribute "position" - quid "3E6553B1024E" - type "int" - initv "-1" - exportControl "Public")) - language "Java") - (object Class "EObjectDescriptor" - quid "3E6672E90396" - class_attributes (list class_attribute_list - (object ClassAttribute "eventId" - quid "3E667335038C" - type "String" - exportControl "Public") - (object ClassAttribute "eObjectPosition" - quid "3E677EF301FA" - type "int" - initv "-1" - exportControl "Public")) - language "Java") - (object Association "$UNNAMED$2" - quid "3E655451004F" - roles (list role_list - (object Role "addedDescriptors" - quid "3E6554510348" - label "addedDescriptors" - supplier "Logical View::Event::EObjectDescriptor" - quidu "3E6672E90396" - client_cardinality (value cardinality "0..n") - Containment "By Value" - is_navigable TRUE) - (object Role "$UNNAMED$3" - quid "3E6554510349" - supplier "Logical View::Event::Event" - quidu "3BCC796B0129" - is_aggregate TRUE))) - (object Association "$UNNAMED$4" - quid "3E6554800382" - roles (list role_list - (object Role "removedDescriptors" - quid "3E65548102BB" - label "removedDescriptors" - supplier "Logical View::Event::EObjectDescriptor" - quidu "3E6672E90396" - client_cardinality (value cardinality "0..n") - Containment "By Value" - is_navigable TRUE) - (object Role "$UNNAMED$5" - quid "3E65548102BC" - supplier "Logical View::Event::Event" - quidu "3BCC796B0129" - is_aggregate TRUE))) - (object Association "$UNNAMED$6" - quid "3E6673470319" - roles (list role_list - (object Role "settings" - quid "3E66734802A3" - label "settings" - supplier "Logical View::Event::Setting" - quidu "3E39A511000E" - client_cardinality (value cardinality "0..n") - Containment "By Value" - is_navigable TRUE) - (object Role "$UNNAMED$7" - quid "3E66734802AD" - supplier "Logical View::Event::EObjectDescriptor" - quidu "3E6672E90396" - is_aggregate TRUE))) - (object Association "$UNNAMED$8" - quid "3E404FD2031E" - roles (list role_list - (object Role "removedEObjects" - quid "3E404FD303A1" - label "removedEObjects" - supplier "Logical View::ecore::EObject" - quidu "3C4F1C860123" - client_cardinality (value cardinality "0..n") - Containment "By Value" - is_navigable TRUE) - (object Role "$UNNAMED$9" - quid "3E404FD303A2" - supplier "Logical View::Event::Event" - quidu "3BCC796B0129" - is_aggregate TRUE))) - (object Association "$UNNAMED$10" - quid "3E7916CE016C" - roles (list role_list - (object Role "feature" - attributes (list Attribute_Set - (object Attribute - tool "Ecore" - name "isTransient" - value TRUE)) - quid "3E7916D70043" - label "feature" - supplier "Logical View::ecore::EStructuralFeature" - quidu "3903D59D0230" - client_cardinality (value cardinality "0..1") - is_navigable TRUE) - (object Role "$UNNAMED$11" - quid "3E7916D7004D" - supplier "Logical View::Event::Event" - quidu "3BCC796B0129")))) - logical_presentations (list unit_reference_list - (object ClassDiagram "Main" - quid "3E2C517A0192" - title "Main" - zoom 100 - max_height 28350 - max_width 21600 - origin_x 0 - origin_y 0 - items (list diagram_item_list - (object ClassView "Class" "Logical View::Event::EventKind" @1 - ShowCompartmentStereotypes TRUE - IncludeAttribute TRUE - IncludeOperation TRUE - location (2064, 1968) - label (object ItemLabel - Parent_View @1 - location (1902, 1759) - fill_color 13434879 - nlines 1 - max_width 324 - justify 0 - label "EventKind") - stereotype (object ItemLabel - Parent_View @1 - location (1902, 1709) - fill_color 13434879 - anchor 10 - nlines 1 - max_width 324 - justify 0 - label "<Eclipse Public License - v 1.0 -
- -THE ACCOMPANYING PROGRAM IS PROVIDED UNDER -THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, -REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE -OF THIS AGREEMENT.
- -1. DEFINITIONS
- -"Contribution" means:
- -a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and
-b) in the case of each subsequent Contributor:
i) -changes to the Program, and
- -ii) -additions to the Program;
- -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.
- -"Contributor" means any person or -entity that distributes the Program.
- -"Licensed Patents " 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.
- -"Program" means the Contributions -distributed in accordance with this Agreement.
- -"Recipient" means anyone who -receives the Program under this Agreement, including all Contributors.
- -2. GRANT OF RIGHTS
- -a) -Subject to the terms of this Agreement, each Contributor hereby grants Recipient -a non-exclusive, worldwide, royalty-free copyright license to 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.
- -b) -Subject to the terms of this Agreement, each Contributor hereby grants -Recipient a non-exclusive, worldwide, 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.
- -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.
- -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.
- -3. REQUIREMENTS
- -A Contributor may choose to distribute the -Program in object code form under its own license agreement, provided that: -
- -a) -it complies with the terms and conditions of this Agreement; and
- -b) -its license agreement:
- -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;
- -ii) -effectively excludes on behalf of all Contributors all liability for damages, -including direct, indirect, special, incidental and consequential damages, such -as lost profits;
- -iii) -states that any provisions which differ from this Agreement are offered by that -Contributor alone and not by any other party; and
- -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.
- -When the Program is made available in source -code form:
- -a) -it must be made available under this Agreement; and
- -b) a -copy of this Agreement must be included with each copy of the Program.
- -Contributors may not remove or alter any -copyright notices contained within the Program.
- -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.
- -4. COMMERCIAL DISTRIBUTION
- -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 ("Commercial -Contributor") hereby agrees to defend and indemnify every other -Contributor ("Indemnified Contributor") against any losses, damages and -costs (collectively "Losses") 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.
- -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.
- -5. NO WARRANTY
- -EXCEPT AS EXPRESSLY SET FORTH IN THIS -AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" 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.
- -6. DISCLAIMER OF LIABILITY
- -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.
- -7. GENERAL
- -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.
- -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.
- -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.
- -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.
- -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.
- -
March 17, 2005
- -THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS - (COLLECTIVELY "CONTENT"). 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.
- -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 - ("EPL"). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html. - For purposes of the EPL, "Program" will mean the Content.
- -Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository ("Repository") in CVS - modules ("Modules") and made available as downloadable archives ("Downloads").
- -The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and -Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module -including, but not limited to the following locations:
- -Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature. -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.
- -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):
- -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.
- -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.
- -Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. - - 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 f8d4bb8e6..000000000 --- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/build.properties +++ /dev/null @@ -1,16 +0,0 @@ -############################################################################### -# Copyright (c) 2003, 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 -############################################################################### -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 bfdf708ad..000000000 Binary files a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/eclipse_update_120.jpg and /dev/null 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 ed4b19665..000000000 --- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/epl-v10.html +++ /dev/null @@ -1,328 +0,0 @@ - - - - - - - - -Eclipse Public License - v 1.0 -
- -THE ACCOMPANYING PROGRAM IS PROVIDED UNDER -THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, -REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE -OF THIS AGREEMENT.
- -1. DEFINITIONS
- -"Contribution" means:
- -a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and
-b) in the case of each subsequent Contributor:
i) -changes to the Program, and
- -ii) -additions to the Program;
- -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.
- -"Contributor" means any person or -entity that distributes the Program.
- -"Licensed Patents " 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.
- -"Program" means the Contributions -distributed in accordance with this Agreement.
- -"Recipient" means anyone who -receives the Program under this Agreement, including all Contributors.
- -2. GRANT OF RIGHTS
- -a) -Subject to the terms of this Agreement, each Contributor hereby grants Recipient -a non-exclusive, worldwide, royalty-free copyright license to 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.
- -b) -Subject to the terms of this Agreement, each Contributor hereby grants -Recipient a non-exclusive, worldwide, 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.
- -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.
- -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.
- -3. REQUIREMENTS
- -A Contributor may choose to distribute the -Program in object code form under its own license agreement, provided that: -
- -a) -it complies with the terms and conditions of this Agreement; and
- -b) -its license agreement:
- -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;
- -ii) -effectively excludes on behalf of all Contributors all liability for damages, -including direct, indirect, special, incidental and consequential damages, such -as lost profits;
- -iii) -states that any provisions which differ from this Agreement are offered by that -Contributor alone and not by any other party; and
- -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.
- -When the Program is made available in source -code form:
- -a) -it must be made available under this Agreement; and
- -b) a -copy of this Agreement must be included with each copy of the Program.
- -Contributors may not remove or alter any -copyright notices contained within the Program.
- -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.
- -4. COMMERCIAL DISTRIBUTION
- -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 ("Commercial -Contributor") hereby agrees to defend and indemnify every other -Contributor ("Indemnified Contributor") against any losses, damages and -costs (collectively "Losses") 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.
- -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.
- -5. NO WARRANTY
- -EXCEPT AS EXPRESSLY SET FORTH IN THIS -AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" 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.
- -6. DISCLAIMER OF LIABILITY
- -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.
- -7. GENERAL
- -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.
- -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.
- -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.
- -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.
- -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.
- -
March 17, 2005
- -THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS - (COLLECTIVELY "CONTENT"). 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.
- -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 - ("EPL"). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html. - For purposes of the EPL, "Program" will mean the Content.
- -Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository ("Repository") in CVS - modules ("Modules") and made available as downloadable archives ("Downloads").
- -The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and -Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module -including, but not limited to the following locations:
- -Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature. -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.
- -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):
- -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.
- -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.
- -Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. - - 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 4f232d3ad..000000000 --- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/.project +++ /dev/null @@ -1,22 +0,0 @@ - -May 2, 2006
-The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise -indicated below, the Content is provided to you under the terms and conditions of the -Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available -at http://www.eclipse.org/legal/epl-v10.html. -For purposes of the EPL, "Program" will mean the Content.
- -If you did not receive this Content directly from the Eclipse Foundation, the Content is -being redistributed by another party ("Redistributor") 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 -and such source code may be obtained at http://www.eclipse.org.
- - \ 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 1931489a7..000000000 --- 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.png - -# 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 bddaab431..000000000 --- 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 a3678ed83..000000000 --- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/about.properties +++ /dev/null @@ -1,29 +0,0 @@ -############################################################################### -# Copyright (c) 2003, 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 -############################################################################### -# -# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/Attic/about.properties,v $ -# $Revision: 1.6 $ $Date: 2006/05/18 19:10:01 $ -# - - -# 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, 2006. 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 97f158299..000000000 --- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/build.properties +++ /dev/null @@ -1,18 +0,0 @@ -############################################################################### -# Copyright (c) 2003, 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 -############################################################################### -bin.includes = about.html,\ - about.ini,\ - about.mappings,\ - about.properties,\ - eclipse32.png,\ - plugin.xml,\ - plugin.properties,\ - META-INF/ diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/eclipse32.png b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/eclipse32.png deleted file mode 100644 index 568fac1d0..000000000 Binary files a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/eclipse32.png and /dev/null 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 229b18f29..000000000 --- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/plugin.properties +++ /dev/null @@ -1,18 +0,0 @@ -############################################################################### -# Copyright (c) 2003, 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 -############################################################################### -# -# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/Attic/plugin.properties,v $ -# $Revision: 1.5 $ $Date: 2005/08/24 23:02:14 $ -# - - -pluginName=Java EMF Model SDK -providerName = Eclipse.org diff --git a/features/org.eclipse.jem-feature/rootfiles/epl-v10.html b/features/org.eclipse.jem-feature/rootfiles/epl-v10.html deleted file mode 100644 index cb1073a4b..000000000 --- a/features/org.eclipse.jem-feature/rootfiles/epl-v10.html +++ /dev/null @@ -1,304 +0,0 @@ - - - - - - -Eclipse Public License - v 1.0 -
- -THE ACCOMPANYING PROGRAM IS PROVIDED UNDER -THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, -REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE -OF THIS AGREEMENT.
- -1. DEFINITIONS
- -"Contribution" means:
- -a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and
-b) in the case of each subsequent Contributor:
i) -changes to the Program, and
- -ii) -additions to the Program;
- -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.
- -"Contributor" means any person or -entity that distributes the Program.
- -"Licensed Patents " 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.
- -"Program" means the Contributions -distributed in accordance with this Agreement.
- -"Recipient" means anyone who -receives the Program under this Agreement, including all Contributors.
- -2. GRANT OF RIGHTS
- -a) -Subject to the terms of this Agreement, each Contributor hereby grants Recipient -a non-exclusive, worldwide, royalty-free copyright license to 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.
- -b) -Subject to the terms of this Agreement, each Contributor hereby grants -Recipient a non-exclusive, worldwide, 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.
- -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.
- -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.
- -3. REQUIREMENTS
- -A Contributor may choose to distribute the -Program in object code form under its own license agreement, provided that: -
- -a) -it complies with the terms and conditions of this Agreement; and
- -b) -its license agreement:
- -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;
- -ii) -effectively excludes on behalf of all Contributors all liability for damages, -including direct, indirect, special, incidental and consequential damages, such -as lost profits;
- -iii) -states that any provisions which differ from this Agreement are offered by that -Contributor alone and not by any other party; and
- -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.
- -When the Program is made available in source -code form:
- -a) -it must be made available under this Agreement; and
- -b) a -copy of this Agreement must be included with each copy of the Program.
- -Contributors may not remove or alter any -copyright notices contained within the Program.
- -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.
- -4. COMMERCIAL DISTRIBUTION
- -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 ("Commercial -Contributor") hereby agrees to defend and indemnify every other -Contributor ("Indemnified Contributor") against any losses, damages and -costs (collectively "Losses") 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.
- -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.
- -5. NO WARRANTY
- -EXCEPT AS EXPRESSLY SET FORTH IN THIS -AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" 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.
- -6. DISCLAIMER OF LIABILITY
- -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.
- -7. GENERAL
- -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.
- -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.
- -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.
- -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.
- -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.
- - - -March 17, 2005
- -THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS - (COLLECTIVELY "CONTENT"). 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.
- -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 - ("EPL"). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html. - For purposes of the EPL, "Program" will mean the Content.
- -Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository ("Repository") in CVS - modules ("Modules") and made available as downloadable archives ("Downloads").
- -The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and -Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module -including, but not limited to the following locations:
- -Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature. -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.
- -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):
- -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.
- -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.
- -Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. - - 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 d2cc70f5c..000000000 --- a/features/org.eclipse.jem-feature/sourceTemplateFeature/build.properties +++ /dev/null @@ -1,17 +0,0 @@ -############################################################################### -# Copyright (c) 2003, 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 -############################################################################### -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 bfdf708ad..000000000 Binary files a/features/org.eclipse.jem-feature/sourceTemplateFeature/eclipse_update_120.jpg and /dev/null 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 ed4b19665..000000000 --- a/features/org.eclipse.jem-feature/sourceTemplateFeature/epl-v10.html +++ /dev/null @@ -1,328 +0,0 @@ - - - - - - - - -Eclipse Public License - v 1.0 -
- -THE ACCOMPANYING PROGRAM IS PROVIDED UNDER -THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, -REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE -OF THIS AGREEMENT.
- -1. DEFINITIONS
- -"Contribution" means:
- -a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and
-b) in the case of each subsequent Contributor:
i) -changes to the Program, and
- -ii) -additions to the Program;
- -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.
- -"Contributor" means any person or -entity that distributes the Program.
- -"Licensed Patents " 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.
- -"Program" means the Contributions -distributed in accordance with this Agreement.
- -"Recipient" means anyone who -receives the Program under this Agreement, including all Contributors.
- -2. GRANT OF RIGHTS
- -a) -Subject to the terms of this Agreement, each Contributor hereby grants Recipient -a non-exclusive, worldwide, royalty-free copyright license to 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.
- -b) -Subject to the terms of this Agreement, each Contributor hereby grants -Recipient a non-exclusive, worldwide, 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.
- -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.
- -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.
- -3. REQUIREMENTS
- -A Contributor may choose to distribute the -Program in object code form under its own license agreement, provided that: -
- -a) -it complies with the terms and conditions of this Agreement; and
- -b) -its license agreement:
- -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;
- -ii) -effectively excludes on behalf of all Contributors all liability for damages, -including direct, indirect, special, incidental and consequential damages, such -as lost profits;
- -iii) -states that any provisions which differ from this Agreement are offered by that -Contributor alone and not by any other party; and
- -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.
- -When the Program is made available in source -code form:
- -a) -it must be made available under this Agreement; and
- -b) a -copy of this Agreement must be included with each copy of the Program.
- -Contributors may not remove or alter any -copyright notices contained within the Program.
- -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.
- -4. COMMERCIAL DISTRIBUTION
- -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 ("Commercial -Contributor") hereby agrees to defend and indemnify every other -Contributor ("Indemnified Contributor") against any losses, damages and -costs (collectively "Losses") 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.
- -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.
- -5. NO WARRANTY
- -EXCEPT AS EXPRESSLY SET FORTH IN THIS -AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" 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.
- -6. DISCLAIMER OF LIABILITY
- -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.
- -7. GENERAL
- -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.
- -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.
- -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.
- -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.
- -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.
- -
March 17, 2005
- -THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS - (COLLECTIVELY "CONTENT"). 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.
- -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 - ("EPL"). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html. - For purposes of the EPL, "Program" will mean the Content.
- -Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository ("Repository") in CVS - modules ("Modules") and made available as downloadable archives ("Downloads").
- -The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and -Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module -including, but not limited to the following locations:
- -Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature. -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.
- -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):
- -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.
- -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.
- -Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. - - 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 afceed0cc..000000000 --- a/features/org.eclipse.jem-feature/sourceTemplatePlugin/about.html +++ /dev/null @@ -1,25 +0,0 @@ - -May 2, 2006
-The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise -indicated below, the Content is provided to you under the terms and conditions of the -Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available -at http://www.eclipse.org/legal/epl-v10.html. -For purposes of the EPL, "Program" will mean the Content.
- -If you did not receive this Content directly from the Eclipse Foundation, the Content is -being redistributed by another party ("Redistributor") 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 -and such source code may be obtained at http://www.eclipse.org.
- - \ 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 1931489a7..000000000 --- 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.png - -# 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 bddaab431..000000000 --- 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 c57b4e47a..000000000 --- a/features/org.eclipse.jem-feature/sourceTemplatePlugin/about.properties +++ /dev/null @@ -1,28 +0,0 @@ -############################################################################### -# Copyright (c) 2003, 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 -############################################################################### -# -# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/features/org.eclipse.jem-feature/sourceTemplatePlugin/Attic/about.properties,v $ -# $Revision: 1.7 $ $Date: 2006/05/18 19:10:01 $ -# - -# 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, 2006. 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 340d16b0c..000000000 --- a/features/org.eclipse.jem-feature/sourceTemplatePlugin/build.properties +++ /dev/null @@ -1,20 +0,0 @@ -############################################################################### -# Copyright (c) 2003, 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 -############################################################################### -bin.includes = plugin.xml,\ - plugin.properties,\ - about.html,\ - about.ini,\ - about.mappings,\ - about.properties,\ - eclipse32.png,\ - src/,\ - META-INF/ -sourcePlugin = true diff --git a/features/org.eclipse.jem-feature/sourceTemplatePlugin/eclipse32.png b/features/org.eclipse.jem-feature/sourceTemplatePlugin/eclipse32.png deleted file mode 100644 index 568fac1d0..000000000 Binary files a/features/org.eclipse.jem-feature/sourceTemplatePlugin/eclipse32.png and /dev/null 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 5cd91558c..000000000 --- a/features/org.eclipse.jem-feature/sourceTemplatePlugin/plugin.properties +++ /dev/null @@ -1,18 +0,0 @@ -############################################################################### -# Copyright (c) 2003, 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 -############################################################################### -# -# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/features/org.eclipse.jem-feature/sourceTemplatePlugin/Attic/plugin.properties,v $ -# $Revision: 1.4 $ $Date: 2005/08/24 23:02:14 $ -# - - -pluginName = Java EMF Model Source -providerName = Eclipse.org diff --git a/plugins/org.eclipse.jem.beaninfo.ui/.project b/plugins/org.eclipse.jem.beaninfo.ui/.project deleted file mode 100644 index 3898d5625..000000000 --- a/plugins/org.eclipse.jem.beaninfo.ui/.project +++ /dev/null @@ -1,12 +0,0 @@ - -May 2, 2006
-The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise -indicated below, the Content is provided to you under the terms and conditions of the -Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available -at http://www.eclipse.org/legal/epl-v10.html. -For purposes of the EPL, "Program" will mean the Content.
- -If you did not receive this Content directly from the Eclipse Foundation, the Content is -being redistributed by another party ("Redistributor") 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 -and such source code may be obtained at http://www.eclipse.org.
- - \ 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 717b5b0c0..000000000 --- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeanDecorator.java +++ /dev/null @@ -1,432 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 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; -/* - * $RCSfile: BeanDecorator.java,v $ - * $Revision: 1.10 $ $Date: 2005/08/24 20:31:28 $ - */ - - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.jem.java.JavaClass; -import java.net.URL; - -/** - * - * A representation of the model object 'Bean Decorator'. - * - * - * - * Equivalent to BeanDecorator in java. - * - * - *- * The following features are supported: - *
"true"
.
- *
- * - * If the meaning of the 'Merge Super Properties' attribute isn't clear, - * there really should be more of a description here... - *
- * - * - * Should the properties of super types be merged when asking for eAllAttributes/eAllReferences. - * - * @return the value of the 'Merge Super Properties' 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 Merge Super Properties}' attribute. - * - * - * @param value the new value of the 'Merge Super Properties' 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 Merge Super Properties}' attribute. - * - * - * @see #isSetMergeSuperProperties() - * @see #isMergeSuperProperties() - * @see #setMergeSuperProperties(boolean) - * @generated - */ - void unsetMergeSuperProperties(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperProperties Merge Super Properties}' attribute is set. - * - * - * @return whether the value of the 'Merge Super Properties' attribute is set. - * @see #unsetMergeSuperProperties() - * @see #isMergeSuperProperties() - * @see #setMergeSuperProperties(boolean) - * @generated - */ - boolean isSetMergeSuperProperties(); - - /** - * Returns the value of the 'Merge Super Methods' attribute. - * The default value is"true"
.
- *
- * - * If the meaning of the 'Merge Super Behaviors' attribute isn't clear, - * there really should be more of a description here... - *
- * - * - * Should the methods of super types be merged when asking for eAllBehaviors. - * - * @return the value of the 'Merge Super Methods' 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 Merge Super Methods}' attribute. - * - * - * @param value the new value of the 'Merge Super Methods' 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 Merge Super Methods}' attribute. - * - * - * @see #isSetMergeSuperMethods() - * @see #isMergeSuperMethods() - * @see #setMergeSuperMethods(boolean) - * @generated - */ - void unsetMergeSuperMethods(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperMethods Merge Super Methods}' attribute is set. - * - * - * @return whether the value of the 'Merge Super Methods' attribute is set. - * @see #unsetMergeSuperMethods() - * @see #isMergeSuperMethods() - * @see #setMergeSuperMethods(boolean) - * @generated - */ - boolean isSetMergeSuperMethods(); - - /** - * Returns the value of the 'Merge Super Events' attribute. - * The default value is"true"
.
- *
- * - * If the meaning of the 'Merge Super Events' attribute isn't clear, - * there really should be more of a description here... - *
- * - * - * Should the events of super types be merged when asking for eAllEvents. - * - * @return the value of the 'Merge Super Events' 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 Merge Super Events}' attribute. - * - * - * @param value the new value of the 'Merge Super Events' 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 Merge Super Events}' attribute. - * - * - * @see #isSetMergeSuperEvents() - * @see #isMergeSuperEvents() - * @see #setMergeSuperEvents(boolean) - * @generated - */ - void unsetMergeSuperEvents(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.BeanDecorator#isMergeSuperEvents Merge Super Events}' attribute is set. - * - * - * @return whether the value of the 'Merge Super Events' attribute is set. - * @see #unsetMergeSuperEvents() - * @see #isMergeSuperEvents() - * @see #setMergeSuperEvents(boolean) - * @generated - */ - boolean isSetMergeSuperEvents(); - - /** - * Returns the value of the 'Introspect Properties' attribute. - * The default value is"true"
.
- *
- * - * If the meaning of the 'Introspect Properties' attribute isn't clear, - * there really should be more of a description here... - *
- * - * - * 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. - * - * @return the value of the 'Introspect Properties' 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 Introspect Properties}' attribute. - * - * - * @param value the new value of the 'Introspect Properties' attribute. - * @see #isIntrospectProperties() - * @generated - */ - void setIntrospectProperties(boolean value); - - /** - * Returns the value of the 'Introspect Methods' attribute. - * The default value is"true"
.
- *
- * - * If the meaning of the 'Introspect Behaviors' attribute isn't clear, - * there really should be more of a description here... - *
- * - * - * 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. - * - * @return the value of the 'Introspect Methods' 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 Introspect Methods}' attribute. - * - * - * @param value the new value of the 'Introspect Methods' attribute. - * @see #isIntrospectMethods() - * @generated - */ - void setIntrospectMethods(boolean value); - - /** - * Returns the value of the 'Introspect Events' attribute. - * The default value is"true"
.
- *
- * - * If the meaning of the 'Introspect Events' attribute isn't clear, - * there really should be more of a description here... - *
- * - * - * 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. - * - * @return the value of the 'Introspect Events' 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 Introspect Events}' attribute. - * - * - * @param value the new value of the 'Introspect Events' attribute. - * @see #isIntrospectEvents() - * @generated - */ - void setIntrospectEvents(boolean value); - - /** - * Returns the value of the 'Customizer Class' reference. - * - *- * If the meaning of the 'Customizer Class' reference isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Customizer Class' 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 Customizer Class}' reference. - * - * - * @param value the new value of the 'Customizer Class' reference. - * @see #getCustomizerClass() - * @generated - */ - void setCustomizerClass(JavaClass value); - - /** - * Returns the value of the 'Do Beaninfo' attribute. - * The default value is"true"
.
- *
- * - * If the meaning of the 'Do Beaninfo' attribute isn't clear, - * there really should be more of a description here... - *
- * - * - * 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. - * - * @return the value of the 'Do Beaninfo' 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 Do Beaninfo}' attribute. - * - * - * @param value the new value of the 'Do Beaninfo' attribute. - * @see #isDoBeaninfo() - * @generated - */ - void setDoBeaninfo(boolean value); - - /** - * Returns the value of the 'Not Inherited Property Names' attribute list. - * The list contents are of type {@link java.lang.String}. - * - * - * - * 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(). - *- * This list will be empty if all properties are inherited or if the mergeSuperProperties flag is false. - *
- * Note: This attribute is not meant to be changed by clients. It is an internal attribute. - * - * @return the value of the 'Not Inherited Property Names' attribute list. - * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getBeanDecorator_NotInheritedPropertyNames() - * @model type="java.lang.String" - * @generated - */ - EList getNotInheritedPropertyNames(); - - /** - * Returns the value of the 'Not Inherited Method Names' attribute list. - * The list contents are of type {@link java.lang.String}. - * - * - * - * 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(). - *
- * This list will be empty if all operations are inherited or if the mergeSuperBehaviors flag is false. - * - * @return the value of the 'Not Inherited Method Names' attribute list. - * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getBeanDecorator_NotInheritedMethodNames() - * @model type="java.lang.String" - * @generated - */ - EList getNotInheritedMethodNames(); - - /** - * Returns the value of the 'Not Inherited Event Names' attribute list. - * The list contents are of type {@link java.lang.String}. - * - * - * - * 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(). - *
- * This list will be empty if all events are inherited or if the mergeSuperEvents flag is false. - * - * @return the value of the 'Not Inherited Event Names' 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 aabdaf450..000000000 --- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeanEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 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; -/* - * $RCSfile: BeanEvent.java,v $ - * $Revision: 1.7 $ $Date: 2005/08/24 20:31:28 $ - */ - -import org.eclipse.jem.java.JavaEvent; - - -/** - * - * A representation of the model object 'Bean Event'. - * - * - * - * Event from Introspection/Reflection. - *
- * The BeanEvent will be under the JavaClass' events and allEvents feature. Each BeanEvent will be decorated by an EventSetDecorator. - * - * - * - * @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 b1d7b52f1..000000000 --- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeaninfoFactory.java +++ /dev/null @@ -1,128 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 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; -/* - * $RCSfile: BeaninfoFactory.java,v $ - * $Revision: 1.4 $ $Date: 2005/08/24 20:31:28 $ - */ - - -import org.eclipse.emf.ecore.EFactory; -/** - * - * The Factory for the model. - * It provides a create method for each non-abstract class of the model. - * - * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage - * @generated - */ - - -public interface BeaninfoFactory extends EFactory{ - /** - * The singleton instance of the factory. - * - * - * @generated - */ - BeaninfoFactory eINSTANCE = new org.eclipse.jem.internal.beaninfo.impl.BeaninfoFactoryImpl(); - - /** - * Returns a new object of class 'Feature Decorator'. - * - * - * @return a new object of class 'Feature Decorator'. - * @generated - */ - FeatureDecorator createFeatureDecorator(); - - /** - * Returns a new object of class 'Event Set Decorator'. - * - * - * @return a new object of class 'Event Set Decorator'. - * @generated - */ - EventSetDecorator createEventSetDecorator(); - - /** - * Returns a new object of class 'Method Proxy'. - * - * - * @return a new object of class 'Method Proxy'. - * @generated - */ - MethodProxy createMethodProxy(); - - /** - * Returns a new object of class 'Property Decorator'. - * - * - * @return a new object of class 'Property Decorator'. - * @generated - */ - PropertyDecorator createPropertyDecorator(); - - /** - * Returns a new object of class 'Indexed Property Decorator'. - * - * - * @return a new object of class 'Indexed Property Decorator'. - * @generated - */ - IndexedPropertyDecorator createIndexedPropertyDecorator(); - - /** - * Returns a new object of class 'Bean Decorator'. - * - * - * @return a new object of class 'Bean Decorator'. - * @generated - */ - BeanDecorator createBeanDecorator(); - - /** - * Returns a new object of class 'Method Decorator'. - * - * - * @return a new object of class 'Method Decorator'. - * @generated - */ - MethodDecorator createMethodDecorator(); - - /** - * Returns a new object of class 'Parameter Decorator'. - * - * - * @return a new object of class 'Parameter Decorator'. - * @generated - */ - ParameterDecorator createParameterDecorator(); - - /** - * Returns the package supported by this factory. - * - * - * @return the package supported by this factory. - * @generated - */ - BeaninfoPackage getBeaninfoPackage(); - - /** - * Returns a new object of class 'Bean Event'. - * - * - * @return a new object of class 'Bean Event'. - * @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 fd4599d2a..000000000 --- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeaninfoPackage.java +++ /dev/null @@ -1,2692 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 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; -/* - * $RCSfile: BeaninfoPackage.java,v $ - * $Revision: 1.10 $ $Date: 2005/09/15 20:09:52 $ - */ - -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; -/** - * - * The Package for the model. - * It contains accessors for the meta objects to represent - *
- * The following features are supported: - *
- * If the meaning of the 'In Default Event Set' attribute isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'In Default Event Set' 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 In Default Event Set}' attribute. - * - * - * @param value the new value of the 'In Default Event Set' 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 In Default Event Set}' attribute. - * - * - * @see #isSetInDefaultEventSet() - * @see #isInDefaultEventSet() - * @see #setInDefaultEventSet(boolean) - * @generated - */ - void unsetInDefaultEventSet(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#isInDefaultEventSet In Default Event Set}' attribute is set. - * - * - * @return whether the value of the 'In Default Event Set' attribute is set. - * @see #unsetInDefaultEventSet() - * @see #isInDefaultEventSet() - * @see #setInDefaultEventSet(boolean) - * @generated - */ - boolean isSetInDefaultEventSet(); - - /** - * Returns the value of the 'Unicast' attribute. - * - *- * If the meaning of the 'Unicast' attribute isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Unicast' 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 Unicast}' attribute. - * - * - * @param value the new value of the 'Unicast' 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 Unicast}' attribute. - * - * - * @see #isSetUnicast() - * @see #isUnicast() - * @see #setUnicast(boolean) - * @generated - */ - void unsetUnicast(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#isUnicast Unicast}' attribute is set. - * - * - * @return whether the value of the 'Unicast' attribute is set. - * @see #unsetUnicast() - * @see #isUnicast() - * @see #setUnicast(boolean) - * @generated - */ - boolean isSetUnicast(); - - /** - * Returns the value of the 'Listener Methods Explicit Empty' attribute. - * - * - * - * Set true if the listenerMethods feature is explicitly set as empty and is not to have listener methods merged in from BeanInfo or reflection. - * - * @return the value of the 'Listener Methods Explicit Empty' 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 Listener Methods Explicit Empty}' attribute. - * - * - * @param value the new value of the 'Listener Methods Explicit Empty' attribute. - * @see #isListenerMethodsExplicitEmpty() - * @generated - */ - void setListenerMethodsExplicitEmpty(boolean value); - - /** - * Returns the value of the 'Add Listener Method' reference. - * - *- * If the meaning of the 'Add Listener Method' reference isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Add Listener Method' 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 Add Listener Method}' reference. - * - * - * @param value the new value of the 'Add Listener Method' reference. - * @see #getAddListenerMethod() - * @generated - */ - void setAddListenerMethod(Method value); - - /** - * Returns the value of the 'Listener Methods' reference list. - * The list contents are of type {@link org.eclipse.jem.internal.beaninfo.MethodProxy}. - * - *- * If the meaning of the 'Listener Methods' containment reference list isn't clear, - * there really should be more of a description here... - *
- * - * - * listener methods. If it is desired that the list be explicitly empty and not have BeanInfo set it, then set listenerMethodsExplicitEmpty to true. - *- * ListenerMethods will be decorated with MethodDecorators. - *
- * 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. - * - * @return the value of the 'Listener Methods' 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 'Listener Type' reference. - * - *
- * If the meaning of the 'Listener Type' reference isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Listener Type' 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 Listener Type}' reference. - * - * - * @param value the new value of the 'Listener Type' reference. - * @see #getListenerType() - * @generated - */ - void setListenerType(JavaClass value); - - /** - * Returns the value of the 'Remove Listener Method' reference. - * - *- * If the meaning of the 'Remove Listener Method' reference isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Remove Listener Method' 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 Remove Listener Method}' reference. - * - * - * @param value the new value of the 'Remove Listener Method' reference. - * @see #getRemoveListenerMethod() - * @generated - */ - void setRemoveListenerMethod(Method value); - - /** - * Returns the value of the 'Event Adapter Class' reference. - * - * - * - * 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". - * - * @return the value of the 'Event Adapter Class' 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 Event Adapter Class}' reference. - * - * - * @param value the new value of the 'Event Adapter Class' reference. - * @see #getEventAdapterClass() - * @generated - */ - void setEventAdapterClass(JavaClass value); - - /** - * Returns the value of the 'Ser List Mthd' containment reference list. - * The list contents are of type {@link org.eclipse.jem.internal.beaninfo.MethodProxy}. - * - * - * - * This is a private feature. It is used internally only. - * - * @return the value of the 'Ser List Mthd' 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 9422ab0d4..000000000 --- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/FeatureDecorator.java +++ /dev/null @@ -1,491 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 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; -/* - * $RCSfile: FeatureDecorator.java,v $ - * $Revision: 1.9 $ $Date: 2005/09/15 20:09:51 $ - */ - - -import org.eclipse.emf.common.util.EMap; -import org.eclipse.emf.ecore.EAnnotation; - - -/** - * - * A representation of the model object 'Feature Decorator'. - * - * - * - * Equivalent to FeatureDescriptor in java. - *- * 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. - *
- * These comments about merging apply to all subclasses of this decorator too. - * - * - *
- * The following features are supported: - *
- * If the meaning of the 'Display Name' attribute isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Display Name' 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 Display Name}' attribute. - * - * - * @param value the new value of the 'Display Name' 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 Display Name}' attribute. - * - * - * @see #isSetDisplayName() - * @see #getDisplayName() - * @see #setDisplayName(String) - * @generated - */ - void unsetDisplayName(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getDisplayName Display Name}' attribute is set. - * - * - * @return whether the value of the 'Display Name' attribute is set. - * @see #unsetDisplayName() - * @see #getDisplayName() - * @see #setDisplayName(String) - * @generated - */ - boolean isSetDisplayName(); - - /** - * Returns the value of the 'Short Description' attribute. - * - *- * If the meaning of the 'Short Description' attribute isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Short Description' 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 Short Description}' attribute. - * - * - * @param value the new value of the 'Short Description' 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 Short Description}' attribute. - * - * - * @see #isSetShortDescription() - * @see #getShortDescription() - * @see #setShortDescription(String) - * @generated - */ - void unsetShortDescription(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getShortDescription Short Description}' attribute is set. - * - * - * @return whether the value of the 'Short Description' attribute is set. - * @see #unsetShortDescription() - * @see #getShortDescription() - * @see #setShortDescription(String) - * @generated - */ - boolean isSetShortDescription(); - - /** - * Returns the value of the 'Category' attribute. - * - *- * If the meaning of the 'Category' attribute isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Category' 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 Category}' attribute. - * - * - * @param value the new value of the 'Category' attribute. - * @see #getCategory() - * @generated - */ - void setCategory(String value); - - /** - * Returns the value of the 'Expert' attribute. - * - *- * If the meaning of the 'Expert' attribute isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Expert' 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 Expert}' attribute. - * - * - * @param value the new value of the 'Expert' 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 Expert}' attribute. - * - * - * @see #isSetExpert() - * @see #isExpert() - * @see #setExpert(boolean) - * @generated - */ - void unsetExpert(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isExpert Expert}' attribute is set. - * - * - * @return whether the value of the 'Expert' attribute is set. - * @see #unsetExpert() - * @see #isExpert() - * @see #setExpert(boolean) - * @generated - */ - boolean isSetExpert(); - - /** - * Returns the value of the 'Hidden' attribute. - * - *- * If the meaning of the 'Hidden' attribute isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Hidden' 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 Hidden}' attribute. - * - * - * @param value the new value of the 'Hidden' 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 Hidden}' attribute. - * - * - * @see #isSetHidden() - * @see #isHidden() - * @see #setHidden(boolean) - * @generated - */ - void unsetHidden(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isHidden Hidden}' attribute is set. - * - * - * @return whether the value of the 'Hidden' attribute is set. - * @see #unsetHidden() - * @see #isHidden() - * @see #setHidden(boolean) - * @generated - */ - boolean isSetHidden(); - - /** - * Returns the value of the 'Preferred' attribute. - * - *- * If the meaning of the 'Preferred' attribute isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Preferred' 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 Preferred}' attribute. - * - * - * @param value the new value of the 'Preferred' 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 Preferred}' attribute. - * - * - * @see #isSetPreferred() - * @see #isPreferred() - * @see #setPreferred(boolean) - * @generated - */ - void unsetPreferred(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#isPreferred Preferred}' attribute is set. - * - * - * @return whether the value of the 'Preferred' attribute is set. - * @see #unsetPreferred() - * @see #isPreferred() - * @see #setPreferred(boolean) - * @generated - */ - boolean isSetPreferred(); - - /** - * Returns the value of the 'Merge Introspection' attribute. - * The default value is"true"
.
- *
- * - * If the meaning of the 'Merge Introspection' attribute isn't clear, - * there really should be more of a description here... - *
- * - * - * 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. - * - * @return the value of the 'Merge Introspection' 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 Merge Introspection}' attribute. - * - * - * @param value the new value of the 'Merge Introspection' attribute. - * @see #isMergeIntrospection() - * @generated - */ - void setMergeIntrospection(boolean value); - - /** - * Returns the value of the 'Attributes Explicit Empty' attribute. - * - * - * - * 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. - * - * @return the value of the 'Attributes Explicit Empty' 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 Attributes Explicit Empty}' attribute. - * - * - * @param value the new value of the 'Attributes Explicit Empty' attribute. - * @see #isAttributesExplicitEmpty() - * @generated - */ - void setAttributesExplicitEmpty(boolean value); - - /** - * Returns the value of the 'Implicitly Set Bits' attribute. - * - * - * - * A bitflag for which attributes have been set by BeanInfo/Reflection. - *- * This is an internal attribute that is used by the BeanInfo maintanance. It is not meant to be used by customers. - * - * @return the value of the 'Implicitly Set Bits' 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 Implicitly Set Bits}' attribute. - * - * - * @param value the new value of the 'Implicitly Set Bits' attribute. - * @see #getImplicitlySetBits() - * @generated - */ - void setImplicitlySetBits(long value); - - /** - * Returns the value of the 'Implicit Decorator Flag' attribute. - * The literals are from the enumeration {@link org.eclipse.jem.internal.beaninfo.ImplicitItem}. - * - * - * - * Is this decorator/feature implicit. This means created by Introspection/Reflection and not by customer. - *
- * This is an internal attribute that is used by the BeanInfo maintanance. It is not meant to be used by customers. - * - * @return the value of the 'Implicit Decorator Flag' 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 Implicit Decorator Flag}' attribute. - * - * - * @param value the new value of the 'Implicit Decorator Flag' attribute. - * @see org.eclipse.jem.internal.beaninfo.ImplicitItem - * @see #getImplicitDecoratorFlag() - * @generated - */ - void setImplicitDecoratorFlag(ImplicitItem value); - - /** - * Returns the value of the 'Attributes' map. - * The key is of type {@link java.lang.String}, - * and the value is of type {@link org.eclipse.jem.internal.beaninfo.common.FeatureAttributeValue}, - * - *
- * If the meaning of the 'Attributes' containment reference list isn't clear, - * there really should be more of a description here... - *
- * - * - * 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. - * - * @return the value of the 'Attributes' 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(); - - /** - * - * - * @model kind="operation" - * @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 c5e5b4bdb..000000000 --- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/ImplicitItem.java +++ /dev/null @@ -1,168 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 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; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import org.eclipse.emf.common.util.AbstractEnumerator; - -/** - * - * A representation of the literals of the enumeration 'Implicit Item', - * and utility methods for working with them. - * - * - * This enum is an internal enum. It is used by BeanInfo for cache maintenance. - *- * This enum is not meant to be used by clients. - * - * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getImplicitItem() - * @model - * @generated - */ -public final class ImplicitItem extends AbstractEnumerator { - /** - * The 'NOT IMPLICIT' literal value. - * - * - * - * Means this decorator is not implicit. That is it was created by customer. - * - * @see #NOT_IMPLICIT_LITERAL - * @model - * @generated - * @ordered - */ - public static final int NOT_IMPLICIT = 0; - - /** - * The 'IMPLICIT DECORATOR' literal value. - * - * - * - * This means that the decorator is implicit. That is it was not created by the customer. - * - * @see #IMPLICIT_DECORATOR_LITERAL - * @model - * @generated - * @ordered - */ - public static final int IMPLICIT_DECORATOR = 1; - - /** - * The 'IMPLICIT DECORATOR AND FEATURE' literal value. - * - * - * - * This means the decorator and the feature where implicit. That is they were not created by the customer. - * - * @see #IMPLICIT_DECORATOR_AND_FEATURE_LITERAL - * @model - * @generated - * @ordered - */ - public static final int IMPLICIT_DECORATOR_AND_FEATURE = 2; - - /** - * The 'NOT IMPLICIT' literal object. - * - * - * @see #NOT_IMPLICIT - * @generated - * @ordered - */ - public static final ImplicitItem NOT_IMPLICIT_LITERAL = new ImplicitItem(NOT_IMPLICIT, "NOT_IMPLICIT"); - - /** - * The 'IMPLICIT DECORATOR' literal object. - * - * - * @see #IMPLICIT_DECORATOR - * @generated - * @ordered - */ - public static final ImplicitItem IMPLICIT_DECORATOR_LITERAL = new ImplicitItem(IMPLICIT_DECORATOR, "IMPLICIT_DECORATOR"); - - /** - * The 'IMPLICIT DECORATOR AND FEATURE' literal object. - * - * - * @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 'Implicit Item' enumerators. - * - * - * @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 'Implicit Item' enumerators. - * - * - * @generated - */ - public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); - - /** - * Returns the 'Implicit Item' literal with the specified name. - * - * - * @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 'Implicit Item' literal with the specified value. - * - * - * @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. - * - * - * @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 2ea23b7cc..000000000 --- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/IndexedPropertyDecorator.java +++ /dev/null @@ -1,149 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 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; -/* - * $RCSfile: IndexedPropertyDecorator.java,v $ - * $Revision: 1.7 $ $Date: 2005/08/24 20:31:28 $ - */ - - -import org.eclipse.jem.java.Method; -/** - * - * A representation of the model object 'Indexed Property Decorator'. - * - * - * - * Equivalent to IndexedPropertyDecorator - * - * - *
- * The following features are supported: - *
- * If the meaning of the 'Indexed Read Method' reference isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Indexed Read Method' 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 Indexed Read Method}' reference. - * - * - * @param value the new value of the 'Indexed Read Method' 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 Indexed Read Method}' reference. - * - * - * @see #isSetIndexedReadMethod() - * @see #getIndexedReadMethod() - * @see #setIndexedReadMethod(Method) - * @generated - */ - void unsetIndexedReadMethod(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.IndexedPropertyDecorator#getIndexedReadMethod Indexed Read Method}' reference is set. - * - * - * @return whether the value of the 'Indexed Read Method' reference is set. - * @see #unsetIndexedReadMethod() - * @see #getIndexedReadMethod() - * @see #setIndexedReadMethod(Method) - * @generated - */ - boolean isSetIndexedReadMethod(); - - /** - * Returns the value of the 'Indexed Write Method' reference. - * - *- * If the meaning of the 'Indexed Write Method' reference isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Indexed Write Method' 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 Indexed Write Method}' reference. - * - * - * @param value the new value of the 'Indexed Write Method' 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 Indexed Write Method}' reference. - * - * - * @see #isSetIndexedWriteMethod() - * @see #getIndexedWriteMethod() - * @see #setIndexedWriteMethod(Method) - * @generated - */ - void unsetIndexedWriteMethod(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.IndexedPropertyDecorator#getIndexedWriteMethod Indexed Write Method}' reference is set. - * - * - * @return whether the value of the 'Indexed Write Method' 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 a8147e66b..000000000 --- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/MethodDecorator.java +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 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; -/* - * $RCSfile: MethodDecorator.java,v $ - * $Revision: 1.7 $ $Date: 2005/08/24 20:31:28 $ - */ - - -import org.eclipse.emf.common.util.EList; -/** - * - * A representation of the model object 'Method Decorator'. - * - * - * - * Equivalent to MethodDecorator in java. - * - * - *- * The following features are supported: - *
- * If the meaning of the 'Parameter Descriptors' containment reference list isn't clear, - * there really should be more of a description here... - *
- * - * - * This is the parameter descriptors list. - *- * 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. - * - * @return the value of the 'Parameter Descriptors' 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 'Ser Parm Desc' containment reference list. - * The list contents are of type {@link org.eclipse.jem.internal.beaninfo.ParameterDecorator}. - * - *
- * If the meaning of the 'Ser Parm Desc' containment reference list isn't clear, - * there really should be more of a description here... - *
- * - * - * This is a private feature. It is used internally only. - * - * @return the value of the 'Ser Parm Desc' 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 8743a2a03..000000000 --- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/MethodProxy.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 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; -/* - * $RCSfile: MethodProxy.java,v $ - * $Revision: 1.7 $ $Date: 2005/08/24 20:31:28 $ - */ - - -import org.eclipse.emf.ecore.EOperation; - -import org.eclipse.jem.java.Method; - -/** - * - * A representation of the model object 'Method Proxy'. - * - * - * - * This is just a wrapper of a java Method. It allows access to the method but doesn't duplicate the interface for it. - *- * MethodProxies will be in the eBehaviors setting for any methods that are in the JavaClass methods setting so that they are not duplicated. - *
- * MethodProxies would also have MethodDecorators. - * - * - *
- * The following features are supported: - *
- * If the meaning of the 'Method' reference isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Method' 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 Method}' reference. - * - * - * @param value the new value of the 'Method' 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 fd0e8a5f7..000000000 --- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/ParameterDecorator.java +++ /dev/null @@ -1,97 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 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; -/* - * $RCSfile: ParameterDecorator.java,v $ - * $Revision: 1.6 $ $Date: 2005/08/24 20:31:28 $ - */ - - -import org.eclipse.jem.java.JavaParameter; -/** - * - * A representation of the model object 'Parameter Decorator'. - * - * - *- * The following features are supported: - *
- * If the meaning of the 'Name' attribute isn't clear, - * there really should be more of a description here... - *
- * - * - * The name is explicit here because unlike the other feature decorators, the name does not come from the object being decorated. - * - * @return the value of the 'Name' 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 Name}' attribute. - * - * - * @param value the new value of the 'Name' attribute. - * @see #getName() - * @generated - */ - void setName(String value); - - /** - * Returns the value of the 'Parameter' reference. - * - *- * If the meaning of the 'Parameter' reference isn't clear, - * there really should be more of a description here... - *
- * - * - * The JavaParameter that this ParameterDecorator is decorating. Can't use eDecorates in this. - * - * @return the value of the 'Parameter' 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 Parameter}' reference. - * - * - * @param value the new value of the 'Parameter' 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 c9fa8462b..000000000 --- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/PropertyDecorator.java +++ /dev/null @@ -1,513 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 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; -/* - * $RCSfile: PropertyDecorator.java,v $ - * $Revision: 1.10 $ $Date: 2005/09/15 20:09:51 $ - */ - - -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; -/** - * - * A representation of the model object 'Property Decorator'. - * - * - * - * Equivalent to PropertyDecorator in java. - * - * - *- * The following features are supported: - *
- * If the meaning of the 'Bound' attribute isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Bound' 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 Bound}' attribute. - * - * - * @param value the new value of the 'Bound' 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 Bound}' attribute. - * - * - * @see #isSetBound() - * @see #isBound() - * @see #setBound(boolean) - * @generated - */ - void unsetBound(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isBound Bound}' attribute is set. - * - * - * @return whether the value of the 'Bound' attribute is set. - * @see #unsetBound() - * @see #isBound() - * @see #setBound(boolean) - * @generated - */ - boolean isSetBound(); - - /** - * Returns the value of the 'Constrained' attribute. - * - *- * If the meaning of the 'Constrained' attribute isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Constrained' 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 Constrained}' attribute. - * - * - * @param value the new value of the 'Constrained' 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 Constrained}' attribute. - * - * - * @see #isSetConstrained() - * @see #isConstrained() - * @see #setConstrained(boolean) - * @generated - */ - void unsetConstrained(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isConstrained Constrained}' attribute is set. - * - * - * @return whether the value of the 'Constrained' attribute is set. - * @see #unsetConstrained() - * @see #isConstrained() - * @see #setConstrained(boolean) - * @generated - */ - boolean isSetConstrained(); - - /** - * Returns the value of the 'Design Time' attribute. - * - *- * If the meaning of the 'Design Time' attribute isn't clear, - * there really should be more of a description here... - *
- * - * - * 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. - * - * @return the value of the 'Design Time' 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 Design Time}' attribute. - * - * - * @param value the new value of the 'Design Time' 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 Design Time}' attribute. - * - * - * @see #isSetDesignTime() - * @see #isDesignTime() - * @see #setDesignTime(boolean) - * @generated - */ - void unsetDesignTime(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#isDesignTime Design Time}' attribute is set. - * - * - * @return whether the value of the 'Design Time' attribute is set. - * @see #unsetDesignTime() - * @see #isDesignTime() - * @see #setDesignTime(boolean) - * @generated - */ - boolean isSetDesignTime(); - - /** - * Returns the value of the 'Always Incompatible' attribute. - * - *- * If the meaning of the 'Always Incompatible' attribute isn't clear, - * there really should be more of a description here... - *
- * - * - * 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. - * - * @return the value of the 'Always Incompatible' 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 Always Incompatible}' attribute. - * - * - * @param value the new value of the 'Always Incompatible' attribute. - * @see #isAlwaysIncompatible() - * @generated - */ - void setAlwaysIncompatible(boolean value); - - /** - * Returns the value of the 'Filter Flags' attribute list. - * The list contents are of type {@link java.lang.String}. - * - *- * If the meaning of the 'Filter Flags' attribute list isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Filter Flags' attribute list. - * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getPropertyDecorator_FilterFlags() - * @model type="java.lang.String" - * @generated - */ - EList getFilterFlags(); - - /** - * Returns the value of the 'Field Read Only' attribute. - * - * - * - * Is this field read-only (i.e. is a "final" field). This is only referenced if the field reference is set. - * - * @return the value of the 'Field Read Only' 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 Field Read Only}' attribute. - * - * - * @param value the new value of the 'Field Read Only' attribute. - * @see #isFieldReadOnly() - * @generated - */ - void setFieldReadOnly(boolean value); - - /** - * Returns the value of the 'Property Editor Class' reference. - * - *- * If the meaning of the 'Property Editor Class' reference isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Property Editor Class' 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 Property Editor Class}' reference. - * - * - * @param value the new value of the 'Property Editor Class' reference. - * @see #getPropertyEditorClass() - * @generated - */ - void setPropertyEditorClass(JavaClass value); - - /** - * Returns the value of the 'Read Method' reference. - * - *- * If the meaning of the 'Read Method' reference isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Read Method' 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 Read Method}' reference. - * - * - * @param value the new value of the 'Read Method' 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 Read Method}' reference. - * - * - * @see #isSetReadMethod() - * @see #getReadMethod() - * @see #setReadMethod(Method) - * @generated - */ - void unsetReadMethod(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getReadMethod Read Method}' reference is set. - * - * - * @return whether the value of the 'Read Method' reference is set. - * @see #unsetReadMethod() - * @see #getReadMethod() - * @see #setReadMethod(Method) - * @generated - */ - boolean isSetReadMethod(); - - /** - * Returns the value of the 'Write Method' reference. - * - *- * If the meaning of the 'Write Method' reference isn't clear, - * there really should be more of a description here... - *
- * - * @return the value of the 'Write Method' 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 Write Method}' reference. - * - * - * @param value the new value of the 'Write Method' 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 Write Method}' reference. - * - * - * @see #isSetWriteMethod() - * @see #getWriteMethod() - * @see #setWriteMethod(Method) - * @generated - */ - void unsetWriteMethod(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getWriteMethod Write Method}' reference is set. - * - * - * @return whether the value of the 'Write Method' reference is set. - * @see #unsetWriteMethod() - * @see #getWriteMethod() - * @see #setWriteMethod(Method) - * @generated - */ - boolean isSetWriteMethod(); - - /** - * Returns the value of the 'Field' reference. - * - * - * - * 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. - * - * @return the value of the 'Field' 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 Field}' reference. - * - * - * @param value the new value of the 'Field' 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 Field}' reference. - * - * - * @see #isSetField() - * @see #getField() - * @see #setField(Field) - * @generated - */ - void unsetField(); - - /** - * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.PropertyDecorator#getField Field}' reference is set. - * - * - * @return whether the value of the 'Field' reference is set. - * @see #unsetField() - * @see #getField() - * @see #setField(Field) - * @generated - */ - boolean isSetField(); - - /** - * - * - * - * Get the property type. - * - * @model kind="operation" - * @generated - */ - EClassifier getPropertyType(); - - /** - * - * This property type is not persisted if this class is serialized into an XMI file. Nor is - * it a property that can be set from an XMI file. It is an operation. It is used by - * clients which want a PropertyDecorator that is not part of a BeanInfo model. - * - * - * Set the property type. - * - * @model - * @generated - */ - void setPropertyType(EClassifier propertyType); - - /** - * @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 2b49711d4..000000000 --- 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 bbe85767f..000000000 --- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeanInfoDecoratorUtility.java +++ /dev/null @@ -1,1457 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2006 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.8 $ $Date: 2006/05/17 20:13:00 $ - */ -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) { - for (Iterator itr = decor.getAttributes().listIterator(); itr.hasNext();) { - FeatureAttributeMapEntryImpl entry = (FeatureAttributeMapEntryImpl)itr.next(); - if (entry.getTypedValue().isImplicitValue()) { - itr.remove(); - } - } - } - 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 returnsnull
then the record will be ignored.
- *
- * 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 null
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 null
then the record will be ignored.
- *
- * 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 null
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 null
then the record will be ignored.
- *
- *
- * 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 null
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 null
then the record will be ignored.
- *
- *
- * 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 null
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 null
then the record will be ignored.
- *
- *
- * 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 null
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.
- *
- * - * @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()) { - // 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]); - FeatureAttributeValue fv = record.attributeValues[i]; - fv.setImplicitValue(true); - entry.setTypedValue(fv); - 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. - *
- * The jniName must refer to a JavaClass or errors could occur later on.
- *
- * @param jniName
- * classname in JNI format.
- * @return JavaClass proxy or null
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 true
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) {
- for (Iterator itr = decor.getAttributes().listIterator(); itr.hasNext();) {
- FeatureAttributeMapEntryImpl entry = (FeatureAttributeMapEntryImpl)itr.next();
- if (entry.getTypedValue().isImplicitValue()) {
- doAddToEnd(cd, fcs, BeaninfoPackage.eINSTANCE.getFeatureDecorator_Attributes(), entry, 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 true
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
- * true
if new object in the resource, a clone will be made. false
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
- * true
if new objects in the resource, clones will be made. false
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.
- *
- * 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
- * true
if new object in the resource, a clone will be made. false
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;
- }
-}
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 1774b9766..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoAdapterFactory.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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;
-/*
- * $RCSfile: BeaninfoAdapterFactory.java,v $
- * $Revision: 1.9 $ $Date: 2005/09/13 20:30:47 $
- */
-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.emf.ecore.resource.ResourceSet;
-
-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;
-import org.eclipse.jem.util.emf.workbench.ProjectResourceSet;
-/**
- * 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();
- }
-
- public ProjectResourceSet getNewResourceSet() {
- return fInfoSupplier.getNewResourceSet();
- }
-
- public ResourceSet getProjectResourceSet() {
- return fInfoSupplier.getProjectResourceSet();
- }
-
- /**
- * 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 stale, but leave the overrides alone. The overrides aren't stale.
- *
- *
- * @since 1.1.0.1
- */
- public void markAllStale() {
- markAllStale(false);
- }
-
- /**
- * Mark ALL adapters as stale. This occurs because we've recycled the registry.
- *
- * @param clearOverrides clear the overrides too. This is full-fledged stale. The overrides are stale too.
- */
- public void markAllStale(boolean clearOverrides) {
- 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, clearOverrides);
- }
- 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 6277c63a4..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoClassAdapter.java
+++ /dev/null
@@ -1,2678 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.53 $ $Date: 2006/05/23 15:43:06 $
- */
-
-import java.io.FileNotFoundException;
-import java.lang.ref.WeakReference;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.text.MessageFormat;
-import java.util.*;
-import java.util.logging.Level;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.emf.common.notify.*;
-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.*;
-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.*;
-import org.eclipse.emf.ecore.xmi.PackageNotFoundException;
-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.beaninfo.core.BeanInfoCacheController.ClassEntry;
-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.internal.impl.JavaClassImpl;
-import org.eclipse.jem.util.TimerTests;
-import org.eclipse.jem.util.logger.proxy.Logger;
-
-/**
- * Beaninfo adapter for doing introspection on a Java Model class.
- *
- * 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. - *
- * 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. - *
- * 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. - *
- * This is the process for determining if introspection required: - *
true
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 || retrievedExtensionDocument == CLEAR_EXTENSIONS) {
- // 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.
- // Or we've been asked to clear all.
- 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 || retrievedExtensionDocument == CLEAR_EXTENSIONS) {
- // 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).
- // Or we had a Clean requested and need to clear the extensions too.
- 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 {
- BeaninfoProxyConstants proxyConstants = getProxyConstants();
- if (proxyConstants != null) {
- beaninfo = proxyConstants.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 {
- new ExtensionDocApplies(null, rset, jc, null).run(cacheRes);
- } 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 static final URI ROOT_URI = URI.createGenericURI(BeaninfoPlugin.ROOT_SCHEMA, BeaninfoPlugin.ROOT_OPAQUE, null);
- private static final String ROOT_FRAGMENT = "//@root"; //$NON-NLS-1$
- private static final Pattern FRAGMENT_SPLITTER = Pattern.compile("/"); //$NON-NLS-1$
-
- // TODO This is to make event util optional. This should be removed entirely with 1.3 when event util goes away.
- private static boolean RETRIEVED_EVENT_METHODS;
- private static Object EVENT_FACTORY_INSTANCE;
- private static java.lang.reflect.Method CREATE_EVENT_UTIL_METHOD;
- private static java.lang.reflect.Method DO_FORWARD_EVENTS_METHOD;
-
- private static boolean isEventUtilLoaded() {
- if (!RETRIEVED_EVENT_METHODS) {
- try {
- Class eventFactoryClass = Class.forName("com.ibm.etools.emf.event.EventFactory");
- Field eventFactoryField = eventFactoryClass.getField("eINSTANCE");
- Object eventFactoryInstance = eventFactoryField.get(null);
- java.lang.reflect.Method createEventMethod = eventFactoryClass.getMethod("createEventUtil", new Class[] {Notifier.class, ResourceSet.class});
- Class eventUtilClass = createEventMethod.getReturnType();
- java.lang.reflect.Method doForwardEventsMethod = eventUtilClass.getMethod("doForwardEvents", new Class[] {List.class});
- EVENT_FACTORY_INSTANCE = eventFactoryInstance;
- CREATE_EVENT_UTIL_METHOD = createEventMethod;
- DO_FORWARD_EVENTS_METHOD = doForwardEventsMethod;
- } catch (ClassNotFoundException e) {
- } catch (SecurityException e) {
- } catch (NoSuchFieldException e) {
- } catch (IllegalArgumentException e) {
- } catch (IllegalAccessException e) {
- } catch (NoSuchMethodException e) {
- }
- RETRIEVED_EVENT_METHODS = true;
- }
- return EVENT_FACTORY_INSTANCE != 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 if (e.exception() instanceof PackageNotFoundException && ((PackageNotFoundException) e.exception()).getMessage().indexOf("event.xmi") != -1) {
- if (!RETRIEVED_EVENT_METHODS) {
- BeaninfoPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, BeaninfoPlugin.PI_BEANINFO_PLUGINID, 0, "An old style override file using the com.ibm.event format was found, but com.ibm.event was not installed. The first such file is "+uri, null)); //$NON-NLS-1$
- RETRIEVED_EVENT_METHODS = true; // Mark we've retrieved. This is ok because if event is missing here, it will be missing for retrieve too.
- }
- } 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 {
- EList contents = overrideRes.getContents();
- if (overridesCache != null) {
- // TODO Until https://bugs.eclipse.org/bugs/show_bug.cgi?id=109169 is fixed, we need our own Copier.
- EcoreUtil.Copier copier = new EcoreUtil.Copier() {
-
- private static final long serialVersionUID = 1L;
-
- protected void copyReference(EReference eReference, EObject eObject, EObject copyEObject) {
- if (eObject.eIsSet(eReference)) {
- if (eReference.isMany()) {
- List source = (List) eObject.eGet(eReference);
- InternalEList target = (InternalEList) copyEObject.eGet(getTarget(eReference));
- if (source.isEmpty()) {
- target.clear();
- } else {
- boolean isBidirectional = eReference.getEOpposite() != null;
- int index = 0;
- for (Iterator k = ((EcoreEList) source).basicIterator(); k.hasNext();) {
- Object referencedEObject = k.next();
- Object copyReferencedEObject = get(referencedEObject);
- if (copyReferencedEObject == null) {
- if (!isBidirectional) {
- target.addUnique(index, referencedEObject);
- ++index;
- }
- } else {
- if (isBidirectional) {
- int position = target.indexOf(copyReferencedEObject);
- if (position == -1) {
- target.addUnique(index, copyReferencedEObject);
- } else if (index != position) {
- target.move(index, copyReferencedEObject);
- }
- } else {
- target.addUnique(index, copyReferencedEObject);
- }
- ++index;
- }
- }
- }
- } else {
- Object referencedEObject = eObject.eGet(eReference, false);
- if (referencedEObject == null) {
- copyEObject.eSet(getTarget(eReference), null);
- } else {
- Object copyReferencedEObject = get(referencedEObject);
- if (copyReferencedEObject == null) {
- if (eReference.getEOpposite() == null) {
- copyEObject.eSet(getTarget(eReference), referencedEObject);
- }
- } else {
- copyEObject.eSet(getTarget(eReference), copyReferencedEObject);
- }
- }
- }
- }
- }
- };
-
- // We fixup the CD first so that when serialized it will be to the correct object already. Simplifies apply later.
- Iterator itr = contents.iterator();
- while (itr.hasNext()) {
- Object o = itr.next();
- if (o instanceof ChangeDescription) {
- fixupCD((ChangeDescription) o);
- }
- }
-
- Collection result = copier.copyAll(contents);
- copier.copyReferences();
- overridesCache.addAll(result); // Make a copy for the override cache to be used next time needed.
- }
-
- if (!contents.isEmpty()) {
- // TODO It could be either the old event model or the new ChangeDescription. When we remove Event Model we need to remove
- // the test. This could be the override cache too, so we must apply the contents in the order they are in the resource.
- try {
- List events = null;
- Object[] eventsParm = null;
- Iterator itr = contents.iterator();
- while (itr.hasNext()) {
- Object o = itr.next();
- if (o instanceof ChangeDescription) {
- ChangeDescription cd = (ChangeDescription) o;
- fixupCD(cd);
- cd.apply();
- } else if (isEventUtilLoaded()) {
- if (events == null) {
- events = new ArrayList(1);
- events.add(null); // EventUtil needs a list, but we will be calling one by one. So just reuse this list.
- eventsParm = new Object[] { events};
- }
- // It is the old format.
- events.set(0, o);
- try {
- Object util = CREATE_EVENT_UTIL_METHOD.invoke(EVENT_FACTORY_INSTANCE, new Object[] {mergeIntoJavaClass, rset});
- DO_FORWARD_EVENTS_METHOD.invoke(util, eventsParm);
- } catch (IllegalArgumentException e) {
- } catch (IllegalAccessException e) {
- } catch (InvocationTargetException e) {
- BeaninfoPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, BeaninfoPlugin.PI_BEANINFO_PLUGINID, 0, "Error processing file\"" + overrideRes.getURI() + "\"", e.getCause())); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
- } finally {
- uninstallRootResource();
- }
- }
- } 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$
- }
- }
-
- /*
- * fix it up so that references to "X:ROOT#//@root" are replaced with reference to the javaclass.
- */
- private void fixupCD(ChangeDescription cd) {
- EStructuralFeature keyFeature = ChangePackage.eINSTANCE.getEObjectToChangesMapEntry_Key();
- Iterator changes = cd.getObjectChanges().iterator();
- while (changes.hasNext()) {
- EObject entry = (EObject) changes.next();
- EObject key = (EObject) entry.eGet(keyFeature, false);
- if (key != null && key.eIsProxy()) {
- // See if it is our special.
- URI uri = ((InternalEObject) key).eProxyURI();
- String rootFrag = uri.fragment();
- if (BeaninfoPlugin.ROOT_SCHEMA.equals(uri.scheme()) && BeaninfoPlugin.ROOT_OPAQUE.equals(uri.opaquePart()) && (rootFrag != null && rootFrag.startsWith(ROOT_FRAGMENT))) {
- // It is one of ours. Get the fragment, remove the leading //root and append to the end of the
- // uri from the java class itself.
- if (rootFrag.length() <= ROOT_FRAGMENT.length())
- entry.eSet(keyFeature, mergeIntoJavaClass); // No sub-path, so just the java class.
- else {
- // There is a sub-path below the java class that is needed. Need to walk down the path.
- String[] path = FRAGMENT_SPLITTER.split(rootFrag.substring(ROOT_FRAGMENT.length()+1));
- InternalEObject newKey = (InternalEObject) mergeIntoJavaClass;
- for (int i = 0; newKey != null && i < path.length; i++) {
- newKey = (InternalEObject) newKey.eObjectForURIFragmentSegment(path[i]);
- }
- if (newKey != null)
- entry.eSet(keyFeature, newKey);
- }
- }
- }
- }
- }
-
- /*
- * Uninstall the fake root resource. This must be called after installRootResource has been called. So must use try/finally.
- *
- *
- * @since 1.2.0
- */
- private void uninstallRootResource() {
- Resource root = rset.getResource(ROOT_URI, false);
- if (root != null)
- rset.getResources().remove(root);
- }
- }
- 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 serialVersionUID
- *
- * @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; itrue
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 IProject.getNature
and should not
- * be called directly by clients.
- * The nature extension id is added to the list of natures on the project by
- * IProject.getNature
, 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 IProject.removeNature
and should not
- * be called directly by clients.
- * The nature id is removed from the list of natures on the project by
- * IProject.removeNature
, 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 - * 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. - *
- * 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. - *
- * 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: - *
- *
- * rset = beaninfoNature.newResourceSet();
- * rset.getResourceFactoryRegistry().getExtensionToFactoryMap().remove("java");
- *
- *
- * @return a ResourceSet that is specially connected to the JEM java model.
- *
- * @since 1.0.0
- */
- public ProjectResourceSet 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, JavaXMIFactory.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 (JavaXMIFactory.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.
- * - * 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. - *
- * Note: 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 synchronized 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);
-
- projectCleaned();
- 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
- * To gain access to these constants, use the static accessor method "getConstants()" so that the instance is not created until actually needed.
- *
- * @since 1.0.0
- */
-public final class BeaninfoProxyConstants {
-
- private static final Object REGISTRY_KEY = new Object();
-
- private final IMethodProxy introspectProxy;
-
- private final IMethodProxy getBeanInfoSearchPathProxy;
-
- private final IMethodProxy setBeanInfoSearchPathProxy;
-
- private final IMethodProxy sendBeanInfoProxy;
-
- /**
- * Get the constants instance for the specified registry.
- */
- public static BeaninfoProxyConstants getConstants(ProxyFactoryRegistry registry) {
- if (registry != null && registry.isValid()) {
- BeaninfoProxyConstants constants = (BeaninfoProxyConstants) registry.getConstants(REGISTRY_KEY);
- if (constants == null)
- registry.registerConstants(REGISTRY_KEY, constants = new BeaninfoProxyConstants(registry));
- return constants;
- } else
- return null;
- }
-
- private BeaninfoProxyConstants(ProxyFactoryRegistry registry) {
-
- IStandardBeanTypeProxyFactory typeFactory = registry.getBeanTypeProxyFactory();
-
- IBeanTypeProxy introspector = typeFactory.getBeanTypeProxy("java.beans.Introspector"); //$NON-NLS-1$
- getBeanInfoSearchPathProxy = introspector.getMethodProxy("getBeanInfoSearchPath"); //$NON-NLS-1$
- setBeanInfoSearchPathProxy = introspector.getMethodProxy("setBeanInfoSearchPath", "[Ljava.lang.String;"); //$NON-NLS-1$ //$NON-NLS-2$
-
- IBeanTypeProxy modelingBeaninfo = typeFactory.getBeanTypeProxy("org.eclipse.jem.internal.beaninfo.vm.ModelingBeanInfo");//$NON-NLS-1$
- introspectProxy = modelingBeaninfo.getMethodProxy("introspect", new String[] { "java.lang.Class", "boolean", "int"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-
- sendBeanInfoProxy = modelingBeaninfo.getMethodProxy("send"); //$NON-NLS-1$
-
- }
-
- /**
- * Get the sendBeanDecorator method proxy from ModelingBeanInfo.
- * @return
- *
- * @since 1.1.0
- */
- public IMethodProxy getSendBeanInfoProxy() {
- return sendBeanInfoProxy;
- }
-
- /**
- * Get the getBeanInfoSearchPath method proxy from Introspector.
- * @return
- *
- * @since 1.0.0
- */
- public IMethodProxy getGetBeanInfoSearchPathProxy() {
- return getBeanInfoSearchPathProxy;
- }
-
- /**
- * Get the setBeanInfoSearchPath method proxy from Introspector.
- * @return
- *
- * @since 1.0.0
- */
- public IMethodProxy getSetBeanInfoSearchPathProxy() {
- return setBeanInfoSearchPathProxy;
- }
-
- /**
- * Get the introspect method proxy from ModelingBeanInfo.
- * @return
- *
- * @since 1.1.0
- */
- public IMethodProxy getIntrospectProxy() {
- return introspectProxy;
- }
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoSuperAdapter.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoSuperAdapter.java
deleted file mode 100644
index 672d8bcd3..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoSuperAdapter.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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;
-/*
- * $RCSfile: BeaninfoSuperAdapter.java,v $
- * $Revision: 1.7 $ $Date: 2005/09/14 23:30:38 $
- */
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.impl.ESuperAdapter;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-import org.eclipse.jem.java.JavaClass;
-import org.eclipse.jem.java.JavaRefPackage;
-import org.eclipse.jem.java.internal.impl.JavaClassImpl;
-
-/**
- * Used to know when events or any of the super classes change so
- * that we can re-construct our all events list next time we need it.
- * @version 1.0
- * @author
- */
-public class BeaninfoSuperAdapter extends AdapterImpl {
-
- public static final Class ADAPTER_KEY = BeaninfoSuperAdapter.class;
-
- private boolean allEventsCollectionModified = true;
- private boolean allPropertiesCollectionModified = true;
- private boolean allOperationsCollectionModified = true;
-
- public BeaninfoSuperAdapter() {
- super();
- }
-
- public void notifyChanged(Notification msg) {
- if (msg.getEventType() != Notification.REMOVING_ADAPTER)
- setFlags(msg.getFeatureID(JavaClass.class));
- }
-
- public boolean isAllEventsCollectionModified() {
- return allEventsCollectionModified;
- }
-
- public void setAllEventsCollectionModified(boolean newEventsModified) {
- allEventsCollectionModified = newEventsModified;
- }
-
- public boolean isAllOperationsCollectionModified() {
- return allOperationsCollectionModified;
- }
-
- public void setAllOperationsCollectionModified(boolean newOperationsModified) {
- allOperationsCollectionModified = newOperationsModified;
- }
-
- public void setAllPropertiesCollectionModified(boolean allPropertiesCollectionModified) {
- this.allPropertiesCollectionModified = allPropertiesCollectionModified;
- }
-
- public boolean isAllPropertiesCollectionModified() {
- return allPropertiesCollectionModified;
- }
-
- public Collection getSubclasses() {
- // Get them from the ESuperAdapter. Easiest to do.
- ESuperAdapter ea = ((JavaClassImpl) getTarget()).getESuperAdapter();
- return ea.getSubclasses();
- }
-
- public boolean isAdapterForType(Object type) {
- return ADAPTER_KEY.equals(type);
- }
-
- void setFlags(int featureId) {
- switch (featureId) {
- case JavaRefPackage.JAVA_CLASS__EVENTS :
- setAllEventsCollectionModified(true);
- break;
-
- case JavaRefPackage.JAVA_CLASS__EOPERATIONS:
- setAllOperationsCollectionModified(true);
- break;
-
- case JavaRefPackage.JAVA_CLASS__ESUPER_TYPES:
- setAllEventsCollectionModified(true);
- setAllPropertiesCollectionModified(true);
- break;
-
- case JavaRefPackage.JAVA_CLASS__ESTRUCTURAL_FEATURES:
- setAllPropertiesCollectionModified(true);
- break;
-
- default :
- break;
- }
- Iterator i = getSubclasses().iterator();
- while (i.hasNext()) {
- Notifier n = (Notifier) i.next();
- BeaninfoSuperAdapter a = (BeaninfoSuperAdapter) EcoreUtil.getExistingAdapter(n, ADAPTER_KEY);
- if (a != null)
- a.setFlags(featureId);
- }
- }
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/CreateRegistryJobHandler.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/CreateRegistryJobHandler.java
deleted file mode 100644
index a676113ce..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/CreateRegistryJobHandler.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: CreateRegistryJobHandler.java,v $
- * $Revision: 1.14 $ $Date: 2005/08/24 20:31:29 $
- */
-package org.eclipse.jem.internal.beaninfo.adapters;
-
-import java.util.logging.Level;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.*;
-
-import org.eclipse.jem.internal.beaninfo.core.BeaninfoPlugin;
-import org.eclipse.jem.util.logger.proxy.Logger;
-
-
-
-/**
- * This class is used by BeaninfoNature to handle the creation of the registry,
- * This class will be a singleton. It is needed to handle if UI active without
- * requiring UI plugin. (So headless will work too). The subclass
- * Now roots can either be in a project, or they can be an external jar (which can be shared between projects).
- *
- * Now all roots for a project will be stored in the project's working location
- * {@link org.eclipse.core.resources.IProject#getWorkingLocation(java.lang.String)}under the ".cache" directory. It will be this format in each
- * project location (under the org.eclipse.jem.beaninfo directory):
- *
- *
- * All of the external jar roots will be stored in the org.eclipse.jem.beaninfo plugin's state location
- * {@link org.eclipse.core.runtime.Platform#getStateLocation(org.osgi.framework.Bundle)}under the ".cache" directory. The format of this directory
- * will be the same as for each project. And the roots will be for each unique shared external jar (such as the differnt jre's rt.jars).
- *
- * Note: There are so many places where synchronization is needed, so it is decided to synchronize only on BeanInfoCacheController.INSTANCE. It would
- * be too easy to get a dead-lock because the order of synchronizations can't be easily controlled. Since each piece of sync control is very short
- * (except for save of the indices, but that is ok because we don't want them changing while saving) it shouldn't block a lot. There is one place we
- * violate this and that is we do a sync on ClassEntry instance when working with the pending. This is necessary because we don't want the cache write
- * job to hold up everything while writing, so we sync on the entry being written instead. There we must be very careful that we never to
- * BeanInfoCacheControler.INSTANCE sync and then a ClassEntry sync because we could deadlock. The CE access under the covers may do a CE sync and then
- * a BeanInfoCacheController.INSTANCE sync.
- *
- * @since 1.1.0
- */
-public class BeanInfoCacheController {
-
- /**
- * Singleton cache controller.
- *
- * @since 1.1.0
- */
- public static final BeanInfoCacheController INSTANCE = new BeanInfoCacheController();
-
- private BeanInfoCacheController() {
- // Start up save participent. This only is used for saving indexes and shutdown. Currently the saved state delta
- // is of no interest. If a project is deleted while we were not up, then the project index would be gone, so
- // our data will automatically be gone for the project.
- // If a class was deleted while the project's beaninfo was not active, the cache will still contain it. If the class ever came back it
- // would be stale and so recreated. If it never comes back, until a clean is done, it would just hang around.
- // The problem with delete is it is hard to determine that the file is actually a class of interest. The javamodel
- // handles that for us but we won't have a javamodel to handle this on start up to tell us the file was a class of interest. So
- // we'll take the hit of possible cache for non-existant classes. A clean will take care of this.
- saveParticipant = new SaveParticipant();
- try {
- ResourcesPlugin.getWorkspace().addSaveParticipant(BeaninfoPlugin.getPlugin(), saveParticipant);
- } catch (CoreException e) {
- BeaninfoPlugin.getPlugin().getLogger().log(e.getStatus());
- }
-
- // Create a cleanup listener to handle clean requests and project deletes. We need to know about project deletes while
- // active because we may have a project index in memory and that needs to be thrown away.
- JEMUtilPlugin.addCleanResourceChangeListener(new CleanResourceChangeListener() {
-
- protected void cleanProject(IProject project) {
- // Get rid of the project index and the data for the project.
- synchronized (BeanInfoCacheController.this) {
- try {
- Index projectIndex = (Index) project.getSessionProperty(PROJECT_INDEX_KEY);
- if (projectIndex != null) {
- project.setSessionProperty(PROJECT_INDEX_KEY, null);
- projectIndex.markDead();
- cleanDirectory(getCacheDir(project).toFile(), true);
- }
- BeaninfoNature nature = BeaninfoPlugin.getPlugin().getNature(project);
- if (nature != null) {
- nature.projectCleaned();
- BeaninfoAdapterFactory adapterFactory = (BeaninfoAdapterFactory) EcoreUtil.getAdapterFactory(nature.getResourceSet().getAdapterFactories(), IIntrospectionAdapter.ADAPTER_KEY);
- if (adapterFactory != null) {
- adapterFactory.markAllStale(true); // Also clear the overrides.
- }
- }
- } catch (CoreException e) {
- // Shouldn't occur.
- }
- }
- }
-
- protected void cleanAll() {
- synchronized(BeanInfoCacheController.this) {
- // Get MAIN_INDEX, mark it dead, and then delete everything under it.
- if (MAIN_INDEX != null) {
- MAIN_INDEX.markDead();
- MAIN_INDEX = null;
- cleanDirectory(getCacheDir(null).toFile(), true);
- }
- }
- super.cleanAll();
- }
-
- public void resourceChanged(IResourceChangeEvent event) {
- // We don't need to handle PRE_CLOSE because SaveParticipent project save will handle closing.
- switch (event.getType()) {
- case IResourceChangeEvent.PRE_DELETE:
- // Don't need to clear the cache directory because Eclipse will get rid of it.
- synchronized (BeanInfoCacheController.this) {
- try {
- Index projectIndex = (Index) event.getResource().getSessionProperty(PROJECT_INDEX_KEY);
- if (projectIndex != null) {
- // No need to remove from the project because the project is going away and will clean itself up.
- projectIndex.markDead();
- }
- } catch (CoreException e) {
- // Shouldn't occur.
- }
- }
- // Flow into PRE_CLOSE to release the nature.
- case IResourceChangeEvent.PRE_CLOSE:
- // About to close or delete, so release the nature, if any.
- IProject project = (IProject) event.getResource();
- BeaninfoNature nature = BeaninfoPlugin.getPlugin().getNature(project);
- if (nature != null) {
- nature.cleanup(false, true);
- }
- break;
- default:
- super.resourceChanged(event);
- break;
- }
- }
-
- }, IResourceChangeEvent.PRE_DELETE | IResourceChangeEvent.PRE_CLOSE);
- }
-
- protected SaveParticipant saveParticipant;
-
- /**
- * An index structure for the Main and Project indexes. Access to the index contents and methods should synchronize on the index itself.
- *
- * Getting to the index instance should only be through the
- * The value will be a {@link BeanInfoCacheController.RootIndex}. This is the index for the contents of that root.
- *
- * @since 1.1.0
- */
- transient public Map rootToRootIndex;
-
- /**
- * @param dirty
- * The dirty to set.
- *
- * @since 1.1.0
- */
- public void setDirty(boolean dirty) {
- synchronized (BeanInfoCacheController.INSTANCE) {
- this.dirty = dirty;
- }
- }
-
- /**
- * @return Returns the dirty.
- *
- * @since 1.1.0
- */
- public boolean isDirty() {
- synchronized (BeanInfoCacheController.INSTANCE) {
- return dirty;
- }
- }
-
- /**
- * Answer if this index is dead. It is dead if a clean has occurred. This is needed because there could be some ClassEntry's still
- * around (such as in the pending write queue) that are for cleaned roots. This is used to test if it has been cleaned.
- * @return
- *
- * @since 1.1.0
- */
- public boolean isDead() {
- return highRootNumber == DEAD;
- }
-
- /**
- * Mark the index as dead.
- *
- *
- * @since 1.1.0
- */
- void markDead() {
- highRootNumber = DEAD;
- }
-
- private void writeObject(ObjectOutputStream os) throws IOException {
- os.defaultWriteObject();
- // Now write out the root to root index map. We are not serializing the Map directly using normal Map serialization because
- // the key of the map is an IPath (which is a Path under the covers) and Path is not serializable.
- os.writeInt(rootToRootIndex.size());
- for (Iterator mapItr = rootToRootIndex.entrySet().iterator(); mapItr.hasNext();) {
- Map.Entry entry = (Map.Entry) mapItr.next();
- os.writeUTF(((IPath) entry.getKey()).toString());
- os.writeObject(entry.getValue());
- }
- }
-
- private void readObject(ObjectInputStream is) throws IOException, ClassNotFoundException {
- is.defaultReadObject();
- int size = is.readInt();
- rootToRootIndex = new HashMap(size < 100 ? 100 : size);
- while (size-- > 0) {
- rootToRootIndex.put(new Path(is.readUTF()), is.readObject());
- }
- }
- }
-
- /**
- * An index for a root. It has an entry for each class in this root. The class cache entry describes the cache, whether it is stale, what the
- * current mod stamp is, etc.
- *
- * @since 1.1.0
- */
- public static abstract class RootIndex implements Serializable {
-
- private static final long serialVersionUID = 1106868674101L;
-
- transient private IPath cachePath; // Absolute local filesystem IPath to the root cache directory. Computed at runtime because it may change
- // if workspace relocated.
-
- protected Map classNameToClassEntry; // Map of class names to class entries.
-
- private String rootName; // Name of the root directory in the cache (e.g. "root1").
-
- protected Index index; // Index containing this root index.
-
- protected RootIndex() {
- }
-
- public RootIndex(String rootName, Index index) {
- this.rootName = rootName;
- classNameToClassEntry = new HashMap(100); // When created brand new, put in a map. Otherwise object stream will create the map.
- this.index = index;
- }
-
- /**
- * Get the index that points to this root.
- * @return
- *
- * @since 1.1.0
- */
- Index getIndex() {
- return index;
- }
-
- /**
- * Return the root directory name
- *
- * @return rootname
- *
- * @since 1.1.0
- */
- public String getRootName() {
- return rootName;
- }
-
- /**
- * Set this RootIndex (and the containing Index) as being dirty and in need of saving.
- *
- *
- * @since 1.1.0
- */
- public void setDirty() {
- index.setDirty(true);
- }
-
- /*
- * Setup for index. It will initialize the path. Once set it won't set it again. This will be called repeatedly by the cache controller
- * because there is no way to know if it was lazily created or was brought in from file. When brought in from file the path is not set because
- * it should be relocatable and we don't want absolute paths out on the disk caches, and we don't want to waste time creating the path at load
- * time because it may not be needed for a while. So it will be lazily created. If the project is set, then the path will be relative to
- * the project's working location. If project is
- * This is
- * There is a method to call to see if deleted. This should only be called if entry is being held on to because
- *
- * Holders of entries should call isDeleted if they don't need to further check the mod stamp. Else they should call getModificationStamp and
- * check of deleted, stale, or mod stamp. That would save extra synchronizations. If entry is deleted then it should throw the entry away.
- *
- * @return
- * Note: It is public only so that BeanInfoClassAdapter can access it. It should not be called by anyone else outside of BeanInfo.
- */
- public synchronized void markDeleted() {
- if (!isDeleted()) {
- getRootIndex().classNameToClassEntry.remove(className);
- setModificationStamp(DELETED_MODIFICATION_STAMP); // Also marks index as dirty.
- }
- }
-
- /**
- * Return whether the entry is stale or not. This orthoganal to isDeleted. isDeleted will not be true if isStale and isStale will not be true
- * if isDeleted. Normally you should use getModificationStamp and check the value for IResource.NULL_STAMP and other values to bring it down
- * to only one synchronized call to CE, but if only needing to know if stale, you can use this.
- *
- * @return
- *
- * @since 1.1.0
- * @see IResource#NULL_STAMP
- * @see ClassEntry#getModificationStamp()
- * @see ClassEntry#isDeleted()
- */
- public boolean isStale() {
- return getModificationStamp() == IResource.NULL_STAMP;
- }
-
- /**
- * Return the modification stamp. For those holding onto an entry, and they need to know more than if just deleted, then they should just the
- * return value from getModificationStamp. Else they should use isDeleted or isStale.
- *
- * @return modification stamp, or {@link IResource#NULL_STAMP}if stale or not yet created, or {@link ClassEntry#DELETED_MODIFICATION_STAMP}
- * if deleted.
- *
- * @see ClassEntry#isDeleted()
- * @see ClassEntry#isStale()
- * @since 1.1.0
- */
- public synchronized long getModificationStamp() {
- return modificationStamp;
- }
-
- /**
- * Return the super modification stamp.
- * @return
- *
- * @since 1.1.0
- */
- public synchronized long getSuperModificationStamp() {
- return superModificationStamp;
- }
-
- /**
- * Return the interface names or
- * NOTE: It is the responsibility of the caller to ALWAYS remove the Resource from its resource set when done with it.
- *
- * @param jclass
- * @param ce the class entry for the jclass
- * @param reflectCache
- * In other words,
- * This will return the part of the packagePath that is not matched by the fragment.
- *
- * Note: It is important that the fragment and packagePath have first been tested through
- * isFragment. Otherwise an invalid result will be returned.
- *
- * @param fragment
- * @param packagePath
- * @return the part of the package path not matched.
- *
- * @see BeanInfoContributorAdapter#isFragment(IPath, IPath)
- * @since 1.0.0
- */
- protected String getUnmatchedPath(IPath fragment, IPath packagePath) {
- return fragment.removeFirstSegments(packagePath.segmentCount()).toString();
- }
-
- /**
- * Subclasses can use this helper method to get the override resource from the given (plugin) bundle.
- *
- * @param bundle the bundle to use.
- * @param relativePath path of file relative to the plugin.
- * @param resource set to load into.
- * @param runnable the runnable that is being used for the override. It is used to determine if resource already used once.
- * @return the resource or
- * An external jar through containers is not valid because container are attached to
- * projects. they aren't standalone.
- *
- * @version 1.0
- * @author
- */
-public class BeaninfoEntry implements IBeaninfosDocEntry {
-
- final static String sBeaninfo = "beaninfo"; // Beaninfo entry, shared with BeaninfosDoc. //$NON-NLS-1$
-
- public static final int BIE_PLUGIN = 100; // Beaninfo jar can be found in a plugin.
-
- static int kindFromString(String kindStr) {
- if (kindStr == null || kindStr.length() == 0)
- return BIE_PLUGIN; // Default to plugin. If coming from beaninfoconfig, there should always be kind. But if coming from plugin.xml there shouldn't be one.
- if (kindStr.equalsIgnoreCase("con")) //$NON-NLS-1$
- return IClasspathEntry.CPE_CONTAINER;
- if (kindStr.equalsIgnoreCase("var")) //$NON-NLS-1$
- return IClasspathEntry.CPE_VARIABLE;
- if (kindStr.equalsIgnoreCase("src")) //$NON-NLS-1$
- return IClasspathEntry.CPE_SOURCE;
- if (kindStr.equalsIgnoreCase("lib")) //$NON-NLS-1$
- return IClasspathEntry.CPE_LIBRARY;
- if (kindStr.equalsIgnoreCase("plugin")) //$NON-NLS-1$
- return BIE_PLUGIN;
- return -1;
- }
-
- static String kindToString(int kind) {
-
- switch (kind) {
- case IClasspathEntry.CPE_PROJECT :
- return "src"; // backward compatibility //$NON-NLS-1$
- case IClasspathEntry.CPE_SOURCE :
- return "src"; //$NON-NLS-1$
- case IClasspathEntry.CPE_LIBRARY :
- return "lib"; //$NON-NLS-1$
- case IClasspathEntry.CPE_VARIABLE :
- return "var"; //$NON-NLS-1$
- case IClasspathEntry.CPE_CONTAINER:
- return "con"; //$NON-NLS-1$
- case BIE_PLUGIN:
- return "plugin"; //$NON-NLS-1$
- default :
- return "unknown"; //$NON-NLS-1$
- }
- }
-
- /**
- * Return the appropriate kind of entry when we know it is a classpath entry.
- */
- public static IClasspathEntry createEntry(int kind, IPath path, IProject project, boolean isExported) {
- switch (kind) {
-
- case IClasspathEntry.CPE_LIBRARY :
- if (path.isAbsolute())
- return JavaCore.newLibraryEntry(path, null, null, isExported);
- break;
-
- case IClasspathEntry.CPE_SOURCE :
- if (path.isAbsolute()) {
- // must be an entry in this project or specify another project
- String projSegment = path.segment(0);
- if (project != null && projSegment != null && projSegment.equals(project.getName())) {
- // this project
- return JavaCore.newSourceEntry(path);
- } else {
- // another project
- return JavaCore.newProjectEntry(path, isExported);
- }
- }
- break;
-
- case IClasspathEntry.CPE_VARIABLE :
- return JavaCore.newVariableEntry(path, null, null, isExported);
-
- case IClasspathEntry.CPE_CONTAINER:
- return JavaCore.newContainerEntry(path, isExported);
-
- }
-
- return null;
- }
- /**
- * Read the entry in from the element.
- */
- public static BeaninfoEntry readEntry(IReader reader, Object element, IProject project) {
- String elementKind = reader.getAttribute(element, BeaninfosDoc.sKind);
- String pathStr = reader.getAttribute(element, BeaninfosDoc.sPath);
- // ensure path is absolute
- IPath path = new Path(pathStr);
- int kind = kindFromString(elementKind);
- if (kind != IClasspathEntry.CPE_VARIABLE && kind != IClasspathEntry.CPE_CONTAINER && kind != BIE_PLUGIN && !path.isAbsolute()) {
- path = project != null ? project.getFullPath().append(path) : path.makeAbsolute(); // Some folder/jar within this project
- }
-
- // exported flag
- String exportedString = reader.getAttribute(element, BeaninfosDoc.sExported);
- boolean isExported = "true".equalsIgnoreCase(exportedString); //$NON-NLS-1$
- //$NON-NLS-1$
-
- // recreate the entry
- IClasspathEntry cpEntry = null;
- IPath pluginPath = null;
- if (kind != BIE_PLUGIN) {
- cpEntry = createEntry(kind, path, project, isExported);
- } else {
- if (path.isAbsolute())
- pluginPath = path;
- else {
- // Kludge This should only be a plugin type if from configuration element. So we will cast to that
- // and get the plugin id to create an absolute plugin path.
- if (element instanceof IConfigurationElement) {
- pluginPath = new Path('/'+((IConfigurationElement) element).getDeclaringExtension().getContributor().getName()).append(path);
- } else
- return null; // Not valid because can't have plugin from .beaninfoconfig file.
- }
- }
-
- ArrayList searchpaths = new ArrayList();
- Object children = reader.getChildren(element);
- int childrenLength = reader.getLength(children);
- for (int i = 0; i < childrenLength; i++) {
- Object child = reader.getItem(children, i);
- if (reader.isNodeTypeElement(child)) {
- Object entry = null;
- if (reader.getNodeName(child).equalsIgnoreCase(SearchpathEntry.sSearchpath)) {
- entry = SearchpathEntry.readEntry(reader, child, project, true);
- }
- if (entry != null)
- searchpaths.add(entry);
- }
- }
-
- if (cpEntry != null)
- return new BeaninfoEntry(
- cpEntry,
- (SearchpathEntry[]) searchpaths.toArray(new SearchpathEntry[searchpaths.size()]),
- isExported);
- else return new BeaninfoEntry(
- pluginPath,
- (SearchpathEntry[]) searchpaths.toArray(new SearchpathEntry[searchpaths.size()]),
- isExported);
- }
-
- protected IClasspathEntry entry; // Store it as a classpath entry for convienence. It is the RAW classpath entry. This is only used when pointing to something other than a plugin.
- protected IPath pluginPath; // When stored in a plugin, this will be set instead.
- protected boolean isExported;
- protected SearchpathEntry[] searchpaths;
-
- /**
- * Used when the beaninfo jar is within a plugin. In that case, the first segment
- * of the path is the plugin descriptor, and the rest is the path from the plugin
- * directory to the jar.
- */
- public BeaninfoEntry(IPath pluginPath, SearchpathEntry[] searchpaths, boolean isExported) {
- this(searchpaths, isExported);
- this.pluginPath = pluginPath;
- }
-
- /**
- * Used when the beaninfo jar/folder is either an external jar/folder or is somewhere else
- * in the workspace. In that case the entry is the RAW classpath entry to that code.
- */
- public BeaninfoEntry(IClasspathEntry entry, SearchpathEntry[] searchpaths, boolean isExported) {
- this(searchpaths, isExported);
- this.entry = entry;
- }
-
- protected BeaninfoEntry(SearchpathEntry[] searchpaths, boolean isExported) {
- this.isExported = isExported;
- this.searchpaths = searchpaths != null ? searchpaths : new SearchpathEntry[0];
- }
-
- public SearchpathEntry[] getSearchPaths() {
- return searchpaths;
- }
-
- public void setSearchPaths(SearchpathEntry[] searchpaths) {
- this.searchpaths = searchpaths;
- }
-
- public boolean isExported() {
- return isExported;
- }
-
- public void setIsExported(boolean isExported) {
- this.isExported = isExported;
- }
-
- public Node writeEntry(Document doc, IProject project) {
-
- Element element = doc.createElement(sBeaninfo);
- IPath path = null;
- if (entry != null) {
- element.setAttribute(BeaninfosDoc.sKind, kindToString(entry.getEntryKind()));
- path = entry.getPath();
- if (entry.getEntryKind() != IClasspathEntry.CPE_VARIABLE && entry.getEntryKind() != IClasspathEntry.CPE_CONTAINER) {
- // translate to project relative from absolute (unless a device path)
- if (path.isAbsolute()) {
- if (path.segment(0).equals(project.getFullPath().segment(0))) {
- path = path.removeFirstSegments(1);
- path = path.makeRelative();
- } else {
- path = path.makeAbsolute();
- }
- }
- }
- } else {
- element.setAttribute(BeaninfosDoc.sKind, kindToString(BIE_PLUGIN));
- path = pluginPath;
- }
-
- element.setAttribute(BeaninfosDoc.sPath, path.toString()); //$NON-NLS-1$
- if (isExported()) {
- element.setAttribute(BeaninfosDoc.sExported, "true"); //$NON-NLS-1$
- }
-
- for (int i = 0; i < searchpaths.length; i++) {
- SearchpathEntry spe = searchpaths[i];
- element.appendChild(spe.writeEntry(doc, project));
- }
-
- return element;
- }
-
- /**
- * If this is not a plugin info, then return the classpath entry.
- */
- public IClasspathEntry getClasspathEntry() {
- return entry;
- }
-
- /**
- * Return the resolved classpaths. Each entry in the array will be either:
- * 1) IProject - If it is a project type entry. Want the whole project
- * 2) String - an absolute external path to a jar
- * 3) IPath - a path to a plugin jar. The first segment is the plugin id, the rest is the path relative to that plugin.
- *
- *
- * @param javaProject
- * @return The array of paths, or
- *
- * @since 1.0.0
- */
- private static class OverrideContribution {
- public String id;
- public Pattern pattern; // Used only for containers.
- public String[] pluginIds;
- public String[] paths;
- }
-
- /**
- * The runnable is to used to apply override.
- *
- * This will be called in sequence for each override path found. It is send in on the apply overrides call. This
- * interface implementation is private.
- *
- * Clients (implementers of the IBeanInfoContributor) will be passed in the subinterface
- * This interface is not intended to be implemented by clients.
- *
- * @since 1.0.0
- * @see BeaninfoPlugin#applyOverrides(IProject, String, String, ResourceSet, IOverrideRunnable)
- */
- public interface IOverrideRunnable {
- /**
- * This will be called with the directory path to use. It will be called over and over for every
- * override path found for a package. The path will be complete, including trailing '/'.
- * It will be in a URI format for a directory. The overriderunnable implementation will then append the filename call (i.e. classbeingintrospected.override) to get a complete path.
- *
- * Clients (IBeanInfoContributor implementers) can call this to apply a specific override file to the current
- * class being processed.
- *
- * @param overridePath the path will be complete, including trailing '/'. It will be in a URI format for a directory. The override file name (classname.override) will be appended to this and retrieved and applied.
- *
- * @since 1.0.0
- */
- public void run(String overridePath);
-
- /**
- * This will be called with the actual resource to use. This will be called by special contributors that want
- * a special explicit override resource to be used.
- *
- * Contributors should use the ResourceSet that was passed into them. This is so that anything java class that
- * the override resource points to will be found.
- *
- * This resource will be automatically removed by BeanInfo after being applied. It must not be left around because
- * in the process of being applied it will be modified, so it could not be reused.
- *
- * @param overrideResource the resource to apply to the current class. NOTE: This resource WILL be removed from
- * the resource set it is in automatically by this call. It won't be left around because the action of apply
- * will actually modify the resource.
- *
- * @since 1.0.0
- */
- public void run(Resource overrideRes);
- }
-
- /**
- * IBeanInfoContributor runnable to use to apply overrides.
- *
- * An implementation of this will be passed in to IBeanInfoContributor's so that they can call back to apply the overrides. They
- * should call the appropriate run method once for each override to be applied. The run can be called more than once from each IBeanInfoContributor.
- *
- * It inherits from
- * This interface is not intended to be implemented by clients.
- *
- * @see BeaninfoPlugin.IOverrideRunnable for more methods that can be called.
- * @since 1.0.0
- */
- public interface IContributorOverrideRunnable extends IOverrideRunnable {
-
- /**
- * Tests if path has already been contributed once for the current class.
- *
- * This can be called by the IBeanInfoContributor for overrides to test if the path (same path as for the IOverrideRunnable.run(String) method)
- * has already been contributed once for this class. It can be used to save time. However it is not necessary because
- * BeanInfo will not permit it to be contributed more than once for a class.
- *
- * @param path
- * @return
- * This can be called by an IBeanInfoContributor for overrides to see if the URI (same path as the URI from the IOverrideRunnable.run(Resource) method)
- * has already been contributed once for this class. It can be used to save time. However, not necessary because
- * BeanInfo will not permit the URI to be contributed more than once for a class.
- *
- * @param resourceURI
- * @return
- * The package name uses '.' to delineate the fragments of the name,
- * i.e. use "
- * Note: This is not meant to be called by clients. It is public only because an internal class in another package needs to call it.
- * TODO This should be package-protected. Later the other class will be moved into this package.
- *
- * @param project the project to run against.
- * @param packageName
- * @param className class name of the class that is being overridden.
- * @param javaClass the java class the overrides will be applied to.
- * @param resource set that contributors can use to temporarily load dynamic override files.
- * @param runnable use this runnable to actually apply overrides.
- *
- * @since 1.0.0
- */
- public void applyOverrides(final IProject project, String packageName, final String className, final JavaClass javaClass, final ResourceSet rset, final IOverrideRunnable runnable) {
- final IPath packagePath = new Path(packageName.replace('.', '/')+'/');
- try {
- IConfigurationContributionInfo info = (IConfigurationContributionInfo) project.getSessionProperty(BeaninfoNature.CONFIG_INFO_SESSION_KEY);
- if (info == null) {
- // It hasn't been created yet, so we need to create our own internal version here.
- info = ProxyLaunchSupport.createDefaultConfigurationContributionInfo(JavaCore.create(project));
- BeaninfoNature.computeBeanInfoConfigInfo(info);
- }
- final IBeanInfoContributor[] explicitContributors = (IBeanInfoContributor[]) project.getSessionProperty(BeaninfoNature.BEANINFO_CONTRIBUTORS_SESSION_KEY);
- synchronized (this) {
- if (ocFragments == null)
- processBeanInfoContributionExtensionPoint(); // We haven't processed them yet.
- }
-
- final Set usedPaths = new HashSet(10); // Set of used paths. So that the contributors don't supply a path already used. This could cause problems if they did.
- final IContributorOverrideRunnable contribRunnable = new IContributorOverrideRunnable() {
- public void run(String overridePath) {
- if (!usedPaths.contains(overridePath)) {
- usedPaths.add(overridePath);
- runnable.run(overridePath);
- }
- }
-
- public void run(Resource overrideRes) {
- if (!usedPaths.contains(overrideRes.getURI())) {
- usedPaths.add(overrideRes.getURI());
- try {
- runnable.run(overrideRes);
- } finally {
- overrideRes.getResourceSet().getResources().remove(overrideRes);
- }
- }
- }
-
- public boolean pathContributed(String path) {
- return usedPaths.contains(path);
- }
-
- public boolean resourceContributed(URI resourceURI) {
- return usedPaths.contains(resourceURI);
- }
- };
-
- // Run through the containers that implement IBeanInfoContributor.
- for (Iterator iter = info.getContainers().entrySet().iterator(); iter.hasNext();) {
- Map.Entry mapEntry = (Map.Entry) iter.next();
- final IClasspathContainer container = (IClasspathContainer) mapEntry.getKey();
- if (container instanceof IBeanInfoContributor && ((Boolean) mapEntry.getValue()).booleanValue()) {
- SafeRunner.run(new ISafeRunnable() {
- public void handleException(Throwable exception) {
- // Standard run logs to .log
- }
- public void run() throws Exception {
- ((IBeanInfoContributor) container).runOverrides(packagePath, className, javaClass, rset, contribRunnable);
- }
- });
- }
- }
-
- // Run through the explicit contributors.
- for (int i=0; i
- *
- * Implementations of this interface allows a dynamic supply of BeanInfo contributions (beaninfo jars and search paths)
- * and override files. This is used when the default plugin extension mechanism is too static for the requirements.
- *
- * There is a very useful default implementation (
- * This will be called by BeanInfo when it determines that this contributor is applicable
- * for the current project being processed. BeaninfoEntry's define the BeanInfo jars and search paths to use.
- *
- * @param info
- * @return BeanInfo contributions or
- * This will be called by BeanInfo when it determines that this
- * contributor is applicable for the current project being processed.
- *
- * Implementations must call the runnable (the argument
- * Note: It must be in normal form, i.e. fully-qualified, if primitive spelled out (e.g. "int" not I), and if
- * arrays it must readable form (e.g. "java.lang.String[]" and not "[Ljava.lang.String;").
- *
- * @param className
- * @return
- *
- * @since 1.1.0
- */
- public static URI getJavaClassURI(String className) {
- return JavaRefFactory.eINSTANCE.createTypeURI(className);
- }
-
- /**
- * Utility to return the EClassifier from the given IBeanTypeProxy.
- */
- public static EClassifier getJavaClass(IBeanTypeProxy type, ResourceSet rset) {
- if (type != null) {
- return getJavaType(type.getFormalTypeName(), rset);
- } else
- return null;
- }
-
- /**
- * Utility to return the Method from the given IMethodProxy.
- */
- public static Method getMethod(IMethodProxy method, ResourceSet rset) {
- return method != null ? (Method) rset.getEObject(URI.createURI(getMethodURL(method)), true) : null;
- }
-
- /**
- * Answer the URL String for Method from the given IMethodProxy
- */
- public static String getMethodURL(IMethodProxy method) {
- String className = method.getClassType().getTypeName();
- IBeanTypeProxy[] parms = method.getParameterTypes();
- String[] parmTypes = parms.length > 0 ? new String[parms.length] : null;
- for (int i = 0; i < parms.length; i++) {
- parmTypes[i] = parms[i].getFormalTypeName();
- }
- return computeMethodURL(className, method.getName(), parmTypes);
- }
-
- protected static String computeMethodURL(String fullyQualifiedClassName, String methodName, String[] parmTypes) {
- int classStart = fullyQualifiedClassName.lastIndexOf('.');
- StringBuffer url = new StringBuffer(50);
- url.append("java:/"); //$NON-NLS-1$
- if (classStart > -1)
- url.append(fullyQualifiedClassName.substring(0, classStart));
- url.append('#');
- url.append(computeMethodID(fullyQualifiedClassName.substring(classStart + 1), methodName, parmTypes));
- return url.toString();
- }
-
- protected static String computeFieldURL(String fullyQualifiedClassName, String fieldName) {
- int classStart = fullyQualifiedClassName.lastIndexOf('.');
- StringBuffer url = new StringBuffer(50);
- url.append("java:/"); //$NON-NLS-1$
- if (classStart > -1)
- url.append(fullyQualifiedClassName.substring(0, classStart));
- url.append('#');
- url.append(fullyQualifiedClassName.substring(classStart + 1));
- url.append(ReflectionAdaptor.C_CLASS_MEMBER_DELIMITER);
- url.append(fieldName);
- return url.toString();
- }
-
- /**
- * Return the field uri for the given classname, fieldname.
- * @param fullyQualifiedClassName
- * @param fieldName
- * @return
- *
- * @since 1.1.0
- */
- public static URI getFieldURI(String fullyQualifiedClassName, String fieldName) {
- return URI.createURI(computeFieldURL(fullyQualifiedClassName, fieldName));
- }
- /**
- * Return the method uri for the given classname, methodname, parm types.
- * @param fullyQualifiedClassName
- * @param methodName
- * @param parmTypes
- * The following features are implemented:
- *
- * Note: the correct way to create the package is via the static
- * factory method {@link #init init()}, which also performs
- * initialization of the package, or returns the registered package,
- * if one already exists.
- *
- *
- * @see org.eclipse.emf.ecore.EPackage.Registry
- * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#eNS_URI
- * @see #init()
- * @generated
- */
- private BeaninfoPackageImpl() {
- super(eNS_URI, BeaninfoFactory.eINSTANCE);
- }
-
- /**
- *
- *
- * @generated
- */
- private static boolean isInited = false;
-
- /**
- * Creates, registers, and initializes the Package for this
- * model, and for any others upon which it depends. Simple
- * dependencies are satisfied by calling this method on all
- * dependent packages before doing anything else. This method drives
- * initialization for interdependent packages directly, in parallel
- * with this package, itself.
- * Of this package and its interdependencies, all packages which
- * have not yet been registered by their URI values are first created
- * and registered. The packages are then initialized in two steps:
- * meta-model objects for all of the packages are created before any
- * are initialized, since one package's meta-model objects may refer to
- * those of another.
- * Invocation of this method will not affect any packages that have
- * already been initialized.
- *
- *
- * @see #eNS_URI
- * @see #createPackageContents()
- * @see #initializePackageContents()
- * @generated
- */
- public static BeaninfoPackage init() {
- if (isInited) return (BeaninfoPackage)EPackage.Registry.INSTANCE.getEPackage(BeaninfoPackage.eNS_URI);
-
- // Obtain or create and register package
- BeaninfoPackageImpl theBeaninfoPackage = (BeaninfoPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof BeaninfoPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new BeaninfoPackageImpl());
-
- isInited = true;
-
- // Initialize simple dependencies
- EcorePackageImpl.init();
- JavaRefPackageImpl.init();
-
- // Create package meta-data objects
- theBeaninfoPackage.createPackageContents();
-
- // Initialize created meta-data
- theBeaninfoPackage.initializePackageContents();
-
- // Mark meta-data to indicate it can't be changed
- theBeaninfoPackage.freeze();
-
- return theBeaninfoPackage;
- }
-
- /**
- *
- *
- * @generated
- */
- public EClass getFeatureDecorator() {
- return featureDecoratorEClass;
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getFeatureDecorator_DisplayName() {
- return (EAttribute)featureDecoratorEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getFeatureDecorator_ShortDescription() {
- return (EAttribute)featureDecoratorEClass.getEStructuralFeatures().get(1);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getFeatureDecorator_Category() {
- return (EAttribute)featureDecoratorEClass.getEStructuralFeatures().get(2);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getFeatureDecorator_Expert() {
- return (EAttribute)featureDecoratorEClass.getEStructuralFeatures().get(3);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getFeatureDecorator_Hidden() {
- return (EAttribute)featureDecoratorEClass.getEStructuralFeatures().get(4);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getFeatureDecorator_Preferred() {
- return (EAttribute)featureDecoratorEClass.getEStructuralFeatures().get(5);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getFeatureDecorator_MergeIntrospection() {
- return (EAttribute)featureDecoratorEClass.getEStructuralFeatures().get(6);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getFeatureDecorator_AttributesExplicitEmpty() {
- return (EAttribute)featureDecoratorEClass.getEStructuralFeatures().get(7);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getFeatureDecorator_ImplicitlySetBits() {
- return (EAttribute)featureDecoratorEClass.getEStructuralFeatures().get(8);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getFeatureDecorator_ImplicitDecoratorFlag() {
- return (EAttribute)featureDecoratorEClass.getEStructuralFeatures().get(9);
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getFeatureDecorator_Attributes() {
- return (EReference)featureDecoratorEClass.getEStructuralFeatures().get(10);
- }
-
- /**
- *
- *
- * @generated
- */
- public EClass getEventSetDecorator() {
- return eventSetDecoratorEClass;
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getEventSetDecorator_InDefaultEventSet() {
- return (EAttribute)eventSetDecoratorEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getEventSetDecorator_Unicast() {
- return (EAttribute)eventSetDecoratorEClass.getEStructuralFeatures().get(1);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getEventSetDecorator_ListenerMethodsExplicitEmpty() {
- return (EAttribute)eventSetDecoratorEClass.getEStructuralFeatures().get(2);
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getEventSetDecorator_AddListenerMethod() {
- return (EReference)eventSetDecoratorEClass.getEStructuralFeatures().get(3);
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getEventSetDecorator_ListenerMethods() {
- return (EReference)eventSetDecoratorEClass.getEStructuralFeatures().get(4);
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getEventSetDecorator_ListenerType() {
- return (EReference)eventSetDecoratorEClass.getEStructuralFeatures().get(5);
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getEventSetDecorator_RemoveListenerMethod() {
- return (EReference)eventSetDecoratorEClass.getEStructuralFeatures().get(6);
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getEventSetDecorator_EventAdapterClass() {
- return (EReference)eventSetDecoratorEClass.getEStructuralFeatures().get(7);
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getEventSetDecorator_SerListMthd() {
- return (EReference)eventSetDecoratorEClass.getEStructuralFeatures().get(8);
- }
-
- /**
- *
- *
- * @generated
- */
- public EClass getMethodProxy() {
- return methodProxyEClass;
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getMethodProxy_Method() {
- return (EReference)methodProxyEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- *
- *
- * @generated
- */
- public EClass getPropertyDecorator() {
- return propertyDecoratorEClass;
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getPropertyDecorator_Bound() {
- return (EAttribute)propertyDecoratorEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getPropertyDecorator_Constrained() {
- return (EAttribute)propertyDecoratorEClass.getEStructuralFeatures().get(1);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getPropertyDecorator_DesignTime() {
- return (EAttribute)propertyDecoratorEClass.getEStructuralFeatures().get(2);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getPropertyDecorator_AlwaysIncompatible() {
- return (EAttribute)propertyDecoratorEClass.getEStructuralFeatures().get(3);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getPropertyDecorator_FilterFlags() {
- return (EAttribute)propertyDecoratorEClass.getEStructuralFeatures().get(4);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getPropertyDecorator_FieldReadOnly() {
- return (EAttribute)propertyDecoratorEClass.getEStructuralFeatures().get(5);
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getPropertyDecorator_PropertyEditorClass() {
- return (EReference)propertyDecoratorEClass.getEStructuralFeatures().get(6);
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getPropertyDecorator_ReadMethod() {
- return (EReference)propertyDecoratorEClass.getEStructuralFeatures().get(7);
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getPropertyDecorator_WriteMethod() {
- return (EReference)propertyDecoratorEClass.getEStructuralFeatures().get(8);
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getPropertyDecorator_Field() {
- return (EReference)propertyDecoratorEClass.getEStructuralFeatures().get(9);
- }
-
- /**
- *
- *
- * @generated
- */
- public EClass getIndexedPropertyDecorator() {
- return indexedPropertyDecoratorEClass;
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getIndexedPropertyDecorator_IndexedReadMethod() {
- return (EReference)indexedPropertyDecoratorEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getIndexedPropertyDecorator_IndexedWriteMethod() {
- return (EReference)indexedPropertyDecoratorEClass.getEStructuralFeatures().get(1);
- }
-
- /**
- *
- *
- * @generated
- */
- public EClass getBeanDecorator() {
- return beanDecoratorEClass;
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getBeanDecorator_MergeSuperProperties() {
- return (EAttribute)beanDecoratorEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getBeanDecorator_MergeSuperMethods() {
- return (EAttribute)beanDecoratorEClass.getEStructuralFeatures().get(1);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getBeanDecorator_MergeSuperEvents() {
- return (EAttribute)beanDecoratorEClass.getEStructuralFeatures().get(2);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getBeanDecorator_IntrospectProperties() {
- return (EAttribute)beanDecoratorEClass.getEStructuralFeatures().get(3);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getBeanDecorator_IntrospectMethods() {
- return (EAttribute)beanDecoratorEClass.getEStructuralFeatures().get(4);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getBeanDecorator_IntrospectEvents() {
- return (EAttribute)beanDecoratorEClass.getEStructuralFeatures().get(5);
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getBeanDecorator_CustomizerClass() {
- return (EReference)beanDecoratorEClass.getEStructuralFeatures().get(10);
- }
-
- /**
- *
- *
- * @generated
- */
- public EClass getMethodDecorator() {
- return methodDecoratorEClass;
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getMethodDecorator_ParmsExplicitEmpty() {
- return (EAttribute)methodDecoratorEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getMethodDecorator_ParameterDescriptors() {
- return (EReference)methodDecoratorEClass.getEStructuralFeatures().get(1);
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getMethodDecorator_SerParmDesc() {
- return (EReference)methodDecoratorEClass.getEStructuralFeatures().get(2);
- }
-
- /**
- *
- *
- * @generated
- */
- public EClass getParameterDecorator() {
- return parameterDecoratorEClass;
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getParameterDecorator_Name() {
- return (EAttribute)parameterDecoratorEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- *
- *
- * @generated
- */
- public EDataType getFeatureAttributeValue() {
- return featureAttributeValueEDataType;
- }
-
- /**
- *
- *
- * @generated
- */
- public BeaninfoFactory getBeaninfoFactory() {
- return (BeaninfoFactory)getEFactoryInstance();
- }
-
- /**
- *
- *
- * @generated
- */
- private boolean isCreated = false;
-
- /**
- * Creates the meta-model objects for the package. This method is
- * guarded to have no affect on any invocation but its first.
- *
- *
- * @generated
- */
- public void createPackageContents() {
- if (isCreated) return;
- isCreated = true;
-
- // Create classes and their features
- featureDecoratorEClass = createEClass(FEATURE_DECORATOR);
- createEAttribute(featureDecoratorEClass, FEATURE_DECORATOR__DISPLAY_NAME);
- createEAttribute(featureDecoratorEClass, FEATURE_DECORATOR__SHORT_DESCRIPTION);
- createEAttribute(featureDecoratorEClass, FEATURE_DECORATOR__CATEGORY);
- createEAttribute(featureDecoratorEClass, FEATURE_DECORATOR__EXPERT);
- createEAttribute(featureDecoratorEClass, FEATURE_DECORATOR__HIDDEN);
- createEAttribute(featureDecoratorEClass, FEATURE_DECORATOR__PREFERRED);
- createEAttribute(featureDecoratorEClass, FEATURE_DECORATOR__MERGE_INTROSPECTION);
- createEAttribute(featureDecoratorEClass, FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY);
- createEAttribute(featureDecoratorEClass, FEATURE_DECORATOR__IMPLICITLY_SET_BITS);
- createEAttribute(featureDecoratorEClass, FEATURE_DECORATOR__IMPLICIT_DECORATOR_FLAG);
- createEReference(featureDecoratorEClass, FEATURE_DECORATOR__ATTRIBUTES);
-
- beanDecoratorEClass = createEClass(BEAN_DECORATOR);
- createEAttribute(beanDecoratorEClass, BEAN_DECORATOR__MERGE_SUPER_PROPERTIES);
- createEAttribute(beanDecoratorEClass, BEAN_DECORATOR__MERGE_SUPER_METHODS);
- createEAttribute(beanDecoratorEClass, BEAN_DECORATOR__MERGE_SUPER_EVENTS);
- createEAttribute(beanDecoratorEClass, BEAN_DECORATOR__INTROSPECT_PROPERTIES);
- createEAttribute(beanDecoratorEClass, BEAN_DECORATOR__INTROSPECT_METHODS);
- createEAttribute(beanDecoratorEClass, BEAN_DECORATOR__INTROSPECT_EVENTS);
- createEAttribute(beanDecoratorEClass, BEAN_DECORATOR__DO_BEANINFO);
- createEAttribute(beanDecoratorEClass, BEAN_DECORATOR__NOT_INHERITED_PROPERTY_NAMES);
- createEAttribute(beanDecoratorEClass, BEAN_DECORATOR__NOT_INHERITED_METHOD_NAMES);
- createEAttribute(beanDecoratorEClass, BEAN_DECORATOR__NOT_INHERITED_EVENT_NAMES);
- createEReference(beanDecoratorEClass, BEAN_DECORATOR__CUSTOMIZER_CLASS);
-
- eventSetDecoratorEClass = createEClass(EVENT_SET_DECORATOR);
- createEAttribute(eventSetDecoratorEClass, EVENT_SET_DECORATOR__IN_DEFAULT_EVENT_SET);
- createEAttribute(eventSetDecoratorEClass, EVENT_SET_DECORATOR__UNICAST);
- createEAttribute(eventSetDecoratorEClass, EVENT_SET_DECORATOR__LISTENER_METHODS_EXPLICIT_EMPTY);
- createEReference(eventSetDecoratorEClass, EVENT_SET_DECORATOR__ADD_LISTENER_METHOD);
- createEReference(eventSetDecoratorEClass, EVENT_SET_DECORATOR__LISTENER_METHODS);
- createEReference(eventSetDecoratorEClass, EVENT_SET_DECORATOR__LISTENER_TYPE);
- createEReference(eventSetDecoratorEClass, EVENT_SET_DECORATOR__REMOVE_LISTENER_METHOD);
- createEReference(eventSetDecoratorEClass, EVENT_SET_DECORATOR__EVENT_ADAPTER_CLASS);
- createEReference(eventSetDecoratorEClass, EVENT_SET_DECORATOR__SER_LIST_MTHD);
-
- methodDecoratorEClass = createEClass(METHOD_DECORATOR);
- createEAttribute(methodDecoratorEClass, METHOD_DECORATOR__PARMS_EXPLICIT_EMPTY);
- createEReference(methodDecoratorEClass, METHOD_DECORATOR__PARAMETER_DESCRIPTORS);
- createEReference(methodDecoratorEClass, METHOD_DECORATOR__SER_PARM_DESC);
-
- parameterDecoratorEClass = createEClass(PARAMETER_DECORATOR);
- createEAttribute(parameterDecoratorEClass, PARAMETER_DECORATOR__NAME);
- createEReference(parameterDecoratorEClass, PARAMETER_DECORATOR__PARAMETER);
-
- propertyDecoratorEClass = createEClass(PROPERTY_DECORATOR);
- createEAttribute(propertyDecoratorEClass, PROPERTY_DECORATOR__BOUND);
- createEAttribute(propertyDecoratorEClass, PROPERTY_DECORATOR__CONSTRAINED);
- createEAttribute(propertyDecoratorEClass, PROPERTY_DECORATOR__DESIGN_TIME);
- createEAttribute(propertyDecoratorEClass, PROPERTY_DECORATOR__ALWAYS_INCOMPATIBLE);
- createEAttribute(propertyDecoratorEClass, PROPERTY_DECORATOR__FILTER_FLAGS);
- createEAttribute(propertyDecoratorEClass, PROPERTY_DECORATOR__FIELD_READ_ONLY);
- createEReference(propertyDecoratorEClass, PROPERTY_DECORATOR__PROPERTY_EDITOR_CLASS);
- createEReference(propertyDecoratorEClass, PROPERTY_DECORATOR__READ_METHOD);
- createEReference(propertyDecoratorEClass, PROPERTY_DECORATOR__WRITE_METHOD);
- createEReference(propertyDecoratorEClass, PROPERTY_DECORATOR__FIELD);
-
- indexedPropertyDecoratorEClass = createEClass(INDEXED_PROPERTY_DECORATOR);
- createEReference(indexedPropertyDecoratorEClass, INDEXED_PROPERTY_DECORATOR__INDEXED_READ_METHOD);
- createEReference(indexedPropertyDecoratorEClass, INDEXED_PROPERTY_DECORATOR__INDEXED_WRITE_METHOD);
-
- methodProxyEClass = createEClass(METHOD_PROXY);
- createEReference(methodProxyEClass, METHOD_PROXY__METHOD);
-
- beanEventEClass = createEClass(BEAN_EVENT);
-
- featureAttributeMapEntryEClass = createEClass(FEATURE_ATTRIBUTE_MAP_ENTRY);
- createEAttribute(featureAttributeMapEntryEClass, FEATURE_ATTRIBUTE_MAP_ENTRY__KEY);
- createEAttribute(featureAttributeMapEntryEClass, FEATURE_ATTRIBUTE_MAP_ENTRY__VALUE);
-
- // Create enums
- implicitItemEEnum = createEEnum(IMPLICIT_ITEM);
-
- // Create data types
- featureAttributeValueEDataType = createEDataType(FEATURE_ATTRIBUTE_VALUE);
- }
-
- /**
- *
- *
- * @generated
- */
- private boolean isInitialized = false;
-
- /**
- * Complete the initialization of the package and its meta-model. This
- * method is guarded to have no affect on any invocation but its first.
- *
- *
- * @generated
- */
- public void initializePackageContents() {
- if (isInitialized) return;
- isInitialized = true;
-
- // Initialize package
- setName(eNAME);
- setNsPrefix(eNS_PREFIX);
- setNsURI(eNS_URI);
-
- // Obtain other dependent packages
- EcorePackageImpl theEcorePackage = (EcorePackageImpl)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
- JavaRefPackageImpl theJavaRefPackage = (JavaRefPackageImpl)EPackage.Registry.INSTANCE.getEPackage(JavaRefPackage.eNS_URI);
-
- // Add supertypes to classes
- featureDecoratorEClass.getESuperTypes().add(theEcorePackage.getEAnnotation());
- beanDecoratorEClass.getESuperTypes().add(this.getFeatureDecorator());
- eventSetDecoratorEClass.getESuperTypes().add(this.getFeatureDecorator());
- methodDecoratorEClass.getESuperTypes().add(this.getFeatureDecorator());
- parameterDecoratorEClass.getESuperTypes().add(this.getFeatureDecorator());
- propertyDecoratorEClass.getESuperTypes().add(this.getFeatureDecorator());
- indexedPropertyDecoratorEClass.getESuperTypes().add(this.getPropertyDecorator());
- methodProxyEClass.getESuperTypes().add(theEcorePackage.getEOperation());
- beanEventEClass.getESuperTypes().add(theJavaRefPackage.getJavaEvent());
-
- // Initialize classes and features; add operations and parameters
- initEClass(featureDecoratorEClass, FeatureDecorator.class, "FeatureDecorator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getFeatureDecorator_DisplayName(), ecorePackage.getEString(), "displayName", null, 0, 1, FeatureDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getFeatureDecorator_ShortDescription(), ecorePackage.getEString(), "shortDescription", null, 0, 1, FeatureDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getFeatureDecorator_Category(), ecorePackage.getEString(), "category", null, 0, 1, FeatureDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getFeatureDecorator_Expert(), ecorePackage.getEBoolean(), "expert", null, 0, 1, FeatureDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getFeatureDecorator_Hidden(), ecorePackage.getEBoolean(), "hidden", null, 0, 1, FeatureDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getFeatureDecorator_Preferred(), ecorePackage.getEBoolean(), "preferred", null, 0, 1, FeatureDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getFeatureDecorator_MergeIntrospection(), ecorePackage.getEBoolean(), "mergeIntrospection", "true", 0, 1, FeatureDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getFeatureDecorator_AttributesExplicitEmpty(), ecorePackage.getEBoolean(), "attributesExplicitEmpty", null, 0, 1, FeatureDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getFeatureDecorator_ImplicitlySetBits(), ecorePackage.getELong(), "implicitlySetBits", null, 0, 1, FeatureDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getFeatureDecorator_ImplicitDecoratorFlag(), this.getImplicitItem(), "implicitDecoratorFlag", null, 0, 1, FeatureDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getFeatureDecorator_Attributes(), this.getFeatureAttributeMapEntry(), null, "attributes", null, 0, -1, FeatureDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- addEOperation(featureDecoratorEClass, ecorePackage.getEString(), "getName");
-
- initEClass(beanDecoratorEClass, BeanDecorator.class, "BeanDecorator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getBeanDecorator_MergeSuperProperties(), ecorePackage.getEBoolean(), "mergeSuperProperties", "true", 0, 1, BeanDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getBeanDecorator_MergeSuperMethods(), ecorePackage.getEBoolean(), "mergeSuperMethods", "true", 0, 1, BeanDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getBeanDecorator_MergeSuperEvents(), ecorePackage.getEBoolean(), "mergeSuperEvents", "true", 0, 1, BeanDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getBeanDecorator_IntrospectProperties(), ecorePackage.getEBoolean(), "introspectProperties", "true", 0, 1, BeanDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getBeanDecorator_IntrospectMethods(), ecorePackage.getEBoolean(), "introspectMethods", "true", 0, 1, BeanDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getBeanDecorator_IntrospectEvents(), ecorePackage.getEBoolean(), "introspectEvents", "true", 0, 1, BeanDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getBeanDecorator_DoBeaninfo(), ecorePackage.getEBoolean(), "doBeaninfo", "true", 0, 1, BeanDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getBeanDecorator_NotInheritedPropertyNames(), ecorePackage.getEString(), "notInheritedPropertyNames", null, 0, -1, BeanDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getBeanDecorator_NotInheritedMethodNames(), ecorePackage.getEString(), "notInheritedMethodNames", null, 0, -1, BeanDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getBeanDecorator_NotInheritedEventNames(), ecorePackage.getEString(), "notInheritedEventNames", null, 0, -1, BeanDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getBeanDecorator_CustomizerClass(), theJavaRefPackage.getJavaClass(), null, "customizerClass", null, 0, 1, BeanDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(eventSetDecoratorEClass, EventSetDecorator.class, "EventSetDecorator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getEventSetDecorator_InDefaultEventSet(), ecorePackage.getEBoolean(), "inDefaultEventSet", null, 0, 1, EventSetDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getEventSetDecorator_Unicast(), ecorePackage.getEBoolean(), "unicast", null, 0, 1, EventSetDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getEventSetDecorator_ListenerMethodsExplicitEmpty(), ecorePackage.getEBoolean(), "listenerMethodsExplicitEmpty", null, 0, 1, EventSetDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getEventSetDecorator_AddListenerMethod(), theJavaRefPackage.getMethod(), null, "addListenerMethod", null, 1, 1, EventSetDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getEventSetDecorator_ListenerMethods(), this.getMethodProxy(), null, "listenerMethods", null, 1, -1, EventSetDecorator.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
- initEReference(getEventSetDecorator_ListenerType(), theJavaRefPackage.getJavaClass(), null, "listenerType", null, 1, 1, EventSetDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getEventSetDecorator_RemoveListenerMethod(), theJavaRefPackage.getMethod(), null, "removeListenerMethod", null, 1, 1, EventSetDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getEventSetDecorator_EventAdapterClass(), theJavaRefPackage.getJavaClass(), null, "eventAdapterClass", null, 0, 1, EventSetDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getEventSetDecorator_SerListMthd(), this.getMethodProxy(), null, "serListMthd", null, 1, -1, EventSetDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(methodDecoratorEClass, MethodDecorator.class, "MethodDecorator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getMethodDecorator_ParmsExplicitEmpty(), ecorePackage.getEBoolean(), "parmsExplicitEmpty", null, 0, 1, MethodDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getMethodDecorator_ParameterDescriptors(), this.getParameterDecorator(), null, "parameterDescriptors", null, 0, -1, MethodDecorator.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
- initEReference(getMethodDecorator_SerParmDesc(), this.getParameterDecorator(), null, "serParmDesc", null, 0, -1, MethodDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(parameterDecoratorEClass, ParameterDecorator.class, "ParameterDecorator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getParameterDecorator_Name(), ecorePackage.getEString(), "name", null, 0, 1, ParameterDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getParameterDecorator_Parameter(), theJavaRefPackage.getJavaParameter(), null, "parameter", null, 0, 1, ParameterDecorator.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(propertyDecoratorEClass, PropertyDecorator.class, "PropertyDecorator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getPropertyDecorator_Bound(), ecorePackage.getEBoolean(), "bound", null, 0, 1, PropertyDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getPropertyDecorator_Constrained(), ecorePackage.getEBoolean(), "constrained", null, 0, 1, PropertyDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getPropertyDecorator_DesignTime(), ecorePackage.getEBoolean(), "designTime", null, 0, 1, PropertyDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getPropertyDecorator_AlwaysIncompatible(), ecorePackage.getEBoolean(), "alwaysIncompatible", null, 0, 1, PropertyDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getPropertyDecorator_FilterFlags(), ecorePackage.getEString(), "filterFlags", null, 0, -1, PropertyDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getPropertyDecorator_FieldReadOnly(), ecorePackage.getEBoolean(), "fieldReadOnly", null, 0, 1, PropertyDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getPropertyDecorator_PropertyEditorClass(), theJavaRefPackage.getJavaClass(), null, "propertyEditorClass", null, 0, 1, PropertyDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getPropertyDecorator_ReadMethod(), theJavaRefPackage.getMethod(), null, "readMethod", null, 0, 1, PropertyDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getPropertyDecorator_WriteMethod(), theJavaRefPackage.getMethod(), null, "writeMethod", null, 0, 1, PropertyDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getPropertyDecorator_Field(), theJavaRefPackage.getField(), null, "field", null, 0, 1, PropertyDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- addEOperation(propertyDecoratorEClass, theEcorePackage.getEClassifier(), "getPropertyType");
-
- EOperation op = addEOperation(propertyDecoratorEClass, null, "setPropertyType");
- addEParameter(op, theEcorePackage.getEClassifier(), "propertyType");
-
- initEClass(indexedPropertyDecoratorEClass, IndexedPropertyDecorator.class, "IndexedPropertyDecorator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getIndexedPropertyDecorator_IndexedReadMethod(), theJavaRefPackage.getMethod(), null, "indexedReadMethod", null, 0, 1, IndexedPropertyDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getIndexedPropertyDecorator_IndexedWriteMethod(), theJavaRefPackage.getMethod(), null, "indexedWriteMethod", null, 0, 1, IndexedPropertyDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(methodProxyEClass, MethodProxy.class, "MethodProxy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getMethodProxy_Method(), theJavaRefPackage.getMethod(), null, "method", null, 1, 1, MethodProxy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(beanEventEClass, BeanEvent.class, "BeanEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
- initEClass(featureAttributeMapEntryEClass, Map.Entry.class, "FeatureAttributeMapEntry", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getFeatureAttributeMapEntry_Key(), ecorePackage.getEString(), "key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getFeatureAttributeMapEntry_Value(), this.getFeatureAttributeValue(), "value", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- // Initialize enums and add enum literals
- initEEnum(implicitItemEEnum, ImplicitItem.class, "ImplicitItem");
- addEEnumLiteral(implicitItemEEnum, ImplicitItem.NOT_IMPLICIT_LITERAL);
- addEEnumLiteral(implicitItemEEnum, ImplicitItem.IMPLICIT_DECORATOR_LITERAL);
- addEEnumLiteral(implicitItemEEnum, ImplicitItem.IMPLICIT_DECORATOR_AND_FEATURE_LITERAL);
-
- // Initialize data types
- initEDataType(featureAttributeValueEDataType, FeatureAttributeValue.class, "FeatureAttributeValue", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
-
- // Create resource
- createResource(eNS_URI);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getBeanDecorator_DoBeaninfo() {
- return (EAttribute)beanDecoratorEClass.getEStructuralFeatures().get(6);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getBeanDecorator_NotInheritedPropertyNames() {
- return (EAttribute)beanDecoratorEClass.getEStructuralFeatures().get(7);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getBeanDecorator_NotInheritedMethodNames() {
- return (EAttribute)beanDecoratorEClass.getEStructuralFeatures().get(8);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getBeanDecorator_NotInheritedEventNames() {
- return (EAttribute)beanDecoratorEClass.getEStructuralFeatures().get(9);
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getParameterDecorator_Parameter() {
- return (EReference)parameterDecoratorEClass.getEStructuralFeatures().get(1);
- }
-
- /**
- *
- *
- * @generated
- */
- public EClass getBeanEvent() {
- return beanEventEClass;
- }
-
- /**
- *
- *
- * @generated
- */
- public EClass getFeatureAttributeMapEntry() {
- return featureAttributeMapEntryEClass;
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getFeatureAttributeMapEntry_Key() {
- return (EAttribute)featureAttributeMapEntryEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- *
- *
- * @generated
- */
- public EAttribute getFeatureAttributeMapEntry_Value() {
- return (EAttribute)featureAttributeMapEntryEClass.getEStructuralFeatures().get(1);
- }
-
- /**
- *
- *
- * @generated
- */
- public EEnum getImplicitItem() {
- return implicitItemEEnum;
- }
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/EventSetDecoratorImpl.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/EventSetDecoratorImpl.java
deleted file mode 100644
index 83f342630..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/EventSetDecoratorImpl.java
+++ /dev/null
@@ -1,991 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.impl;
-/*
- * $RCSfile: EventSetDecoratorImpl.java,v $
- * $Revision: 1.15 $ $Date: 2005/09/19 15:43:02 $
- */
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EModelElement;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import org.eclipse.jem.internal.beaninfo.BeaninfoPackage;
-import org.eclipse.jem.internal.beaninfo.EventSetDecorator;
-import org.eclipse.jem.internal.beaninfo.ImplicitItem;
-import org.eclipse.jem.internal.beaninfo.MethodProxy;
-
-import org.eclipse.jem.java.JavaClass;
-import org.eclipse.jem.java.Method;
-
-import org.eclipse.jem.internal.beaninfo.*;
-import org.eclipse.jem.java.*;
-/**
- *
- * An implementation of the model object 'Event Set Decorator'.
- *
- *
- * The following features are implemented:
- *
- * This is an internal method used by BeanInfo classes. It is not to be used by clients.
- */
- public EList createDefaultListenerMethodsList() {
- if (!eIsSet(EcorePackage.eINSTANCE.getEAnnotation_EModelElement()))
- return this.getSerListMthd(); // We are not attached, can't determine the list yet.
- EList mthdsList = this.getSerListMthd();
-
- JavaClass eventObjectClass = (JavaClass) JavaRefFactory.eINSTANCE.reflectType("java.util.EventObject", getEModelElement().eResource().getResourceSet()); //$NON-NLS-1$
-
- mthdsList.clear();
-
- // This is a little tricky. Need to get the methods for the listener type, and
- // then go through the methods and filter out the non-event ones.
- JavaClass lt = getListenerType();
- if (lt == null)
- return mthdsList; // Couldn't get the listener type for some reason, so leave as is.
- setImplicitlySetBits(getImplicitlySetBits()|EVENT_LISTENERMETHODS_DEFAULT); // Mark as we implicitly filled it in.
-
- BeaninfoFactory bfact = BeaninfoFactory.eINSTANCE;
- List ms = lt.getPublicMethodsExtended();
- int msize = ms.size();
- for (int i=0; i
- * The following features are implemented:
- *
- * The following features are implemented:
- *
- * The following features are implemented:
- *
- * The following features are implemented:
- *
- * The following features are implemented:
- *
- * The following features are implemented:
- *
- * The following features are implemented:
- *
- * These are constants used in FeatureAttributes as keys. The other special
- * constants that are not keys in FeatureAttributes are left in BaseBeanInfo
- * since they are not needed on both sides.
- *
- * @since 1.2.0
- */
-public interface IBaseBeanInfoConstants {
-
- /**
- * Indicator used to describe a factory instantiation pattern.
- *
- * This will be on the attributes of the BeanDescriptor for the factory class. It will be complete, in that if this
- * factory is inherited from another factory, it must copy in the superclass's factory attribute. They won't be
- * automatically merged.
- *
- * The format is an Object[][]. The first dimension at index zero is for toolkit wide information and then indexes one and beyond are one for each creation method name. The second dimension is for one entry
- * of classwide data and the rest are the data for
- * each creation method.
- *
- * The first entry at Object[0] will be
- * The second and other entries of the array are of the format:
- *
- * A example is:
- *
- * This example says that this class is toolkit (factory). To construct an instead use
- * The way this is used in a palette entry to drop a new object that a toolkit can create is to have an expression of the form
- *
- * NOTE: This is an EXPERIMENTAL API and can change in the future until committed.
- *
- * @since 1.2.0
- */
- public static final String FACTORY_CREATION = "FACTORY_CREATION";//$NON-NLS-1$
-
- /**
- * Category indicator for apply property arguments. Category is a pre-defined attribute name too. That is where the category is stored in a
- * descriptor.
- *
- * @since 1.1.0
- */
- public static final String CATEGORY = "category"; //$NON-NLS-1$
-
- /**
- * Enumeration values indicator for apply property arguments. Enumeration values is a pre-defined attribute name too. That is where the
- * enumeration values are stored.
- *
- * @since 1.1.0
- */
- public static final String ENUMERATIONVALUES = "enumerationValues";//$NON-NLS-1$
-
- // The keys for icon file names, NOT THE java.awt.icon key.
- public static final String ICONCOLOR16X16URL = "ICON_COLOR_16x16_URL"; //$NON-NLS-1$
- public static final String ICONCOLOR32X32URL = "ICON_COLOR_32x32_URL"; //$NON-NLS-1$ // Not used
- public static final String ICONMONO16X16URL = "ICON_MONO_16x16_URL"; //$NON-NLS-1$ // Not used
- public static final String ICONMONO32X32URL = "ICON_MONO_32x32_URL"; //$NON-NLS-1$ // Not used
-
-
- /**
- * FeatureAttribute key for explicit property changes. The value is a Boolean.
- * The default if not set is
- * This should be used with care in that not all properties are required to always show up.
- * They can be queried when needed.
- *
- * The value can be either a {@link String} for one property. Or it can be a {@link String[]} for more
- * than one property.
- *
- * @since 1.2.0
- */
- public static final String REQUIRED_IMPLICIT_PROPERTIES = "requiredImplicitProperties"; //$NON-NLS-1$
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/BeanRecord.java b/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/BeanRecord.java
deleted file mode 100644
index d2eb5c2a1..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/BeanRecord.java
+++ /dev/null
@@ -1,53 +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: BeanRecord.java,v $
- * $Revision: 1.2 $ $Date: 2005/02/15 22:44:52 $
- */
-package org.eclipse.jem.internal.beaninfo.common;
-
-
-/**
- * This is the data structure for sending the BeanDescriptor info from
- * the BeanInfo vm to the IDE vm. It is serializable so that it can
- * be serialized for transmission.
- *
- * It contains the properties of the BeanDescriptor.
- * @since 1.1.0
- */
-public class BeanRecord extends FeatureRecord {
-
- private static final long serialVersionUID = 1105979920664L;
-
- public String customizerClassName;
- public boolean mergeInheritedProperties;
- public boolean mergeInheritedOperations;
- public boolean mergeInheritedEvents;
- /**
- * Names of properties that are to not be inherited in getAllProperties(). It is set only
- * if the list is not the full list of inherited properties.
- * If all inherited or mergeInheritedProperties is false, then the field will be
- * It contains the properties of the EventSetDescriptor.
- * @since 1.1.0
- */
-public class EventSetRecord extends FeatureRecord {
-
- private static final long serialVersionUID = 1105980773420L;
-
- public ReflectMethodRecord addListenerMethod;
- public String eventAdapterClassName;
- public MethodRecord[] listenerMethodDescriptors;
- public String listenerTypeName;
- public ReflectMethodRecord removeListenerMethod;
- public boolean inDefaultEventSet;
- public boolean unicast;
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/FeatureAttributeValue.java b/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/FeatureAttributeValue.java
deleted file mode 100644
index 3e45deca8..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/FeatureAttributeValue.java
+++ /dev/null
@@ -1,785 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 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: FeatureAttributeValue.java,v $
- * $Revision: 1.11 $ $Date: 2006/05/17 20:13:00 $
- */
-package org.eclipse.jem.internal.beaninfo.common;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.Arrays;
-import java.util.logging.Level;
-import java.util.regex.Pattern;
-
-import org.eclipse.jem.internal.proxy.common.MapTypes;
-
-
-
-/**
- * This is the value for a FeatureAttribute. It wrappers the true java object.
- * Use the getObject method to get the java value.
- *
- * We can only represent Strings, primitives, and arrays. (Primitives will converted
- * to their wrapper class (e.g. Long), and byte, short, and int will move up to Long,
- * and float will move up to Double). And any kind of valid array on the java BeanInfo side
- * will be converted to an Object array on the IDE side. We don't have the capability to allow more complex objects
- * because the IDE may not have the necessary classes available to it that
- * the BeanInfo may of had available to it. Invalid objects will be represented
- * by the singleton instance of {@link org.eclipse.jem.internal.beaninfo.common.InvalidObject}.
- *
- * Note:
- * Class objects that are values of Feature attributes on the java BeanInfo side will be
- * converted to simple strings containing the classname when moved to the client (IDE) side.
- * That is because the classes probably will not be available on the IDE side, but can be
- * used to reconstruct the class when used back on the java vm side.
- * @since 1.1.0
- */
-public class FeatureAttributeValue implements Serializable {
-
- private transient Object value;
- private transient Object internalValue;
- private boolean implicitValue;
- private static final long serialVersionUID = 1105717634844L;
-
- /**
- * Create the value with the given init string.
- *
- * This is not meant to be used by clients.
- * @param initString
- *
- * @since 1.1.0
- */
- public FeatureAttributeValue(String initString) {
- // Use the init string to create the value. This is our
- // own short-hand for this.
- if (initString.startsWith(IMPLICIT)) {
- setImplicitValue(true);
- initString = initString.substring(IMPLICIT.length());
- }
- value = parseString(initString);
- }
-
- /**
- * This is used when customer wants to fluff one up.
- *
- *
- * @since 1.1.0
- */
- public FeatureAttributeValue() {
-
- }
-
- /**
- * @return Returns the value.
- *
- * @since 1.1.0
- */
- public Object getValue() {
- return value;
- }
-
- /**
- * Set a value.
- * @param value The value to set.
- * @since 1.1.0
- */
- public void setValue(Object value) {
- this.value = value;
- this.setInternalValue(null);
- }
-
- /**
- * Set the internal value.
- * @param internalValue The internalValue to set.
- *
- * @since 1.1.0
- */
- public void setInternalValue(Object internalValue) {
- this.internalValue = internalValue;
- }
-
- /**
- * This is the internal value. It is the
- * It does not need to be used. It will be cleared if
- * a new value is set. For example, if the value is a complicated array (because you can't have
- * special classes in the attribute value on the BeanInfo side) the first usage of this value can
- * be translated into an easier form to use, such as a map.
- *
- * @return Returns the internalValue.
- *
- * @since 1.1.0
- */
- public Object getInternalValue() {
- return internalValue;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#toString()
- */
- public String toString() {
- if (value == null)
- return super.toString();
- StringBuffer out = new StringBuffer(100);
- if (isImplicitValue())
- out.append(IMPLICIT);
- makeString(value, out);
- return out.toString();
- }
-
-
- /**
- * Helper method to take the object and turn it into the
- * string form that is required for EMF serialization.
- *
- * This is used internally. It can be used for development
- * purposes by clients, but they would not have any real
- * runtime need for this.
- *
- * Output format would be (there won't be any newlines in the actual string)
- *
- * This is used internally. It can be used for development
- * purposes by clients, but they would not have any real
- * runtime need for this.
- *
- * The object will be an object, null, or an Object array. Any value
- * that is invalid will be set to the {@link InvalidObject#INSTANCE} static
- * instance.
- *
- * @param input
- * @return object decoded from the input.
- *
- * @see #makeString(Object)
- * @since 1.1.0
- */
- public static Object parseString(String input) {
- return parseString(new StringParser(input));
- }
-
- private static class StringParser {
- private int next=0;
- private int length;
- private String input;
-
- public StringParser(String input) {
- this.input = input;
- this.length = input.length();
- }
-
- public String toString() {
- return "StringParser: \""+input+'"'; //$NON-NLS-1$
- }
-
- public void skipWhitespace() {
- while(next < length) {
- if (!Character.isWhitespace(input.charAt(next++))) {
- next--; // Put it back as not yet read since it is not whitespace.
- break;
- }
- }
- }
-
- /**
- * Return the next index
- * @return
- *
- * @since 1.1.0
- */
- public int nextIndex() {
- return next;
- }
-
- /**
- * Get the length of the input
- * @return input length
- *
- * @since 1.1.0
- */
- public int getLength() {
- return length;
- }
-
-
- /**
- * Read the current character and go to next.
- * @return current character
- *
- * @since 1.1.0
- */
- public char read() {
- return next
- * It contains the properties of the FeatureDescriptor.
- * @since 1.1.0
- */
-public class FeatureRecord implements Serializable {
-
- private static final long serialVersionUID = 1105979276648L;
-
- public String name; // Some decorators use this and others don't. Each decorator type will decide whether this is of importance.
- public String displayName;
- public String shortDescription;
- public String category;
- public boolean expert;
- public boolean hidden;
- public boolean preferred;
- public String[] attributeNames;
- public FeatureAttributeValue[] attributeValues;
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/IBeanInfoIntrospectionConstants.java b/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/IBeanInfoIntrospectionConstants.java
deleted file mode 100644
index 209873e41..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/IBeanInfoIntrospectionConstants.java
+++ /dev/null
@@ -1,129 +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: IBeanInfoIntrospectionConstants.java,v $
- * $Revision: 1.3 $ $Date: 2005/02/15 22:44:52 $
- */
-package org.eclipse.jem.internal.beaninfo.common;
-
-
-/**
- * These are constants needed for transferring BeanInfo results from the BeanInfo VM.
- * @since 1.1.0
- */
-public interface IBeanInfoIntrospectionConstants {
-
- /**
- * Introspection bit flag indicating do the BeanDecorator. Sent to ModelingBeanInfo.introspect method.
- * @since 1.1.0
- */
- public static final int DO_BEAN_DECOR = 0x1;
-
- /**
- * Introspection bit flag indicating do the Properties. Sent to ModelingBeanInfo.introspect method.
- * @since 1.1.0
- */
- public static final int DO_PROPERTIES = 0x2;
-
- /**
- * Introspection bit flag indicating do the Methods. Sent to ModelingBeanInfo.introspect method.
- * @since 1.1.0
- */
- public static final int DO_METHODS = 0x4;
-
- /**
- * Introspection bit flag indicating do the Events. Sent to ModelingBeanInfo.introspect method.
- * @since 1.1.0
- */
- public static final int DO_EVENTS = 0x8;
-
- /**
- * BeanDecorator was sent command id.
- *
- * This will be sent to callBack(int id, InputStream is). The InputStream will be Objects (use ObjectInputStream).
- * The stream will be broken into sections.
- * Each section will be headed by the command id of that section (e.g. BEAN_DECORATOR_SENT or PROPERTY_DECORATORS_SENT).
- * Following the command id will be the type of input specific data.
- *
- * The data following the command id will be a BeanRecord from the ObjectInputStream.
- *
- * @see BeanRecord
- * @see org.eclipse.jem.internal.proxy.core.ICallback#calledBackStream(int, InputStream)
- * @since 1.1.0
- */
- public static final int BEAN_DECORATOR_SENT = 1;
-
- /**
- * PropertyDecorators send command id.
- *
- * This will be sent to callBack(int id, InputStream is). The InputStream will be Objects (use ObjectInputStream).
- * The stream will be broken into sections.
- * Each section will be headed by the command id of that section (e.g. BEAN_DECORATOR_SENT or PROPERTY_DECORATORS_SENT).
- * Following the command id will be the type of input specific data.
- *
- * The first object will be an int and will be the number of properties and each object after that
- * will be a PropertyRecord/IndexedPropertyRecord.
- *
- * @see org.eclipse.jem.internal.proxy.core.ICallback#calledBackStream(int, InputStream)
- * @see PropertyRecord
- * @see IndexedPropertyRecord
- */
- public static final int PROPERTY_DECORATORS_SENT = 2;
-
- /**
- * MethodDecorators send command id.
- *
- * This will be sent to callBack(int id, InputStream is). The InputStream will be Objects (use ObjectInputStream).
- * The stream will be broken into sections.
- * Each section will be headed by the command id of that section (e.g. BEAN_DECORATOR_SENT or PROPERTY_DECORATORS_SENT).
- * Following the command id will be the type of input specific data.
- *
- * The InputStream will be Objects (use ObjectInputStream).
- * The first object will be an int and will be the number of methods and each object after that
- * will be a MethodRecord.
- *
- * @see org.eclipse.jem.internal.proxy.core.ICallback#calledBackStream(int, InputStream)
- * @see MethodRecord
- */
- public static final int METHOD_DECORATORS_SENT = 3;
-
- /**
- * EventSetDecorators send command id.
- *
- * This will be sent to callBack(int id, InputStream is). The InputStream will be Objects (use ObjectInputStream).
- * The stream will be broken into sections.
- * Each section will be headed by the command id of that section (e.g. BEAN_DECORATOR_SENT or PROPERTY_DECORATORS_SENT).
- * Following the command id will be the type of input specific data.
- *
- * The first object will be an int and will be the number of events and each object after that
- * will be a EventSetRecord.
- *
- * @see org.eclipse.jem.internal.proxy.core.ICallback#calledBackStream(int, InputStream)
- * @see MethodRecord
- */
- public static final int EVENT_DECORATORS_SENT = 4;
-
- /**
- * Done send command id.
- *
- * This will be sent to callBack(int id, InputStream is). The InputStream will be Objects (use ObjectInputStream).
- * The stream will be broken into sections.
- * Each section will be headed by the command id of that section (e.g. BEAN_DECORATOR_SENT or PROPERTY_DECORATORS_SENT).
- * Following the command id will be the type of input specific data.
- *
- * This command id means there is no more data and it should return.
- *
- * @see org.eclipse.jem.internal.proxy.core.ICallback#calledBackStream(int, InputStream)
- * @see MethodRecord
- */
- public static final int DONE = 5;
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/IndexedPropertyRecord.java b/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/IndexedPropertyRecord.java
deleted file mode 100644
index 5da6399d0..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/IndexedPropertyRecord.java
+++ /dev/null
@@ -1,32 +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: IndexedPropertyRecord.java,v $
- * $Revision: 1.2 $ $Date: 2005/02/15 22:44:52 $
- */
-package org.eclipse.jem.internal.beaninfo.common;
-
-
-/**
- * This is the data structure for sending the IndexedPropertyDescriptor info from
- * the BeanInfo vm to the IDE vm. It is serializable so that it can
- * be serialized for transmission.
- *
- * It contains the properties of the IndexedPropertyDescriptor.
- * @since 1.1.0
- */
-public class IndexedPropertyRecord extends PropertyRecord {
- private static final long serialVersionUID = 1105983227990L;
-
- public ReflectMethodRecord indexedReadMethod;
- public ReflectMethodRecord indexedWriteMethod;
- public String indexedPropertyTypeName;
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/InvalidObject.java b/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/InvalidObject.java
deleted file mode 100644
index 989c7ea08..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/InvalidObject.java
+++ /dev/null
@@ -1,53 +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: InvalidObject.java,v $
- * $Revision: 1.2 $ $Date: 2005/02/15 22:44:52 $
- */
-package org.eclipse.jem.internal.beaninfo.common;
-
-import java.io.ObjectStreamException;
-import java.io.Serializable;
-
-
-/**
- * An indicator object for invalid object type. This is used with feature attribute
- * values from the BeanInfo classes. We can only handle certain types when we
- * bring them over from the BeanInfo VM. That is because the classes instantiated
- * in the BeanInfo class may not be available in the IDE. So any invalid value
- * will be replaced by this class instance.
- *
- * This is a singleton class.
- * There will be one instance (InvalidObject.INSTANCE) in the system. That way
- * "==" can be used to test for it.
- *
- * @since 1.1.0
- */
-public class InvalidObject implements Serializable {
-
- /**
- * Singleton instance of InvalidObject.
- * @since 1.1.0
- */
- public static final InvalidObject INSTANCE = new InvalidObject();
-
- private static final long serialVersionUID = 1105643804370L;
-
- /*
- * Nobody else should create one of these.
- */
- private InvalidObject() {
- }
-
- private Object readResolve() throws ObjectStreamException {
- return INSTANCE;
- }
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/MethodRecord.java b/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/MethodRecord.java
deleted file mode 100644
index 375a69e6b..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/MethodRecord.java
+++ /dev/null
@@ -1,38 +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: MethodRecord.java,v $
- * $Revision: 1.2 $ $Date: 2005/02/15 22:44:52 $
- */
-package org.eclipse.jem.internal.beaninfo.common;
-
-
-/**
- * This is the data structure for sending the MethodDescriptor info from
- * the BeanInfo vm to the IDE vm. It is serializable so that it can
- * be serialized for transmission.
- *
- * It contains the properties of the MethodDescriptor.
- * @since 1.1.0
- */
-public class MethodRecord extends FeatureRecord {
-
- private static final long serialVersionUID = 1105982213110L;
-
- /**
- * Method signature for the method this record describes.
- */
- public ReflectMethodRecord methodForDescriptor;
- /**
- * Parameter records array. It may be
- * It contains the properties of the ParameterDescriptor.
- *
- * The only field of importance is the name, and that comes from FeatureRecord.
- * @since 1.1.0
- */
-public class ParameterRecord extends FeatureRecord {
-
- private static final long serialVersionUID = 1105982438955L;
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/PropertyRecord.java b/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/PropertyRecord.java
deleted file mode 100644
index cb564dd3a..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/PropertyRecord.java
+++ /dev/null
@@ -1,37 +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: PropertyRecord.java,v $
- * $Revision: 1.3 $ $Date: 2005/02/15 22:44:52 $
- */
-package org.eclipse.jem.internal.beaninfo.common;
-
-
-/**
- * This is the data structure for sending the PropertyDescriptor info from
- * the BeanInfo vm to the IDE vm. It is serializable so that it can
- * be serialized for transmission.
- *
- * It contains the properties of the PropertyDescriptor.
- * @since 1.1.0
- */
-public class PropertyRecord extends FeatureRecord {
- private static final long serialVersionUID = 1105979276648L;
-
- public String propertyEditorClassName;
- public String propertyTypeName;
- public ReflectMethodRecord readMethod;
- public ReflectMethodRecord writeMethod;
- public ReflectFieldRecord field;
- public boolean bound;
- public boolean constrained;
- public Boolean designTime;
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/ReflectFieldRecord.java b/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/ReflectFieldRecord.java
deleted file mode 100644
index a495709a0..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/ReflectFieldRecord.java
+++ /dev/null
@@ -1,35 +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: ReflectFieldRecord.java,v $
- * $Revision: 1.2 $ $Date: 2005/02/15 22:44:52 $
- */
-package org.eclipse.jem.internal.beaninfo.common;
-
-import java.io.Serializable;
-
-
-/**
- * This is the data structure for sending the java.lang.reflect.Field info from
- * the BeanInfo vm to the IDE vm. It is serializable so that it can
- * be serialized for transmission.
- *
- * It contains the properties of the java.lang.reflect.Field.
- * @since 1.1.0
- */
-public class ReflectFieldRecord implements Serializable {
-
- private static final long serialVersionUID = 1105981512453L;
-
- public String className;
- public String fieldName;
- public boolean readOnly;
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/ReflectMethodRecord.java b/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/ReflectMethodRecord.java
deleted file mode 100644
index 01ff2be42..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/ReflectMethodRecord.java
+++ /dev/null
@@ -1,35 +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: ReflectMethodRecord.java,v $
- * $Revision: 1.2 $ $Date: 2005/02/15 22:44:52 $
- */
-package org.eclipse.jem.internal.beaninfo.common;
-
-import java.io.Serializable;
-
-
-/**
- * This is the data structure for sending the java.lang.reflect.Method info from
- * the BeanInfo vm to the IDE vm. It is serializable so that it can
- * be serialized for transmission.
- *
- * It contains the properties of the java.lang.reflect.Method.
- * @since 1.1.0
- */
-public class ReflectMethodRecord implements Serializable {
-
- private static final long serialVersionUID = 1105981512773L;
-
- public String className;
- public String methodName;
- public String[] parameterTypeNames; // Maybe null if no parameters.
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/build.properties b/plugins/org.eclipse.jem.beaninfo/build.properties
deleted file mode 100644
index 9aeb843e2..000000000
--- a/plugins/org.eclipse.jem.beaninfo/build.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2006 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
-###############################################################################
-src.excludes = **/.cvsignore
-bin.includes = plugin.xml,\
- plugin.properties,\
- about.html,\
- .options,\
- META-INF/,\
- vm/beaninfovm.jar,\
- .
-jars.compile.order = .,\
- vm/beaninfovm.jar
-src.includes = about.html,\
- model/,\
- rose/,\
- proxy.jars,\
- schema/
-source.. = beaninfoCommon/,beaninfo/
-source.vm/beaninfovm.jar = vm_beaninfovm/
-output.vm/beaninfovm.jar = bin_vm_beaninfovm/
-output.. = bin/
-
diff --git a/plugins/org.eclipse.jem.beaninfo/model/beaninfo.ecore b/plugins/org.eclipse.jem.beaninfo/model/beaninfo.ecore
deleted file mode 100644
index cc925768c..000000000
--- a/plugins/org.eclipse.jem.beaninfo/model/beaninfo.ecore
+++ /dev/null
@@ -1,290 +0,0 @@
-
-
-|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.
-|
-|These comments about merging apply to all subclasses of this decorator too.
-
- superclasses (list inheritance_relationship_list
- (object Inheritance_Relationship
- quid "3DFA185900DC"
- supplier "Logical View::ecore::EAnnotation"
- quidu "3D98A1C701AB"))
- operations (list Operations
- (object Operation "getName"
- quid "3B867D0D0184"
- result "String"
- concurrency "Sequential"
- opExportControl "Public"
- uid 0))
- class_attributes (list class_attribute_list
- (object ClassAttribute "displayName"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "3A79CFCC0131"
- type "String"
- exportControl "Public")
- (object ClassAttribute "shortDescription"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "3A79CFD501E8"
- type "String"
- exportControl "Public")
- (object ClassAttribute "category"
- attributes (list Attribute_Set)
- quid "3BA2797102DC"
- type "String"
- exportControl "Public")
- (object ClassAttribute "expert"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "3A79CFE700FE"
- type "boolean"
- exportControl "Public")
- (object ClassAttribute "hidden"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "3A79D0050328"
- type "boolean"
- exportControl "Public")
- (object ClassAttribute "preferred"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "3A79D0240318"
- type "boolean"
- exportControl "Public")
- (object ClassAttribute "mergeIntrospection"
- quid "3A82C0A60389"
- documentation "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."
- type "boolean"
- initv "true"
- exportControl "Implementation")
- (object ClassAttribute "attributesExplicitEmpty"
- quid "3C9B49320265"
- documentation "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. "
- type "boolean"
- exportControl "Implementation")
- (object ClassAttribute "implicitlySetBits"
- quid "41E5815D02B9"
- documentation
-|A bitflag for which attributes have been set by BeanInfo/Reflection.
-|
-|This is an internal attribute that is used by the BeanInfo maintanance. It is not meant to be used by customers.
-
- type "long")
- (object ClassAttribute "implicitDecoratorFlag"
- quid "41E5A05D021A"
- documentation
-|Is this decorator/feature implicit. This means created by Introspection/Reflection and not by customer.
-|
-|This is an internal attribute that is used by the BeanInfo maintanance. It is not meant to be used by customers.
-
- type "ImplicitItem"
- quidu "41E59E5D0296")))
- (object Class "BeanDecorator"
- quid "3A79D0DF02D1"
- documentation "Equivalent to BeanDecorator in java."
- superclasses (list inheritance_relationship_list
- (object Inheritance_Relationship
- quid "3A79DE8E007F"
- supplier "Logical View::beaninfo::FeatureDecorator"
- quidu "3A799B3E01E9"))
- class_attributes (list class_attribute_list
- (object ClassAttribute "mergeSuperProperties"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "3A82B73E0200"
- documentation "Should the properties of super types be merged when asking for eAllAttributes/eAllReferences."
- type "boolean"
- initv "true"
- exportControl "Implementation")
- (object ClassAttribute "mergeSuperMethods"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "3A82B9940015"
- documentation "Should the methods of super types be merged when asking for eAllBehaviors."
- type "boolean"
- initv "true"
- exportControl "Implementation")
- (object ClassAttribute "mergeSuperEvents"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "3A82B99F0165"
- documentation "Should the events of super types be merged when asking for eAllEvents."
- type "boolean"
- initv "true"
- exportControl "Implementation")
- (object ClassAttribute "introspectProperties"
- quid "3A8427EC00A6"
- documentation "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."
- type "boolean"
- initv "true"
- exportControl "Implementation")
- (object ClassAttribute "introspectMethods"
- quid "3A84287501B1"
- documentation "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."
- type "boolean"
- initv "true"
- exportControl "Implementation")
- (object ClassAttribute "introspectEvents"
- quid "3A842877000F"
- documentation "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."
- type "boolean"
- initv "true"
- exportControl "Implementation")
- (object ClassAttribute "doBeaninfo"
- quid "3C9A46FC027C"
- documentation "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."
- type "boolean"
- initv "true"
- exportControl "Implementation")
- (object ClassAttribute "notInheritedPropertyNames"
- quid "41EED50B0185"
- documentation
-|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().
-|
-|This list will be empty if all properties are inherited or if the mergeSuperProperties flag is false.
-|
-|Note: This attribute is not meant to be changed by clients. It is an internal attribute.
-
- stereotype "0..*"
- type "String")
- (object ClassAttribute "notInheritedMethodNames"
- quid "41F02C5F0399"
- documentation
-|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().
-|
-|This list will be empty if all operations are inherited or if the mergeSuperBehaviors flag is false.
-
- stereotype "0..*"
- type "String")
- (object ClassAttribute "notInheritedEventNames"
- quid "41F02D0A0312"
- documentation
-|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().
-|
-|This list will be empty if all events are inherited or if the mergeSuperEvents flag is false.
-
- stereotype "0..*"
- type "String")))
- (object Class "EventSetDecorator"
- quid "3A79D1D2004F"
- documentation "Equivalent to EventSetDecorator in java."
- superclasses (list inheritance_relationship_list
- (object Inheritance_Relationship
- quid "3A79DEA200EC"
- supplier "Logical View::beaninfo::FeatureDecorator"
- quidu "3A799B3E01E9"))
- class_attributes (list class_attribute_list
- (object ClassAttribute "inDefaultEventSet"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "3A79D94F004C"
- type "boolean"
- exportControl "Public")
- (object ClassAttribute "unicast"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "3A79D9580167"
- type "boolean"
- exportControl "Public")
- (object ClassAttribute "listenerMethodsExplicitEmpty"
- quid "3CB1AF7D0286"
- documentation "Set true if the listenerMethods feature is explicitly set as empty and is not to have listener methods merged in from BeanInfo or reflection."
- type "boolean"
- exportControl "Implementation")))
- (object Class "MethodDecorator"
- quid "3A79D35E0027"
- documentation "Equivalent to MethodDecorator in java."
- superclasses (list inheritance_relationship_list
- (object Inheritance_Relationship
- quid "3A79DEA603E1"
- supplier "Logical View::beaninfo::FeatureDecorator"
- quidu "3A799B3E01E9"))
- class_attributes (list class_attribute_list
- (object ClassAttribute "parmsExplicitEmpty"
- quid "3B86ABE80092"
- documentation "Set true if the parms feature is explicitly set as empty and is not to have parameters merged in from BeanInfo or reflection."
- type "boolean"
- exportControl "Implementation")))
- (object Class "ParameterDecorator"
- quid "3A79D9C20304"
- superclasses (list inheritance_relationship_list
- (object Inheritance_Relationship
- quid "3A79DEBB01C4"
- supplier "Logical View::beaninfo::FeatureDecorator"
- quidu "3A799B3E01E9"))
- class_attributes (list class_attribute_list
- (object ClassAttribute "name"
- quid "3B86A6700099"
- documentation "The name is explicit here because unlike the other feature decorators, the name does not come from the object being decorated."
- type "String"
- exportControl "Public")))
- (object Class "PropertyDecorator"
- quid "3A79DA68010E"
- documentation "Equivalent to PropertyDecorator in java."
- superclasses (list inheritance_relationship_list
- (object Inheritance_Relationship
- quid "3A79DE9702BD"
- supplier "Logical View::beaninfo::FeatureDecorator"
- quidu "3A799B3E01E9"))
- operations (list Operations
- (object Operation "getPropertyType"
- quid "3B8CF526039D"
- documentation "Get the property type."
- result "EClassifier"
- concurrency "Sequential"
- opExportControl "Public"
- uid 0
- quidu "3ACE4FEE0371")
- (object Operation "setPropertyType"
- quid "4329D1CE030E"
- documentation "Set the property type."
- parameters (list Parameters
- (object Parameter "propertyType"
- quid "4329D1E20168"
- type "EClassifier"
- quidu "3ACE4FEE0371"))
- concurrency "Sequential"
- opExportControl "Public"
- uid 0))
- class_attributes (list class_attribute_list
- (object ClassAttribute "bound"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "3A79DC250303"
- type "boolean"
- exportControl "Public")
- (object ClassAttribute "constrained"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "3A79DC2C00A0"
- type "boolean"
- exportControl "Public")
- (object ClassAttribute "designTime"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "3BA27455019B"
- documentation
-|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.
-
- type "boolean"
- exportControl "Public")
- (object ClassAttribute "alwaysIncompatible"
- quid "3BA27A1700BE"
- documentation "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."
- type "boolean"
- exportControl "Public")
- (object ClassAttribute "filterFlags"
- quid "3BA3B18F0036"
- stereotype "0..*"
- type "String"
- exportControl "Public")
- (object ClassAttribute "fieldReadOnly"
- quid "4207E101018E"
- documentation
-|Is this field read-only (i.e. is a "final" field). This is only referenced if the field reference is set.
-
- type "boolean"
- exportControl "Public")))
- (object Class "IndexedPropertyDecorator"
- quid "3A79DC450309"
- documentation "Equivalent to IndexedPropertyDecorator"
- superclasses (list inheritance_relationship_list
- (object Inheritance_Relationship
- quid "3A79DE840388"
- supplier "Logical View::beaninfo::PropertyDecorator"
- quidu "3A79DA68010E")))
- (object Class "MethodProxy"
- quid "3A8984C901C3"
- documentation
-|This is just a wrapper of a java Method. It allows access to the method but doesn't duplicate the interface for it.
-|
-|MethodProxies will be in the eBehaviors setting for any methods that are in the JavaClass methods setting so that they are not duplicated.
-|
-|MethodProxies would also have MethodDecorators.
-
- superclasses (list inheritance_relationship_list
- (object Inheritance_Relationship
- quid "3DFA19B600DE"
- supplier "Logical View::ecore::EOperation"
- quidu "3904DAA200A0")))
- (object Class "BeanEvent"
- quid "3CB09CA90212"
- documentation
-|Event from Introspection/Reflection.
-|
-|The BeanEvent will be under the JavaClass' events and allEvents feature. Each BeanEvent will be decorated by an EventSetDecorator.
-
- superclasses (list inheritance_relationship_list
- (object Inheritance_Relationship
- quid "3CB09CB6038D"
- supplier "Logical View::java::JavaEvent"
- quidu "3C62FAF103C8")))
- (object Class "FeatureAttributeMapEntry"
- quid "404CC85501F5"
- stereotype "MapEntry"
- class_attributes (list class_attribute_list
- (object ClassAttribute "key"
- quid "404CC8B70304"
- type "String"
- exportControl "Public")
- (object ClassAttribute "value"
- attributes (list Attribute_Set)
- quid "41E58414010A"
- type "FeatureAttributeValue"
- quidu "41E582F800BB"
- exportControl "Public")))
- (object Class "FeatureAttributeValue"
- quid "41E582F800BB"
- documentation
-|This is the attribute value for feature attribute. It can only represent the following:
-|
-|- String
-|- primitives
-|- array (type Object) containing mixture of Strings and primitives (as the object types)
-|- array (type String)
-|- array (type primitive)
-|
-|Anything else cannot be represented.
-
- stereotype "datatype"
- class_attributes (list class_attribute_list
- (object ClassAttribute "org.eclipse.jem.internal.beaninfo.common.FeatureAttributeValue"
- quid "41E583B503CA"
- stereotype "javaclass")))
- (object Class "ImplicitItem"
- quid "41E59E5D0296"
- documentation
-|This enum is an internal enum. It is used by BeanInfo for cache maintenance.
-|
-|This enum is not meant to be used by clients.
-
- stereotype "enumeration"
- exportControl "Protected"
- class_attributes (list class_attribute_list
- (object ClassAttribute "NOT_IMPLICIT"
- quid "41E59F2A00EC"
- documentation "Means this decorator is not implicit. That is it was created by customer.")
- (object ClassAttribute "IMPLICIT_DECORATOR"
- quid "41E59F7200B4"
- documentation "This means that the decorator is implicit. That is it was not created by the customer.")
- (object ClassAttribute "IMPLICIT_DECORATOR_AND_FEATURE"
- quid "41E59FA303B7"
- documentation "This means the decorator and the feature where implicit. That is they were not created by the customer.")))
- (object Association "$UNNAMED$0"
- quid "3A79CF6C0378"
- roles (list role_list
- (object Role "attributes"
- attributes (list Attribute_Set)
- quid "3A79CF6E00BE"
- documentation "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."
- label "attributes"
- supplier "Logical View::beaninfo::FeatureAttributeMapEntry"
- quidu "404CC85501F5"
- client_cardinality (value cardinality "0..n")
- Containment "By Value"
- is_navigable TRUE)
- (object Role "$UNNAMED$1"
- quid "3A79CF6E00C8"
- supplier "Logical View::beaninfo::FeatureDecorator"
- quidu "3A799B3E01E9"
- is_aggregate TRUE)))
- (object Association "$UNNAMED$2"
- quid "3A79D1350248"
- roles (list role_list
- (object Role "customizerClass"
- attributes (list Attribute_Set)
- quid "3A79D13601D2"
- label "customizerClass"
- supplier "Logical View::java::JavaClass"
- quidu "36549FCC00FA"
- client_cardinality (value cardinality "0..1")
- Containment "By Reference"
- is_navigable TRUE)
- (object Role "$UNNAMED$3"
- quid "3A79D13601E6"
- supplier "Logical View::beaninfo::BeanDecorator"
- quidu "3A79D0DF02D1")))
- (object Association "$UNNAMED$4"
- quid "3A79D3080128"
- roles (list role_list
- (object Role "addListenerMethod"
- quid "3A79D3090346"
- label "addListenerMethod"
- supplier "Logical View::java::Method"
- quidu "3654AE910271"
- client_cardinality (value cardinality "1")
- Containment "By Reference"
- is_navigable TRUE)
- (object Role "$UNNAMED$5"
- quid "3A79D309035A"
- supplier "Logical View::beaninfo::EventSetDecorator"
- quidu "3A79D1D2004F")))
- (object Association "$UNNAMED$6"
- quid "3A79D3E10364"
- roles (list role_list
- (object Role "listenerMethods"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isTransient"
- value TRUE)
- (object Attribute
- tool "Ecore"
- name "isVolatile"
- value TRUE))
- quid "3A79D3E6007D"
- documentation
-|listener methods. If it is desired that the list be explicitly empty and not have BeanInfo set it, then set listenerMethodsExplicitEmpty to true.
-|
-|ListenerMethods will be decorated with MethodDecorators.
-|
-|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.
-
- label "listenerMethods"
- supplier "Logical View::beaninfo::MethodProxy"
- quidu "3A8984C901C3"
- client_cardinality (value cardinality "1..n")
- Containment "By Reference"
- is_navigable TRUE)
- (object Role "$UNNAMED$7"
- quid "3A79D3E60091"
- supplier "Logical View::beaninfo::EventSetDecorator"
- quidu "3A79D1D2004F"))
- derived TRUE)
- (object Association "$UNNAMED$8"
- quid "3A79D4A80158"
- roles (list role_list
- (object Role "listenerType"
- quid "3A79D4AA038B"
- label "listenerType"
- supplier "Logical View::java::JavaClass"
- quidu "36549FCC00FA"
- client_cardinality (value cardinality "1")
- Containment "By Reference"
- is_navigable TRUE)
- (object Role "$UNNAMED$9"
- quid "3A79D4AA03B4"
- supplier "Logical View::beaninfo::EventSetDecorator"
- quidu "3A79D1D2004F")))
- (object Association "$UNNAMED$10"
- quid "3A79D4DF020B"
- roles (list role_list
- (object Role "removeListenerMethod"
- quid "3A79D4E10395"
- label "removeListenerMethod"
- supplier "Logical View::java::Method"
- quidu "3654AE910271"
- client_cardinality (value cardinality "1")
- Containment "By Reference"
- is_navigable TRUE)
- (object Role "$UNNAMED$11"
- quid "3A79D4E103A9"
- supplier "Logical View::beaninfo::EventSetDecorator"
- quidu "3A79D1D2004F")))
- (object Association "$UNNAMED$12"
- quid "3A79DA1A02F7"
- roles (list role_list
- (object Role "parameterDescriptors"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isTransient"
- value TRUE)
- (object Attribute
- tool "Ecore"
- name "isVolatile"
- value TRUE))
- quid "3A79DA1C0231"
- documentation
-|This is the parameter descriptors list.
-|
-|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.
-
- label "parameterDescriptors"
- supplier "Logical View::beaninfo::ParameterDecorator"
- quidu "3A79D9C20304"
- client_cardinality (value cardinality "0..n")
- Containment "By Reference"
- is_navigable TRUE)
- (object Role "$UNNAMED$13"
- quid "3A79DA1C0232"
- supplier "Logical View::beaninfo::MethodDecorator"
- quidu "3A79D35E0027"))
- derived TRUE)
- (object Association "$UNNAMED$14"
- quid "3A79DB0B0339"
- roles (list role_list
- (object Role "propertyEditorClass"
- quid "3A79DB0E013F"
- label "propertyEditorClass"
- supplier "Logical View::java::JavaClass"
- quidu "36549FCC00FA"
- client_cardinality (value cardinality "0..1")
- Containment "By Reference"
- is_navigable TRUE)
- (object Role "$UNNAMED$15"
- quid "3A79DB0E0171"
- supplier "Logical View::beaninfo::PropertyDecorator"
- quidu "3A79DA68010E")))
- (object Association "$UNNAMED$16"
- quid "3A79DBBD0000"
- roles (list role_list
- (object Role "readMethod"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "3A79DBBF0071"
- label "readMethod"
- supplier "Logical View::java::Method"
- quidu "3654AE910271"
- client_cardinality (value cardinality "0..1")
- Containment "By Reference"
- is_navigable TRUE)
- (object Role "$UNNAMED$17"
- quid "3A79DBBF0085"
- supplier "Logical View::beaninfo::PropertyDecorator"
- quidu "3A79DA68010E")))
- (object Association "$UNNAMED$18"
- quid "3A79DBDF02D0"
- roles (list role_list
- (object Role "writeMethod"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "3A79DBE101F7"
- label "writeMethod"
- supplier "Logical View::java::Method"
- quidu "3654AE910271"
- client_cardinality (value cardinality "0..1")
- Containment "By Reference"
- is_navigable TRUE)
- (object Role "$UNNAMED$19"
- quid "3A79DBE1020B"
- supplier "Logical View::beaninfo::PropertyDecorator"
- quidu "3A79DA68010E")))
- (object Association "$UNNAMED$20"
- quid "3A79DE34036F"
- roles (list role_list
- (object Role "indexedReadMethod"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "3A79DE3503CA"
- label "indexedReadMethod"
- supplier "Logical View::java::Method"
- quidu "3654AE910271"
- client_cardinality (value cardinality "0..1")
- Containment "By Reference"
- is_navigable TRUE)
- (object Role "$UNNAMED$21"
- quid "3A79DE3503DE"
- supplier "Logical View::beaninfo::IndexedPropertyDecorator"
- quidu "3A79DC450309")))
- (object Association "$UNNAMED$22"
- quid "3A79DE540180"
- roles (list role_list
- (object Role "indexedWriteMethod"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "3A79DE5503D0"
- label "indexedWriteMethod"
- supplier "Logical View::java::Method"
- quidu "3654AE910271"
- client_cardinality (value cardinality "0..1")
- Containment "By Reference"
- is_navigable TRUE)
- (object Role "$UNNAMED$23"
- quid "3A79DE5503E4"
- supplier "Logical View::beaninfo::IndexedPropertyDecorator"
- quidu "3A79DC450309")))
- (object Association "$UNNAMED$24"
- quid "3A89865B01D5"
- roles (list role_list
- (object Role "method"
- quid "3A89865C01AE"
- label "method"
- supplier "Logical View::java::Method"
- quidu "3654AE910271"
- client_cardinality (value cardinality "1")
- Containment "By Reference"
- is_navigable TRUE)
- (object Role "$UNNAMED$25"
- quid "3A89865C01CC"
- supplier "Logical View::beaninfo::MethodProxy"
- quidu "3A8984C901C3")))
- (object Association "$UNNAMED$26"
- quid "3C9A6EDD02C2"
- roles (list role_list
- (object Role "parameter"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isTransient"
- value TRUE))
- quid "3C9A6EDE01FB"
- documentation "The JavaParameter that this ParameterDecorator is decorating. Can't use eDecorates in this."
- label "parameter"
- supplier "Logical View::java::JavaParameter"
- quidu "3654AD780280"
- client_cardinality (value cardinality "0..1")
- is_navigable TRUE)
- (object Role "$UNNAMED$27"
- quid "3C9A6EDE0205"
- supplier "Logical View::beaninfo::ParameterDecorator"
- quidu "3A79D9C20304")))
- (object Association "$UNNAMED$28"
- quid "41F016E7002E"
- roles (list role_list
- (object Role "serParmDesc"
- quid "41F016E802A7"
- documentation "This is a private feature. It is used internally only. "
- label "serParmDesc"
- supplier "Logical View::beaninfo::ParameterDecorator"
- quidu "3A79D9C20304"
- client_cardinality (value cardinality "0..n")
- Containment "By Value"
- exportControl "Private"
- is_navigable TRUE)
- (object Role "$UNNAMED$29"
- quid "41F016E802B1"
- supplier "Logical View::beaninfo::MethodDecorator"
- quidu "3A79D35E0027"
- is_aggregate TRUE)))
- (object Association "$UNNAMED$30"
- quid "41F11E710387"
- roles (list role_list
- (object Role "eventAdapterClass"
- quid "41F11E730249"
- documentation
-|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".
-
- label "eventAdapterClass"
- supplier "Logical View::java::JavaClass"
- quidu "36549FCC00FA"
- client_cardinality (value cardinality "0..1")
- Containment "By Reference"
- is_navigable TRUE)
- (object Role "$UNNAMED$31"
- quid "41F11E73025D"
- supplier "Logical View::beaninfo::EventSetDecorator"
- quidu "3A79D1D2004F")))
- (object Association "$UNNAMED$32"
- quid "41F1278A01A5"
- roles (list role_list
- (object Role "serListMthd"
- quid "41F1278B021F"
- documentation "This is a private feature. It is used internally only. "
- label "serListMthd"
- supplier "Logical View::beaninfo::MethodProxy"
- quidu "3A8984C901C3"
- client_cardinality (value cardinality "1..n")
- Containment "By Value"
- exportControl "Private"
- is_navigable TRUE)
- (object Role "$UNNAMED$33"
- quid "41F1278B0229"
- supplier "Logical View::beaninfo::EventSetDecorator"
- quidu "3A79D1D2004F"
- is_aggregate TRUE)))
- (object Association "$UNNAMED$34"
- quid "4207D83F01DA"
- roles (list role_list
- (object Role "field"
- attributes (list Attribute_Set
- (object Attribute
- tool "Ecore"
- name "isUnsettable"
- value TRUE))
- quid "4207D8400290"
- documentation "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."
- label "field"
- supplier "Logical View::java::Field"
- quidu "3654AF8F0280"
- client_cardinality (value cardinality "0..1")
- is_navigable TRUE)
- (object Role "$UNNAMED$35"
- quid "4207D8400292"
- supplier "Logical View::beaninfo::PropertyDecorator"
- quidu "3A79DA68010E"))))
- logical_presentations (list unit_reference_list
- (object ClassDiagram "Main"
- quid "3A799AC8038E"
- title "Main"
- zoom 100
- max_height 28350
- max_width 21600
- origin_x 0
- origin_y 94
- items (list diagram_item_list
- (object NoteView @1
- location (3232, 1712)
- font (object Font
- size 10
- face "Arial"
- bold FALSE
- italics FALSE
- underline FALSE
- strike FALSE
- color 0
- default_color TRUE)
- label (object ItemLabel
- Parent_View @1
- location (2950, 1624)
- fill_color 13434879
- nlines 3
- max_width 528
- label "ListenerMethods will be decorated with MethodDecorators.")
- line_color 3342489
- fill_color 13434879
- width 588
- height 188)
- (object NoteView @2
- location (3392, 2784)
- font (object Font
- size 10
- face "Arial"
- bold FALSE
- italics FALSE
- underline FALSE
- strike FALSE
- color 0
- default_color TRUE)
- label (object ItemLabel
- Parent_View @2
- location (3076, 2568)
- fill_color 13434879
- nlines 8
- max_width 596
- label
-|MethodProxies will be in the eBehaviors setting for any methods that are in the JavaClass methods setting so that they are not duplicated.
-|
-|MethodProxies would also have MethodDecorators.
- )
- line_color 3342489
- fill_color 13434879
- width 656
- height 444)
- (object ClassView "Class" "Logical View::java::JavaEvent" @3
- ShowCompartmentStereotypes TRUE
- IncludeAttribute TRUE
- IncludeOperation TRUE
- location (1248, 2688)
- font (object Font
- size 10
- face "Arial"
- bold FALSE
- italics TRUE
- underline FALSE
- strike FALSE
- color 0
- default_color TRUE)
- label (object ItemLabel
- Parent_View @3
- location (1114, 2614)
- fill_color 13434879
- nlines 1
- max_width 268
- justify 0
- label "JavaEvent")
- icon_style "Icon"
- line_color 3342489
- fill_color 16777088
- quidu "3C62FAF103C8"
- width 286
- height 172
- annotation 8
- autoResize TRUE)
- (object ClassView "Class" "Logical View::beaninfo::BeanEvent" @4
- ShowCompartmentStereotypes TRUE
- IncludeAttribute TRUE
- IncludeOperation TRUE
- location (1232, 2992)
- font (object Font
- size 10
- face "Arial"
- bold FALSE
- italics FALSE
- underline FALSE
- strike FALSE
- color 0
- default_color TRUE)
- label (object ItemLabel
- Parent_View @4
- location (1096, 2941)
- fill_color 13434879
- nlines 1
- max_width 272
- justify 0
- label "BeanEvent")
- icon_style "Icon"
- line_color 3342489
- fill_color 13434879
- quidu "3CB09CA90212"
- width 290
- height 126
- annotation 8
- autoResize TRUE)
- (object InheritView "" @5
- stereotype TRUE
- line_color 3342489
- quidu "3CB09CB6038D"
- client @4
- supplier @3
- line_style 0)
- (object NoteView @6
- location (1856, 2944)
- font (object Font
- size 10
- face "Arial"
- bold FALSE
- italics FALSE
- underline FALSE
- strike FALSE
- color 0
- default_color TRUE)
- label (object ItemLabel
- Parent_View @6
- location (1561, 2815)
- fill_color 13434879
- nlines 5
- max_width 555
- label "The BeanEvent will be under the JavaClass' events and allEvents feature. Each BeanEvent will be decorated by an EventSetDecorator.")
- line_color 3342489
- fill_color 13434879
- width 615
- height 270)
- (object ClassView "Class" "Logical View::ecore::EAnnotation" @7
- ShowCompartmentStereotypes TRUE
- location (1056, 128)
- font (object Font
- size 10
- face "Arial"
- bold FALSE
- italics FALSE
- underline FALSE
- strike FALSE
- color 0
- default_color TRUE)
- label (object ItemLabel
- Parent_View @7
- location (906, 54)
- fill_color 13434879
- nlines 1
- max_width 300
- justify 0
- label "EAnnotation")
- icon_style "Icon"
- line_color 3342489
- fill_color 16776960
- quidu "3D98A1C701AB"
- width 318
- height 172
- annotation 8
- autoResize TRUE)
- (object ClassView "Class" "Logical View::ecore::EOperation" @8
- ShowCompartmentStereotypes TRUE
- IncludeAttribute TRUE
- IncludeOperation TRUE
- location (2848, 2272)
- font (object Font
- size 10
- face "Arial"
- bold FALSE
- italics FALSE
- underline FALSE
- strike FALSE
- color 0
- default_color TRUE)
- label (object ItemLabel
- Parent_View @8
- location (2702, 2198)
- fill_color 13434879
- nlines 1
- max_width 292
- justify 0
- label "EOperation")
- icon_style "Icon"
- line_color 3342489
- fill_color 16776960
- quidu "3904DAA200A0"
- width 310
- height 172
- annotation 8
- autoResize TRUE)
- (object ClassView "Class" "Logical View::beaninfo::FeatureAttributeMapEntry" @9
- ShowCompartmentStereotypes TRUE
- IncludeAttribute TRUE
- IncludeOperation TRUE
- location (2224, 176)
- font (object Font
- size 10
- face "Arial"
- bold FALSE
- italics FALSE
- underline FALSE
- strike FALSE
- color 0
- default_color TRUE)
- label (object ItemLabel
- Parent_View @9
- location (1887, 92)
- fill_color 13434879
- nlines 1
- max_width 674
- justify 0
- label "FeatureAttributeMapEntry")
- stereotype (object ItemLabel
- Parent_View @9
- location (1887, 42)
- fill_color 13434879
- anchor 10
- nlines 1
- max_width 674
- justify 0
- label "<
- * At this time, do not use field on an indexed property. This is currently an undefined situation.
- *
- * @since 1.1.0
- */
- public static final String FIELDPROPERTY = "field"; //$NON-NLS-1$
-
- /**
- * Obscure indicator for apply property arguments. Obsure is a pre-defined attribute name too. That is where the obscure setting is stored.
- *
- * Obsure means most users don't need it. In the future such features won't even be cached so as to reduce the in-memory costs. Currently this
- * flag is ignored.
- *
- * @since 1.1.0
- */
- public static final String OBSCURE = "ivjObscure";//$NON-NLS-1$
-
- /**
- * Design time indicator for apply property arguments. Design time is a pre-defined attribute name too. That is where the design time setting is
- * stored.
- *
- * Design time means:
- *
- * Adapter class for eventSetDescriptors that provide default no-op implementation of the interface methods. For example
- *
- * Note: This is non-standard. The VE knows how to handle this, but any one else using BeanInfo will see this as a property with
- * no getter or setter.
- * @param name
- * @param field
- * @param args arg pairs, [0] keyword, [1] value, [2] keyword, [3] value, etc. or null if no args
- * @return
- *
- * @since 1.1.0
- */
- public static PropertyDescriptor createFieldPropertyDescriptor(String name, Field field, Object[] args) {
- try {
- PropertyDescriptor pd = new PropertyDescriptor(name, null, null);
- pd.setValue(FIELDPROPERTY, field); // Set the field property so we know it is a field.
- applyFieldArguments(pd, args);
- // Need to set in a phony read method because Introspector will throw it away otherwise. We just use Object.getClass for this.
- // We will ignore the property type for fields. If used outside of VE then it will look like a class property.
- pd.setReadMethod(GETCLASS);
- return pd;
- } catch (IntrospectionException e) {
- throwError(e, java.text.MessageFormat.format(RESBUNDLE.getString("Cannot_create_the_P1_EXC_"), //$NON-NLS-1$
- new Object[] { name}));
- return null;
- }
- }
-
- /**
- * Create a bean's property descriptor.
- *
- * @param cls
- * class of who owns the property (usually the bean). It is used to look up get/set methods for the property.
- * @param name
- * name of the property. It will use get{Name} and set{Name} to find get/set methods.
- * @param args
- * arg pairs, [0] keyword, [1] value, [2] keyword, [3] value, etc.
- * @return new property descriptor
- *
- * @since 1.1.0
- */
- public static PropertyDescriptor createPropertyDescriptor(Class cls, String name, Object[] args) {
- PropertyDescriptor pd = null;
- try {
- // Create assuming that the getter/setter follows reflection patterns
- pd = new PropertyDescriptor(name, cls);
- } catch (IntrospectionException e) {
- // Try creating a property descriptor for read-only, write-only
- // or if Sun's reflection fails
- try {
- pd = createOtherPropertyDescriptor(name, cls);
- } catch (IntrospectionException ie) {
- throwError(ie, java.text.MessageFormat.format(RESBUNDLE.getString("Cannot_create_the_P1_EXC_"), //$NON-NLS-1$
- new Object[] { name}));
- }
- }
-
- applyPropertyArguments(pd, args, cls);
-
- return pd;
- }
-
-
- /**
- * Create a new PropertyDescriptor based upon the PD sent in. It will clone the sent in one, and apply the args to override any specific setting.
- * Class cls is used for finding read/write methods, if any.
- *
- * This is used when wanting to override only a few specific settings from a property descriptor from the super class.
- *
- * @param fromPDS
- * The PropertyDescriptor array to find the entry to clone. It will be changed in place in the array.
- * @param name
- * The name of the property to find and clone and override.
- * @param cls
- * The class to use to find read/write methods in args. If no read/write methods specified, then this may be null.
- * @param args
- * The arguments to override from fromPD. arg pairs, [0] keyword, [1] value, [2] keyword, [3] value, etc. or null if none to override
- */
- public void replacePropertyDescriptor(PropertyDescriptor[] pds, String name, Class cls, Object[] args) {
- PropertyDescriptor pd = null;
- int iPD = findPropertyDescriptor(pds, name);
- if (iPD == -1)
- return;
- PropertyDescriptor fromPD = pds[iPD];
- try {
-
- pd = pds[iPD] = new PropertyDescriptor(fromPD.getName(), null, null);
- } catch (IntrospectionException e) {
- throwError(e, java.text.MessageFormat.format(RESBUNDLE.getString("Cannot_create_the_P1_EXC_"), //$NON-NLS-1$
- new Object[] { fromPD.getName()}));
- }
-
- // Now copy over the contents of fromPD.
- clonePropertySettings(fromPD, pd);
-
- // Now apply the overrides
- applyPropertyArguments(pd, args, cls);
- return;
- }
-
- private void clonePropertySettings(PropertyDescriptor fromPD, PropertyDescriptor pd) {
- try {
- pd.setReadMethod(fromPD.getReadMethod());
- pd.setWriteMethod(fromPD.getWriteMethod());
- pd.setPropertyEditorClass(fromPD.getPropertyEditorClass());
- pd.setBound(fromPD.isBound());
- pd.setConstrained(fromPD.isConstrained());
- cloneFeatureSettings(fromPD, pd);
- } catch (IntrospectionException e) {
- throwError(e, java.text.MessageFormat.format(RESBUNDLE.getString("Cannot_create_the_P1_EXC_"), //$NON-NLS-1$
- new Object[] { fromPD.getName()}));
- }
- }
-
- private void cloneFeatureSettings(FeatureDescriptor fromFD, FeatureDescriptor fd) {
- fd.setExpert(fromFD.isExpert());
- fd.setHidden(fromFD.isHidden());
- fd.setPreferred(fromFD.isPreferred());
- fd.setShortDescription(fromFD.getShortDescription());
- fd.setDisplayName(fromFD.getDisplayName());
-
- java.util.Enumeration keys = fromFD.attributeNames();
- while (keys.hasMoreElements()) {
- String key = (String) keys.nextElement();
- Object value = fromFD.getValue(key);
- fd.setValue(key, value);
- }
- }
-
- /*
- * The common property arguments between field and standard properties.
- */
- private static boolean applyCommonPropertyArguments(PropertyDescriptor pd, String key, Object value) {
- if (BOUND.equals(key)) {
- pd.setBound(((Boolean) value).booleanValue());
- } else if (CONSTRAINED.equals(key)) {
- pd.setConstrained(((Boolean) value).booleanValue());
- } else if (PROPERTYEDITORCLASS.equals(key)) {
- pd.setPropertyEditorClass((Class) value);
- } else if (FIELDPROPERTY.equals(key))
- return true; // This should not be applied except through createFieldProperty.
- else
- return false;
- return true;
-
- }
-
- private static void applyPropertyArguments(PropertyDescriptor pd, Object[] args, Class cls) {
- if (args != null) {
- for (int i = 0; i < args.length; i += 2) {
- String key = (String) args[i];
- Object value = args[i + 1];
-
- if (!applyCommonPropertyArguments(pd, key, value)) {
- if (READMETHOD.equals(key)) {
- String methodName = (String) value;
- Method method;
- try {
- method = cls.getMethod(methodName, new Class[0]);
- pd.setReadMethod(method);
- } catch (Exception e) {
- throwError(e, java.text.MessageFormat.format(RESBUNDLE.getString("{0}_no_read_method_EXC_"), //$NON-NLS-1$
- new Object[] { cls, methodName}));
- }
- } else if (WRITEMETHOD.equals(key)) {
- String methodName = (String) value;
- try {
- if (methodName == null) {
- pd.setWriteMethod(null);
- } else {
- Method method;
- Class type = pd.getPropertyType();
- method = cls.getMethod(methodName, new Class[] { type});
- pd.setWriteMethod(method);
- }
- } catch (Exception e) {
- throwError(e, java.text.MessageFormat.format(RESBUNDLE.getString("{0}_no_write_method_EXC_"), //$NON-NLS-1$
- new Object[] { cls, methodName}));
- }
- } else {
- // arbitrary value
- setFeatureDescriptorValue(pd, key, value);
- }
- }
- }
- }
- }
-
- private static void applyFieldArguments(PropertyDescriptor pd, Object[] args) {
- if (args != null) {
- for (int i = 0; i < args.length; i += 2) {
- String key = (String) args[i];
- Object value = args[i + 1];
-
- if (!applyCommonPropertyArguments(pd, key, value)) {
- if (READMETHOD.equals(key)) {
- // ignored for field.
- } else if (WRITEMETHOD.equals(key)) {
- // ignored for field.
- } else {
- // arbitrary value
- setFeatureDescriptorValue(pd, key, value);
- }
- }
- }
- }
- }
-
- /**
- * Find the method by comparing (name & parameter size) against the methods in the class. This is an expensive call and should be used only if
- * getMethod with specific parameter types can't find method.
- *
- * @return java.lang.reflect.Method
- * @param aClass
- * java.lang.Class
- * @param methodName
- * java.lang.String
- * @param parameterCount
- * int
- */
- public static java.lang.reflect.Method findMethod(java.lang.Class aClass, java.lang.String methodName, int parameterCount) {
- try {
- /*
- * Since this method attempts to find a method by getting all methods from the class, this method should only be called if getMethod
- * cannot find the method.
- */
- java.lang.reflect.Method methods[] = aClass.getMethods();
- for (int index = 0; index < methods.length; index++) {
- java.lang.reflect.Method method = methods[index];
- if ((method.getParameterTypes().length == parameterCount) && (method.getName().equals(methodName))) { return method; }
- ;
- }
- ;
- } catch (java.lang.Throwable exception) {
- return null;
- }
- ;
- return null;
- }
-
- /**
- * Find a property descriptor of a given name in the list.
- *
- * @param pds
- * The array of property descriptors to search, may be null.
- * @param name
- * The name to search for.
- * @return The found property descriptor index, or -1 if not found.
- */
- public static int findPropertyDescriptor(PropertyDescriptor[] pds, String name) {
- for (int i = 0; i < pds.length; i++) {
- if (name.equals(pds[i].getName()))
- return i;
- }
- return -1;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.beans.BeanInfo#getDefaultEventIndex()
- */
- public int getDefaultEventIndex() {
- return -1;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.beans.BeanInfo#getDefaultPropertyIndex()
- */
- public int getDefaultPropertyIndex() {
- return -1;
- }
-
-
- /* (non-Javadoc)
- * @see java.beans.SimpleBeanInfo#getBeanDescriptor()
- */
- public BeanDescriptor getBeanDescriptor() {
- // Default is to create an empty one.
- return createBeanDescriptor(getBeanClass(), EMPTY_ARGS);
- }
-
- /**
- * Implementation for BeanInfo. This implementation will return the BeanInfo of the superclass.
- *
- * @see BeanInfo#getAdditionalBeanInfo()
- * @since 1.1.0
- */
- public BeanInfo[] getAdditionalBeanInfo() {
- try {
- BeanInfo[] result = new BeanInfo[] { Introspector.getBeanInfo(getBeanClass().getSuperclass())};
- PropertyDescriptor[] oPDs = result[0].getPropertyDescriptors();
- PropertyDescriptor[] nPDs = overridePropertyDescriptors(oPDs);
- if (oPDs != nPDs)
- result[0] = new OverridePDBeanInfo(result[0], nPDs);
- return result;
- } catch (IntrospectionException e) {
- return new BeanInfo[0];
- }
- }
-
- private static class OverridePDBeanInfo implements BeanInfo {
-
- private BeanInfo originalBeanInfo;
-
- private PropertyDescriptor[] overridePDs;
-
- public OverridePDBeanInfo(BeanInfo bi, PropertyDescriptor[] pds) {
- originalBeanInfo = bi;
- overridePDs = pds;
- }
-
- public BeanInfo[] getAdditionalBeanInfo() {
- return originalBeanInfo.getAdditionalBeanInfo();
- }
-
- public BeanDescriptor getBeanDescriptor() {
- return originalBeanInfo.getBeanDescriptor();
- }
-
- public int getDefaultEventIndex() {
- return originalBeanInfo.getDefaultEventIndex();
- }
-
- public int getDefaultPropertyIndex() {
- return originalBeanInfo.getDefaultPropertyIndex();
- }
-
- public EventSetDescriptor[] getEventSetDescriptors() {
- return originalBeanInfo.getEventSetDescriptors();
- }
-
- public Image getIcon(int iconKind) {
- return originalBeanInfo.getIcon(iconKind);
- }
-
- public MethodDescriptor[] getMethodDescriptors() {
- return originalBeanInfo.getMethodDescriptors();
- }
-
- public PropertyDescriptor[] getPropertyDescriptors() {
- return overridePDs;
- }
- }
-
- /**
- * Allow overrides to parent beaninfo. Subclasses should override this method if they wish to override and change any inherited properties. This
- * allows removal of inherited properties or changes of specific properties (such as change from hidden to not hidden).
- *
- * Note: If there any changes, this must return a DIFFERENT array. If it returns the same array, then the changes will not be accepted. If just
- * overriding, should use pds.clone() to get the new array and then change the specific entries.
- *
- * @param pds
- * @return The new changed array or the same array if no changes.
- * @since 1.1.0
- */
- protected PropertyDescriptor[] overridePropertyDescriptors(PropertyDescriptor[] pds) {
- return pds;
- }
-
- /**
- * Get the bean class this beaninfo is for. Used by subclasses to quickly get the bean class without having to code it over and over.
- *
- * @return bean class for this beaninfo.
- *
- * @since 1.1.0
- */
- public abstract Class getBeanClass();
-
- /**
- * Called whenever the bean information class throws an exception. By default it prints a message and then a stacktrace to sys err.
- *
- * @param exception
- * java.lang.Throwable
- * @since 1.1.0
- */
- public void handleException(Throwable exception) {
- System.err.println(RESBUNDLE.getString("UNCAUGHT_EXC_")); //$NON-NLS-1$
- exception.printStackTrace();
- }
-
- private static void setFeatureDescriptorValue(FeatureDescriptor fd, String key, Object value) {
- if (DISPLAYNAME.equals(key)) {
- fd.setDisplayName((String) value);
- } else if (EXPERT.equals(key)) {
- fd.setExpert(((Boolean) value).booleanValue());
- } else if (HIDDEN.equals(key)) {
- fd.setHidden(((Boolean) value).booleanValue());
- } else if (PREFERRED.equals(key)) {
- fd.setPreferred(((Boolean) value).booleanValue());
- if (JVM_1_3) {
- // Bug in 1.3 doesn't preserve the preferred flag, so we will put it into the attributes too.
- fd.setValue(PREFERRED, value);
- }
- } else if (SHORTDESCRIPTION.equals(key)) {
- fd.setShortDescription((String) value);
- }
- // Otherwise assume an arbitrary-named value
- // Assume that the FeatureDescriptor private hashTable\
- // contains only arbitrary-named attributes
- else {
- fd.setValue(key, value);
- }
- }
-
- /**
- * Fatal errors are handled by calling this method. By default it throws an Error exception.
- *
- * @param e
- * exception exception message placed into the new Error thrown.
- * @param s
- * message added to exception message. May 2, 2006 The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
-at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content. If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party ("Redistributor") 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
-and such source code may be obtained at http://www.eclipse.org.
- * When done,
- * This will not dereference the expression. It is the job of the caller to do this.
- *
- * @param fromTop
- * If the allowVoid is false and type is void, then a NoExpressionValueException will be thrown.
- * This is for the case where the expression was trying to be used in a different
- * expression. This will be set to void only on expressions that return no value (only
- * method's do this for now).
- *
- * @param allowVoid Allow void types if
- * When done,
- * It is an Object that acts as an enum for the type of expression that initiated the ignore.
- * If it is
- * All of the pushTo...Proxy methods must test this for this to work correctly.
- * Each expression has some way of testing that their particular nesting of
- * expressions is complete and they can turn off the ignore flag.
- *
- * Only one type of ignore can exist at a time.
- */
- protected Object ignoreExpression = null;
-
-
- private List saveStates;
-
- /**
- * Are we tracing or not.
- */
- protected final boolean traceOn;
- private final long thresholdTime;
- private long startExpressionStepTime;
- private long startExpressionTime;
- private long lastExpressionEndTime;
-
- /**
- * Trace head of this expression. So that traces from different expressions can be distinquished.
- * It is simply an monotonically increasing counter. It is the header string for any trace output.
- */
- protected final String traceHeader;
-
- private int indent = 0; // Indented for certain block expressions.
-
- /*
- * Trace counter. It is incremented once for each expression and assigned to the traceId of the expression.
- */
- private static int TRACE_COUNTER;
-
- /**
- * Create the Expression without tracing.
- * @param registry
- *
- * @since 1.0.0
- */
- public ExpressionProcesser() {
- this(false, -1);
- }
-
- /**
- * Create the expression, and set the tracing mode and threshold time. Use -1
- * for default time of 100ms.
- * @param traceOn
- *
- * @since 1.1.0
- */
- public ExpressionProcesser(boolean traceOn, long threshold) {
- this.traceOn = traceOn;
- if (traceOn) {
- traceHeader = "**"+(++TRACE_COUNTER)+':'; //$NON-NLS-1$
- System.out.print(traceHeader);
- System.out.println(" Start expression"); //$NON-NLS-1$
- this.thresholdTime = threshold != -1 ? threshold : 100;
- lastExpressionEndTime = startExpressionTime = System.currentTimeMillis();
- } else {
- traceHeader = null;
- thresholdTime = 100;
- }
- }
-
- /**
- * Trace msg helper. Should only be called if traceOn is true. This method is only used to start a new trace message.
- * The caller is must call printTraceEnd at the end.
- *
- * @param msg message to print
- * @param ignore are we ignoring the expression, or is it being processed (this just alters the trace output slightly).
- *
- * @since 1.1.0
- */
- protected void printTrace(String msg, boolean ignore) {
- startExpressionStepTime = System.currentTimeMillis();
- long sinceLastExpression = startExpressionStepTime - lastExpressionEndTime;
- System.out.print(traceHeader);
- if (sinceLastExpression > 0) {
- System.out.print('(');
- if (sinceLastExpression > thresholdTime)
- System.out.print("***"); //$NON-NLS-1$
- System.out.print(sinceLastExpression);
- System.out.print("ms)"); //$NON-NLS-1$
- }
- System.out.print('\t');
- if (!ignore)
- System.out.print("\t"); //$NON-NLS-1$
- else
- System.out.print("##\t"); //$NON-NLS-1$
-
- printIndent();
- System.out.print(msg);
- }
-
- /**
- * print the indent. It will not do a new line before nor after.
- *
- * @since 1.1.0
- */
- protected void printIndent() {
- for(int i=indent; i>0; i--) {
- System.out.print(" "); //$NON-NLS-1$
- }
- }
-
- protected void printTraceEnd() {
- long stop = System.currentTimeMillis()-startExpressionStepTime;
- if (stop > 0) {
- System.out.print(" ("); //$NON-NLS-1$
- if (stop > thresholdTime)
- System.out.print("***"); //$NON-NLS-1$
- System.out.print(stop);
- System.out.print("ms)"); //$NON-NLS-1$
- }
- System.out.println();
- lastExpressionEndTime = System.currentTimeMillis();
- }
-
- /**
- * Do an indent (undent) according to indent flag.
- * @param indent
- * However if can't be cast for primitive or if not an instance of the
- * returntype for objects, a ClassCastException will be raised.
- *
- * This is a helper method for expression processer to cast a bean. Since it is a helper method it doesn't
- * check nor process the exception. It throws it. Callers must handle it as they see fit.
- *
- * @param returnType
- * @param bean
- * @param beanType The type that bean is supposed to be (e.g. even though it is a Number, it actually represents a primitive).
- * @return The cast bean (either to the appropriate primitive wrapper type or bean)
- *
- * @throws ClassCastException
- * @since 1.0.0
- */
- protected final Object castBean(Class returnType, Object bean, Class beanType) throws ClassCastException {
- // Cast uses true value and true class of bean, not expected type (i.e. not beanType).
- if (bean == null)
- if (!returnType.isPrimitive())
- return bean; // bean is null, and return type is not primitive, so this is a valid cast.
- else
- throwClassCast(returnType, bean);
- else if (returnType.equals(bean.getClass()))
- return bean; // They are already the same.
- else if (!returnType.isPrimitive()) {
- if (!beanType.isPrimitive() && returnType.isInstance(bean))
- return bean;
- else
- throwClassCast(returnType, bean); // Either bean type was wrappering primitive or not instanceof returntype.
- } else {
- if (!beanType.isPrimitive())
- throwClassCast(returnType, bean); // bean type was not wrappering a primitive. Can't cast to primitive.
- // It is return type of primitive. Now convert to correct primitive.
- if (returnType == Boolean.TYPE)
- if (bean instanceof Boolean)
- return bean;
- else
- throwClassCast(returnType, bean);
- else {
- if (bean instanceof Number) {
- if (returnType == Integer.TYPE)
- if (bean instanceof Integer)
- return bean;
- else
- return new Integer(((Number) bean).intValue());
- else if (returnType == Byte.TYPE)
- if (bean instanceof Byte)
- return bean;
- else
- return new Byte(((Number) bean).byteValue());
- else if (returnType == Character.TYPE)
- if (bean instanceof Character)
- return bean;
- else
- return new Character((char) ((Number) bean).intValue());
- else if (returnType == Double.TYPE)
- if (bean instanceof Double)
- return bean;
- else
- return new Double(((Number) bean).doubleValue());
- else if (returnType == Float.TYPE)
- if (bean instanceof Float)
- return bean;
- else
- return new Float(((Number) bean).floatValue());
- else if (returnType == Long.TYPE)
- if (bean instanceof Long)
- return bean;
- else
- return new Long(((Number) bean).longValue());
- else if (returnType == Short.TYPE)
- if (bean instanceof Short)
- return bean;
- else
- return new Short(((Number) bean).shortValue());
- else
- throwClassCast(returnType, bean);
- } else if (bean instanceof Character) {
- if (returnType == Character.TYPE)
- return bean;
- else if (returnType == Integer.TYPE)
- return new Integer(((Character) bean).charValue());
- else if (returnType == Byte.TYPE)
- return new Byte((byte) ((Character) bean).charValue());
- else if (returnType == Double.TYPE)
- return new Double(((Character) bean).charValue());
- else if (returnType == Float.TYPE)
- return new Float(((Character) bean).charValue());
- else if (returnType == Long.TYPE)
- return new Long(((Character) bean).charValue());
- else if (returnType == Short.TYPE)
- return new Short((short) ((Character) bean).charValue());
- else
- throwClassCast(returnType, bean);
- } else
- throwClassCast(returnType, bean);
- }
-
- }
- return null; // It should never get here;
- }
-
- private void throwClassCast(Class returnType, Object bean) throws ClassCastException {
- throw new ClassCastException(MessageFormat.format(InitparserTreeMessages.getString("ExpressionProcesser.CannotCastXToY_EXC_"), new Object[] {bean != null ? bean.getClass().getName() : null, returnType.getName()})); //$NON-NLS-1$
- }
-
- /**
- * Return the primitive type that the wrapper bean represents (i.e. Boolean instance returns Boolean.TYPE)
- *
- * This is a helper method for expression processer to get the primitive type. Since it is a helper method it doesn't
- * check nor process the exception. It throws it. Callers must handle it as they see fit.
-
- * @param bean
- * @return the primitive type class of the given bean.
- * @throws IllegalArgumentException if bean is
- * This is a helper method for expression processer to do isInstance. Since it is a helper method it doesn't
- * check nor process exceptions.
-
- * @param type
- * @param bean
- * @param beanType
- * @return
- *
- * @since 1.0.0
- */
- protected final boolean isInstance(Class type, Object bean, Class beanType) {
- if (type.isPrimitive())
- return beanType.isPrimitive() && type == beanType; // Can't use isInstance because for a primitive type isInstance returns false.
- else
- return type.isInstance(bean);
- }
-
- /**
- * Push new instance from string.
- * @param initializationString
- * @param resultType expected result type. If it isn't of that type, a classcast will be processed.
- * @param classloader classloader to use for finding classes, or
- * This is a helper method for expression processer to get the enum for the primitive type. Since it is a helper method it doesn't
- * check nor process the exception. It throws it. Callers must handle it as they see fit.
-
- * @param primitiveType
- * @return
- * @throws IllegalArgumentException if type is not a primitive.
- *
- * @see ExpressionProcesser#BOOLEAN
- * @since 1.0.0
- */
- protected final int getEnumForPrimitive(Class primitiveType) throws IllegalArgumentException {
- if (primitiveType == Boolean.TYPE)
- return BOOLEAN;
- else if (primitiveType == Integer.TYPE)
- return INT;
- else if (primitiveType == Byte.TYPE)
- return BYTE;
- else if (primitiveType == Character.TYPE)
- return CHAR;
- else if (primitiveType == Double.TYPE)
- return DOUBLE;
- else if (primitiveType == Float.TYPE)
- return FLOAT;
- else if (primitiveType == Long.TYPE)
- return LONG;
- else if (primitiveType == Short.TYPE)
- return SHORT;
- else
- throw new IllegalArgumentException(primitiveType != null ? primitiveType.getName() : "null"); //$NON-NLS-1$
- }
-
- private void throwInvalidPrefix(PrefixOperator operator, Object exp) throws IllegalArgumentException {
- throw new IllegalArgumentException(MessageFormat.format(InitparserTreeMessages.getString("ExpressionProcesser.InvalidOperandOfPrefixOperator_EXC_"), new Object[] {exp != null ? exp.toString() : null, operator.toString()})); //$NON-NLS-1$
- }
-
- private static final Object INFIX_IGNORE = "INFIX IGNORE"; // Flag for infix in ingore //$NON-NLS-1$
- private int infixNesting = 0; // Nesting of infix expressions.
- private int infixIgnoreNestCount = 0; // When ignoring infix expressions, ignore until this nest count.
- /**
- * Push the infix expression onto the stack.
- * @param operator
- * @param operandType The operator type. Left, right, other.
- * @since 1.0.0
- */
- public final void pushInfix(InfixOperator operator, InternalInfixOperandType operandType) {
- try {
- boolean ignore = true;
- try {
- if (errorOccurred) {
- return;
- }
- // Slightly different here in that if an ignored occurred we still need to process at least part of it so that
- // we can get the expression grouping correct.
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND)
- infixNesting++;
- else if (operandType == InternalInfixOperandType.INFIX_LAST_OPERAND) {
- int currentNest = infixNesting--;
- if (ignoreExpression == INFIX_IGNORE && currentNest == infixIgnoreNestCount) {
- // We were ignoring, and it was this expression that was being ignore.
- // We have received the last operand of the nested expression that was being ignored,
- // so we can stop ignoring. But we still leave since the value of the expression is on the
- // top of the stack.
- ignoreExpression = null;
- return;
- }
- }
-
- if (ignoreExpression != null)
- return;
- ignore = false;
- } finally {
- if (traceOn)
- printTrace("Infix: "+operator, ignore); //$NON-NLS-1$
- }
-
- try {
- Object right = null;
- Class rightType = null;
- if (operandType != InternalInfixOperandType.INFIX_LEFT_OPERAND) {
- // We are not the left operand, so the stack has the right on the top, followed by the left.
- right = popExpression();
- rightType = popExpressionType(false);
- }
-
- Object value = popExpression();
- Class valueType = popExpressionType(false);
-
- switch (operator.getValue()) {
- case InfixOperator.IN_AND_VALUE:
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND)
- break; // Do nothing with first operand
-
- testValidBitType(valueType, InfixOperator.IN_AND);
- testValidBitType(rightType, InfixOperator.IN_AND);
- if (valueType == Long.TYPE || rightType == Long.TYPE) {
- // If either side is long, the result will be long.
- value = new Long(getLong(value) & getLong(right));
- valueType = Long.TYPE;
- } else {
- // Else it is int. (even two shorts together produce an int).
- value = new Integer(getInt(value) & getInt(right));
- valueType = Integer.TYPE;
- }
- break;
- case InfixOperator.IN_CONDITIONAL_AND_VALUE:
- // This is tricky.
- // First if this is left type, then just continue.
- // Else if this other or last, then need to make it the new value.
- if (operandType != InternalInfixOperandType.INFIX_LEFT_OPERAND) {
- value = right;
- valueType = rightType;
- }
-
- //If the value is now false, we need to ignore the rest.
- if (valueType != Boolean.TYPE)
- throwInvalidInfix(operator, value);
- if (!((Boolean) value).booleanValue() && operandType != InternalInfixOperandType.INFIX_LAST_OPERAND)
- startInfixIgnore(); // Start ignoring because we know the value of the expression at this point. It is false.
- break;
- case InfixOperator.IN_CONDITIONAL_OR_VALUE:
- // This is tricky.
- // First if this is left type, then just continue.
- // Else if this other or last, then need to make it the new value.
- if (operandType != InternalInfixOperandType.INFIX_LEFT_OPERAND) {
- value = right;
- valueType = rightType;
- }
-
- //If the value is now true, we need to ignore the rest.
- if (valueType != Boolean.TYPE)
- throwInvalidInfix(operator, value);
- if (((Boolean) value).booleanValue() && operandType != InternalInfixOperandType.INFIX_LAST_OPERAND)
- startInfixIgnore(); // Start ignoring because we know the value of the expression at this point. It is true.
- break;
- case InfixOperator.IN_DIVIDE_VALUE:
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND)
- break; // Do nothing with first operand
-
- testValidArithmeticType(valueType, InfixOperator.IN_DIVIDE);
- testValidArithmeticType(rightType, InfixOperator.IN_DIVIDE);
- if (valueType == Double.TYPE || rightType == Double.TYPE) {
- // If either side is double, the result will be double.
- value = new Double(getDouble(value) / getDouble(right));
- valueType = Double.TYPE;
- } else if (valueType == Float.TYPE || rightType == Float.TYPE) {
- // If either side is float, the result will be float.
- value = new Float(getFloat(value) / getFloat(right));
- valueType = Float.TYPE;
- } else if (valueType == Long.TYPE || rightType == Long.TYPE) {
- // If either side is long, the result will be long.
- value = new Long(getLong(value) / getLong(right));
- valueType = Long.TYPE;
- } else {
- // Else it will result in an int, even if both sides are short.
- value = new Integer(getInt(value) / getInt(right));
- valueType = Integer.TYPE;
- }
- break;
- case InfixOperator.IN_EQUALS_VALUE:
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND)
- break; // Do nothing with first operand
- // We should never get extended operator for this, but we'll ignore the possibility.
- if (valueType.isPrimitive() && rightType.isPrimitive()) {
- // Primitives require more testing than just ==. boolean primitives
- if (valueType == Boolean.TYPE || rightType == Boolean.TYPE) {
- // If either side is a boolean, then the other side needs to be boolean for it to even try to be true.
- if (valueType != Boolean.TYPE || valueType != Boolean.TYPE)
- value = Boolean.FALSE;
- else
- value = (((Boolean) value).booleanValue() == ((Boolean) right).booleanValue()) ? Boolean.TRUE : Boolean.FALSE;
- } else {
- // Now do number tests since not boolean primitive, only numbers are left
- if (valueType == Double.TYPE || rightType == Double.TYPE) {
- // If either side is double, compare as double.
- value = (getDouble(value) == getDouble(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else if (valueType == Float.TYPE || rightType == Float.TYPE) {
- // If either side is float, compare as float.
- value = (getFloat(value) == getFloat(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else if (valueType == Long.TYPE || rightType == Long.TYPE) {
- // If either side is long, the compare as long.
- value = (getLong(value) == getLong(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else {
- // Else it will compare as int, even if both sides are short.
- value = (getInt(value) == getInt(right)) ? Boolean.TRUE : Boolean.FALSE;
- }
- }
- } else if (valueType.isPrimitive() || rightType.isPrimitive())
- value = Boolean.FALSE; // Can't be true if one side prim and the other isn't
- else {
- // Just do object ==
- value = (value == right) ? Boolean.TRUE : Boolean.FALSE;
- }
- valueType = Boolean.TYPE; // We know result will be a boolean.
- break;
- case InfixOperator.IN_GREATER_VALUE:
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND)
- break; // Do nothing with first operand
-
- testValidArithmeticType(valueType, InfixOperator.IN_GREATER);
- testValidArithmeticType(rightType, InfixOperator.IN_GREATER);
- if (valueType == Double.TYPE || rightType == Double.TYPE) {
- // If either side is double, compare will be double.
- value = (getDouble(value) > getDouble(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else if (valueType == Float.TYPE || rightType == Float.TYPE) {
- // If either side is float, compare will be float.
- value = (getFloat(value) > getFloat(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else if (valueType == Long.TYPE || rightType == Long.TYPE) {
- // If either side is long, compare will be long.
- value = (getLong(value) > getLong(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else {
- // Else compare will be int, even if both sides are short.
- value = (getInt(value) > getInt(right)) ? Boolean.TRUE : Boolean.FALSE;
- }
- valueType = Boolean.TYPE; // We know result will be a boolean.
- break;
- case InfixOperator.IN_GREATER_EQUALS_VALUE:
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND)
- break; // Do nothing with first operand
-
- testValidArithmeticType(valueType, InfixOperator.IN_GREATER_EQUALS);
- testValidArithmeticType(rightType, InfixOperator.IN_GREATER_EQUALS);
- if (valueType == Double.TYPE || rightType == Double.TYPE) {
- // If either side is double, compare will be double.
- value = (getDouble(value) >= getDouble(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else if (valueType == Float.TYPE || rightType == Float.TYPE) {
- // If either side is float, compare will be float.
- value = (getFloat(value) >= getFloat(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else if (valueType == Long.TYPE || rightType == Long.TYPE) {
- // If either side is long, compare will be long.
- value = (getLong(value) >= getLong(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else {
- // Else compare will be int, even if both sides are short.
- value = (getInt(value) >= getInt(right)) ? Boolean.TRUE : Boolean.FALSE;
- }
- valueType = Boolean.TYPE; // We know result will be a boolean.
- break;
- case InfixOperator.IN_LEFT_SHIFT_VALUE:
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND)
- break; // Do nothing with first operand
-
- testValidBitType(valueType, InfixOperator.IN_LEFT_SHIFT);
- testValidBitType(rightType, InfixOperator.IN_LEFT_SHIFT);
- if (valueType == Long.TYPE || rightType == Long.TYPE) {
- // If either side is long, the result will be long.
- value = new Long(getLong(value) << getLong(right));
- valueType = Long.TYPE;
- } else {
- // Else it is int. (even two shorts together produce an int).
- value = new Integer(getInt(value) << getInt(right));
- valueType = Integer.TYPE;
- }
- break;
- case InfixOperator.IN_LESS_VALUE:
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND)
- break; // Do nothing with first operand
-
- testValidArithmeticType(valueType, InfixOperator.IN_LESS);
- testValidArithmeticType(rightType, InfixOperator.IN_LESS);
- if (valueType == Double.TYPE || rightType == Double.TYPE) {
- // If either side is double, compare will be double.
- value = (getDouble(value) < getDouble(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else if (valueType == Float.TYPE || rightType == Float.TYPE) {
- // If either side is float, compare will be float.
- value = (getFloat(value) < getFloat(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else if (valueType == Long.TYPE || rightType == Long.TYPE) {
- // If either side is long, compare will be long.
- value = (getLong(value) < getLong(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else {
- // Else compare will be int, even if both sides are short.
- value = (getInt(value) < getInt(right)) ? Boolean.TRUE : Boolean.FALSE;
- }
- valueType = Boolean.TYPE; // We know result will be a boolean.
- break;
- case InfixOperator.IN_LESS_EQUALS_VALUE:
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND)
- break; // Do nothing with first operand
-
- testValidArithmeticType(valueType, InfixOperator.IN_LESS_EQUALS);
- testValidArithmeticType(rightType, InfixOperator.IN_LESS_EQUALS);
- if (valueType == Double.TYPE || rightType == Double.TYPE) {
- // If either side is double, compare will be double.
- value = (getDouble(value) <= getDouble(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else if (valueType == Float.TYPE || rightType == Float.TYPE) {
- // If either side is float, compare will be float.
- value = (getFloat(value) <= getFloat(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else if (valueType == Long.TYPE || rightType == Long.TYPE) {
- // If either side is long, compare will be long.
- value = (getLong(value) <= getLong(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else {
- // Else compare will be int, even if both sides are short.
- value = (getInt(value) <= getInt(right)) ? Boolean.TRUE : Boolean.FALSE;
- }
- valueType = Boolean.TYPE; // We know result will be a boolean.
- break;
- case InfixOperator.IN_MINUS_VALUE:
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND)
- break; // Do nothing with first operand
-
- testValidArithmeticType(valueType, InfixOperator.IN_MINUS);
- testValidArithmeticType(rightType, InfixOperator.IN_MINUS);
- if (valueType == Double.TYPE || rightType == Double.TYPE) {
- // If either side is double, the result will be double.
- value = new Double(getDouble(value) - getDouble(right));
- valueType = Double.TYPE;
- } else if (valueType == Float.TYPE || rightType == Float.TYPE) {
- // If either side is float, the result will be float.
- value = new Float(getFloat(value) - getFloat(right));
- valueType = Float.TYPE;
- } else if (valueType == Long.TYPE || rightType == Long.TYPE) {
- // If either side is long, the result will be long.
- value = new Long(getLong(value) - getLong(right));
- valueType = Long.TYPE;
- } else {
- // Else it will result in an int, even if both sides are short.
- value = new Integer(getInt(value) - getInt(right));
- valueType = Integer.TYPE;
- }
- break;
- case InfixOperator.IN_NOT_EQUALS_VALUE:
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND)
- break; // Do nothing with first operand
- // We should never get extended operator for this, but we'll ignore the possibility.
- if (valueType.isPrimitive() && rightType.isPrimitive()) {
- // Primitives require more testing than just ==. boolean primitives
- if (valueType == Boolean.TYPE || rightType == Boolean.TYPE) {
- // If either side is a boolean, then the other side needs to be boolean for it to even try to be true.
- if (valueType != Boolean.TYPE || valueType != Boolean.TYPE)
- value = Boolean.TRUE;
- else
- value = (((Boolean) value).booleanValue() != ((Boolean) right).booleanValue()) ? Boolean.TRUE : Boolean.FALSE;
- } else {
- // Now do number tests since not boolean primitive, only numbers are left
- if (valueType == Double.TYPE || rightType == Double.TYPE) {
- // If either side is double, compare as double.
- value = (getDouble(value) != getDouble(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else if (valueType == Float.TYPE || rightType == Float.TYPE) {
- // If either side is float, compare as float.
- value = (getFloat(value) != getFloat(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else if (valueType == Long.TYPE || rightType == Long.TYPE) {
- // If either side is long, the compare as long.
- value = (getLong(value) != getLong(right)) ? Boolean.TRUE : Boolean.FALSE;
- } else {
- // Else it will compare as int, even if both sides are short.
- value = (getInt(value) != getInt(right)) ? Boolean.TRUE : Boolean.FALSE;
- }
- }
- } else if (valueType.isPrimitive() || rightType.isPrimitive())
- value = Boolean.TRUE; // Must be true if one side prim and the other isn't
- else {
- // Just do object !=
- value = (value != right) ? Boolean.TRUE : Boolean.FALSE;
- }
- valueType = Boolean.TYPE; // We know result will be a boolean.
- break;
- case InfixOperator.IN_OR_VALUE:
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND)
- break; // Do nothing with first operand
-
- testValidBitType(valueType, InfixOperator.IN_OR);
- testValidBitType(rightType, InfixOperator.IN_OR);
- if (valueType == Long.TYPE || rightType == Long.TYPE) {
- // If either side is long, the result will be long.
- value = new Long(getLong(value) | getLong(right));
- valueType = Long.TYPE;
- } else {
- // Else it is int. (even two shorts together produce an int).
- value = new Integer(getInt(value) | getInt(right));
- valueType = Integer.TYPE;
- }
- break;
- case InfixOperator.IN_PLUS_VALUE:
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND) {
- if (valueType == String.class) {
- // Special. left argument is a string, so we want to store a string buffer instead
- // since we know we will be appending to it.
- value = new StringBuffer((String) value);
- }
- break; // Do nothing with first operand
- }
-
- testValidPlusType(valueType, rightType);
- if (valueType == String.class || rightType == String.class) {
- // Special we have a string on one side. Need to do it as strings instead.
- // We are going to be tricky in that we will store a StringBuffer on the stack (if not last operand)
- // but call it a string.
- StringBuffer sb = null;
- if (valueType == String.class) {
- sb = (StringBuffer) value; // We know that if the value (left) is string type, we've already converted it to buffer.
- } else {
- // The right is the one that introduces the string, so we change the value over to a string buffer.
- sb = new StringBuffer(((String) right).length()+16); // We can't put the value in yet, need to get left into it.
- appendToBuffer(sb, value, valueType); // Put the left value in now
- value = sb;
- valueType = String.class; // Make it a string class
- }
- appendToBuffer(sb, right, rightType);
- // Now if we are the last operand, we should get rid of the buffer and put a true string back in.
- if (operandType == InternalInfixOperandType.INFIX_LAST_OPERAND)
- value = sb.toString();
- } else if (valueType == Double.TYPE || rightType == Double.TYPE) {
- // If either side is double, the result will be double.
- value = new Double(getDouble(value) + getDouble(right));
- valueType = Double.TYPE;
- } else if (valueType == Float.TYPE || rightType == Float.TYPE) {
- // If either side is float, the result will be float.
- value = new Float(getFloat(value) + getFloat(right));
- valueType = Float.TYPE;
- } else if (valueType == Long.TYPE || rightType == Long.TYPE) {
- // If either side is long, the result will be long.
- value = new Long(getLong(value) + getLong(right));
- valueType = Long.TYPE;
- } else {
- // Else it will result in an int, even if both sides are short.
- value = new Integer(getInt(value) + getInt(right));
- valueType = Integer.TYPE;
- }
- break;
- case InfixOperator.IN_REMAINDER_VALUE:
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND)
- break; // Do nothing with first operand
-
- testValidArithmeticType(valueType, InfixOperator.IN_REMAINDER);
- testValidArithmeticType(rightType, InfixOperator.IN_REMAINDER);
- if (valueType == Double.TYPE || rightType == Double.TYPE) {
- // If either side is double, the result will be double.
- value = new Double(getDouble(value) % getDouble(right));
- valueType = Double.TYPE;
- } else if (valueType == Float.TYPE || rightType == Float.TYPE) {
- // If either side is float, the result will be float.
- value = new Float(getFloat(value) % getFloat(right));
- valueType = Float.TYPE;
- } else if (valueType == Long.TYPE || rightType == Long.TYPE) {
- // If either side is long, the result will be long.
- value = new Long(getLong(value) % getLong(right));
- valueType = Long.TYPE;
- } else {
- // Else it will result in an int, even if both sides are short.
- value = new Integer(getInt(value) % getInt(right));
- valueType = Integer.TYPE;
- }
- break;
- case InfixOperator.IN_RIGHT_SHIFT_SIGNED_VALUE:
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND)
- break; // Do nothing with first operand
-
- testValidBitType(valueType, InfixOperator.IN_RIGHT_SHIFT_SIGNED);
- testValidBitType(rightType, InfixOperator.IN_RIGHT_SHIFT_SIGNED);
- if (valueType == Long.TYPE || rightType == Long.TYPE) {
- // If either side is long, the result will be long.
- value = new Long(getLong(value) >> getLong(right));
- valueType = Long.TYPE;
- } else {
- // Else it is int. (even two shorts together produce an int).
- value = new Integer(getInt(value) >> getInt(right));
- valueType = Integer.TYPE;
- }
- break;
- case InfixOperator.IN_RIGHT_SHIFT_UNSIGNED_VALUE:
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND)
- break; // Do nothing with first operand
-
- testValidBitType(valueType, InfixOperator.IN_RIGHT_SHIFT_UNSIGNED);
- testValidBitType(rightType, InfixOperator.IN_RIGHT_SHIFT_UNSIGNED);
- if (valueType == Long.TYPE || rightType == Long.TYPE) {
- // If either side is long, the result will be long.
- value = new Long(getLong(value) >>> getLong(right));
- valueType = Long.TYPE;
- } else {
- // Else it is int. (even two shorts together produce an int).
- value = new Integer(getInt(value) >>> getInt(right));
- valueType = Integer.TYPE;
- }
- break;
- case InfixOperator.IN_TIMES_VALUE:
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND)
- break; // Do nothing with first operand
-
- testValidArithmeticType(valueType, InfixOperator.IN_TIMES);
- testValidArithmeticType(rightType, InfixOperator.IN_TIMES);
- if (valueType == Double.TYPE || rightType == Double.TYPE) {
- // If either side is double, the result will be double.
- value = new Double(getDouble(value) * getDouble(right));
- valueType = Double.TYPE;
- } else if (valueType == Float.TYPE || rightType == Float.TYPE) {
- // If either side is float, the result will be float.
- value = new Float(getFloat(value) * getFloat(right));
- valueType = Float.TYPE;
- } else if (valueType == Long.TYPE || rightType == Long.TYPE) {
- // If either side is long, the result will be long.
- value = new Long(getLong(value) * getLong(right));
- valueType = Long.TYPE;
- } else {
- // Else it will result in an int, even if both sides are short.
- value = new Integer(getInt(value) * getInt(right));
- valueType = Integer.TYPE;
- }
- break;
- case InfixOperator.IN_XOR_VALUE:
- if (operandType == InternalInfixOperandType.INFIX_LEFT_OPERAND)
- break; // Do nothing with first operand
-
- testValidBitType(valueType, InfixOperator.IN_XOR);
- testValidBitType(rightType, InfixOperator.IN_XOR);
- if (valueType == Long.TYPE || rightType == Long.TYPE) {
- // If either side is long, the result will be long.
- value = new Long(getLong(value) ^ getLong(right));
- valueType = Long.TYPE;
- } else {
- // Else it is int. (even two shorts together produce an int).
- value = new Integer(getInt(value) ^ getInt(right));
- valueType = Integer.TYPE;
- }
- break;
- }
-
- if (traceOn)
- printObjectAndType(value, valueType);
- pushExpressionValue(value, valueType); // Push the result back on the stack.
-
- } catch (IllegalArgumentException e) {
- processException(e);
- } catch (NoExpressionValueException e) {
- processException(e);
- } catch (RuntimeException e) {
- processException(e);
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
-
- }
-
- /**
- * Start ignoring rest of the current infix expression.
- *
- * @since 1.1.0
- */
- private void startInfixIgnore() {
- ignoreExpression = INFIX_IGNORE;
- infixIgnoreNestCount = infixNesting; // Ignore until we get back to the current nesting.
-
- }
-
- /**
- * Get int value of the primitive wrapper bean passed in (must be either a
- * This is a helper method for expression processer to get the int value of the object. Since it is a helper method it doesn't
- * check nor process the exception. It throws it. Callers must handle it as they see fit.
- * @param bean
- * @return the int value of the number/character
- * @throws ClassCastException
- *
- * @since 1.0.0
- */
- protected final int getInt(Object bean) throws ClassCastException {
- return (bean instanceof Number) ? ((Number) bean).intValue() : ((Character) bean).charValue();
- }
-
- /**
- * Get float value of the primitive wrapper bean passed in (must be either a
- * This is a helper method for expression processer to get the float value of the object. Since it is a helper method it doesn't
- * check nor process the exception. It throws it. Callers must handle it as they see fit.
- * @param bean
- * @return float value of the Number/character
- * @throws ClassCastException
- * @since 1.0.0
- */
- protected final float getFloat(Object bean) throws ClassCastException {
- return (bean instanceof Number) ? ((Number) bean).floatValue() : ((Character) bean).charValue();
- }
-
- /**
- * Get double value of the primitive wrapper bean passed in (must be either a
- * This is a helper method for expression processer to get the float value of the object. Since it is a helper method it doesn't
- * check nor process the exception. It throws it. Callers must handle it as they see fit.
- *
- * @param bean
- * @return double value of the Number/Character.
- * @throws ClassCastException
- * @since 1.0.0
- */
- protected final double getDouble(Object bean) throws ClassCastException {
- return (bean instanceof Number) ? ((Number) bean).doubleValue() : ((Character) bean).charValue();
- }
-
- /**
- * Get long value of the primitive wrapper bean passed in (must be either a
- * This is a helper method for expression processer to get the float value of the object. Since it is a helper method it doesn't
- * check nor process the exception. It throws it. Callers must handle it as they see fit.
- *
- * @param bean
- * @return
- * @throws ClassCastException
- * @since 1.0.0
- */
- protected final long getLong(Object bean) throws ClassCastException {
- return (bean instanceof Number) ? ((Number) bean).longValue() : ((Character) bean).charValue();
- }
-
- private void throwInvalidInfix(InfixOperator operator, Object value) throws IllegalArgumentException {
- throw new IllegalArgumentException(MessageFormat.format(InitparserTreeMessages.getString("ExpressionProcesser.InvalidOperandOfOperator_EXC_"), new Object[] {value != null ? value.toString() : null, operator.toString()})); //$NON-NLS-1$
- }
-
- private void testValidBitType(Class type, InfixOperator operator) {
- if (!type.isPrimitive() || type == Boolean.TYPE || type == Double.TYPE|| type == Float.TYPE)
- throwInvalidInfix(operator, type);
- }
-
- private void testValidArithmeticType(Class type, InfixOperator operator) {
- if (!type.isPrimitive() || type == Boolean.TYPE)
- throwInvalidInfix(operator, type);
- }
-
- private void testValidPlusType(Class left, Class right) {
- // Plus is special in that string objects are also valid.
- if (left == String.class || right == String.class)
- return; // As long as one side is string. Anything is valid.
- // If neither is string, then standard arithmetic test.
- testValidArithmeticType(left, InfixOperator.IN_PLUS);
- testValidArithmeticType(right, InfixOperator.IN_PLUS);
- }
-
- private void appendToBuffer(StringBuffer sb, Object value, Class valueType) {
- if (value == null)
- sb.append((Object)null);
- else if (valueType == String.class)
- sb.append((String) value);
- else if (valueType.isPrimitive()) {
- switch (getEnumForPrimitive(valueType)) {
- case BOOLEAN:
- sb.append(((Boolean) value).booleanValue());
- break;
- case BYTE:
- sb.append(((Number) value).byteValue());
- break;
- case CHAR:
- sb.append(((Character) value).charValue());
- break;
- case DOUBLE:
- sb.append(((Number) value).doubleValue());
- break;
- case FLOAT:
- sb.append(((Number) value).floatValue());
- break;
- case INT:
- sb.append(((Number) value).intValue());
- break;
- case LONG:
- sb.append(((Number) value).longValue());
- break;
- case SHORT:
- sb.append(((Number) value).shortValue());
- break;
- }
- } else {
- // Just an object.
- sb.append(value);
- }
- }
-
- /**
- * Push the array access expression.
- *
- * @param indexCount Number of dimensions being accessed
- * @since 1.0.0
- */
- public final void pushArrayAccess(int indexCount) {
- boolean ignore = (ignoreExpression != null || errorOccurred);
-
- if (traceOn) {
- printTrace("Array Access["+indexCount+']', ignore); //$NON-NLS-1$
- }
- try {
- if (ignore)
- return;
-
- try {
- // We need to pop off the args. The topmost will be the rightmost index, and the bottom most will be the array itself.
- int[] arguments = new int[indexCount];
- // Fill the arg array in reverse order.
- for(int i=indexCount-1; i >= 0; i--) {
- Object index = popExpression();
- Class indexType = popExpressionType(false);
- if (indexType.isPrimitive() && (indexType == Integer.TYPE || indexType == Short.TYPE || indexType == Character.TYPE || indexType == Byte.TYPE)) {
- arguments[i] = getInt(index);
- } else
- throwClassCast(Integer.TYPE, index);
- }
-
- Object array = popExpression();
- Class arrayType = popExpressionType(false);
- if (arrayType.isArray()) {
- // First figure out how many dimensions are available. Stop when we hit indexcount because we won't be going further.
- int dimcount = 0;
- Class[] componentTypes = new Class[indexCount]; //
- Class componentType = arrayType;
- while (dimcount < indexCount && componentType.isArray()) {
- componentTypes[dimcount++] = componentType = componentType.getComponentType();
- }
-
- if (dimcount < indexCount)
- throw new IllegalArgumentException(MessageFormat.format(InitparserTreeMessages.getString("ExpressionProcesser.XIsGreaterThanNumberOfDimensionsInArray_EXC_"), new Object[] {new Integer(indexCount), new Integer(dimcount)})); //$NON-NLS-1$
-
- // Now start accessing one index at a time, stop just before the last one. The last one will be turned into an ArrayAccessReference.
- Object value = array; // Final value, start with full array.
- int pullCount = indexCount-1;
- for(int i=0; i
- * It is assumed that the calls are coming in correct order from
- * the server so we won't check validity.
- *
- * @param markID
- * @param restore
- *
- * @since 1.1.0
- */
- public final void pushEndmark(int markID, boolean restore) {
- if (traceOn)
- printTrace("End Mark#"+markID+" Restored="+restore, false); //$NON-NLS-1$ //$NON-NLS-2$
-
- try {
- if (saveStates != null) {
- // Start from the end (since that is where it most likely will be) and start
- // search, removing the end one until we reach the markID.
- for (int i = saveStates.size() - 1; i >= 0; i--) {
- SaveState state = (SaveState) saveStates.remove(i);
- if (state.markID == markID) {
- // We found it.
- if (restore)
- state.restoreState();
- return;
- }
- }
- // But to be safe, if we got here, this is bad. We tried restore a mark we didn't have.
- processSyntaxException(new IllegalStateException(MessageFormat.format(InitparserTreeMessages.getString("ExpressionProcesser.PushEndmark.EndMarkOnNonExistingID_EXC_"), new Object[]{new Integer(markID)}))); //$NON-NLS-1$
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- private int[] subexpressions; // Stack of subexpression numbers currently evaluating.
- private int[] subexpressionStackPos; // Stack of the expression stack positions (next entry index) for currently evaluating expressions. The evaluation stack cannot be popped beyond the current top. And at end it will be cleaned up to the position.
- private int topSubexpression = -1; // Top subexpression index.
-
-
- /**
- * Push a begin subexpression.
- * @param subexpressionNumber
- *
- * @since 1.1.0
- */
- public final void pushSubexpressionBegin(int subexpressionNumber) {
- if (traceOn) {
- printTrace("Begin Subexpression #"+subexpressionNumber, errorOccurred); //$NON-NLS-1$
- indent(true);
- }
- try {
- if (errorOccurred)
- return;
- // We are not checking ignore because this is a structural concept instead of executable expressions, so we need to keep track of these.
- if (subexpressions == null) {
- subexpressions = new int[10];
- subexpressionStackPos = new int[10];
- }
- if (++topSubexpression >= subexpressions.length) {
- int[] newList = new int[subexpressions.length*2];
- System.arraycopy(subexpressions, 0, newList, 0, subexpressions.length);
- subexpressions = newList;
- newList = new int[subexpressionStackPos.length*2];
- System.arraycopy(subexpressionStackPos, 0, newList, 0, subexpressionStackPos.length);
- subexpressionStackPos = newList;
- }
- subexpressions[topSubexpression] = subexpressionNumber;
- subexpressionStackPos[topSubexpression] = expressionStack.size();
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- /**
- * Push a subexpression end. The current subexpression must be the given number, or it is an error.
- *
- * @param subexpressionNumber
- *
- * @since 1.1.0
- */
- public final void pushSubexpressionEnd(int subexpressionNumber) {
- try {
- if (traceOn) {
- indent(false);
- printTrace("End Subexpression #"+subexpressionNumber, errorOccurred); //$NON-NLS-1$
- }
- if (errorOccurred)
- return;
- // We are not checking ignore because this is a structural concept instead of executable expressions, so we need to keep track of these.
- if (subexpressions == null || topSubexpression < 0 || subexpressions[topSubexpression] != subexpressionNumber) {
- processSyntaxException(new IllegalStateException(InitparserTreeMessages.getString("ExpressionProcesser.PushSubexpressionEnd.ReceivedEndSubexpressionsOutOfOrder_EXC_"))); //$NON-NLS-1$
- } else {
- try {
- popExpressions(expressionStack.size()-subexpressionStackPos[topSubexpression]);
- topSubexpression--;
- } catch (NoExpressionValueException e) {
- processException(e);
- }
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/ForExpression.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/ForExpression.java
deleted file mode 100644
index f6346fe09..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/ForExpression.java
+++ /dev/null
@@ -1,213 +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: ForExpression.java,v $
- * $Revision: 1.2 $ $Date: 2005/05/18 23:11:26 $
- */
-package org.eclipse.jem.internal.proxy.initParser.tree;
-
-/**
- * Enum for the forExpression parameters.
- *
- * This is not meant to be subclassed by customers.
- * @since 1.1.0
- */
-public class ForExpression extends AbstractEnum {
-
- /**
- * forExpression: Creating a root expression
- */
- public static final int ROOTEXPRESSION_VALUE = 0;
-
- public static final ForExpression ROOTEXPRESSION = new ForExpression(ROOTEXPRESSION_VALUE, "Root"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating the array expression for an array access (i.e. the array to access)
- */
- public static final int ARRAYACCESS_ARRAY_VALUE = 1;
-
- public static final ForExpression ARRAYACCESS_ARRAY = new ForExpression(ARRAYACCESS_ARRAY_VALUE, "Array Access: Array Operand"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating an index expression for an array access (i.e. one of the expressions within the
- * Note: The left expression can only be a FieldAccess or ArrayAccess.
- */
- public static final int ASSIGNMENT_LEFT_VALUE = 19;
-
- public static final ForExpression ASSIGNMENT_LEFT = new ForExpression(ASSIGNMENT_LEFT_VALUE, "Assignment: Left"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating the throw operand of the throw expression.
- */
- public static final int THROW_OPERAND_VALUE = 20;
-
- public static final ForExpression THROW_OPERAND = new ForExpression(THROW_OPERAND_VALUE, "Throw operand"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating the if conditional operand of the if expression.
- */
- public static final int IF_CONDITION_VALUE = 21;
-
- public static final ForExpression IF_CONDITION = new ForExpression(IF_CONDITION_VALUE, "If condition"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating the if true clause of the if expression.
- */
- public static final int IF_TRUE_VALUE = 22;
-
- public static final ForExpression IF_TRUE = new ForExpression(IF_TRUE_VALUE, "If true clause"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating the if else clause of the if expression.
- */
- public static final int IF_ELSE_VALUE = 23;
-
- public static final ForExpression IF_ELSE = new ForExpression(IF_ELSE_VALUE, "If else clause"); //$NON-NLS-1$
-
-
- /**
- * This is not private, but protected only so that proxy core can add an internal ForExpression enum.
- *
- * This is not meant to be subclassed by customers.
- * @param value
- * @param name
- *
- * @since 1.1.0
- */
- protected ForExpression(int value, String name) {
- super(value, name);
- }
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/IExpressionConstants.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/IExpressionConstants.java
deleted file mode 100644
index 49edd7257..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/IExpressionConstants.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: IExpressionConstants.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:07 $
- */
-package org.eclipse.jem.internal.proxy.initParser.tree;
-
-/**
- * These are constants needed by IExpression that will be common between
- * the vm and the IDE. They are also available to users of the IExpression
- * interface.
- *
- * @since 1.0.0
- */
-public interface IExpressionConstants {
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InfixOperator.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InfixOperator.java
deleted file mode 100644
index 9fbe0034f..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InfixOperator.java
+++ /dev/null
@@ -1,212 +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: InfixOperator.java,v $
- * $Revision: 1.2 $ $Date: 2005/05/18 23:11:26 $
- */
-package org.eclipse.jem.internal.proxy.initParser.tree;
-
-/**
- * Enum for Infix operator
- *
- * @since 1.1.0
- */
-public class InfixOperator extends AbstractEnum {
-
- /**
- * Infix times "*"
- */
- public static final int IN_TIMES_VALUE = 0;
-
- public static final InfixOperator IN_TIMES = new InfixOperator(IN_TIMES_VALUE, "Infix *"); //$NON-NLS-1$
-
- /**
- * Infix divide "/"
- */
- public static final int IN_DIVIDE_VALUE = 1;
-
- public static final InfixOperator IN_DIVIDE = new InfixOperator(IN_DIVIDE_VALUE, "Infix /"); //$NON-NLS-1$
-
- /**
- * Infix remainder "%"
- */
- public static final int IN_REMAINDER_VALUE = 2;
-
- public static final InfixOperator IN_REMAINDER = new InfixOperator(IN_REMAINDER_VALUE, "Infix %"); //$NON-NLS-1$
-
- /**
- * Infix plus "+"
- */
- public static final int IN_PLUS_VALUE = 3;
-
- public static final InfixOperator IN_PLUS = new InfixOperator(IN_PLUS_VALUE, "Infix +"); //$NON-NLS-1$
-
- /**
- * Infix minus "-"
- */
- public static final int IN_MINUS_VALUE = 4;
-
- public static final InfixOperator IN_MINUS = new InfixOperator(IN_MINUS_VALUE, "Infix -"); //$NON-NLS-1$
-
- /**
- * Infix left shift " < <"
- */
- public static final int IN_LEFT_SHIFT_VALUE = 5;
-
- public static final InfixOperator IN_LEFT_SHIFT = new InfixOperator(IN_LEFT_SHIFT_VALUE, "Infix <<"); //$NON-NLS-1$
-
- /**
- * Infix right shift signed ">>"
- */
- public static final int IN_RIGHT_SHIFT_SIGNED_VALUE = 6;
-
- public static final InfixOperator IN_RIGHT_SHIFT_SIGNED = new InfixOperator(IN_RIGHT_SHIFT_SIGNED_VALUE, "Infix >>"); //$NON-NLS-1$
-
- /**
- * Infix right shift unsigned ">>>"
- */
- public static final int IN_RIGHT_SHIFT_UNSIGNED_VALUE = 7;
-
- public static final InfixOperator IN_RIGHT_SHIFT_UNSIGNED = new InfixOperator(IN_RIGHT_SHIFT_UNSIGNED_VALUE, "Infix >>>"); //$NON-NLS-1$
-
- /**
- * Infix less " <"
- */
- public static final int IN_LESS_VALUE = 8;
-
- public static final InfixOperator IN_LESS = new InfixOperator(IN_LESS_VALUE, "Infix <"); //$NON-NLS-1$
-
- /**
- * Infix greater ">"
- */
- public static final int IN_GREATER_VALUE = 9;
-
- public static final InfixOperator IN_GREATER = new InfixOperator(IN_GREATER_VALUE, "Infix >"); //$NON-NLS-1$
-
- /**
- * Infix less than or equals " <="
- */
- public static final int IN_LESS_EQUALS_VALUE = 10;
-
- public static final InfixOperator IN_LESS_EQUALS = new InfixOperator(IN_LESS_EQUALS_VALUE, "Infix <="); //$NON-NLS-1$
-
- /**
- * Infix Greater than or equlas ">="
- */
- public static final int IN_GREATER_EQUALS_VALUE = 11;
-
- public static final InfixOperator IN_GREATER_EQUALS = new InfixOperator(IN_GREATER_EQUALS_VALUE, "Infix >="); //$NON-NLS-1$
-
- /**
- * Infix equals "=="
- */
- public static final int IN_EQUALS_VALUE = 12;
-
- public static final InfixOperator IN_EQUALS = new InfixOperator(IN_EQUALS_VALUE, "Infix =="); //$NON-NLS-1$
-
- /**
- * Infix not equals "!="
- */
- public static final int IN_NOT_EQUALS_VALUE = 13;
-
- public static final InfixOperator IN_NOT_EQUALS = new InfixOperator(IN_NOT_EQUALS_VALUE, "Infix !="); //$NON-NLS-1$
-
- /**
- * Infix exclusive or "^"
- */
- public static final int IN_XOR_VALUE = 14;
-
- public static final InfixOperator IN_XOR = new InfixOperator(IN_XOR_VALUE, "Infix ^"); //$NON-NLS-1$
-
- /**
- * Infix bitwise and "&"
- */
- public static final int IN_AND_VALUE = 15;
-
- public static final InfixOperator IN_AND = new InfixOperator(IN_AND_VALUE, "Infix &"); //$NON-NLS-1$
-
- /**
- * Infix bitwise or "|"
- */
- public static final int IN_OR_VALUE = 16;
-
- public static final InfixOperator IN_OR = new InfixOperator(IN_OR_VALUE, "Infix |"); //$NON-NLS-1$
-
- /**
- * Infix Conditional logical and "&&"
- */
- public static final int IN_CONDITIONAL_AND_VALUE = 17;
-
- public static final InfixOperator IN_CONDITIONAL_AND = new InfixOperator(IN_CONDITIONAL_AND_VALUE, "Infix &&"); //$NON-NLS-1$
-
- /**
- * Infix Conditional logical or "||"
- */
- public static final int IN_CONDITIONAL_OR_VALUE = 18;
-
- public static final InfixOperator IN_CONDITIONAL_OR = new InfixOperator(IN_CONDITIONAL_OR_VALUE, "Ifnix ||"); //$NON-NLS-1$
-
- /**
- * Return the infix operator for the given enum value.
- * @param value
- * @return
- *
- * @since 1.1.0
- */
- public static InfixOperator get(int value) {
- switch (value) {
- case IN_TIMES_VALUE:
- return IN_TIMES;
- case IN_DIVIDE_VALUE:
- return IN_DIVIDE;
- case IN_REMAINDER_VALUE:
- return IN_REMAINDER;
- case IN_PLUS_VALUE:
- return IN_PLUS;
- case IN_MINUS_VALUE:
- return IN_MINUS;
- case IN_LEFT_SHIFT_VALUE:
- return IN_LEFT_SHIFT;
- case IN_RIGHT_SHIFT_SIGNED_VALUE:
- return IN_RIGHT_SHIFT_SIGNED;
- case IN_RIGHT_SHIFT_UNSIGNED_VALUE:
- return IN_RIGHT_SHIFT_UNSIGNED;
- case IN_LESS_VALUE:
- return IN_LESS;
- case IN_GREATER_VALUE:
- return IN_GREATER;
- case IN_LESS_EQUALS_VALUE:
- return IN_LESS_EQUALS;
- case IN_GREATER_EQUALS_VALUE:
- return IN_GREATER_EQUALS;
- case IN_EQUALS_VALUE:
- return IN_EQUALS;
- case IN_NOT_EQUALS_VALUE:
- return IN_NOT_EQUALS;
- case IN_XOR_VALUE:
- return IN_XOR;
- case IN_AND_VALUE:
- return IN_AND;
- case IN_OR_VALUE:
- return IN_OR;
- case IN_CONDITIONAL_AND_VALUE:
- return IN_CONDITIONAL_AND;
- case IN_CONDITIONAL_OR_VALUE:
- return IN_CONDITIONAL_OR;
- }
- return null;
- }
-
- private InfixOperator(int value, String name) {
- super(value, name);
- }
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InitparserTreeMessages.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InitparserTreeMessages.java
deleted file mode 100644
index 69c30b676..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InitparserTreeMessages.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: InitparserTreeMessages.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:07 $
- */
-package org.eclipse.jem.internal.proxy.initParser.tree;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * @author sri
- *
- * TODO To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
-public class InitparserTreeMessages {
-
- private static final String BUNDLE_NAME = "org.eclipse.jem.internal.proxy.initParser.tree.messages";//$NON-NLS-1$
-
- private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
-
- private InitparserTreeMessages() {
- }
-
- public static String getString(String key) {
- // TODO Auto-generated method stub
- try {
- return RESOURCE_BUNDLE.getString(key);
- } catch (MissingResourceException e) {
- return '!' + key + '!';
- }
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalConditionalOperandType.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalConditionalOperandType.java
deleted file mode 100644
index 406a2057d..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalConditionalOperandType.java
+++ /dev/null
@@ -1,70 +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: InternalConditionalOperandType.java,v $
- * $Revision: 1.2 $ $Date: 2005/05/18 23:11:26 $
- */
-package org.eclipse.jem.internal.proxy.initParser.tree;
-
-/**
- * Internal class for the Conditional operand type. Not meant to be used by customers.
- *
- * @since 1.1.0
- */
-public class InternalConditionalOperandType extends AbstractEnum {
-
- /**
- * Used in Conditional processing. False operand on expression stack
- */
- public final static int CONDITIONAL_FALSE_VALUE = 0;
-
- public final static InternalConditionalOperandType CONDITIONAL_FALSE = new InternalConditionalOperandType(CONDITIONAL_FALSE_VALUE,
- "Conditional False Operand Flag"); //$NON-NLS-1$
-
- /**
- * Used in Conditional processing. True operand on expression stack
- */
- public final static int CONDITIONAL_TRUE_VALUE = 1;
-
- public final static InternalConditionalOperandType CONDITIONAL_TRUE = new InternalConditionalOperandType(CONDITIONAL_TRUE_VALUE,
- "Conditional True Operand Flag"); //$NON-NLS-1$
-
- /**
- * Used in Conditional processing. Test operand on expression stack
- */
- public final static int CONDITIONAL_TEST_VALUE = 2;
-
- public final static InternalConditionalOperandType CONDITIONAL_TEST = new InternalConditionalOperandType(CONDITIONAL_TEST_VALUE,
- "Conditional Test Operand Flag"); //$NON-NLS-1$
-
- /**
- * Return the enum for the given value.
- * @param value
- * @return
- *
- * @since 1.1.0
- */
- public static InternalConditionalOperandType get(int value) {
- switch (value) {
- case CONDITIONAL_FALSE_VALUE:
- return CONDITIONAL_FALSE;
- case CONDITIONAL_TRUE_VALUE:
- return CONDITIONAL_TRUE;
- case CONDITIONAL_TEST_VALUE:
- return CONDITIONAL_TEST;
- }
- return null;
- }
-
- private InternalConditionalOperandType(int value, String name) {
- super(value, name);
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalExpressionProxy.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalExpressionProxy.java
deleted file mode 100644
index 1f7d3f605..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalExpressionProxy.java
+++ /dev/null
@@ -1,77 +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: InternalExpressionProxy.java,v $
- * $Revision: 1.2 $ $Date: 2005/08/24 20:39:07 $
- */
-package org.eclipse.jem.internal.proxy.initParser.tree;
-
-
-/**
- * This interface is used for expression proxies in the evaluation side (in {@link org.eclipse.jem.internal.proxy.initParser.tree.ExpressionProcesser}).
- *
- * It is meant to be implemented only by users of the ExpressionProcessor.
- *
- * @since 1.1.0
- */
-public interface InternalExpressionProxy {
-
- /**
- * Get the id of the proxy.
- * @return
- *
- * @since 1.1.0
- */
- public int getProxyID();
-
- /**
- * Called by ExpressionProcesser to give the expression proxy its value and type, i.e. it has been evaluated.
- *
- * The type may not be the actual type of the value, it may be a superclass of it. It is the type that the proxy
- * represents from the return of the expression. For instance it may of returned null but it is supposed to be
- * java.lang.String. Or it is supposed to be a primitive int, since we can't store that, we need to store
- * an Integer value with the type indicating it is Interger.TYPE.
- *
- * @param value
- * @param type
- *
- * @since 1.1.0
- */
- public void setProxy(Object value, Class type);
-
- /**
- * Get the value of the proxy.
- *
- * Note: The value may be a {@link VariableReference}, in which
- * case further dereferencing may be with the returned value.
- * @return the value of the proxy, it may be an ExpressionProcesser.VariableReference.
- *
- * @since 1.1.0
- */
- public Object getValue();
-
- /**
- * Get the type of the proxy.
- * @return
- *
- * @see InternalExpressionProxy#setProxy(Object, Class) for what type means.
- * @since 1.1.0
- */
- public Class getType();
-
- /**
- * Return whether the proxy has had a value/class set into it yet.
- * @return
- * When dereferenced, the value is given (see {@link VariableReference#dereference()}) as
- * the result or it is set with a value and then deferenced (see {@link VariableReference#set(Object, Class)}).
- *
- * The type of the reference is the type stored in the corresponding expressionTypeStack entry. This is the type
- * for assignment, and the type for dereferenced.
- * @since 1.1.0
- */
-public abstract class VariableReference {
-
- /**
- * Dereference the value.
- * @return the dereferenced value. Such as the result of
- * It is not meant to be used by customers. It provides public functions only for access of individual implementations.
- * Customers should only access {@link org.eclipse.jem.internal.proxy.core.ProxyFactoryRegistry}.
- *
- * @since 1.1.0
- */
-public abstract class BaseProxyFactoryRegistry extends ProxyFactoryRegistry {
-
- private final String registryTypeID;
-
- /**
- * Construct with registry type ID. The type id should be provided by
- * each implementation. This will be used to provide specific type
- * registrations through contributions.
- *
- * @param registryTypeID
- *
- * @since 1.1.0
- */
- protected BaseProxyFactoryRegistry(String registryTypeID) {
- super();
- this.registryTypeID = registryTypeID;
- }
-
- /**
- * Return the reqistry type id.
- * @return
- *
- * @since 1.1.0
- */
- public String getRegistryTypeID() {
- return registryTypeID;
- }
-
- /**
- Register the current registered bean proxy factory to be used for creating IBeanProxy instances
- */
- public void registerBeanProxyFactory(IStandardBeanProxyFactory aStandardFactory) {
- fCurrentStandardBeanProxyFactory = aStandardFactory;
- }
-
- /**
- Register a factory to be used for creating IBeanProxy instances
- */
- public void registerBeanProxyFactory(String packageName, IBeanProxyFactory aFactory) {
- fRegisteredExtensionBeanProxyFactories.put(packageName, aFactory);
- }
-
- /**
- Register the current registered bean type proxy factory to be used for creating IBeanTypeProxy instances
- */
- public void registerBeanTypeProxyFactory(IStandardBeanTypeProxyFactory aStandardFactory) {
- fCurrentStandardBeanTypeProxyFactory = aStandardFactory;
- }
-
- /**
- Register a factory to be used for creating IBeanTypeProxy instances
- */
- public void registerBeanTypeProxyFactory(String packageName, IBeanTypeProxyFactory aFactory) {
- fRegisteredExtensionBeanTypeProxyFactories.put(packageName, aFactory);
- }
-
- /**
- * Set the Method Proxy Factory for this VM.
- * Creation date: (3/13/00 10:58:19 AM)
- */
- public void registerMethodProxyFactory(IMethodProxyFactory newMethodProxyFactory) {
- fMethodProxyFactory = newMethodProxyFactory;
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/CollectionBeanProxyWrapper.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/CollectionBeanProxyWrapper.java
deleted file mode 100644
index d2bf9c286..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/CollectionBeanProxyWrapper.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: CollectionBeanProxyWrapper.java,v $
- * $Revision: 1.9 $ $Date: 2005/12/14 21:22:50 $
- */
-
-import org.eclipse.core.runtime.*;
-/**
- * This is a wrapper for an java.util.Collection proxy.
- * It provides the collection methods to interface to
- * the proxy.
- */
-
-public class CollectionBeanProxyWrapper {
- protected final IBeanProxy fCollection;
- protected final JavaStandardBeanProxyConstants fConstants;
-
- /**
- * Construct with the collection.
- */
- public CollectionBeanProxyWrapper(IBeanProxy aCollectionProxy) {
- if (!aCollectionProxy.getTypeProxy().isKindOf(aCollectionProxy.getProxyFactoryRegistry().getBeanTypeProxyFactory().getBeanTypeProxy("java.util.Collection"))) //$NON-NLS-1$
- throw new ClassCastException(java.text.MessageFormat.format(ProxyMessages.ClassCast_EXC__IncorrectType, new Object[] {aCollectionProxy.getTypeProxy().getTypeName(), "java.util.Collection"})); //$NON-NLS-1$
- else
- fCollection = aCollectionProxy;
-
- fConstants = JavaStandardBeanProxyConstants.getConstants(aCollectionProxy.getProxyFactoryRegistry());
- }
-
- /**
- * Answer the collection proxy that this is wrappering.
- */
- public IBeanProxy getBeanProxy() {
- return fCollection;
- }
-
- /**
- * equals - Pass it on to the proxy to handle this.
- */
- public boolean equals(Object object) {
- return fCollection.equals(object);
- }
-
- /**
- * hashCode - Pass it on to the proxy to handle this.
- */
- public int hashCode() {
- return fCollection.hashCode();
- }
-
- /**
- * Collection accessors
- */
- public boolean add(IBeanProxy object) throws ThrowableProxy {
- return ((IBooleanBeanProxy) fConstants.getCollectionAdd().invoke(fCollection, object)).booleanValue();
- }
- public boolean addAll(IBeanProxy collection) throws ThrowableProxy {
- return ((IBooleanBeanProxy) fConstants.getCollectionAddAll().invoke(fCollection, collection)).booleanValue();
- }
- public void clear() throws ThrowableProxy {
- fConstants.getCollectionClear().invoke(fCollection);
- }
- public boolean contains(IBeanProxy object) {
- try {
- return ((IBooleanBeanProxy) fConstants.getCollectionContains().invoke(fCollection, object)).booleanValue();
- } catch (ThrowableProxy e) {
- // This shouldn't occur, so just log it.
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.ERROR, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, ProxyMessages.UnexpectedException_EXC_, e));
- return false;
- }
- }
- public boolean containsAll(IBeanProxy collection) {
- try {
- return ((IBooleanBeanProxy) fConstants.getCollectionContainsAll().invoke(fCollection, collection)).booleanValue();
- } catch (ThrowableProxy e) {
- // This shouldn't occur, so just log it.
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.ERROR, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, ProxyMessages.UnexpectedException_EXC_, e));
- return false;
- }
- }
- public boolean isEmpty() {
- try {
- return ((IBooleanBeanProxy) fConstants.getCollectionIsEmpty().invoke(fCollection)).booleanValue();
- } catch (ThrowableProxy e) {
- // This shouldn't occur, so just log it.
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.ERROR, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, ProxyMessages.UnexpectedException_EXC_, e));
- return true;
- }
- }
- public IteratorBeanProxyWrapper iterator() {
- try {
- IBeanProxy itr = fConstants.getCollectionIterator().invoke(fCollection);
- if (itr != null)
- return new IteratorBeanProxyWrapper(itr);
- else
- return null;
- } catch (ThrowableProxy e) {
- // This shouldn't occur, so just log it.
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.ERROR, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, ProxyMessages.UnexpectedException_EXC_, e));
- return null;
- }
- }
- public boolean remove(IBeanProxy object) throws ThrowableProxy {
- return ((IBooleanBeanProxy) fConstants.getCollectionRemove().invoke(fCollection, object)).booleanValue();
- }
- public boolean removeAll(IBeanProxy collection) throws ThrowableProxy {
- return ((IBooleanBeanProxy) fConstants.getCollectionRemoveAll().invoke(fCollection, collection)).booleanValue();
- }
- public boolean retainAll(IBeanProxy collection) throws ThrowableProxy {
- return ((IBooleanBeanProxy) fConstants.getCollectionRetainAll().invoke(fCollection, collection)).booleanValue();
- }
- public int size() {
- try {
- return ((IIntegerBeanProxy) fConstants.getCollectionSize().invoke(fCollection)).intValue();
- } catch (ThrowableProxy e) {
- // This shouldn't occur, so just log it.
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.ERROR, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, ProxyMessages.UnexpectedException_EXC_, e));
- return 0;
- }
- }
- public IArrayBeanProxy toArray() throws ThrowableProxy {
- return (IArrayBeanProxy) fConstants.getCollectionToArray().invoke(fCollection);
- }
- public IArrayBeanProxy toArray(IArrayBeanProxy array) throws ThrowableProxy {
- return (IArrayBeanProxy) fConstants.getCollectionToArrayWithArray().invoke(fCollection, array);
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ConfigurationContributorAdapter.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ConfigurationContributorAdapter.java
deleted file mode 100644
index be242da4a..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ConfigurationContributorAdapter.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: ConfigurationContributorAdapter.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:05 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-
-/**
- * This is an implementation of IConfigurationContributor that does nothing. It
- * can be subclassed to provide specific overrides.
- * @since 1.0.0
- */
-public class ConfigurationContributorAdapter implements IConfigurationContributor {
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributor#initialize(org.eclipse.jem.internal.proxy.core.IConfigurationContributionInfo)
- */
- public void initialize(IConfigurationContributionInfo info) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributor#contributeClasspaths(org.eclipse.jem.internal.proxy.core.IConfigurationContributionController)
- */
- public void contributeClasspaths(IConfigurationContributionController controller) throws CoreException {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributor#contributeToConfiguration(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
- */
- public void contributeToConfiguration(ILaunchConfigurationWorkingCopy config) throws CoreException {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributor#contributeToRegistry(org.eclipse.jem.internal.proxy.core.ProxyFactoryRegistry)
- */
- public void contributeToRegistry(ProxyFactoryRegistry registry) {
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ContainerPathContributionMapping.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ContainerPathContributionMapping.java
deleted file mode 100644
index 1f4ca36cc..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ContainerPathContributionMapping.java
+++ /dev/null
@@ -1,196 +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
- *******************************************************************************/
-package org.eclipse.jem.internal.proxy.core;
-
-import java.lang.reflect.Array;
-import java.util.*;
-import java.util.regex.Pattern;
-
-
-/**
- * Mapping of container paths (Regular expressions) to configuration elements.
- *
- * It can be instantiated by clients that need to built up a subset of the mapping from the
- * normal mapping done by {@link ProxyPlugin#getPluginExtensions(String)}.
- *
- * To build one up separately clients would:
- *
- * Normally it would be better to use {@link ContainerPathContributionMapping#getContributors(String, String[])}
- * to get all of the contributors for all of the paths of the same container id.
- *
- * @since 1.2.0
- */
- public static class ContainerContributionEntry {
-
- private final Object contribution;
- private final Pattern containerPathPattern;
-
- public ContainerContributionEntry(Object contribution, Pattern containerPathPattern) {
- this.contribution = contribution;
- this.containerPathPattern = containerPathPattern;
- }
-
-
- /**
- * @return Returns the contribution.
- *
- * @since 1.2.0
- */
- public final Object getContribution() {
- return contribution;
- }
-
-
- /**
- * @return Returns the container pattern for matching.
- *
- * @since 1.2.0
- */
- public final Pattern getContainerPathPattern() {
- return containerPathPattern;
- }
- }
-
-
- /**
- * Map of container ids (String, first segment of container path) to {@link ContainerContributionEntry[]}.
- *
- * Normally it would be better to use {@link #getContributors(String, String[])}
- * to get all of the contributors for all of the paths of the same container id.
- *
- * @since 1.2.0
- */
- public Map containerIdToContributions = Collections.EMPTY_MAP;
-
- // TODO When 1.5, this can go away.
- private final Class contributionType;
-
- /**
- * Create with contribution type (i.e. the array type returned from {@link #getContributors(String, String[])}.
- *
- * TODO This will go away with 1.5 because this will be templated.
- *
- * @param type
- *
- *
- * @since 1.2.0
- */
- public ContainerPathContributionMapping(Class type) {
- contributionType = type;
- }
-
-
- /**
- * Get the unique array of configuration elements (no duplicates) for the given container id, and
- * the set of container paths for that container id. For example, "SWT_CONTAINER" as containerID and
- * {"/SWT_CONTAINER/", "/SWT_CONTAINER/PDE/JFACE"} for container paths. This will then return configuration elements
- * that match these two paths in the container attribute of the configuration element. The container attribute
- * is a regular expression. For example "SWT_CONTAINER" will match both "/SWT_CONTAINER/" and "/SWT_CONTAINER/PDE/JFACE"
- * while "SWT_CONTAINER/.* /JFACE" will match "/SWT_CONTAINER/PDE/JFACE". (Note it is actually no space between the "*" and "/" but java comment syntax won't allow it.)
- * @param containerId id of all the containers in the list of paths (the first segment of all of the paths).
- * @param containerPaths array of all of the paths to look for contributions for.
- * @return array of configuration elements for the given list of paths. They will be in order declared within a plugin within plugin order.
- *
- * @since 1.2.0
- */
- public Object[] getContributors(String containerId, String[] containerPaths) {
- ContainerContributionEntry[] bundleContributions = (ContainerContributionEntry[]) containerIdToContributions.get(containerId);
- if (bundleContributions == null)
- return (Object[]) Array.newInstance(contributionType, 0);
- List contributions = new ArrayList();
- // Patterns that have been tested. Key is a pattern, value is Boolean. true if this pattern matched any of the container paths.
- // This way a pattern will only be tested once for the list of paths. If the pattern is found the list again we will know if it
- // should be selected or not.
- // The bundleContributions are in order declared within each plugin within plugin order.
- Map testedPatterns = new HashMap();
- for (int i = 0; i < bundleContributions.length; i++) {
- Boolean tested = (Boolean) testedPatterns.get(bundleContributions[i].getContainerPathPattern());
- if (tested == null) {
- // Need to test it.
- // Run through container paths and see if any match.
- tested = Boolean.FALSE;
- Pattern pattern = bundleContributions[i].getContainerPathPattern();
- for (int j = 0; j < containerPaths.length; j++) {
- if (pattern.matcher(containerPaths[j]).matches()) {
- tested = Boolean.TRUE;
- break;
- }
- }
- testedPatterns.put(pattern, tested);
- }
- if (tested.booleanValue())
- contributions.add(bundleContributions[i].getContribution());
- }
- return contributions.toArray((Object[]) Array.newInstance(contributionType, contributions.size()));
- }
-
- /**
- * Add contribution to mapping. This is not normally needed by clients unless the client needs to
- * build up a different container path mapping than the one normally created by {@link ProxyPlugin#processContributionExtensionPoint(String)}.
- *
- * After all contributions have been added {@link #finalizeMapping()} must be called. If this
- * is not called then {@link #getContributors(String, String[])} will fail with exceptions.
-
- * @param containerId
- * @param pattern
- * @param contribution
- *
- * @since 1.2.0
- */
- public void addContribution(String containerId, Pattern pattern, Object contribution) {
- if (containerIdToContributions == Collections.EMPTY_MAP)
- containerIdToContributions = new HashMap(); // This is first call to add something.
- // We will build as list, but then change to array when done.
- Object contributions = containerIdToContributions.get(containerId);
- if (contributions == null) {
- contributions = new ArrayList(1);
- containerIdToContributions.put(containerId, contributions);
- } else if (!(contributions instanceof List)) {
- // It must be an array, so convert back to list so that we can add to it.
- List oldContributions = Arrays.asList((Object[]) contribution);
- contributions = new ArrayList(oldContributions.size());
- ((List) contributions).addAll(oldContributions);
- containerIdToContributions.put(containerId, contributions);
- }
- ((List) contributions).add(new ContainerContributionEntry(contribution, pattern));
-
- }
-
- /**
- * Finalize the mapping. This is called when clients are done with all {@link #addContribution(String)}.
- * It takes the mapping from an internal format that allowed for quicker building into the final format.
- *
- *
- * @since 1.2.0
- */
- public void finalizeMapping() {
- for (Iterator iter = containerIdToContributions.entrySet().iterator(); iter.hasNext();) {
- Map.Entry entry = (Map.Entry) iter.next();
- if (entry.getValue() instanceof List)
- entry.setValue(((List) entry.getValue()).toArray(new ContainerContributionEntry[((List) entry.getValue()).size()]));
- }
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ContributorExtensionPointInfo.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ContributorExtensionPointInfo.java
deleted file mode 100644
index 61839e0a7..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ContributorExtensionPointInfo.java
+++ /dev/null
@@ -1,42 +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
- *******************************************************************************/
-package org.eclipse.jem.internal.proxy.core;
-
-import java.util.Map;
-
-
-/**
- * Result from {@link ProxyPlugin#processContributionExtensionPoint(String)}
- *
- * @since 1.0.0
- */
-public class ContributorExtensionPointInfo {
-
- /**
- * Contributions that are based upon container paths that are built up from
- * the extension point.
- *
- * @since 1.2.0
- */
- public ContainerPathContributionMapping containerPathContributions;
-
- ContributorExtensionPointInfo() {
- // Not meant to be instantiated or subclassed outside of ProxyPlugin.
- }
-
- /**
- * Map of plugin ids (String) to contributions (IConfigurationElement[]) that was found with that id. For each plugin,
- * the contributions will be listed in plugin prereq order.
- */
- public Map pluginToContributions;
-
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/EnumerationBeanProxyWrapper.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/EnumerationBeanProxyWrapper.java
deleted file mode 100644
index 169da106c..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/EnumerationBeanProxyWrapper.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: EnumerationBeanProxyWrapper.java,v $
- * $Revision: 1.10 $ $Date: 2005/08/24 20:39:05 $
- */
-
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-/**
- * This is a wrapper for an java.util.Enumeration proxy.
- * It provides the Enumeration methods to interface to
- * the proxy.
- */
-
-public class EnumerationBeanProxyWrapper {
- protected final IBeanProxy fEnumeration;
- protected final JavaStandardBeanProxyConstants fConstants;
-
- /**
- * Construct with the collection.
- */
- public EnumerationBeanProxyWrapper(IBeanProxy anEnumerationProxy) {
-
- fEnumeration = anEnumerationProxy;
-
- fConstants = JavaStandardBeanProxyConstants.getConstants(anEnumerationProxy.getProxyFactoryRegistry());
- }
-
- /**
- * Answer the iterator proxy that this is wrappering.
- */
- public IBeanProxy getBeanProxy() {
- return fEnumeration;
- }
-
- /**
- * equals - Pass it on to the proxy to handle this.
- */
- public boolean equals(Object object) {
- return fEnumeration.equals(object);
- }
-
- /**
- * hashCode - Pass it on to the proxy to handle this.
- */
- public int hashCode() {
- return fEnumeration.hashCode();
- }
-
- /**
- * Enumeration accessors
- */
- public boolean hasMoreElements() {
- try {
- return ((IBooleanBeanProxy) fConstants.getEnumerationHasMoreElements().invoke(fEnumeration)).booleanValue();
- } catch (ThrowableProxy e) {
- // This shouldn't occur, so just log it.
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.ERROR, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, ProxyMessages.UnexpectedException_EXC_, e));
- return false;
- }
- }
- public IBeanProxy nextElement() throws ThrowableProxy {
- return fConstants.getEnumerationNextElement().invoke(fEnumeration);
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/Expression.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/Expression.java
deleted file mode 100644
index 2ab151187..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/Expression.java
+++ /dev/null
@@ -1,2546 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: Expression.java,v $
- * $Revision: 1.15 $ $Date: 2005/11/11 15:49:30 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-import java.text.MessageFormat;
-import java.util.*;
-
-import org.eclipse.jem.internal.proxy.initParser.tree.*;
-
-/**
- * This is implementation of IExpression. It encapsulates much of the processing required
- * into a common form that will be turned into simple push/pop/evaluate type of interaction with the
- * actual other side. All registry specific implementations of IExpression must subclass this class.
- *
- * It will maintain a stack of the expressions. As the expressions come in they will be stacked if not
- * able to be executed immediately. The expressions come to this class in an outside to inside order,
- * but they need to be processed in an inside-out order instead.
- *
- * Subclasses will be used for the different types of proxy interfaces. The abstract methods will
- * then be the simple interface.
- *
- * It is not meant for subclasses to override the actual create expression methods because the processing the stack
- * is very sensitive and must execute in the proper sequence. So the create methods are final for this reason.
- *
- * This class is not thread-safe.
- *
- * This class also has API of its own and can be used by customers for advanced usage. Those advanced API are
- * listed on each method as to whether it is customer API or implementers API (i.e. API for implementers of
- * expression subclasses to use).
- *
- *
- * @since 1.0.0
- */
-public abstract class Expression implements IExpression {
-
- /*
- * We have stack here, but rather than create a class that does the
- * stack protocol, will simply have some private methods to do
- * the same thing for the stack. (Note: Can't use java.util.Stack
- * because that is a synchronized class, and don't want the overhead).
- *
- * The purpose of the stack is to stack up expressions that have not yet
- * been evaluated.
- *
- * Each expression type will control the content of what it pushes and pops.
- * The expression type will be the last thing it pushes so that on popping
- * we know what kind of expression is now completed and ready for evaluation.
- */
- private ArrayList controlStack = new ArrayList(30);
-
- protected final ProxyFactoryRegistry registry;
- protected final IStandardBeanProxyFactory beanProxyFactory;
- protected Boolean traceFlag;
-
- /**
- * Answer whether trace has been explicitly set.
- * This is not in the IExpression interface because it is for advanced users.
- * @return
- *
- * @since 1.1.0
- */
- public boolean isTraceSet() {
- return traceFlag != null;
- }
-
- /**
- * Answer if trace is on. If not explicitly set this will answer false.
- * Use {@link Expression#isTraceSet()} first to determine if this
- * should be called or not.
- * This is not in the IExpression interface because it is for advanced users.
- * @return
- *
- * @since 1.1.0
- */
- public boolean isTrace() {
- return traceFlag != null ? traceFlag.booleanValue() : false;
- }
-
- /**
- * Explicitly set the trace flag. This will only be honoured before any
- * expressions have been created. After that this will be ignored.
- * The trace is initially set to use default. Once set it cannot be unset.
- * This is not in the IExpression interface because it is for advanced users.
- * @param trace
- *
- * @since 1.1.0
- */
- public void setTrace(boolean trace) {
- traceFlag = Boolean.valueOf(trace);
- }
-
- /**
- * Push an object onto the control stack.
- *
- * @param o
- *
- * @since 1.0.0
- */
- protected final void push(Object o) {
- controlStack.add(o);
- }
-
- /**
- * Pop an object off of the control stack
- * @return
- *
- * @since 1.0.0
- */
- protected final Object pop() {
- return controlStack.remove(controlStack.size()-1);
- }
-
- /**
- * Peek at an object from the control stack.
- * This is for "block" expressions. We don't want to pop down the stack passed the ROOTEXPRESSION
- * that got added by the create block until we get an end block. That allows root expressions to
- * be added to the block without the stack popping up past the block start in the stack.
- *
- * @param forExpression
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- protected final void checkForExpression(ForExpression forExpression) throws IllegalStateException {
- if (expressionValid) {
- if (nextForExpressionStackPos == -1)
- if (forExpression == ForExpression.ROOTEXPRESSION)
- return; // valid. We are at the root (i.e. nothing is waiting).
- else
- ; // invalid. drop through
- else if (nextForExpressionStack[nextForExpressionStackPos] == forExpression) {
- // Valid, either the root expression matched (We don't implicitly pop those. That needs to be done explicitly).
- // Or we matched non-root, those will be popped.
- if (forExpression != ForExpression.ROOTEXPRESSION) {
- popForExpression(); // Pop the stack since stack not a root expression.
- }
- return;
- }
- } else {
- String expMsg = invalidMsg != null ? MessageFormat.format(ProxyMessages.Expression_InInvalidStateDueTo_EXC_, new Object[] {invalidMsg}) : ProxyMessages.Expression_InInvalidState_EXC_;
- throw new IllegalStateException(expMsg);
- }
-
- // If we got here, then invalid.
- ForExpression expected = nextForExpressionStackPos >= 0 ? nextForExpressionStack[nextForExpressionStackPos] : ForExpression.ROOTEXPRESSION;
- expressionValid = false;
- throw new IllegalStateException(MessageFormat.format(ProxyMessages.Expression_TypeSentInInvalidOrder_EXC_, new Object[] {forExpression, expected}));
- }
-
- /**
- * Pop the top for expression, whatever it is.
- * @throws IllegalStateException thrown if try to pop through through the current mark entry. The endMark is the only one who can do this.
- * @since 1.1.0
- */
- protected final void popForExpression() throws IllegalStateException {
- if (expressionValid && nextForExpressionStackPos >= 0) {
- nextForExpressionStackPos--;
- if (currentMarkEntry != null && nextForExpressionStackPos < currentMarkEntry.nextExpressionStackPos) {
- nextForExpressionStackPos++; // Restore to what it was
- throwInvalidMarkNesting();
- }
- }
- }
-
- /*
- * @throws IllegalStateException
- *
- * @since 1.1.0
- */
- private void throwInvalidMarkNesting() throws IllegalStateException {
- expressionValid = false;
- throw new IllegalStateException(MessageFormat.format(ProxyMessages.Expression_InvalidMarkNesting, new Object[] {new Integer(currentMarkEntry != null ? currentMarkEntry.markID : 0)}));
- }
-
- /**
- * Peek into the for expression stack to see if the top entry is the passed in value. It will
- * not pop the stack nor throw any exceptions.
- *
- * @param forExpression The top expression flag will be compared against this value.
- * @return
- * Overrides must return
- * This is not customer advanced API. This API for the implementers of registries and expression subclasses.
- *
- * @param forExpression
- * @param initializationString
- * @param type
- * @throws IllegalStateException
- * @throws IllegalArgumentException
- *
- * @since 1.1.0
- */
- public final void createNewInstance(ForExpression forExpression, String initializationString, IProxyBeanType type) throws IllegalStateException, IllegalArgumentException{
- try {
- checkForExpression(forExpression);
- validateProxy(type);
- pushNewInstanceToProxy(initializationString, type);
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createNull(int)
- */
- public final void createNull(ForExpression forExpression) throws IllegalStateException {
- try {
- checkForExpression(forExpression);
- pushToProxy(null);
- processExpression(); // See if previous expression is ready for processing.
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createTypeLiteral(int, java.lang.String)
- */
- public final void createTypeLiteral(ForExpression forExpression, String type) throws IllegalStateException {
- createProxyExpression(forExpression, getProxyBeanType(type));
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createTypeReceiver(java.lang.String)
- */
- public final void createTypeReceiver(String type) throws IllegalStateException {
- pushTypeReceiver(getProxyBeanType(type));
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createTypeReceiver(org.eclipse.jem.internal.proxy.core.IProxyBeanType)
- */
- public final void createTypeReceiver(IProxyBeanType type) throws IllegalStateException, IllegalArgumentException {
- validateProxy(type);
- pushTypeReceiver(type);
- }
-
- /*
- * Push for a type receiver.
- * @param type
- *
- * @since 1.0.0
- */
- private void pushTypeReceiver(IProxyBeanType type) throws IllegalStateException {
- try {
- // This is special because type receivers are only valid as the receiver for a field access or a method access.
- // Since each has a different forExpression we need to test for one or the other. It doesn't make any difference
- // which one it is, but it must be one or the other.
- if (peekForExpression(ForExpression.FIELD_RECEIVER))
- checkForExpression(ForExpression.FIELD_RECEIVER);
- else
- checkForExpression(ForExpression.METHOD_RECEIVER);
-
- pushTypeReceiverToProxy(type);
- processExpression(); // See if previous expression is ready for processing.
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /*
- * For all of the primitive types we will be creating a IBeanProxy for them. That is because that
- * would be the expected result of the expression, and no need to get the other side involved.
- */
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createPrimitiveLiteral(int, boolean)
- */
- public final void createPrimitiveLiteral(ForExpression forExpression, boolean value) throws IllegalStateException {
- try {
- checkForExpression(forExpression);
- pushToProxy(beanProxyFactory.createBeanProxyWith(value));
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createPrimitiveLiteral(int, char)
- */
- public final void createPrimitiveLiteral(ForExpression forExpression, char value) throws IllegalStateException {
- try {
- checkForExpression(forExpression);
- pushToProxy(beanProxyFactory.createBeanProxyWith(value));
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createPrimitiveLiteral(int, byte)
- */
- public final void createPrimitiveLiteral(ForExpression forExpression, byte value) throws IllegalStateException {
- try {
- checkForExpression(forExpression);
- pushToProxy(beanProxyFactory.createBeanProxyWith(value));
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createPrimitiveLiteral(int, double)
- */
- public final void createPrimitiveLiteral(ForExpression forExpression, double value) throws IllegalStateException {
- try {
- checkForExpression(forExpression);
- pushToProxy(beanProxyFactory.createBeanProxyWith(value));
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createPrimitiveLiteral(int, float)
- */
- public final void createPrimitiveLiteral(ForExpression forExpression, float value) throws IllegalStateException {
- try {
- checkForExpression(forExpression);
- pushToProxy(beanProxyFactory.createBeanProxyWith(value));
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createPrimitiveLiteral(int, int)
- */
- public final void createPrimitiveLiteral(ForExpression forExpression, int value) throws IllegalStateException {
- try {
- checkForExpression(forExpression);
- pushToProxy(beanProxyFactory.createBeanProxyWith(value));
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createPrimitiveLiteral(int, long)
- */
- public final void createPrimitiveLiteral(ForExpression forExpression, long value) throws IllegalStateException {
- try {
- checkForExpression(forExpression);
- pushToProxy(beanProxyFactory.createBeanProxyWith(value));
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createPrimitiveLiteral(int, short)
- */
- public final void createPrimitiveLiteral(ForExpression forExpression, short value) throws IllegalStateException {
- try {
- checkForExpression(forExpression);
- pushToProxy(beanProxyFactory.createBeanProxyWith(value));
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createStringLiteral(int, java.lang.String)
- */
- public final void createStringLiteral(ForExpression forExpression, String value) throws IllegalStateException {
- try {
- checkForExpression(forExpression);
- pushToProxy(beanProxyFactory.createBeanProxyWith(value));
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createProxyExpression(int, org.eclipse.jem.internal.proxy.core.IProxy)
- */
- public final void createProxyExpression(ForExpression forExpression, IProxy proxy) throws IllegalStateException, IllegalArgumentException {
- try {
- checkForExpression(forExpression);
- validateProxy(proxy);
- pushToProxy(proxy);
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createAssignmentExpression(int)
- */
- public final void createAssignmentExpression(ForExpression forExpression) throws IllegalStateException {
- try {
- checkForExpression(forExpression);
- push(InternalExpressionTypes.ASSIGNMENT_EXPRESSION);
-
- pushForExpression(PROCESS_EXPRESSION);
- pushForExpression(ForExpression.ASSIGNMENT_RIGHT);
- pushForExpression(ForExpression.ASSIGNMENT_LEFT);
- processExpression(); // See if previous expression is ready for processing.
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createAssignmentExpression(int)
- */
- public final ExpressionProxy createProxyAssignmentExpression(ForExpression forExpression) throws IllegalStateException {
- try {
- checkForExpression(forExpression);
- ExpressionProxy proxy = allocateExpressionProxy(NORMAL_EXPRESSION_PROXY);
- push(proxy);
- push(InternalExpressionTypes.ASSIGNMENT_PROXY_EXPRESSION);
-
- pushForExpression(PROCESS_EXPRESSION);
- pushForExpression(ForExpression.ASSIGNMENT_RIGHT);
- processExpression(); // See if previous expression is ready for processing.
- return proxy;
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /**
- * Called by registries to create an expression proxy for a bean type. It is not in the interface because it should
- * only be called by the proxy registry to create an expression proxy. It shouldn't be called outside of the registries
- * because there may already exist in the registry the true IBeanTypeProxy, and that one should be used instead.
- *
- * This is not customer advanced API. This API for the implementers of registries and expression subclasses.
- *
- * @param typeName
- * @return expression proxy that is hooked up and will notify when resolved. It can be called at any time. The resolution will occur at this point in the
- * execution stack, but since it will not interfere with the stack this is OK, other than it could throw a ClassNotFoundException on the
- * execution.
- *
- * @since 1.1.0
- */
- public final IProxyBeanType createBeanTypeExpressionProxy(String typeName) {
- IBeanTypeExpressionProxy proxy = (IBeanTypeExpressionProxy) allocateExpressionProxy(BEANTYPE_EXPRESSION_PROXY);
- proxy.setTypeName(typeName);
- // This can be sent at any time. It doesn't matter what is on the expression stack. It will be sent to be resolved immediately.
- pushBeanTypeToProxy(proxy);
- return proxy;
- }
-
- /**
- * Called by registries to create an expression proxy for a method. It is not in the interface because it should
- * only be called by the proxy registry to create an expression proxy. It shouldn't be called outside of the registries
- * because there may already exist in the registry the true IMethodProxy, and that one should be used instead.
- *
- * This is not customer advanced API. This API for the implementers of registries and expression subclasses.
- *
- * @param declaringType
- * @param methodName
- * @param parameterTypes parameter types or
- * This is not customer advanced API. This API for the implementers of registries and expression subclasses.
- *
- * @param declaringType
- * @param fieldName
- * @return
- *
- * @throws IllegalArgumentException
- * @since 1.1.0
- */
- public final IProxyField createFieldExpressionProxy(IProxyBeanType declaringType, String fieldName) throws IllegalArgumentException {
- validateProxy(declaringType);
- ExpressionProxy proxy = allocateExpressionProxy(FIELD_EXPRESSION_PROXY);
- // This can be sent at any time. It doesn't matter what is on the expression stack. It will be sent to be resolved immediately.
- pushFieldToProxy(proxy, declaringType, fieldName);
- return (IProxyField) proxy;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createProxyReassignmentExpression(org.eclipse.jem.internal.proxy.initParser.tree.ForExpression, org.eclipse.jem.internal.proxy.core.ExpressionProxy)
- */
- public final void createProxyReassignmentExpression(ForExpression forExpression, ExpressionProxy proxy) throws IllegalStateException, IllegalArgumentException {
- try {
- checkForExpression(forExpression);
- if (!proxy.isValidForReassignment())
- throw new IllegalArgumentException(MessageFormat.format(ProxyMessages.Expression_CreateProxyReassignmentExpression_InvalidForReassignment_EXC_, new Object[]{proxy.toString()}));
- push(proxy);
- push(InternalExpressionTypes.ASSIGNMENT_PROXY_EXPRESSION);
-
- pushForExpression(PROCESS_EXPRESSION);
- pushForExpression(ForExpression.ASSIGNMENT_RIGHT);
- processExpression(); // See if previous expression is ready for processing.
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- protected static final int NORMAL_EXPRESSION_PROXY = 0;
- protected static final int BEANTYPE_EXPRESSION_PROXY = 1;
- protected static final int METHOD_EXPRESSION_PROXY = 2;
- protected static final int FIELD_EXPRESSION_PROXY = 3;
- /**
- * Allocate a new ExpressionProxy
- * @return new ExpressionProxy.
- *
- * @since 1.1.0
- */
- protected final ExpressionProxy allocateExpressionProxy(int proxyType) {
- if (expressionProxies == null)
- expressionProxies = new ArrayList();
- // It is very important that this always creates a proxy id that is greater than all previous. This is
- // so that it can be assured that proxies will be resolved in order of creation.
- // Currently this is done here by using expressionProxies.size().
- ExpressionProxy proxy = createExpressionProxy(proxyType, expressionProxies.size());
- expressionProxies.add(proxy);
- return proxy;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createFieldAccess(org.eclipse.jem.internal.proxy.initParser.tree.ForExpression, org.eclipse.jem.internal.proxy.core.IProxyField, boolean)
- */
- public final void createFieldAccess(ForExpression forExpression, IProxyField fieldProxy, boolean hasReceiver) throws IllegalStateException, IllegalArgumentException {
- validateProxy(fieldProxy);
- pushFieldAccess(forExpression, fieldProxy, hasReceiver);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createMethodInvocation(org.eclipse.jem.internal.proxy.initParser.tree.ForExpression, org.eclipse.jem.internal.proxy.core.IProxyMethod, boolean, int)
- */
- public final void createMethodInvocation(ForExpression forExpression, IProxyMethod methodProxy, boolean hasReceiver, int argumentCount) throws IllegalArgumentException,
- IllegalStateException {
- validateProxy(methodProxy);
- pushMethodInvocation(forExpression, methodProxy, hasReceiver, argumentCount);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createSimpleFieldAccess(org.eclipse.jem.internal.proxy.core.IProxyField, org.eclipse.jem.internal.proxy.core.IProxy)
- */
- public final ExpressionProxy createSimpleFieldAccess(IProxyField field, IProxy receiver) throws IllegalStateException, IllegalArgumentException {
- validateProxy(field);
- validateProxy(receiver);
- ExpressionProxy result = createProxyAssignmentExpression(ForExpression.ROOTEXPRESSION);
- createFieldAccess(ForExpression.ASSIGNMENT_RIGHT, field, receiver != null);
- if (receiver != null)
- createProxyExpression(ForExpression.FIELD_RECEIVER, receiver);
- return result;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createSimpleFieldSet(org.eclipse.jem.internal.proxy.core.IProxyField, org.eclipse.jem.internal.proxy.core.IProxy, org.eclipse.jem.internal.proxy.core.IProxy, boolean)
- */
- public final ExpressionProxy createSimpleFieldSet(IProxyField field, IProxy receiver, IProxy value, boolean wantResult) throws IllegalStateException, IllegalArgumentException {
- validateProxy(field);
- validateProxy(receiver);
- ExpressionProxy result = null;
- ForExpression forExpression = ForExpression.ROOTEXPRESSION;
- if (wantResult) {
- result = createProxyAssignmentExpression(forExpression);
- forExpression = ForExpression.ASSIGNMENT_RIGHT;
- }
- createAssignmentExpression(forExpression);
- createFieldAccess(ForExpression.ASSIGNMENT_LEFT, field, receiver != null);
- if (receiver != null)
- createProxyExpression(ForExpression.FIELD_RECEIVER, receiver);
- createProxyExpression(ForExpression.ASSIGNMENT_RIGHT, value);
- return result;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createSimpleMethodInvoke(org.eclipse.jem.internal.proxy.core.IMethodProxy, org.eclipse.jem.internal.proxy.core.IProxy, org.eclipse.jem.internal.proxy.core.IProxy[], boolean)
- */
- public final ExpressionProxy createSimpleMethodInvoke(IProxyMethod method, IProxy receiver, IProxy[] arguments, boolean wantResult)
- throws IllegalStateException, IllegalArgumentException {
- validateProxy(method);
- validateProxy(receiver);
- if (arguments != null && arguments.length > 0) {
- for (int i = 0; i < arguments.length; i++) {
- validateProxy(arguments[i]);
- }
- }
- ForExpression nextExpression = ForExpression.ROOTEXPRESSION;
- ExpressionProxy result = null;
- if (wantResult) {
- result = createProxyAssignmentExpression(nextExpression);
- nextExpression = ForExpression.ASSIGNMENT_RIGHT;
- }
- createMethodInvocation(nextExpression, method, receiver != null, arguments != null ? arguments.length : 0);
- if (receiver != null)
- createProxyExpression(ForExpression.METHOD_RECEIVER, receiver);
- if (arguments != null) {
- for (int i = 0; i < arguments.length; i++) {
- createProxyExpression(ForExpression.METHOD_ARGUMENT, arguments[i]);
- }
- }
- return result;
- }
-
- private int subexpressionNumber = -1; // Current subexpression number. This is always incrementing.
-
- public void createSubexpression() throws IllegalStateException {
- try {
- // Subexpressions are special, they can be anywhere.
- pushForExpression(PROCESS_EXPRESSION);
- pushForExpression(SUBEXPRESSIONEND_EXPRESSION);
- pushForExpression(ForExpression.ROOTEXPRESSION);
-
- pushSubexpressionBeginToProxy(++subexpressionNumber);
- push(new Integer(subexpressionNumber));
- push(InternalExpressionTypes.SUBEXPRESSION_END_EXPRESSION);
- processExpression();
- return;
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- public void createSubexpressionEnd() throws IllegalStateException {
- try {
- checkForExpression(ForExpression.ROOTEXPRESSION);
- popForExpression(); // Remove the root expression since block is done.
- checkForExpression(SUBEXPRESSIONEND_EXPRESSION); // This needs to be next for it to be valid.
- processExpression(); // Now let it handle the previously pushed end subexpression, containing the subexpression number being ended.
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
-
- private int tryNumber = -1; // Current try number. This is always incrementing.
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createTry()
- */
- public final void createTry() throws IllegalStateException {
- try {
- checkForExpression(ForExpression.ROOTEXPRESSION);
- pushForExpression(PROCESS_EXPRESSION); // Set up so that when reached we can process the TRY_END that we've pushed data for later in this method.
- pushForExpression(TRYEND_EXPRESSION); // Must get a try end before we can process it.
- pushForExpression(TRYCATCH_EXPRESSION); // Must get a catch/finally clause (or try end, which knows how to handle this).
- pushForExpression(ForExpression.ROOTEXPRESSION); // Expecting root expressions for the try clause.
-
- pushTryBeginToProxy(++tryNumber);
- push(new Integer(tryNumber));
- push(InternalExpressionTypes.TRY_END_EXPRESSION);
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createTryCatchClause(org.eclipse.jem.internal.proxy.core.IProxyBeanType, boolean)
- */
- public final ExpressionProxy createTryCatchClause(IProxyBeanType exceptionType, boolean wantExceptionReturned)
- throws IllegalStateException, IllegalArgumentException {
- validateProxy(exceptionType);
- return pushTryCatch(exceptionType, wantExceptionReturned);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createTryCatchClause(java.lang.String, boolean)
- */
- public final ExpressionProxy createTryCatchClause(String exceptionType, boolean wantExceptionReturned)
- throws IllegalStateException {
- return pushTryCatch(getProxyBeanType(exceptionType), wantExceptionReturned);
- }
-
- /**
- * @param exceptionType
- * @param wantExceptionReturned
- * @return
- * @throws IllegalStateException
- *
- * @since 1.1.0
- */
- private ExpressionProxy pushTryCatch(IProxyBeanType exceptionType, boolean wantExceptionReturned) throws IllegalStateException {
- try {
- checkForExpression(ForExpression.ROOTEXPRESSION);
- popForExpression(); // Remove the root expression since try or previous catch clause is done.
- checkForExpression(TRYCATCH_EXPRESSION); // This needs to be next for it to be valid.
- pushForExpression(TRYCATCH_EXPRESSION); // Set up for a following catch/finally clause.
- pushForExpression(ForExpression.ROOTEXPRESSION); // Root expressions are next for the catch clause.
-
- int tryNumber = ((Integer) peek(2)).intValue(); // Get the try#. It should be in this place on the stack.
-
- ExpressionProxy ep = null;
- if (wantExceptionReturned)
- ep = allocateExpressionProxy(NORMAL_EXPRESSION_PROXY);
- pushTryCatchClauseToProxy(tryNumber, exceptionType, ep);
-
- processExpression();
- return ep;
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createTryEnd()
- */
- public final void createTryEnd() throws IllegalStateException {
- try {
- checkForExpression(ForExpression.ROOTEXPRESSION);
- popForExpression(); // Remove the root expression since try or previous catch clause is done.
- if (peekForExpression(TRYCATCH_EXPRESSION))
- checkForExpression(TRYCATCH_EXPRESSION); // This may of been next if no finally clause was added. If a finally clause was added this would not be here.
- checkForExpression(TRYEND_EXPRESSION); // And this needs to be after that to be valid.
-
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createTryFinallyClause()
- */
- public final void createTryFinallyClause() throws IllegalStateException {
- try {
- checkForExpression(ForExpression.ROOTEXPRESSION);
- popForExpression(); // Remove the root expression since try or previous catch clause is done.
- checkForExpression(TRYCATCH_EXPRESSION); // This needs to be next for it to be valid.
- pushForExpression(ForExpression.ROOTEXPRESSION); // Root expressions are next for the finally clause.
-
- int tryNumber = ((Integer) peek(2)).intValue(); // Get the try#. It should be in this place on the stack.
-
- pushTryFinallyClauseToProxy(tryNumber);
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createRethrow()
- */
- public final void createRethrow() throws IllegalStateException {
- try {
- checkForExpression(ForExpression.ROOTEXPRESSION);
- popForExpression(); // Remove the root expression since try or previous catch clause is done.
- checkForExpression(TRYCATCH_EXPRESSION); // This needs to be next for it to be valid.
- // It is in a valid state, so put the catch and root back on so that things work correctly.
- pushForExpression(TRYCATCH_EXPRESSION);
- pushForExpression(ForExpression.ROOTEXPRESSION);
-
- int tryNumber = ((Integer) peek(2)).intValue(); // Get the try#. It should be in this place on the stack.
-
- pushRethrowToProxy(tryNumber);
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createThrow()
- */
- public final void createThrow() throws IllegalStateException {
- try {
- checkForExpression(ForExpression.ROOTEXPRESSION);
- push(InternalExpressionTypes.THROW_EXPRESSION);
- pushForExpression(PROCESS_EXPRESSION);
- pushForExpression(ForExpression.THROW_OPERAND); // The next expression must be for the throw value.
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
-
- public final int mark() throws IllegalStateException {
- try {
- checkForExpression(ForExpression.ROOTEXPRESSION);
- ++highestMarkID;
- currentMarkEntry = new MarkEntry();
- currentMarkEntry.markID = highestMarkID;
- currentMarkEntry.controlStackPos = controlStack.size() - 1;
- currentMarkEntry.nextExpressionStackPos = nextForExpressionStackPos;
- currentMarkEntry.expressionProxiesPos = expressionProxies != null ? expressionProxies.size() - 1 : -1;
- if (markEntries == null)
- markEntries = new ArrayList(5);
- markEntries.add(currentMarkEntry);
- pushMarkToProxy(highestMarkID);
- return highestMarkID;
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- public void endMark(int markNumber) throws IllegalStateException {
- if (isValid()) {
- // Can only do a valid end mark if we are at root. If not at root, we fall through and treat as invalid.
- if (peekForExpression(ForExpression.ROOTEXPRESSION)) {
- checkForExpression(ForExpression.ROOTEXPRESSION); // Now remove it if it should be removed.
- // If the current mark number is not the same as the incoming mark number, we have improper nesting.
- if (currentMarkEntry == null || currentMarkEntry.markID != markNumber)
- throwInvalidMarkNesting(); // We have improper nesting.
- // We are popping the current mark. Since we are valid, just move up one in the mark stack.
- MarkEntry me = (MarkEntry) markEntries.remove(markEntries.size()-1);
- if (!markEntries.isEmpty())
- currentMarkEntry = (MarkEntry) markEntries.get(markEntries.size()-1);
- else
- currentMarkEntry = null;
- pushEndmarkToProxy(markNumber, false);
- if (me.controlStackPos != controlStack.size()-1 || me.nextExpressionStackPos != nextForExpressionStackPos)
- throwInvalidMarkNesting(); // The stacks should be back to the same size at this point for a valid end mark.
- return;
- }
- }
-
- // It was invalid, or became invalid.
- if (markEntries == null)
- throwInvalidMarkNesting(); // We have no marks, so this is an invalid end mark.
-
- // We are invalid, need to pop to the given markNumber.
- // Starting from the end we search back to find the entry for the given mark number. We do it
- // from the end because it is more likely to be closer to the end than to the beginning.
- for (int i = markEntries.size()-1; i >=0; i--) {
- MarkEntry me = (MarkEntry) markEntries.get(i);
- if (me.markID == markNumber) {
- // Found it.
- // Trim the control stack down to the size at time of mark. (No easy way to do this other than repeated remove's.
- // We do it backwards to eliminate repeated shuffling of entries.
- for (int j = controlStack.size()-1; j > me.controlStackPos; j--) {
- controlStack.remove(j);
- }
-
- // Trim the expression stack. This is simple, just reset the next entry pointer.
- nextForExpressionStackPos = me.nextExpressionStackPos;
-
- if (expressionProxies != null) {
- // Now we need to mark all of the expression proxies that occured after the mark as
- // not resolved (since someone may be listening), and remove them, and reuse the proxies.
- for (int j = expressionProxies.size()-1; j > me.expressionProxiesPos; j--) {
- ExpressionProxy proxy = (ExpressionProxy) expressionProxies.remove(j);
- if (proxy != null && proxy.hasListeners())
- fireProxyNotResolved(proxy);
- }
- }
-
- // Now that we know it is valid, we want to remove all of the mark entries above it in the stack
- // since those are now invalid. We couldn't remove them as we were searching for the entry because
- // if the entry wasn't found we didn't want to wipe out the probably valid ones.
- for (int j = markEntries.size()-1; j >= i; j--) {
- markEntries.remove(j);
- }
-
- if (!markEntries.isEmpty())
- currentMarkEntry = (MarkEntry) markEntries.get(markEntries.size()-1);
- else
- currentMarkEntry = null;
- pushEndmarkToProxy(markNumber, true);
- expressionValid = true;
- return;
- }
- }
- throwInvalidMarkNesting(); // The mark number wasn't found, so this is an invalid end mark.
- }
-
- /**
- * Begin the transfer of the expression to another thread.
- *
- * This is used when the expression needs to continue to be built up, but it needs
- * to be done on a different thread. The reason for doing something special other
- * than just using it on the other thread is that some proxy registries connections are
- * tied through the thread. If you switched to another thread the connections would not
- * be properly set up.
- * This is not on the IExpression interface because even though it is API, it is tricky
- * to use and so not exposed to everyone. Users can legitimately cast to Expression and
- * use this as API for advanced use.
- *
- * This is used to begin the transfer. It puts it into a state ready for the transfer. Calling this
- * method will cause a synchronization of the expression up to the current level. This means
- * that it will not return until the expression has been completely processed in the proxy registry
- * up to this point. Typically the connection is a pipe where the instructions are just pushed onto
- * it and the caller is not held up waiting for the registry to process it.
- *
- * Then when the other thread is done, it will call beginTransferThread itself to signal that it is done
- * and that the old thread can pick it up. Then the old thread will call transferThread to pick up processing.
- *
- * It will be:
- *
- * This is called to actually transfer to the current thread. It must be the next call against
- * the expression after the beginTransferThread, but on the new thread.
- *
- * This is not on the IExpression interface because even though it is API, it is tricky
- * to use and so not exposed to everyone. Users can legitimately cast to Expression and
- * use this as API for advanced use.
- * @see Expression#beginTransferThread() for a full explanation.
- * @throws IllegalStateException
- *
- * @since 1.1.0
- */
- public final void transferThread() throws IllegalStateException {
- try {
- checkForExpression(THREADTRANSFER_EXPRESSION);
- pushTransferThreadToProxy();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
-
- /**
- * Get the IProxyBeanType for the type string sent in.
- * @param type
- * @return
- *
- * @since 1.1.0
- */
- protected IProxyBeanType getProxyBeanType(String type) {
- return getRegistry().getBeanTypeProxyFactory().getBeanTypeProxy(this, type);
- }
-
- /**
- * Create the expression proxy subclass that is applicable for this kind of processor.
- * @param proxyType type of proxy. {@link Expression#NORMAL_EXPRESSION_PROXY
- * @param proxyID the id of the new expression proxy.
- *
- * @return
- *
- * @since 1.1.0
- */
- protected abstract ExpressionProxy createExpressionProxy(int proxyType, int proxyID);
-
- /**
- * Push this proxy to the other side. It will simply take the proxy and push it onto
- * its evaluation stack. It will be treated as the result of an expression. It's just
- * that the expression was evaluatable on this side (since it is already a proxy).
- *
- * @param proxy
- *
- * @since 1.0.0
- */
- protected abstract void pushToProxy(IProxy proxy);
-
- /**
- * Tell the other side we are complete. This will always be called after expression evaluation, or
- * if expression was prematurely closed.
- *
- * Note: The implementation must be able to handle multiple invocations, where the first call is a valid close and any
- * subsequent call should be ignored.
- *
- * @throws ThrowableProxy
- *
- * @since 1.0.0
- */
- protected abstract void closeProxy();
-
- /**
- * Do invoke. This should simply make sure everything is done and throw any pending errors.
- *
- * Note: The expression proxies MUST be resolved (callbacks called) in the order they are found in the expressionProxies list. This
- * is so that the contract is followed that resolution notifications will occur in the order of creation.
- *
- * @param proxycount Number of Expression Proxies that need a callback.
- * @param list of expression proxies. If proxycount > 0, then process the non-null entries in the list. They will be of type ExpressionProxy.
- * @throws ThrowableProxy
- *
- * @since 1.0.0
- */
- protected abstract void pushInvoke(int proxycount, List expressionProxies) throws ThrowableProxy, NoExpressionValueException;
-
- /**
- * Pull the top expression value from the evaluation stack. It will also under
- * the covers call closeProxy. It also must process the expression proxy callbacks. It must do the expression proxy callbacks first, and then
- * process the result value. If an error had occured sometime during processing, it should still process the proxy callbacks before throwing
- * an exception.
- *
- * Note: The expression proxies MUST be resolved (callbacks called) in the order they are found in the expressionProxies list. This
- * is so that the contract is followed that resolution notifications will occur in the order of creation. Also REQUIRED is that
- * the entire list must be processed of proxies must be processed by this call. It cannot do some or none.
- *
- * @param proxycount Number of Expression Proxies that need a callback.
- * @param list of expression proxies. If proxycount > 0, then process the non-null entries in the list. They will be of type ExpressionProxy.
- * @return The top level evaluation stack value.
- * @throws ThrowableProxy
- * @throws NoExpressionValueException
- *
- * @since 1.0.0
- */
- protected abstract IBeanProxy pullProxyValue(int proxycount, List expressionProxies) throws ThrowableProxy, NoExpressionValueException;
-
- /**
- * Push to proxy the cast expression. The expression to use will be on the top of its evaluation stack.
- * The result of the cast expression will be placed onto the evaluation stack.
- *
- * @param type Cast type.
- *
- * @since 1.0.0
- */
- protected abstract void pushCastToProxy(IProxyBeanType type);
-
- /**
- * Push to proxy the instanceof expression. The expression to use will be on the top of its evaluation stack.
- * The result of the instanceof expression will be placed onto the evaluation stack.
- *
- * @param type Instanceof type.
- *
- * @since 1.0.0
- */
- protected abstract void pushInstanceofToProxy(IProxyBeanType type);
-
- /**
- * Push to proxy the infix operation. This is called on the completion of each operand of the expression.
- * So it will be called a minimum of two times.
- *
- * @param operator The operator.
- * @param operandType The operand type. left, other, or last.
- *
- * @since 1.0.0
- */
- protected abstract void pushInfixToProxy(InfixOperator operator, InternalInfixOperandType operandType);
-
- /**
- * Push to proxy the prefix expression. The expression to use will be on top of its evaluation stack.
- * The result of the prefix operation will be placed onto the evaluation stack.
- *
- * @param operator
- *
- * @see IExpressionConstants#PRE_MINUS
- * @since 1.0.0
- */
- protected abstract void pushPrefixToProxy(PrefixOperator operator);
-
-
- /**
- * Push to proxy the array access. The result will be placed onto the evaluation stack.
- *
- * @param indexCount
- *
- * @since 1.0.0
- */
- protected abstract void pushArrayAccessToProxy(int indexCount);
-
- /**
- * Push to proxy the array creation. The result will be placed onto the evaluation stack.
- * @param type The array type.
- * @param dimensionCount
- *
- * @since 1.0.0
- */
- protected abstract void pushArrayCreationToProxy(IProxyBeanType type, int dimensionCount);
-
- /**
- * Push to proxy the array initializer. The resulting array will be placed onto the evaluation stack.
- * @param type The array type. (must be an array type).
- * @param stripDimCount the number of dimensions that must be stripped from the array type. This is needed
- * because the first array initializer needs to be for the component type of the array (array minus one dimension), and
- * each initializer after that needs one more dimension stripped off. But since we are working with possible expression
- * proxies for "type", we can't create the appropriate component types of the array. So we need to tell the
- * processor how many dims to strip from the original type (which is what is sent in on every initializer push, the original type).
- * @param expressionCount
- *
- * @since 1.0.0
- */
- protected abstract void pushArrayInitializerToProxy(IProxyBeanType type, int stripDimCount, int expressionCount);
-
- /**
- * Push to proxy the class instance creation. The resulting class instance will be placed onto the evaluation stack.
- *
- * @param type Class type.
- * @param argumentCount The number of arguments.
- *
- * @since 1.0.0
- */
- protected abstract void pushClassInstanceCreationToProxy(IProxyBeanType type, int argumentCount);
-
- /**
- * Push to proxy the type receiver. The resulting class will be placed onto the evaluation stack, along with it also
- * being the expression type.
- * @param type Class type.
- *
- * @since 1.0.0
- */
- protected abstract void pushTypeReceiverToProxy(IProxyBeanType type);
-
- /**
- * Push to proxy the field access. The result value will be placed onto the evaluation stack.
- * @param field The name of the field if string, or an IFieldProxy.
- * @param hasReceiver Has receiver flag.
- *
- * @since 1.0.0
- */
- protected abstract void pushFieldAccessToProxy(Object field, boolean hasReceiver);
-
- /**
- * Push to proxy the method invocation. The result value will be placed onto the evaluation stack.
- *
- * @param method String for method name or IProxyMethod
- * @param hasReceiver
- * @param argCount
- *
- * @since 1.0.0
- */
- protected abstract void pushMethodInvocationToProxy(Object method, boolean hasReceiver, int argCount);
-
- /**
- * Push to proxy the conditional expression. This will be called on each part of expression. The expression type
- * will be the current part (e.g. test, true, false).
- *
- * @param expressionType The expression type.
- *
- * @since 1.0.0
- */
- protected abstract void pushConditionalToProxy(InternalConditionalOperandType expressionType);
-
- /**
- * Push to the proxy the expression proxy. Whatever the last expression value is will be assigned to the ExpressionProxy.
- *
- * @param proxy
- *
- * @since 1.1.0
- */
- protected abstract void pushAssignmentToProxy(ExpressionProxy proxy);
-
- /**
- * Push the assignment expression. The operands are already on the stack.
- *
- * @since 1.1.0
- */
- protected abstract void pushAssignmentToProxy();
-
-
- /**
- * Push the begin block expression.
- * @param blockNumber
- *
- * @since 1.1.0
- */
- protected abstract void pushBlockBeginToProxy(int blockNumber);
-
- /**
- * Push the end block expression.
- * @param blockNumber
- *
- * @since 1.1.0
- */
- protected abstract void pushBlockEndToProxy(int blockNumber);
-
- /**
- * Push the break block expression.
- * @param blockNumber
- *
- * @since 1.1.0
- *
- */
- protected abstract void pushBlockBreakToProxy(int blockNumber);
-
- /**
- * Push the begin try expression.
- * @param tryNumber
- *
- * @since 1.1.0
- */
- protected abstract void pushTryBeginToProxy(int tryNumber);
-
- /**
- * Push the catch clause to proxy.
- * @param tryNumber
- * @param exceptionType
- * @param ep ExpressionProxy to be assigned with the exception or
- * After receiving the resolved event, listeners should not hold onto the ExpressionProxy because it would then be invalid. At that
- * point they should instead hold onto the resolved bean proxy.
- *
- * @see org.eclipse.jem.internal.proxy.core.IExpression#assignExpressionProxy()
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createExpressionProxyExpression(int, ExpressionProxy)
- * @since 1.1.0
- */
-public class ExpressionProxy implements IProxy {
-
- public ProxyFactoryRegistry getProxyFactoryRegistry() {
- return getExpression().getRegistry();
- }
-
- /**
- * The event object for the resolved event of the proxy listener.
- *
- * The source will be the ExpressionProxy that is being resolved.
- * @since 1.1.0
- */
- public static class ProxyEvent extends EventObject {
-
- /**
- * Comment for
- * Note: Subclasses must call super.dispose().
- *
- * @since 1.1.0
- */
- protected void dispose() {
- listenerList = null;
- expression = null;
- }
-
- /**
- * Used by internal subclasses or by Expression to fire the resolved event. Once fired all listeners are removed.
- * This is because only one kind of firing can be done for a expression proxy and then the proxy is dead. This
- * prevents listeners from being held on to if any one accidently still holds the proxy.
- * @param proxy
- *
- * @since 1.1.0
- */
- protected void fireResolved(IBeanProxy proxy) {
- if (hasListeners()) {
- ProxyEvent event = new ProxyEvent(this, proxy);
- Object[] listeners = listenerList.getListeners();
- for (int i = 0; i < listeners.length; i++) {
- try {
- ((ProxyListener) listeners[i]).proxyResolved(event);
- } catch (RuntimeException e) {
- ProxyPlugin.getPlugin().getLogger().log(e, Level.WARNING);
- }
- }
- }
- dispose();
- }
-
- /**
- * Used by internal subclasses or by Expression to fire the not resolved event. Once fired all listeners are removed.
- * This is because only one kind of firing can be done for a expression proxy and then the proxy is dead. This
- * prevents listeners from being held on to if any one accidently still holds the proxy.
- *
- * @since 1.1.0
- */
- protected void fireNotResolved() {
- if (hasListeners()) {
- ProxyEvent event = new ProxyEvent(this);
- Object[] listeners = listenerList.getListeners();
- for (int i = 0; i < listeners.length; i++) {
- try {
- ((ProxyListener) listeners[i]).proxyNotResolved(event);
- } catch (RuntimeException e) {
- ProxyPlugin.getPlugin().getLogger().log(e, Level.WARNING);
- }
-
- }
- }
- dispose();
- }
-
- /**
- * Used by internal subclasses or by Expression to fire the void resolved event. Once fired all listeners are removed.
- * This is because only one kind of firing can be done for a expression proxy and then the proxy is dead. This
- * prevents listeners from being held on to if any one accidently still holds the proxy.
- *
- * @since 1.1.0
- */
- protected void fireVoidResolved() {
- if (hasListeners()) {
- ProxyEvent event = new ProxyEvent(this);
- Object[] listeners = listenerList.getListeners();
- for (int i = 0; i < listeners.length; i++) {
- try {
- ((ProxyListener) listeners[i]).proxyVoid(event);
- } catch (RuntimeException e) {
- ProxyPlugin.getPlugin().getLogger().log(e, Level.WARNING);
- }
-
- }
- }
- dispose();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxy#isBeanProxy()
- */
- public final boolean isBeanProxy() {
- return false;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxy#isExpressionProxy()
- */
- public final boolean isExpressionProxy() {
- return true;
- }
-
- /**
- * Is this proxy valid for reassignment. By default only if the type is NORMAL_EXPRESSION_PROXY.
- * Subclasses may override and return true in their cases.
- *
- * @return
- *
- * @since 1.1.0
- */
- public boolean isValidForReassignment() {
- return getProxyType() == Expression.NORMAL_EXPRESSION_PROXY;
- }
-
-
- /* (non-Javadoc)
- * @see java.lang.Object#toString()
- */
- public String toString() {
- return super.toString()+": "+getProxyID(); //$NON-NLS-1$
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IAccessibleObjectProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IAccessibleObjectProxy.java
deleted file mode 100644
index d9a87c444..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IAccessibleObjectProxy.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: IAccessibleObjectProxy.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:05 $
- */
-
-/**
- * Proxy for an AccessibleObject.
- *
- * @since 1.0.0
- */
-public interface IAccessibleObjectProxy extends IBeanProxy {
-
- /**
- * Is the proxy accessible or not?
- *
- * @return
- * NOTE: This is a snapshot. It will not see changes to the array.
- * If an entry is set into the returned array of proxies, this will
- * not be reflected into the real array. Also any changes in the
- * contents of the first dimension of the real array will not
- * be reflected into this returned array of proxies. The proxies
- * returned are real proxies, so any changes to them will be reflected
- * back and forth. Treat this as an array copy to a new array.
- *
- * @return array of proxies of the first dimension of the array.
- * @throws ThrowableProxy
- *
- * @since 1.1.0
- */
- IBeanProxy[] getSnapshot() throws ThrowableProxy;
-
- /**
- * Set the object at the specified index.
- */
- void set(IBeanProxy value, int index) throws ThrowableProxy;
-
- /**
- * Set the object at the specified multi-dimensional index.
- * The array must be at least the number of dimensions specified,
- * and each index along the way must exist.
- * The number of dimensions can't be greater than the number
- * of dimensions of the real object.
- */
- void set(IBeanProxy value, int [] indexes) throws ThrowableProxy;
-
- /**
- * Get the length of the first dimension of this array.
- * If there are multi-dimensions, you must get the appropriate
- * dimension from the get method to see the size of that dimension.
- *
- * e.g.
- * int [3] returns 3
- * int [3][2] returns 3
- *
- * ((IArrayBeanProxy) get(1)).getLength() returns 2
- * Since arrays do not have to be homogenous, there could
- * be a different length array for each of the arrays
- * returned from the first dimension, the returned length
- * from get(2) and get(3) could result in a different value
- * from get(1).
- */
- int getLength();
-
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IArrayBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IArrayBeanTypeProxy.java
deleted file mode 100644
index dbae633e1..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IArrayBeanTypeProxy.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: IArrayBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-/**
- * A Proxy for an array type.
- */
-
-public interface IArrayBeanTypeProxy extends IBeanTypeProxy {
- /**
- * getComponentType: Get the component type of this array.
- * e.g. (new Object[3]).getClass().getComponentType() will
- * return "java.lang.Object".
- * and (new Object[3][2][1]).getClass().getComponentType() will
- * return "Object[][]";
- */
- public IBeanTypeProxy getComponentType();
- /**
- * Return the final type, i.e. the final non-array type.
- * i.e. int[][] will return int.
- */
- public IBeanTypeProxy getFinalComponentType();
- /**
- * Return the number of dimensions for this type.
- * i.e. int [][] will return 2.
- */
- public int getDimensions();
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanProxy.java
deleted file mode 100644
index 40f46e4c4..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanProxy.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: IBeanProxy.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-/**
- * Bean Proxy interface. This is the
- * root interface for any bean proxy instance.
- * Creation date: (12/3/99 11:37:01 AM)
- * @author: Joe Winchester
- */
-public interface IBeanProxy extends IProxy {
-/**
- * equals: Equal if:
- * 1) This proxy == (identity) to the other object
- * 2) Else if other is an IBeanProxy, then if
- * equals on the server.
- * 3) If this is a constant proxy and the other is too or is a constant
- * value (e.g. IStringBeanProxy.equals(String), then true if values are equals.
- */
-public boolean equals(Object anObject);
-
-/**
- * Test for identity among this bean proxy and the other bean proxy.
- * For some proxy systems, this may be redundent and you can be assured
- * that if the objects being proxied are identical you will receive the
- * same proxy for both. However, other implementations may not have this
- * condition. Therefor this method was created.
- *
- * There is one restriction, constants may not necessarily be identical.
- * For instance, in some implementations, the Boolean proxy (i.e. an instance of class Boolean) is a constant, i.e.
- * it cannot be changed. In those cases a new proxy may be created for each
- * access and so they will not be considered to be identical. In those cases false will be returned.
- * But in other implementations a new proxy will not be created and so sameAs will return true.
- *
- * Primitives will return true if just equal because in Java primitives are identical if the same value.
- *
- * @param aBeanProxy
- * @return true if they are identical (i.e. ==) and not just equals.
- */
-public boolean sameAs(IBeanProxy aBeanProxy);
-
-/**
- * Return the registry this proxy was created with.
- */
-public ProxyFactoryRegistry getProxyFactoryRegistry();
-/**
- * Return the proxied class of the bean
- * Creation date: (12/3/99 11:37:01 AM)
- * @author: Joe Winchester
- */
-public IBeanTypeProxy getTypeProxy();
-
-/**
- * Return a string representation of the bean itself
- * This could be done by finding the toString() method by a findMethod()
- * on the type proxy, etc... but toString() is so ubiquitous that it is
- * explicitly declared on the IBeanProxy interface
- * Creation date: (12/3/99 11:37:01 AM)
- * @author: Joe Winchester
- */
-public String toBeanString();
-/**
- * Is this bean still valid? It could be invalid because it
- * was specifically released but someone is still holding onto it.
- */
-public boolean isValid();
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanProxyFactory.java
deleted file mode 100644
index 76baa4ca5..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanProxyFactory.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: IBeanProxyFactory.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:05 $
- */
-
-
-/**
- * Bean Proxy Factory for creating bean proxies.
- * Creation methods are actually package protected.
- * All creation is done through the IBeanTypeProxy.
- * Specific factories may have helper methods that
- * allow creation of specific types, such as the
- * standard factory allows creation of Boolean, int's, etc.
- * Creation date: (12/3/99 11:52:09 AM)
- * @author: Joe Winchester
- */
-public interface IBeanProxyFactory {
- /**
- * The factory is being terminated.
- *
- * It should clean up its resources.
- * It should not reference any other factory because they could of
- * already been terminated.
- *
- * For example, if it is holding onto IREMBeanProxy's, it doesn't
- * need to call release on them except if they are constants because
- * the BeanProxyFactory has all non-constant bean proxies registered
- * and will call the release itself.
- *
- * Note: This is not meant to be called by users. It will be called internally by the proxy registry when necessary.
- *
- * @param wait
- * The method proxy is not retrieved. Instead the method will be looked up
- * each time on the vm. Because of this these are suitable only for one-shot invokations. If it is to be invoked often, then a method proxy should
- * be retrieved instead.
- *
- * Though typical for one-shot deal the invokable can be used over and over. There is just overhead because the method is looked up each time. So a reasonable compromise
- * would be if using it infrequently or is used closely together once or twice it is better to use a Invokable instead of a method proxy.
- *
- * Note there is no guarantee that the method is available. This won't be known until the actual invoke is done.
- *
- * @param methodName
- * @return
- * @since 1.0.0
- */
- public IInvokable getInvokable(String methodName);
-
- /**
- * Return the method proxy on the receiver with the qualified class names as string arguments
- *
- * The method proxy is not retrieved. Instead the method will be looked up
- * each time on the vm. Because of this these are suitable only for one-shot invokations. If it is to be invoked often, then a method proxy should
- * be retrieved instead.
- *
- * Though typical for one-shot deal the invokable can be used over and over. There is just overhead because the method is looked up each time. So a reasonable compromise
- * would be if using it infrequently or is used closely together once or twice it is better to use a Invokable instead of a method proxy.
- *
- * Note there is no guarantee that the method is available. This won't be known until the actual invoke is done.
- *
- * @param methodName
- * @param argumentClassNames
- * @return
- * @since 1.0.0
- */
- public IInvokable getInvokable(String methodName, String[] argumentClassNames);
-
- /**
- * Return the method proxy on the receiver with the specified name and one argument
- *
- * The method proxy is not retrieved. Instead the method will be looked up
- * each time on the vm. Because of this these are suitable only for one-shot invokations. If it is to be invoked often, then a method proxy should
- * be retrieved instead.
- *
- * Though typical for one-shot deal the invokable can be used over and over. There is just overhead because the method is looked up each time. So a reasonable compromise
- * would be if using it infrequently or is used closely together once or twice it is better to use a Invokable instead of a method proxy.
- *
- * Note there is no guarantee that the method is available. This won't be known until the actual invoke is done.
- *
- * @param methodName
- * @param argumentClassName
- * @return
- * @since 1.0.0
- */
- public IInvokable getInvokable(String methodName, String argumentClassName);
-
- /**
- * Return the method proxy on the receiver with the beanTypes as arguments
- *
- * The method proxy is not retrieved. Instead the method will be looked up
- * each time on the vm. Because of this these are suitable only for one-shot invokations. If it is to be invoked often, then a method proxy should
- * be retrieved instead.
- *
- * Though typical for one-shot deal the invokable can be used over and over. There is just overhead because the method is looked up each time. So a reasonable compromise
- * would be if using it infrequently or is used closely together once or twice it is better to use a Invokable instead of a method proxy.
- *
- * Note there is no guarantee that the method is available. This won't be known until the actual invoke is done.
- *
- * @param methodName
- * @param argumentTypes
- * @return
- * @since 1.0.0
- */
- public IInvokable getInvokable(String methodName, IBeanTypeProxy[] argumentTypes);
-
- /**
- * Return the constructor proxy on the receiver with no arguments Creation date: (12/3/99 2:25:07 PM)
- */
- public IConstructorProxy getNullConstructorProxy();
-
- /**
- * Answer the type proxy for the superclass Creation date: (12/3/99 2:25:07 PM)
- */
- public IBeanTypeProxy getSuperBeanTypeProxy();
-
- /**
- * Answer the name of the type we are proxying This is the fully qualified name. For arrays it will return the format: [Lclassname; Creation date:
- * (12/3/99 2:25:07 PM)
- */
- public String getTypeName();
-
- /**
- * Answer the formal format type name. For normal classes, this just the same as getTypeName(), but for arrays, it is of the format classname[]
- */
- public String getFormalTypeName();
-
- /**
- * Answer a boolean as to whether we are an array type.
- */
- public boolean isArray();
-
- /**
- * Answer a boolean as to whether we are a type or an interface Creation date: (12/3/99 2:25:07 PM)
- */
- public boolean isInterface();
-
- /**
- * Answer a boolean as to whether we are a primitive or not.
- */
- public boolean isPrimitive();
-
- /**
- * Answer a boolean as to whether we are a kind of the argument We can either be it, inherit from it, or implement it
- */
- public boolean isKindOf(IBeanTypeProxy aBeanProxyType);
-
- /**
- * Return a new instance Creation date: (12/3/99 2:25:07 PM)
- */
- public IBeanProxy newInstance() throws ThrowableProxy;
-
- /**
- * Return a new instance of this type using the initialization string to create the proxy. ClassCastException is thrown if the initstring doesn't
- * result in an object compatible with this type. InstantiationException is thrown when the initialization string cannot be parsed correctly.
- * Creation date: (12/3/99 2:25:07 PM)
- */
- public IBeanProxy newInstance(String initializationString) throws ThrowableProxy, ClassCastException, InstantiationException;
-
- /**
- * Return the exception message that happened when trying to find this bean type. Class not found is not such an exception. In that case the bean
- * type will be returned as a null instead. An example of such is an initialization error during loading the class, i.e. it was found but some
- * static failed to initialize.
- *
- * Return null if there is no initialization error.
- */
- public String getInitializationError();
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanTypeProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanTypeProxyFactory.java
deleted file mode 100644
index 899faf1b0..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanTypeProxyFactory.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: IBeanTypeProxyFactory.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:05 $
- */
-
-
-/**
- * Factory for creating BeanTypeProxy's.
- * This is a common tag interface so that
- * the factory can be registered. But each
- * VM requires a different interface that
- * extends this interface. That extended
- * interface is what must be implemented in
- * each VM.
- * Creation date: (12/3/99 2:26:00 PM)
- * @author: Joe Winchester
- */
-public interface IBeanTypeProxyFactory extends IBeanProxyFactory {
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBooleanBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBooleanBeanProxy.java
deleted file mode 100644
index 113781a5d..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBooleanBeanProxy.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: IBooleanBeanProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:05 $
- */
-
-
-/**
- * Optimized implementation that should be used for Boolean proxies that
- * allows the IDE VM to get the boolean value easily
- * Creation date: (2/6/00 8:58:22 AM)
- * @author: Joe Winchester
- */
-public interface IBooleanBeanProxy extends IBeanProxy {
-/**
- * Return the proxied boolean as a boolean that the IDE can use
- * Creation date: (2/6/00 8:58:32 AM)
- */
-boolean booleanValue();
-Boolean getBooleanValue();
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ICallback.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ICallback.java
deleted file mode 100644
index ae994a97d..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ICallback.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: ICallback.java,v $
- * $Revision: 1.6 $ $Date: 2005/08/24 20:39:05 $
- */
-
-import java.io.InputStream;
-
-/**
- * Users will create a callback of this interface
- * and register it with the factory. Then when ever
- * the callback occurs, this callback will be called
- * with data from the proxy. It can return a value too.
- *
- * Or an InputStream can be returned to supply the data.
- *
- * @since 1.0.0
- */
-public interface ICallback {
-
- /**
- * This is the entry point of the callback.
- * It will be called whenever the callback
- * occurred. It will be on its own thread.
- * A particular thread cannot be requested.
- *
- * The implementation MUST return. This is
- * because the callback will not be completed
- * until it is returned, and the process will
- * not continue on the remote vm until it is
- * returned.
- *
- * The value returned must either be an
- * IBeanProxy or IBeanProxy[]. It is typed
- * to Object to allow either one, but it
- * will be checked, and if it isn't, then
- * null will be returned instead to the
- * caller.
- *
- * @param msgID
- * @param parm The beanproxy - will not be null
- * @return
- *
- * @since 1.0.0
- */
- public Object calledBack(int msgID, IBeanProxy parm);
-
- /**
- * This is the entry point of the callback.
- * It will be called whenever the callback
- * occurred. It will be on its own thread.
- * A particular thread cannot be requested.
- *
- * The parms will be an array of IBeanProxys,
- * or an entry could be another array of IBeanProxys,
- * or null if null was sent to callBackWithParms.
- * The final component of any entry will be an
- * IBeanProxy. It is up to the developers to
- * agree on the format of the parms.
- *
- * The implementation MUST return. This is
- * because the callback will not be completed
- * until it is returned, and the process will
- * not continue on the remote vm until it is
- * returned.
- *
- * The value returned must either be an
- * IBeanProxy or IBeanProxy[]. It is typed
- * to Object to allow either one, but it
- * will be checked, and if it isn't, then
- * null will be returned instead to the
- * caller.
- *
- * @param msgID
- * @param parms
- * @return
- *
- * @see org.eclipse.jem.internal.proxy.common.ICallbackHandler#callbackWithParms(int, int, Object[])
- * @since 1.0.0
- */
- public Object calledBack(int msgID, Object[] parms);
-
- /**
- * This is the entry point of the callback.
- * It will be called whenever the callback
- * occurred. It will be on its own thread.
- * A particular thread cannot be requested.
- *
- * The parm will be an object. This occurs
- * if remote vm just wanted to send some objects.
- * They will not be proxies. It is recommended
- * that this be used only for small items. For
- * anything large, the callbackStream should be
- * used instead.
- *
- * The implementation MUST return. This is
- * because the callback will not be completed
- * until it is returned, and the process will
- * not continue on the remote vm until it is
- * returned.
- *
- * The value returned must either be an
- * IBeanProxy or IBeanProxy[]. It is typed
- * to Object to allow either one, but it
- * will be checked, and if it isn't, then
- * null will be returned instead to the
- * caller.
- *
- * @param msgID
- * @param parm The parm or
- * The callback should continue to read from the InputStream
- * until it returns -1 indicating no more data. The stream can
- * be closed. In that case the next time the remote vm wants to
- * send data it will first check that the stream has not been closed.
- * If it has, it will raise an exception on that side.
- *
- * The implementation MUST return. This is
- * because the callback will not be completed
- * until it is returned, and the process will
- * not continue on the remote vm until it is
- * returned.
- *
- * @param msgID
- * @param is
- *
- * @since 1.0.0
- */
- public void calledBackStream(int msgID, InputStream is);
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ICallbackRegistry.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ICallbackRegistry.java
deleted file mode 100644
index 27b3a8998..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ICallbackRegistry.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: ICallbackRegistry.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:05 $
- */
-
-/**
- * This is the registry for handling callbacks.
- * It is used to register and deregister callbacks.
- *
- * Callbacks are split into two parts:
- * 1) CallbackProxy. This is any proxy that implements the
- * interface ICallback. (Or the
- * equivalent one if not standard remote vm). This is the
- * object which will actually submit the callback on the remote
- * vm. For example, any kind of listener. It would implement
- * both the ICallback and the appropriate listener interface.
- * Then when it gets called as a listener, it will redirect the
- * call to the remote vm callback handler to submit it to the
- * proxy side.
- * 2) Callback. This is on this side and is the object that will
- * be notified of the callback and will execute at that time.
- *
- */
-
-public interface ICallbackRegistry {
-
- /**
- * Register this callback proxy and this callback.
- *
- * The process is to:
- * 1) Create the callbackProxy and the callback
- * 2) register these with registerCallback
- * 3) Now connect the callbackProxy so that it will start notifying.
- * For example, if it is a normal listener, at this time do the
- * addListener call to add the callbackProxy to the appropriate object.
- * You don't want it to start notifying before registering it.
- * (Though it won't hust it, it will just return null).
- */
- public void registerCallback(IBeanProxy callbackProxy, ICallback cb);
-
- /**
- * Same as {@link ICallbackRegistry#registerCallback(IBeanProxy, ICallback) registerCallback} except that
- * it is deferred off into an expression.
- *
- * @param callbackProxy
- * @param cb
- * @param expression
- *
- * @since 1.1.0
- */
- public void registerCallback(IProxy callbackProxy, ICallback cb, IExpression expression);
-
- /**
- * Deregister the callback proxy. This will remove it from the
- * registry and release the callback.
- *
- * The process is to:
- * 1) Stop the proxy from listening so it no notifies. This is usually
- * removeListener on the remote vm. You don't want it notifying
- * after it deregister (though it won't hurt it, it will just return null).
- * 2) deregister it.
- */
- public void deregisterCallback(IBeanProxy callbackProxy);
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ICharacterBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ICharacterBeanProxy.java
deleted file mode 100644
index 96a6b46c9..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ICharacterBeanProxy.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: ICharacterBeanProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:05 $
- */
-
-
-/**
- * Optimized implementation that should be used for character proxies that
- * allows the IDE VM to get the character value easily
- * Creation date: (2/6/00 8:58:22 AM)
- * @author: Joe Winchester
- */
-public interface ICharacterBeanProxy extends IBeanProxy, INumberBeanProxy {
-/**
- * Return the proxied character as a char that the IDE can use
- * Creation date: (2/6/00 8:58:32 AM)
- */
-char charValue();
-/**
- * Return the proxied character as a Character that the IDE can use
- * Creation date: (2/6/00 8:58:32 AM)
- */
-Character characterValue();
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IConfigurationContributionController.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IConfigurationContributionController.java
deleted file mode 100644
index 2cab99355..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IConfigurationContributionController.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: IConfigurationContributionController.java,v $
- * $Revision: 1.11 $ $Date: 2005/10/26 18:48:19 $
- */
-
-import java.net.URL;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.core.IJavaProject;
-import org.osgi.framework.Bundle;
-;
-/**
- * Controls contribution to the configuration. This allows the classpath
- * to be modified in an acceptable manner, so that duplicates aren't in
- * the path, or adding a project to the path in an acceptable way.
- *
- * If only deleting or moving entries from the classpath, that can be done directly
- * to the classpath list passed in. Adding entries needs to go through this
- * controller.
- *
- * This is meant to be implemented by developers of proxy launch configurations.
- *
- * @version 1.0
- * @author
- */
-public interface IConfigurationContributionController {
-
- /**
- * Append to the user classpath.
- */
- public static final int APPEND_USER_CLASSPATH = 0;
-
- /**
- * Prepend to the user classpath. This will stick it in position 0. If
- * another prepend comes along, it will go in pos 0 and this one will move to 1.
- */
- public static final int PREPEND_USER_CLASSPATH = 1;
-
-
- /**
- * Append to the boot classpath.
- */
- public static final int APPEND_BOOT_CLASSPATH = 2;
-
- /**
- * Prepend to the boot classpath.
- */
- public static final int PREPEND_BOOT_CLASSPATH = 3;
-
- /**
- * Append a folder to the java.library.path (for things like
- * dll's). This should result in a folder only.
- * The nlsLocalize flag contribute via plugin will be
- * ignored for this type flag.
- */
- public static final int APPEND_JAVA_LIBRARY_PATH = 4;
-
- /**
- * Get the java project that we are contributing for.
- *
- * @return javaproject, may be
- * If nlsLocalize is
- * Find in the plugin and all of the fragments those that match the name exactly
- *
- * This is useful for nls where the nls for the filename will be in one or more of the fragments of the plugin.
- *
- * @param bundle The bundle it can be found in.
- * @param relativePath Path to file/folder relative to bundle root. Or
- * This interface is not intended to be implemented by clients.
- *
- * These are the values of the {@link IConfigurationContributionInfo#getContainerIds()} map.
- *
- * @since 1.2.0
- */
- public static class ContainerPaths {
-
- private final String[] visiblePath;
- private final String[] hiddenPaths;
- private final String containerId;
-
- ContainerPaths(String containerId, String[] visiblePath, String[] hiddenPaths) {
- // Not meant to be subclassed or constructed by clients.
- this.containerId = containerId;
- this.visiblePath = visiblePath;
- this.hiddenPaths = hiddenPaths;
- }
-
-
- /**
- * @return Returns the containerId.
- *
- * @since 1.2.0
- */
- public final String getContainerId() {
- return containerId;
- }
-
- /**
- * Array of visible container paths. A path is visible if it is exported up to and can
- * see by the top-level project.
- *
- * @return
- *
- * @since 1.2.0
- */
- public final String[] getVisibleContainerPaths() {
- return visiblePath;
- }
-
- /**
- * Array of hidden container paths. A path is hidden if it is not exported up to and cannot
- * see by the top-level project.
- *
- * @return
- *
- * @since 1.2.0
- */
- public final String[] getHiddenContainerPaths() {
- return hiddenPaths;
- }
-
- /**
- * Get all of the paths together, both visible and hidden.
- * @return
- *
- * @since 1.2.0
- */
- public String[] getAllPaths() {
- String[] allPaths = new String[visiblePath.length+hiddenPaths.length];
- System.arraycopy(visiblePath, 0, allPaths, 0, visiblePath.length);
- System.arraycopy(hiddenPaths, 0, allPaths, visiblePath.length, hiddenPaths.length);
- return allPaths;
- }
- }
-
- /**
- * Get the java project that we are contributing for.
- *
- * @return javaproject, may be
- * Value will be {@link ContainerPaths}
- *
- * @return Map of containers. Keys of type String for container id (e.g. "SWT_CONTAINER" for a container classpath of "/SWT_CONTAINER/PDE/xyz".
- * Values will be {@link ContainerPaths} Empty if launch not in a project.
- *
- * @since 1.0.0
- */
- public Map getContainers();
-
- /**
- * Return the map of container ids that are found in the classpath.
- *
- * Key will be String and it is the first segment of a container path. Value will {@link ContainerPaths}. This
- * will contain all of the visible and hidden paths that the project can see. All of the paths will have
- * the key (container id) as the first segment of the path.
- *
- * @return map of container ids. Keys of type String. Values will be {@link ContainerPaths} Empty if launch not in a project.
- *
- * @since 1.0.0
- */
- public Map getContainerIds();
-
- /**
- * Return the map of plugin ids (the key) that are found in the classpath.
- *
- * Value will
- * Value will
- * NOTE: For those who nest configuration contributors (i.e. within an implementation of a contributor, more
- * contributors are discovered) then it is imperitive that when those contributors are discovered that this method
- * be called on them too. This is necessary so the contract with contributors can be followed. It is best if the
- * discoveries are actually done in the initialize method itself so that it can pass the launch info right there.
- *
- * @param info info contains things like containers visible, etc.
- *
- * @see IConfigurationContributionInfo
- * @since 1.0.0
- */
- public void initialize(IConfigurationContributionInfo info);
-
- /**
- * Contribute to the classpath. The controller is used to do the actual contribution.
- *
- * @param controller
- * @throws CoreException
- *
- * @since 1.0.0
- */
- public void contributeClasspaths(IConfigurationContributionController controller) throws CoreException;
-
- /**
- * Contribute updates to the configuration. It will be called before the launch has started.
- *
- * @param config
- * @throws CoreException
- *
- * @since 1.0.0
- */
- public void contributeToConfiguration(ILaunchConfigurationWorkingCopy config) throws CoreException;
-
- /**
- * Contribute to the registry (or interact with the remote vm) after the registry has been
- * created.
- *
- * @param registry
- *
- * @since 1.0.0
- */
- public void contributeToRegistry(ProxyFactoryRegistry registry);
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IConstructorProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IConstructorProxy.java
deleted file mode 100644
index 1294e18bf..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IConstructorProxy.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: IConstructorProxy.java,v $
- * $Revision: 1.6 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-/**
- * This is a proxy that allows a constructor to exist in the target VM
- * and be referenced in the IDE VM
- * Creation date: (1/17/00 1:21:52 PM)
- * @author: Joe Winchester
- */
-public interface IConstructorProxy extends IAccessibleObjectProxy {
-/**
- * Return a new instance with no creation arguments,
- * i.e. for a null constructor
- * Creation date: (1/17/00 1:22:11 PM)
- */
-IBeanProxy newInstance() throws ThrowableProxy;
-/**
- * Return a new instance with the specified creation arguments
- * Creation date: (1/17/00 1:22:11 PM)
- */
-IBeanProxy newInstance(IBeanProxy[] creationArguments) throws ThrowableProxy;
-
-IBeanProxy newInstanceCatchThrowableExceptions();
-IBeanProxy newInstanceCatchThrowableExceptions(IBeanProxy[] creationArguments);
-
-IBeanTypeProxy[] getParameterTypes();
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IDimensionBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IDimensionBeanProxy.java
deleted file mode 100644
index 33030b9a5..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IDimensionBeanProxy.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: IDimensionBeanProxy.java,v $
- * $Revision: 1.2 $ $Date: 2005/08/24 20:39:05 $
- */
-
-
-
-/**
- * Interface to a Dimension bean proxy.
- *
- * These are common for different windowing systems, e.g. AWT and SWT. So this here
- * is common interface for them.
- * Creation date: (4/7/00 3:46:39 PM)
- * @author: Administrator
- */
-public interface IDimensionBeanProxy extends IBeanProxy {
- public int getHeight();
- public int getWidth();
- public void setHeight(int height);
- public void setWidth(int width);
- public void setSize(int width, int height);
- public void setSize(IDimensionBeanProxy dim);
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IExpression.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IExpression.java
deleted file mode 100644
index 396adf177..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IExpression.java
+++ /dev/null
@@ -1,1009 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: IExpression.java,v $
- * $Revision: 1.8 $ $Date: 2005/08/24 20:39:05 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-import org.eclipse.jem.internal.proxy.initParser.tree.*;
-import org.eclipse.jem.internal.proxy.initParser.tree.IExpressionConstants;
-import org.eclipse.jem.internal.proxy.initParser.tree.NoExpressionValueException;
-
-/**
- * This is an expression. It will be evaluated on the other side. The difference between an
- * expression and using IMethodProxy's, IConstructorProxy's, etc. is the granularity. The proxies
- * are one round-trip to the other side for each access or execution. The expression builds them up
- * and will execute them all at once on the other side. Another difference is that the reflection
- * will be done on the other side too. For instance when invoking a method, the method name is
- * passed into the expression as a string then reflected and then invoked, while with method
- * proxies, the string is used to find the proxy on the other side, and then a later round-trip
- * will be used to invoke it.
- *
- * Also an expression is a one-time use object. It can't be reused a second time. A new one must be
- * built up again.
- *
- * We are not using separate instances of expressions, and types of expressions, because we don't
- * want to build up many objects (in a form of an expression tree) that will then be thrown away
- * (one for each expression in the nested list of expressions). We just build the command list as
- * we build the expression.
- *
- * To use, you call the IStandardBeanProxyFactory's createExpression method. An IExpression is
- * returned. From there you will start creating the contents of the expression. And then you will
- * finally either getExpressionValue() to get the final value of the expression, or use
- * invokeExpression() to just execute the expression(s). If you use getExpressionValue(), there can
- * only be one root expression. If you use invokeExpression there can be more than one root
- * expression, and they will all be executed.
- *
- * Since sequence is so important, it will be tested and if anything is done out of order an
- * IllegalStateException will be thrown.
- *
- * Each time an expression is created, one argument passed in will be
- * It is guarenteed that the entire stack of commands will be sent without stopping except for IllegalStateException
- * due to out of order expressions.
- *
- * Note: This interface is not meant to be neither instantiated nor implemented by customers.
- * It is the interface into the expression processing. It is to be instantiated through the createExpression request.
- * The {@link org.eclipse.jem.internal.proxy.core.Expression} class is available as API. It is not meant to
- * be instantiated by customers, but customers can take the IExpression and cast to Expression for some advanced
- * API.
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanProxyFactory#createExpression()
- * @see java.lang.IllegalStateException
- * @since 1.0.0
- */
-public interface IExpression extends IExpressionConstants {
-
- /**
- * Return the registry this expression is working against.
- * @return
- *
- * @since 1.1.0
- */
- public ProxyFactoryRegistry getRegistry();
-
- /**
- * Invoke the expression(s). If there is more than one root expression, it will invoke them
- * in the order created. If the expression stack is not complete, then
- * So the array access must be followed by 1+indexCount expressions.
- *
- * @param forExpression This is for what expression this expression is being created.
- * @param indexCount The number of index expressions that will be created.
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createArrayAccess(ForExpression forExpression, int indexCount) throws IllegalStateException;
-
- /**
- * Create an Array Creation (e.g.
- * The dimensionExpressionCount is for how many dimensions have an expression in them. For instance,
- *
- * This must be followed by create expressions for:
- *
- * The dimensionExpressionCount is for how many dimensions have an expression in them. For instance,
- *
- * This must be followed by create expressions for:
- * dimensionExpressionCount times an:
- * This must be followed by createExpressions for:
- * expressionCount times an:
- * This must be followed by createExpressions for:
- *
- * This must be followed by createExpressions for:
- *
- * This must be followed by createExpressions for:
- * argumentCount times an:
- * Note: This method can throw {@link org.eclipse.jem.internal.proxy.common.UnresolvedCompilationError} while processing
- * and can be caught by an Expression try/catch. This is not thrown such that it can be caught by a real java try/catch.
- *
- * @param forExpression
- * @param type This is the type. It must be fully-qualified and if an inner class, it must have the "$" format.
- * @param argumentCount
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createClassInstanceCreation(ForExpression forExpression, String type, int argumentCount) throws IllegalStateException;
-
- /**
- * Create a new class instance expression (e.g.
- * This must be followed by createExpressions for:
- * argumentCount times an:
- * Note: This method can throw {@link org.eclipse.jem.internal.proxy.common.UnresolvedCompilationError} while processing
- * and can be caught by an Expression try/catch. This is not thrown such that it can be caught by a real java try/catch.
- *
- * @param forExpression
- * @param type This is the type.
- * @param argumentCount
- * @throws IllegalStateException
- * @throws IllegalArgumentException
- *
- * @since 1.0.0
- */
- public void createClassInstanceCreation(ForExpression forExpression, IProxyBeanType type, int argumentCount) throws IllegalStateException, IllegalArgumentException;
-
- /**
- * Create a conditional expression (e.g.
- * This must be followed by createExpressions for:
- *
- * Note: At this time we require a receiver. In the future it may be possible to not have one, but
- * for that we need a
- * This must be followed by createExpressions for:
- *
- * Note: At this time we require a receiver for non-static access. In the future it may be possible to not have one, but
- * for that we need a
- * This must be followed by createExpressions for:
- *
- *
- * If there are more than 2 operands (all with the same operator) then for convienence all of
- * the expression can be done in one expression than requiring several, one for each operator.
- * If they are different operators, then different expressions will be required.
- *
- *
- * This must be followed by createExpression for:
- *
- * This must be followed by createExpression for:
- *
- * Note: At this time we require a receiver. In the future it may be possible to not have one, but
- * for that we need a
- * This must be followed by createExpression for:
- *
- * Note: At this time we require a receiver. In the future it may be possible to not have one, but
- * for that we need a
- * This must be followed by createExpression for:
- *
- *
- * Note: If you want a type literal to be an IProxyBeanType, just use {@link IExpression#createProxyExpression(ForExpression, IProxy)} and pass in the
- * IProxyBeanType.
- *
- * @param forExpression
- * @param type This is the type. It must be fully-qualified and if an inner class, it must have the "$" format.
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createTypeLiteral(ForExpression forExpression, String type) throws IllegalStateException;
-
- /**
- * Create a type receiver. This is where a type is used as the receiver of a field access or a method invocation.
- * (e.g.
- * This is unusual in that there is no forExpression. It isn't needed because these are only valid
- * in certain situations (method or field receiver) and if used anywhere else it is an error.
- *
- * @param type This is the type. It must be fully-qualified and if an inner class, it must have the "$" format.
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createTypeReceiver(String type) throws IllegalStateException;
-
- /**
- * Create a type receiver. This is where a type is used as the receiver of a field access or a method invocation.
- * (e.g.
- * This is unusual in that there is no forExpression. It isn't needed because these are only valid
- * in certain situations (method or field receiver) and if used anywhere else it is an error.
- *
- * @param type This is the type proxy.
- * @throws IllegalStateException
- * @throws IllegalArgumentException
- *
- * @since 1.0.0
- */
- public void createTypeReceiver(IProxyBeanType type) throws IllegalStateException, IllegalArgumentException;
-
- /**
- * Create a boolean primitive literal (e.g.
- * A subexpression allows, at any time, to fork off the expression stack and do some other sets of expressions.
- * When the cooresponding {@link #createSubexpressionEnd()} is called, all of the expression results on the
- * stack that accumulated during the subexpression evaluation will be thrown away and the stack will be
- * what it was at the start of subexpression. Any ExpressionProxies that were resolved during the evaluation
- * will not be thrown away and will still be valid.
- *
- * This is useful if in the middle of an expression (such as method invocation and an argument is needed) to
- * go off and get the necessary value. This will allow expressions that require ROOTEXPRESSION state like a
- * try/catch. If you know the expression doesn't need this, then it is more efficient to not use subexpression.
- *
- * For example:
- *
- * Of course the following would of been the better way to do it without subexpressions. But sometimes
- * your code is in a position that you don't know you need to do this until it is too late.
- *
- *
- *
- * Note: It is guarenteed as part of the contract that expression proxies will be notified through the listeners of the final state in the
- * order the expression proxies were created.
- * @param forExpression This is for what expression this expression is being created.
- * @return a proxy to the expression value.
- * @throws IllegalStateException
- *
- * @since 1.1.0
- */
- public ExpressionProxy createProxyAssignmentExpression(ForExpression forExpression) throws IllegalStateException;
-
- /**
- * Create a reassignment expression. This is like the original proxy assignment except that instead of returning a new proxy, it
- * reassigns the new value to the existing proxy. This cannot be used on IBeanTypeExpressionProxy's. That is because
- * they are controlled by the registry and severe errors would occur if they were reassigned.
- *
- *
- * Note: Since we are not creating a new proxy, the notification on the callbacks will be in the original order of proxies. This
- * does not change the notification position of this proxy.
- *
- * @param forExpression
- * @param proxy
- * @throws IllegalStateException
- * @throws IllegalArgumentException if the expression proxy is for a BeanType instead of just a standard expression proxy.
- *
- * @since 1.1.0
- */
- public void createProxyReassignmentExpression(ForExpression forExpression, ExpressionProxy proxy) throws IllegalStateException, IllegalArgumentException;
-
- /**
- * A simple method invocation. This is a helper to make it easier for a simple method invoke. It uses only the
- * method proxy (not a string to look it up), it uses a IBeanProxy receiver (not a complicated expression), and the
- * arguments are a mixture of IBeanProxies and ExpressionProxies. Also it can be called only when the next
- * expression must be a RootExpression.
- *
- * @param method methodproxy of the method
- * @param receiver the receiver proxy or
- * Eventually {@link Expression#createBlockEnd()} must be called. You should use this pattern:
- *
- * This should be executed in the following way:
- *
- * Using this you can get just the exception as a proxy and/or execute some expressions as part of the catch clause.
- *
- * This can be followed by RootExpressions, or another catch, or a finally, or a try end.
- *
- * @param exceptionType the type of the exception to catch on.
- * @param wantExceptionReturned
- * Using this you can get just the exception as a proxy and/or execute some expressions as part of the catch clause.
- *
- * This can be followed by RootExpressions, or another catch, or a finally, or a try end.
- *
- * @param exceptionType the type of the exception to catch on.
- * @param wantExceptionReturned
- * This must be followed by createExpression for:
- *
- * This is a shortcut for:
- *
- * No need for a forExpression because it must currently be at ROOTEXPRESSION.
- *
- * It must be used in conjunction with endMark. You must use
- * However, the following code would be invalid nesting, and will throw an IllegalStateException on the createTryEnd. This is because
- * we tried to end the Try statement within the mark. This is invalid because if we let it go through it would
- * of popped the stack and when we got to the endMark the stack would of been popped past it and it could not
- * be restored to the same state as it was at the time of the mark. The try would of already been ended.
- *
- * If not at RootExpression at time of mark() request, an IllegalStateException will be thrown.
- * @return mark number, this number will be used in the cooresponding endMark.
- * @throws IllegalStateException
- *
- * @see IExpression#endMark(int)
- * @since 1.1.0
- */
- public int mark() throws IllegalStateException;
-
- /**
- * The end mark for a mark.
- *
- * No need for a forExpression because it must currently be at ROOTEXPRESSION.
- * @param markNumber
- * @throws IllegalStateException
- *
- * @see IExpression#mark()
- * @since 1.1.0
- */
- public void endMark(int markNumber) throws IllegalStateException;
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IExtensionRegistration.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IExtensionRegistration.java
deleted file mode 100644
index 3d138a7c7..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IExtensionRegistration.java
+++ /dev/null
@@ -1,42 +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: IExtensionRegistration.java,v $
- * $Revision: 1.1 $ $Date: 2005/06/15 20:19:11 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-
-/**
- * Extensions point ("extensions" elements of the "org.eclipse.jem.proxy.contributors" extension point).
- *
- * Implementers of this interface are called when the appropriate registry type for a given classPath/plugin is present.
- * It is used to register the registry type specific extensions.
- * @since 1.1.0
- */
-public interface IExtensionRegistration {
-
- /**
- * This will be called before any contributeToRegistry's have been called. Typically all that
- * should be done in here is to register extension factories or constants. It is best if no
- * actual proxy calls are made. This is because the registry does not yet have all of the
- * appropriate extensions registered and it would be possible to accidently reference a bean type
- * that has not yet had its appropriate factory registered.
- *
- * Note: This may be called more than once if used in more than one extension or if used in a plugin and a container path and both are found.
- * Should take this into account and not register twice.
- * @param baseRegistry
- *
- * @since 1.1.0
- */
- public void register(BaseProxyFactoryRegistry baseRegistry);
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IFieldProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IFieldProxy.java
deleted file mode 100644
index db0ac3eb2..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IFieldProxy.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: IFieldProxy.java,v $
- * $Revision: 1.6 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-/**
- * A Proxy to a field that allows the field value to be retrieved and set
- * This allows target VM proxying of the field and is analagous to the java.lang.Reflect.Field
- * in the same way IMethodProxy is analagous to java.lang.Reflect.Method
- * Creation date: (1/17/00 12:17:52 PM)
- * @author: Joe Winchester
- */
-public interface IFieldProxy extends IAccessibleObjectProxy, IProxyField {
-/**
- * Return the type of the field.
- */
-IBeanTypeProxy getFieldType();
-
-/**
- * Return the value of us on the subject argument.
- * If the field is a primitive type, the return proxy
- * will be of the primitive type too.
- * Creation date: (1/17/00 12:28:48 PM)
- */
-IBeanProxy get(IBeanProxy aSubject) throws ThrowableProxy;
-
-/**
- * Set the argument as the field value on the subject
- * Creation date: (1/17/00 12:28:48 PM)
- */
-void set(IBeanProxy aSubject, IBeanProxy argument) throws ThrowableProxy;
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IIntegerBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IIntegerBeanProxy.java
deleted file mode 100644
index 79be9fa18..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IIntegerBeanProxy.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: IIntegerBeanProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:05 $
- */
-
-
-/**
- * Interface to an integer bean proxy.
- * We originally had only an Integer proxy,
- * so the use of it was throughout the system.
- * We are now supporting Number instead, but
- * because there were so many places using int,
- * we've left it in.
- * Creation date: (2/6/00 8:52:42 AM)
- * @author: Joe Winchester
- */
-public interface IIntegerBeanProxy extends INumberBeanProxy {
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IInvokable.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IInvokable.java
deleted file mode 100644
index f21904d84..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IInvokable.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: IInvokable.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:05 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-
-/**
- * Interface for invoking method calls on the vm.
- * IMethodProxy implements it for when you have a method proxy available,
- * but you can also get a straight invokable which will get the
- * proxy on the vm at the time of execution.
- *
- * The method proxy factory can be used to return either method
- * proxies when the invokable will be used over and over, and
- * it can return IInvokable's when it is one shot deal. Though even
- * when one-shot deal it can be used over and over. There is just overhead because the
- * method is looked up each time. So a reasonable compromise would be if
- * using it infrequently or use closely together once or twice it is better
- * to use a Invokable instead of a method proxy.
- * @since 1.0.0
- */
-public interface IInvokable {
-
- /**
- * Invoke us on the subject
- * Creation date: (12/3/99 11:37:12 AM)
- * @author Joe Winchester
- */
- IBeanProxy invoke(IBeanProxy subject) throws ThrowableProxy;
-
- /**
- * Invoke us on the subject with the specified argument
- * Creation date: (12/3/99 11:37:12 AM)
- * @author Joe Winchester
- */
- IBeanProxy invoke(IBeanProxy subject, IBeanProxy argument) throws ThrowableProxy;
-
- /**
- * Invoke us on the subject with the specified arguments
- * Creation date: (12/3/99 11:37:12 AM)
- * @author Joe Winchester
- */
- IBeanProxy invoke(IBeanProxy subject, IBeanProxy[] arguments) throws ThrowableProxy;
-
- /**
- * Invoke us on the subject, however catch all exceptions
- * Only to be used when you don't want ThrowableExceptions. This should
- * not be the normal way to invoke.
- * Creation date: (12/3/99 11:37:12 AM)
- * @author Joe Winchester
- */
- IBeanProxy invokeCatchThrowableExceptions(IBeanProxy subject);
-
- /**
- * Invoke us on the subject with the specified argument, however catch all exceptions
- * Only to be used when you don't want ThrowableExceptions. This should
- * not be the normal way to invoke.
- * Creation date: (12/3/99 11:37:12 AM)
- * @author Joe Winchester
- */
- IBeanProxy invokeCatchThrowableExceptions(IBeanProxy subject, IBeanProxy argument);
-
- /**
- * Invoke us on the subject with the specified arguments, however catch all exceptions
- * Only to be used when you don't want ThrowableExceptions. This should
- * not be the normal way to invoke.
- * Creation date: (12/3/99 11:37:12 AM)
- * @author Joe Winchester
- */
- IBeanProxy invokeCatchThrowableExceptions(IBeanProxy subject, IBeanProxy[] arguments);
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IMethodProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IMethodProxy.java
deleted file mode 100644
index c6121e948..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IMethodProxy.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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: IMethodProxy.java,v $
- * $Revision: 1.7 $ $Date: 2005/08/24 20:39:05 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-/**
- * Interface for Method Proxies Creation date: (12/3/99 11:36:29 AM)
- *
- * @author: Joe Winchester
- */
-public interface IMethodProxy extends IAccessibleObjectProxy, IInvokable, IProxyMethod {
-
- /**
- * Answer the class the method is defined in. Creation date: (12/3/99 11:37:12 AM)
- *
- * @author Joe Winchester
- */
- IBeanTypeProxy getClassType();
-
- /**
- * Answer the name of the method Creation date: (12/3/99 11:37:12 AM)
- *
- * @author Joe Winchester
- */
- String getName();
-
- /**
- * Answer the parameter types of the method Creation date: (12/3/99 11:37:12 AM)
- *
- * @author Joe Winchester
- */
- IBeanTypeProxy[] getParameterTypes();
-
- /**
- * Answer the return type of the method Creation date: (12/3/99 11:37:12 AM)
- *
- * @author Joe Winchester
- */
- IBeanTypeProxy getReturnType();
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IMethodProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IMethodProxyFactory.java
deleted file mode 100644
index 8e0b1bad9..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IMethodProxyFactory.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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: IMethodProxyFactory.java,v $
- * $Revision: 1.6 $ $Date: 2005/08/24 20:39:05 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-/**
- * Factory for creating method proxies.
- *
- * The factory exists for use, but generally it is better to go through the bean type proxy to get a method proxy. This is useful for setting up a
- * bunch of method proxies in initialization routines so you don't need to have a bean type proxy for each.
- *
- * Creation date: (12/3/99 6:21:52 PM)
- *
- * @author: Joe Winchester
- */
-public interface IMethodProxyFactory extends IBeanProxyFactory {
-
- /**
- * Return a method proxy for the specified name, arguments from the class.
- *
- * @param className
- * @param methodName
- * @param parameterTypes
- * parameter type names or
- * Though typical for one-shot deal the invokable can be used over and over. There is just overhead because the method is looked up each time. So a reasonable compromise
- * would be if using it infrequently or is used closely together once or twice it is better to use a Invokable instead of a method proxy.
- *
- * Note there is no guarantee that the method is available. This won't be known until the actual invoke is done.
- *
- * @param className
- * @param methodName
- * @param parameterTypes
- * parameter type names or
- * Use the
- * This will add in the libraries from any fragments of any plugin that this
- * project references, either directly or indirectly through other plugins.
- *
- * It is used by launches to get the fragment libraries since these are not
- * added by default to the classpath for a project by PDE. That is because they
- * aren't needed for compilation purposes, but they are needed for running.
- *
- * @param controller the controller to contribute to.
- * @param info configuration info for the project
- * @throws CoreException
- *
- * @since 1.0.2
- */
- public abstract void getPDEContributions(IConfigurationContributionController controller, IConfigurationContributionInfo info) throws CoreException;
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IPointBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IPointBeanProxy.java
deleted file mode 100644
index b08ee1989..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IPointBeanProxy.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: IPointBeanProxy.java,v $
- * $Revision: 1.2 $ $Date: 2005/08/24 20:39:05 $
- */
-
-
-/**
- * Interface to a Point bean proxy.
- *
- * These are common for different windowing systems, e.g. AWT and SWT. So this here
- * is common interface for them.
- * Creation date: (4/7/00 3:46:39 PM)
- * @author: Administrator
- */
-public interface IPointBeanProxy extends IBeanProxy {
- public int getX();
- public int getY();
- public void setX(int x);
- public void setY(int y);
- public void setLocation(int x, int y);
- public void setLocation(IPointBeanProxy point);
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxy.java
deleted file mode 100644
index 5c963ec60..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxy.java
+++ /dev/null
@@ -1,48 +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: IProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:05 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-
-/**
- * A common interface for proxies. It is used by the expression processor to easily distinquish between
- * a proxy and an Expression proxy.
- * @since 1.1.0
- */
-public interface IProxy {
-
- /**
- * Return the registry this proxy was created with.
- * @return
- *
- * @since 1.1.0
- */
- public ProxyFactoryRegistry getProxyFactoryRegistry();
-
- /**
- * Is this a bean proxy (including all of the subinterfaces of it, like IMethodProxy).
- * @return
- * This is a shortcut for getMethodProxy() that takes arguments names where the names have been sent as null.
- *
- * @param expression
- * @param methodName
- * @return
- *
- * @since 1.1.0
- */
- public IProxyMethod getMethodProxy(IExpression expression, String methodName);
-
- /**
- * Get the IProxyMethod for the method from this beantype. It may be either a resolved method proxy (if already resolved) or
- * it may be an ExpressionProxy if not yet resolved.
- *
- * @param expression
- * @param methodName
- * @param parameterTypes array of parameter types or
- * These are common for different windowing systems, e.g. AWT and SWT. So this here
- * is common interface for them.
- * Creation date: (4/7/00 3:46:39 PM)
- * @author: Administrator
- */
-public interface IRectangleBeanProxy extends IBeanProxy {
- public int getX();
- public int getY();
- public void setX(int x);
- public void setY(int y);
- public void setLocation(int x, int y);
- public void setLocation(IPointBeanProxy point);
-
- public int getHeight();
- public int getWidth();
- public void setHeight(int height);
- public void setWidth(int width);
- public void setSize(int width, int height);
- public void setSize(IDimensionBeanProxy dim);
-
- public void setBounds(int x, int y, int width, int height);
- public void setBounds(IRectangleBeanProxy rect);
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IStandardBeanProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IStandardBeanProxyFactory.java
deleted file mode 100644
index 834039735..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IStandardBeanProxyFactory.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-
-
-/*
- * $RCSfile: IStandardBeanProxyFactory.java,v $
- * $Revision: 1.7 $ $Date: 2005/08/24 20:39:05 $
- */
-
-
-/**
- * The Standard base bean proxy factory.
- * This is the Interface that the desktop will talk
- * to.
- * Creation date: (12/3/99 11:52:09 AM)
- * @author: Joe Winchester
- */
-public interface IStandardBeanProxyFactory extends IBeanProxyFactory {
-
-/**
- * Get the {@link org.eclipse.jem.internal.proxy.common.IVMServer} proxy for the
- * this registry. This is only needed if you need to give the IVMserver to a proxy so that
- * it can access it.
- *
- * Note: Does not need to be given to callback proxies because they are given
- * an {@link org.eclipse.jem.internal.proxy.common.IVMCallbackServer} on initialization, and
- * that interface implements the IVMServer interface too.
- *
- * @return
- *
- * @since 1.1.0
- */
-public IBeanProxy getIVMServerProxy();
-/**
- * Return a new bean proxy for the primitive integer argument
- * Creation date: (12/3/99 11:52:20 AM)
- * @author Joe Winchester
- */
-public IIntegerBeanProxy createBeanProxyWith(int aPrimitiveInteger);
-/**
- * Return a new bean proxy for the primitive character argument
- * Creation date: (12/3/99 11:52:20 AM)
- * @author Joe Winchester
- */
-public ICharacterBeanProxy createBeanProxyWith(char aPrimitiveCharacter);
-/**
- * Return a new bean proxy for the primitive byte argument
- * Creation date: (12/3/99 11:52:20 AM)
- * @author Joe Winchester
- */
-public INumberBeanProxy createBeanProxyWith(byte aPrimitiveByte);
-/**
- * Return a new bean proxy for the primitive short argument
- * Creation date: (12/3/99 11:52:20 AM)
- * @author Joe Winchester
- */
-public INumberBeanProxy createBeanProxyWith(short aPrimitiveShort);
-/**
- * Return a new bean proxy for the primitive long argument
- * Creation date: (12/3/99 11:52:20 AM)
- * @author Joe Winchester
- */
-public INumberBeanProxy createBeanProxyWith(long aPrimitiveLong);
-/**
- * Return a new bean proxy for the primitive float argument
- * Creation date: (12/3/99 11:52:20 AM)
- * @author Joe Winchester
- */
-public INumberBeanProxy createBeanProxyWith(float aPrimitiveFloat);
-/**
- * Return a new bean proxy for the primitive double argument
- * Creation date: (12/3/99 11:52:20 AM)
- * @author Joe Winchester
- */
-public INumberBeanProxy createBeanProxyWith(double aPrimitiveDouble);
-/**
- * Return a new bean proxy for the Boolean argument
- * Creation date: (12/3/99 11:52:20 AM)
- * @author Joe Winchester
- */
-public IBooleanBeanProxy createBeanProxyWith(Boolean aBoolean);
-/**
- * Return a new bean proxy for the Integer argument
- * Creation date: (12/3/99 11:52:20 AM)
- * @author Joe Winchester
- */
-public IIntegerBeanProxy createBeanProxyWith(Integer anInteger);
-/**
- * Return a new bean proxy for the Character argument
- * Creation date: (12/3/99 11:52:20 AM)
- * @author Joe Winchester
- */
-public ICharacterBeanProxy createBeanProxyWith(Character aCharacter);
-/**
- * Return a new bean proxy for the Number argument, can handle any of the numbers.
- * Creation date: (12/3/99 11:52:20 AM)
- * @author Joe Winchester
- */
-public INumberBeanProxy createBeanProxyWith(Number aNumber);
-/**
- * Return a new bean proxy for the string argument
- * Creation date: (12/3/99 11:52:20 AM)
- * @author Joe Winchester
- */
-public IStringBeanProxy createBeanProxyWith(String aString);
-
-/**
- * Convert the non-primitive proxy to a primitive proxy, if it
- * of one of the wrapper types. If not, then just return the proxy as is.
- *
- * I.E. BooleanClassProxy will convert to BooleanTypeProxy, but ObjectClassProxy will just return unchanged.
- * @param nonPrimitiveProxy
- * @return either the primitive proxy that nonPrimitive wrappers, or the non-primitive if not a wrapper type.
- *
- * @since 1.0.0
- */
-public IBeanProxy convertToPrimitiveBeanProxy(IBeanProxy nonPrimitiveProxy);
-/**
- * Return a new bean proxy for the boolean argument
- * Creation date: (12/3/99 11:52:20 AM)
- * @author Joe Winchester
- */
-public IBooleanBeanProxy createBeanProxyWith(boolean aBoolean);
-/**
- * Create an array bean proxy.
- *
- * - (int, new int[2] {3, 4}) will create:
- * int [3] [4]
- *
- * - (int[], new int[1] {1})
- * int [1]
- *
- * - (int[], new int[2] {2,3})
- * int [2] [3]
- *
- *
- * - (int[], null) or (int[], new int[0]) or (int, null) or (int, new int[0])
- * int [0]...
- * or
- * (int[][]..., null) or (int[][]..., new int[0])
- * int[0][]...
- * This is because an array instance with no specified dimensions is not valid.
- *
- * - (int[][], new int[1] {3})
- * int[3][]
- */
-public IArrayBeanProxy createBeanProxyWith(IBeanTypeProxy type, int[] dimensions) throws ThrowableProxy;
-/**
- * Create a one-dimensional array.
- * The result will be the same as calling
- * createBeanProxyWith(IBeanTypeProxy type, new int[1] {x})
- * where 'x' is the value passed in as the dimension.
- */
-public IArrayBeanProxy createBeanProxyWith(IBeanTypeProxy type, int dimension) throws ThrowableProxy;
-
-/**
- * Create a bean proxy from an initialization string.
- *
- * It is not recommended that this method be commonly used. That is because no type checking will be performed
- * on the result. Whatever it evaluates to be will be what it is. It is useful for the rare cases where the desired
- * result type is not known.
- *
- * It is recommended instead to use the newInstance(initString) method on the appropriate IBeanTypeProxy so that the
- * result can be type-checked to make sure the string evaluates to something of that type.
- *
- * @param initializationString
- * @return
- * @throws ThrowableProxy
- * @throws InstantiationException
- * @throws ClassCastException
- *
- * @since 1.0.0
- */
-public IBeanProxy createBeanProxyFrom(String initializationString) throws ThrowableProxy, InstantiationException, ClassCastException;
-
-/**
- * Release the proxy. In the case of Remote VM, this means
- * it will remove the proxy on the client side, and remove
- * the reference to the real object on the server side. On the server
- * side the real object may not go away because something else could
- * be holding onto it, but it won't be held simply because the client
- * is holding onto it.
- */
-public void releaseProxy(IBeanProxy proxy);
-
-/**
- * Create an expression.
- * @return The expression.
- *
- * @since 1.0.0
- */
-public IExpression createExpression();
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IStandardBeanTypeProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IStandardBeanTypeProxyFactory.java
deleted file mode 100644
index 53d3039f0..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IStandardBeanTypeProxyFactory.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: IStandardBeanTypeProxyFactory.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:05 $
- */
-
-import java.util.Set;
-/**
- * The standard bean type proxy factory.
- * This is the Interface that the desktop will talk
- * to, the one that is returned when getCurrent() is called.
- * Creation date: (3/10/00 11:00:50 AM)
- * @author: Richard Lee Kulp
- */
-public interface IStandardBeanTypeProxyFactory extends IBeanProxyFactory {
-
-/**
- * Used by other registered bean type proxy factories to
- * register their bean type proxies with the standard factory
- * so that it will be cached there.
- * Note: This is not meant to be called by customers. It is here for the usage
- * of registry extensions.
- * @param aBeanTypeProxy
- * @param permanent indicates that beantype will never be released,
- * not even if explicit request is made.
- *
- * @since 1.1.0
- */
-void registerBeanTypeProxy(IBeanTypeProxy aBeanTypeProxy, boolean permanent);
-
-/**
- * Used by other registered bean type proxy factories to
- * register their proxy bean type with the standard factory
- * so that it will be cached there.
- * Note: This is not meant to be called by customers. It is here for the usage
- * of registry extensions.
- * @param aBeanTypeProxy
- * @param permanent indicates that beantype will never be released,
- * not even if explicit request is made.
- *
- * @since 1.1.0
- */
-void registerBeanTypeProxy(IProxyBeanType aBeanTypeProxy, boolean permanent);
-
-/**
- * Return the beanType proxy for the given class name.
- * It must be fully qualified. And for arrays it can handle
- * either the jni type ([Ljava.lang.Object;) or the Java EMF Model
- * formal type (java.lang.Object[]).
- */
-IBeanTypeProxy getBeanTypeProxy(String className);
-
-/**
- * Get the beantype proxy suitable for an expression.
- *
- * @param expression
- * @param typeName
- * @return
- *
- * @since 1.1.0
- */
-IProxyBeanType getBeanTypeProxy(IExpression expression, String typeName);
-
-/**
- * Return an Array type proxy for the given class name of
- * the specified dimensions. This is a helper method. The
- * same result can be gotton from getBeanTypeProxy.
- * e.g.
- * getBeanTypeProxy("java.lang.Object", 3)
- * is the same as:
- * getBeanTypeProxy("[[[Ljava.lang.Object;")
- *
- * They both result in a type of:
- * Object [][][]
- *
- * or if using the JNI format (proxy format)
- * getBeanTypeProxy("[Ljava.langObject;", 3)
- * becomes
- * Object [][][][]
- *
- * or if using the standard java format (as in actual code)
- * getBeanTypeProxy("java.langObject[];", 3)
- * becomes
- * Object [][][][]
- */
-IBeanTypeProxy getBeanTypeProxy(String componentClassName, int dimensions);
-
-/**
- * Return an Array type proxy for the given class name of
- * the specified dimensions. This is a helper method. The
- * same result can be gotton from getBeanTypeProxy.
- * e.g.
- * getBeanTypeProxy("java.lang.Object", 3)
- * is the same as:
- * getBeanTypeProxy("[[[Ljava.lang.Object;")
- *
- * They both result in a type of:
- * Object [][][]
- *
- * or if using the JNI format (proxy format)
- * getBeanTypeProxy("[Ljava.langObject;", 3)
- * becomes
- * Object [][][][]
- *
- * or if using the standard java format (as in actual code)
- * getBeanTypeProxy("java.langObject[];", 3)
- * becomes
- * Object [][][][]
- *
- * @param expression
- * @param componentClassName
- * @param dimensions
- * @return
- *
- * @since 1.1.0
- */
-IProxyBeanType getBeanTypeProxy(IExpression expression, String componentClassName, int dimensions);
-
-/**
- * Test if a specific bean type has been registered. Don't access and create
- * if it isn't currently registered.
- */
-boolean isBeanTypeRegistered(String className);
-
-/**
- * Registered types. Return a set of strings that are the registered classes.
- * This Set isn't synchronized, there may be changes while accessing it.
- */
-Set registeredTypes();
-
-/**
- * Maintain list of not found types. This list is types that were requested,
- * but didn't exist. This method sets whether list should be maintained or not.
- * If set to false, the list will be empty. The default is false.
- *
- * @param maintain
- */
-void setMaintainNotFoundTypes(boolean maintain);
-
-/**
- * Maintain list of not found types. This list is types that were requested,
- * but didn't exist. This method returns whether list should be maintained or not.
- * If false, the list will be empty. The default is false.
- *
- * @return maintaining not found types.
- */
-boolean isMaintainNotFoundTypes();
-
-/**
- * Maintain list of not found types. This list is types that were requested,
- * but didn't exist.
- *
- * @param className Classname to search for to see if ever not found.
- * @return true if the bean type had been searched for but was not found. If not maintaining, then result will be false.
- */
-boolean isBeanTypeNotFound(String className);
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IStringBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IStringBeanProxy.java
deleted file mode 100644
index 177d454f3..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IStringBeanProxy.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: IStringBeanProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:05 $
- */
-
-
-/**
- * Optimized implementation that should be used for string proxies that
- * allows the IDE VM to get the string value easily
- * Creation date: (2/6/00 8:58:22 AM)
- * @author: Joe Winchester
- */
-public interface IStringBeanProxy extends IBeanProxy {
-/**
- * Return the proxied string as a string that the IDE can use
- * Creation date: (2/6/00 8:58:32 AM)
- */
-String stringValue();
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IUIRunner.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IUIRunner.java
deleted file mode 100644
index e1bba9752..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IUIRunner.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: IUIRunner.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:05 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-
-/**
- * Interface that doesn't require UI. The implementation will. This will
- * only be used if within UI environment.
- *
- *
- * Note that the
- * Use the
- * The resulting array is unaffected by subsequent adds or removes.
- * If there are no listeners registered, the result is an empty array
- * singleton instance (no garbage is created).
- * Use this method when notifying listeners, so that any modifications
- * to the listener list during the notification will have no effect on the
- * notification itself.
- *
- * This is a special class that should not be referenced directly from code. Reference it through the
- * interface that it implements.
- *
- * @see org.eclipse.jem.internal.proxy.core.IPDEContributeClasspath
- * @since 1.0.2
- */
-class PDEContributeClasspath implements IPDEContributeClasspath {
-
- public void getPDEContributions(IConfigurationContributionController controller, IConfigurationContributionInfo info) throws CoreException {
- if (!info.getPluginIds().isEmpty()) {
- Collection pluginIds = info.getPluginIds().keySet();
- PluginModelManager modelManager = PDECore.getDefault().getModelManager();
- IFragmentModel[] fragments = modelManager.getFragments();
- for (int i = 0; i < fragments.length; i++) {
- IFragment fragment = fragments[i].getFragment();
- if (pluginIds.contains(fragment.getPluginId())) {
- // We'll do a cheat for now and assume fragment is for same version of plugin. PDECore actually
- // checks the version of the fragment against the version of the plugin to see they are for each
- // other, but we'll just assume they are for now. Change this later if we actually do run into this case.
- IResource resource = fragment.getModel().getUnderlyingResource();
- if (resource != null) {
- IProject fragProject = resource.getProject();
- if (fragProject.hasNature(JavaCore.NATURE_ID)) {
- controller.contributeProject(fragProject);
- }
- continue;
- }
-
- IPluginLibrary[] libraries = fragment.getLibraries();
- for (int j = 0; j < libraries.length; j++) {
- IPluginLibrary library = libraries[j];
- String name = library.getName();
- String expandedName = ClasspathUtilCore.expandLibraryName(name);
-
- IPluginModelBase model = library.getPluginModel();
- URL url = getPath(model, expandedName);
- if (url != null)
- controller.contributeClasspath(url, IConfigurationContributionController.APPEND_USER_CLASSPATH);
- }
- }
- }
- }
-
- return;
- }
-
- private URL getPath(IPluginModelBase model, String libraryName) {
- try {
- IResource resource = model.getUnderlyingResource();
- if (resource != null) {
- IResource jarFile = resource.getProject().findMember(libraryName);
- if (jarFile != null)
- return jarFile.getFullPath().toFile().toURL();
- } else {
- File file = new File(model.getInstallLocation(), libraryName);
- if (file.exists())
- return file.toURL();
- }
- } catch (MalformedURLException e) {
- ProxyPlugin.getPlugin().getLogger().log(e, Level.WARNING);
- }
- return null;
- }
-
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/PDEContributeClasspathInstance.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/PDEContributeClasspathInstance.java
deleted file mode 100644
index 304b7148f..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/PDEContributeClasspathInstance.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: PDEContributeClasspathInstance.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:05 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-import java.util.logging.Level;
-
-import org.eclipse.core.runtime.Platform;
-
-
-
-/**
- * Accessor to the IPDEContributeClasspath instance to use.
- *
- * Terminate the registry, but don't necessarily wait for it.
- *
- * @see #terminateRegistry(boolean)
- * @since 1.0.0
- */
- public final void terminateRegistry() {
- terminateRegistry(false);
- }
-
- /**
- * Terminate the registry.
- *
- * This will go through each factory and terminate it, and
- * let the subclass terminate. It will then remove all of the factories so that
- * if there are any proxies still hanging around they won't hold onto everything,
- * just the this registry will be held onto.
- *
- * Note during termination, the factories should not reference any other factory.
- * It can assume that the factories will take care of themselves and they should
- * only release their resources.
- *
- * The constants registry will not be terminated because they aren't factories.
- * However, they will be cleared (no longer referenced) from here so that they
- * can be GC'd.
- *
- * @param wait
- * It is up to each registry to determine what this means.
- *
- * The wait parm is a suggestion if it is
- * This is useful for NLS purposes. In NLS situations the main bundle would contain the main non-library jar with the default properties files.
- * Then a fragment for each set of languages will be installed. Within each fragment will be a jar with the same filepath, and it will
- * contain the properties files for that language. This would be done only for plugin non-library jars.
- * The NLS for library jars of a plugin (i.e. those jars that are the
- * If in development mode, then if the jar is not found it will look in the plugin project's build.properties to find the output directory
- * of the jar. If not in the build.properties (meaning it isn't being built by PDE), it will look in the proxy.jars file (if there is one).
- * This file is used for jars that are built in a separate project from the plugin but will be found in the plugin at execution.
- *
- * @param bundle bundle and its fragments to look in.
- * @param filenameWithinBundle path to filename within the bundle and fragments. This must be a file, not a directory.
- * For finding the bundle itself (only when the bundle is packaged as a jar), use <@link #platformFind(Bundle)>. This does not use
- * the platform shortcuts like "$os$". It finds the files exactly as specified.
- * @param asLocal
- * If in development mode, then if the jar is not found it will look in the plugin project's build.properties to find the output directory
- * of the jar. If not in the build.properties (meaning it isn't being built by PDE), it will look in the proxy.jars file (if there is one).
- * This file is used for jars that are built in a separate project from the plugin but will be found in the plugin at execution.
- *
- * @param bundle bundle and its fragments to look in.
- * @param filenameWithinBundle path to filename within the bundle and fragments. This must be a file, not a directory.
- * For finding the bundle itself (only when the bundle is packaged as a jar), use <@link #platformFind(Bundle)>.
- * @param asLocal
- * The key will be the containers, and the value will be a
- * This is used for determining if a project's container implements the desired contributor.
- *
- * Will be empty if no project sent in to launch configuration.
- *
- * @see org.eclipse.jdt.core.IClasspathContainer
- *
- */
- public Map containers = Collections.EMPTY_MAP;
-
-
- /* (non-Javadoc)
- * Map of unique container id strings found in classpath (including required projects).
- * If a container with the same id was found in more than one project, only one id will
- * be in this set since they are the same.
- *
- * The key will be the container ids, and the value will be ContainerPaths
- *
- * Will be empty if no project sent in to launch configuration.
- *
- */
- public Map containerIds = Collections.EMPTY_MAP;
-
- /* (non-Javadoc)
- * Set of unique plugin id strings found in classpath (including required projects).
- * If a required plugin with the same id was found in more than one project, only one id will
- * be in this set since they are the same.
- *
- * The key will be the plugin ids, and the value will be a
- * The key will be the
- * This class is not intended to be subclassed by clients.
- *
- * This will wait for build. If you
- * know the build has been suspended by your thread, then you must use the other method that takes a waitForThread
- * boolean, and you must pass in false. Otherwise it will deadlock.
- *
- * @param project The project. It must be a java project, and it cannot be
- * If you know the build has been suspended by your thread, then you must use call this with false for waitForThread. Otherwise it will deadlock.
- *
- * @param project The project. It must be a java project, and it cannot be
- * This will wait for build. If you
- * know the build has been suspended by your thread, then you must use the other method that takes a waitForThread
- * boolean, and you must pass in false. Otherwise it will deadlock.
- *
- * @param config
- * @param vmTitle title for VM. It may be
- * If you know the build has been suspended by your thread, then you must use you must pass in false for waitForThread. Otherwise it will deadlock.
- *
- * @param config
- * @param vmTitle title for VM. It may be
- * This is meant to be called only by registry implementations that do not launch through a launch configration after the registry is created but
- * before the {@link IConfigurationContributor#contributeToRegistry(ProxyFactoryRegistry)} is called. This will be called automatically
- * by registries that used a launch configuration to launch.
- *
- * @param baseRegistry
- * @param launchInfo
- * @throws CoreException
- *
- * @since 1.1.0
- */
- public static void performExtensionRegistrations(final BaseProxyFactoryRegistry baseRegistry, LaunchInfo launchInfo) throws CoreException {
- IConfigurationContributionInfo configInfo = launchInfo.configInfo;
- if (configInfo != null && (!configInfo.getContainerIds().isEmpty() || !configInfo.getPluginIds().isEmpty())) {
- String registryID = baseRegistry.getRegistryTypeID();
- // Note: We don't care about the visibility business here. For contributors to proxy it means
- // some classes in the projects/plugins/etc. need configuration whether they are visible or not.
- // This is because even though not visible, some other visible class may instantiate it. So it
- // needs the configuration.
-
- // First call registrations that exist for a container id.
- for (Iterator iter = configInfo.getContainerIds().values().iterator(); iter.hasNext();) {
- ContainerPaths paths = (ContainerPaths) iter.next();
- IConfigurationElement[] contributors = ProxyPlugin.getPlugin().getContainerExtensions(paths.getContainerId(), paths.getAllPaths());
- if (contributors != null)
- for (int i = 0; i < contributors.length; i++) {
- if (registryID.equals(contributors[i].getAttributeAsIs(ProxyPlugin.PI_REGISTRY_TYPE))) {
- try {
- final IExtensionRegistration contributor = (IExtensionRegistration) contributors[i].createExecutableExtension(ProxyPlugin.PI_CLASS);
- SafeRunner.run(new ISafeRunnable() {
-
- public void run() throws Exception {
- contributor.register(baseRegistry);
- }
-
- public void handleException(Throwable exception) {
- // Don't need to do anything, Platform logs it for me.
- }
-
- });
- } catch (ClassCastException e) {
- // If not right class, just ignore it.
- }
- }
- }
- }
-
- // Finally add in contributors that exist for a plugin id.
- for (Iterator iter = configInfo.getPluginIds().keySet().iterator(); iter.hasNext();) {
- String pluginId = (String) iter.next();
- IConfigurationElement[] contributors = ProxyPlugin.getPlugin().getPluginExtensions(pluginId);
- if (contributors != null)
- for (int i = 0; i < contributors.length; i++) {
- if (registryID.equals(contributors[i].getAttributeAsIs(ProxyPlugin.PI_REGISTRY_TYPE))) {
- try {
- final IExtensionRegistration contributor = (IExtensionRegistration) contributors[i].createExecutableExtension(ProxyPlugin.PI_CLASS);
- SafeRunner.run(new ISafeRunnable() {
-
- public void run() throws Exception {
- contributor.register(baseRegistry);
- }
-
- public void handleException(Throwable exception) {
- // Don't need to do anything, Platform logs it for me.
- }
-
- });
- } catch (ClassCastException e) {
- // If not right class, just ignore it.
- }
- }
- }
- }
- }
-}
-
-
- /*
- * Run the build. If the original launch was in the UI thread, this will
- * be called under control of an IProgressService so that it is in a separate
- * thread and the UI will remain responsive (in that either a busy cursor comes
- * up or eventually a progress dialog).
- * If the pm is canceled, this will just return, but the caller must check if the pm is canceled.
- *
- *
- * If we are in development and it will pick it up from the path
- * that is listed in the proxy.jars file located in the bundle passed in. This allows development code to be
- * used in place of the actual runtime jars. If the runtime jars are found,
- * they will be used.
- *
- * For example if looking for file runtime/xyz.jar in bundle abc, then in bundle directory for abc,
- * there should be a file called proxy.jars. This should only be in development, this file should not
- * be distributed for production. It would be distributed in the SDK environment when testing is desired.
- *
- * The format of the file is:
- * runtimefile=/projectname/builddirectory
- *
- * For this to work when the actual jar is not found, the Eclipse must of been started in
- * dev mode (i.e. the bundle location will be a project within the developer Eclipse. That way
- * we can go up one level for the current install location and assume the above projectname
- * will be found relative to the directory.
- *
- * For the above example:
- * runtime/xyz.jar=/xyzproject/bin
- *
- * It will return "." if file can't be found. It means nothing but it won't cause jvm to crash.
- *
- * @param bundle
- * @param filenameWithinBundle
- * @return the path to the file or
- * To find the files in the fragments that are in the runtime path (i.e. libraries), it will need to use a suffix,
- * This is because the JDT will get confused if a runtime jar in a fragment has the same name
- * as a runtime jar in the main bundle.
- * NOTE: This is obsolete. JDT no longer has this problem. So we can find libraries in fragments that have the
- * same file path.
- *
- * So we will use the following search pattern:
- *
- * If the files in the fragments are not in the fragments library path then it can have the same name. NOTE: Obsolete,
- * JDT can now handle same name.
- *
- * This is useful for nls where the nls for the filename will be in one or more of the fragments of the plugin.
- *
- * @param bundle
- * @param filenameWithinBundle
- * @return
- *
- * @since 1.0.0
- */
- public String[] localizeAllFromBundleAndFragments(Bundle bundle, String filenameWithinBundle) {
- URL[] urls = urlLocalizeAllFromBundleAndFragments(bundle, filenameWithinBundle);
- String[] result = new String[urls.length];
- for (int i = 0; i < urls.length; i++) {
- result[i] = getFileFromURL(urls[i]);
- }
- return result;
- }
-
- public static String getFileFromURL(URL url) {
- // We need to do this in a device independent way. The URL will always put a leading '/' in the
- // file part of the URL, but on Windows we need to have this '/' removed. Some JRE's don't understand it.
- return new File(url.getFile()).getAbsolutePath();
-
- }
-
- public URL urlLocalizeFromBundleAndFragments(Bundle bundle, String filenameWithinBundle) {
- return urlLocalizeFromBundleAndFragments(bundle, new Path(filenameWithinBundle));
- }
- public URL urlLocalizeFromBundleAndFragments(Bundle bundle, IPath filenameWithinBundle) {
- try {
- URL pvm = FileLocator.find(bundle, filenameWithinBundle, null);
- if (pvm != null)
- return FileLocator.toFileURL(pvm);
- } catch (IOException e) {
- }
- if (devMode) {
- URL[] urls = findDevAllFromBundleAndFragments(bundle, filenameWithinBundle.toString());
- if (urls.length > 0)
- return urls[0];
- else
- return null;
- } else
- return null;
- }
-
- /**
- * Like
- * If in dev mode, it will use the binary output directory for the plugin libraries from the build.properties file.
- *
- * @param bundle
- * @return URL array of local library references for the bundle or null if can't resolve to local.
- *
- * @since 1.2.0
- */
- public URL[] urlLocalizeBundle(Bundle bundle) {
- URL[] pvms;
- try {
- pvms = new URL[] {FileLocator.resolve(bundle.getEntry("/"))}; //$NON-NLS-1$
- if (pvms[0].getProtocol().equals("jar")) { //$NON-NLS-1$
- // The bundle is a jar, so use as is.
- pvms[0] = getFilePath(pvms[0]);
- return pvms;
- }
- } catch (IOException e) {
- pvms = null;
- }
- try {
- // It is a directory. We could be in either development mode or not. Walk the manifest classpath and find the libraries.
- Properties buildProps = null;
- String libraries = (String) bundle.getHeaders().get(Constants.BUNDLE_CLASSPATH);
- ManifestElement[] elements = ManifestElement.parseHeader(Constants.BUNDLE_CLASSPATH, libraries);
- List urls = new ArrayList();
- if (elements != null) {
- for (int i = 0; i < elements.length; i++) {
- try {
- URL pvm = bundle.getEntry(elements[i].getValue());
- if (pvm != null) {
- urls.add(FileLocator.toFileURL(pvm));
- continue;
- }
- } catch (IOException e) {
- }
- if (devMode) {
- // Not found as a jar, so see if can be found in devmode.
- if (buildProps == null) {
- buildProps = new Properties();
- try {
- URL bp = bundle.getEntry("build.properties"); //$NON-NLS-1$
- if (bp != null) {
- InputStream ios = null;
- try {
- ios = bp.openStream();
- buildProps.load(ios);
- } finally {
- if (ios != null)
- ios.close();
- }
- }
- } catch (IOException e) {
- }
- }
- String pathString = buildProps.getProperty("output."+elements[i].getValue()); //$NON-NLS-1$
- if (pathString != null) {
- try {
- urls.add(FileLocator.toFileURL(bundle.getEntry(pathString)));
- } catch (IOException e) {
- }
- }
- }
- }
- return (URL[]) urls.toArray(new URL[urls.size()]);
- } else if (devMode) {
- // If dev mode then we would look in the build.properties to find the output.. entry. This tells where the binaries are
- // for project. If there is no "output.." entry then either it is not a runnable plugin or the rare case is it is only
- // classfiles in a folder. In that case see if there is a "source.." entry and use that.
- try {
- URL bp = bundle.getEntry("build.properties"); //$NON-NLS-1$
- if (bp != null) {
- InputStream ios = null;
- try {
- ios = bp.openStream();
- Properties props = new Properties();
- props.load(ios);
- String pathString = props.getProperty("output.."); //$NON-NLS-1$
- if (pathString != null) {
- return new URL[] {FileLocator.resolve(bundle.getEntry(pathString))};
- } else if ((pathString = props.getProperty("source..")) != null) { //$NON-NLS-1$
- // Probably a class folder, so use the source instead.
- return new URL[] {FileLocator.resolve(bundle.getEntry(pathString))};
- } else
- return pvms; // Try the root of the plugin.
- } finally {
- if (ios != null)
- ios.close();
- }
- }
- } catch (IOException e) {
- }
-
- }
- } catch (BundleException e) {
- }
- return null;
- }
-
- /**
- * Returns a url as file url if it can. If it is already a file url, it will just return it.
- * If it is "jar:file:...." type protocol, then it will strip it down to the file part, which is
- * the jar itself, and not the file within the jar.
- * @param l
- * @return
- *
- * @since 1.2.0
- */
- public static URL getFilePath(URL l) {
- if (l != null) {
- if (l.getProtocol().equals("file")) //$NON-NLS-1$
- return l;
- else if (l.getProtocol().equals("jar")) { //$NON-NLS-1$
- String f = l.getFile();
- int idx = f.lastIndexOf('!');
- if (idx>=0)
- f = f.substring(0,idx);
- try {
- return getFilePath(new URL(f));
- } catch (MalformedURLException e) {}
- }
- }
- return null;
- }
-
- /**
- * A helper to order the plugins into pre-req order.
- * If A eventually depends on B, then B will be ahead of A in the
- * list of plugins. (I.e. B is a pre-req somewhere of A).
- *
- * @param bundlesToOrder - Bundles of interest. The results will have these in thiee correct order.
- * @return An array of the Bundlers in there order from no prereqs in set to the leaves.
- *
- * @since 1.0.0
- */
- public static Bundle[] orderPlugins(final Set bundlesToOrder) {
- Map prereqsMap = new HashMap(bundlesToOrder.size()*3);
- int ndx = bundlesToOrder.size();
- Bundle[] result = new Bundle[ndx];
- Map dependents = getDependentCounts(false, bundlesToOrder, prereqsMap); // We want the inactive ones too. That way have complete order. They can be ignored later if necessary.
- // keep iterating until all have been visited. This will actually find them in reverse order from what we
- // want, i.e. it will find the leaves first. So we will build result array in reverse order.
- while (!dependents.isEmpty()) {
- // loop over the dependents list. For each entry, if there are no dependents, visit
- // the bundle and remove it from the list. Make a copy of the keys so we don't end up
- // with concurrent accesses (since we are deleting the values as we go)
- Iterator ib = dependents.entrySet().iterator();
- while (ib.hasNext()) {
- Map.Entry entry = (Map.Entry) ib.next();
- Bundle bundle = (Bundle) entry.getKey() ;
- int[] count = (int[]) entry.getValue();
- if (count != null && count[0] <= 0) {
- if (bundlesToOrder.contains(bundle)) {
- result[--ndx] = bundle;
- if (ndx == 0)
- return result; // We've ordered all that we care about. Anything left over is unimportant.
- }
- ib.remove();
- // decrement the dependent count for all of the prerequisites.
- Bundle[] requires = getPrereqs(bundle, prereqsMap);
- for (int j = 0; j < requires.length; j++) {
- Bundle prereq = requires[j];
- int[] countPrereq = (int[]) dependents.get(prereq);
- if (countPrereq != null)
- --countPrereq[0];
- }
- }
- }
- }
- return result;
- }
-
- /**
- * Get all of the prereqs for this bundle, all of the way down to the root.
- * They will be in top-down depth-first order. There won't be duplicates. They will show up
- * only once the first time they are found.
- *
- * @param bundle
- * @return list of all pre-reqs.
- *
- * @since 1.0.0
- */
- public static List getAllPrereqs(Bundle bundle) {
- List prereqs = new ArrayList();
- getAllPrereqs(bundle, prereqs, new HashMap());
- return prereqs;
- }
-
- private static void getAllPrereqs(Bundle bundle, List prereqs, Map prereqsMap) {
- Bundle[] prs = getPrereqs(bundle, prereqsMap);
- for (int i = 0; i < prs.length; i++) {
- Bundle pre = prs[i];
- if (prereqsMap.containsKey(pre))
- continue; // Already processed this one once.
- prereqs.add(pre); // Add to the list of pre-reqs accumulated so far.
- getAllPrereqs(pre, prereqs, prereqsMap);
- }
- }
-
- private static Bundle[] getPrereqs(Bundle bundle, Map prereqsMap) {
- Bundle[] prereqs = (Bundle[]) prereqsMap.get(bundle);
- if (prereqs == null) {
- prereqs = getPrereqs(bundle);
- prereqsMap.put(bundle, prereqs);
- }
- return prereqs;
- }
-
- public static Bundle[] getPrereqs(Bundle bundle) {
- Bundle[] l = (Bundle[]) pluginRequiredMap.get(bundle.getSymbolicName());
- if (l == null) {
- BundleSpecification specs[] = Platform.getPlatformAdmin().getState(false).getBundle(bundle.getBundleId()).getRequiredBundles();
- ArrayList bundles = new ArrayList(specs.length);
- for (int i = 0; i < specs.length; i++) {
- Bundle b = Platform.getBundle(specs[i].getName());
- if (b != null)
- bundles.add(b);
- }
- l = (Bundle[]) bundles.toArray(new Bundle[bundles.size()]);
- pluginRequiredMap.put(bundle.getSymbolicName(), l);
- }
- return l;
- }
-
- private static Map getDependentCounts(boolean activeOnly, Set startingSet, Map prereqsMap) {
- // Try to maintain independents in order from the starting set (which happens to be ordered, and hopefully reversed.).
- // Trying to have leaves show up in same order they are found in the Eclipse extensions, so we should
- // have the starting set be in reverse order from that. The actual process
- // builds them in reverse order from the starting set, so we expect the startingSet to be in reverse order so they will be in forward order
- // hopefully. This is just a heuristic. There is no guarentee it will actually produce the
- // desired output.
- Map dependents = new LinkedHashMap(startingSet.size());
- // build a table of all dependent counts. The table is keyed by descriptor and
- // the value the integer number of dependent plugins.
- List processNow = new ArrayList(startingSet);
- List processNext = new ArrayList(processNow.size());
- if (!processNow.isEmpty()) {
- // Go through the first time from the starting set to get an entry into the list.
- // If there is an entry, then it won't be marked for processNext. Only new entries
- // are added to processNext in the following loop.
- int pnSize = processNow.size();
- for (int i = 0; i < pnSize; i++) {
- Bundle bundle = (Bundle) processNow.get(i);
- if (activeOnly && bundle.getState() != Bundle.ACTIVE)
- continue;
- // ensure there is an entry for this descriptor (otherwise it will not be visited)
- int[] entry = (int[]) dependents.get(bundle);
- if (entry == null)
- dependents.put(bundle, new int[1]);
- }
- }
-
- // Now process the processNow to find the requireds, increment them, and add to processNext if never found before.
- while (!processNow.isEmpty()) {
- processNext.clear();
- int pnSize = processNow.size();
- for (int i = 0; i < pnSize; i++) {
- Bundle bundle = (Bundle) processNow.get(i);
- if (activeOnly && bundle.getState() != Bundle.ACTIVE)
- continue;
- Bundle[] requires = getPrereqs(bundle, prereqsMap);
- for (int j = 0; j < requires.length; j++) {
- Bundle prereq = requires[j];
- if (prereq == null || activeOnly
- && bundle.getState() != Bundle.ACTIVE)
- continue;
- int[] entry = (int[]) dependents.get(prereq);
- if (entry == null) {
- dependents.put(prereq, new int[]{1});
- processNext.add(prereq); // Never processed before, so we add it to the next process loop.
- } else
- ++entry[0];
- }
- }
-
- // Now swap the lists so that we processNext will be now and visa-versa.
- List t = processNext;
- processNext = processNow;
- processNow = t;
- }
- return dependents;
- }
-
- /**
- * Add a shutdown listener
- * @param listener
- *
- * @since 1.0.0
- */
- public void addProxyShutdownListener(IProxyPluginShutdownListener listener) {
- if (shutdownListeners == null)
- shutdownListeners = new ListenerList();
- shutdownListeners.add(listener);
- }
-
- /**
- * Remove a shutdown listener
- * @param listener
- *
- * @since 1.0.0
- */
- public void removeProxyShutdownListener(IProxyPluginShutdownListener listener) {
- if (shutdownListeners != null)
- shutdownListeners.remove(listener);
- }
-
- private ILaunchConfigurationListener launchListener = new ILaunchConfigurationListener() {
- public void launchConfigurationAdded(ILaunchConfiguration configuration) {
- try {
- if (!configuration.isWorkingCopy() && IProxyConstants.ID_PROXY_LAUNCH_GROUP.equals(configuration.getCategory()))
- startCleanupJob();
- } catch (Exception e) {
- }
- }
-
- public void launchConfigurationChanged(ILaunchConfiguration configuration) {
- try {
- if (!configuration.isWorkingCopy() && IProxyConstants.ID_PROXY_LAUNCH_GROUP.equals(configuration.getCategory()))
- startCleanupJob();
- } catch (Exception e) {
- }
- }
-
- public void launchConfigurationRemoved(ILaunchConfiguration configuration) {
- try {
- // On delete you can't tell the category or anything because all of that info has already removed.
- if (!configuration.isWorkingCopy())
- startCleanupJob();
- } catch (Exception e) {
- }
- }
- };
-
- private Job cleanupJob = new Job(ProxyMessages.ProxyPlugin_CleanupDefaultProxyLaunchConfigurations) {
- {
- setSystem(true); // So it doesn't show up in progress monitor. No need to interrupt user.
- setPriority(Job.SHORT); // A quick running job.
- }
- protected IStatus run(IProgressMonitor monitor) {
- synchronized (this) {
- if (monitor.isCanceled())
- return Status.CANCEL_STATUS;
- }
- // all we want to do is find out if any launch configurations (from proxy launch group) exist for
- // a project. If they don't, then unset the project's property. If they do, and the property is not
- // set, then set it to NOT_SET to indicate not set, but there are some configs for it.
- // We just gather the project names that have launch configurations.
- try {
- Set projectNames = new HashSet();
- ILaunchConfiguration[] configs = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurations();
- for (int i = 0; i < configs.length; i++) {
- if (IProxyConstants.ID_PROXY_LAUNCH_GROUP.equals(configs[i].getCategory())
- && (ProxyLaunchSupport.ATTR_PRIVATE == null || !configs[i].getAttribute(ProxyLaunchSupport.ATTR_PRIVATE, false)))
- projectNames.add(configs[i].getAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, "")); //$NON-NLS-1$
- }
-
- IJavaModel model = JavaCore.create(ResourcesPlugin.getWorkspace().getRoot());
- IJavaElement[] children = model.getChildren();
- int cancelCount = 10;
- for (int j = 0; j < children.length; j++) {
- if (children[j].getElementType() == IJavaElement.JAVA_PROJECT) {
- if (--cancelCount <= 0)
- synchronized (this) {
- cancelCount = 10; // Rest for next set of ten.
- // Checking on every 10 projects because they may be many projects, while only few configs.
- // This way it will stop sooner.
- if (monitor.isCanceled())
- return Status.CANCEL_STATUS;
- }
- IProject p = ((IJavaProject) children[j]).getProject();
- if (projectNames.contains(p.getName())) {
- // This project has a launch config. If it has a setting, then do nothing, else need to put on not set.
- if (p.getPersistentProperty(ProxyPlugin.PROPERTY_LAUNCH_CONFIGURATION) == null)
- p.getProject().setPersistentProperty(
- ProxyPlugin.PROPERTY_LAUNCH_CONFIGURATION,
- ProxyLaunchSupport.NOT_SET);
- } else {
- // This project has no launch configs. Remove any setting if it exists.
- p.setPersistentProperty(ProxyPlugin.PROPERTY_LAUNCH_CONFIGURATION, (String) null);
- }
- }
- }
- return Status.OK_STATUS;
- } catch (CoreException e) {
- return e.getStatus();
- }
- }
- };
-
- private void startCleanupJob() {
- cleanupJob.cancel(); // Stop what we are doing.
- cleanupJob.schedule(1000l); // Schedule to start in one second.
- }
-
-
- /* (non-Javadoc)
- * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
- */
- public void start(final BundleContext context) throws Exception {
- super.start(context);
- DebugPlugin.getDefault().getLaunchManager().addLaunchConfigurationListener(launchListener);
- context.addBundleListener(new BundleListener() {
- public void bundleChanged(BundleEvent event) {
- if (event.getBundle() != ProxyPlugin.this.getBundle())
- return; // Not of interest to us.
- switch (event.getType()) {
- case BundleEvent.STARTED:
- context.removeBundleListener(this); // Since we don't care anymore
- startCleanupJob();
- break;
- case BundleEvent.STOPPED:
- case BundleEvent.UNINSTALLED:
- case BundleEvent.UNRESOLVED:
- context.removeBundleListener(this); // We stopped before we started, so remove ourselves.
- break;
- }
- }
- });
- getPluginPreferences().setDefault(PREFERENCES_VM_NOVERIFY_KEY, true);
- }
-
-
- /* (non-Javadoc)
- * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
- */
- public void stop(BundleContext context) throws Exception {
- // Handle case where debug plugin shuts down before we do since order not guarenteed.
- if (DebugPlugin.getDefault() != null)
- DebugPlugin.getDefault().getLaunchManager().removeLaunchConfigurationListener(launchListener);
- cleanupJob.cancel(); // Stop what we are doing.
- if (shutdownListeners != null) {
- Object[] listeners = shutdownListeners.getListeners();
- for (int i = 0; i < listeners.length; i++) {
- ((IProxyPluginShutdownListener) listeners[i]).shutdown();
- }
- }
- super.stop(context);
- }
-
- public static final String PI_CONFIGURATION_CONTRIBUTION_EXTENSION_POINT = "org.eclipse.jem.proxy.contributors"; //$NON-NLS-1$
- public static final String PI_EXTENSION_REGISTRATION_EXTENSION_POINT = "org.eclipse.jem.proxy.extensions"; //$NON-NLS-1$
- public static final String PI_CONTAINER = "container"; //$NON-NLS-1$
- public static final String PI_PLUGIN = "plugin"; //$NON-NLS-1$
- public static final String PI_CLASS = "class"; //$NON-NLS-1$
- public static final String PI_REGISTRY_TYPE = "registryType"; //$NON-NLS-1$
- public static final Map pluginRequiredMap = new HashMap(50);
-
- /*
- * Processed extension point info for contributors.
- */
- protected ContributorExtensionPointInfo contributions;
-
- /*
- * Processed extension point info for registry extensions.
- */
- protected ContributorExtensionPointInfo extensions;
-
-
- /**
- * These are public only so that jem.ui can access this constant. Not meant to be accessed by others.
- */
- public static final QualifiedName PROPERTY_LAUNCH_CONFIGURATION = new QualifiedName("org.eclipse.jem.proxy", "proxyLaunchConfiguration"); //$NON-NLS-1$ //$NON-NLS-2$
-
- /**
- * Return the plugin ordered array of configuration elements for the given container, or
- * The map will be of plugin ids to a Boolean. If the boolean is
- * Visible means that classes in the plugin can be referenced directly from code. Not visible
- * means that they can only be referenced from some other plugin in the list. In other words,
- * visible ones can be directly referenced, but invisible ones can only be referenced from
- * plugins that can see it.
- *
- * For most uses, first and visible should be true. Then it will treat the project as the toplevel
- * project and will return true for those that are visible to it, either directly or indirectly.
- * These flags were added for more special cases where may be calling on a project that is deeper
- * down in the classpath were visibilty has already been decided.
- *
- * Note: PDE must be installed for this to return anything, otherwise it will leave
- * the map alone.
- *
- * @param foundIds foundIds structure to get plugin info from.
- * @param visible
- * The returned URL's will not be Platform.resolve(). They will be in form returned from
- * Platform.find().
- *
- * @param bundle bundle to search, will search fragments too.
- * @param filepath filepath from the root of the bundle/fragment where the jar will be found.
- * @return two URL's. [0] is the URL to the jar,
- * When a runnable is added to the queue, the thread will be notified. If the thread is free it will
- * run the runnable. If it is not free, the runnable will be added to the queue. The thread will process
- * all intervening runnables and then execute the runnable in sequence with all of the rest.
- *
- * This is used when you can't use the system widget (e.g. AWT event queue or SWT asyncExec) or when the
- * runnable must be executed on a non-ui thread.
- *
- * Note: It is required that {@link #close()} be called so that resources are cleared up.
- *
- * @since 1.1.0.1
- */
-public class GenericEventQueue {
-
- private LinkedList queue = new LinkedList();
-
- private class EventThread extends Thread {
- private boolean run = true;
-
- public EventThread(String title) {
- super(title);
- }
-
- public void close() {
- synchronized (queue) {
- run = false;
- queue.clear();
- queue.notifyAll();
- }
- }
-
- public void postEvent(Runnable run) {
- if (!this.isAlive()) {
- throw new IllegalStateException("Event queue thread is not executing."); //$NON-NLS-1$
- }
- synchronized (queue) {
- if (run != null)
- queue.addLast(run);
- queue.notifyAll();
- }
- }
-
- public void run() {
- while (true) {
- Runnable runnable;
- synchronized (queue) {
- while (run && queue.isEmpty()) {
- try {
- queue.wait();
- } catch (InterruptedException e) {
- }
- }
- if (!run)
- return; // Done.
- else {
- runnable = (Runnable) queue.removeFirst();
- }
- }
-
- try {
- runnable.run();
- } catch (RuntimeException e) {
- e.printStackTrace();
- } finally {
- runnable = null; // Set this so that we don't hold onto resources in the runnable while waiting for next quy.
- }
- }
- }
- }
-
- private EventThread eventThread;
-
- /**
- * Construct with a title. (This title will be the title on the Thread for the queue).
- * The thread will have the same priority as the current thread.
- * @param queueTitle
- *
- * @since 1.1.0.1
- */
- public GenericEventQueue(String queueTitle) {
- this(queueTitle, Thread.currentThread().getPriority());
- }
-
- /**
- * Construct with a title. (This title will be the title on the Thread for the queue).
- * And a priority for the event queue's processing thread.
- * @param queueTitle
- * @param priority priority to use for event queue's thread.
- *
- * @since 1.1.0.1
- */
- public GenericEventQueue(String queueTitle, int priority) {
- eventThread = new EventThread(queueTitle);
- eventThread.setPriority(priority);
- synchronized(queue) {
- eventThread.start();
- try {
- queue.wait(100); // Wait for thread to start.
- } catch (InterruptedException e) {
- }
- }
- }
-
- /**
- * Close the event queue. This will clear out any pending events. They will not
- * be executed.
- *
- *
- * @since 1.1.0.1
- */
- public void close() {
- eventThread.close();
- }
-
- /**
- * Post the event.
- * @param runnable runnable to execute, or
- * This should be used if there are no parms (i.e. it is null).
- *
- * To send big objects, use the callback stream.
- *
- * @param callbackID
- * @param msgID
- * @param parm
- * @return
- * @throws CommandException
- *
- * @see IVMCallbackServer#requestStream(int, int)
- * @since 1.0.0
- */
- public Object callbackAsConstants(int callbackID, int msgID, Object parm) throws CommandException;
-
- /**
- * Callback to registered client.
- *
- * The parms can be
- * If an array entry should go across as an array of proxies and
- * not as one proxy to an array, then the entry needs to be an
- * instance of {@link ICallbackHandler.TransmitableArray transmitableArray}. This will flag
- * that it should transmit the entire entry as proxies. This should
- * be used sparingly, only if there isn't much data in the array and
- * all of the array would be used on the client. That way transmitting
- * the entire array will be faster than accessing individual components.
- *
- * If the array contains only one entry or the parm itself is null, then {@link org.eclipse.jem.internal.proxy.core.ICallback#calledBack(int, IBeanProxy)}
- * will be called. Else {@link org.eclipse.jem.internal.proxy.core.ICallback#calledBack(int, Object[])} will be called with all of the parms
- * turned into proxies as mentioned in the previous paragraph.
- *
- * @param callbackID The id of the callback. This will be given
- * to the callback when it is created, and it must pass
- * on to the handler. That way it is know which callback
- * to call on the client.
- * @param msgID The id of the message for the callback. This is an
- * agreed upon id of the developers of the callback on both
- * sides.
- * @param parms Null if no parms, or an array of objects to send to the client vm. See the comments
- * above for a complete description of the parameter.
- *
- * @see ICallbackHandler.TransmitableArray
- */
- public Object callbackWithParms(int callbackID, int msgID, Object[] parms) throws CommandException;
-
- /**
- * Array wrapper that turns an array for parameters into a transmittable array.
- *
- * @see ICallbackHandler#callbackWithParms(int, int, Object[])
- * @since 1.1.0
- */
- public static class TransmitableArray {
- protected final Object[] fArray;
- public TransmitableArray(Object[] array) {
- fArray = array;
- }
- public Object[] getArray() {
- return fArray;
- }
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/ICallbackRunnable.java b/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/ICallbackRunnable.java
deleted file mode 100644
index 944c797d6..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/ICallbackRunnable.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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: ICallbackRunnable.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:07 $
- */
-package org.eclipse.jem.internal.proxy.common;
-
-/**
- * Users would implement this as a runnable to
- * send a callback request.
- */
-public interface ICallbackRunnable {
-
- /**
- * The actual run code.
- */
- public Object run(ICallbackHandler handler) throws CommandException;
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/ICommandException.java b/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/ICommandException.java
deleted file mode 100644
index ebee32ee4..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/ICommandException.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.common;
-/*
- * $RCSfile: ICommandException.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-public class ICommandException {
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/IVMCallbackServer.java b/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/IVMCallbackServer.java
deleted file mode 100644
index e79349a1b..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/IVMCallbackServer.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.common;
-/*
- * $RCSfile$
- * $Revision$ $Date$
- */
-
-import java.io.OutputStream;
-/**
- * This is the interface for accessing the
- * VM callback Server. It will be given to an
- * ICallback so that the callback can access
- * the server to request a callback.
- */
-public interface IVMCallbackServer {
-
- /**
- * Get the IVMServer for this callback server.
- * @return
- *
- * @since 1.1.0
- */
- public IVMServer getIVMServer();
-
-
- /**
- * Process a callback. The runnable contains the
- * actual code.
- */
- public Object doCallback(ICallbackRunnable runnable) throws CommandException;
-
- /**
- * Request a stream for writing a lot of data (suggested for larger
- * than several thousand bytes). The connection will be assigned
- * to this stream until the stream is closed.
- */
- public OutputStream requestStream(int callbackID, int msgID) throws CommandException;
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/IVMServer.java b/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/IVMServer.java
deleted file mode 100644
index 8dd8aa96f..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/IVMServer.java
+++ /dev/null
@@ -1,50 +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: IVMServer.java,v $
- * $Revision: 1.3 $ $Date: 2005/07/08 17:51:47 $
- */
-package org.eclipse.jem.internal.proxy.common;
-
-/**
- * This is the base server for the vm on the vm side (i.e. not the client side).
- *
- * It can be passed to proxies if they need to access the vm server.
- * @since 1.1.0
- */
-public interface IVMServer {
-
- /**
- * Add a runnable that will be called if shutdown is requested. If already added,
- * it will not be added again.
- *
- * The body of the runnable must not do any vm server calls. That is because
- * the server is shutdown at this point. The body must simply do clean up code.
- * The shutdown will not continue until the call to the runnable is returned.
- *
- * Calls to this will be ignored if shutdown has already started.
- * @param runnable
- *
- * @since 1.1.0
- */
- public void addShutdownListener(Runnable runnable);
-
- /**
- * Remove the shutdown runnable from the list. If not added, then not an error to call this.
- *
- * Calls to this will be ignored if shutdown has already started.
- * @param runnable
- *
- * @since 1.1.0
- */
- public void removeShutdownListener(Runnable runnable);
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/MapTypes.java b/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/MapTypes.java
deleted file mode 100644
index a9d142229..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/MapTypes.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: MapTypes.java,v $
- * $Revision: 1.8 $ $Date: 2005/08/24 20:39:07 $
- */
-package org.eclipse.jem.internal.proxy.common;
-
-import java.util.HashMap;
-
-
-/**
- * This is used for mapping between JNI format and non-JNI format. It also has the
- * maps for primitives.
- * @since 1.0.0
- */
-public class MapTypes {
-
- public final static HashMap MAP_SHORTSIG_TO_TYPE = new HashMap(8);
- public final static HashMap MAP_TYPENAME_TO_SHORTSIG = new HashMap(8);
- static {
- MapTypes.MAP_SHORTSIG_TO_TYPE.put("B", Byte.TYPE); //$NON-NLS-1$
- MapTypes.MAP_SHORTSIG_TO_TYPE.put("C", Character.TYPE); //$NON-NLS-1$
- MapTypes.MAP_SHORTSIG_TO_TYPE.put("D", Double.TYPE); //$NON-NLS-1$
- MapTypes.MAP_SHORTSIG_TO_TYPE.put("F", Float.TYPE); //$NON-NLS-1$
- MapTypes.MAP_SHORTSIG_TO_TYPE.put("I", Integer.TYPE); //$NON-NLS-1$
- MapTypes.MAP_SHORTSIG_TO_TYPE.put("J", Long.TYPE); //$NON-NLS-1$
- MapTypes.MAP_SHORTSIG_TO_TYPE.put("S", Short.TYPE); //$NON-NLS-1$
- MapTypes.MAP_SHORTSIG_TO_TYPE.put("Z", Boolean.TYPE); //$NON-NLS-1$
-
- MapTypes.MAP_TYPENAME_TO_SHORTSIG.put("byte","B"); //$NON-NLS-1$ //$NON-NLS-2$
- MapTypes.MAP_TYPENAME_TO_SHORTSIG.put("char","C"); //$NON-NLS-1$ //$NON-NLS-2$
- MapTypes.MAP_TYPENAME_TO_SHORTSIG.put("double","D"); //$NON-NLS-1$ //$NON-NLS-2$
- MapTypes.MAP_TYPENAME_TO_SHORTSIG.put("float","F"); //$NON-NLS-1$ //$NON-NLS-2$
- MapTypes.MAP_TYPENAME_TO_SHORTSIG.put("int","I"); //$NON-NLS-1$ //$NON-NLS-2$
- MapTypes.MAP_TYPENAME_TO_SHORTSIG.put("long","J"); //$NON-NLS-1$ //$NON-NLS-2$
- MapTypes.MAP_TYPENAME_TO_SHORTSIG.put("short","S"); //$NON-NLS-1$ //$NON-NLS-2$
- MapTypes.MAP_TYPENAME_TO_SHORTSIG.put("boolean","Z"); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
-
-
- /**
- * Convert formal type name for an array (i.e. java.lang.Object[]
- * to the jni format (i.e. [Ljava.lang.Object;)
- * This is used when a name is passed in from the IDE side.
- * The VM side uses the jni format, and all of proxy uses the jni format.
- *
- * @param classname
- * @return string jni form of name.
- *
- * @since 1.0.0
- */
- public static String getJNIFormatName(String classname) {
- if (classname.length() == 0 || !classname.endsWith("]")) //$NON-NLS-1$
- return classname; // Not an array,or invalid
-
- StringBuffer jni = new StringBuffer(classname.length());
- int firstOpenBracket = classname.indexOf('[');
- int ob = firstOpenBracket;
- while (ob > -1) {
- int cb = classname.indexOf(']', ob);
- if (cb == -1)
- break;
- jni.append('[');
- ob = classname.indexOf('[', cb);
- }
-
- String finalType = classname.substring(0, firstOpenBracket).trim();
- if (finalType != null) {
- String shortSig = (String) MapTypes.MAP_TYPENAME_TO_SHORTSIG.get(finalType);
- if (shortSig == null) {
- jni.append('L');
- jni.append(finalType);
- jni.append(';');
- } else {
- jni.append(shortSig);
- }
- }
-
- return jni.toString();
- }
-
- /**
- * This converts from the JNI format to the formal typename.
- *
- * @param jniName
- * @return formal typename
- *
- * @since 1.1.0
- */
- public static String getFormalTypeName(String jniName) {
- if (jniName.charAt(0) == '[') {
- // It is an array
- int dims = jniName.lastIndexOf('[')+1; // Number of dimensions
- int startType = dims;
- StringBuffer fName = new StringBuffer(jniName.length()+(2*dims));
- if (jniName.charAt(startType) == 'L')
- fName.append(jniName.substring(startType+1, jniName.length()-1)); // For "[Ljava.lang.String;" return "java.lang.String"
- else if (jniName.length() == startType+1) {
- // Possible primitive
- Class type = (Class) MAP_SHORTSIG_TO_TYPE.get(jniName.substring(startType, startType+1));
- if (type != null) {
- fName.append(type.getName());
- } else
- return ""; // Invalid if no 'L' and not a primitive. //$NON-NLS-1$
- } else
- return ""; // Invalid, must be either a primitive or 'L' type. //$NON-NLS-1$
- while(dims-- > 0) {
- fName.append("[]"); //$NON-NLS-1$
- }
- return fName.toString();
- } else if (jniName.length() == 1) {
- // Possible primitive.
- Class type = (Class) MAP_SHORTSIG_TO_TYPE.get(jniName);
- if (type != null) {
- return type.getName();
- }
- }
-
- // If got here then just a name as is.
- return jniName;
- }
-
- /**
- * Convert the formal type name, with the given number of dimensions,
- * to an array JNI type.
- * @param finalComponent final component name, should not be an array type.
- * @param dimensions number of dimensions for the array.
- * @return
- *
- * @since 1.1.0
- */
- public static String getJNITypeName(String finalComponent, int dimensions) {
- StringBuffer jni = new StringBuffer(finalComponent.length()+dimensions+2);
- while (dimensions-- > 0) {
- jni.append('[');
- }
-
- String shortSig = (String) MapTypes.MAP_TYPENAME_TO_SHORTSIG.get(finalComponent);
- if (shortSig == null) {
- jni.append('L');
- jni.append(finalComponent);
- jni.append(';');
- } else {
- jni.append(shortSig);
- }
-
- return jni.toString();
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/Messages.java b/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/Messages.java
deleted file mode 100644
index b91a53563..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/Messages.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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: Messages.java,v $
- * $Revision: 1.1 $ $Date: 2006/02/15 18:43:38 $
- */
-package org.eclipse.jem.internal.proxy.common;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- *
- * @since 1.2.0
- */
-public class Messages {
-
- private static final String BUNDLE_NAME = "org.eclipse.jem.internal.proxy.common.messages"; //$NON-NLS-1$
-
- private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
-
- private Messages() {
- }
-
- public static String getString(String key) {
- // TODO Auto-generated method stub
- try {
- return RESOURCE_BUNDLE.getString(key);
- } catch (MissingResourceException e) {
- return '!' + key + '!';
- }
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/MethodHelper.java b/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/MethodHelper.java
deleted file mode 100644
index 3bceb66e4..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/MethodHelper.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.proxy.common;
-import java.lang.reflect.*;
-import java.text.MessageFormat;
-import java.util.*;
-
-/**
- * This is a class to do message/constructor work.
- * Specifically to find the most appropriate method.
- */
-public class MethodHelper {
-
- /*
- * The class that is used to represent Null class type.
- *
- * @since 1.0.0
- */
- private static class NULL_CLASS {
- }
-
- public static final Class NULL_TYPE = NULL_CLASS.class;
-
- static final ArrayList sPrimitivesOrder;
- static final int sCharPos;
-
- static {
- sPrimitivesOrder = new ArrayList(6);
- sPrimitivesOrder.add(Byte.TYPE);
- sPrimitivesOrder.add(Short.TYPE);
- sPrimitivesOrder.add(Integer.TYPE);
- sPrimitivesOrder.add(Long.TYPE);
- sPrimitivesOrder.add(Float.TYPE);
- sPrimitivesOrder.add(Double.TYPE);
-
- // char can be treated like a short for purposes of ordering.
- sCharPos = sPrimitivesOrder.indexOf(Short.TYPE);
- }
-
- /**
- * Return whether the type2 can be assigned to type1 in
- * method argument conversion.
- */
- public static boolean isAssignableFrom(Class type1, Class type2) {
- if (type1 == type2)
- return true; // They're the same, so assignable.
- if (type1.isPrimitive()) {
- if (type2.isPrimitive()) {
- if (type1 == Boolean.TYPE || type2 == Boolean.TYPE)
- return false; // Since not equal and one is boolean and the other isn't, not assignable
- int type1Pos = (type1 != Character.TYPE) ? sPrimitivesOrder.indexOf(type1) : sCharPos;
- int type2Pos = (type2 != Character.TYPE) ? sPrimitivesOrder.indexOf(type2) : sCharPos;
- return type1Pos > type2Pos; // It can be widened if type1 is higher in the order
- }
- return false; // primitive to non-primitive, not assignable.
- } else
- if (type2 == NULL_TYPE)
- return true; // NULL_TYPE represents null for us, and null can be assigned to any object
- else
- return type1.isAssignableFrom(type2); // Can type2 be assigned to type1
- }
-
-
- /**
- * Every entry in Array2 can be assigned to the corresponding entry in Array1.
- */
- public static boolean isAssignableFrom(Class[] types1, Class[] types2) {
- if (types1.length != types2.length)
- return false; // Not the same size, so not compatible.
- for (int i=0; i
- * This will only be used in certain explicit parts of the code. It will be detailed where
- * it can be thrown.
- *
- * @since 1.1.0.1
- */
-public class UnresolvedCompilationError extends Error {
-
- /**
- * Comment for
- * To use, simply cast the IREMConnection to be an IREMExpressionConnection.
- *
- * @since 1.0.0
- */
-public interface IREMExpressionConnection extends IREMConnection {
-
- /**
- * Start expression processing.
- * @param expressionID
- * @param trace TODO
- * @throws IOException
- *
- * @since 1.0.0
- */
- public void startExpressionProcessing(int expressionID, byte trace) throws IOException;
-
- /**
- * Transfer the expression. This tells the remote vm to stop processing on the
- * given connection and return the expression processing controller for the expression.
- *
- * @param expressionID
- * @param expController
- * @throws IOException
- *
- * @since 1.1.0
- */
- public void transferExpression(int expressionID, Commands.ValueObject expController) throws CommandException;
-
- /**
- * Resume the expression on this connection.
- * @param expressionID
- * @param expController expression processor controller to use for the expression on this new connection.
- * @throws CommandException
- *
- * @since 1.1.0
- */
- public void resumeExpression(int expressionID, Commands.ValueObject expController) throws CommandException;
-
- /**
- * Push an expression command. This is the common portion of the
- * subcommand. The actual data of the command will be separately done.
- * @param expressionID
- * @param subcommand The subcommand being sent. From IInternalExpressionConstants.
- *
- * @throws IOException
- *
- * @see org.eclipse.jem.internal.proxy.initParser.tree.IInternalExpressionConstants#PUSH_TO_PROXY_EXPRESSION
- * @since 1.0.0
- */
- public void pushExpressionCommand(int expressionID, byte subcommand) throws IOException;
-
- /**
- * Push the value object to the remote side.
- *
- * @param valueObject
- * @throws CommandException
- *
- * @since 1.0.0
- */
- public void pushValueObject(Commands.ValueObject valueObject) throws CommandException;
-
- /**
- * Push just the single byte to the remote side.
- * @param abyte
- * @throws IOException
- *
- * @since 1.0.0
- */
- public void pushByte(byte abyte) throws IOException;
-
- /**
- * Push just the single int to the remote side.
- *
- * @param anInt
- * @throws IOException
- *
- * @since 1.0.0
- */
- public void pushInt(int anInt) throws IOException;
-
-
- /**
- * Push just the singe string to the remote side.
- *
- * @param aString
- * @throws IOException
- *
- * @since 1.0.0
- */
- public void pushString(String aString) throws IOException;
-
- /**
- * Push just the bool to the remote side.
- * @param aBool
- * @throws IOException
- *
- * @since 1.0.0
- */
- public void pushBoolean(boolean aBool) throws IOException;
-
- /**
- * Get the final value. It must be called after processing the proxy id resolutions even for sync (so that we can get
- * any thrown errors).
- *
- * @param result
- * @throws CommandException
- *
- * @since 1.1.0
- */
- public void getFinalValue(Commands.ValueObject result) throws CommandException;
-
- /**
- * Send the pull value command, with the proxyids of intereset. If an error
- * occurs, command exception is thrown.
- *
- * After the pull value call, if no errors, the proxyids must be read, and then getFinalValue call must be sent.
- * @param expressionID
- * @param proxyids expression proxyids that request feedback or
- * After the sync call, if no errors, the returned proxyids must be processed and then the final endValue call must be sent.
- *
- * @param expressionID
- * @param proxyids expression proxyids that request feedback or
- * Note: It is required that all non-pending-participating transactions must
- * call this method first to make sure pending transactions are sent. If this is
- * not done, there will be errors in the expression.
- *
- *
- * @since 1.1.0
- */
- protected void processPendingTransactions() {
- if (pendingTransactions != null && !pendingTransactions.isEmpty()) {
- try {
- for (int i = 0; i < pendingTransactions.size(); i++) {
- ((PendingTransaction) pendingTransactions.get(i)).pushTransaction(this);
- }
- } finally {
- pendingTransactions.clear();
- }
- }
- }
-
- /**
- * Get the pending entry from top. If top is 1, then get top entry (i.e. last one added), 2 is next one.
- * @param fromTop
- * @return entry requested, or
- * This is not nestable (i.e. the first markEndTransaction will set it false, even if several nested
- * markInTransactions are called).
- *
- * markEndTransaction must be called in ALL cases, such use try/finally.
- * @param remConnection the connection to see check against and mark in transaction for.
- *
- *
- * @since 1.1.0
- */
- protected void markInTransaction(IREMExpressionConnection remConnection) {
- Thread thread = Thread.currentThread();
- if (thread instanceof REMCallbackThread) {
- // We are in a callback, and the callback connection is our connection, tell the callback that it is in transaction.
- REMCallbackThread callbackThread = (REMCallbackThread) thread;
- if (callbackThread.getConnection() == remConnection) {
- callbackThread.setIntransaction(true);
- }
- }
- }
-
- /**
- * Mark end of transaction.
- * @param remConn REMConnection to test and mark not in connection for.
- *
- * @see REMExpression#markInTransaction(IREMExpressionConnection)
- * @since 1.1.0
- */
- protected void markEndTransaction(IREMExpressionConnection remConn) {
- Thread thread = Thread.currentThread();
- if (thread instanceof REMCallbackThread) {
- // We are in a callback, and the callback connection is our connection, tell the callback that it is in transaction.
- REMCallbackThread callbackThread = (REMCallbackThread) thread;
- if (callbackThread.getConnection() == remConn) {
- callbackThread.setIntransaction(false);
- }
- }
- }
-
- /**
- * @param expressionProxies
- *
- * @since 1.1.0
- */
- private Commands.ValueObject createExpressionProxiesValueObject(int actualCount, List expressionProxies) {
- class ExpressionProxyRetriever implements Commands.ValueRetrieve {
- Iterator expressionProxiesItr;
- Commands.ValueObject worker = new Commands.ValueObject();
-
- public ExpressionProxyRetriever(List expressionProxies) {
- this.expressionProxiesItr = expressionProxies.iterator();
- }
-
- public Commands.ValueObject nextValue() {
- worker.set(-1);
- while (expressionProxiesItr.hasNext()) {
- Object parm = expressionProxiesItr.next();
- if (parm != null) {
- worker.set(((ExpressionProxy) parm).getProxyID());
- break;
- }
- }
- return worker;
- }
- };
-
- workerValue.setArrayIDS(new ExpressionProxyRetriever(expressionProxies), actualCount, Commands.INT);
- return workerValue;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushCastToProxy(org.eclipse.jem.internal.proxy.core.IProxyBeanType)
- */
- protected void pushCastToProxy(IProxyBeanType type) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push cast to proxy command is:
- // PushExpressionCommand(push cast to proxy) followed by:
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.CAST_EXPRESSION_VALUE);
- fillProxy(type, workerValue);
- connection.pushValueObject(workerValue);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- } catch (CommandException e) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- if (!e.isRecoverable()) {
- connection.close();
- throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- }
- }
-
- /**
- * Push the proxy bean type in the format depending on expression proxy or beantype proxy.
- * @param type
- * @throws IOException
- *
- * @since 1.1.0
- */
- protected void fillProxy(IProxy type, Commands.ValueObject value) throws IOException {
- // ValueObject containing the rendered bean type proxy if IBeanTypeProxy or int (for expression proxy id) if expression proxy.
- if (type.isBeanProxy()) {
- ((IREMBeanProxy) type).renderBean(value);
- } else {
- ExpressionProxy ep = (ExpressionProxy) type;
- value.set(ep.getProxyID());
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushInstanceofToProxy(org.eclipse.jem.internal.proxy.core.IProxyBeanType)
- */
- protected void pushInstanceofToProxy(IProxyBeanType type) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push instanceof to proxy command is:
- // PushExpressionCommand(push instanceof to proxy) followed by:
- // ValueObject containing the rendered bean type proxy or the String representing the name of class.
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.INSTANCEOF_EXPRESSION_VALUE);
- fillProxy(type, workerValue);
- connection.pushValueObject(workerValue);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- } catch (CommandException e) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- if (!e.isRecoverable()) {
- connection.close();
- throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushInfixToProxy(org.eclipse.jem.internal.proxy.initParser.tree.InfixOperator, int)
- */
- protected void pushInfixToProxy(InfixOperator operator, InternalInfixOperandType operandType) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push infix to proxy command is:
- // PushExpressionCommand(push infix to proxy) followed by:
- // byte: operator
- // byte: operandType
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.INFIX_EXPRESSION_VALUE);
- connection.pushByte((byte) operator.getValue());
- connection.pushByte((byte) operandType.getValue());
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushPrefixToProxy(org.eclipse.jem.internal.proxy.initParser.tree.PrefixOperator)
- */
- protected void pushPrefixToProxy(PrefixOperator operator) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push prefix to proxy command is:
- // PushExpressionCommand(push prefix to proxy) followed by:
- // byte: operator
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.PREFIX_EXPRESSION_VALUE);
- connection.pushByte((byte) operator.getValue());
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushArrayAccessToProxy(int)
- */
- protected void pushArrayAccessToProxy(int indexCount) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push array access to proxy command is:
- // PushExpressionCommand(push array acces to proxy) followed by:
- // int: indexCount
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.ARRAY_ACCESS_EXPRESSION_VALUE);
- connection.pushInt(indexCount);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushArrayCreationToProxy(org.eclipse.jem.internal.proxy.core.IProxyBeanType, int)
- */
- protected void pushArrayCreationToProxy(IProxyBeanType type, int dimensionCount) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push array creation to proxy command is:
- // PushExpressionCommand(push array creation to proxy) followed by:
- // ValueObject containing the rendered bean type proxy or the expression proxy.
- // int: dimension count
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.ARRAY_CREATION_EXPRESSION_VALUE);
- fillProxy(type, workerValue);
- connection.pushValueObject(workerValue);
- connection.pushInt(dimensionCount);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- } catch (CommandException e) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- if (!e.isRecoverable()) {
- connection.close();
- throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- }
- }
-
- protected void pushArrayInitializerToProxy(IProxyBeanType type, int stripCount, int expressionCount) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push array initializer to proxy command is:
- // PushExpressionCommand(push array initializer to proxy) followed by:
- // ValueObject containing the rendered bean type proxy or expression proxy.
- // int: strip count
- // int: expression count
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.ARRAY_INITIALIZER_EXPRESSION_VALUE);
- fillProxy(type, workerValue);
- connection.pushValueObject(workerValue);
- connection.pushInt(stripCount);
- connection.pushInt(expressionCount);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- } catch (CommandException e) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- if (!e.isRecoverable()) {
- connection.close();
- throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushClassInstanceCreationToProxy(org.eclipse.jem.internal.proxy.core.IProxyBeanType, int)
- */
- protected void pushClassInstanceCreationToProxy(IProxyBeanType type, int argumentCount) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push class instance creation to proxy command is:
- // PushExpressionCommand(push class instance creation to proxy) followed by:
- // ValueObject containing the rendered bean type proxy or the expression proxy
- // int: argument count
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.CLASS_INSTANCE_CREATION_EXPRESSION_VALUE);
- fillProxy(type, workerValue);
- connection.pushValueObject(workerValue);
- connection.pushInt(argumentCount);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- } catch (CommandException e) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- if (!e.isRecoverable()) {
- connection.close();
- throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushTypeReceiverToProxy(org.eclipse.jem.internal.proxy.core.IProxyBeanType)
- */
- protected void pushTypeReceiverToProxy(IProxyBeanType type) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push type receiver to proxy command is:
- // PushExpressionCommand(push type receiver to proxy) followed by:
- // ValueObject containing the rendered bean type proxy or the expression proxy.
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.TYPERECEIVER_EXPRESSION_VALUE);
- fillProxy(type, workerValue);
- connection.pushValueObject(workerValue);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- } catch (CommandException e) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- if (!e.isRecoverable()) {
- connection.close();
- throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushFieldAccessToProxy(java.lang.String, boolean)
- */
- protected void pushFieldAccessToProxy(Object field, boolean hasReceiver) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push field access to proxy command is:
- // PushExpressionCommand(push field access to proxy) followed by:
- // Commands.Value: fieldName or IProxyField
- // boolean: hasReceiver
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.FIELD_ACCESS_EXPRESSION_VALUE);
- if (field instanceof String) {
- workerValue.set((String) field);
- } else {
- fillProxy((IProxy) field, workerValue);
- }
- connection.pushValueObject(workerValue);
- connection.pushBoolean(hasReceiver);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- } catch (CommandException e) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- if (!e.isRecoverable()) {
- connection.close();
- throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushMethodInvocationToProxy(java.lang.String, boolean, int)
- */
- protected void pushMethodInvocationToProxy(Object method, boolean hasReceiver, int argCount) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push method invocation to proxy command is:
- // PushExpressionCommand(push method invocation to proxy) followed by:
- // Commands.ValueObject: methodName or IMethodProxy
- // boolean: hasReceiver
- // int: argCount
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.METHOD_EXPRESSION_VALUE);
- if (method instanceof String) {
- workerValue.set((String) method);
- } else {
- fillProxy((IProxy) method, workerValue);
- }
- connection.pushValueObject(workerValue);
- connection.pushBoolean(hasReceiver);
- connection.pushInt(argCount);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- } catch (CommandException e) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- if (!e.isRecoverable()) {
- connection.close();
- throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushConditionalToProxy(int)
- */
- protected void pushConditionalToProxy(InternalConditionalOperandType expressionType) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push conditional to proxy command is:
- // PushExpressionCommand(push conditional to proxy) followed by:
- // byte: expression type
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.CONDITIONAL_EXPRESSION_VALUE);
- connection.pushByte((byte) expressionType.getValue());
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
- /*
- * A special one that takes the ThrowableProxy for no expression value and
- * wrappers it prints its stack trace instead, but still makes it a subclass
- * of NoExpressionValueException.
- *
- * @since 1.1.0
- */
- private static class REMNoExpressionValueException extends NoExpressionValueException {
- /**
- * Comment for
- * This does not go through the method cache. It goes direct to the remote vm.
- *
- * NOTE: It is public ONLY so that IBeanTypeProxy implementations can call it. It must not be used by anyone else.
- */
- public IMethodProxy getMethodProxy(IREMBeanTypeProxy beanType, String methodName, IBeanTypeProxy[] parameterTypes) {
- // The parms to getMethod are:
- // parm[0] = String - method name
- // parm[1] = Class[] - Parameter Classes.
- Object[] parms = new Object[] { methodName, parameterTypes != null ? (new TransmitableArray(Commands.CLASS_CLASS, parameterTypes)) : null};
- IBeanProxy result = null;
- try {
- result = getMethodProxy.invokeWithParms(beanType, parms);
- return (IMethodProxy) result;
- } catch (ThrowableProxy e) {
- fFactoryRegistry.releaseProxy(e); // Since it's not needed, get rid of now instead of GC time.
- return null;
- } catch (ClassCastException e) {
- // Some trace msgs because we keep getting into a mode after awhile (though not reproducible) that returns non-method proxies and we need
- // more info.
- StringBuffer buf = new StringBuffer("Method requested is \"" + methodName + "("); //$NON-NLS-1$ //$NON-NLS-2$
- for (int i = 0; i < parameterTypes.length; i++) {
- if (i > 0)
- buf.append(','); //$NON-NLS-1$
- buf.append(parameterTypes[i].getTypeName());
- }
- buf.append(")\""); //$NON-NLS-1$
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.ERROR, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, buf.toString(), null));
- try {
- if (result != null) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.ERROR, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0,
- "ClassCastException of result. Return type is \"" + result.getTypeProxy().getTypeName() + "\"\n" + //$NON-NLS-1$ //$NON-NLS-2$
- "Return type bean type proxy class=\"" + result.getTypeProxy().getClass().getName() + "\"\n" + //$NON-NLS-1$ //$NON-NLS-2$
- "GetMethodProxy valid=" + getMethodProxy.isValid() + "\n" + //$NON-NLS-1$ //$NON-NLS-2$
- "GetMethodProxy real name is \"" + getMethodProxy.getName() + "\"\n", null)); //$NON-NLS-1$ //$NON-NLS-2$
- }
- } catch (Exception e2) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.ERROR, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e2)); //$NON-NLS-1$
- }
- throw e; // Rethrow it.
- }
- }
-
- /*
- * Terminate the factory. Don't need to do anything because of the proxies being held onto are registered any will be cleaned up themselves.
- */
- public void terminateFactory(boolean wait) {
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMMethodTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMMethodTypeProxy.java
deleted file mode 100644
index 5a53f28b6..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMMethodTypeProxy.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMMethodTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * BeanType Proxy for Method class.
- */
-
-final class REMMethodTypeProxy extends REMAbstractBeanTypeProxy {
-
-REMMethodTypeProxy(REMProxyFactoryRegistry aRegistry, IBeanTypeProxy accessibleTypeProxy) {
- super(aRegistry, new Integer(Commands.METHOD_CLASS), java.lang.reflect.Method.class.getName(), accessibleTypeProxy);
-}
-
-/**
- * newBeanTypeForClass: Create a new beantypeproxy of this kind for the given class.
- * This is used by beantype proxy factory when creating a beantype proxy for a subclass.
- * This is because subclasses, unless explicitly overridden, should use the same kind
- * of beantype proxy. This way if anything special is needed for a specific type, then
- * that can be done.
- *
- * For all of the accessible object types, they are final classes, so you can't create a newBeanType
- * for subclasses.
- */
-public IREMBeanTypeProxy newBeanTypeForClass(Integer anID, String aClassname, boolean anAbstract) {
- throw new UnsupportedOperationException();
-}
-
-/**
- * Specialized from REMAbstractBeanTypeProxy to ensure Constructor proxies are created correctly.
- */
-public IREMBeanProxy newBeanProxy(Integer objectID) {
- return new REMMethodProxy(fRegistry, objectID);
-}
-
-/**
- * Note: Since new instances of Constructor are never done through a default ctor,
- * this function is not supported.
- */
-public IBeanProxy newInstance() {
- throw new UnsupportedOperationException();
-}
-
-/**
- * Note: Since new instances of Constructor are never done through an initialization string,
- * this function is not supported.
- */
-public IBeanProxy newInstance(String initializationString) {
- throw new UnsupportedOperationException();
-}
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMNumberBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMNumberBeanProxy.java
deleted file mode 100644
index 6d3a46d7c..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMNumberBeanProxy.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMNumberBeanProxy.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-/**
- * Remote Implementation of INumberBeanProxy for any Number (i.e. the non-primitives)
- * It can answer all of the primitive number types (int, long, short, byte, double, float).
- * Creation date: (2/6/00 9:02:54 AM)
- * @author: Joe Winchester
- */
-abstract class REMNumberBeanProxy extends REMConstantBeanProxy implements INumberBeanProxy {
- private final Number fNumberValue;
-
-/**
- * It is package protected because they are created
- * in a special way and no one else should create them.
- * @param aBean java.lang.Object
- */
-REMNumberBeanProxy(REMProxyFactoryRegistry aRegistry, Number aNumber) {
- super(aRegistry);
- fNumberValue = aNumber;
-}
-/**
- * equals: Equal if:
- * 1) This proxy == (identity) to the other object
- * 2) Else if other is an IBeanProxy and not a constant one, then if
- * equals on the server.
- * 3) If this is a constant proxy and the other is too or is a constant
- * value (e.g. IStringBeanProxy.equals(String), then true if values are equals.
- */
-public boolean equals(Object anObject) {
- if (this == anObject)
- return true; // Identity
- if (anObject instanceof REMNumberBeanProxy)
- return fNumberValue.equals(((REMNumberBeanProxy) anObject).numberValue());
- if (anObject instanceof Number)
- return fNumberValue.equals(anObject);
- return false;
-}
-/**
- * byteValue method comment.
- */
-public byte byteValue() {
- return fNumberValue.byteValue();
-}
-/**
- * doubleValue method comment.
- */
-public double doubleValue() {
- return fNumberValue.doubleValue();
-}
-/**
- * floatValue method comment.
- */
-public float floatValue() {
- return fNumberValue.floatValue();
-}
-/**
- * Return the int value
- */
-public int intValue() {
- return fNumberValue.intValue();
-}
-/**
- * longValue method comment.
- */
-public long longValue() {
- return fNumberValue.longValue();
-}
-/**
- * numberValue method comment.
- */
-public Number numberValue() {
- return fNumberValue;
-}
-/**
- * shortValue method comment.
- */
-public short shortValue() {
- return fNumberValue.shortValue();
-}
-
-/**
- * The bean's toString.
- */
-public String toBeanString() {
- return fNumberValue.toString();
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMPrimitiveBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMPrimitiveBeanTypeProxy.java
deleted file mode 100644
index 8c878899a..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMPrimitiveBeanTypeProxy.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMPrimitiveBeanTypeProxy.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * Primitive BeanType Proxies
- */
-public abstract class REMPrimitiveBeanTypeProxy extends REMAbstractBeanTypeProxy implements IREMConstantBeanTypeProxy {
-
- protected REMPrimitiveBeanTypeProxy(REMProxyFactoryRegistry aRegistry, Integer anID, String aClassname) {
- super(aRegistry, anID, aClassname, null);
- }
-
- /**
- * Return whether this is the primitive Byte.TYPE or Byte.class
- */
- public boolean isPrimitive() {
- return true;
- }
-
- /**
- * Return the null ctor proxy for this method with these arguments.
- * For all of the primitive types, this is an invalid operation.
- */
- public IConstructorProxy getNullConstructorProxy() {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return a proxy to the constructor for the target VM being the same as the REM
- * For all of the primitive types, this is an invalid operation.
- */
- public IConstructorProxy getConstructorProxy(String[] argumentClassNames) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return a proxy to the constructor for the target VM being the same as the REM
- * For all of the primitive types, this is an invalid operation.
- */
- public IConstructorProxy getConstructorProxy(IBeanTypeProxy[] argumentTypes) {
- throw new UnsupportedOperationException();
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors()
- *
- * For all of the primitive types, this is an invalid operation.
- */
- public IConstructorProxy[] getConstructors() {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return a proxy to the constructor for the target VM being the same as the REM
- * For all of the primitive types, this is an invalid operation.
- */
- public IConstructorProxy getDeclaredConstructorProxy(String[] argumentClassNames) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return a proxy to the constructor for the target VM being the same as the REM
- * For all of the primitive types, this is an invalid operation.
- */
- public IConstructorProxy getDeclaredConstructorProxy(IBeanTypeProxy[] argumentTypes) {
- throw new UnsupportedOperationException();
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors()
- *
- * For all of the primitive types, this is an invalid operation.
- */
- public IConstructorProxy[] getDeclaredConstructors() {
- throw new UnsupportedOperationException();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors()
- *
- * For all of the primitive types, this is an invalid operation.
- */
- public IFieldProxy[] getFields() {
- throw new UnsupportedOperationException();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors()
- *
- * For all of the primitive types, this is an invalid operation.
- */
- public IFieldProxy[] getDeclaredFields() {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return a proxy to the field for the target VM being the same as the REM
- * For all of the primitive types, this is an invalid operation.
- */
- public IFieldProxy getFieldProxy(String fieldName) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return the method proxy for this method with these arguments.
- * For all of the primitive types, this is an invalid operation.
- */
- public IMethodProxy getMethodProxy(String methodName, IBeanTypeProxy[] argumentTypes) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return the method proxy for this method with these arguments.
- * For all of the primitive types, this is an invalid operation.
- */
- public IMethodProxy getMethodProxy(String methodName, String[] argumentClassNames) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return the method proxy for this method with these arguments.
- * For all of the primitive types, this is an invalid operation.
- */
- public IMethodProxy getMethodProxy(String methodName, String argumentQualifiedTypeName) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return the method proxy for this method with these arguments.
- * For all of the primitive types, this is an invalid operation.
- */
- public IMethodProxy getMethodProxy(String methodName) {
- throw new UnsupportedOperationException();
- }
-
-
- /**
- * Create a new bean proxy with the specified id.
- *
- * For all of the primitive types, this is an invalid operation. They are created
- * explicitly through the appropriate create method.
- */
- public IREMBeanProxy newBeanProxy(Integer anID) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * newBeanTypeForClass: Create a new beantypeproxy of this kind for the given class.
- * This is used by beantype proxy factory when creating a beantype proxy for a subclass.
- * This is because subclasses, unless explicitly overridden, should use the same kind
- * of beantype proxy. This way if anything special is needed for a specific type, then
- * that can be done.
- *
- * For all of the primitive types, they aren't classes, so you can't create a newBeanType
- * for subclasses.
- */
- public IREMBeanTypeProxy newBeanTypeForClass(Integer anID, String aClassname, boolean anAbstract) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * release - BeanType is about to be released.
- * primitives don't need to be released, they don't hold onto any ids or resources.
- */
- public void release() {
- }
-
- /**
- * Have a string that should represent a number.
- * See if it ends in a type letter, if so parse as such.
- * See if there is an 'E' in it, then parse as a double.
- * If neither condition, then try parse as long, if that
- * fails try as double.
- */
- protected static Number parseString(String v) {
- if (v.length() == 0)
- return null;
- char last = v.charAt(v.length()-1);
- try {
- switch (last) {
- case 'd':
- case 'D':
- return Double.valueOf(v);
- case 'f':
- case 'F':
- return Float.valueOf(v);
- case 'l':
- case 'L':
- return Long.decode(v.substring(0, v.length()-1));
- }
- } catch (NumberFormatException e) {
- return null;
- }
-
- try {
- return Long.decode(v);
- } catch (NumberFormatException e) {
- try {
- return Double.valueOf(v);
- } catch (NumberFormatException e1) {
- return null;
- }
- }
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getCompatibleConstructor(org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- public IConstructorProxy getCompatibleConstructor(IBeanTypeProxy[] argumentTypes) {
- throw new UnsupportedOperationException();
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getCompatibleMethod(java.lang.String, org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- public IMethodProxy getCompatibleMethod(String methodName, IBeanTypeProxy[] argumentTypes) {
- throw new UnsupportedOperationException();
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMProxyConstants.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMProxyConstants.java
deleted file mode 100644
index 449d4fc40..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMProxyConstants.java
+++ /dev/null
@@ -1,679 +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: REMProxyConstants.java,v $
- * $Revision: 1.6 $ $Date: 2005/05/18 23:11:26 $
- */
-package org.eclipse.jem.internal.proxy.remote;
-
-import java.util.*;
-import java.util.Map.Entry;
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.core.ExpressionProxy.ProxyEvent;
-
-
-
-
-/**
- * MethodProxyConstants is a cache of IMethodProxies to avoid repeated lookup
- * and thereby avoid the relatively expensive java.lang.reflect calls to repeatedly
- * lookup method by name
- *
- * @since 1.1.0
- */
-public class REMProxyConstants {
-
- private Map methodsCache = new HashMap(80);
- private Map invokablesCache = new HashMap(80);
- private Map fieldsCache = new HashMap(80);
-
- private REMProxyFactoryRegistry registry;
-
- public REMProxyConstants(REMProxyFactoryRegistry registry) {
- this.registry = registry;
- }
-
- /*
- * Used as the key to the methodCache and invokablesCache when there are parms.
- * It allows the parms to be either strings or IBeanTypeProxies without the
- * overhead of creating complicated strings.
- *
- * It will compare method name and each individual parm name without fluffing
- * up a string and building it up.
- *
- * For no parm methods, just the name of the method as a string will be the key.
- *
- * @since 1.1.0
- */
- private abstract static class MethodKey {
- public String methodName;
- public MethodKey(String methodName) {
- this.methodName = methodName;
- }
-
- protected abstract boolean compareParms(IProxyBeanType[] parms);
- protected abstract boolean compareParms(String[] parms);
-
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return methodName.hashCode();
- }
- }
-
- private static class MethodKeyStringParms extends MethodKey {
- public String[] parmNames;
-
- public MethodKeyStringParms(String methodName, String[] parmNames) {
- super(methodName);
- this.parmNames = parmNames;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- try {
- return ((MethodKey) obj).compareParms(parmNames);
- } catch (ClassCastException e) {
- return false;
- }
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.remote.REMProxyConstants.MethodKey#hashCode()
- */
- public int hashCode() {
- int h = super.hashCode();
- for (int i = 0; i < parmNames.length; i++) {
- h += parmNames[i].hashCode();
- }
- return h;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.remote.REMProxyConstants.MethodKey#compareParms(org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- protected boolean compareParms(IProxyBeanType[] parms) {
- if (parms.length != parmNames.length)
- return false;
- for (int i = 0; i < parms.length; i++) {
- if (!parms[i].getTypeName().equals(parmNames[i]))
- return false;
- }
- return true;
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.remote.REMProxyConstants.MethodKey#compareParms(java.lang.String[])
- */
- protected boolean compareParms(String[] parms) {
- return Arrays.equals(parms, parmNames);
- }
- }
-
- private static class MethodKeyProxyParms extends MethodKey {
- public IProxyBeanType[] parmTypes;
-
- public MethodKeyProxyParms(String methodName, IProxyBeanType[] parmTypes) {
- super(methodName);
- this.parmTypes = parmTypes;
- }
-
- public Object toMethodKeyStringParms() {
- String[] parms = new String[parmTypes.length];
- for (int i = 0; i < parmTypes.length; i++) {
- parms[i] = parmTypes[i].getTypeName();
- }
- return new MethodKeyStringParms(methodName, parms);
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- try {
- return ((MethodKey) obj).compareParms(parmTypes);
- } catch (ClassCastException e) {
- return false;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.remote.REMProxyConstants.MethodKey#hashCode()
- */
- public int hashCode() {
- int h = super.hashCode();
- for (int i = 0; i < parmTypes.length; i++) {
- h += parmTypes[i].getTypeName().hashCode();
- }
- return h;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.remote.REMProxyConstants.MethodKey#compareParms(org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- protected boolean compareParms(String[] parms) {
- if (parms.length != parmTypes.length)
- return false;
- for (int i = 0; i < parms.length; i++) {
- if (!parmTypes[i].getTypeName().equals(parms[i]))
- return false;
- }
- return true;
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.remote.REMProxyConstants.MethodKey#compareParms(java.lang.String[])
- */
- protected boolean compareParms(IProxyBeanType[] parms) {
- if (parms.length != parmTypes.length)
- return false;
- for (int i = 0; i < parms.length; i++) {
- if (!parmTypes[i].getTypeName().equals(parms[i].getTypeName()))
- return false;
- }
- return true;
- }
- }
-
- static int REMMETHODCOUNT = 0;
- static int UNIQUEMETHODCOUNT = 0;
- static int REMINVOKABLECOUNT = 0;
- static int UNIQUEINVOKABLECOUNT = 0;
- static int INVOKEINVOKECOUNT = 0;
- static int METHODPROXYINVOKECOUNT = 0;
- static int REMFIELDCOUNT = 0;
- static int UNIQUEFIELDCOUNT = 0;
- static int REMCONSTRUCTORCALLED = 0;
- static HashMap METHODCOUNTMAP;
- static HashMap FIELDCOUNTMAP;
- static HashMap FIELDSETCOUNTMAP;
- static boolean GATHER_COUNTS;
-
- /**
- * Set if counts should be gathered.
- *
- * @param gatherCounts
- *
- * @since 1.1.0
- */
- public static void setGatherCounts(boolean gatherCounts) {
- if (gatherCounts != GATHER_COUNTS) {
- reset();
- if (gatherCounts) {
- if (METHODCOUNTMAP == null) {
- METHODCOUNTMAP = new HashMap();
- FIELDCOUNTMAP = new HashMap();
- FIELDSETCOUNTMAP = new HashMap();
- }
- }
- GATHER_COUNTS = gatherCounts;
- }
- }
-
-
- public static void reset(){
- REMMETHODCOUNT = UNIQUEMETHODCOUNT = REMINVOKABLECOUNT = UNIQUEINVOKABLECOUNT = REMCONSTRUCTORCALLED = METHODPROXYINVOKECOUNT = INVOKEINVOKECOUNT = REMFIELDCOUNT = UNIQUEFIELDCOUNT = 0;
- if (GATHER_COUNTS) {
- METHODCOUNTMAP.clear();
- FIELDCOUNTMAP.clear();
- FIELDSETCOUNTMAP.clear();
- }
- }
-
- public static void println(){
-
- if (GATHER_COUNTS) {
- System.out.println("--------------------------------------------------"); //$NON-NLS-1$
- System.out.println("Method proxies invokes = " + METHODPROXYINVOKECOUNT); //$NON-NLS-1$
- System.out.println("Invoke invokes = " + INVOKEINVOKECOUNT); //$NON-NLS-1$
- System.out.println(".................................................."); //$NON-NLS-1$
- System.out.println("Methods retrieved = " + REMMETHODCOUNT + "(" + UNIQUEMETHODCOUNT + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- System.out.println("Invokes retrieved = " + REMINVOKABLECOUNT + "(" + UNIQUEINVOKABLECOUNT + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- System.out.println("Fields retrieved = " + REMFIELDCOUNT + "(" + UNIQUEFIELDCOUNT + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- System.out.println("Constructor calls = " + REMCONSTRUCTORCALLED); //$NON-NLS-1$
- System.out.println("--------------------------------------------------"); //$NON-NLS-1$
- System.out.println("-Count of methods invoked-------------------------"); //$NON-NLS-1$
- System.out.println("--------------------------------------------------"); //$NON-NLS-1$
-
- // Collate the methods called
- Iterator entries = METHODCOUNTMAP.entrySet().iterator();
- while (entries.hasNext()) {
- Map.Entry entry = (Entry) entries.next();
- REMMethodProxy methodProxy = (REMMethodProxy) entry.getKey();
- System.out.println(methodProxy.getClassType().getTypeName() + "," + methodProxy.getName() + "," + entry.getValue()); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- System.out.println("--------------------------------------------------"); //$NON-NLS-1$
- System.out.println("-Count of fields get called ----------------------"); //$NON-NLS-1$
- System.out.println("--------------------------------------------------"); //$NON-NLS-1$
-
- // Collate the fields accessed
- entries = FIELDCOUNTMAP.entrySet().iterator();
- while (entries.hasNext()) {
- Map.Entry entry = (Entry) entries.next();
- REMFieldProxy fieldProxy = (REMFieldProxy) entry.getKey();
- System.out.println(fieldProxy.toBeanString() + "," + entry.getValue()); //$NON-NLS-1$
- }
-
- System.out.println("--------------------------------------------------"); //$NON-NLS-1$
- System.out.println("-Count of fields set called ----------------------"); //$NON-NLS-1$
- System.out.println("--------------------------------------------------"); //$NON-NLS-1$
-
- // Collate the fields set
- entries = FIELDSETCOUNTMAP.entrySet().iterator();
- while (entries.hasNext()) {
- Map.Entry entry = (Entry) entries.next();
- REMFieldProxy fieldProxy = (REMFieldProxy) entry.getKey();
- System.out.println(fieldProxy.toBeanString() + "," + entry.getValue()); //$NON-NLS-1$
- }
- }
-
- }
-
-/**
- * @param aBeanTypeProxy = BeanTypeProxy for the method
- * @param methodName = methodName to be looked for
- * @param parmTypes = array of qualified type names for the method arguments, null if no methods
- */
- public IMethodProxy getMethodProxy(IBeanTypeProxy aBeanTypeProxy, String methodName, String[] parmTypes){
- if (!registry.isValid())
- return null;
-
- REMMETHODCOUNT++;
- Map methods;
- Object key;
- synchronized (this) {
- // The classCache map is keyed by the BeanTypeProxy and holds a further map of cache'd methods
- methods = getMethods(aBeanTypeProxy);
-
- // The syntax of the key is methodName(parmType1,parmType2)
- if (parmTypes == null || parmTypes.length == 0) {
- key = methodName;
- } else {
- key = new MethodKeyStringParms(methodName, parmTypes);
- }
-
- IMethodProxy result = (IMethodProxy) methods.get(key);
- if (result != null)
- return result;
- }
-
- UNIQUEMETHODCOUNT++;
- // Get the method proxy and cache this before returning it
- // Get the method proxy and cache this before returning it
- REMMethodProxyFactory proxyFactory = (REMMethodProxyFactory) registry.getMethodProxyFactory();
- IMethodProxy result = proxyFactory.getMethodProxy((IREMBeanTypeProxy)aBeanTypeProxy,methodName,parmTypes);
- synchronized (this) {
- // Get it again to make sure it hasn't changed due to a race condition. We don't sync for the getMethodProxy because that goes to the remote vm and could deadlock.
- IMethodProxy mValue = (IMethodProxy) methods.get(key);
- if (mValue != null && mValue != result) {
- registry.releaseProxy(result); // Don't need the result now, got it through a race condition.
- return mValue; // We have a real value now.
- }
- methods.put(key, result);
- }
- return result;
- }
-/**
- * @param aBeanTypeProxy
- * @return Map of cache'd methods
- */
-private Map getMethods(IProxyBeanType aBeanTypeProxy) {
- Map methods = (Map) methodsCache.get(aBeanTypeProxy.getTypeName());
- if(methods == null){
- methods = new HashMap(20);
- methodsCache.put(aBeanTypeProxy.getTypeName(),methods);
- }
- return methods;
-}
-/**
- * @param aBeanTypeProxy
- * @return Map of cache'd invokables
- */
-private Map getInvokables(IBeanTypeProxy aBeanTypeProxy) {
- Map invokables = (Map) invokablesCache.get(aBeanTypeProxy);
- if(invokables == null){
- invokables = new HashMap(20);
- invokablesCache.put(aBeanTypeProxy,invokables);
- }
- return invokables;
-}
-/**
- * @param aBeanTypeProxy
- * @return Map of cache'd fields
- */
-private Map getFields(IProxyBeanType aBeanTypeProxy) {
- Map fields = (Map) fieldsCache.get(aBeanTypeProxy.getTypeName());
- if(fields == null){
- fields = new HashMap(20);
- fieldsCache.put(aBeanTypeProxy.getTypeName(),fields);
- }
- return fields;
-}
-/**
- * @param aBeanTypeProxy = BeanTypeProxy for the method
- * @param methodName = methodName to be looked for
- * @param parmTypes = array of qualified type names for the method arguments, null if no arguments
- */
- public IInvokable getInvokable(IBeanTypeProxy aBeanTypeProxy, String invokableName, String[] parmTypeNames){
-
- REMINVOKABLECOUNT++;
- // The classCache map is keyed by the BeanTypeProxy and holds a further map of cache'd methods
- Map invokables = getInvokables(aBeanTypeProxy);
-
- Object key = null;
- if(parmTypeNames == null || parmTypeNames.length == 0){
- key = invokableName;
- } else {
- key = new MethodKeyStringParms(invokableName, parmTypeNames);
- }
-
- IInvokable result = (IInvokable) invokables.get(key);
- if(result != null) return result;
-
- UNIQUEINVOKABLECOUNT++;
- // Get the method proxy and cache this before returning it
- // Get the method proxy and cache this before returning it
- REMMethodProxyFactory proxyFactory = (REMMethodProxyFactory) aBeanTypeProxy.getProxyFactoryRegistry().getMethodProxyFactory();
- result = proxyFactory.getInvokable((IREMBeanTypeProxy)aBeanTypeProxy,invokableName,parmTypeNames);
- invokables.put(key,result);
- return result;
-
- }
- /**
- * @param aBeanTypeProxy = BeanTypeProxy for the method
- * @param methodName = methodName to be looked for
- * @param parmTypes = array of IBeanTypeProxy types for the method arguments, null if no arguments
- */
- public IInvokable getInvokable(IBeanTypeProxy aBeanTypeProxy, String invokableName, IBeanTypeProxy[] parmTypes){
-
- REMINVOKABLECOUNT++;
- // The classCache map is keyed by the BeanTypeProxy and holds a further map of cache'd methods
- Map invokables = getInvokables(aBeanTypeProxy);
-
- Object key = null;
- if(parmTypes == null || parmTypes.length == 0){
- key = invokableName;
- } else {
- key = new MethodKeyProxyParms(invokableName, parmTypes);
- }
-
- IInvokable result = (IInvokable) invokables.get(key);
- if(result != null) return result;
-
- UNIQUEINVOKABLECOUNT++;
- // Get the method proxy and cache this before returning it
- // Get the method proxy and cache this before returning it
- REMMethodProxyFactory proxyFactory = (REMMethodProxyFactory) aBeanTypeProxy.getProxyFactoryRegistry().getMethodProxyFactory();
- result = proxyFactory.getInvokable((IREMBeanTypeProxy)aBeanTypeProxy,invokableName,parmTypes);
- invokables.put(key,result);
- return result;
-
- }
-/**
- * @param aBeanTypeProxy = BeanTypeProxy for the method
- * @param methodName = methodName to be looked for
- * @param parmTypes = array of qualified type names for the method arguments, null if no methods
- */
- public IMethodProxy getMethodProxy(IBeanTypeProxy aBeanTypeProxy, String methodName, IBeanTypeProxy[] parmTypes){
- if (!registry.isValid())
- return null;
-
- REMMETHODCOUNT++;
- // The classCache map is keyed by the BeanTypeProxy and holds a further map of cache'd methods
- Map methods;
- Object key;
- synchronized (this) {
- methods = getMethods(aBeanTypeProxy);
-
- key = null;
- if (parmTypes == null || parmTypes.length == 0) {
- key = methodName;
- } else {
- key = new MethodKeyProxyParms(methodName, parmTypes);
- }
-
- IMethodProxy result = (IMethodProxy) methods.get(key);
- if (result != null)
- return result;
- }
-
- UNIQUEMETHODCOUNT++;
- // Get the method proxy and cache this before returning it
- // Get the method proxy and cache this before returning it
- REMMethodProxyFactory proxyFactory = (REMMethodProxyFactory) registry.getMethodProxyFactory();
- IMethodProxy result = proxyFactory.getMethodProxy((IREMBeanTypeProxy)aBeanTypeProxy,methodName,parmTypes);
- synchronized (this) {
- // Get it again to make sure it hasn't changed due to a race condition. We don't sync for the getMethodProxy because that goes to the remote vm and could deadlock.
- IMethodProxy mValue = (IMethodProxy) methods.get(key);
- if (mValue != null && mValue != result) {
- registry.releaseProxy(result); // Don't need result now, got it already through a race condition.
- return mValue; // We have a real value now.
- }
- methods.put(key, result);
- }
-
- return result;
- }
-
- /**
- * Return the proxy method for the method through the expression.
- * @param expression
- * @param aBeanTypeProxy
- * @param methodName
- * @param parmTypes
- * @return either the IMethodProxy if already resolved or an ExpressionProxy if not yet resolved.
- *
- * @since 1.1.0
- */
- public IProxyMethod getMethodProxy(IExpression expression, IProxyBeanType aBeanTypeProxy, String methodName, IProxyBeanType[] parmTypes){
- if (!registry.isValid())
- return null;
-
- REMMETHODCOUNT++;
- Map methods;
- Map epMethods;
- Object key;
- boolean isKey;
- synchronized (this) {
- // The classCache map is keyed by the BeanTypeProxy name and holds a further map of cache'd methods
- methods = getMethods(aBeanTypeProxy);
-
- if (parmTypes == null || parmTypes.length == 0) {
- key = methodName;
- isKey = false;
- } else {
- key = new MethodKeyProxyParms(methodName, parmTypes);
- isKey = true;
- }
-
- IProxyMethod result = (IProxyMethod) methods.get(key);
- if (result != null)
- return result;
-
- // See if stored in the expression.
- epMethods = ((REMExpression) expression).getMethods(aBeanTypeProxy);
- result = (IProxyMethod) epMethods.get(key);
- if (result != null)
- return result;
- }
-
- UNIQUEMETHODCOUNT++;
- // Get the method expression proxy and cache this before returning it
- IProxyMethod result = ((Expression) expression).createMethodExpressionProxy(aBeanTypeProxy,methodName,parmTypes);
- epMethods.put(key, result);
- final Object epKey = key;
- final Map rMethods = methods;
- final Map fepMethods = epMethods;
- final boolean isKeyType = isKey;
- ((ExpressionProxy) result).addProxyListener(new ExpressionProxy.ProxyAdapter() {
- public void proxyResolved(ProxyEvent event) {
- synchronized (REMProxyConstants.this) {
- if (rMethods.containsKey(epKey))
- return; // We already have a true method proxy in there. A race condition occurred.
-
- // Now put this resolved guy into the methods.
- // We don't want the key to contain expression proxies in the final map, so if it is a key type
- // we will turn it into a string type key.
- Object key;
- if (isKeyType) {
- key = ((MethodKeyProxyParms) epKey).toMethodKeyStringParms(); // So that we don't put a ket that contains expression proxy parm types into the main map.
- } else
- key = epKey;
-
- rMethods.put(key, event.getProxy());
- }
- }
-
- public void proxyNotResolved(ExpressionProxy.ProxyEvent event) {
- synchronized (REMProxyConstants.this) {
- fepMethods.remove(epKey);
- }
- }
-
- });
- return result;
- }
-
- /**
- * @param proxy
- */
- static void methodInvoked(REMMethodProxy proxy) {
-
- if (GATHER_COUNTS) {
- Integer count = (Integer) METHODCOUNTMAP.get(proxy);
- if (count == null) {
- METHODCOUNTMAP.put(proxy, new Integer(1));
- } else {
- METHODCOUNTMAP.put(proxy, new Integer(count.intValue() + 1));
- }
- }
- }
-
- static void fieldGetInvoked(IBeanProxy proxy) {
-
- if (GATHER_COUNTS) {
- Integer count = (Integer) FIELDCOUNTMAP.get(proxy);
- if (count == null) {
- FIELDCOUNTMAP.put(proxy, new Integer(1));
- } else {
- FIELDCOUNTMAP.put(proxy, new Integer(count.intValue() + 1));
- }
- }
- }
-
- static void fieldSetInvoked(IBeanProxy proxy, IBeanProxy value) {
-
- if (GATHER_COUNTS) {
- Integer count = (Integer) FIELDSETCOUNTMAP.get(proxy);
- if (count == null) {
- FIELDSETCOUNTMAP.put(proxy, new Integer(1));
- } else {
- FIELDSETCOUNTMAP.put(proxy, new Integer(count.intValue() + 1));
- }
- }
- }
-
- /**
- * @param proxy for the BeanType of the field
- * @param fieldName of the field, e.g. (java.awt.Dimension, width) for the "width" field on Dimension
- * @return The field proxy that is cache'd for performance
- */
- public IFieldProxy getFieldProxy(REMAbstractBeanTypeProxy aBeanTypeProxy, String fieldName) {
- if (!registry.isValid())
- return null;
-
- REMFIELDCOUNT++;
- Map fields;
- synchronized (this) {
- // The field map is keyed by the BeanTypeProxy and holds a further map of cache'd fields
- fields = getFields(aBeanTypeProxy);
-
- // Lookup the cache'd Field proxy
- IFieldProxy result = (IFieldProxy) fields.get(fieldName);
- if (result != null)
- return result;
- }
-
- UNIQUEFIELDCOUNT++;
- IFieldProxy result = (IFieldProxy) REMStandardBeanProxyConstants.getConstants(aBeanTypeProxy.getProxyFactoryRegistry()).getClassGetField().invokeCatchThrowableExceptions(
- aBeanTypeProxy,
- registry.getBeanProxyFactory().createBeanProxyWith(fieldName));
- synchronized (this) {
- IFieldProxy fValue = (IFieldProxy) fields.get(fieldName);
- if (fValue != null) {
- registry.releaseProxy(result); // Don't need it now. A race had put another one in.
- return fValue;
- }
- fields.put(fieldName,result);
- }
- return result;
- }
-
- public IProxyField getFieldProxy(IExpression expression, IProxyBeanType aBeanTypeProxy, final String fieldName){
- if (!registry.isValid())
- return null;
-
- REMFIELDCOUNT++;
- Map fields;
- Map epFields;
- synchronized (this) {
- // The classCache map is keyed by the BeanTypeProxy name and holds a further map of cache'd methods
- fields = getFields(aBeanTypeProxy);
-
- IProxyField result = (IProxyField) fields.get(fieldName);
- if (result != null)
- return result;
-
- // See if stored in the expression.
- epFields = ((REMExpression) expression).getFields(aBeanTypeProxy);
- result = (IProxyField) epFields.get(fieldName);
- if (result != null)
- return result;
- }
-
- UNIQUEFIELDCOUNT++;
- // Get the field expression proxy and cache this before returning it
- IProxyField result = ((REMExpression) expression).createFieldExpressionProxy(aBeanTypeProxy, fieldName);
- epFields.put(fieldName, result);
- final Map fpFields = fields;
- final Map fepFields = epFields;
- ((ExpressionProxy) result).addProxyListener(new ExpressionProxy.ProxyAdapter() {
-
- public void proxyResolved(ProxyEvent event) {
- synchronized (REMProxyConstants.this) {
- if (fpFields.containsKey(fieldName))
- return; // Already set to resolved value by someone else.
- fpFields.put(fieldName, event.getProxy());
- }
- }
- public void proxyNotResolved(ExpressionProxy.ProxyEvent event) {
- synchronized (REMProxyConstants.this) {
- fepFields.remove(fieldName);
- }
- }
- });
-
- return result;
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMProxyFactoryRegistry.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMProxyFactoryRegistry.java
deleted file mode 100644
index 787170f89..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMProxyFactoryRegistry.java
+++ /dev/null
@@ -1,476 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMProxyFactoryRegistry.java,v $
- * $Revision: 1.28 $ $Date: 2006/05/23 15:43:03 $
- */
-
-
-import java.io.IOException;
-import java.net.Socket;
-import java.text.MessageFormat;
-import java.util.Iterator;
-import java.util.Stack;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.IJobManager;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.core.*;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.core.model.IStreamsProxy;
-
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * This is the factory registry to use for Remote VM.
- * It adds to the standard registry, connection specific information.
- *
- * This will always hold onto one connection open until termination is requested.
- * That way while the IDE is up, the remove vm won't time out.
- */
-
-public class REMProxyFactoryRegistry extends BaseProxyFactoryRegistry {
-
- public static final String REMOTE_REGISTRY_TYPE_ID = "org.eclipse.jem.REMOTE"; //$NON-NLS-1$
-
- protected int fServerPort = 0; // The server port to use when making connections.
- protected REMCallbackRegistry fCallbackServer; // The callback server thread for this remote vm.
- protected Stack fConnectionPool = new Stack(); // Stack of free connections.
- protected static int NUMBER_FREE_CONNECTIONS = 5; // Number of free connections to keep open.
- protected IProcess fProcess; // The process that is the server. If null and fServerPort is not zero,
- // then this registry is in test mode
- // and the server is in same the process.
- protected String fName;
- protected int fCallbackServerPort;
- protected Integer fRegistryKey;
- protected REMRegistryController fRegistryController;
-
- protected final static Object TERMINATE_JOB_FAMILY = new Object();
-
- // Package protected because only the ProxyVMStarter should set this flag. It would set it if
- // working with a debugger because we don't how long it will be to respond to requests when
- // someone is working with a debugger.
- boolean fNoTimeouts = false;
-
- // This is set via the static setGlobalNoTimeouts() method, or via debug options flag. It is here so that
- // when debugging callbacks, but not debugging remote vm, that no timeouts for any registry will occur.
- // Or it can be set through the debug .options flag.
- static boolean fGlobalNoTimeouts = "true".equalsIgnoreCase(Platform.getDebugOption(ProxyPlugin.getPlugin().getBundle().getSymbolicName()+ProxyRemoteUtil.NO_TIMEOUTS)); //$NON-NLS-1$;
-
- /**
- * Typicall set through the "expression" evaluation of the debugger.
- * @param noTimeouts
- *
- * @since 1.0.0
- */
- public static void setGlobalNoTimeouts(boolean noTimeouts) {
- fGlobalNoTimeouts = noTimeouts;
- }
-
- // An internal thread that locks and waits for the remote vm to register itself.
- private WaitForRegistrationThread waitRegistrationThread;
-
- private class WaitForRegistrationThread extends Thread {
- public WaitForRegistrationThread() {
- super("Wait for remote vm registration thread"); //$NON-NLS-1$
- }
-
- /**
- * @see java.lang.Thread#run()
- */
- public void run() {
- // Wait for registration. Put it into a thread so this
- // can occur while other stuff goes on. It locks the fConnectionPool
- // until done so that the first request for a connection by anyone
- // else will wait until this thread is finished.
-
- synchronized(fConnectionPool) {
- synchronized(REMProxyFactoryRegistry.this) {
- // Notify the main thread that we have the
- // connection pool locked.
- REMProxyFactoryRegistry.this.notifyAll();
- }
- synchronized (this) {
- // sync on self so that it can be notified when finally receive the registration
- long stopTime = System.currentTimeMillis()+60000;
- while (waitRegistrationThread != null && (fNoTimeouts || System.currentTimeMillis() < stopTime)) {
- try {
- Thread.currentThread().wait(60000);
- } catch (InterruptedException e) {
- }
- }
- }
- }
-
- waitRegistrationThread = null; // No longer exists.
- }
- }
-
-
- public REMProxyFactoryRegistry(REMRegistryController registryController, String name) {
- super(REMOTE_REGISTRY_TYPE_ID);
- fRegistryController = registryController;
- fRegistryKey = fRegistryController.registerRegistry(this); // Register the registry with the plugin.
- fName = name;
-
- // Get the waitRegistrationThread started before we actually launch remote vm so
- // that it is waiting when the callback comes in.
- synchronized (this) {
- waitRegistrationThread = new WaitForRegistrationThread();
- waitRegistrationThread.start();
-
- // Now we will wait until the registration callback has been done. The thread will
- // signal us when that is done. This is so that we don't continue on and let
- // a work connection be requested before we even got a chance to start waiting
- // for the registration.
- while(true) {
- try {
- wait();
- break;
- } catch (InterruptedException e) {
- }
- };
- }
- }
-
- public Integer getRegistryKey() {
- return fRegistryKey;
- }
-
- public void initializeRegistry(IProcess process) {
- fProcess = process;
- processListener = new IDebugEventSetListener() {
- /**
- * @see org.eclipse.debug.core.IDebugEventSetListener#handleDebugEvents(DebugEvent[])
- */
- public void handleDebugEvents(DebugEvent[] events) {
- for (int i = 0; i < events.length; i++) {
- DebugEvent e = events[i];
- if (e.getSource() == fProcess && e.getKind() == DebugEvent.TERMINATE) {
- // We terminating too soon. Pop up a msg.
- IStreamsProxy stProxy = fProcess.getStreamsProxy();
- java.io.StringWriter s = new java.io.StringWriter();
- java.io.PrintWriter w = new java.io.PrintWriter(s);
-
- String msg = MessageFormat.format(ProxyRemoteMessages.Proxy_Terminated_too_soon_ERROR_, new Object[] {fName});
- w.println(msg);
- w.println(ProxyRemoteMessages.VM_TERMINATED_INFO_);
- w.println(ProxyRemoteMessages.VM_COMMAND_LINE);
- w.println(fProcess.getAttribute(IProcess.ATTR_CMDLINE));
- w.println(ProxyRemoteMessages.VM_TERMINATED_LINE1);
- w.println(stProxy.getErrorStreamMonitor().getContents());
- w.println(ProxyRemoteMessages.VM_TERMINATED_LINE2);
- w.println(stProxy.getOutputStreamMonitor().getContents());
- w.println(ProxyRemoteMessages.VM_TERMINATED_LINE3);
- w.close();
-
- DebugModeHelper dh = new DebugModeHelper();
- dh.displayErrorMessage(ProxyRemoteMessages.Proxy_Error_Title, msg);
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, s.toString(), null));
- processListener = null;
- DebugPlugin.getDefault().removeDebugEventListener(this);
- terminateRegistry();
- break;
- }
- }
- }
- };
-
- DebugPlugin.getDefault().addDebugEventListener(processListener);
- }
-
- private IDebugEventSetListener processListener = null;
-
- /**
- * Get the CallbackRegistry
- */
- public ICallbackRegistry getCallbackRegistry() {
- if (fCallbackServer == null)
- fCallbackServer = new REMCallbackRegistry(fName, this);
- return fCallbackServer;
- }
-
- /**
- * This is called by the registry controller to tell
- * the registry to terminate with prejudice all
- * pending TerminateJobs.
- *
- *
- * @since 1.1.0
- */
- public static void cancelAllTerminateJobs() {
- IJobManager jobManager = Platform.getJobManager();
- jobManager.cancel(TERMINATE_JOB_FAMILY);
- try {
- jobManager.join(TERMINATE_JOB_FAMILY, null);
- } catch (OperationCanceledException e) {
- } catch (InterruptedException e) {
- }
- }
-
- private static class TerminateProcess extends Job {
- private IProcess process;
-
- public TerminateProcess(IProcess process) {
- super(ProxyRemoteMessages.REMProxyFactoryRegistry_Job_TerminateProcess_Title);
- this.process = process;
- }
-
- public boolean belongsTo(Object family) {
- return family == TERMINATE_JOB_FAMILY || super.belongsTo(family);
- }
-
-
- /* (non-Javadoc)
- * @see java.lang.Thread#run()
- */
- public IStatus run(IProgressMonitor mon) {
- try {
- // There is no join on a process available, so we will have to
- // busy wait. Give it 10 seconds in 1/10 second intervals.
- for (int i=0; !process.isTerminated() && i<100; i++) {
- try {
- Thread.sleep(100);
- } catch (InterruptedException e) {
- }
- }
- if (!process.isTerminated()) {
- process.terminate();
- }
- } catch (DebugException e) {
- }
- return Status.OK_STATUS;
- }
- }
-
- protected void registryTerminated(boolean wait) {
- if (processListener != null) {
- // Remove listener cause we are now going to terminate process and don't want premature terminate notice.
- // Sometimes in shutdown we are called and the debug plugin may of already been shutdown. In that case the db
- // will be null and there is nothing remove listener from.
- DebugPlugin db = DebugPlugin.getDefault();
- if (db != null)
- db.removeDebugEventListener(processListener);
- processListener = null;
- }
-
- Job tjob = null;
- if (waitRegistrationThread != null) {
- synchronized (waitRegistrationThread) {
- // Still waiting. close it out.
- WaitForRegistrationThread wThread = waitRegistrationThread;
- waitRegistrationThread = null;
- wThread.notifyAll();
- }
- }
- if (fServerPort != 0) {
- IREMConnection closeCon = null; // The connection we will use to close the remote vm.
- synchronized(fConnectionPool) {
- // Now we walk through all of the free connections and close them properly.
- Iterator itr = fConnectionPool.iterator();
- if (itr.hasNext())
- closeCon = (IREMConnection) itr.next();
- while (itr.hasNext()) {
- IREMConnection con = (IREMConnection) itr.next();
- con.close();
- }
- }
-
- // Now we terminate the server.
- if (closeCon == null)
- try {
- closeCon = getFreeConnection(); // There weren't any free connections, so get a new one so that we can close it.
- } catch (IllegalStateException e) {
- // Do nothing, don't want to stop termination just because we can't get a connection.
- }
- if (closeCon != null) {
- closeCon.terminateServer(); // We got a connection to terminate (process may of terminated early, so we would not have a conn then).
- }
- fConnectionPool.clear();
- fServerPort = 0;
-
- if (fProcess != null && !fRegistryController.inShutDown()) {
- tjob = new TerminateProcess(fProcess);
- tjob.setSystem(true);
- tjob.schedule();
- fProcess = null;
- }
- }
-
- if (fCallbackServer != null) {
- fCallbackServer.requestShutdown();
- fCallbackServer = null;
- }
-
- fConnectionPool.clear();
- fRegistryController.deregisterRegistry(fRegistryKey); // De-register this registry.
-
- if (wait && tjob != null) {
- try {
- tjob.join();
- } catch (InterruptedException e) {
- // It timed out, so we'll just go on.
- }
- }
- }
-
- /**
- * Return the server port number.
- */
- public int getServerPort() {
- return fServerPort;
- }
-
- /*
- * set the server port.
- */
- void setServerPort(int serverport) {
- fServerPort = serverport;
- if (waitRegistrationThread != null) {
- synchronized (waitRegistrationThread) {
- // Close it out, we are now registered
- WaitForRegistrationThread wThread = waitRegistrationThread;
- waitRegistrationThread = null;
- wThread.notifyAll();
- }
- }
- }
-
- /**
- * Get a free connection
- * @return
- * @throws IllegalStateException - Thrown if a connection cannot be created.
- *
- * @since 1.0.0
- */
- public IREMConnection getFreeConnection() throws IllegalStateException {
- Thread thread = Thread.currentThread();
- if (thread instanceof REMCallbackThread) {
- // The current thread is a call back thread, so just reuse the connection.
- // But this thread could actually be trying to access another registry.
- // So if this thread is for this registry, use it, if not for this registry, create a new connection.
- // But if for this registry AND is already in a transaction, we need a fresh connection.
- REMCallbackThread callbackThread = (REMCallbackThread) thread;
- if (callbackThread.registry == this && !callbackThread.inTransaction()) {
- // This way any calls out to the remote vm will be on same thread as callback caller
- // on remote vm because that thread is waiting on this connection for commands.
- IREMConnection c = (callbackThread).getConnection();
- if (c.isConnected())
- return c;
- else
- throw new IllegalStateException(ProxyRemoteMessages.REMProxyFactoryRegistry_CallbackConnectionNotWorking_EXC_);
- }
- }
- synchronized(fConnectionPool) {
- if (!fConnectionPool.isEmpty())
- return (IREMConnection) fConnectionPool.pop();
- // else we need to allocate one.
- return createConnection();
- }
- }
-
-
- /**
- * Make a new connection.
- * @return
- * @throws IllegalStateException - Thrown if connection cannot be created.
- *
- * @since 1.0.0
- */
- protected IREMConnection createConnection() throws IllegalStateException {
- // If we have a server port, then the server is probably open. If we don't then there is no server.
- if (fServerPort != 0) {
- // We are putting it off into a thread because there are no timeout capabilities on getting a socket.
- // So we need to allow for that.
- final Socket[] scArray = new Socket[1];
- final boolean[] waiting = new boolean[] {true};
- Thread doIt = new Thread(new Runnable() {
- public void run() {
- try {
- Socket sc = new Socket("localhost", fServerPort); //$NON-NLS-1$
- synchronized (this) {
- if (waiting[0])
- scArray[0] = sc;
- else
- sc.close(); // We are no longer waiting on this thread so close the socket since no one will use it.
- }
- } catch (IOException e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- }
- }
- });
-
- doIt.start();
- while (true) {
- try {
- doIt.join(!fNoTimeouts ? 60000 : 0);
- synchronized (doIt) {
- waiting[0] = false; // To let it know we are no longer waiting
- }
- break;
- } catch (InterruptedException e) {
- }
- }
-
- if (scArray[0] == null) {
- // Log where we are at so we can know where it was we down.
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", new IllegalStateException(ProxyRemoteMessages.REMProxyFactoryRegistry_ConnectionCreationFailed_INFO_))); //$NON-NLS-1$
- throw new IllegalStateException(ProxyRemoteMessages.REMProxyFactoryRegistry_CouldNotCreateSocketConnectionToRemoteVM_EXC_); // Couldn't get one, probably server is down. //$NON-NLS-1$
- }
-
- REMConnection connection = new REMConnection(scArray[0], fNoTimeouts);
- if (connection.isConnected())
- return connection;
-
- // Failed, close the socket.
- try {
- scArray[0].close();
- } catch (IOException e) {
- }
- } else
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "No Server to retrieve a connection.", null)); ///$NON-NLS-1$
-
- throw new IllegalStateException(ProxyRemoteMessages.REMProxyFactoryRegistry_CouldNotCreateSocketConnectionToRemoteVM_EXC_);
- }
-
- /**
- * Free the connection
- */
- public void returnConnection(IREMConnection connection) {
- if (connection.isConnected()) {
- Thread thread = Thread.currentThread();
- if (!(thread instanceof REMCallbackThread) || ((REMCallbackThread) thread).getConnection() != connection) {
- // We are not a callback thread, or we are but the connection is not for the thread, then the connection
- // can be returned.
- synchronized (fConnectionPool) {
- if (fConnectionPool.size() < NUMBER_FREE_CONNECTIONS)
- fConnectionPool.push(connection);
- else
- connection.close(); // We don't need to maintain more than five free connections.
- }
- }
- }
- }
-
- /**
- * Release this connection. This means close it out.
- */
- public void closeConnection(IREMConnection connection) {
- connection.close();
- }
-
-
- public int connectionCount() {
- synchronized (fConnectionPool) {
- return fConnectionPool.size();
- }
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMRegistryController.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMRegistryController.java
deleted file mode 100644
index 6880a2ad5..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMRegistryController.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMRegistryController.java,v $
- * $Revision: 1.12 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.jobs.Job;
-
-import org.eclipse.jem.internal.proxy.core.ProxyPlugin;
-
-/**
- * This class is a controller for all of the registries.
- * @author richkulp
- */
-public class REMRegistryController {
-
- private Map fActiveRegistries = new HashMap(); // Access to this must be sync(REMRegistryController)
- private static final long CLEANUP_INTERVAL = 60000l; // The interval between clean up job execution.
-
- protected boolean inShutdown; // Are we in shutdown mode. Terminate registries runs differently in shutdown mode.
-
- // Thread to clean up GC'd proxies. Runs as a daemon at the lowest priority
- private Job processQueueJob= new Job(ProxyRemoteMessages.CleanupJob_title) {
- public IStatus run(IProgressMonitor m) {
- REMProxyFactoryRegistry[] registries = null;
- synchronized (REMRegistryController.this) {
- // This list may be updated by others, so we need to make a copy
- // or else we could get a failure.
- registries =
- (REMProxyFactoryRegistry[]) fActiveRegistries.values().toArray(
- new REMProxyFactoryRegistry[fActiveRegistries.size()]);
- }
- for (int i = 0; i < registries.length; i++) {
- try {
- ((REMStandardBeanProxyFactory) registries[i].getBeanProxyFactory()).processQueue();
- } catch (RuntimeException e) {
- // When debugging, getBeanProxyFactory can throw exception because it hasn't been initialized
- // yet when the thread wakes up, though the registry has been registered. It has to do with it
- // can take significant time for the user to start up the debugger, and during that time this
- // thread could kick in.
- }
- }
- synchronized(this) {
- if (!m.isCanceled())
- this.schedule(CLEANUP_INTERVAL); // Schedule to start again in one minute.
- }
- return Status.OK_STATUS;
- }
-
- }; //$NON-NLS-1$
-
- public REMRegistryController() {
-
- ProxyPlugin.getPlugin().addProxyShutdownListener(new ProxyPlugin.IProxyPluginShutdownListener() {
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.ProxyPlugin.IProxyPluginShutdownListener#shutdown()
- */
- public void shutdown() {
- REMRegistryController.this.shutdown();
- }
- });
-
- masterThread = new REMMasterServerThread(this);
- masterThread.start();
-
- processQueueJob.setSystem(true); // So that it won't show processing in process view. Not of interest to general users.
- processQueueJob.setPriority(Job.SHORT);
- processQueueJob.schedule(CLEANUP_INTERVAL);
-
- }
-
- /**
- * Answer whether we are shutting down or not.
- * @return
- *
- * @since 1.1.0
- */
- public boolean inShutDown() {
- return inShutdown;
- }
-
- /*
- * Add registry to list of active. Return a unique number to be the key.
- * Package-protected so that only locals can access it.
- */
- synchronized Integer registerRegistry(REMProxyFactoryRegistry registry) {
-
- Integer hashcode = new Integer(registry.hashCode());
- while (true) {
- REMProxyFactoryRegistry existing = (REMProxyFactoryRegistry) fActiveRegistries.get(hashcode);
- if (existing == null)
- break; // Not yet registered, use use the hashcode
- else if (existing != registry)
- hashcode = new Integer(hashcode.intValue()+1);
- else
- return hashcode; // Same guy, use the hashcode.
- }
-
- fActiveRegistries.put(hashcode, registry);
- return hashcode;
- }
-
- /*
- * deregister the registry.
- */
- synchronized void deregisterRegistry(Integer key) {
- fActiveRegistries.remove(key);
- }
-
- /*
- * Return the registry for the given key
- */
- synchronized REMProxyFactoryRegistry getRegistry(Integer key) {
- return (REMProxyFactoryRegistry) fActiveRegistries.get(key);
- }
-
- /**
- * Master server thread. Handles keep-alive requests and register remote server threads.
- * It will be created when needed.
- */
- protected REMMasterServerThread masterThread;
-
- /*
- * Shuts down this plug-in and discards all plug-in state.
- *
- * In this case, terminate all of the active registries so that they can be shutdown.
- * Don't want them hanging around after termination of the desktop.
- */
- void shutdown() {
-
- synchronized(processQueueJob) {
- processQueueJob.cancel();
- }
-
- REMProxyFactoryRegistry[] registries = null;
- synchronized (this) {
- // This list will be updated in the terminateRegistry, so we need to make a copy
- // or else we get a failure.
- registries =
- (REMProxyFactoryRegistry[]) fActiveRegistries.values().toArray(
- new REMProxyFactoryRegistry[fActiveRegistries.size()]);
- }
-
- inShutdown = true; // We are now in shutdown mode.
- // In shutdown mode the registries will not create the job that waits for the process
- // to terminate, and if it doesn't in 1.5 secs it does a force.
- // Instead what we will do is shutdown all of the registries. If they don't
- // shutdown on their own then they stay out there. But they do have an
- // internal timer that checks every five minutes to see if the host is
- // still there, and if it isn't they will shut themselves down. They
- // would have to be really hosed if the suicide timer wasn't working.
-
- for (int i = 0; i < registries.length; i++)
- registries[i].terminateRegistry();
-
- if (masterThread != null) {
- try {
- masterThread.requestShutdown();
- masterThread.join(20000); // Wait 20 seconds for everything to go down.
- masterThread = null;
- } catch (InterruptedException e) {
- }
- }
-
- try {
- processQueueJob.join();
- } catch(InterruptedException e) {
- }
-
- REMProxyFactoryRegistry.cancelAllTerminateJobs();
- }
-
- /**
- * Return the master socket port number.
- */
- public int getMasterSocketPort() {
- return masterThread != null ? masterThread.getMasterSocket().getLocalPort() : -1;
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMShortClassBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMShortClassBeanProxy.java
deleted file mode 100644
index b395fed87..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMShortClassBeanProxy.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMShortClassBeanProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * Remote Proxy for Short.class.
- */
-class REMShortClassBeanProxy extends REMNumberBeanProxy {
-
-REMShortClassBeanProxy(REMProxyFactoryRegistry aRegistry, Short aShort) {
- super(aRegistry, aShort);
-}
-
-/**
- * Get the beantype
- */
-public IBeanTypeProxy getTypeProxy() {
- return ((REMStandardBeanTypeProxyFactory) fFactory.getBeanTypeProxyFactory()).shortClass;
-}
-
-/**
- * Render the bean into value object.
- */
-public void renderBean(Commands.ValueObject value) {
- value.set((Short) numberValue());
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMShortClassBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMShortClassBeanTypeProxy.java
deleted file mode 100644
index 8a4a7fe64..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMShortClassBeanTypeProxy.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMShortClassBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * Remote Implementation of IBeanTypeProxy for Short.class.
- * Creation date: (2/6/00 9:01:40 AM)
- * @author: Joe Winchester
- */
-final class REMShortClassBeanTypeProxy extends REMAbstractNumberBeanTypeProxy {
-// Some values are cache'd for speed
- private final INumberBeanProxy zeroProxy;
- private final INumberBeanProxy oneProxy;
- private final INumberBeanProxy twoProxy;
- private final INumberBeanProxy threeProxy;
-/**
- * REMIntegerBeanTypeProxy constructor comment.
- * @param aClass java.lang.Class
- */
-REMShortClassBeanTypeProxy(REMProxyFactoryRegistry aRegistry, IBeanTypeProxy numberType) {
- super(aRegistry, new Integer(Commands.SHORT_CLASS), Short.class.getName(), numberType);
-
- // Create the cached values
- zeroProxy = new REMShortClassBeanProxy(aRegistry, new Short((short)0));
- oneProxy = new REMShortClassBeanProxy(aRegistry, new Short((short)1));
- twoProxy = new REMShortClassBeanProxy(aRegistry, new Short((short)2));
- threeProxy = new REMShortClassBeanProxy(aRegistry, new Short((short)3));
-}
-
-/**
- * Helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- */
-INumberBeanProxy createShortBeanProxy(Short aShort) {
- switch(aShort.shortValue()) {
- case 0: return zeroProxy;
- case 1: return oneProxy ;
- case 2: return twoProxy ;
- case 3: return threeProxy ;
- default: return new REMShortClassBeanProxy(fRegistry, aShort);
- }
-}
-
-/**
- * Generic way to create a Short proxy, however, the Number must be a Short.
- */
-protected INumberBeanProxy createNumberBeanProxy(Number aNumber) {
- return createShortBeanProxy((Short) aNumber);
-}
-
-/**
- * newInstance method. Number's don't have a default ctor, so the standard way won't work.
- * Return the zero proxy for this case.
- */
-public IBeanProxy newInstance() {
- return zeroProxy;
-}
-
-/**
- * Create a new bean proxy the ValueObject passed in.
- * We will assume the object is correct type.
- */
-public IBeanProxy newBeanProxy(Commands.ValueObject value) {
- return createShortBeanProxy(new Short(value.aShort));
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMShortTypeBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMShortTypeBeanProxy.java
deleted file mode 100644
index 43c09ae4a..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMShortTypeBeanProxy.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMShortTypeBeanProxy.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * Remote Implementation of INumberBeanProxy for the primitive "short".
- * It can answer all of the primitive number types (int, long, short, byte, double, float).
- * Creation date: (2/6/00 9:02:54 AM)
- * @author: Joe Winchester
- */
-class REMShortTypeBeanProxy extends REMConstantBeanProxy implements INumberBeanProxy {
- private final short fShort;
-
-/**
- * It is package protected because they are created
- * in a special way and no one else should create them.
- * @param aBean java.lang.Object
- */
-REMShortTypeBeanProxy(REMProxyFactoryRegistry aRegistry, short aShort) {
- super(aRegistry);
- fShort = aShort;
-}
-/**
- * equals: Equal if:
- * 1) This proxy == (identity) to the other object
- * 2) Else if other is an IBeanProxy and not a constant one, then if
- * equals on the server.
- * 3) If this is a constant proxy and the other is too or is a constant
- * value (e.g. IStringBeanProxy.equals(String), then true if values are equals.
- */
-public boolean equals(Object anObject) {
- if (this == anObject)
- return true; // Identity
- if (anObject instanceof REMShortTypeBeanProxy)
- return fShort == ((REMShortTypeBeanProxy) anObject).shortValue();
- if (anObject instanceof Short)
- return fShort == ((Short) anObject).shortValue();
- return false;
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#sameAs(org.eclipse.jem.internal.proxy.core.IBeanProxy)
- */
-public boolean sameAs(IBeanProxy aBeanProxy) {
- if (this == aBeanProxy)
- return true; // Identity
- if (aBeanProxy instanceof REMShortTypeBeanProxy)
- return fShort == ((REMShortTypeBeanProxy) aBeanProxy).shortValue();
- return false;
-}
-
-/**
- * byteValue method comment.
- */
-public byte byteValue() {
- return (byte) fShort;
-}
-/**
- * doubleValue method comment.
- */
-public double doubleValue() {
- return fShort;
-}
-/**
- * floatValue method comment.
- */
-public float floatValue() {
- return fShort;
-}
-/**
- * Return the int value
- */
-public int intValue() {
- return fShort;
-}
-/**
- * longValue method comment.
- */
-public long longValue() {
- return fShort;
-}
-/**
- * numberValue method comment.
- */
-public Number numberValue() {
- return new Short(fShort);
-}
-/**
- * shortValue method comment.
- */
-public short shortValue() {
- return fShort;
-}
-
-/**
- * The bean's toString.
- */
-public String toBeanString() {
- return String.valueOf(fShort);
-}
-
-/**
- * Get the beantype
- */
-public IBeanTypeProxy getTypeProxy() {
- return ((REMStandardBeanTypeProxyFactory) fFactory.getBeanTypeProxyFactory()).shortType;
-}
-
-/**
- * Render the bean into value object.
- */
-public void renderBean(Commands.ValueObject value) {
- value.set(fShort);
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMShortTypeBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMShortTypeBeanTypeProxy.java
deleted file mode 100644
index d9ba82c6b..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMShortTypeBeanTypeProxy.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMShortTypeBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * Remote Implementation of IBeanTypeProxy for Short.TYPE.
- * Creation date: (2/6/00 9:01:40 AM)
- * @author: Joe Winchester
- */
-final class REMShortTypeBeanTypeProxy extends REMPrimitiveBeanTypeProxy {
-// Some values are cache'd for speed
- private final INumberBeanProxy zeroProxy;
- private final INumberBeanProxy oneProxy;
- private final INumberBeanProxy twoProxy;
- private final INumberBeanProxy threeProxy;
-/**
- * REMIntegerBeanTypeProxy constructor comment.
- * @param aClass java.lang.Class
- */
-REMShortTypeBeanTypeProxy(REMProxyFactoryRegistry aRegistry) {
- super(aRegistry, new Integer(Commands.SHORT_TYPE), Short.TYPE.getName());
-
- // Create the cached values
- zeroProxy = new REMShortTypeBeanProxy(aRegistry, (short) 0);
- oneProxy = new REMShortTypeBeanProxy(aRegistry, (short) 1);
- twoProxy = new REMShortTypeBeanProxy(aRegistry, (short) 2);
- threeProxy = new REMShortTypeBeanProxy(aRegistry, (short) 3);
-}
-
-/**
- * Helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- */
-INumberBeanProxy createShortBeanProxy(short aShort) {
- switch(aShort) {
- case 0: return zeroProxy;
- case 1: return oneProxy ;
- case 2: return twoProxy ;
- case 3: return threeProxy ;
- default: return new REMShortTypeBeanProxy(fRegistry, aShort);
- }
-}
-
-/**
- * newInstance method. short is a primitive, so the standard way won't work.
- * Return the zeroProxy for this case because that is the default value.
- */
-public IBeanProxy newInstance() {
- return zeroProxy;
-}
-
-/**
- * Create a new bean proxy the ValueObject passed in.
- * We will assume the object is correct type.
- */
-public IBeanProxy newBeanProxy(Commands.ValueObject value) {
- return createShortBeanProxy(value.aShort);
-}
-
-/**
- * Short cut for newInstance where the string follows the
- * specific pattern we expect. That way it won't be necessary to ship over to the vm
- * to process it.
- *
- * The pattern it can accept is:
- * 1) (short) validNumber - number can be any number because (byte) explicitly casts it down.
- * 2) validNumber
- * It will use the decode function of short to determine the valid number.
- */
-public IBeanProxy newInstance(String initializationString) throws ThrowableProxy, ClassCastException, InstantiationException {
- String trim = initializationString.trim();
- if (trim.length() == 0)
- return super.newInstance(initializationString);
- short aShort;
- if (trim.startsWith("(short)")) { //$NON-NLS-1$
- Number v = parseString(trim.substring("(short)".length()).trim()); //$NON-NLS-1$
- if (v != null)
- aShort = v.shortValue();
- else
- return super.newInstance(initializationString); // Can't decode it, let full parser handle it.
- } else {
- try {
- aShort = Short.decode(trim).shortValue(); // See if valid short format.
- } catch (NumberFormatException e) {
- return super.newInstance(initializationString); // Can't decode it, let full parser handle it.
- }
- }
-
- return getProxyFactoryRegistry().getBeanProxyFactory().createBeanProxyWith(aShort);
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStandardBeanProxyConstants.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStandardBeanProxyConstants.java
deleted file mode 100644
index 3ab997d63..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStandardBeanProxyConstants.java
+++ /dev/null
@@ -1,508 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMStandardBeanProxyConstants.java,v $
- * $Revision: 1.9 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.IMethodProxy;
-import org.eclipse.jem.internal.proxy.core.ProxyFactoryRegistry;
-/**
- * REM Standard Proxy constants.
- *
- * Use the static accessor method (getConstants()) to get the appropriate
- * constants instance for the registry. This is done so that until the
- * the constants are needed, they aren't registered.
- *
- * There are some standard utility functions too.
- *
- * This is final because this can't be extended. This specific one
- * will be registered with the factory for this key. Any extensions
- * must be done in their own constants and registry key.
- *
- * Creation date: (4/7/00 4:47:48 PM)
- * @author: Administrator
- */
-public final class REMStandardBeanProxyConstants {
- public static final Object REGISTRY_KEY = new Object();
-
- private final ProxyFactoryRegistry fRegistry;
-
- private IMethodProxy fClassNewInstance;
- private IMethodProxy fClassGetField;
- private IMethodProxy fClassGetDeclaredField;
- private IMethodProxy fClassGetDeclaredFields;
- private IMethodProxy fClassGetFields;
- private IMethodProxy fClassGetConstructor;
- private IMethodProxy fClassGetConstructors;
- private IMethodProxy fClassGetDeclaredConstructor;
- private IMethodProxy fClassGetDeclaredConstructors;
- private IMethodProxy fClassGetMethods;
- private IMethodProxy fClassGetDeclaredMethods;
- private IMethodProxy fClassGetDeclaredMethod;
-
- private IMethodProxy fMethodHelperFindCompatibleConstructor;
- private IMethodProxy fMethodHelperFindCompatibleMethod;
-
- private IMethodProxy fClassIsAssignableFrom;
-
- private IMethodProxy fObjectToString;
- private IMethodProxy fObjectEquals;
-
- private IMethodProxy fThrowableLocalizedMessage;
- private IMethodProxy fThrowableMessage;
-
- private IMethodProxy fMethodDeclaringClassMessage;
- private IMethodProxy fMethodMethodNameMessage;
- private IMethodProxy fMethodParameterTypesMessage;
- private IMethodProxy fMethodReturnTypeMessage;
-
- private IMethodProxy fAccessibleIsAccessible;
- private IMethodProxy fAccessibleSetAccessible;
-
- private IMethodProxy fFieldGet;
- private IMethodProxy fFieldGetType;
- private IMethodProxy fFieldGetByte;
- private IMethodProxy fFieldGetBoolean;
- private IMethodProxy fFieldGetChar;
- private IMethodProxy fFieldGetDouble;
- private IMethodProxy fFieldGetFloat;
- private IMethodProxy fFieldGetInt;
- private IMethodProxy fFieldGetShort;
- private IMethodProxy fFieldGetLong;
- private IMethodProxy fFieldSet;
-
- private IMethodProxy fConstructorNewInstance;
- private IMethodProxy fConstructorParameterTypesMessage;
-
- private IMethodProxy fArrayNewInstanceOneDimension;
- private IMethodProxy fArrayNewInstanceMultiDimensions;
- private IMethodProxy fArrayGetLength;
- private IMethodProxy fArrayGet;
- private IMethodProxy fArrayGetByte;
- private IMethodProxy fArrayGetBoolean;
- private IMethodProxy fArrayGetChar;
- private IMethodProxy fArrayGetDouble;
- private IMethodProxy fArrayGetFloat;
- private IMethodProxy fArrayGetInt;
- private IMethodProxy fArrayGetShort;
- private IMethodProxy fArrayGetLong;
- private IMethodProxy fArraySet;
-
- private IMethodProxy fArrayHelperGet;
- private IMethodProxy fArrayHelperGetByte;
- private IMethodProxy fArrayHelperGetBoolean;
- private IMethodProxy fArrayHelperGetChar;
- private IMethodProxy fArrayHelperGetDouble;
- private IMethodProxy fArrayHelperGetFloat;
- private IMethodProxy fArrayHelperGetInt;
- private IMethodProxy fArrayHelperGetShort;
- private IMethodProxy fArrayHelperGetLong;
- private IMethodProxy fArrayHelperSet;
-
-/**
- * Get the constants instance for the specified registry.
- */
-public static REMStandardBeanProxyConstants getConstants(ProxyFactoryRegistry registry) {
- REMStandardBeanProxyConstants constants = (REMStandardBeanProxyConstants) registry.getConstants(REGISTRY_KEY);
- if (constants == null)
- registry.registerConstants(REGISTRY_KEY, constants = new REMStandardBeanProxyConstants(registry));
- return constants;
-}
-
-
-private REMStandardBeanProxyConstants(ProxyFactoryRegistry registry) {
- super();
- fRegistry = registry;
-}
-
-public IMethodProxy getClassNewInstance() {
- // We actually need a special new instance because we want to be able to access outside of security. For our purposes security doesn't matter for construction.
- if (fClassNewInstance == null)
- fClassNewInstance = fRegistry.getMethodProxyFactory().getMethodProxy("org.eclipse.jem.internal.proxy.vm.remote.ClassHelper", "newInstance", new String[] {"java.lang.Class"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fClassNewInstance;
-}
-
-public IMethodProxy getClassGetField() {
- if (fClassGetField == null)
- fClassGetField = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.Class", "getField", new String[] {"java.lang.String"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fClassGetField;
-}
-
-public IMethodProxy getClassConstructor() {
- if (fClassGetConstructor == null)
- fClassGetConstructor = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.Class", "getConstructor", new String[] {"[Ljava.lang.Class;"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fClassGetConstructor;
-}
-
-public IMethodProxy getClassConstructors() {
- if (fClassGetConstructors == null)
- fClassGetConstructors = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.Class", "getConstructors", null); //$NON-NLS-1$ //$NON-NLS-2$
- return fClassGetConstructors;
-}
-
-public IMethodProxy getDeclaredClassConstructor() {
- if (fClassGetDeclaredConstructor == null)
- fClassGetDeclaredConstructor = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.Class", "getDeclaredConstructor", new String[] {"[Ljava.lang.Class;"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fClassGetDeclaredConstructor;
-}
-
-public IMethodProxy getDeclaredClassConstructors() {
- if (fClassGetDeclaredConstructors == null)
- fClassGetDeclaredConstructors = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.Class", "getDeclaredConstructors", null); //$NON-NLS-1$ //$NON-NLS-2$
- return fClassGetDeclaredConstructors;
-}
-
-public IMethodProxy getClassIsAssignableFrom() {
- if (fClassIsAssignableFrom == null)
- fClassIsAssignableFrom = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.Class", "isAssignableFrom", new String[] {"java.lang.Class"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fClassIsAssignableFrom;
-}
-
-public IMethodProxy getObjectToString() {
- if (fObjectToString == null)
- fObjectToString = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.Object", "toString", null); //$NON-NLS-1$ //$NON-NLS-2$
- return fObjectToString;
-}
-
-public IMethodProxy getObjectEquals() {
- if (fObjectEquals == null)
- fObjectEquals = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.Object", "equals", new String[] {"java.lang.Object"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fObjectEquals;
-}
-public IMethodProxy getThrowableLocalizedMessage() {
- if (fThrowableLocalizedMessage == null)
- fThrowableLocalizedMessage = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.Throwable", "getLocalizedMessage", null); //$NON-NLS-1$ //$NON-NLS-2$
- return fThrowableLocalizedMessage;
-}
-
-public IMethodProxy getThrowableMessage() {
- if (fThrowableMessage == null)
- fThrowableMessage = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.Throwable", "getMessage", null); //$NON-NLS-1$ //$NON-NLS-2$
- return fThrowableMessage;
-}
-
-public IMethodProxy getMethodDeclaringClassMessage() {
- if (fMethodDeclaringClassMessage == null)
- fMethodDeclaringClassMessage = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Method", "getDeclaringClass", null); //$NON-NLS-1$ //$NON-NLS-2$
- return fMethodDeclaringClassMessage;
-}
-
-public IMethodProxy getMethodMethodNameMessage() {
- if (fMethodMethodNameMessage == null)
- fMethodMethodNameMessage = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Method", "getName", null); //$NON-NLS-1$ //$NON-NLS-2$
- return fMethodMethodNameMessage;
-}
-
-public IMethodProxy getMethodParameterTypesMessage() {
- if (fMethodParameterTypesMessage == null)
- fMethodParameterTypesMessage = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Method", "getParameterTypes", null); //$NON-NLS-1$ //$NON-NLS-2$
- return fMethodParameterTypesMessage;
-}
-
-public IMethodProxy getMethodReturnTypeMessage() {
- if (fMethodReturnTypeMessage == null)
- fMethodReturnTypeMessage = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Method", "getReturnType", null); //$NON-NLS-1$ //$NON-NLS-2$
- return fMethodReturnTypeMessage;
-}
-
-public IMethodProxy getAccessibleIsAccessible() {
- if (fAccessibleIsAccessible == null)
- fAccessibleIsAccessible = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.AccessibleObject", "isAccessible", null); //$NON-NLS-1$ //$NON-NLS-2$
- return fAccessibleIsAccessible;
-}
-
-public IMethodProxy getAccessibleSetAccessible() {
- if (fAccessibleSetAccessible == null)
- fAccessibleSetAccessible = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.AccessibleObject", "setAccessible", new String[] {"boolean"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fAccessibleSetAccessible;
-}
-
-public IMethodProxy getFieldGetType() {
- if (fFieldGetType == null)
- fFieldGetType = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Field", "getType", null); //$NON-NLS-1$ //$NON-NLS-2$
- return fFieldGetType;
-}
-
-public IMethodProxy getFieldGet() {
- if (fFieldGet == null)
- fFieldGet = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Field", "get", new String[] {"java.lang.Object"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fFieldGet;
-}
-
-public IMethodProxy getFieldGetByte() {
- if (fFieldGetByte == null)
- fFieldGetByte = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Field", "getByte", new String[] {"java.lang.Object"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fFieldGetByte;
-}
-
-public IMethodProxy getFieldGetBoolean() {
- if (fFieldGetBoolean == null)
- fFieldGetBoolean = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Field", "getBoolean", new String[] {"java.lang.Object"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fFieldGetBoolean;
-}
-
-public IMethodProxy getFieldGetChar() {
- if (fFieldGetChar == null)
- fFieldGetChar = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Field", "getChar", new String[] {"java.lang.Object"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fFieldGetChar;
-}
-
-public IMethodProxy getFieldGetDouble() {
- if (fFieldGetDouble == null)
- fFieldGetDouble = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Field", "getDouble", new String[] {"java.lang.Object"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fFieldGetDouble;
-}
-
-public IMethodProxy getFieldGetFloat() {
- if (fFieldGetFloat == null)
- fFieldGetFloat = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Field", "getFloat", new String[] {"java.lang.Object"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fFieldGetFloat;
-}
-
-public IMethodProxy getFieldGetInt() {
- if (fFieldGetInt == null)
- fFieldGetInt = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Field", "getInt", new String[] {"java.lang.Object"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fFieldGetInt;
-}
-
-public IMethodProxy getFieldGetLong() {
- if (fFieldGetLong == null)
- fFieldGetLong = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Field", "getLong", new String[] {"java.lang.Object"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fFieldGetLong;
-}
-
-public IMethodProxy getFieldGetShort() {
- if (fFieldGetShort == null)
- fFieldGetShort = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Field", "getShort", new String[] {"java.lang.Object"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fFieldGetShort;
-}
-
-public IMethodProxy getFieldSet() {
- if (fFieldSet == null)
- fFieldSet = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Field", "set", new String[] {"java.lang.Object", "java.lang.Object"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fFieldSet;
-}
-
-public IMethodProxy getConstructorNewInstance() {
- if (fConstructorNewInstance == null)
- fConstructorNewInstance = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Constructor", "newInstance", new String[] {"[Ljava.lang.Object;"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fConstructorNewInstance;
-}
-
-public IMethodProxy getConstructorParameterTypesMessage() {
- if (fConstructorParameterTypesMessage == null)
- fConstructorParameterTypesMessage = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Constructor", "getParameterTypes", null); //$NON-NLS-1$ //$NON-NLS-2$
- return fConstructorParameterTypesMessage;
-}
-
-public IMethodProxy getArrayNewInstanceOneDimension() {
- if (fArrayNewInstanceOneDimension == null)
- fArrayNewInstanceOneDimension = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Array", "newInstance", new String[] {"java.lang.Class", "int"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayNewInstanceOneDimension;
-}
-
-public IMethodProxy getArrayNewInstanceMultiDimension() {
- if (fArrayNewInstanceMultiDimensions == null)
- fArrayNewInstanceMultiDimensions = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Array", "newInstance", new String[] {"java.lang.Class", "[I"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayNewInstanceMultiDimensions;
-}
-
-public IMethodProxy getArrayGetLength() {
- if (fArrayGetLength == null)
- fArrayGetLength = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Array", "getLength", new String[] {"java.lang.Object"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fArrayGetLength;
-}
-
-public IMethodProxy getArrayGet() {
- if (fArrayGet == null)
- fArrayGet = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Array", "get", new String[] {"java.lang.Object", "int"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayGet;
-}
-
-public IMethodProxy getArrayGetByte() {
- if (fArrayGetByte == null)
- fArrayGetByte = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Array", "getByte", new String[] {"java.lang.Object", "int"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayGetByte;
-}
-
-public IMethodProxy getArrayGetBoolean() {
- if (fArrayGetBoolean == null)
- fArrayGetBoolean = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Array", "getBoolean", new String[] {"java.lang.Object", "int"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayGetBoolean;
-}
-
-public IMethodProxy getArrayGetChar() {
- if (fArrayGetChar == null)
- fArrayGetChar = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Array", "getChar", new String[] {"java.lang.Object", "int"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayGetChar;
-}
-
-public IMethodProxy getArrayGetDouble() {
- if (fArrayGetDouble == null)
- fArrayGetDouble = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Array", "getDouble", new String[] {"java.lang.Object", "int"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayGetDouble;
-}
-
-public IMethodProxy getArrayGetFloat() {
- if (fArrayGetFloat == null)
- fArrayGetFloat = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Array", "getFloat", new String[] {"java.lang.Object", "int"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayGetFloat;
-}
-
-public IMethodProxy getArrayGetInt() {
- if (fArrayGetInt == null)
- fArrayGetInt = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Array", "getInt", new String[] {"java.lang.Object", "int"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayGetInt;
-}
-
-public IMethodProxy getArrayGetLong() {
- if (fArrayGetLong == null)
- fArrayGetLong = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Array", "getLong", new String[] {"java.lang.Object", "int"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayGetLong;
-}
-
-public IMethodProxy getArrayGetShort() {
- if (fArrayGetShort == null)
- fArrayGetShort = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Array", "getShort", new String[] {"java.lang.Object", "int"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayGetShort;
-}
-
-public IMethodProxy getArraySet() {
- if (fArraySet == null)
- fArraySet = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.reflect.Array", "set", new String[] {"java.lang.Object", "int", "java.lang.Object"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
- return fArraySet;
-}
-
-public IMethodProxy getArrayHelperGet() {
- if (fArrayHelperGet == null)
- fArrayHelperGet = fRegistry.getMethodProxyFactory().getMethodProxy("org.eclipse.jem.internal.proxy.vm.remote.ArrayHelper", "get", new String[] {"java.lang.Object", "[I"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayHelperGet;
-}
-
-public IMethodProxy getArrayHelperGetByte() {
- if (fArrayHelperGetByte == null)
- fArrayHelperGetByte = fRegistry.getMethodProxyFactory().getMethodProxy("org.eclipse.jem.internal.proxy.vm.remote.ArrayHelper", "getByte", new String[] {"java.lang.Object", "[I"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayHelperGetByte;
-}
-
-public IMethodProxy getArrayHelperGetBoolean() {
- if (fArrayHelperGetBoolean == null)
- fArrayHelperGetBoolean = fRegistry.getMethodProxyFactory().getMethodProxy("org.eclipse.jem.internal.proxy.vm.remote.ArrayHelper", "getBoolean", new String[] {"java.lang.Object", "[I"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayHelperGetBoolean;
-}
-
-public IMethodProxy getArrayHelperGetChar() {
- if (fArrayHelperGetChar == null)
- fArrayHelperGetChar = fRegistry.getMethodProxyFactory().getMethodProxy("org.eclipse.jem.internal.proxy.vm.remote.ArrayHelper", "getChar", new String[] {"java.lang.Object", "[I"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayHelperGetChar;
-}
-
-public IMethodProxy getArrayHelperGetDouble() {
- if (fArrayHelperGetDouble == null)
- fArrayHelperGetDouble = fRegistry.getMethodProxyFactory().getMethodProxy("org.eclipse.jem.internal.proxy.vm.remote.ArrayHelper", "getDouble", new String[] {"java.lang.Object", "[I"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayHelperGetDouble;
-}
-
-public IMethodProxy getArrayHelperGetFloat() {
- if (fArrayHelperGetFloat == null)
- fArrayHelperGetFloat = fRegistry.getMethodProxyFactory().getMethodProxy("org.eclipse.jem.internal.proxy.vm.remote.ArrayHelper", "getFloat", new String[] {"java.lang.Object", "[I"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayHelperGetFloat;
-}
-
-public IMethodProxy getArrayHelperGetInt() {
- if (fArrayHelperGetInt == null)
- fArrayHelperGetInt = fRegistry.getMethodProxyFactory().getMethodProxy("org.eclipse.jem.internal.proxy.vm.remote.ArrayHelper", "getInt", new String[] {"java.lang.Object", "[I"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayHelperGetInt;
-}
-
-public IMethodProxy getArrayHelperGetLong() {
- if (fArrayHelperGetLong == null)
- fArrayHelperGetLong = fRegistry.getMethodProxyFactory().getMethodProxy("org.eclipse.jem.internal.proxy.vm.remote.ArrayHelper", "getLong", new String[] {"java.lang.Object", "[I"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayHelperGetLong;
-}
-
-public IMethodProxy getArrayHelperGetShort() {
- if (fArrayHelperGetShort == null)
- fArrayHelperGetShort = fRegistry.getMethodProxyFactory().getMethodProxy("org.eclipse.jem.internal.proxy.vm.remote.ArrayHelper", "getShort", new String[] {"java.lang.Object", "[I"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fArrayHelperGetShort;
-}
-
-public IMethodProxy getArrayHelperSet() {
- if (fArrayHelperSet == null)
- fArrayHelperSet = fRegistry.getMethodProxyFactory().getMethodProxy("org.eclipse.jem.internal.proxy.vm.remote.ArrayHelper", "set", new String[] {"java.lang.Object", "[I", "java.lang.Object"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
- return fArrayHelperSet;
-}
-
-
-public IMethodProxy getClassGetDeclaredField() {
-
- if (fClassGetDeclaredField == null)
- fClassGetDeclaredField = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.Class", "getDeclaredField", new String[] {"java.lang.String"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return fClassGetDeclaredField;
-}
-
-public IMethodProxy getClassGetDeclaredFields() {
-
- if (fClassGetDeclaredFields == null)
- fClassGetDeclaredFields = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.Class", "getDeclaredFields", null); //$NON-NLS-1$ //$NON-NLS-2$
- return fClassGetDeclaredFields;
-}
-public IMethodProxy getClassGetFields() {
-
- if (fClassGetFields == null)
- fClassGetFields = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.Class", "getFields", null); //$NON-NLS-1$ //$NON-NLS-2$
- return fClassGetFields;
-}
-
-
-/**
- * @return
- *
- * @since 1.1.0
- */
-public IMethodProxy getClassMethods() {
- if (fClassGetMethods == null)
- fClassGetMethods = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.Class", "getMethods", null); //$NON-NLS-1$ //$NON-NLS-2$
- return fClassGetMethods;
-}
-
-/**
- * @return
- *
- * @since 1.1.0
- */
-public IMethodProxy getClassDeclaredMethods() {
- if (fClassGetDeclaredMethods == null)
- fClassGetDeclaredMethods = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.Class", "getDeclaredMethods", null); //$NON-NLS-1$ //$NON-NLS-2$
- return fClassGetDeclaredMethods;
-}
-
-public IMethodProxy getClassDeclaredMethod() {
- if (fClassGetDeclaredMethod == null)
- fClassGetDeclaredMethod = fRegistry.getMethodProxyFactory().getMethodProxy("java.lang.Class", "getDeclaredMethod", new String[] {"java.lang.String", "[Ljava.lang.Class;"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fClassGetDeclaredMethod;
-}
-
-public IMethodProxy getFindCompatibleConstructorMethod() {
- if (fMethodHelperFindCompatibleConstructor == null)
- fMethodHelperFindCompatibleConstructor = fRegistry.getMethodProxyFactory().getMethodProxy("org.eclipse.jem.internal.proxy.common.MethodHelper", "findCompatibleConstructor", new String[] {"java.lang.Class", "[Ljava.lang.Class;"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return fMethodHelperFindCompatibleConstructor;
-}
-
-public IMethodProxy getFindCompatibleMethodMethod() {
- if (fMethodHelperFindCompatibleMethod == null)
- fMethodHelperFindCompatibleMethod = fRegistry.getMethodProxyFactory().getMethodProxy("org.eclipse.jem.internal.proxy.common.MethodHelper", "findCompatibleMethod", new String[] {"java.lang.Class", "java.lang.String", "[Ljava.lang.Class;"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
- return fMethodHelperFindCompatibleMethod;
-}
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStandardBeanProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStandardBeanProxyFactory.java
deleted file mode 100644
index ba2e374b9..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStandardBeanProxyFactory.java
+++ /dev/null
@@ -1,854 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMStandardBeanProxyFactory.java,v $
- * $Revision: 1.16 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import java.text.MessageFormat;
-import java.util.*;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.CommandException;
-import org.eclipse.jem.internal.proxy.common.remote.CommandErrorException;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-
-/**
- * The Remote VM Standard Bean Proxy Factory.
- * Creation date: (12/3/99 12:01:45 PM)
- * @author: Joe Winchester
- */
-public final class REMStandardBeanProxyFactory implements IStandardBeanProxyFactory {
- protected final REMProxyFactoryRegistry fRegistry;
- protected final REMStandardBeanTypeProxyFactory fBeanTypeProxyFactory; // Convenience field.
- protected final IREMBeanProxy vmServerProxy;
-
-
- // We need a map for mapping object id's to the proxy. The entry will actually be
- // a REMStandardBeanProxyFactory.WeakProxyReference. This is so that the
- // proxy will not be held tightly by this map and can be GC'd if not referenced.
- // Periodically, the reference queue will be processed to remove any of the
- // entries that have been GC'd and the server will be told that it can release
- // the ID on its side.
- //
- // This map will be used as synchronize object also for access to it.
- //
- // There will be a low priority job that will occasionally process the GC'd objects
- // and remove them from the queue and the remote vm. It will not remove during lockedTransactions.
- //
- // NOTE: Certain proxies never get added to the map. They are the
- // standard types/class (i.e. null, byte, int, long, short, double, float, byte, string). These
- // always have the value saved in the proxy so that it can be retrieved without going back
- // to the server.
- private final HashMap fIDToProxiesMap = new HashMap(1000); // Map ID's to proxies. The proxies have their id's so we don't need a reverse map
- private int transactionLockCount = 0; // Count of transactions that have locked access. It is changed under sync control of fIDToProxies map.
-
- /**
- * The Weak reference used for the id to proxies map for the proxy
- * so that we can clean it up when the proxy has been garbage collected.
- *
- * It is important that all changes to the ProxyRef are done through sync on fIDToProxiesMap.
- */
- private static class ProxyRef extends java.lang.ref.WeakReference {
- private Integer id; // We need the id because this reference will be on the value side
- // and not the key side of the map, so we need to know the key
- // so that the object can be removed from the map.
- //
- // If the ID is null, then this means this entry has been processed
- // in some way and should not be released or removed from the table.
- private int useCnt = 1; // Usage/Ref count. Needed so that we don't get rid of too soon. Since we don't
- // create a ProxyRef without a usage, we start it off with one. It will be incremented
- // then on retrievals when needed by users outside of the remote factories themselves.
- // It won't be physically released until either GC got rid of it, or it goes to 0 or less
- // on a release request.
-
- public ProxyRef(Integer anID, Object proxy, java.lang.ref.ReferenceQueue q) {
- super(proxy, q);
- id = anID;
- }
-
- public Integer getID() {
- return id;
- }
-
- public void clear() {
- super.clear();
- id = null;
- }
-
- public synchronized int useCnt() {
- return useCnt;
- }
-
- public synchronized void incrUseCnt() {
- useCnt++;
- }
-
- public synchronized int decrUseCnt() {
- if (--useCnt < 0)
- useCnt = 0;
- return useCnt;
- }
- }
-
- /* Reference queue for cleared Proxies */
- private java.lang.ref.ReferenceQueue queue = new java.lang.ref.ReferenceQueue();
-
- /**
- * Process the entries on the id to proxies map that have been garbage collected.
- * It is package-protected because only REMRegistryController should call it.
- */
- void processQueue() {
- ProxyRef pr;
- while (true) {
- if (Thread.interrupted())
- return; // Maybe going down. (This actually a kludge because the thread happens to be the master thread from the registry controller).
-
- synchronized (fIDToProxiesMap) {
- if (queue == null || transactionLockCount > 0)
- break; // Either no queue (we are cleaning up) or in a transaction, stop processing and retry on next time slice.
- if ((pr = (ProxyRef) queue.poll()) != null) {
- if (pr.getID() != null) {
- // It hasn't been processed by some other means.
- fIDToProxiesMap.remove(pr.getID());
- releaseID(pr.getID().intValue());
- }
- } else
- break; // There are no more waiting, so leave.
- }
- }
- }
-
-
-/**
- * REMBeanProxyFactory constructor comment.
- *
- * Note: It assumes the beantype factory has already been registered.
- */
-REMStandardBeanProxyFactory(REMProxyFactoryRegistry aRegistry) {
- fRegistry = aRegistry;
- aRegistry.registerBeanProxyFactory(this);
- fBeanTypeProxyFactory = (REMStandardBeanTypeProxyFactory) aRegistry.getBeanTypeProxyFactory();
- fBeanTypeProxyFactory.initialize(this); // Now we're ready for the beantype factory to be initialized.
-
- IREMBeanTypeProxy serverType = fBeanTypeProxyFactory.objectClass.newBeanTypeForClass(new Integer(Commands.REMOTEVMSERVER_CLASS), "org.eclipse.jem.internal.proxy.vm.remote.RemoteVMServerThread", false); //$NON-NLS-1$
- fBeanTypeProxyFactory.registerBeanTypeProxy(serverType, true);
- vmServerProxy = serverType.newBeanProxy(new Integer(Commands.REMOTESERVER_ID));
- registerProxy(vmServerProxy);
-}
-
-
-/**
- * Register a collection of Proxies
- */
-public void registerProxies(Collection proxies) {
- synchronized(fIDToProxiesMap) {
- Iterator itr = proxies.iterator();
- while (itr.hasNext()) {
- IREMBeanProxy proxy = (IREMBeanProxy) itr.next();
- if (proxy instanceof IBeanTypeProxy || !(proxy.getTypeProxy() instanceof IREMConstantBeanTypeProxy)) {
- ProxyRef oldRef = (ProxyRef) fIDToProxiesMap.put(proxy.getID(), new ProxyRef(proxy.getID(), proxy, queue));
- if (oldRef != null) {
- // We've replaced it with a new one, so we will clear out the ref so that it won't later try to remove itself
- oldRef.clear();
- }
- }
- }
- }
-}
-
-/**
- * Register a single proxy
- */
-public void registerProxy(IREMBeanProxy proxy) {
- if (proxy instanceof IBeanTypeProxy || !(proxy.getTypeProxy() instanceof IREMConstantBeanTypeProxy))
- synchronized(fIDToProxiesMap) {
- ProxyRef oldRef = (ProxyRef) fIDToProxiesMap.put(proxy.getID(), new ProxyRef(proxy.getID(), proxy, queue));
- if (oldRef != null) {
- // We've replaced it with a new one, so we will clear out the ref so that it won't later try to remove itself
- oldRef.clear();
- }
- }
-}
-
-/**
- * Release a proxy because no longer needed.
- */
-public void releaseProxy(IBeanProxy proxy) {
- if (!proxy.isValid())
- return;
- if (proxy instanceof IBeanTypeProxy && !fBeanTypeProxyFactory.releaseProxy((IBeanTypeProxy) proxy))
- return; // BeanType and type factory won't allow release of it.
- Integer id = ((IREMBeanProxy) proxy).getID();
- synchronized(fIDToProxiesMap) {
- // Synced in here so that we will remove it before some one else from a different thread may try
- // to access it again.
- if (id.intValue() != Commands.NOT_AN_ID) {
- ProxyRef ref = (ProxyRef) fIDToProxiesMap.get(id);
- if (ref == null || ref.decrUseCnt() <= 0) {
- // No usage, so do actual release.
- fIDToProxiesMap.remove(id);
- ((IREMBeanProxy) proxy).release();
- if (ref != null)
- ref.enqueue(); // Queue it up so that on next release cycle it will go away.
- }
- } else {
- ((IREMBeanProxy) proxy).release();
- }
- }
-}
-
-/**
- * Release a specific ID. This is used in case an ID has been sent
- * but we couldn't proxy it. In that case we only have an ID. It is
- * also used when a proxy has been released explicitly or through GC.
- * In that case it has already been de-registered.
- */
-private void releaseID(int anID) {
- try {
- IREMConnection connect = fRegistry.getFreeConnection();
- try {
- connect.releaseID(anID);
- } finally {
- fRegistry.returnConnection(connect);
- }
- } catch (IllegalStateException e) {
- // Couldn't get connection, don't bother with a release.
- }
-}
-
-/**
- * For the Remote Factory we will create an REMBeanProxy using the null constructor
- * Package protected so only REMBeanTypeProxies can create instances.
- */
-
-IBeanProxy createBeanProxy(IREMBeanTypeProxy aTypeProxy) throws ThrowableProxy {
- return REMStandardBeanProxyConstants.getConstants(fRegistry).getClassNewInstance().invoke(null, aTypeProxy);
-}
-
-/**
- * For the Remote Factory we will create a REMBeanProxy using the initializationString.
- * Package protected so only REMBeanTypeProxies can create instances.
- */
-IBeanProxy createBeanProxy(IREMBeanTypeProxy aTypeProxy, String initializationString)
- throws ThrowableProxy, CommandException, ClassCastException, InstantiationException, IllegalStateException {
- IREMConnection connect = fRegistry.getFreeConnection();
- startTransaction();
- // Starting a transaction, we will be getting id's back and need to get data in a separate step, so we need to group it in a transaction.
- try {
- Commands.ValueObject newInstanceData = null;
- try {
- newInstanceData = getNewInstanceData(aTypeProxy, initializationString, connect);
- } catch (CommandErrorException e) {
- switch (e.getErrorCode()) {
- case Commands.CLASS_CAST_EXCEPTION:
- // The result was not of the correct type.
- throw new ClassCastException(
- MessageFormat.format(ProxyRemoteMessages.Classcast_EXC_, new Object[] {extractFirstLine(initializationString), aTypeProxy.getTypeName()}));
- case Commands.CANNOT_EVALUATE_STRING:
- // Want to log the exception that caused it to not evaluate.
- // Don't need to log this side, just log the RemoteVM side of the trace.
- java.io.StringWriter s = new java.io.StringWriter();
- java.io.PrintWriter w = new java.io.PrintWriter(s);
- ((ThrowableProxy) e.getErrorObject()).printProxyStackTrace(w);
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, s.toString(), null));
- throw new InstantiationException(
- MessageFormat.format(ProxyRemoteMessages.Instantiate_EXC_, new Object[] {extractFirstLine(initializationString)}));
- default:
- throw e; //$NON-NLS-1$
- }
- } catch (CommandException e) {
- if (e.isRecoverable()) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(
- IStatus.WARNING,
- ProxyPlugin.getPlugin().getBundle().getSymbolicName(),
- 0,
- "", //$NON-NLS-1$
- e));
- } else {
- // It failed in the command, try again.
- fRegistry.closeConnection(connect);
- connect = null;
- connect = fRegistry.getFreeConnection();
- try {
- newInstanceData = getNewInstanceData(aTypeProxy, initializationString, connect);
- } catch (CommandException eAgain) {
- // It failed again. Close this connection and don't let it be returned.
- fRegistry.closeConnection(connect);
- connect = null; // This is so that it won't be returned.
- }
- }
- } finally {
- if (connect != null)
- fRegistry.returnConnection(connect);
- }
-
- if (newInstanceData != null)
- return getBeanProxy(newInstanceData); // Turn it into a proxy
- } finally {
- stopTransaction(); // Now we can release the transaction.
- }
-
-return null;
-}
-
-private String extractFirstLine(String initString) {
- // Need to extract the first line for the messageFormat not to barf.
- int cr = initString.indexOf('\r');
- int lf = initString.indexOf('\n');
- if (cr != -1 || lf != -1) {
- if (cr == -1 || (lf != -1 && lf < cr))
- return initString.substring(0, lf);
- else
- return initString.substring(0, cr);
- } else
- return initString;
-}
-
-
-/**
- * actually create it using a passed in connection. This allows retry capability.
- *
- * This will send the request over to the connection.
- *
- * If we get an OBJECT back, then the beantypeproxy that the classID in the
- * value points to must be of type IREMConstantBeanTypeProxy so that we can
- * send this new object to the correct beantype to create the correct proxy.
- *
- * If we get an OBJECT_ID back, then the beantypeproxy that the classID in
- * the value points to must be able to handle creating a proxy of that type.
- */
-private Commands.ValueObject getNewInstanceData(IREMBeanTypeProxy aTypeProxy, String initializationString, IREMConnection connect) throws ThrowableProxy, CommandException {
- try {
- Commands.ValueObject newInstanceData = new Commands.ValueObject();
- connect.getNewInstance(aTypeProxy.getID().intValue(), initializationString, newInstanceData);
- return newInstanceData;
- } catch (CommandErrorException e) {
- // TBD - Needs to handle error of not evaluatable and send over to the compilor.
- processErrorReturn(e); // Process this
- }
- return null;
-}
-
-/**
- * actually create it using a passed in connection. This allows retry capability.
- */
-private void getObjectInstanceData(IREMConnection connect, int objectID, Commands.ValueObject valueReturn) throws ThrowableProxy, CommandException {
- try {
- connect.getObjectData(objectID, valueReturn);
- } catch (CommandErrorException e) {
- processErrorReturn(e); // Process this
- }
-}
-
-/**
- * Get a bean proxy from the value object passed in. If not yet created, create one.
- * NOTE: NULL type actually returns a true null. This is so that if people are casting
- * the returned proxy to a specific type (e.g IIntegerBeanProxy), then they won't get
- * a ClassCastException, they will get a null. This is easier for them to handle.
- *
- * NOTE: This is public ONLY so that extension factories can create correct types of
- * proxies in consistent manner from a value object.
- *
- * It is important that this is called
- * from within a transaction only because otherwise the value could have invalid data
- * by the time we try to get the data out of it.
- */
-public IBeanProxy getBeanProxy(Commands.ValueObject value) throws ThrowableProxy, CommandException {
- switch (value.type) {
- // Null result.
- case (byte) Commands.VOID_TYPE:
- return null;
- // A constant object was received.
- case Commands.OBJECT:
- IREMConstantBeanTypeProxy constantBeanType = null;
- try {
- constantBeanType = (IREMConstantBeanTypeProxy) getBeanType(value.classID);
- if (constantBeanType == null)
- return null; // Cannot find the type to create it.
- } catch (ClassCastException e) {
- // It wasn't a constant type, so we can't create it. Return null.
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- return null;
- }
-
- return constantBeanType.newBeanProxy(value);
-
- // An existing object_id was returned, the object should exist. If it doesn't
- // then submit the info command to try to recreate it correctly.
- case Commands.OBJECT_ID:
- Integer objectID = new Integer(value.objectID);
- IBeanProxy proxy = retrieveProxy(objectID, true);
- if (proxy != null)
- return proxy;
-
- // Not found, need to try to recreate it.
- IREMConnection connect = fRegistry.getFreeConnection();
- try {
- getObjectInstanceData(connect, value.objectID, value); // Go and get the data
- } catch (CommandErrorException e) {
- if (e.isRecoverable()) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(
- IStatus.WARNING,
- ProxyPlugin.getPlugin().getBundle().getSymbolicName(),
- 0,
- "", //$NON-NLS-1$
- e));
- return null;
- } else {
- // Try one more time.
- fRegistry.closeConnection(connect);
- connect = null;
- connect = fRegistry.getFreeConnection();
- try {
- getObjectInstanceData(connect, value.objectID, value); // Go and get the data
- } catch (CommandErrorException eAgain) {
- fRegistry.closeConnection(connect);
- connect = null;
- throw eAgain;
- }
- }
- } finally {
- if (connect != null)
- fRegistry.returnConnection(connect);
- }
-
- return getBeanProxy(value); // Now process it to create the new data.
-
- // An new object id. Need to get the class type and let it create it.
- case Commands.NEW_OBJECT_ID:
- try {
- IREMBeanTypeProxy newBeanType = getBeanType(value.classID);
- IREMBeanProxy newProxy = newBeanType.newBeanProxy(new Integer(value.objectID));
- if (newProxy != null)
- registerProxy(newProxy);
- return newProxy;
- } catch (CommandException e) {
- // The server has created a new object, but we couldn't create/register a proxy for it.
- // We need to release it so that the server can get rid of it. Otherwise it would hang
- // around over there forever.
- releaseID(value.objectID);
- throw e;
- } catch (RuntimeException e) {
- // The server has created a new object, but we couldn't create/register a proxy for it.
- // We need to release it so that the server can get rid of it. Otherwise it would hang
- // around over there forever.
- releaseID(value.objectID);
- throw e;
- }
-
- // An exception was thrown, create the ThrowableProxy and then throw it.
- case Commands.THROW:
- IREMBeanProxy newThrowProxy = null;
- try {
- IREMBeanTypeProxy newThrowType = newThrowType = getBeanType(value.classID);
- newThrowProxy = newThrowType.newBeanProxy(new Integer(value.objectID));
- if (newThrowProxy != null)
- registerProxy(newThrowProxy);
- } catch (CommandException e) {
- // The server has created a new object, but we couldn't create/register a proxy for it.
- // We need to release it so that the server can get rid of it. Otherwise it would hang
- // around over there forever.
- releaseID(value.objectID);
- throw e;
- } catch (RuntimeException e) {
- // The server has created a new object, but we couldn't create/register a proxy for it.
- // We need to release it so that the server can get rid of it. Otherwise it would hang
- // around over there forever.
- releaseID(value.objectID);
- throw e;
- }
- // It really should be a throwable, but if not, just return it.
- if (newThrowProxy instanceof ThrowableProxy)
- throw (ThrowableProxy) newThrowProxy;
- else
- return newThrowProxy;
-
- // It is one of the standard kinds, which are Constant types
- default:
- IREMConstantBeanTypeProxy standardBeanType = null;
- try {
- standardBeanType = (IREMConstantBeanTypeProxy) getBeanType(value.type);
- if (standardBeanType == null)
- return null; // Cannot find the type to create it.
- } catch (ClassCastException e) {
- // It wasn't a standard type, so we can't create it. Return null.
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- return null;
- }
- return standardBeanType.newBeanProxy(value);
- }
-}
-
-/**
- * Process the error exception. Get the data from it and turn it into proxy data.
- * If it is a THROW, then it will throw the Throwable instead.
- *
- * NOTE: It is public ONLY so that extension factories can process errors in
- * an consistent manner.
- *
- * It is important that this be called only within a transaction.
- */
-public void processErrorReturn(CommandErrorException e) throws CommandException, ThrowableProxy {
- int code = e.getErrorCode();
- Object data = null;
- if (code == Commands.THROWABLE_SENT)
- data = getBeanProxy(e.getValue()); // It is Throw sent, so let the throw from getBeanProxy continue on out. (But as a safety, we still try to get the data.
- else {
- try {
- data = getBeanProxy(e.getValue());
- } catch (ThrowableProxy t) {
- // But we want to keep throwables in this case. They are just data for the command error.
- data = t;
- }
- }
- throw new CommandErrorException(MessageFormat.format(ProxyRemoteMessages.RemoteCmd_EXC_, new Object[] {new Integer(code)}), code, e.getValue(), data); // Create a new one and throw it containing the proxied data. //$NON-NLS-1$
-}
-
-
-/**
- * Get a beantype where the id passed in is the classID of the beantype.
- * If not found, then go get it loaded. If it can't be found, then we will
- * release the id because it means we have an id from the server, but we
- * can't create a proxy for it, so don't keep the server holding it.
- * NOTE: This is public ONLY so that extension factories can create correct types
- * in a consistent manner from the id.
- *
- * It is important that this be called only from within a transaction.
- */
-public IREMBeanTypeProxy getBeanType(int id) throws CommandException {
- IREMBeanTypeProxy beanType = null;
- try {
- Integer classID = new Integer(id);
- beanType = (IREMBeanTypeProxy) retrieveProxy(classID, false);
- if (beanType == null)
- beanType = fBeanTypeProxyFactory.createBeanTypeProxy(classID); // We don't have it, need to go to the factory so that it can go query what it needs
- if (beanType == null)
- return null; // Cannot find the type to create it.
- } catch (ClassCastException e) {
- // It wasn't a bean type, so we can't create it. Return null.
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- } finally {
- if (beanType == null)
- releaseID(id); // Couldn't create a proxy, so release the id.
- }
- return beanType;
-}
-
-
-/**
- * Return a proxy wrapping the primitive integer
- */
-public IIntegerBeanProxy createBeanProxyWith(int aPrimitiveInteger) {
-
- return fBeanTypeProxyFactory.intType.createIntegerBeanProxy(aPrimitiveInteger);
-}
-
-/**
- * Return a proxy wrapping the primitive byte
- */
-public INumberBeanProxy createBeanProxyWith(byte aPrimitiveByte) {
-
- return fBeanTypeProxyFactory.byteType.createByteBeanProxy(aPrimitiveByte);
-}
-
-/**
- * Return a proxy wrapping the primitive char
- */
-public ICharacterBeanProxy createBeanProxyWith(char aPrimitiveChar) {
-
- return fBeanTypeProxyFactory.charType.createCharacterBeanProxy(aPrimitiveChar);
-}
-
-/**
- * Return a proxy wrapping the primitive short
- */
-public INumberBeanProxy createBeanProxyWith(short aPrimitiveShort) {
-
- return fBeanTypeProxyFactory.shortType.createShortBeanProxy(aPrimitiveShort);
-}
-
-/**
- * Return a proxy wrapping the primitive long
- */
-public INumberBeanProxy createBeanProxyWith(long aPrimitiveLong) {
-
- return fBeanTypeProxyFactory.longType.createLongBeanProxy(aPrimitiveLong);
-}
-/**
- * Return a proxy wrapping the primitive double
- */
-public INumberBeanProxy createBeanProxyWith(double aPrimitiveDouble) {
-
- return fBeanTypeProxyFactory.doubleType.createDoubleBeanProxy(aPrimitiveDouble);
-}
-/**
- * Return a proxy wrapping the primitive float
- */
-public INumberBeanProxy createBeanProxyWith(float aPrimitiveFloat) {
-
- return fBeanTypeProxyFactory.floatType.createFloatBeanProxy(aPrimitiveFloat);
-}
-
-/**
- * createBeanProxyWith method comment.
- */
-public IBooleanBeanProxy createBeanProxyWith(Boolean aBoolean) {
- return fBeanTypeProxyFactory.booleanClass.createBooleanBeanProxy(aBoolean);
-}
-/**
- * Return a proxy that wraps the Integer argument
- */
-public IIntegerBeanProxy createBeanProxyWith(Integer anInteger) {
-
- return fBeanTypeProxyFactory.integerClass.createIntegerBeanProxy(anInteger);
-}
-/**
- * createBeanProxyWith method comment.
- */
-public INumberBeanProxy createBeanProxyWith(Number aNumber) {
- REMAbstractNumberBeanTypeProxy type = (REMAbstractNumberBeanTypeProxy) fBeanTypeProxyFactory.getBeanTypeProxy(aNumber.getClass().getName());
- return type.createNumberBeanProxy(aNumber);
-}
-/**
- * Return a proxy for the argument
- */
-public IStringBeanProxy createBeanProxyWith(String aString) {
-
- return fBeanTypeProxyFactory.stringClass.createStringBeanProxy(aString);
-
-}
-/**
- * Return a proxy for the argument
- */
-public ICharacterBeanProxy createBeanProxyWith(Character aCharacter) {
-
- return fBeanTypeProxyFactory.characterClass.createCharacterBeanProxy(aCharacter);
-
-}
-/**
- * createBeanProxyWith method comment.
- */
-public IBooleanBeanProxy createBeanProxyWith(boolean aPrimitiveBoolean) {
- return fBeanTypeProxyFactory.booleanType.createBooleanBeanProxy(aPrimitiveBoolean);
-}
-
-/**
- * Create an array bean proxy.
- *
- * - (int, new int[2] {3, 4}) will create:
- * int [3] [4]
- *
- * - (int[], new int[1] {1})
- * int [1]
- *
- * - (int[], new int[2] {2,3})
- * int [2] [3]
- *
- *
- * - (int[], null) or (int[], new int[0]) or (int, null) or (int, new int[0])
- * int [0]...
- * or
- * (int[][]..., null) or (int[][]..., new int[0])
- * int[0][]...
- * This is because an array instance with no specified dimensions is not valid.
- *
- * - (int[][], new int[1] {3})
- * int[3][]
- */
-public IArrayBeanProxy createBeanProxyWith(IBeanTypeProxy type, int[] dimensions) throws ThrowableProxy {
- if (type.isArray())
- return ((REMArrayBeanTypeProxy) type).createBeanProxyWith(dimensions); // Already an array type, just pass it on.
- else {
- // It is not an array type, so we need to get an array of this type and dimensions.
- REMArrayBeanTypeProxy arrayType = (REMArrayBeanTypeProxy) fBeanTypeProxyFactory.getBeanTypeProxy(type.getTypeName(), dimensions.length);
- return arrayType.createBeanProxyWith(dimensions);
- }
-}
-/**
- * Create a one-dimensional array.
- * The result will be the same as calling
- * createBeanProxyWith(IBeanTypeProxy type, new int[1] {x})
- * where 'x' is the value passed in as the dimension.
- */
-public IArrayBeanProxy createBeanProxyWith(IBeanTypeProxy type, int dimension) throws ThrowableProxy {
- return createBeanProxyWith(type, new int[] {dimension});
-}
-
-/**
- * Retrieve the proxy from the mapping table. Handle already GC'd.
- * If this returns null, it is important that the caller tries to recreate
- * it since the id is still valid on the server.
- */
-private IBeanProxy retrieveProxy(Integer objectID, boolean incrementUseCnt) {
- synchronized (fIDToProxiesMap) {
- ProxyRef ref = (ProxyRef) fIDToProxiesMap.get(objectID);
- if (ref != null) {
- Object bp = ref.get();
- if (ref.isEnqueued() || bp == null) {
- // It's waiting to be removed, or has been removed. i.e. GC'd, so just remove it from the map, next processQueue will remove it from the queue.
- fIDToProxiesMap.remove(objectID);
- ref.clear(); // This is so that when the processQueue see's it,
- // it won't send a release request to the server
- // since it will be recreated when this method returns.
- return null;
- } else {
- if (incrementUseCnt)
- ref.incrUseCnt();
- return (IBeanProxy) bp;
- }
- } else
- return null;
- }
-}
-
-/**
- * Start Transaction: During the time between start/stop transaction,
- * proxies will not be cleaned up. This prevents the case of a two step
- * transaction where the returned ID from the remote vm is for a proxy
- * that is about to be cleaned up, and then having that proxy disappear
- * when going for the data for it.
- *
- * Note: It is IMPERITIVE that the start/stop is used in the following way:
- * factory.startTransaction();
- * try {
- * do your stuff...
- * } finally {
- * factory.stopTransaction();
- * }
- *
- * This way it can never accidently leave it in a locked state.
- */
-public void startTransaction() {
- synchronized (fIDToProxiesMap) {
- transactionLockCount++;
- }
-}
-
-public boolean inTransaction() {
- synchronized (fIDToProxiesMap) {
- return transactionLockCount != 0;
- }
-}
-
-/**
- * Stop Transaction: During the time between start/stop transaction,
- * proxies will not be cleaned up. This prevents the case of a two step
- * transaction where the returned ID from the remote vm is for a proxy
- * that is about to be cleaned up, and then having that proxy disappear
- * when going for the data for it.
- *
- * Note: It is IMPERITIVE that the start/stop is used in the following way:
- * factory.startTransaction();
- * try {
- * do your stuff...
- * } finally {
- * factory.stopTransaction();
- * }
- *
- * This way it can never accidently leave it in a locked state.
- */
-public void stopTransaction() {
- synchronized (fIDToProxiesMap) {
- if (--transactionLockCount < 0)
- transactionLockCount = 0; // Shouldn't occur, but just in case.
- }
-}
-
-/**
- * Terminate the factory. If this is being terminated, then the server is being terminated too.
- * So just go through all of the proxies and release them, but don't send any notification to
- * the server since the server is subsequently just going to throw them away when it terminates.
- *
- * This can't run async, so wait is a suggestion here.
- */
-public void terminateFactory(boolean wait) {
- synchronized (fIDToProxiesMap) {
- Iterator itr = fIDToProxiesMap.values().iterator();
- while (itr.hasNext()) {
- ProxyRef ref = (ProxyRef) itr.next();
- if (ref != null) {
- Object bp = ref.get();
- // If not cleaned up and not enqueued, release it.
- if (bp != null && !ref.isEnqueued())
- ((IREMBeanProxy) bp).release();
- }
- }
-
- fIDToProxiesMap.clear();
- queue = null; // Don't bother processing the queue, don't need to now.
- }
-}
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanProxyFactory#createExpression()
- */
- public IExpression createExpression() {
- return new REMExpression(this.fRegistry);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanProxyFactory#createBeanProxyFrom(java.lang.String)
- */
- public IBeanProxy createBeanProxyFrom(String initializationString) throws ThrowableProxy, ClassCastException, InstantiationException {
- try {
- return createBeanProxy(fBeanTypeProxyFactory.voidType, initializationString);
- } catch (CommandException e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$ }
- }
- return null;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanProxyFactory#convertToPrimitiveBeanProxy(org.eclipse.jem.internal.proxy.core.IBeanProxy)
- */
- public IBeanProxy convertToPrimitiveBeanProxy(IBeanProxy nonPrimitiveProxy) {
- if (nonPrimitiveProxy == null)
- return null;
- if (!nonPrimitiveProxy.isValid())
- return nonPrimitiveProxy;
- IREMBeanTypeProxy type = (IREMBeanTypeProxy) nonPrimitiveProxy.getTypeProxy();
- // Step into the internals. The ID is a constant int, so we can use a switch stmt.
- switch (type.getID().intValue()) {
- case Commands.BOOLEAN_CLASS:
- return this.createBeanProxyWith(((IBooleanBeanProxy) nonPrimitiveProxy).booleanValue());
- case Commands.BYTE_CLASS:
- return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).byteValue());
- case Commands.CHARACTER_CLASS:
- return this.createBeanProxyWith(((ICharacterBeanProxy) nonPrimitiveProxy).charValue());
- case Commands.DOUBLE_CLASS:
- return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).doubleValue());
- case Commands.FLOAT_CLASS:
- return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).floatValue());
- case Commands.INTEGER_CLASS:
- return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).intValue());
- case Commands.LONG_CLASS:
- return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).longValue());
- case Commands.SHORT_CLASS:
- return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).shortValue());
- default:
- return nonPrimitiveProxy;
- }
- }
-
-
- public IBeanProxy getIVMServerProxy() {
- return vmServerProxy;
- }
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStandardBeanTypeProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStandardBeanTypeProxyFactory.java
deleted file mode 100644
index d62586de9..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStandardBeanTypeProxyFactory.java
+++ /dev/null
@@ -1,690 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-
-/*
- * $RCSfile: REMStandardBeanTypeProxyFactory.java,v $
- * $Revision: 1.16 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import java.text.MessageFormat;
-import java.util.*;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.core.ExpressionProxy.ProxyEvent;
-import org.eclipse.jem.internal.proxy.common.CommandException;
-import org.eclipse.jem.internal.proxy.common.MapTypes;
-import org.eclipse.jem.internal.proxy.common.remote.CommandErrorException;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-
-/**
- * We are a beanTypeProxyFactory for creating REMBeanTypeProxy objects Primitive types as well as common types like String are cached for speed of
- * lookup. We are the standard one that the VCE uses. Creation date: (12/3/99 2:32:48 PM)
- *
- * @author: Joe Winchester
- */
-public final class REMStandardBeanTypeProxyFactory implements IStandardBeanTypeProxyFactory {
-
- protected final REMProxyFactoryRegistry fFactoryRegistry;
-
- protected REMStandardBeanProxyFactory fBeanFactory;
-
- // Hashtable to cache proxies for classes so they are found on second and subsequent lookups
- protected Map fBeanProxies = new HashMap(1000);
-
- // A Cache of bean type proxies that should not ever be released. These are the standard ones
- // that we create here. They are never released because they wouldn't be correctly re-created
- // if they were. Also they are standard ones with standard ID's that don't change so they
- // don't need to be re-created later.
- protected Set fPermanentProxies = new HashSet(30);
-
- // Cache of requested but not found bean types. If not maintaining the list, this variable will be null.
- // The values are strings (classnames in JNI format).
- protected Set fNotFoundTypes = null;
-
- // Cached copy of a few typical bean type proxies.
- REMBeanTypeProxy objectClass;
-
- REMClassBeanTypeProxy classClass;
-
- REMVoidBeanTypeProxy voidType;
-
- REMBooleanTypeBeanTypeProxy booleanType;
-
- REMBooleanClassBeanTypeProxy booleanClass;
-
- REMIntegerTypeBeanTypeProxy intType;
-
- REMIntegerClassBeanTypeProxy integerClass;
-
- REMByteTypeBeanTypeProxy byteType;
-
- REMByteClassBeanTypeProxy byteClass;
-
- REMShortClassBeanTypeProxy shortClass;
-
- REMShortTypeBeanTypeProxy shortType;
-
- REMLongClassBeanTypeProxy longClass;
-
- REMLongTypeBeanTypeProxy longType;
-
- REMDoubleClassBeanTypeProxy doubleClass;
-
- REMDoubleTypeBeanTypeProxy doubleType;
-
- REMFloatClassBeanTypeProxy floatClass;
-
- REMFloatTypeBeanTypeProxy floatType;
-
- REMBigDecimalBeanTypeProxy bigDecimalClass;
-
- REMBigIntegerBeanTypeProxy bigIntegerClass;
-
- REMCharacterTypeBeanTypeProxy charType;
-
- REMCharacterClassBeanTypeProxy characterClass;
-
- REMStringBeanTypeProxy stringClass;
-
- /**
- * Available to all REM beantypes.
- */
- public REMProxyConstants proxyConstants;
-
- /**
- * IDEBeanTypeProxyFactory constructor comment.
- */
- REMStandardBeanTypeProxyFactory(REMProxyFactoryRegistry aRegistry) {
- fFactoryRegistry = aRegistry;
- aRegistry.registerBeanTypeProxyFactory(this);
-
- proxyConstants = new REMProxyConstants(aRegistry);
-
- // Now initialize the cache.
- objectClass = new REMBeanTypeProxy(fFactoryRegistry, new Integer(Commands.OBJECT_CLASS), Object.class.getName(), null);
- classClass = new REMClassBeanTypeProxy(fFactoryRegistry, objectClass);
- voidType = new REMVoidBeanTypeProxy(fFactoryRegistry);
- booleanType = new REMBooleanTypeBeanTypeProxy(fFactoryRegistry);
- booleanClass = new REMBooleanClassBeanTypeProxy(fFactoryRegistry, objectClass);
- IBeanTypeProxy numberClass = objectClass.newBeanTypeForClass(new Integer(Commands.NUMBER_CLASS), Number.class.getName(), true);
- intType = new REMIntegerTypeBeanTypeProxy(fFactoryRegistry);
- integerClass = new REMIntegerClassBeanTypeProxy(fFactoryRegistry, numberClass);
- byteType = new REMByteTypeBeanTypeProxy(fFactoryRegistry);
- byteClass = new REMByteClassBeanTypeProxy(fFactoryRegistry, numberClass);
- shortType = new REMShortTypeBeanTypeProxy(fFactoryRegistry);
- shortClass = new REMShortClassBeanTypeProxy(fFactoryRegistry, numberClass);
- longType = new REMLongTypeBeanTypeProxy(fFactoryRegistry);
- longClass = new REMLongClassBeanTypeProxy(fFactoryRegistry, numberClass);
- doubleType = new REMDoubleTypeBeanTypeProxy(fFactoryRegistry);
- doubleClass = new REMDoubleClassBeanTypeProxy(fFactoryRegistry, numberClass);
- floatType = new REMFloatTypeBeanTypeProxy(fFactoryRegistry);
- floatClass = new REMFloatClassBeanTypeProxy(fFactoryRegistry, numberClass);
- bigDecimalClass = new REMBigDecimalBeanTypeProxy(fFactoryRegistry, numberClass);
- bigIntegerClass = new REMBigIntegerBeanTypeProxy(fFactoryRegistry, numberClass);
- charType = new REMCharacterTypeBeanTypeProxy(fFactoryRegistry);
- characterClass = new REMCharacterClassBeanTypeProxy(fFactoryRegistry, objectClass);
- stringClass = new REMStringBeanTypeProxy(fFactoryRegistry, objectClass);
- IBeanTypeProxy throwableClass = new REMThrowableBeanTypeProxy(fFactoryRegistry, new Integer(Commands.THROWABLE_CLASS), Throwable.class
- .getName(), objectClass);
- IBeanTypeProxy threadClass = objectClass.newBeanTypeForClass(new Integer(Commands.THREAD_CLASS), Thread.class.getName(), false);
- IBeanTypeProxy expressionProcessorControllerClass = objectClass.newBeanTypeForClass(new Integer(Commands.EXPRESSIONPROCESSERCONTROLLER_CLASS), "org.eclipse.jem.internal.proxy.vm.remote.ExpressionProcesserController", false); //$NON-NLS-1$
-
- // Initialize the hashtable with the primitives, their lang equivalents, and also common classes like String
-
- // Primitives
- fBeanProxies.put(voidType.getTypeName(), voidType);
- fBeanProxies.put(intType.getTypeName(), intType);
- fBeanProxies.put(booleanType.getTypeName(), booleanType);
- fBeanProxies.put(charType.getTypeName(), charType);
- fBeanProxies.put(byteType.getTypeName(), byteType);
- fBeanProxies.put(shortType.getTypeName(), shortType);
- fBeanProxies.put(longType.getTypeName(), longType);
- fBeanProxies.put(floatType.getTypeName(), floatType);
- fBeanProxies.put(doubleType.getTypeName(), doubleType);
-
- // java.lang primitive peers
- // Note that special classes are used for some of these which allow the IDE to get the
- // lang objects from the objects that are holding proxies
- fBeanProxies.put(integerClass.getTypeName(), integerClass);
- fBeanProxies.put(booleanClass.getTypeName(), booleanClass);
- fBeanProxies.put(characterClass.getTypeName(), characterClass);
- fBeanProxies.put(byteClass.getTypeName(), byteClass);
- fBeanProxies.put(shortClass.getTypeName(), shortClass);
- fBeanProxies.put(longClass.getTypeName(), longClass);
- fBeanProxies.put(floatClass.getTypeName(), floatClass);
- fBeanProxies.put(doubleClass.getTypeName(), doubleClass);
- fBeanProxies.put(bigDecimalClass.getTypeName(), bigDecimalClass);
- fBeanProxies.put(bigIntegerClass.getTypeName(), bigIntegerClass);
- fBeanProxies.put(stringClass.getTypeName(), stringClass);
- fBeanProxies.put(throwableClass.getTypeName(), throwableClass);
- fBeanProxies.put(objectClass.getTypeName(), objectClass);
- fBeanProxies.put(classClass.getTypeName(), classClass);
- fBeanProxies.put(numberClass.getTypeName(), numberClass);
- fBeanProxies.put(threadClass.getTypeName(), threadClass);
- fBeanProxies.put(expressionProcessorControllerClass.getTypeName(), expressionProcessorControllerClass);
-
- // Mark these as permanent.
- fPermanentProxies.addAll(fBeanProxies.values());
- }
-
- /**
- * Initialize AFTER BeanProxyFactory has been created. This is REQUIRED! NOTE: It is package protected so that only REMStandardBeanProxyFactory
- * can call it when ready.
- */
- synchronized void initialize(REMStandardBeanProxyFactory proxyFactory) {
- fBeanFactory = proxyFactory;
- fBeanFactory.registerProxies(fBeanProxies.values());
- }
-
- /*
- * This is called when we know we don't have the class registered, so we need to create the proxy. We have a connection passed in and will reuse
- * it as necessary
- *
- * It is important that this be called only from within a transaction.
- */
- private synchronized IREMBeanTypeProxy createBeanTypeProxy(String typeName, IREMConnection connection) throws CommandException {
-
- // We don't have the beantype proxy, so create it.
- IREMBeanTypeProxy beanTypeProxy = null;
- Commands.GetClassReturn ret = null;
- try {
- ret = getClassReturn(connection, typeName);
- } catch (ThrowableProxy ep) {
- // Print out the trace and return proxy with init error.
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", ep)); //$NON-NLS-1$
- IREMBeanTypeProxy proxy = new REMInitErrorBeanTypeProxy(fFactoryRegistry, MessageFormat.format(ProxyRemoteMessages.ExceptionErrorMsg_EXC_, new Object[] { ep.getTypeProxy().getTypeName(), ep.getProxyLocalizedMessage()}), typeName); //$NON-NLS-1$
- registerBeanTypeProxy(proxy, false);
- return proxy;
- }
- if (ret == null) {
- if (fNotFoundTypes != null)
- fNotFoundTypes.add(typeName);
- return null; // The class doesn't even exist on the server.
- }
-
- if (typeName.charAt(0) != '[') {
- // It is not an array.
- IREMBeanTypeProxy superTypeProxy = null;
- if (!ret.isInterface && ret.superClassname.length() != 0) {
- // Get the beantype proxy of the superclass.
- superTypeProxy = getBeanTypeProxy(ret.superClassname, connection);
- }
-
- // First check with the factory for the package of the class.
- // Inner classes have to use the dollar notation since if they didn't we couldn't tell where
- // the package ended and the class started. This check is here in case the
- // extension factory can handle this class but needs the id from the server to
- // create it.
- int packageIndex = typeName.lastIndexOf('.');
- if (packageIndex != -1) {
- String packageName = typeName.substring(0, packageIndex);
- IREMBeanTypeProxyFactory packageFactory = (IREMBeanTypeProxyFactory) fFactoryRegistry.getBeanTypeProxyFactoryExtension(packageName);
- if (packageFactory != null) {
- beanTypeProxy = packageFactory.getExtensionBeanTypeProxy(typeName, new Integer(ret.classID), superTypeProxy);
- if (beanTypeProxy != null) {
- registerBeanTypeProxy(beanTypeProxy, false);
- return beanTypeProxy;
- }
- }
- }
-
- if (ret.isInterface) {
- // Interface never have a super type, so we will create a specific type.
- beanTypeProxy = new REMInterfaceBeanTypeProxy(fFactoryRegistry, new Integer(ret.classID), typeName);
- } else {
- // Ask the supertype
- // to create a beantype proxy of the same beantype proxy class.
- // This is so that any subclasses will get the same beantype proxy class
- // for it if it is special.
- if (superTypeProxy != null)
- beanTypeProxy = superTypeProxy.newBeanTypeForClass(new Integer(ret.classID), typeName, ret.isAbstract);
- }
- } else
- beanTypeProxy = new REMArrayBeanTypeProxy(fFactoryRegistry, new Integer(ret.classID), typeName, objectClass);
-
- // Cache the instance so we can re-use it again
- if (beanTypeProxy != null)
- registerBeanTypeProxy(beanTypeProxy, false);
- return beanTypeProxy;
- }
-
- /**
- * Using the helper class to find a class by name, then create the proxy.
- */
- public IBeanTypeProxy getBeanTypeProxy(String typeName) {
- try {
- return getBeanTypeProxy(MapTypes.getJNIFormatName(typeName), (IREMConnection) null);
- } catch (CommandException e) {
- // Try once more (we won't have received recoverable exceptions here, they were already caught and handled)
- try {
- return getBeanTypeProxy(typeName, (IREMConnection) null);
- } catch (CommandException eAgain) {
- // Failed again.
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", eAgain)); //$NON-NLS-1$
- }
- }
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#getBeanTypeProxy(org.eclipse.jem.internal.proxy.core.IExpression,
- * java.lang.String)
- */
- public synchronized IProxyBeanType getBeanTypeProxy(IExpression expression, String typeName) {
- typeName = MapTypes.getJNIFormatName(typeName);
- // See whether we already have the proxy for the argument name
- IProxyBeanType beanTypeProxy = (IProxyBeanType) fBeanProxies.get(typeName);
- if (beanTypeProxy != null)
- return beanTypeProxy;
-
- // Now see if an expression proxy cached.
- beanTypeProxy = ((REMExpression) expression).getBeanType(typeName);
- if (beanTypeProxy != null)
- return beanTypeProxy;
-
- // If not an array, then see if the package extension mechanism can find it.
- // Do this here so that if it is found in the package extension we won't necessarily create an
- // extra connection when not needed.
- if (typeName.charAt(0) != '[') {
- // It is not an array
- // First check with the factory for the package of the class.
- // Inner classes have to use the dollar notation since if they didn't we couldn't tell where
- // the package ended and the class started.
- int packageIndex = typeName.lastIndexOf('.');
- if (packageIndex != -1) {
- String packageName = typeName.substring(0, packageIndex);
- IREMBeanTypeProxyFactory packageFactory = (IREMBeanTypeProxyFactory) fFactoryRegistry.getBeanTypeProxyFactoryExtension(packageName);
- if (packageFactory != null) {
- beanTypeProxy = packageFactory.getExtensionBeanTypeProxy(typeName, expression);
- if (beanTypeProxy != null) {
- registerBeanTypeProxy(beanTypeProxy, false);
- return beanTypeProxy;
- }
- }
- }
- }
-
- // Need to create the expression proxy for it.
- beanTypeProxy = ((Expression) expression).createBeanTypeExpressionProxy(typeName);
- registerBeanTypeProxy(beanTypeProxy, false);
- return beanTypeProxy;
-
- }
-
- /**
- * One that internally allows that we already have a connection to work with. If the connection is null, then one will be created.
- *
- * It is important that if the connection is not null, then we are in a transaction.
- */
- private synchronized IREMBeanTypeProxy getBeanTypeProxy(String typeName, IREMConnection inConnect) throws CommandException {
-
- // See whether we already have the proxy for the argument name
- IProxyBeanType beanTypeProxy = (IProxyBeanType) fBeanProxies.get(typeName);
- // See if there and resolved, if so, return it. If not resolved, that means we need it NOW
- // so we must go for it. When finally resolved the original ExpressionProxy will be deregistered and
- // the resolved beantypeproxy will be in its place.
- if (beanTypeProxy != null && beanTypeProxy.isBeanProxy()) { return (IREMBeanTypeProxy) beanTypeProxy; }
-
- // If not an array, then see if the package extension mechanism can find it.
- // Do this here so that if it is found in the package extension we won't necessarily create an
- // extra connection when not needed.
- if (typeName.charAt(0) != '[') {
- // It is not an array
- // First check with the factory for the package of the class.
- // Inner classes have to use the dollar notation since if they didn't we couldn't tell where
- // the package ended and the class started.
- int packageIndex = typeName.lastIndexOf('.');
- if (packageIndex != -1) {
- String packageName = typeName.substring(0, packageIndex);
- IREMBeanTypeProxyFactory packageFactory = (IREMBeanTypeProxyFactory) fFactoryRegistry.getBeanTypeProxyFactoryExtension(packageName);
- if (packageFactory != null) {
- beanTypeProxy = packageFactory.getExtensionBeanTypeProxy(typeName);
- if (beanTypeProxy != null) {
- registerBeanTypeProxy((IREMBeanTypeProxy) beanTypeProxy, false);
- return (IREMBeanTypeProxy) beanTypeProxy;
- }
- }
- }
- }
-
- IREMConnection connect = inConnect != null ? inConnect : fFactoryRegistry.getFreeConnection();
- if (inConnect == null)
- fBeanFactory.startTransaction(); // Start a transation.
- try {
- return createBeanTypeProxy(typeName, connect);
- } catch (CommandException e) {
- if (inConnect == null) {
- // Need to close the connection, not return it.
- fFactoryRegistry.closeConnection(connect);
- connect = null; // So that it won't be returned.
- }
- throw e; // Pass it on up
- } finally {
- if (inConnect == null)
- fBeanFactory.stopTransaction();
- if (inConnect == null && connect != null)
- fFactoryRegistry.returnConnection(connect);
- }
- }
-
- /*
- * It is important this be called only from within a transaction.
- */
- private Commands.GetClassReturn getClassReturn(IREMConnection connection, String className) throws CommandException, ThrowableProxy {
- try {
- return connection.getClass(className);
- } catch (CommandErrorException e) {
- fBeanFactory.processErrorReturn(e); // Let proxy factory handle the error return
- }
- return null;
- }
-
- /**
- * Return an Array type proxy for the given class name of the specified dimensions. This is a helper method. The same result can be gotton from
- * getBeanTypeProxy. e.g. getBeanTypeProxy("java.lang.Object", 3) is the same as: getBeanTypeProxy("[[[Ljava.lang.Object;")
- *
- * They both result in a type of: Object [][][]
- *
- * or getBeanTypeProxy("[Ljava.langObject;", 3) becomes Object [][][][]
- */
- public IBeanTypeProxy getBeanTypeProxy(String componentClassName, int dimensions) {
- return getBeanTypeProxy(getArrayClassName(componentClassName, dimensions));
- }
-
- /**
- * @param componentClassName
- * @param dimensions
- * @return
- *
- * @since 1.1.0
- */
- private String getArrayClassName(String componentClassName, int dimensions) {
- String jniComponentClassName = MapTypes.getJNIFormatName(componentClassName);
- String compType = jniComponentClassName;
- if (jniComponentClassName.charAt(0) != '[') {
- // We're not already an array, so create correct template.
- compType = (String) MapTypes.MAP_TYPENAME_TO_SHORTSIG.get(jniComponentClassName);
- if (compType == null) {
- // It is a class, and not a type.
- compType = "L" + jniComponentClassName + ";"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- // Now create it with the appropriate number of '[' in front.
- StringBuffer buffer = new StringBuffer(dimensions + compType.length());
- for (int i = 0; i < dimensions; i++)
- buffer.append('[');
- buffer.append(compType);
- return buffer.toString();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#getBeanTypeProxy(org.eclipse.jem.internal.proxy.core.IExpression,
- * java.lang.String, int)
- */
- public IProxyBeanType getBeanTypeProxy(IExpression expression, String componentClassName, int dimensions) {
- return getBeanTypeProxy(expression, getArrayClassName(componentClassName, dimensions));
- }
-
- /**
- * Get the bean type proxy from a class id. This means that a new class id was sent back from the server that we don't have yet. We need to go ask
- * the server for information on this type so that we can create it.
- *
- * NOTE: This is package protected so that only the standard bean proxy factory can call it.
- *
- * It is important that this has been called within a transaction.
- */
- IREMBeanTypeProxy createBeanTypeProxy(Integer classID) {
- IREMConnection connect = fFactoryRegistry.getFreeConnection();
- try {
- return createBeanTypeProxy(classID, connect);
- } catch (CommandException e) {
- if (e.isRecoverable()) {
- // It is recoverable, print message, keep connection live and return it.
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- } else {
- // Try again, close connection, get a new one.
- fFactoryRegistry.closeConnection(connect);
- connect = null;
- connect = fFactoryRegistry.getFreeConnection();
- try {
- return createBeanTypeProxy(classID, connect);
- } catch (CommandException eAgain) {
- // Failed again. Close connection, don't return it.
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", eAgain)); //$NON-NLS-1$
- fFactoryRegistry.closeConnection(connect);
- connect = null;
- }
- }
- } finally {
- if (connect != null)
- fFactoryRegistry.returnConnection(connect);
- }
- return null;
- }
-
- /*
- * One that internally allows that we already have a connection to work with. If the connection is null, then one will be created.
- *
- * It is important this be called only from within a transaction.
- */
- private synchronized IREMBeanTypeProxy createBeanTypeProxy(Integer classID, IREMConnection connect) throws CommandException {
- // We don't have the beantype proxy, so create it.
- IREMBeanTypeProxy beanTypeProxy = null;
-
- Commands.GetClassIDReturn ret = null;
- try {
- ret = getClassIDReturn(connect, classID);
- } catch (ThrowableProxy ep) {
- // Just print out the trace and return proxy not found.
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", ep)); //$NON-NLS-1$
- return null;
- }
-
- // If the signature is that of a class.
- if (ret.className.charAt(0) != '[') {
- // It is not an array.
- IREMBeanTypeProxy superTypeProxy = null;
- if (!ret.isInterface && ret.superClassname.length() != 0) {
- // Get the beantype proxy of the superclass.
- superTypeProxy = getBeanTypeProxy(ret.superClassname, connect);
- }
-
- // First check with the factory for the package of the class.
- // Inner classes have to use the dollar notation since if they didn't we couldn't tell where
- // the package ended and the class started.
- int packageIndex = ret.className.lastIndexOf('.');
- if (packageIndex != -1) {
- String packageName = ret.className.substring(0, packageIndex);
- IREMBeanTypeProxyFactory packageFactory = (IREMBeanTypeProxyFactory) fFactoryRegistry.getBeanTypeProxyFactoryExtension(packageName);
- if (packageFactory != null) {
- beanTypeProxy = packageFactory.getExtensionBeanTypeProxy(ret.className, classID, superTypeProxy);
- if (beanTypeProxy != null) {
- registerBeanTypeProxy(beanTypeProxy, false);
- return beanTypeProxy;
- }
- }
- }
-
- if (ret.isInterface) {
- // Interface never have a super type, so we will let the object class do it for us.
- beanTypeProxy = new REMInterfaceBeanTypeProxy(fFactoryRegistry, classID, ret.className);
- } else {
- // Ask the beantype proxy of the superclass
- // to create a beantype proxy of the same beantype proxy class.
- // This is so that any subclasses will get the same beantype proxy class
- // for it if it is special.
- if (superTypeProxy != null)
- beanTypeProxy = superTypeProxy.newBeanTypeForClass(classID, ret.className, ret.isAbstract);
- }
-
- // Cache the instance so we can re-use it again
- if (beanTypeProxy != null)
- registerBeanTypeProxy(beanTypeProxy, false);
- return beanTypeProxy;
- } else {
- // It is an array.
- beanTypeProxy = new REMArrayBeanTypeProxy(fFactoryRegistry, classID, ret.className, objectClass);
- registerBeanTypeProxy(beanTypeProxy, false);
- return beanTypeProxy;
- }
- }
-
- /*
- * It is important that this be called only from within a transaction.
- */
- private Commands.GetClassIDReturn getClassIDReturn(IREMConnection connection, Integer classID) throws CommandException, ThrowableProxy {
- try {
- return connection.getClassFromID(classID.intValue());
- } catch (CommandErrorException e) {
- fBeanFactory.processErrorReturn(e); // Let proxy factory handle the error return
- }
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#registerBeanTypeProxy(org.eclipse.jem.internal.proxy.core.IBeanTypeProxy,
- * boolean)
- */
- public synchronized void registerBeanTypeProxy(IBeanTypeProxy aBeanTypeProxy, boolean permanent) {
- fBeanProxies.put(aBeanTypeProxy.getTypeName(), aBeanTypeProxy);
- fBeanFactory.registerProxy((IREMBeanProxy) aBeanTypeProxy);
- if (permanent)
- fPermanentProxies.add(aBeanTypeProxy);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#registerBeanTypeProxy(org.eclipse.jem.internal.proxy.core.IProxyBeanType,
- * boolean)
- */
- public void registerBeanTypeProxy(IProxyBeanType aProxyBeanType, final boolean permanent) {
- if (aProxyBeanType.isBeanProxy())
- registerBeanTypeProxy((IBeanTypeProxy) aProxyBeanType, permanent); // A regular kind, do regular registration.
- else {
- ExpressionProxy beanExpressionProxy = ((ExpressionProxy) aProxyBeanType);
- final String typeName = aProxyBeanType.getTypeName();
- ((REMExpression) beanExpressionProxy.getExpression()).addBeanType(typeName, aProxyBeanType);
- beanExpressionProxy.addProxyListener(new ExpressionProxy.ProxyAdapter() {
-
- public void proxyResolved(ProxyEvent event) {
- String typeName = ((IProxyBeanType) event.getSource()).getTypeName();
- synchronized (REMStandardBeanTypeProxyFactory.this) {
- if (!fBeanProxies.containsKey(typeName)) {
- // It hasn't been resolved through some other means. So this is good. Actually this should never
- // occur because upon resolution we've already registered the bean type proxy through the
- // normal mechanisms. But to be safe, we'll do it here.
- fBeanProxies.put(typeName, event.getProxy());
- if (permanent)
- fPermanentProxies.add(event.getProxy());
- }
- }
- }
-
- public void proxyNotResolved(ExpressionProxy.ProxyEvent event) {
- ((REMExpression) ((ExpressionProxy) event.getSource()).getExpression()).removeBeanType(typeName);
- }
- });
- }
-
- }
-
- /**
- * A beantype proxy is asked to be released. We can only release ones that were not in the permanent set that we initialized with. Those in the
- * permanent set can't be changed so we can't release them.
- *
- * Answer whether it can be released from the server too.
- *
- * NOTE: Package protected since only REMStandardBeanProxyFactory should call it.
- */
- boolean releaseProxy(IBeanTypeProxy proxy) {
- /**
- * Currently we won't allow any bean type proxies to be released. We don't have a good strategy for handling that there may be hard refs from
- * subtypes. One thought is that beanproxies table should store SoftReferences so that only when space is needed, that any beantype that
- * doesn't have a subtype (since subtypes hold a strong ref) or, is in the permanent table (since that is hardref) could be GC'd. Then what
- * would happen is on releaseProxy we don't actually release, we change it to a WeakRef so that it would definitely be released on a GC. These
- * are complicated arch. and we're not sure if it should be allowed or not. So for now, we don't allow them to be released. if
- * (!fPermanentProxies.contains(proxy)) { // We can release it. It is not one of the permanent ones. synchronized(this) {
- * fBeanProxies.remove(proxy.getTypeName()); return true; } }
- */
- return false;
- }
-
- /*
- * Terminate this factory. Since all of the proxies are registered in the proxy factory, there is no need to release them here. There is no need
- * to clear out any fields since this factory will not be held onto by anything and so it will be GC'd.
- */
- public void terminateFactory(boolean wait) {
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#isBeanTypeRegistered(String)
- */
- public synchronized boolean isBeanTypeRegistered(String className) {
- return fBeanProxies.containsKey(MapTypes.getJNIFormatName(className));
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#registeredTypes()
- */
- public Set registeredTypes() {
- return fBeanProxies.keySet();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#isBeanTypeNotFound(String)
- */
- public synchronized boolean isBeanTypeNotFound(String className) {
- return fNotFoundTypes != null && fNotFoundTypes.contains(MapTypes.getJNIFormatName(className));
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#isMaintainNotFoundTypes()
- */
- public synchronized boolean isMaintainNotFoundTypes() {
- return fNotFoundTypes != null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#setMaintainNotFoundTypes(boolean)
- */
- public synchronized void setMaintainNotFoundTypes(boolean maintain) {
- if (maintain) {
- if (fNotFoundTypes == null)
- fNotFoundTypes = new HashSet();
- } else
- fNotFoundTypes = null;
- }
-
-}
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStringBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStringBeanProxy.java
deleted file mode 100644
index eeba7153b..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStringBeanProxy.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMStringBeanProxy.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-
-/**
- * Remote VM Implementation of IStringBeanProxy
- * Creation date: (2/6/00 9:02:42 AM)
- * @author: Joe Winchester
- */
-final class REMStringBeanProxy extends REMConstantBeanProxy implements IStringBeanProxy {
- private final String fString;
-
-/**
- * Store the bean in the string field to save re-casting each time it is asked for.
- * It is package protected because they are created
- * in a special way and no one else should create them.
- */
-REMStringBeanProxy(REMProxyFactoryRegistry aRegistry, String value) {
- super(aRegistry);
- fString = value;
-}
-/**
- * equals: Equal if:
- * 1) This proxy == (identity) to the other object
- * 2) Else if other is an IBeanProxy and not a constant one, then if
- * equals on the server.
- * 3) If this is a constant proxy and the other is too or is a constant
- * value (e.g. IStringBeanProxy.equals(String), then true if values are equals.
- */
-public boolean equals(Object anObject) {
- if (this == anObject)
- return true; // Identity
- if (anObject instanceof IStringBeanProxy)
- return fString.equals(((IStringBeanProxy) anObject).stringValue());
- else
- return fString.equals(anObject);
-}
-/**
- * Return the cache'd string that is a java.lang.String that the IDE can use
- */
-public String stringValue() {
- return fString;
-}
-
-/**
- * Return the toString value from the bean.
- */
-public String toBeanString() {
- return fString.toString();
-}
-
-/**
- * Get the beantype
- */
-public IBeanTypeProxy getTypeProxy() {
- return ((REMStandardBeanTypeProxyFactory) fFactory.getBeanTypeProxyFactory()).stringClass;
-}
-
-/**
- * Render the bean into value object.
- */
-public void renderBean(Commands.ValueObject value) {
- value.set(fString);
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStringBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStringBeanTypeProxy.java
deleted file mode 100644
index 8a9f0beb0..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStringBeanTypeProxy.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMStringBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-import org.eclipse.jem.internal.proxy.core.*;
-
-/**
- * Remote Implementation of the BeanType proxy for java.lang.String
- * Creation date: (2/6/00 9:01:23 AM)
- * @author: Joe Winchester
- */
-final class REMStringBeanTypeProxy extends REMAbstractBeanTypeProxy implements IREMConstantBeanTypeProxy {
- // Cache a proxy to an empty string for speed
- protected final IStringBeanProxy emptyStringProxy;
-/**
- * IDEStringBeanTypeProxy constructor comment.
- * @param aClass java.lang.Class
- */
-REMStringBeanTypeProxy(REMProxyFactoryRegistry aRegistry, IBeanTypeProxy objectTypeProxy) {
- super(aRegistry, new Integer(Commands.STRING_CLASS), String.class.getName(), objectTypeProxy);
-
- // Cache a proxy to an empty string for speed
- emptyStringProxy = new REMStringBeanProxy(aRegistry, ""); //$NON-NLS-1$
-}
-/**
- * Helper to create string beans
- * Package protected because no-one else outside the package should use this, they
- * must go through the API where you look up a factory first.
- */
-IStringBeanProxy createStringBeanProxy(String aString){
- if ( aString.equals("") ) {//$NON-NLS-1$
- return emptyStringProxy;
- } else {
- return new REMStringBeanProxy(fRegistry, aString);
- }
-}
-
-/**
- * Create a new bean proxy with the specified id.
- *
- * For all of the primitive wrapper types, this is an invalid operation. They are created
- * explicitly through the appropriate create method.
- */
-public IREMBeanProxy newBeanProxy(Integer anID) {
- throw new UnsupportedOperationException();
-}
-
-/**
- * newBeanTypeForClass: Create a new beantypeproxy of this kind for the given class.
- * This is used by beantype proxy factory when creating a beantype proxy for a subclass.
- * This is because subclasses, unless explicitly overridden, should use the same kind
- * of beantype proxy. This way if anything special is needed for a specific type, then
- * that can be done.
- *
- * For all of the primitive wrapper types, they are final classes, so you can't create a newBeanType
- * for subclasses.
- */
-public IREMBeanTypeProxy newBeanTypeForClass(Integer anID, String aClassname, boolean anAbstract) {
- throw new UnsupportedOperationException();
-}
-
-/**
- * newInstance method. String has a default ctor, but it results in the emptyStringProxy,
- * so return the zeroProxy for this case because that is the default value.
- */
-public IBeanProxy newInstance() {
- return emptyStringProxy;
-}
-
-/**
- * newInstance method comment. Put a short cut in for strings so we don't need to go to the remote
- * vm just to create a string.
- */
-public IBeanProxy newInstance(String initializationString) throws ThrowableProxy, ClassCastException, InstantiationException {
- if (initializationString.length() <= 1)
- return super.newInstance(initializationString); // Not large enough for two quotes, so let default handle it.
- // Need a quick check that it is only one quoted string. Anything else needs to be passed on up.
- String s = initializationString.trim();
- int sl = s.length()-1;
- if (s.charAt(0) != '"' || s.charAt(sl) != '"')
- return super.newInstance(initializationString); // No leading and trailing quote.
-
- StringBuffer sb = new StringBuffer(sl);
- boolean escape = false;
- for (int i=1; i
- * Close will send a -1 to the client and set to indicate it is closed.
- *
- * @exception IOException if an I/O error occurs.
- */
- public void close() throws IOException {
- close(true);
- }
-
-
- protected void close(boolean wait) throws IOException {
- if (fHandler != null) {
- try {
- flushBuffer();
- try {
- fHandler.writeBytes(null, -1);
- fHandler.out.flush();
- if (wait) {
- // Wait means wait for the remote side to send the terminated response.
- // A normal close will do this. If the remote side sent a cancel request, then it has already
- // sent the terminated response and it is waiting for us to send the end-of-file command.
-
- fHandler.in.readByte(); // Block and wait until the terminate request. There shouldn't be anything else in the pipeline.
- if (fHandler.in.available() > 0)
- // There was something else waiting. Let's just clear it out to be safe.
- fHandler.in.skip(fHandler.in.available());
- }
- } catch (CommandException e) {
- processException(e);
- }
- } finally {
- clearStream();
- }
- }
- }
-
- public void write(int b) throws IOException {
- fBuffer[fNextByte++] = (byte) b;
- if (fNextByte >= fBuffer.length)
- flushBuffer();
- }
-
- public void write(byte b[], int off, int len) throws IOException {
- if (b == null) {
- throw new NullPointerException();
- } else if ((off < 0) || (off > b.length) || (len < 0) ||
- ((off + len) > b.length) || ((off + len) < 0)) {
- throw new IndexOutOfBoundsException();
- } else if (len == 0) {
- return;
- }
-
- while (len > 0) {
- int move = fBuffer.length-fNextByte;
- if (len < move)
- move = len;
- System.arraycopy(b, off, fBuffer, fNextByte, move);
- len -= move;
- off += move;
- fNextByte += move;
- if (fNextByte >= fBuffer.length)
- flushBuffer();
- }
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/ClassHelper.java b/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/ClassHelper.java
deleted file mode 100644
index 52ef4820f..000000000
--- a/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/ClassHelper.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.vm.remote;
-/*
- * $RCSfile: ClassHelper.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:08 $
- */
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-
-/**
- * This class is a helper for Class accessing functions.
- * Its main function is to bypass security. This is because
- * we don't care about security for remote vm. Security is
- * handled by the IDE and compilor over there. We do what
- * we're told.
- *
- * @author richkulp
- */
-public class ClassHelper {
-
- /**
- * Constructor for ClassHelper.
- */
- private ClassHelper() {
- super();
- }
-
- private static final Class[] EMPTY_CLASS_ARRAY = new Class[0];
- private static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
- public static Object newInstance(Class targetClass) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, InstantiationException {
- // We want to get the default ctor, which is in the declared list. No need
- // to worry about inheritance because ctors are never virtual.
- Constructor ctor = targetClass.getDeclaredConstructor(EMPTY_CLASS_ARRAY);
- ctor.setAccessible(true);
- return ctor.newInstance(EMPTY_OBJECT_ARRAY);
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/ConnectionHandler.java b/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/ConnectionHandler.java
deleted file mode 100644
index d7780b913..000000000
--- a/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/ConnectionHandler.java
+++ /dev/null
@@ -1,926 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.vm.remote;
-/*
- * $RCSfile: ConnectionHandler.java,v $
- * $Revision: 1.16 $ $Date: 2005/12/02 18:41:25 $
- */
-
-
-import java.io.*;
-import java.lang.reflect.Array;
-import java.net.Socket;
-import java.net.SocketException;
-import java.util.*;
-
-import org.eclipse.jem.internal.proxy.common.CommandException;
-import org.eclipse.jem.internal.proxy.common.remote.*;
-import org.eclipse.jem.internal.proxy.initParser.*;
-import org.eclipse.jem.internal.proxy.initParser.tree.NoExpressionValueException;
-
-/**
- * This handles one connection.
- */
-
-public class ConnectionHandler {
-
- protected Socket socket;
- final protected RemoteVMServerThread server;
- final protected Thread connectionThread;
- protected DataInputStream in;
- protected DataOutputStream out;
-
- // Kludge: Bug in Linux 1.3.xxx of JVM. Closing a socket while the socket is being read/accept will not interrupt the
- // wait. Need to timeout to the socket read/accept before the socket close will be noticed. This has been fixed
- // in Linux 1.4. So on Linux 1.3 need to put timeouts in on those sockets that can be separately closed while reading/accepting.
- static boolean LINUX_1_3 = "linux".equalsIgnoreCase(System.getProperty("os.name")) && System.getProperty("java.version","").startsWith("1.3"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-
- /**
- * This may be running as a callback, in that case there is no connectionThread.
- */
- public ConnectionHandler(Socket sc, RemoteVMServerThread svr, Thread connectionThread) {
- socket = sc;
- server = svr;
- this.connectionThread = connectionThread;
-
- Integer bufSize = Integer.getInteger("proxyvm.bufsize"); //$NON-NLS-1$
- if (bufSize == null)
- bufSize = new Integer(5000);
-
- try {
- out = new DataOutputStream(new BufferedOutputStream(socket.getOutputStream(), bufSize.intValue()));
- in = new DataInputStream(new BufferedInputStream(socket.getInputStream(), bufSize.intValue()));
- } catch (IOException e) {
- }
-
- }
-
- /**
- * Did this construct correctly.
- * This is needed because an exception could be thrown in the ctor and
- * that's not a good thing to do.
- */
- public boolean isConnected() {
- return socket != null;
- }
-
- /**
- * Request the thread to close down.
- */
- public void close() {
- if (socket != null) {
- try {
- Socket s = socket;
- socket = null;
- s.close();
- } catch (Exception e) {
- }
- }
- }
-
- // Map of ID to expression processers that are currently being processed.
- private Map expressionProcessors = new HashMap();
-
- /**
- * Process and loop until told to stop. A callback_done will stop
- * the loop and will return a result. Otherwise null is returned.
- */
- public Object run() throws CommandException {
- Object result = null;
- boolean shutdown = false;
- boolean closeWhenDone = true;
- Commands.ValueObject valueObject = new Commands.ValueObject(); // Working value object so not continually recreated.
- InvokableValueSender valueSender = new InvokableValueSender(); // Working valuesender so not continually recreated.
- try {
- boolean doLoop = true;
-
- /**
- * Note: In the cases below you will see a lot of finally clauses that null variables out.
- * This is because this is a long running loop, and variables declared within blocks are not
- * garbage collected until the method is terminated, so these variables once set would never
- * be GC'd. The nulling at the end of the case makes sure that any of those objects set are
- * now available for garbage collection when necessary.
- */
- while(doLoop && isConnected()) {
- byte cmd = 0;
- try {
- if (LINUX_1_3)
- socket.setSoTimeout(1000); // Linux 1.3 bug, see comment on LINUX_1_3
- cmd = in.readByte();
- if (LINUX_1_3 && isConnected())
- socket.setSoTimeout(0); // Linux 1.3 bug, see comment on LINUX_1_3
- } catch (InterruptedIOException e) {
- continue; // Timeout, try again
- }
- switch (cmd) {
- case Commands.QUIT_CONNECTION:
- doLoop = false;
- break; // Close this connection
-
- case Commands.TERMINATE_SERVER:
- doLoop = false;
- shutdown = true; // Shutdown everything
- break;
-
- case Commands.GET_CLASS:
- String className = in.readUTF();
- Class aClass = null;
- Class superClass = null;
- String superClassName = null;
- boolean added = false;
- try {
- aClass = Class.forName(className); // Turns out using JNI format for array type will work fine.
-
- added = server.getIdentityID(aClass, valueObject);
- boolean isInterface = aClass.isInterface();
- boolean isAbstract = java.lang.reflect.Modifier.isAbstract(aClass.getModifiers());
- superClass = aClass.getSuperclass();
- superClassName = (superClass != null) ? superClass.getName() : ""; //$NON-NLS-1$
- out.writeByte(Commands.GET_CLASS_RETURN);
- out.writeInt(valueObject.objectID);
- out.writeBoolean(isInterface);
- out.writeBoolean(isAbstract);
- out.writeUTF(superClassName);
- out.flush();
- } catch (ClassNotFoundException e) {
- valueObject.set();
- Commands.sendErrorCommand(out, Commands.GET_CLASS_NOT_FOUND, valueObject);
- } catch (ExceptionInInitializerError e) {
- sendException(e.getException(), valueObject, out);
- } catch (LinkageError e) {
- sendException(e, valueObject, out);
- } catch (Throwable e) {
- // Something bad, did we add a class? If we did remove it from the table.
- if (added)
- server.removeObject(server.getObject(valueObject.objectID));
- throw e;
- } finally {
- // clear out for GC to work.
- className = null;
- aClass = null;
- superClass = null;
- superClassName = null;
- valueObject.set();
- }
- break;
-
- case Commands.GET_CLASS_FROM_ID:
- int classID = in.readInt();
- try {
- aClass = (Class) server.getObject(classID);
- boolean isInterface = aClass.isInterface();
- boolean isAbstract = java.lang.reflect.Modifier.isAbstract(aClass.getModifiers());
- superClass = aClass.getSuperclass();
- superClassName = (superClass != null) ? superClass.getName() : ""; //$NON-NLS-1$
- out.writeByte(Commands.GET_CLASS_ID_RETURN);
- out.writeUTF(aClass.getName());
- out.writeBoolean(isInterface);
- out.writeBoolean(isAbstract);
- out.writeUTF(superClassName);
- out.flush();
- } catch (ClassCastException e) {
- valueObject.set();
- Commands.sendErrorCommand(out, Commands.CLASS_CAST_EXCEPTION, valueObject);
- } finally {
- // clear out for GC to work.
- aClass = null;
- superClass = null;
- superClassName = null;
- valueObject.set();
- }
- break;
-
- case Commands.GET_OBJECT_DATA:
- int objectID = in.readInt();
- Object anObject = null;
- try {
- anObject = server.getObject(objectID);
- valueObject.setObjectID(objectID, server.getIdentityID(anObject.getClass()));
- Commands.writeValue(out, valueObject, true);
- } catch (ClassCastException e) {
- valueObject.set();
- Commands.sendErrorCommand(out, Commands.CLASS_CAST_EXCEPTION, valueObject);
- } finally {
- anObject = null; // Clear out for GC to work
- valueObject.set();
- }
- break;
-
- case Commands.RELEASE_OBJECT:
- int id = in.readInt();
- server.removeObject(server.getObject(id));
- break;
-
- case Commands.NEW_INIT_STRING:
- classID = in.readInt(); // ID Of class to do new upon.
- String initString = in.readUTF(); // The init string.
- Object newValue = null;
- Class theClass = null;
- try {
- theClass = (Class) server.getObject(classID);
- if (theClass == null) {
- // The class wasn't found. So imply ClassNotFound exception.
- throw new ClassNotFoundException();
- }
-
- InitializationStringParser parser = null;
- try {
- parser = InitializationStringParser.createParser(initString);
- newValue = parser.evaluate();
- boolean primitive = parser.isPrimitive();
- // If expected class is Void.TYPE, that means don't test the type of the result
- // to verify if correct type, just return what it really is.
- if (theClass != Void.TYPE && primitive != theClass.isPrimitive()) {
- valueObject.set();
- Commands.sendErrorCommand(out, Commands.CLASS_CAST_EXCEPTION, valueObject);
- continue; // Goto next command.
- }
- if (primitive) {
- try {
- // Need to do special tests for compatibility and assignment.
- sendObject(newValue, classID != Commands.VOID_TYPE ? classID : server.getIdentityID(parser.getExpectedType()), valueObject, out, true); // This will make sure it goes out as the correct primitive type
- } catch (ClassCastException e) {
- // The returned type is not of the correct type for what is expected.
- valueObject.set();
- Commands.sendErrorCommand(out, Commands.CLASS_CAST_EXCEPTION, valueObject);
- continue; // Goto next command
- }
- } else {
- if (newValue != null) {
- // Test to see if they are compatible. (Null can be assigned to any object,
- // so that is why it was tested out above).
- // If expected class is Void.TYPE, that means don't test the type of the result
- // to verify if correct type, just return what it really is.
- if (theClass != Void.TYPE && !theClass.isInstance(newValue)) {
- // The returned type is not of the correct type for what is expected.
- valueObject.set();
- Commands.sendErrorCommand(out, Commands.CLASS_CAST_EXCEPTION, valueObject);
- continue; // Goto next command
- }
- }
- sendObject(newValue, NOT_A_PRIMITIVE, valueObject, out, true); // Send out as an object.
- }
- } catch (InitializationStringEvaluationException e) {
- if (e instanceof EvaluationException) {
- // Want to return the real exception.
- sendException(e.getOriginalException(), valueObject, out);
- } else {
- // Couldn't be evaluated, return an error for this.
- setExceptionIntoValue(e.getOriginalException(), valueObject);
- Commands.sendErrorCommand(out, Commands.CANNOT_EVALUATE_STRING, valueObject);
- }
- } finally {
- parser = null; // Clear out for GC to work
- }
- } catch (Throwable e) {
- sendException(e, valueObject, out);
- } finally {
- // Clear out for GC to work
- initString = null;
- theClass = null;
- newValue = null;
- valueObject.set();
- }
- break;
-
- case Commands.INVOKE:
- Object target = null;
- Object[] parms = null;
- Class returnType = null;
- java.lang.reflect.Method aMethod = null;
- try {
- int methodID = in.readInt(); // ID of method to invoke
- aMethod = (java.lang.reflect.Method) server.getObject(methodID); // Method to invoke
- Commands.readValue(in, valueObject);
- target = getInvokableObject(valueObject);
- Commands.readValue(in, valueObject);
- if (valueObject.type == Commands.ARRAY_IDS) {
- // It is an array containing IDs, as it normally would be.
- valueSender.initialize(valueObject);
- Commands.readArray(in, valueObject.anInt, valueSender, valueObject, false);
- parms = (Object[]) valueSender.getArray();
- } else {
- // It is all objects or null, so it should be an Object[] or null. If not, then this is an error.
- parms = (Object[]) valueObject.anObject;
- }
-
- if (!aMethod.isAccessible())
- aMethod.setAccessible(true); // We will allow all to occur. Let access control be handled by IDE and compiler.
- newValue = aMethod.invoke(target, parms);
- returnType = aMethod.getReturnType();
- if (returnType.isPrimitive()) {
- int returnTypeID = server.getIdentityID(returnType);
- // Need to tell sendObject the correct primitive type.
- sendObject(newValue, returnTypeID, valueObject, out, true);
-
- } else {
- sendObject(newValue, NOT_A_PRIMITIVE, valueObject, out, true); // Just send the object back. sendObject knows how to iterpret the type
- }
- } catch (CommandException e) {
- throw e; // Throw it again. These we don't want to come up as an exception proxy. These should end the thread.
- } catch (java.lang.reflect.InvocationTargetException e) {
- // This is a wrappered exception. Return the wrappered one so it looks like
- // it was the real one. (Sometimes the method being invoked is on a java.lang.reflect.Constructor.newInstance,
- // which in turn is an InvocationTargetException, so we will go until we don't have an InvocationTargetException.
- Throwable t = e;
- do {
- t = ((java.lang.reflect.InvocationTargetException) t).getTargetException();
- } while (t instanceof java.lang.reflect.InvocationTargetException);
- sendException(t, valueObject, out);
- } catch (Throwable e) {
- sendException(e, valueObject, out); // Turn it into a exception proxy on the client.
- } finally {
- // Clear out for GC to work
- valueObject.set();
- parms = null;
- target = null;
- aMethod = null;
- returnType = null;
- newValue = null;
- valueSender.clear();
- }
- break;
-
- case Commands.INVOKE_WITH_METHOD_PASSED:
- aClass = null;
- String methodName = null;
- Class[] parmTypes = null;
- target = null;
- parms = null;
- returnType = null;
- aMethod = null;
-
- try {
- Commands.readValue(in, valueObject);
- aClass = (Class) getInvokableObject(valueObject); // The class that has the method.
- methodName = in.readUTF();
- Commands.readValue(in, valueObject);
- if (valueObject.type == Commands.ARRAY_IDS) {
- // It is an array containing IDs, as it normally would be.
- valueSender.initialize(valueObject);
- Commands.readArray(in, valueObject.anInt, valueSender, valueObject, false);
- parmTypes = (Class[]) valueSender.getArray();
- } else {
- // It null, so it should be an null. If not, then this is an error.
- parmTypes = null;
- }
- aMethod = aClass.getMethod(methodName, parmTypes);
-
- // Now we get the info for the invocation of the method and execute it.
- Commands.readValue(in, valueObject);
- target = getInvokableObject(valueObject);
- Commands.readValue(in, valueObject);
- if (valueObject.type == Commands.ARRAY_IDS) {
- // It is an array containing IDs, as it normally would be.
- valueSender.initialize(valueObject);
- Commands.readArray(in, valueObject.anInt, valueSender, valueObject, false);
- parms = (Object[]) valueSender.getArray();
- } else {
- // It is all objects or null, so it should be an Object[] or null. If not, then this is an error.
- parms = (Object[]) valueObject.anObject;
- }
-
- if (!aMethod.isAccessible())
- aMethod.setAccessible(true); // We will allow all to occur. Let access control be handled by IDE and compiler.
- newValue = aMethod.invoke(target, parms);
- returnType = aMethod.getReturnType();
- if (returnType.isPrimitive()) {
- int returnTypeID = server.getIdentityID(returnType);
- // Need to tell sendObject the correct primitive type.
- sendObject(newValue, returnTypeID, valueObject, out, true);
-
- } else {
- sendObject(newValue, NOT_A_PRIMITIVE, valueObject, out, true); // Just send the object back. sendObject knows how to iterpret the type
- }
- } catch (CommandException e) {
- throw e; // Throw it again. These we don't want to come up as an exception proxy. These should end the thread.
- } catch (java.lang.reflect.InvocationTargetException e) {
- // This is a wrappered exception. Return the wrappered one so it looks like
- // it was the real one. (Sometimes the method being invoked is on a java.lang.reflect.Constructor.newInstance,
- // which in turn is an InvocationTargetException, so we will go until we don't have an InvocationTargetException.
- Throwable t = e;
- do {
- t = ((java.lang.reflect.InvocationTargetException) t).getTargetException();
- } while (t instanceof java.lang.reflect.InvocationTargetException);
- sendException(t, valueObject, out);
-
- } catch (Throwable e) {
- sendException(e, valueObject, out); // Turn it into a exception proxy on the client.
- } finally {
- aClass = null;
- methodName = null;
- parmTypes = null;
- // Clear out for GC to work
- valueObject.set();
- parms = null;
- target = null;
- aMethod = null;
- returnType = null;
- newValue = null;
- valueSender.clear();
- }
- break;
-
- case Commands.GET_ARRAY_CONTENTS:
- try {
- target = server.getObject(in.readInt()); // Array to get the ids for.
- valueObject.setArrayIDS(new ArrayContentsRetriever(target), Array.getLength(target), Commands.OBJECT_CLASS);
- Commands.writeValue(out, valueObject, true); // Write it back as a value command.
- } catch (CommandException e) {
- throw e; // Throw it again. These we don't want to come up as an exception proxy. These should end the thread.
- } catch (Throwable e) {
- sendException(e, valueObject, out); // Turn it into a exception proxy on the client.
- } finally {
- target = null;
- valueObject.set();
- }
- break;
-
- case Commands.CALLBACK_DONE:
- try {
- if (connectionThread != null) {
- valueObject.set();
- Commands.sendErrorCommand(out, Commands.UNKNOWN_COMMAND_SENT, valueObject);
- } else {
- try {
- Commands.readBackValue(in, valueObject, Commands.NO_TYPE_CHECK);
- if (valueObject.type == Commands.ARRAY_IDS) {
- // It is an array containing IDs, as it normally would be.
- valueSender.initialize(valueObject);
- Commands.readArray(in, valueObject.anInt, valueSender, valueObject, false);
- result = valueSender.getArray();
- } else {
- result = getInvokableObject(valueObject);
- }
- doLoop = false; // We need to terminate and return result
- closeWhenDone = false; // Don't close, we will continue.
- } catch (CommandErrorException e) {
- // There was an command error on the other side. This means
- // connection still good, but don't continue the callback processing.
- doLoop = false; // We need to terminate and return result
- closeWhenDone = false; // Don't close, we will continue.
- throw e; // Let it go on out.
- }
- }
- } finally {
- valueObject.set();
- valueSender.clear();
- }
- break;
-
- case Commands.ERROR:
- try {
- // Got an error command. Don't know what to do but read the
- // value and simply print it out.
- Commands.readValue(in, valueObject);
- result = getInvokableObject(valueObject);
- System.out.println("Error sent to server: Result=" + result); //$NON-NLS-1$
- } finally {
- valueObject.set();
- }
- break;
-
- case Commands.EXPRESSION_TREE_COMMAND:
- try {
- processExpressionCommand(valueObject, valueSender);
- } finally {
- valueObject.set();
- valueSender.clear();
- }
- break;
-
- default:
- // Unknown command. We don't know how long it is, so we need to shut the connection down.
- System.err.println("Error: Invalid cmd send to server: Cmd=" + cmd); //$NON-NLS-1$
- doLoop = false;
- closeWhenDone = true;
- break;
- }
- }
- } catch (EOFException e) {
- // This is ok. It means that the connection on the other side was terminated.
- // So just accept this and go down.
- } catch (CommandException e) {
- throw e;
- } catch (SocketException e) {
- if (socket != null)
- throw new UnexpectedExceptionCommandException(false, e); // socket null means a valid close request
- } catch (Throwable e) {
- e.printStackTrace();
- } finally {
- if (closeWhenDone) {
- try {
- for (Iterator itr = expressionProcessors.values().iterator(); itr.hasNext();) {
- ExpressionProcesserController exp = (ExpressionProcesserController) itr.next();
- exp.close();
- }
- } finally {
- expressionProcessors.clear();
- }
-
- if (in != null)
- try {
- in.close();
- } catch (Exception e) {
- }
- in = null;
- if (out != null)
- try {
- out.close();
- } catch (Exception e) {
- }
- out = null;
- close();
- }
- }
-
- if (closeWhenDone && connectionThread != null)
- server.removeConnectionThread(connectionThread);
- if (shutdown)
- server.requestShutdown();
-
- return result;
- }
-
- // A retriever is what handles the array get contents.
- private class ArrayContentsRetriever implements Commands.ValueRetrieve {
- int index=0;
- Object array;
- int length;
- int componentType;
- Commands.ValueObject worker = new Commands.ValueObject();
-
-
- public ArrayContentsRetriever(Object anArray) {
- array = anArray;
- length = Array.getLength(anArray);
- if (anArray.getClass().getComponentType().isPrimitive()) {
- componentType = server.getIdentityID(anArray.getClass().getComponentType());
- } else
- componentType = NOT_A_PRIMITIVE;
- }
-
- public Commands.ValueObject nextValue() {
- fillInValue(Array.get(array, index++), componentType, worker);
- return worker;
- }
- };
-
-
- private void processExpressionCommand(Commands.ValueObject valueObject, InvokableValueSender valueSender) throws IOException, CommandException {
- Integer expressionID = new Integer(in.readInt());
- byte cmdType = in.readByte();
- ExpressionProcesserController exp = null;
- switch (cmdType) {
- case ExpressionCommands.START_EXPRESSION_TREE_PROCESSING:
- byte trace = in.readByte();
- if (trace == ExpressionCommands.TRACE_DEFAULT)
- exp = new ExpressionProcesserController(server, this);
- else
- exp = new ExpressionProcesserController(server, this, trace == ExpressionCommands.TRACE_ON);
- expressionProcessors.put(expressionID, exp);
- break;
- case ExpressionCommands.TRANSFER_EXPRESSION_REQUEST:
- exp = (ExpressionProcesserController) expressionProcessors.remove(expressionID);
- sendObject(exp, NOT_A_PRIMITIVE, valueObject, out, true);
- break;
- case ExpressionCommands.RESUME_EXPRESSION_REQUEST:
- Commands.readValue(in, valueObject);
- exp = (ExpressionProcesserController) getInvokableObject(valueObject);
- expressionProcessors.put(expressionID, exp);
- break;
- case ExpressionCommands.PUSH_EXPRESSION:
- exp = (ExpressionProcesserController) expressionProcessors.get(expressionID);
- exp.process(in);
- break;
- case ExpressionCommands.SYNC_REQUEST:
- boolean haveProxies = in.readBoolean(); // See if we expression proxy ids that need to be resolved
- if (haveProxies) {
- Commands.readValue(in, valueObject);
- valueSender.initialize(valueObject);
- Commands.readArray(in, valueObject.anInt, valueSender, valueObject, false);
- }
-
- exp = (ExpressionProcesserController) expressionProcessors.get(expressionID);
- if (haveProxies)
- sendExpressionProxyResolutions(valueObject, (int[]) valueSender.getArray(), exp);
- if (exp.noErrors()) {
- valueObject.set(true); // Mark that all is good.
- Commands.writeValue(out, valueObject, true, true);
- } else {
- processExpressionError(exp, valueObject);
- }
- break;
- case ExpressionCommands.PULL_VALUE_REQUEST:
- haveProxies = in.readBoolean(); // See if we expression proxy ids that need to be resolved
- if (haveProxies) {
- Commands.readValue(in, valueObject);
- valueSender.initialize(valueObject);
- Commands.readArray(in, valueObject.anInt, valueSender, valueObject, false);
- }
-
- exp = (ExpressionProcesserController) expressionProcessors.get(expressionID);
- if (haveProxies)
- sendExpressionProxyResolutions(valueObject, (int[]) valueSender.getArray(), exp);
- if (exp.noErrors()) {
- try {
- Object[] pulledValue = exp.pullValue();
- // Send back the command code for pull value. Don't flush. We will flush when all done.
- if (((Class) pulledValue[1]).isPrimitive()) {
- int returnTypeID = server.getIdentityID(pulledValue[1]);
- // Need to tell sendObject the correct primitive type.
- sendObject(pulledValue[0], returnTypeID, valueObject, out, true, true);
-
- } else {
- sendObject(pulledValue[0], NOT_A_PRIMITIVE, valueObject, out, true, true); // Just send the object back. sendObject knows how to iterpret the type
- }
- } catch (NoExpressionValueException e) {
- sendNoValueErrorCommand(exp, valueObject);
- }
- } else
- processExpressionError(exp, valueObject);
- break;
- case ExpressionCommands.END_EXPRESSION_TREE_PROCESSING:
- exp = (ExpressionProcesserController) expressionProcessors.remove(expressionID);
- exp.close();
- break;
- }
- }
-
- /*
- * @param is
- * @param exp
- *
- * @since 1.1.0
- */
- private void sendExpressionProxyResolutions(Commands.ValueObject valueObject, final int[] proxyIDs, final ExpressionProcesserController exp) throws CommandException {
- class ExpressionProxyRetriever implements Commands.ValueRetrieve {
- int index = 0;
- Object[] proxyResolution = new Object[2];
- Commands.ValueObject worker = new Commands.ValueObject();
-
- public Commands.ValueObject nextValue() {
- int proxyID = proxyIDs[index++];
- if (exp.pullExpressionProxyValue(proxyID, proxyResolution)) {
- if (proxyResolution[1] != Void.TYPE) {
- if (((Class) proxyResolution[1]).isPrimitive()) {
- int returnTypeID = server.getIdentityID(proxyResolution[1]);
- // Need to tell worker the correct primitive type.
- fillInValue(proxyResolution[0], returnTypeID, worker);
- } else {
- fillInValue(proxyResolution[0], NOT_A_PRIMITIVE, worker);
- }
- } else
- worker.setFlag(ExpressionCommands.EXPRESSIONPROXY_VOIDTYPE); // It was resolved, but to not set due to void type of expression.
- } else
- worker.setFlag(ExpressionCommands.EXPRESSIONPROXY_NOTRESOLVED); // It wasn't resolved.
-
- return worker;
- }
- };
-
- valueObject.setArrayIDS(new ExpressionProxyRetriever(), proxyIDs.length, Commands.OBJECT_CLASS);
- Commands.writeValue(out, valueObject, true, false); // Write it back as a value command.
-
- }
-
- private void processExpressionError(ExpressionProcesserController exp, Commands.ValueObject valueObject) throws CommandException {
- if (exp.isNoExpressionValue()) {
- sendNoValueErrorCommand(exp, valueObject);
- } else
- sendException(exp.getErrorThrowable(), valueObject, out);
- }
-
- /*
- * @param exp
- * @param valueObject
- * @throws CommandException
- *
- * @since 1.1.0
- */
- private void sendNoValueErrorCommand(ExpressionProcesserController exp, Commands.ValueObject valueObject) throws CommandException {
- setExceptionIntoValue(exp.getErrorThrowable(), valueObject);
- Commands.sendErrorCommand(out, ExpressionCommands.EXPRESSION_NOEXPRESSIONVALUE_EXCEPTION, valueObject);
- }
-
-protected static final int NOT_A_PRIMITIVE = Commands.NOT_AN_ID;
-protected static final int SEND_AS_IS = -2; // This means sends as an object not as an id.
-
-public static final int CLASS_ADDED = 1;
-public static final int OBJECT_ADDED = 2;
-public int fillInValue(Object object, int primitiveTypeID, Commands.ValueObject valueObject) {
- int added = 0;
- if (object == null) {
- valueObject.set();
- } else {
- int classID = 0;
- if (primitiveTypeID != NOT_A_PRIMITIVE && primitiveTypeID != SEND_AS_IS) {
- classID = primitiveTypeID; // The object is really supposed to be a primitive of this type
- switch (classID) {
- case Commands.BOOLEAN_TYPE:
- valueObject.set(((Boolean) object).booleanValue());
- break;
- case Commands.INTEGER_TYPE:
- if (object instanceof Character)
- valueObject.set((int) ((Character) object).charValue()); // Because char can be widened to an int
- else
- valueObject.set(((Number) object).intValue());
- break;
- case Commands.BYTE_TYPE:
- valueObject.set(((Number) object).byteValue());
- break;
- case Commands.CHARACTER_TYPE:
- valueObject.set(((Character) object).charValue());
- break;
- case Commands.DOUBLE_TYPE:
- if (object instanceof Character)
- valueObject.set((double) ((Character) object).charValue()); // Because char can be widened to a double
- else
- valueObject.set(((Number) object).doubleValue());
- break;
- case Commands.FLOAT_TYPE:
- if (object instanceof Character)
- valueObject.set((float) ((Character) object).charValue()); // Because char can be widened to a float
- else
- valueObject.set(((Number) object).floatValue());
- break;
- case Commands.SHORT_TYPE:
- valueObject.set(((Number) object).shortValue());
- break;
- case Commands.LONG_TYPE:
- if (object instanceof Character)
- valueObject.set((long) ((Character) object).charValue()); // Because char can be widened to a long
- else
- valueObject.set(((Number) object).longValue());
- break;
- }
- } else {
- // It's not a primitive.
- boolean addObject = false, addClass = false;
- Class objClass = object.getClass();
- classID = server.getIdentityID(objClass);
- if (classID == RemoteVMServerThread.ID_NOT_FOUND) {
- Commands.ValueObject classValue = new Commands.ValueObject();
- addClass = server.getIdentityID(objClass, classValue);
- if (addClass)
- added |= CLASS_ADDED;
- classID = classValue.objectID;
- }
-
- switch (classID) {
- case Commands.BYTE_CLASS:
- valueObject.set((Byte) object);
- break;
- case Commands.CHARACTER_CLASS:
- valueObject.set((Character) object);
- break;
- case Commands.DOUBLE_CLASS:
- valueObject.set((Double) object);
- break;
- case Commands.FLOAT_CLASS:
- valueObject.set((Float) object);
- break;
- case Commands.INTEGER_CLASS:
- valueObject.set((Integer) object);
- break;
- case Commands.LONG_CLASS:
- valueObject.set((Long) object);
- break;
- case Commands.SHORT_CLASS:
- valueObject.set((Short) object);
- break;
- case Commands.BOOLEAN_CLASS:
- valueObject.set((Boolean) object);
- break;
- case Commands.STRING_CLASS:
- valueObject.set((String) object);
- break;
- case Commands.BIG_DECIMAL_CLASS:
- valueObject.set(object, Commands.BIG_DECIMAL_CLASS);
- break;
- case Commands.BIG_INTEGER_CLASS:
- valueObject.set(object, Commands.BIG_INTEGER_CLASS);
- break;
- default:
- if (primitiveTypeID != SEND_AS_IS) {
- addObject = server.getIdentityID(object, valueObject);
- if (addObject) {
- added |= OBJECT_ADDED;
- valueObject.setObjectID(valueObject.objectID, classID);
- } else
- valueObject.setObjectID(valueObject.objectID);
- } else
- valueObject.set(object, classID);
- break;
- }
- }
- }
-
- return added;
-}
-
-public void sendObject(Object object, int primitiveTypeID, Commands.ValueObject valueObject, DataOutputStream out, boolean writeAsCommand) throws CommandException {
- sendObject(object, primitiveTypeID, valueObject, out, writeAsCommand, writeAsCommand);
-}
-public void sendObject(Object object, int primitiveTypeID, Commands.ValueObject valueObject, DataOutputStream out, boolean writeAsCommand, boolean flush) throws CommandException {
- int added = fillInValue(object, primitiveTypeID, valueObject);
- boolean sent = false;
- try {
- Commands.writeValue(out, valueObject, writeAsCommand, flush); // Write it back as a value command.
- sent = true;
- } finally {
- if (!sent) {
- // Ending due to some problem, so clean up any added objects from the id table.
- if ((added & OBJECT_ADDED) != 0)
- server.removeObject(valueObject.objectID);
- if ((added & CLASS_ADDED) != 0)
- server.removeObject(valueObject.classID);
- }
- }
-}
-
-
- public void sendException(Throwable e, Commands.ValueObject value, DataOutputStream out) throws CommandException {
- // Exception ocurred, return a value command with the exception within it.
- setExceptionIntoValue(e, value);
- Commands.sendErrorCommand(out, Commands.THROWABLE_SENT, value);
- }
-
- public void setExceptionIntoValue(Throwable e, Commands.ValueObject value) {
- server.getIdentityID(e, value); // It should always create it so we don't need to know.
- int eID = value.objectID;
- Class eClass = e.getClass();
- server.getIdentityID(eClass, value);
- int eClassID = value.objectID;
- value.setException(eID, eClassID);
- }
-
- /**
- * From the valueObject, get an Object that is invokable (i.e. can be the target of an invoke, or one of its parms).
- * If it is an array type, the a ValueSender is returned. The invoker needs to then cast this
- * to a ValueSender and call the readArray routine.
- */
- public Object getInvokableObject(final Commands.ValueObject value) {
- switch (value.type) {
- case Commands.NEW_OBJECT_ID:
- case Commands.OBJECT_ID:
- // These need to have access to the server to get the real object
- return server.getObject(value.objectID);
- default:
- // These have all the info needed within the value object itself, so ask it.
- return value.getAsObject();
- }
- }
-
- // Helper class for getting an array.
- private class InvokableValueSender implements Commands.ValueSender {
- int index = 0;
- Object array;
-
- public InvokableValueSender() {
- }
-
- public InvokableValueSender(Commands.ValueObject arrayHeader) {
- initialize(arrayHeader);
- }
-
- public void initialize(Commands.ValueObject arrayHeader) {
- index = 0;
- Class arrayType = (Class) server.getObject(arrayHeader.classID);
- array = java.lang.reflect.Array.newInstance(arrayType, arrayHeader.anInt);
- }
-
- public void clear() {
- array = null;
- index = 0;
- }
-
- public Object getArray() {
- return array;
- }
-
- // A new value is being sent to the array
- public void sendValue(Commands.ValueObject value) {
- java.lang.reflect.Array.set(array, index++, getInvokableObject(value)); // add it to the array
- }
-
- // The next entry is an array too!
- public Commands.ValueSender nestedArray(Commands.ValueObject arrayHeader) {
- InvokableValueSender sender = new InvokableValueSender(arrayHeader);
- // Take the newly created array and put it into the current array.
- java.lang.reflect.Array.set(array, index++, sender.getArray());
- return sender;
- }
- }
-
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/ConnectionThread.java b/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/ConnectionThread.java
deleted file mode 100644
index c472123da..000000000
--- a/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/ConnectionThread.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.vm.remote;
-/*
- * $RCSfile: ConnectionThread.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:08 $
- */
-
-
-import java.net.Socket;
-
-import org.eclipse.jem.internal.proxy.common.CommandException;
-/**
- * This is a thread to handle one connection.
- */
-
-public class ConnectionThread extends Thread {
-
- final protected ConnectionHandler connectionHandler;
-
- public ConnectionThread(Socket sc, RemoteVMServerThread svr, String name) {
- super(name);
-
- connectionHandler = new ConnectionHandler(sc, svr, this);
- }
-
- /**
- * Request the thread to close down.
- */
- public void close() {
- try {
- connectionHandler.close();
- } catch (Exception e) {
- }
- }
-
- public void run() {
- try {
- connectionHandler.run();
- } catch (CommandException e) {
- e.printStackTrace();
- }
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/ExpressionProcesserController.java b/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/ExpressionProcesserController.java
deleted file mode 100644
index a6797d047..000000000
--- a/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/ExpressionProcesserController.java
+++ /dev/null
@@ -1,809 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: ExpressionProcesserController.java,v $
- * $Revision: 1.12 $ $Date: 2005/08/24 20:39:08 $
- */
-package org.eclipse.jem.internal.proxy.vm.remote;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.jem.internal.proxy.common.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-import org.eclipse.jem.internal.proxy.common.remote.ExpressionCommands;
-import org.eclipse.jem.internal.proxy.initParser.tree.*;
-
-
-/**
- * This processes the commands for expression processing and sends them over
- * to the common expression processer.
- *
- * This will be instantiated on the start of an expression. And then
- * each expression request from the IDE will be sent into here. The
- * reason this guy doesn't hold onto the connection and process the
- * entire expression is because we need to return to the connection
- * handler to keep the connection live (there is timeouts and stuff
- * in there that we don't want to duplicate here).
- *
- * If there are any expression processing errors (versus hard io errors) we
- * will save up the error but don't do any more processing other than to make
- * sure we read the complete subcommand. This is so that the inputstream is left
- * in a valid state without standed data.
- *
- * The at the sync point (either get value or sync subcommand) we will send back
- * the error.
- *
- * @since 1.0.0
- */
-public class ExpressionProcesserController {
-
-
- protected final RemoteVMServerThread server;
- protected final ConnectionHandler connHandler;
- protected final ExpressionProcesser exp;
- protected Commands.ValueObject workerValue = new Commands.ValueObject(); // A worker value object so we don't need to keep creating them and releasing them.
- private ClassLoader classLoader;
-
- /**
- * Create with a default expression processer and use default flag for trace.
- * @param server
- *
- * @since 1.0.0
- */
- public ExpressionProcesserController(RemoteVMServerThread server, ConnectionHandler connHandler) {
- this(server, connHandler, new ExpressionProcesser(Boolean.getBoolean(ExpressionCommands.EXPRESSIONTRACE), Long.getLong(ExpressionCommands.EXPRESSIONTRACE_TIMER_THRESHOLD, -1L).longValue()));
- }
-
- /**
- * Construct with a default expression processer.
- * @param server
- * @param connHandler
- * @param trace
- *
- * @since 1.1.0
- */
- public ExpressionProcesserController(RemoteVMServerThread server, ConnectionHandler connHandler, boolean trace) {
- this(server, connHandler, new ExpressionProcesser(trace, Long.getLong(ExpressionCommands.EXPRESSIONTRACE_TIMER_THRESHOLD, -1L).longValue()));
- }
-
- /**
- * Create from a subclass with a given expression processer.
- *
- * @param server
- * @param exp
- *
- * @since 1.0.0
- */
- protected ExpressionProcesserController(RemoteVMServerThread server, ConnectionHandler connHandler, ExpressionProcesser exp) {
- this.server = server;
- this.connHandler = connHandler;
- this.exp = exp;
- }
-
- /**
- * Set the class loader to use for finding classes. If never set, or if
- * The exception will be placed into value, BUT this should never be sent
- * back to the caller. It is intended only as a place-holder for subsequent
- * usage. Use the {@link RemoteExpressionProxy#isFailedExpression()} method
- * to determine if it is a failed one.
- *
- * This is used because the reflect calls are done out of sequence from where
- * they are used and so if there was an error, the error is reported in the
- * wrong place.
- *
- * @since 1.1.0
- */
- private static class FailedRemoteExpressionProxy extends RemoteExpressionProxy {
-
- public FailedRemoteExpressionProxy(int proxyID) {
- super(proxyID);
- }
-
- public boolean isFailedExpression() {
- return true;
- }
-
- public boolean isSet() {
- return false; // This should never be considered to be set. It is holder of info only.
- }
-
- }
-
-
- /**
- * Pull the value.
- *
- * @return r[0] is the value, r[1] is the type of the value.
- * @throws NoExpressionValueException
- *
- * @since 1.0.0
- */
- public Object[] pullValue() throws NoExpressionValueException {
- Object[] result = new Object[2];
- exp.pullValue(result);
- return result;
- }
-
- /**
- * Close out things.
- *
- * @since 1.0.0
- */
- public void close() {
- exp.close();
- }
-
- /**
- * Get the throwable error.
- * @return
- *
- * @since 1.1.0
- */
- public Throwable getErrorThrowable() {
- return exp.getErrorThrowable();
- }
-
- /**
- * Return whether there were no errors or not.
- * @return
- *
- * @since 1.1.0
- */
- public boolean noErrors() {
- return exp.noErrors();
- }
-
- /**
- * Return whether there is a no expression value exception or not.
- * @return
- *
- * @since 1.1.0
- */
- public boolean isNoExpressionValue() {
- return exp.isNoExpressionValue();
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/IdentityMap.java b/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/IdentityMap.java
deleted file mode 100644
index b0583e738..000000000
--- a/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/IdentityMap.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.vm.remote;
-/*
- * $RCSfile: IdentityMap.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:08 $
- */
-
-
-import java.util.*;
-/**
- * A HashMap where the key is
- * done as an identity (i.e. found by '==' not equals()).
- */
-
-public class IdentityMap extends HashMap{
-
- /**
- * Comment for May 2, 2006 The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
-at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content. If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party ("Redistributor") 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
-and such source code may be obtained at http://www.eclipse.org. May 2, 2006 The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
-at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content. If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party ("Redistributor") 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
-and such source code may be obtained at http://www.eclipse.org.
- * See {@link IJavaElementDelta.#F_CLASSPATH_CHANGED} and {@link #isAlsoClasspathChange(IPath)} for details.
- *
- * @param delta
- * @return
- *
- * @since 1.2.0
- */
- protected boolean isClasspathResourceChange(IJavaElementDelta delta) {
- if ((delta.getFlags() & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0)
- return true;
- IResourceDelta[] resources = delta.getResourceDeltas();
- if (resources == null)
- return false;
- IPath path = null;
- for (int i = 0; i < resources.length; i++) {
- if (resources[i].getKind() == IResourceDelta.CHANGED) {
- path = resources[i].getProjectRelativePath();
- if (isAlsoClasspathChange(path))
- return true;
- }
- }
- return false;
- }
-
- /**
- * Answers whether the file specified by the path is one that when changed can result in a classpath change. This is called from
- * {@link #isClasspathResourceChange(IJavaElementDelta)}. The file must be in the root of the project. The default is
- * Typically a Java project is considered binary if it does not have a source entry in the classpath.
- *
- * @param project
- * Project to test
- * @return
- * Append a list of IClasspathEntry's to the build path of the passed project. Updated to remove existing occurrences of the passed entries before
- * appending.
- *
- * Append one IClasspathEntry to the build path of the passed project. If a classpath entry having the same path as the parameter already exists,
- * then does nothing.
- * Answer the id of the resource bundle which is
- * used by the receiver.
- * Create am error message and route it to the cached reporter. This form of
- *
- * Create am error message and route it to the cached reporter. This form of
- *
- * Create am error message and route it to the cached reporter. This form of
- *
- * Create an error message and route it to the cached reporter. This form of
- *
- * Create an error message and route it to the cached reporter. This form of
- *
- * Create an informational message and route it to the cached reporter. This form of
- *
- * Create an informational message and route it to the cached reporter. This form of
- *
- * Create an informational message and route it to the cached reporter. This form of
- *
- * Create an informational message and route it to the cached reporter. This form of
- *
- * Create an informational message and route it to the cached reporter. This form of
- *
- * Create a warning message and route it to the cached reporter. This form of
- *
- * Create a warning message and route it to the cached reporter. This form of
- *
- * Create a warning message and route it to the cached reporter. This form of
- *
- * Create a warning message and route it to the cached reporter. This form of
- *
- * Create a warning message and route it to the cached reporter. This form of
- *
- * Answer the id of the resource bundle which is used by the receiver.
- *
- * Returns the name of the Validator, as it should be displayed in the UI. The ValidationBuilder
- * uses this string as input to the IProgressMonitor. i.e., At some point during the validation
- * process, the Validation Builder will output this string:
- *
- * where
- *
- * and
- *
- * Answer the id of the resource bundle which is used by the receiver.
- *
- * WebArtifactEdit obtains a Web Deployment Descriptor metamodel specifec data from a
- * {@see org.eclipse.jst.j2ee.webapplication.WebAppResource} which stores the metamodel. The
- * {@see org.eclipse.jst.j2ee.webapplication.WebAppResource} is retrieved from the
- * {@see org.eclipse.wst.common.modulecore.ArtifactEditModel} using a constant {@see
- * J2EEConstants#WEBAPP_DD_URI_OBJ}. The defined methods extract data or manipulate the contents of
- * the underlying resource.
- *
- * Identifier used to link WebArtifactEdit to a WebEditAdapterFactory {@see
- * WebEditAdapterFactory} stored in an AdapterManger (@see AdapterManager)
- *
- * Returns an instance facade to manage the underlying edit model for the given
- * {@see WorkbenchComponent}. Instances of ArtifactEdit that are returned through this method
- * must be {@see #dispose()}ed of when no longer in use.
- *
- * Use to acquire an ArtifactEdit facade for a specific {@see WorkbenchComponent} that
- * will not be used for editing. Invocations of any save*() API on an instance returned from
- * this method will throw exceptions.
- *
- * The following method may return null.
- *
- * Returns an instance facade to manage the underlying edit model for the given
- * {@see WorkbenchComponent}. Instances of ArtifactEdit that are returned through this method
- * must be {@see #dispose()}ed of when no longer in use.
- *
- * Use to acquire an ArtifactEdit facade for a specific {@see WorkbenchComponent} that
- * will be used for editing.
- *
- * The following method may return null.
- *
- * Returns an instance facade to manage the underlying edit model for the given
- * {@see WorkbenchComponent}. Instances of WebArtifactEdit that are returned through this
- * method must be {@see #dispose()}ed of when no longer in use.
- *
- * Use to acquire an WebArtifactEdit facade for a specific {@see WorkbenchComponent} that
- * will not be used for editing. Invocations of any save*() API on an instance returned from
- * this method will throw exceptions.
- *
- * This method may return null.
- *
- * Note: This method is for internal use only. Clients should not call this method.
- *
- * Returns an instance facade to manage the underlying edit model for the given
- * {@see WorkbenchComponent}. Instances of WebArtifactEdit that are returned through this
- * method must be {@see #dispose()}ed of when no longer in use.
- *
- * Use to acquire an WebArtifactEdit facade for a specific {@see WorkbenchComponent} that
- * will be used for editing.
- *
- * This method may return null.
- *
- * Note: This method is for internal use only. Clients should not call this method.
- *
- * Creates an instance facade for the given {@see ArtifactEditModel}.
- *
- * Creates an instance facade for the given {@see ArtifactEditModel}
- *
- * Note: This method is for internal use only. Clients should not call this method.
- *
- * Retrieves J2EE version information from WebAppResource.
- *
- * Obtains the WebApp (@see WebApp) root object from the WebAppResource. If the root object does
- * not exist, then one is created (@link addWebAppIfNecessary(getWebApplicationXmiResource())).
- * The root object contains all other resource defined objects.
- *
- * Retrieves the underlying resource from the ArtifactEditModel using defined URI.
- *
- * Retrieves Servlet version information derived from the {@see WebAppResource}.
- *
- * Creates a deployment descriptor root object (WebApp) and populates with data. Adds the root
- * object to the deployment descriptor resource.
- *
- *
- * @param aModule
- * A non-null pointing to a {@see XMLResource}
- * @param version
- * Version to be set on resource....if null default is taken
- *
- * Note: This method is typically used for JUNIT - move?
- *
- * Note: This method is for internal use only. Clients should not call this method.
- *
- * The
- * For example, on some platforms default selection occurs
- * in a List when the user double-clicks an item or types
- * return in a Text.
- *
- * For example, on some platforms selection occurs in
- * a List when the user selects an item or items.
- *
- * Override to return the final perspective ID (if any). The final perspective ID can be
- * hardcoded by the subclass or determined programmatically (possibly using the value of a field
- * on the Wizard's WTP Operation Data Model).
- *
- * The default implementation returns no perspective id unless overriden by product definition
- * via the "wtp.project.final.perspective" property.
- *
- * The configuration element is saved to use when the wizard completes in order to change the
- * current perspective using either (1) the value specified by {@link #getFinalPerspectiveID()}
- * or (2) the value specified by the finalPerspective attribute in the Wizard's configuration
- * element.
- *
- * Override method for clients that wish to take advantage of the information provided by
- * {@see #setInitializationData(IConfigurationElement, String, Object)}.
- *
- * Returns the an id component used for Activity filtering.
- *
- * The Plugin ID is determined from the configuration element specified in
- * {@see #setInitializationData(IConfigurationElement, String, Object)}.
- *
- * Invoked after the user has clicked the "Finish" button of the wizard. The default
- * implementation will attempt to update the final perspective to the value specified by
- * {@link #getFinalPerspectiveID() }
- *
+ * In a single root structure, all files that are contained within the root folder
+ * are part of the module, and are already in the correct module structure. No
+ * module resources exist outside of this single folder.
+ *
+ * For J2EE, this method will check if the project is already in J2EE spec standard output form.
+ * The project must follow certain rules, but in general, the project's content roots must be source folders
+ * and the output folder must also be the the content root folder.
+ * This constructor accepts a protection domain, which is used
+ * by Loads a specified class. Called only after the parent class loader has had
+ * its chance to load the class, as per the Java2 delegation model. When non-null, the receiver's protection
+ * domain is passed in to the call to
+ * Note: Unlike {@link JavaCore#getJavaLikeExtensions()}, this suffix includes a leading ".".
+ * May 2, 2006 The Eclipse Foundation makes available all content in this plug-in
-("Content"). Unless otherwise indicated below, the Content is provided to you
-under the terms and conditions of the Eclipse Public License Version 1.0
-("EPL"). A copy of the EPL is available at
-http://www.eclipse.org/org/documents/epl-v10.php.
-For purposes of the EPL, "Program" will mean the Content. If you did not receive this Content directly from the Eclipse Foundation, the
-Content is being redistributed by another party ("Redistributor") 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
-and such source code may be obtained at
-http://www.eclipse.org/. When you add a facet to a project, that project
-is configured to perform a certain task, fulfill certain requirements, or
-have certain characteristics. For example, the EAR facet sets up a project
-to function as an enterprise application by adding a deployment descriptor
-and setting up the project's classpath. You can add facets only to J2EE projects and other types of projects that
-are based on J2EE projects, such as enterprise application projects, dynamic
-Web projects, and EJB projects. You cannot add facets to a Some facets require other facets as prerequisites. Other facets cannot
-be in the same project together. For example, you cannot add the Dynamic Web
-Module facet to an EJB project because the EJB project already has the EJB
-Module facet. Some facets can be removed from a project and others cannot. Facets also have version numbers. You can change the version numbers of
-facets as long as you stay within the requirements for the facets. To change
-the version number of a facet, see When you add a facet to a project, that project
-is configured to perform a certain task, fulfill certain requirements, or
-have certain characteristics. For example, the EAR facet sets up a project
-to function as an enterprise application by adding a deployment descriptor
-and setting up the project's classpath. You can add facets only to J2EE projects and other types of projects that
-are based on J2EE projects, such as enterprise application projects, dynamic
-Web projects, and EJB projects. You cannot add facets to a Javaâ„¢ project
-or plug-in project, for example. Typically, a facet-enabled project has at
-least one facet when it is created, allowing you to add more facets if necessary.
-For example, a new EJB project has the EJB Module facet. You can then add
-other facets to this project like the EJBDoclet (XDoclet) facet. To add a
-facet to a project, see Adding a facet to a J2EE project. Some facets require other facets as prerequisites. Other facets cannot
-be in the same project together. For example, you cannot add the Dynamic Web
-Module facet to an EJB project because the EJB project already has the EJB
-Module facet. Some facets can be removed from a project and others cannot. Facets also have version numbers. You can change the version numbers of
-facets as long as you stay within the requirements for the facets. To change
-the version number of a facet, see Changing the version of a facet. Application client projects contain the
-resources needed for application client modules. An application client module
-is used to contain a full-function client An application client project enables you to do the following things: Like In the workbench, application client projects are always referenced by
-enterprise application (EAR) projects. When you create an application client
-project, you specify the enterprise application project to which the application
-client project belongs. A module element is automatically added to the An application client project is deployed as a JAR file. This application
-client JAR file contains the necessary resources for the application, including Application client projects are typically run on networked client systems
-connected to J2EE (EJB) servers. The point of entry for the application client
-is a A J2EE application client container provides access to the J2EE service
-(JNDI naming services, deployment services, transaction services, and security
-services) and communications APIs (internet protocols, Remote Method Invocation
-protocols, Object Management Group protocols, Messaging protocols, and data
-formats). By default, application client projects contain one folder named Application client projects contain the
-resources needed for application client modules. An application client module
-is used to contain a full-function client Javaâ„¢ application (non Web-based) that connects
-to and uses the J2EE resources defined in your server. When you place the
-client code in an application client module instead of a simple JAR file,
-the application client benefits from the server's resources (it does not need
-to re-specify the class path to J2EE and server JAR files) as well as from
-easier JNDI lookup (the client container fills in the initial context and
-other parameters). The application client project allows you to work as if
-you are creating a standalone Java application in a Java project. An application client project enables you to do the following things: Like Java projects, application client projects contain the
-resources needed for application clients, including Java class
-files. When you create a new application client project, the environment is
-set up for Java development. A Java builder is associated with the
-project so the Java source can be incrementally compiled as it is updated.
-The application client project contains information about the type hierarchy
-and Java elements.
-This information is kept current as changes are made, and the Java builder
-will incrementally compile the resources within these projects as the resources
-are updated. In the workbench, application client projects are always referenced by
-enterprise application (EAR) projects. When you create an application client
-project, you specify the enterprise application project to which the application
-client project belongs. A module element is automatically added to the application.xml deployment
-descriptor for the EAR project. An application client project is deployed as a JAR file. This application
-client JAR file contains the necessary resources for the application, including Java class
-files, and deployment descriptor information and any meta-data extensions
-and bindings files. Application client projects are typically run on networked client systems
-connected to J2EE (EJB) servers. The point of entry for the application client
-is a Java main-class,
-which is simply a Java class that contains a static main method. The class
-is declared in the manifest file of the client module. A J2EE application client container provides access to the J2EE service
-(JNDI naming services, deployment services, transaction services, and security
-services) and communications APIs (internet protocols, Remote Method Invocation
-protocols, Object Management Group protocols, Messaging protocols, and data
-formats). By default, application client projects contain one folder named appClientModule,
-which contains both Java source code and compiled .class files,
-along with all the meta-data files in the META-INF subfolder. The economy and technology of today have
-intensified the need for faster, more efficient, and larger-scale information
-management solutions. The J2EE specification satisfies these challenges by
-providing a programming model that improves development productivity, standardizes
-the platform for hosting enterprise applications, and ensures portability
-of developed applications with an extensive test suite. J2EE architecture supports component-based development of multi-tier enterprise
-applications. A J2EE application system typically includes the following tiers: J2EE applications are comprised of components, containers, and services.
-Components are application-level components. Web components, such as Servlets
-and JSPs, provide dynamic responses to requests from a Web page. EJB components
-contain server-side business logic for enterprise applications. Web and EJB
-component containers host services that support Web and EJB modules. For more information on J2EE architecture and its implicit technologies,
-download and read the The economy and technology of today have
-intensified the need for faster, more efficient, and larger-scale information
-management solutions. The J2EE specification satisfies these challenges by
-providing a programming model that improves development productivity, standardizes
-the platform for hosting enterprise applications, and ensures portability
-of developed applications with an extensive test suite. J2EE architecture supports component-based development of multi-tier enterprise
-applications. A J2EE application system typically includes the following tiers: J2EE applications are comprised of components, containers, and services.
-Components are application-level components. Web components, such as Servlets
-and JSPs, provide dynamic responses to requests from a Web page. EJB components
-contain server-side business logic for enterprise applications. Web and EJB
-component containers host services that support Web and EJB modules. For more information on J2EE architecture and its implicit technologies,
-download and read the J2EE 1.4 Specification. A cyclical dependency between two or more
-modules in an enterprise application most commonly occurs when projects are
-imported from outside the Workbench. When a cycle exists between two or more
-modules in an enterprise application, the Therefore, the best practice is to componentize your projects or modules.
-This allows you to have your module dependencies function as a tree instead
-of a cycle diagram. This practice has the added benefit of producing a better
-factored and layered application. A cyclical dependency between two or more
-modules in an enterprise application most commonly occurs when projects are
-imported from outside the Workbench. When a cycle exists between two or more
-modules in an enterprise application, the Javaâ„¢ builder cannot accurately compute the
-build order of the projects. Full builds fail under these conditions, or require
-several invocations. Therefore, the best practice is to componentize your projects or modules.
-This allows you to have your module dependencies function as a tree instead
-of a cycle diagram. This practice has the added benefit of producing a better
-factored and layered application. An enterprise application project contains
-a set of references to other J2EE modules and When a J2EE module project is created, it can be associated with an enterprise
-application project. The project wizards aid this by allowing you to specify
-a new or existing enterprise application project. Enterprise application projects
-are exported as EAR (enterprise archive) files that include all files defined
-in the Enterprise Application project as well as the appropriate archive file
-for each J2EE module or utility JAR project defined in the deployment descriptor,
-such as Web archive (WAR) files and EJB JAR files. An enterprise application can contain utility JAR files that are to be
-used by the contained modules. This allows sharing of code at the application
-level by multiple Web, EJB, or application client modules. These JAR files
-are commonly referred to as utility JAR files. The utility JAR files
-defined for an enterprise application project can be actual JAR files in the
-project, or you can include utility To start developing J2EE applications, you typically first create an enterprise
-application project to tie together your Web, EJB, and application client
-modules. The enterprise application project is used to compose an entire application
-from the various modules. Since no source code is built directly into an enterprise
-application, these projects are not When you create an enterprise application project using the workbench,
-the following key files are automatically created: An enterprise application project contains
-a set of references to other J2EE modules and Javaâ„¢ projects that are combined to compose
-an EAR file. These projects can be Web modules, EJB modules, application client
-modules, connector modules, general utility Java JAR files, and EJB client JAR files.
-Enterprise application projects created in the workbench include a deployment
-descriptor, as well as files that are common to all J2EE modules that are
-defined in the deployment descriptor. When a J2EE module project is created, it can be associated with an enterprise
-application project. The project wizards aid this by allowing you to specify
-a new or existing enterprise application project. Enterprise application projects
-are exported as EAR (enterprise archive) files that include all files defined
-in the Enterprise Application project as well as the appropriate archive file
-for each J2EE module or utility JAR project defined in the deployment descriptor,
-such as Web archive (WAR) files and EJB JAR files. An enterprise application can contain utility JAR files that are to be
-used by the contained modules. This allows sharing of code at the application
-level by multiple Web, EJB, or application client modules. These JAR files
-are commonly referred to as utility JAR files. The utility JAR files
-defined for an enterprise application project can be actual JAR files in the
-project, or you can include utility Java projects that are designated to become
-the utility JAR files during assembly and deployment. To start developing J2EE applications, you typically first create an enterprise
-application project to tie together your Web, EJB, and application client
-modules. The enterprise application project is used to compose an entire application
-from the various modules. Since no source code is built directly into an enterprise
-application, these projects are not Java projects, and they are not compiled
-by the Java builder. You can rearrange the location, tiling, and
-size of the views within the perspective. You can also add other views to
-the J2EE perspective by clicking The workbench provides synchronization between different views and editors.
-This is also true in the J2EE perspective. By default, the J2EE perspective includes the following workbench views: You can rearrange the location, tiling, and
-size of the views within the perspective. You can also add other views to
-the J2EE perspective by clicking The workbench provides synchronization between different views and editors.
-This is also true in the J2EE perspective. By default, the J2EE perspective includes the following workbench views: The Project Explorer view provides an integrated
-view of all project resources, including models of J2EE deployment descriptors, You should use this view to work with your J2EE deployment descriptors
-and their content. You can view an enterprise application project and see
-all of the modules associated with it. You can also filter what you see in the Project Explorer view to hide projects,
-folders, or files that you don't want to see. To enable or disable filters,
-click the Alternately, you can filter what you see by showing or hiding working sets,
-groups of related resources or projects. See The following image shows the Project Explorer view with a few projects: The Project Explorer view provides an integrated
-view of all project resources, including models of J2EE deployment descriptors, Javaâ„¢ artifacts,
-resources, Web services, databases, and dynamic Web project artifacts. You should use this view to work with your J2EE deployment descriptors
-and their content. You can view an enterprise application project and see
-all of the modules associated with it. You can also filter what you see in the Project Explorer view to hide projects,
-folders, or files that you don't want to see. To enable or disable filters,
-click the Filters button from the drop-down menu at
-the top right corner of the view. For more information, see Filters in the Project Explorer view. Alternately, you can filter what you see by showing or hiding working sets,
-groups of related resources or projects. See Working Sets. The following image shows the Project Explorer view with a few projects: To enable or disable filters, open the Select
-Common Navigator Filters window by clicking the On the Select Common Navigator Filters tab, select the check boxes next
-to the filters you want to enable. For example, when the On the Available Extensions and Filters tab, the filters work in the opposite
-way: the selected check boxes describe the projects, folders, and files that
-are shown in the Project Explorer view. For example, if you clear the check
-box next to To enable or disable filters, open the Select
-Common Navigator Filters window by clicking the Filters button
-from the drop-down menu at the top right corner of the view. This window lists
-the available filters. On the Select Common Navigator Filters tab, select the check boxes next
-to the filters you want to enable. For example, when the Closed
-projects filter is enabled, closed projects are not shown in the
-Project Explorer view. Other filters can hide empty packages, non-java files,
-and files with names ending in ".class". On the Available Extensions and Filters tab, the filters work in the opposite
-way: the selected check boxes describe the projects, folders, and files that
-are shown in the Project Explorer view. For example, if you clear the check
-box next to J2EE Deployment Descriptors, the deployment
-descriptors are hidden from each project in the view. These topics cover how to import files and projects into the workbench
-and export files and projects to disk. These topics deal with the Javaâ„¢ 2 Platform, Enterprise Edition (J2EE). The workbench can work with many different types of projects. The
-following topics cover creating and managing some of the types of projects
-related to J2EE development. The following reference material on J2EE is available: When
-you create an enterprise application project, it is recommended that you do
-not give it a name that contains double-byte character set (DBCS) characters. When
-you create an enterprise application project, it is recommended that you do
-not give it a name that contains double-byte character set (DBCS) characters. Note that the EAR Validator only ensures the validity and dependency
-of the module projects with respect to the enterprise application project. Specifically, the EJB Validator
-validates the following resources: Note that the EAR Validator only ensures the validity and dependency
-of the module projects with respect to the enterprise application project. Specifically, the EJB Validator
-validates the following resources: New projects
-generally have facets added to them when they are created. To add another
-facet to a project that already exists, follow these steps: Only the facets
-that are valid for the project are listed: You
-can also choose a preset combination of facets from the New projects
-generally have facets added to them when they are created. To add another
-facet to a project that already exists, follow these steps: Changing
-the Java compiler version of a J2EE project involves changing the version
-of the Changing
-the Java compiler version of a J2EE project involves changing the version
-of the Java facet. See Changing the Java compiler version for a J2EE project. The The Java facet
-applies only to J2EE projects. To set the Java compiler level of a non-J2EE
-project, such as a Java project, see Java Compiler. Application
-client projects contain the resources needed for application client modules.
-Application client projects contain programs that run on networked client
-systems. An application client project is deployed as a JAR file. Like
-the other types of projects, application client projects can contain one or
-more project facets, which represent units of functionality in the project.
-A new application client project should have the Application Client module
-facet. Depending on what you want to use the project for, you may want to
-enable other facets for the project. To create a J2EE application client
-project: Application
-client projects contain the resources needed for application client modules.
-Application client projects contain programs that run on networked client
-systems. An application client project is deployed as a JAR file. Like
-the other types of projects, application client projects can contain one or
-more project facets, which represent units of functionality in the project.
-A new application client project should have the Application Client module
-facet. Depending on what you want to use the project for, you may want to
-enable other facets for the project. To create a J2EE application client
-project: A cyclical dependency between two
-or more modules in an enterprise application most commonly occurs when projects
-are imported from outside the workbench. When a cycle exists between two or
-more modules in an enterprise application, the Therefore, the best practice is to organize your
-projects or modules into components. This allows your module dependencies
-to function as a tree instead of a cycle diagram. This practice has the added
-benefit of producing a better factored and layered application. A cyclical dependency between two
-or more modules in an enterprise application most commonly occurs when projects
-are imported from outside the workbench. When a cycle exists between two or
-more modules in an enterprise application, the Javaâ„¢ builder cannot accurately compute the
-build order of the projects. Full builds fail under these conditions, or require
-several invocations. Therefore, the best practice is to organize your
-projects or modules into components. This allows your module dependencies
-to function as a tree instead of a cycle diagram. This practice has the added
-benefit of producing a better factored and layered application. Enterprise
-application projects contain references to the resources needed for enterprise
-applications and can contain a combination of Web modules, JAR files, connector
-modules, EJB modules, and application client modules. An enterprise application
-project is deployed in the form of an EAR file, and is therefore sometimes
-referred to as an EAR project. The modules in an enterprise application project
-are mapped to other J2EE projects. The mapping information is stored in metadata
-files within the enterprise application project. The metadata files are used
-for exporting the project to an EAR file and for running the project on the
-server. Like the other types of projects, enterprise application projects
-can contain one or more project facets, which represent units of functionality
-in the project. To be deployed as an EAR file, the new project must have the
-EAR facet. Depending on what you want to use the project for, you may want
-to enable other facets for the project. To
-create a J2EE enterprise application project: Enterprise
-application projects contain references to the resources needed for enterprise
-applications and can contain a combination of Web modules, JAR files, connector
-modules, EJB modules, and application client modules. An enterprise application
-project is deployed in the form of an EAR file, and is therefore sometimes
-referred to as an EAR project. The modules in an enterprise application project
-are mapped to other J2EE projects. The mapping information is stored in metadata
-files within the enterprise application project. The metadata files are used
-for exporting the project to an EAR file and for running the project on the
-server. Like the other types of projects, enterprise application projects
-can contain one or more project facets, which represent units of functionality
-in the project. To be deployed as an EAR file, the new project must have the
-EAR facet. Depending on what you want to use the project for, you may want
-to enable other facets for the project. When
-you create an enterprise application project, it is recommended that you do
-not give it a name that contains double-byte character set (DBCS) characters. To
-create a J2EE enterprise application project: To export
-an application client project from the workbench: To export
-an application client project from the workbench: To export
-an enterprise application project into an EAR file: To export
-an enterprise application project into an EAR file: To export
-the contents of a connector project to a RAR file: To export the contents of a connector project to a RAR file: To import
-an application client JAR file using the wizard: To import
-an application client JAR file using the wizard: You can
-also choose to import utility JAR files as utility To import an EAR file using the wizard: You can
-also choose to import utility JAR files as utility Javaâ„¢ projects. You can also use the wizard
-to change the new project names for the EAR file and modules that will be
-imported. To import an EAR file using the wizard: To import
-a connector project RAR file using the wizard: To import a connector project RAR file using the wizard: A connector
-is a J2EE standard extension mechanism for containers to provide connectivity
-to enterprise information systems (EISs). A connector is specific to an EIS
-and consists of a resource adapter and application development tools. A resource
-adapter is a system-level software driver that is used by an EJB container
-or an application client to connect to an EIS. Connectors comply with the
-J2EE Connector architecture (JCA). Like the other types of projects,
-connector projects can contain one or more project facets, which represent
-units of functionality in the project. A new connector project should have
-the J2C Module facet. Depending on what you want to use the project for, you
-may want to enable other facets for the project. To
-create a new connector project: A connector
-is a J2EE standard extension mechanism for containers to provide connectivity
-to enterprise information systems (EISs). A connector is specific to an EIS
-and consists of a resource adapter and application development tools. A resource
-adapter is a system-level software driver that is used by an EJB container
-or an application client to connect to an EIS. Connectors comply with the
-J2EE Connector architecture (JCA). Like the other types of projects,
-connector projects can contain one or more project facets, which represent
-units of functionality in the project. A new connector project should have
-the J2C Module facet. Depending on what you want to use the project for, you
-may want to enable other facets for the project. To
-create a new connector project: In order
-to support different application servers that use different JDK levels for
-their You can also add more than
-one target server for your project. In this case, the workbench prevents you
-from adding any facets not supported by all of the target servers. If you
-add more than one target server, one of those servers must be the primary
-server, the server that will contribute to the project's class path. When
-the project is created, the class path of the project is updated with two
-class path containers. One container is the JDK container and the other is
-the server container. The JDK container points to the directory that contains
-the JAR files that are necessary to support the JDK version. The server container
-points to the directory that contains the multiple public JAR files available
-in the selected server. The project then compiles based on the required JAR
-files located in these folders, and you do not need to worry about adding
-additional JAR files from the server during development. When the project
-is compiled, the JAR files are included in the class path. You can still add
-your own JAR files to the class path. The target runtime environment
-is specified in the org.eclipse.wst.common.project.facet.core.xml file in
-the project's .settings folder. You should not edit this file manually; instead,
-use the properties window as described in this topic. All J2EE project
-creation and import wizards prompt you to specify the target server for the
-resulting projects. The list of target servers that you can choose from is
-filtered based on installed runtimes, the J2EE level of the application, and
-the J2EE module type. For example, for EJB projects only application servers
-that support Enterprise To modify
-the target runtime and default server for an existing project: Only the runtimes compatible with the project's facets are shown.
-You can select the If you don't see the runtime that you
-want to use, you need to add it to the runtimes in the workbench. See If you select
-any runtimes for the project, you must make one of those runtimes the primary
-runtime for the project. If you select only one runtime from the list, that
-runtime is automatically made the primary runtime. The primary runtime is
-shown in bold text. In order
-to support different application servers that use different JDK levels for
-their Javaâ„¢ Runtime
-Environment (JRE), the workbench prompts you for a target server setting for
-each J2EE project. For example, if you want to take advantage of the features
-of JDK 1.4.2, your applications require different class path entries than
-those that were used in previous versions of the workbench. By prompting you
-to specify a target server, the workbench enforces that proper entries are
-added for running on the server you choose. You can also add more than
-one target server for your project. In this case, the workbench prevents you
-from adding any facets not supported by all of the target servers. If you
-add more than one target server, one of those servers must be the primary
-server, the server that will contribute to the project's class path. When
-the project is created, the class path of the project is updated with two
-class path containers. One container is the JDK container and the other is
-the server container. The JDK container points to the directory that contains
-the JAR files that are necessary to support the JDK version. The server container
-points to the directory that contains the multiple public JAR files available
-in the selected server. The project then compiles based on the required JAR
-files located in these folders, and you do not need to worry about adding
-additional JAR files from the server during development. When the project
-is compiled, the JAR files are included in the class path. You can still add
-your own JAR files to the class path. The target runtime environment
-is specified in the org.eclipse.wst.common.project.facet.core.xml file in
-the project's .settings folder. You should not edit this file manually; instead,
-use the properties window as described in this topic. All J2EE project
-creation and import wizards prompt you to specify the target server for the
-resulting projects. The list of target servers that you can choose from is
-filtered based on installed runtimes, the J2EE level of the application, and
-the J2EE module type. For example, for EJB projects only application servers
-that support Enterprise JavaBeansâ„¢ are displayed. All projects
-inside a single EAR file must be targeted to the same server. If you create
-a new project and add it to an existing EAR project during creation, the project
-inherits the target server setting of the EAR project. To modify
-the target runtime and default server for an existing project: By default, the workbench validates
-your files automatically after any build, including automatic builds. You
-can also begin the validation process manually without building. On
-the workbench Properties window, you can enable or disable validators to be
-used on your projects. Also, you can enable or disable validators for each
-enterprise application module project individually on the Properties page
-for that project. Each validator can apply to certain types of files,
-certain project natures, and certain project facets. When a validator applies
-to a project facet or nature, the workbench uses that validator only on projects
-that have that facet or nature. Likewise, most validators apply only to certain
-types of files, so the workbench uses those validators only on those types
-of files. Follow these steps to validate your files: By default, the workbench validates
-your files automatically after any build, including automatic builds. You
-can also begin the validation process manually without building. On
-the workbench Properties window, you can enable or disable validators to be
-used on your projects. Also, you can enable or disable validators for each
-enterprise application module project individually on the Properties page
-for that project. Each validator can apply to certain types of files,
-certain project natures, and certain project facets. When a validator applies
-to a project facet or nature, the workbench uses that validator only on projects
-that have that facet or nature. Likewise, most validators apply only to certain
-types of files, so the workbench uses those validators only on those types
-of files. Follow these steps to validate your files: The default validation preferences
-are specified globally on the Validation page of the Preferences dialog. To
-allow projects to override these default validation preferences: The default validation preferences
-are specified globally on the Validation page of the Preferences dialog. To
-allow projects to override these default validation preferences: The validators used depend on the
-global and project validation settings. When you validate a project manually,
-the global settings are used unless both of the following are true: Whether the workbench uses the global or project validation preferences,
-only the validators selected to run on manual validation are used when you
-run a manual validation. To manually invoke an immediate code validation: Whether the workbench uses the global or project validation preferences,
-only the validators selected to run on manual validation are used when you
-run a manual validation. To manually invoke an immediate code validation: To choose the validators that you
-want to use for a project: To choose the validators that you
-want to use for a project: May 2, 2006 The Eclipse Foundation makes available all content in this plug-in
-("Content"). Unless otherwise indicated below, the Content is provided to you
-under the terms and conditions of the Eclipse Public License Version 1.0
-("EPL"). A copy of the EPL is available at
-http://www.eclipse.org/org/documents/epl-v10.php.
-For purposes of the EPL, "Program" will mean the Content. If you did not receive this Content directly from the Eclipse Foundation, the
-Content is being redistributed by another party ("Redistributor") 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
-and such source code may be obtained at
-http://www.eclipse.org/. May 2, 2006 The Eclipse Foundation makes available all content in this plug-in
-("Content"). Unless otherwise indicated below, the Content is provided to you
-under the terms and conditions of the Eclipse Public License Version 1.0
-("EPL"). A copy of the EPL is available at
-http://www.eclipse.org/org/documents/epl-v10.php.
-For purposes of the EPL, "Program" will mean the Content. If you did not receive this Content directly from the Eclipse Foundation, the
-Content is being redistributed by another party ("Redistributor") 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
-and such source code may be obtained at
-http://www.eclipse.org/. May 2, 2006 The Eclipse Foundation makes available all content in this plug-in
-("Content"). Unless otherwise indicated below, the Content is provided to you
-under the terms and conditions of the Eclipse Public License Version 1.0
-("EPL"). A copy of the EPL is available at
-http://www.eclipse.org/org/documents/epl-v10.php.
-For purposes of the EPL, "Program" will mean the Content. If you did not receive this Content directly from the Eclipse Foundation, the
-Content is being redistributed by another party ("Redistributor") 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
-and such source code may be obtained at
-http://www.eclipse.org/. Eclipse Public License - v 1.0
- THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT. 1. DEFINITIONS "Contribution" means: a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and i)
-changes to the Program, and ii)
-additions to the Program; 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. "Contributor" means any person or
-entity that distributes the Program. "Licensed Patents " 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. "Program" means the Contributions
-distributed in accordance with this Agreement. "Recipient" means anyone who
-receives the Program under this Agreement, including all Contributors. 2. GRANT OF RIGHTS a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to 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. b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide, 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. 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. 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. 3. REQUIREMENTS A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:
- a)
-it complies with the terms and conditions of this Agreement; and b)
-its license agreement: 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; ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and 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. When the Program is made available in source
-code form: a)
-it must be made available under this Agreement; and b) a
-copy of this Agreement must be included with each copy of the Program. Contributors may not remove or alter any
-copyright notices contained within the Program. 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. 4. COMMERCIAL DISTRIBUTION 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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. 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. 5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" 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. 6. DISCLAIMER OF LIABILITY 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. 7. GENERAL 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. 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. 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. 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. 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. January 28, 2005 THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). 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. 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 ("EPL"). A copy of the EPL is provided with this
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content. Content includes, but is not limited to, source code, object code,
-documentation and other files maintained in the Eclipse.org CVS repository
-("Repository") in CVS modules ("Modules") and made available as downloadable
-archives ("Downloads"). Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" 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 "plugins" and Features are located in directories named "features". Features may also include other Features ("Included Features"). Files named
-"feature.xml" may contain a list of the names and version numbers of Included
-Features. The terms and conditions governing Plug-ins and Fragments should be contained
-in files named "about.html" ("Abouts"). The terms and conditions governing
-Features and Included Features should be contained in files named "license.html"
-("Feature Licenses"). Abouts and Feature Licenses may be located in any
-directory of a Download or Module including, but not limited to the following
-locations: Note: if a Feature made available by the Eclipse Foundation is installed
-using the Eclipse Update Manager, you must agree to a license ("Feature Update
-License") 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 "license" property of
-files named "feature.properties". 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. 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): 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. 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. Eclipse Public License - v 1.0
- THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT. 1. DEFINITIONS "Contribution" means: a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and i)
-changes to the Program, and ii)
-additions to the Program; 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. "Contributor" means any person or
-entity that distributes the Program. "Licensed Patents " 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. "Program" means the Contributions
-distributed in accordance with this Agreement. "Recipient" means anyone who
-receives the Program under this Agreement, including all Contributors. 2. GRANT OF RIGHTS a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to 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. b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide, 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. 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. 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. 3. REQUIREMENTS A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:
- a)
-it complies with the terms and conditions of this Agreement; and b)
-its license agreement: 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; ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and 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. When the Program is made available in source
-code form: a)
-it must be made available under this Agreement; and b) a
-copy of this Agreement must be included with each copy of the Program. Contributors may not remove or alter any
-copyright notices contained within the Program. 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. 4. COMMERCIAL DISTRIBUTION 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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. 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. 5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" 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. 6. DISCLAIMER OF LIABILITY 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. 7. GENERAL 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. 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. 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. 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. 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. January 28, 2005 THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). 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. 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 ("EPL"). A copy of the EPL is provided with this
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content. Content includes, but is not limited to, source code, object code,
-documentation and other files maintained in the Eclipse.org CVS repository
-("Repository") in CVS modules ("Modules") and made available as downloadable
-archives ("Downloads"). Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" 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 "plugins" and Features are located in directories named "features". Features may also include other Features ("Included Features"). Files named
-"feature.xml" may contain a list of the names and version numbers of Included
-Features. The terms and conditions governing Plug-ins and Fragments should be contained
-in files named "about.html" ("Abouts"). The terms and conditions governing
-Features and Included Features should be contained in files named "license.html"
-("Feature Licenses"). Abouts and Feature Licenses may be located in any
-directory of a Download or Module including, but not limited to the following
-locations: Note: if a Feature made available by the Eclipse Foundation is installed
-using the Eclipse Update Manager, you must agree to a license ("Feature Update
-License") 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 "license" property of
-files named "feature.properties". 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. 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): 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. 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. Eclipse Public License - v 1.0
- THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT. 1. DEFINITIONS "Contribution" means: a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and i)
-changes to the Program, and ii)
-additions to the Program; 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. "Contributor" means any person or
-entity that distributes the Program. "Licensed Patents " 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. "Program" means the Contributions
-distributed in accordance with this Agreement. "Recipient" means anyone who
-receives the Program under this Agreement, including all Contributors. 2. GRANT OF RIGHTS a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to 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. b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide, 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. 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. 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. 3. REQUIREMENTS A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:
- a)
-it complies with the terms and conditions of this Agreement; and b)
-its license agreement: 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; ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and 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. When the Program is made available in source
-code form: a)
-it must be made available under this Agreement; and b) a
-copy of this Agreement must be included with each copy of the Program. Contributors may not remove or alter any
-copyright notices contained within the Program. 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. 4. COMMERCIAL DISTRIBUTION 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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. 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. 5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" 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. 6. DISCLAIMER OF LIABILITY 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. 7. GENERAL 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. 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. 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. 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. 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. March 17, 2005 THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY "CONTENT"). 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. 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
- ("EPL"). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.
- For purposes of the EPL, "Program" will mean the Content. Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository ("Repository") in CVS
- modules ("Modules") and made available as downloadable archives ("Downloads"). The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations: Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature.
-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. 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): 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. 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. February 24, 2005 The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content. If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party ("Redistributor") 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. This plug-in contains source code zip files ("Source Zips") 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 "about.html" files ("Abouts") 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. Eclipse Public License - v 1.0
- THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT. 1. DEFINITIONS "Contribution" means: a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and i)
-changes to the Program, and ii)
-additions to the Program; 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. "Contributor" means any person or
-entity that distributes the Program. "Licensed Patents " 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. "Program" means the Contributions
-distributed in accordance with this Agreement. "Recipient" means anyone who
-receives the Program under this Agreement, including all Contributors. 2. GRANT OF RIGHTS a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to 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. b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide, 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. 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. 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. 3. REQUIREMENTS A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:
- a)
-it complies with the terms and conditions of this Agreement; and b)
-its license agreement: 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; ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and 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. When the Program is made available in source
-code form: a)
-it must be made available under this Agreement; and b) a
-copy of this Agreement must be included with each copy of the Program. Contributors may not remove or alter any
-copyright notices contained within the Program. 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. 4. COMMERCIAL DISTRIBUTION 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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. 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. 5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" 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. 6. DISCLAIMER OF LIABILITY 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. 7. GENERAL 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. 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. 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. 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. 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. January 28, 2005 THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). 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. 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 ("EPL"). A copy of the EPL is provided with this
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content. Content includes, but is not limited to, source code, object code,
-documentation and other files maintained in the Eclipse.org CVS repository
-("Repository") in CVS modules ("Modules") and made available as downloadable
-archives ("Downloads"). Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" 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 "plugins" and Features are located in directories named "features". Features may also include other Features ("Included Features"). Files named
-"feature.xml" may contain a list of the names and version numbers of Included
-Features. The terms and conditions governing Plug-ins and Fragments should be contained
-in files named "about.html" ("Abouts"). The terms and conditions governing
-Features and Included Features should be contained in files named "license.html"
-("Feature Licenses"). Abouts and Feature Licenses may be located in any
-directory of a Download or Module including, but not limited to the following
-locations: Note: if a Feature made available by the Eclipse Foundation is installed
-using the Eclipse Update Manager, you must agree to a license ("Feature Update
-License") 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 "license" property of
-files named "feature.properties". 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. 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): 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. 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. Eclipse Public License - v 1.0
- THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT. 1. DEFINITIONS "Contribution" means: a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and i)
-changes to the Program, and ii)
-additions to the Program; 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. "Contributor" means any person or
-entity that distributes the Program. "Licensed Patents " 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. "Program" means the Contributions
-distributed in accordance with this Agreement. "Recipient" means anyone who
-receives the Program under this Agreement, including all Contributors. 2. GRANT OF RIGHTS a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to 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. b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide, 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. 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. 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. 3. REQUIREMENTS A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:
- a)
-it complies with the terms and conditions of this Agreement; and b)
-its license agreement: 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; ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and 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. When the Program is made available in source
-code form: a)
-it must be made available under this Agreement; and b) a
-copy of this Agreement must be included with each copy of the Program. Contributors may not remove or alter any
-copyright notices contained within the Program. 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. 4. COMMERCIAL DISTRIBUTION 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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. 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. 5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" 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. 6. DISCLAIMER OF LIABILITY 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. 7. GENERAL 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. 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. 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. 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. 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. January 28, 2005 THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). 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. 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 ("EPL"). A copy of the EPL is provided with this
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content. Content includes, but is not limited to, source code, object code,
-documentation and other files maintained in the Eclipse.org CVS repository
-("Repository") in CVS modules ("Modules") and made available as downloadable
-archives ("Downloads"). Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" 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 "plugins" and Features are located in directories named "features". Features may also include other Features ("Included Features"). Files named
-"feature.xml" may contain a list of the names and version numbers of Included
-Features. The terms and conditions governing Plug-ins and Fragments should be contained
-in files named "about.html" ("Abouts"). The terms and conditions governing
-Features and Included Features should be contained in files named "license.html"
-("Feature Licenses"). Abouts and Feature Licenses may be located in any
-directory of a Download or Module including, but not limited to the following
-locations: Note: if a Feature made available by the Eclipse Foundation is installed
-using the Eclipse Update Manager, you must agree to a license ("Feature Update
-License") 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 "license" property of
-files named "feature.properties". 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. 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): 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. 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. Eclipse Public License - v 1.0
- THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT. 1. DEFINITIONS "Contribution" means: a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and i)
-changes to the Program, and ii)
-additions to the Program; 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. "Contributor" means any person or
-entity that distributes the Program. "Licensed Patents " 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. "Program" means the Contributions
-distributed in accordance with this Agreement. "Recipient" means anyone who
-receives the Program under this Agreement, including all Contributors. 2. GRANT OF RIGHTS a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to 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. b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide, 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. 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. 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. 3. REQUIREMENTS A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:
- a)
-it complies with the terms and conditions of this Agreement; and b)
-its license agreement: 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; ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and 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. When the Program is made available in source
-code form: a)
-it must be made available under this Agreement; and b) a
-copy of this Agreement must be included with each copy of the Program. Contributors may not remove or alter any
-copyright notices contained within the Program. 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. 4. COMMERCIAL DISTRIBUTION 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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. 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. 5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" 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. 6. DISCLAIMER OF LIABILITY 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. 7. GENERAL 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. 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. 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. 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. 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. March 17, 2005 THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY "CONTENT"). 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. 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
- ("EPL"). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.
- For purposes of the EPL, "Program" will mean the Content. Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository ("Repository") in CVS
- modules ("Modules") and made available as downloadable archives ("Downloads"). The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations: Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature.
-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. 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): 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. 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. February 24, 2005 The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content. If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party ("Redistributor") 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. This plug-in contains source code zip files ("Source Zips") 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 "about.html" files ("Abouts") 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. Eclipse Public License - v 1.0
- THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT. 1. DEFINITIONS "Contribution" means: a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and i)
-changes to the Program, and ii)
-additions to the Program; 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. "Contributor" means any person or
-entity that distributes the Program. "Licensed Patents " 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. "Program" means the Contributions
-distributed in accordance with this Agreement. "Recipient" means anyone who
-receives the Program under this Agreement, including all Contributors. 2. GRANT OF RIGHTS a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to 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. b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide, 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. 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. 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. 3. REQUIREMENTS A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:
- a)
-it complies with the terms and conditions of this Agreement; and b)
-its license agreement: 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; ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and 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. When the Program is made available in source
-code form: a)
-it must be made available under this Agreement; and b) a
-copy of this Agreement must be included with each copy of the Program. Contributors may not remove or alter any
-copyright notices contained within the Program. 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. 4. COMMERCIAL DISTRIBUTION 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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. 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. 5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" 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. 6. DISCLAIMER OF LIABILITY 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. 7. GENERAL 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. 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. 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. 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. 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. January 28, 2005 THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). 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. 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 ("EPL"). A copy of the EPL is provided with this
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content. Content includes, but is not limited to, source code, object code,
-documentation and other files maintained in the Eclipse.org CVS repository
-("Repository") in CVS modules ("Modules") and made available as downloadable
-archives ("Downloads"). Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" 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 "plugins" and Features are located in directories named "features". Features may also include other Features ("Included Features"). Files named
-"feature.xml" may contain a list of the names and version numbers of Included
-Features. The terms and conditions governing Plug-ins and Fragments should be contained
-in files named "about.html" ("Abouts"). The terms and conditions governing
-Features and Included Features should be contained in files named "license.html"
-("Feature Licenses"). Abouts and Feature Licenses may be located in any
-directory of a Download or Module including, but not limited to the following
-locations: Note: if a Feature made available by the Eclipse Foundation is installed
-using the Eclipse Update Manager, you must agree to a license ("Feature Update
-License") 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 "license" property of
-files named "feature.properties". 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. 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): 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. 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. Eclipse Public License - v 1.0
- THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT. 1. DEFINITIONS "Contribution" means: a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and i)
-changes to the Program, and ii)
-additions to the Program; 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. "Contributor" means any person or
-entity that distributes the Program. "Licensed Patents " 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. "Program" means the Contributions
-distributed in accordance with this Agreement. "Recipient" means anyone who
-receives the Program under this Agreement, including all Contributors. 2. GRANT OF RIGHTS a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to 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. b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide, 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. 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. 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. 3. REQUIREMENTS A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:
- a)
-it complies with the terms and conditions of this Agreement; and b)
-its license agreement: 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; ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and 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. When the Program is made available in source
-code form: a)
-it must be made available under this Agreement; and b) a
-copy of this Agreement must be included with each copy of the Program. Contributors may not remove or alter any
-copyright notices contained within the Program. 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. 4. COMMERCIAL DISTRIBUTION 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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. 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. 5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" 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. 6. DISCLAIMER OF LIABILITY 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. 7. GENERAL 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. 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. 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. 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. 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. January 28, 2005 THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). 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. 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 ("EPL"). A copy of the EPL is provided with this
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content. Content includes, but is not limited to, source code, object code,
-documentation and other files maintained in the Eclipse.org CVS repository
-("Repository") in CVS modules ("Modules") and made available as downloadable
-archives ("Downloads"). Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" 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 "plugins" and Features are located in directories named "features". Features may also include other Features ("Included Features"). Files named
-"feature.xml" may contain a list of the names and version numbers of Included
-Features. The terms and conditions governing Plug-ins and Fragments should be contained
-in files named "about.html" ("Abouts"). The terms and conditions governing
-Features and Included Features should be contained in files named "license.html"
-("Feature Licenses"). Abouts and Feature Licenses may be located in any
-directory of a Download or Module including, but not limited to the following
-locations: Note: if a Feature made available by the Eclipse Foundation is installed
-using the Eclipse Update Manager, you must agree to a license ("Feature Update
-License") 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 "license" property of
-files named "feature.properties". 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. 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): 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. 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. Eclipse Public License - v 1.0
- THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT. 1. DEFINITIONS "Contribution" means: a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and i)
-changes to the Program, and ii)
-additions to the Program; 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. "Contributor" means any person or
-entity that distributes the Program. "Licensed Patents " 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. "Program" means the Contributions
-distributed in accordance with this Agreement. "Recipient" means anyone who
-receives the Program under this Agreement, including all Contributors. 2. GRANT OF RIGHTS a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to 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. b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide, 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. 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. 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. 3. REQUIREMENTS A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:
- a)
-it complies with the terms and conditions of this Agreement; and b)
-its license agreement: 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; ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and 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. When the Program is made available in source
-code form: a)
-it must be made available under this Agreement; and b) a
-copy of this Agreement must be included with each copy of the Program. Contributors may not remove or alter any
-copyright notices contained within the Program. 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. 4. COMMERCIAL DISTRIBUTION 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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. 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. 5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" 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. 6. DISCLAIMER OF LIABILITY 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. 7. GENERAL 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. 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. 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. 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. 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. March 17, 2005 THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY "CONTENT"). 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. 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
- ("EPL"). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.
- For purposes of the EPL, "Program" will mean the Content. Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository ("Repository") in CVS
- modules ("Modules") and made available as downloadable archives ("Downloads"). The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations: Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature.
-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. 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): 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. 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. February 24, 2005 The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content. If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party ("Redistributor") 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. This plug-in contains source code zip files ("Source Zips") 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 "about.html" files ("Abouts") 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. Eclipse Public License - v 1.0
- THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT. 1. DEFINITIONS "Contribution" means: a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and i)
-changes to the Program, and ii)
-additions to the Program; 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. "Contributor" means any person or
-entity that distributes the Program. "Licensed Patents " 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. "Program" means the Contributions
-distributed in accordance with this Agreement. "Recipient" means anyone who
-receives the Program under this Agreement, including all Contributors. 2. GRANT OF RIGHTS a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to 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. b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide, 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. 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. 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. 3. REQUIREMENTS A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:
- a)
-it complies with the terms and conditions of this Agreement; and b)
-its license agreement: 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; ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and 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. When the Program is made available in source
-code form: a)
-it must be made available under this Agreement; and b) a
-copy of this Agreement must be included with each copy of the Program. Contributors may not remove or alter any
-copyright notices contained within the Program. 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. 4. COMMERCIAL DISTRIBUTION 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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. 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. 5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" 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. 6. DISCLAIMER OF LIABILITY 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. 7. GENERAL 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. 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. 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. 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. 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. January 28, 2005 THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). 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. 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 ("EPL"). A copy of the EPL is provided with this
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content. Content includes, but is not limited to, source code, object code,
-documentation and other files maintained in the Eclipse.org CVS repository
-("Repository") in CVS modules ("Modules") and made available as downloadable
-archives ("Downloads"). Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" 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 "plugins" and Features are located in directories named "features". Features may also include other Features ("Included Features"). Files named
-"feature.xml" may contain a list of the names and version numbers of Included
-Features. The terms and conditions governing Plug-ins and Fragments should be contained
-in files named "about.html" ("Abouts"). The terms and conditions governing
-Features and Included Features should be contained in files named "license.html"
-("Feature Licenses"). Abouts and Feature Licenses may be located in any
-directory of a Download or Module including, but not limited to the following
-locations: Note: if a Feature made available by the Eclipse Foundation is installed
-using the Eclipse Update Manager, you must agree to a license ("Feature Update
-License") 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 "license" property of
-files named "feature.properties". 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. 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): 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. 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. Eclipse Public License - v 1.0
- THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT. 1. DEFINITIONS "Contribution" means: a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and i)
-changes to the Program, and ii)
-additions to the Program; 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. "Contributor" means any person or
-entity that distributes the Program. "Licensed Patents " 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. "Program" means the Contributions
-distributed in accordance with this Agreement. "Recipient" means anyone who
-receives the Program under this Agreement, including all Contributors. 2. GRANT OF RIGHTS a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to 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. b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide, 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. 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. 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. 3. REQUIREMENTS A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:
- a)
-it complies with the terms and conditions of this Agreement; and b)
-its license agreement: 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; ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and 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. When the Program is made available in source
-code form: a)
-it must be made available under this Agreement; and b) a
-copy of this Agreement must be included with each copy of the Program. Contributors may not remove or alter any
-copyright notices contained within the Program. 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. 4. COMMERCIAL DISTRIBUTION 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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. 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. 5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" 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. 6. DISCLAIMER OF LIABILITY 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. 7. GENERAL 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. 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. 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. 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. 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. January 28, 2005 THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). 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. 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 ("EPL"). A copy of the EPL is provided with this
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content. Content includes, but is not limited to, source code, object code,
-documentation and other files maintained in the Eclipse.org CVS repository
-("Repository") in CVS modules ("Modules") and made available as downloadable
-archives ("Downloads"). Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" 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 "plugins" and Features are located in directories named "features". Features may also include other Features ("Included Features"). Files named
-"feature.xml" may contain a list of the names and version numbers of Included
-Features. The terms and conditions governing Plug-ins and Fragments should be contained
-in files named "about.html" ("Abouts"). The terms and conditions governing
-Features and Included Features should be contained in files named "license.html"
-("Feature Licenses"). Abouts and Feature Licenses may be located in any
-directory of a Download or Module including, but not limited to the following
-locations: Note: if a Feature made available by the Eclipse Foundation is installed
-using the Eclipse Update Manager, you must agree to a license ("Feature Update
-License") 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 "license" property of
-files named "feature.properties". 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. 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): 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. 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. Eclipse Public License - v 1.0
- THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT. 1. DEFINITIONS "Contribution" means: a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and i)
-changes to the Program, and ii)
-additions to the Program; 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. "Contributor" means any person or
-entity that distributes the Program. "Licensed Patents " 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. "Program" means the Contributions
-distributed in accordance with this Agreement. "Recipient" means anyone who
-receives the Program under this Agreement, including all Contributors. 2. GRANT OF RIGHTS a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to 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. b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide, 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. 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. 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. 3. REQUIREMENTS A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:
- a)
-it complies with the terms and conditions of this Agreement; and b)
-its license agreement: 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; ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and 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. When the Program is made available in source
-code form: a)
-it must be made available under this Agreement; and b) a
-copy of this Agreement must be included with each copy of the Program. Contributors may not remove or alter any
-copyright notices contained within the Program. 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. 4. COMMERCIAL DISTRIBUTION 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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. 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. 5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" 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. 6. DISCLAIMER OF LIABILITY 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. 7. GENERAL 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. 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. 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. 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. 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. March 17, 2005 THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY "CONTENT"). 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. 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
- ("EPL"). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.
- For purposes of the EPL, "Program" will mean the Content. Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository ("Repository") in CVS
- modules ("Modules") and made available as downloadable archives ("Downloads"). The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations: Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature.
-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. 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): 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. 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. February 24, 2005 The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content. If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party ("Redistributor") 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. This plug-in contains source code zip files ("Source Zips") 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 "about.html" files ("Abouts") 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. Eclipse Public License - v 1.0
- THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT. 1. DEFINITIONS "Contribution" means: a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and i)
-changes to the Program, and ii)
-additions to the Program; 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. "Contributor" means any person or
-entity that distributes the Program. "Licensed Patents " 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. "Program" means the Contributions
-distributed in accordance with this Agreement. "Recipient" means anyone who
-receives the Program under this Agreement, including all Contributors. 2. GRANT OF RIGHTS a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to 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. b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide, 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. 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. 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. 3. REQUIREMENTS A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:
- a)
-it complies with the terms and conditions of this Agreement; and b)
-its license agreement: 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; ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and 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. When the Program is made available in source
-code form: a)
-it must be made available under this Agreement; and b) a
-copy of this Agreement must be included with each copy of the Program. Contributors may not remove or alter any
-copyright notices contained within the Program. 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. 4. COMMERCIAL DISTRIBUTION 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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. 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. 5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" 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. 6. DISCLAIMER OF LIABILITY 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. 7. GENERAL 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. 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. 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. 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. 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. January 28, 2005 THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). 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. 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 ("EPL"). A copy of the EPL is provided with this
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content. Content includes, but is not limited to, source code, object code,
-documentation and other files maintained in the Eclipse.org CVS repository
-("Repository") in CVS modules ("Modules") and made available as downloadable
-archives ("Downloads"). Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" 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 "plugins" and Features are located in directories named "features". Features may also include other Features ("Included Features"). Files named
-"feature.xml" may contain a list of the names and version numbers of Included
-Features. The terms and conditions governing Plug-ins and Fragments should be contained
-in files named "about.html" ("Abouts"). The terms and conditions governing
-Features and Included Features should be contained in files named "license.html"
-("Feature Licenses"). Abouts and Feature Licenses may be located in any
-directory of a Download or Module including, but not limited to the following
-locations: Note: if a Feature made available by the Eclipse Foundation is installed
-using the Eclipse Update Manager, you must agree to a license ("Feature Update
-License") 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 "license" property of
-files named "feature.properties". 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. 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): 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. 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. May 2, 2006 The Eclipse Foundation makes available all content in this plug-in
-("Content"). Unless otherwise indicated below, the Content is provided to you
-under the terms and conditions of the Eclipse Public License Version 1.0
-("EPL"). A copy of the EPL is available at
-http://www.eclipse.org/org/documents/epl-v10.php.
-For purposes of the EPL, "Program" will mean the Content. If you did not receive this Content directly from the Eclipse Foundation, the
-Content is being redistributed by another party ("Redistributor") 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
-and such source code may be obtained at
-http://www.eclipse.org/.
- * This API would need to be revisited in the future if there is a requirement to show
- * all {@link ICompilationUnit} elements that contribute to the eObject via annotations.
- * "); //$NON-NLS-1$
- buf.append(txt);
- buf.append(" May 2, 2006 The Eclipse Foundation makes available all content in this plug-in
-("Content"). Unless otherwise indicated below, the Content is provided to you
-under the terms and conditions of the Eclipse Public License Version 1.0
-("EPL"). A copy of the EPL is available at
-http://www.eclipse.org/org/documents/epl-v10.php.
-For purposes of the EPL, "Program" will mean the Content. If you did not receive this Content directly from the Eclipse Foundation, the
-Content is being redistributed by another party ("Redistributor") 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
-and such source code may be obtained at
-http://www.eclipse.org/. May 2, 2006 The Eclipse Foundation makes available all content in this plug-in
-("Content"). Unless otherwise indicated below, the Content is provided to you
-under the terms and conditions of the Eclipse Public License Version 1.0
-("EPL"). A copy of the EPL is available at
-http://www.eclipse.org/org/documents/epl-v10.php.
-For purposes of the EPL, "Program" will mean the Content. If you did not receive this Content directly from the Eclipse Foundation, the
-Content is being redistributed by another party ("Redistributor") 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
-and such source code may be obtained at
-http://www.eclipse.org/.
- * The default implementation checks if May 2, 2006 The Eclipse Foundation makes available all content in this plug-in
-("Content"). Unless otherwise indicated below, the Content is provided to you
-under the terms and conditions of the Eclipse Public License Version 1.0
-("EPL"). A copy of the EPL is available at
-http://www.eclipse.org/org/documents/epl-v10.php.
-For purposes of the EPL, "Program" will mean the Content. If you did not receive this Content directly from the Eclipse Foundation, the
-Content is being redistributed by another party ("Redistributor") 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
-and such source code may be obtained at
-http://www.eclipse.org/.
- * The following class is experimental until fully documented.
- * May 2, 2006 The Eclipse Foundation makes available all content in this plug-in
-("Content"). Unless otherwise indicated below, the Content is provided to you
-under the terms and conditions of the Eclipse Public License Version 1.0
-("EPL"). A copy of the EPL is available at
-http://www.eclipse.org/org/documents/epl-v10.php.
-For purposes of the EPL, "Program" will mean the Content. If you did not receive this Content directly from the Eclipse Foundation, the
-Content is being redistributed by another party ("Redistributor") 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
-and such source code may be obtained at
-http://www.eclipse.org/.
- * If the meaning of the 'Types' attribute list isn't clear, there really should be
- * more of a description here...
- *
- * If the meaning of the 'Directory Entry' attribute isn't clear, there really
- * should be more of a description here...
- *
- * If the meaning of the 'Module' reference isn't clear,
- * there really should be more of a description here...
- *
- * If the meaning of the 'Deployment Descriptor' reference list isn't clear, there
- * really should be more of a description here...
- * This constructor accepts a protection domain, which is used
- * by Loads a specified class. Called only after the parent class loader has had
- * its chance to load the class, as per the Java2 delegation model. When non-null, the receiver's protection
- * domain is passed in to the call to IProject.addNature
- * 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();
- JavaXMIFactory.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();
- }
-
- public ProjectResourceSet getNewResourceSet() {
- return BeaninfoNature.this.newResourceSet();
- }
-
- public ResourceSet getProjectResourceSet() {
- return getResourceSet();
- }
- });
- fSynchronizer =
- new BeaninfoModelSynchronizer(
- (BeaninfoAdapterFactory) EcoreUtil.getAdapterFactory(javaRSet.getAdapterFactories(), IIntrospectionAdapter.ADAPTER_KEY),
- JavaCore.create(javaNature.getProject()));
- } catch (CoreException e) {
- 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().values().iterator();
- while (containerIdItr.hasNext()) {
- ContainerPaths containerPaths = (ContainerPaths) containerIdItr.next();
- IConfigurationElement[] contributors = BeaninfoPlugin.getPlugin().getContainerIdContributors(containerPaths.getContainerId(), containerPaths.getVisibleContainerPaths());
- 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;
- }
-
- private static final long NO_PREMATURE_TERMINATE_TIME = -1;
- private int registryPrematureTerminateCount;
- private long registryLastPrematureTerminateTime = NO_PREMATURE_TERMINATE_TIME;
-
- /*
- * This is UICreateRegistryJobHandler
- * will be instantiated in case of UI active.
- * @since 1.0.0
- */
-class CreateRegistryJobHandler {
- private static CreateRegistryJobHandler jobHandler = null;
-
- public static void createRegistry(BeaninfoNature nature) {
- synchronized (CreateRegistryJobHandler.class) {
- if (jobHandler == null) {
- if (Platform.getBundle("org.eclipse.ui") != null) { //$NON-NLS-1$
- try {
- // There is a UI, it may not be active, but bring in UICreateRegistryJobHandler to do the
- // actual work since it can reference the UI.
- jobHandler = (CreateRegistryJobHandler) Class.forName("org.eclipse.jem.internal.beaninfo.adapters.UICreateRegistryJobHandler").newInstance(); //$NON-NLS-1$
- } catch (InstantiationException e) {
- jobHandler = new CreateRegistryJobHandler();
- } catch (IllegalAccessException e) {
- jobHandler = new CreateRegistryJobHandler();
- } catch (ClassNotFoundException e) {
- jobHandler = new CreateRegistryJobHandler();
- }
- }
- }
- }
-
- // See if Autobuild sleeping or waiting. This could be a race condition for us. We can't wait for it
- // because we may already have the build rule locked by our thread. No way of testing this if beginRule was used.
- // We can test if we are a build job (not an inline build), and if so, just go on.
- // Maybe we can figure out in future if we find race condition happens significant amount of time.
- IJobManager jobManager = Platform.getJobManager();
- Job currentJob = jobManager.currentJob();
- if (currentJob == null || (!currentJob.belongsTo(ResourcesPlugin.FAMILY_AUTO_BUILD) && !currentJob.belongsTo(ResourcesPlugin.FAMILY_MANUAL_BUILD))) {
- // See if autojob is waiting or sleeping.
- // Give it up to a second at .2 second intervals to try (i.e. 5 tries)
- int tries = 5;
- while (isAutoWaiting() && --tries>0) {
- try {
- Thread.sleep(200); // Wait just .2 seconds to give build a chance to start. If it is still not started, then just go on.
- } catch (InterruptedException e) {
- }
- }
- if (tries==0) {
- Logger logger = BeaninfoPlugin.getPlugin().getLogger();
- if (logger.isLoggingLevel(Level.WARNING))
- logger.log("Build job waiting when trying to start beaninfo registry. Possible race.", Level.WARNING); // $NON-NLS-1$ //$NON-NLS-1$
- }
- }
-
- jobHandler.processCreateRegistry(nature);
- }
-
- private static boolean isAutoWaiting() {
- Job[] autojobs = Platform.getJobManager().find(ResourcesPlugin.FAMILY_AUTO_BUILD);
- for (int i = 0; i < autojobs.length; i++) {
- int state = autojobs[i].getState();
- if (state == Job.WAITING || state == Job.SLEEPING)
- return true;
- }
- return false;
- }
-
-
- /**
- * Process the create of the registry. This should be overridden to
- * do what the UI needs. The UI implimentation should call doCreateRegistry at the
- * appropriate time.
- *
- * @param nature
- *
- * @since 1.0.0
- */
- protected void processCreateRegistry(final BeaninfoNature nature) {
- IJobManager jobManager = Platform.getJobManager();
- ISchedulingRule buildRule = ResourcesPlugin.getWorkspace().getRuleFactory().buildRule();
- boolean gotRuleLocally = true;
- try {
- try {
- jobManager.beginRule(buildRule, new NullProgressMonitor());
- } catch (IllegalArgumentException e) {
- gotRuleLocally = false; // This thread already had a rule, and it conflicted with the build rule, so we need to spawn off.
- }
- if (gotRuleLocally)
- doCreateRegistry(nature, new NullProgressMonitor());
- } finally {
- jobManager.endRule(buildRule); // Whether we got the rule or not, we must do endrule.
- }
-
- if (!gotRuleLocally) {
- // Spawn off to a job and wait for it. Hopefully we don't have a deadlock somewhere.
- Job doCreateJob = new Job(BeanInfoAdapterMessages.UICreateRegistryJobHandler_StartBeaninfoRegistry) {
-
- protected IStatus run(IProgressMonitor monitor) {
- doCreateRegistry(nature, monitor);
- return Status.OK_STATUS;
- }
- };
- doCreateJob.schedule();
- while (true) {
- try {
- doCreateJob.join();
- break;
- } catch (InterruptedException e) {
- }
- }
- }
- }
-
- /*
- * Do the creation. It is expected that the build rule has already been given to this thread.
- * It is important that the build rule be given to this thread. This is so that a build won't
- * start trying to create the same registry (which has happened in the past) at the same time
- * a different thread was trying to start the registry. You would either have a deadlock, or
- * a race and get two different registries started.
- *
- * The build rule also means that all beaninfo registry creations will be serialized and have
- * a race condition. The unfortunate part is that two independent project's registries can't be
- * created at same time. But that is the result of the build rule. We can't allow the builds, so
- * we need to stop all parallel beaninfo registry creations.
- *
- * @param nature
- * @param pm
- *
- * @since 1.0.0
- */
- protected final void doCreateRegistry(BeaninfoNature nature, IProgressMonitor pm) {
- pm.beginTask("", 100); //$NON-NLS-1$
- try {
- nature.createRegistry(new SubProgressMonitor(pm, 100));
- } finally {
- pm.done();
- }
- }
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/DOMReader.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/DOMReader.java
deleted file mode 100644
index 9f8775341..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/DOMReader.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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;
-/*
- * $RCSfile: DOMReader.java,v $
- * $Revision: 1.7 $ $Date: 2005/08/24 20:31:29 $
- */
-
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-
-/**
- * The internal class for reading dom elements.
- * @version 1.0
- * @author
- */
-class DOMReader implements IReader {
-
- /*
- * @see IReader#getChildren(Object)
- */
- public Object getChildren(Object node) {
- return (node instanceof Node) ? ((Node) node).getChildNodes() : null;
- }
-
-
- /*
- * @see IReader#getLength(Object)
- */
- public int getLength(Object nodeList) {
- return (nodeList instanceof NodeList) ? ((NodeList) nodeList).getLength() : 0;
- }
-
- /*
- * @see IReader#getItem(Object, int)
- */
- public Object getItem(Object nodeList, int index) {
- return (nodeList instanceof NodeList) ? ((NodeList) nodeList).item(index) : null;
- }
-
- /*
- * @see IReader#isNodeTypeElement(Object)
- */
- public boolean isNodeTypeElement(Object node) {
- return (node instanceof Node) ? ((Node) node).getNodeType() == Node.ELEMENT_NODE : false;
- }
-
- /*
- * @see IReader#getNodeName(Object)
- */
- public String getNodeName(Object node) {
- return (node instanceof Node) ? ((Node) node).getNodeName() : ""; //$NON-NLS-1$
- }
-
- /*
- * @see IReader#getAttribute(Object, String)
- */
- public String getAttribute(Object element, String attributeName) {
- return (element instanceof Element) && ((Element) element).hasAttribute(attributeName) ? ((Element) element).getAttribute(attributeName) : null;
- }
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/IReader.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/IReader.java
deleted file mode 100644
index ed6bf6771..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/IReader.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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;
-/*
- * $RCSfile: IReader.java,v $
- * $Revision: 1.6 $ $Date: 2005/08/24 20:31:29 $
- */
-/**
- * This is internal interface for reading beaninfoConfig either through IConfigurationElements or
- * w3.dom.Nodes. This is because when reading the .beaninfoConfig we will be using Nodes, but
- * when reading configs from registered extensions they will be IConfigurationElements.
- * @version 1.0
- * TODO Need to move to core when we make things API.
- */
-public interface IReader {
-
- public Object getChildren(Object node);
- public int getLength(Object nodeList);
- public Object getItem(Object nodeList, int index);
- public boolean isNodeTypeElement(Object node); // Is this an element type node
- public String getNodeName(Object node);
- public String getAttribute(Object element, String attributeName);
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/SpecialResourceSet.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/SpecialResourceSet.java
deleted file mode 100644
index 8b291be61..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/SpecialResourceSet.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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;
-/*
- * $RCSfile: SpecialResourceSet.java,v $
- * $Revision: 1.9 $ $Date: 2005/08/24 20:31:29 $
- */
-
-import org.eclipse.jem.internal.util.emf.workbench.ProjectResourceSetImpl;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
-
-
-/**
- * A Special resource set that is used to link together to the beaninfo
- * nature's resource set and makes sure that any request for a new "java:/..."
- * JavaClass is redirected to the beaninfo nature's resource set. Otherwise
- * the classes will be all over the place and not all gathered in one place.
- *
- * *package* protected because no one should create one of these. They are
- * returned by the BeaninfoNature.newResourceSet() request.
- *
- * @version 1.0
- * @author
- */
-class SpecialResourceSet extends ProjectResourceSetImpl {
-
- /**
- * Constructor for SpecialResourceSet.
- * @param aProject
- */
- public SpecialResourceSet() {
- super(null);
- JEMUtilPlugin.getSharedCache().stopListening(this); // We don't care about listening.
- }
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/UICreateRegistryJobHandler.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/UICreateRegistryJobHandler.java
deleted file mode 100644
index d198f634a..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/UICreateRegistryJobHandler.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 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: UICreateRegistryJobHandler.java,v $
- * $Revision: 1.9 $ $Date: 2006/05/17 20:13:00 $
- */
-package org.eclipse.jem.internal.beaninfo.adapters;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.logging.Level;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.*;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.progress.IProgressService;
-
-import org.eclipse.jem.internal.beaninfo.core.BeaninfoPlugin;
-
-/**
- * This is the version which can actually reference and use the UI classes. It won't be loaded except if ui plugin is available.
- *
- * It will check to see if UI is running, and if it is not, then let super class handle. If it is running, then if this is the UI thread, do special
- * but run in ui, else if not then let super handle it normally.
- *
- * @since 1.0.0
- */
-class UICreateRegistryJobHandler extends CreateRegistryJobHandler {
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.beaninfo.adapters.CreateRegistryJobHandler#processCreateRegistry(org.eclipse.jem.internal.beaninfo.adapters.BeaninfoNature)
- */
- protected void processCreateRegistry(final BeaninfoNature nature) {
- if (PlatformUI.isWorkbenchRunning()) {
- if (Display.getCurrent() == null)
- super.processCreateRegistry(nature); // We are not in the UI thread. Do normal.
- else {
- IProgressService ps = PlatformUI.getWorkbench().getProgressService();
- final ISchedulingRule buildRule = ResourcesPlugin.getWorkspace().getRuleFactory().buildRule();
- // First find out if we already have the build rule. If we do, we MUST run in the UI thread. Have no option, can't transfer the
- // rule to the thread and then back to us when done.
- // This means a busy cursor instead of a possible progress dialog to keep the UI active. Only possible deadlock
- // situation is if some other thread has the build rule (other than the build) and is doing an asyncExec or
- // is waiting on something from the UI thread.
- final IJobManager jobManager = Platform.getJobManager();
- Job currentJob = jobManager.currentJob();
- if (currentJob == null || currentJob.getRule() == null || !currentJob.getRule().contains(buildRule)) {
- // UI is not in a job, or it is and there is no rule, or there is a rule and it is not compatible with the buildRule.
- // In that case we need to run in another thread. That is so that we can put up a progress dialog if it takes
- // too long.
- // If no rule then we can't run in UI because some other job may have the rule, and there is no way to test
- // for this. So we don't want to block the UI entirely waiting for the rule, so we can use progress dialog
- // for this. Also if we have a rule and it conflicts with build rule then we should also go to another thread.
- // busyCursorWhile will do this. It will run the create in another thread but keep the UI responsive with
- // progress dialog after a "long operation" timeout.
- try {
- ps.busyCursorWhile(new IRunnableWithProgress() {
-
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- monitor.beginTask("", 200); //$NON-NLS-1$
- try {
- jobManager.beginRule(buildRule, new SubProgressMonitor(monitor, 100));
- doCreateRegistry(nature, new SubProgressMonitor(monitor, 100));
- } finally {
- jobManager.endRule(buildRule);
- monitor.done();
- }
- }
- });
- } catch (InterruptedException e1) {
- } catch (InvocationTargetException e2) {
- BeaninfoPlugin.getPlugin().getLogger().log(e2.getCause(), Level.WARNING);
- }
- } else {
- // We are a job in the UI and we have or can contain the build rule. Therefor we must run in the UI thread itself. Otherwise
- // there will be a deadlock because we have the build rule and the other thread won't be able to get it.
- // Note: There is ProgressService.runInUI() but that guy is complicated with some interactions I'm not sure about. Safer to do this.
- BusyIndicator.showWhile(Display.getCurrent(), new Runnable() {
- public void run() {
- try {
- jobManager.beginRule(buildRule, new NullProgressMonitor());
- doCreateRegistry(nature, new NullProgressMonitor());
- } finally {
- jobManager.endRule(buildRule);
- }
- }
- });
- }
- }
- } else
- super.processCreateRegistry(nature); // Workbench not running, do default.
- }
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/messages.properties b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/messages.properties
deleted file mode 100644
index 79ff64c3d..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/messages.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 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
-###############################################################################
-#
-# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/messages.properties,v $
-# $Revision: 1.6 $ $Date: 2005/08/24 20:31:29 $
-#
-
-INTROSPECT_FAILED_EXC_ = IWAV0155E Introspection failed on class "{0}." msg="{1}."
-BeaninfoClassAdapter_ClassNotFound = Class not found
-BeaninfoNature_InvalidProject = Invalid project
-UICreateRegistryJobHandler_StartBeaninfoRegistry = Start Beaninfo registry
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeanInfoCacheController.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeanInfoCacheController.java
deleted file mode 100644
index 8bad0d84a..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeanInfoCacheController.java
+++ /dev/null
@@ -1,1603 +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: BeanInfoCacheController.java,v $
- * $Revision: 1.19 $ $Date: 2006/05/23 15:43:06 $
- */
-package org.eclipse.jem.internal.beaninfo.core;
-
-import java.io.*;
-import java.util.*;
-import java.util.logging.Level;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.emf.common.notify.*;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.change.ChangeDescription;
-import org.eclipse.emf.ecore.change.impl.EObjectToChangesMapEntryImpl;
-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.XMLResource;
-import org.eclipse.jdt.core.*;
-
-import org.eclipse.jem.internal.beaninfo.adapters.*;
-import org.eclipse.jem.internal.java.beaninfo.IIntrospectionAdapter;
-import org.eclipse.jem.java.JavaClass;
-import org.eclipse.jem.util.emf.workbench.ProjectResourceSet;
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin.CleanResourceChangeListener;
-
-/**
- * Controller of the BeanInfo cache. There is one per workspace (it is a static).
- *
- * The cache is stored on a per IPackageFragmentRoot basis. Each package fragment root will be:
- *
- *
- *
- * root{999}/classname.xmi
- *
- *
- *
- * "root{999}" will be a unigue name (root appended with a number}, one for each package fragment root. The "classname.xmi" will be the BeanInfo cache
- * for a class in the root. A root can't have more than one class with the same name, so there shouldn't be any collisions.
- *
- *
- * .index
- * root{999}/...
- *
- *
- *
- * The ".index" file will be stored/loaded through an ObjectStream. It will be a {@link BeanInfoCacheController.Index}. It is the index to all of the
- * root's in the directory.
- * getMainIndex()
and getProjectIndex(IProject)
accessors
- * so that synchronization and serialization is controlled.
- *
- * @since 1.1.0
- */
- protected static class Index implements Serializable {
-
- private static final long serialVersionUID = 1106864425567L;
-
- /*
- * Is this a dirty index, i.e. it has been changed and needs to be saved.
- */
- transient private boolean dirty;
-
- private static final int DEAD = -1; // Used in highRootNumber to indicate the index is dead.
- /**
- * The highest root number used. It is incremented everytime one is needed. It doesn't ever decrease to recover removed roots.
- *
- * @since 1.1.0
- */
- public int highRootNumber;
-
- /**
- * Map of root names to the root Index. The key is a {@link IPath}. The path will be relative to the workspace if a project root, or an
- * absolute local path to the archive if it is an external archive. It is the IPath to package fragment root (either a folder or a jar file).
- * null
then it will be relative to the BeanInfo plugin's state location. true
if archive for a root. false
if archive for a folder.
- *
- * @since 1.1.0
- */
- public abstract boolean isArchiveRoot();
- }
-
- /**
- * A root index that is for an archive, either internal or external. It contains the archive's modification stamp. Each class cache entry will
- * have this same modification stamp. If the archive is changed then all of the class cache entries will be removed because they are all possibly
- * stale. No way to know which may be stale and which not.
- *
- * @since 1.1.0
- */
- public static class ArchiveRootIndex extends RootIndex {
-
- private static final long serialVersionUID = 110686867444L;
-
- private long archiveModificationStamp;
-
- /*
- * For serializer to call.
- */
- protected ArchiveRootIndex() {
- }
-
- public ArchiveRootIndex(String rootName, long archiveModificationStamp, Index index) {
- super(rootName, index);
- this.archiveModificationStamp = archiveModificationStamp;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.beaninfo.core.BeanInfoCacheController.RootIndex#isArchiveRoot()
- */
- public boolean isArchiveRoot() {
- return true;
- }
-
- /*
- * Set the modification stamp. getClassEntry(JavaClass)
will never return a deleted entry. There is a method to get the modification stamp of the current cache
- * entry. This is the time stamp of the cooresponding class resource (or archive file) that the cache file was created from. If the value is
- * IResource.NULL_STAMP
, then the cache file is known to be stale. Otherwise if the value is less than a modification stamp of a
- * super class then the cache file is stale.
- *
- * @see ClassEntry#isDeleted()
- * @see ClassEntry#getModificationStamp()
- * @see BeanInfoCacheController#getClassEntry(JavaClass)
- * @since 1.1.0
- */
- public static class ClassEntry implements Serializable {
-
- private static final long serialVersionUID = 1106868674333L;
-
- public static final long DELETED_MODIFICATION_STAMP = Long.MIN_VALUE; // This flag won't be seen externally. It is used to indicate the entry
- // has been deleted for those that have been holding a CE.
-
- /**
- * Check against the super modification stamp and the interface stamps to see if they were set
- * by undefined super class or interface at cache creation time.
- *
- * @since 1.1.0
- */
- public static final long SUPER_UNDEFINED_MODIFICATION_STAMP = Long.MIN_VALUE+1;
-
- private long modificationStamp;
- private long superModificationStamp; // Stamp of superclass, if any, at time of cache creation.
- private String[] interfaceNames; // Interfaces names (null if no interfaces)
- private long[] interfaceModicationStamps; // Modification stamps of interfaces, if any. (null if no interfaces).
- private transient Resource pendingResource; // Resource is waiting to be saved, but the timestamps are for this pending resource so that we know what it will be ahead of time. At this point the class will be introspected.
-
- private RootIndex rootIndex; // The root index this class entry is in, so that any changes can mark the entry as dirty.
-
- private String className; // The classname for this entry.
-
- private boolean saveOperations; // Flag for saving operations. Once this is set, it will continue to save operations in the cache in addition to everything else.
-
- private long configurationModificationStamp; // Modification stamp of the Eclipse configuration. Used to determine if the cache of override files is out of date due to a config change.
- private boolean overrideCacheExists; // Flag that there is an override cache to load. This is orthogonal to the config mod stamp because it simply means that on the current configuration there is no override cache.
- private transient Resource pendingOverrideResource; // Override resource is waiting to be saved.
-
- protected ClassEntry() {
- }
-
- ClassEntry(RootIndex rootIndex, String className) {
- this.setRootIndex(rootIndex);
- this.className = className;
- modificationStamp = IResource.NULL_STAMP;
- rootIndex.classNameToClassEntry.put(className, this);
- }
-
- /**
- *
- * @return
- *
- * @since 1.1.0
- */
- public String getClassName() {
- return className;
- }
-
- /**
- * Return whether the entry has been deleted. This will never be seen in an entry that is still in an index. It is used for entries that have
- * been removed from the index. It is for classes (such as the BeanInfoClassAdapter) which are holding onto a copy of entry to let them know.
- * true
if the entry has been deleted, false
if still valid.
- *
- * @see ClassEntry#getModificationStamp()
- * @see ClassEntry#isStale()
- * @see ClassEntry#DELETED_MODIFICATION_STAMP
- * @since 1.1.0
- */
- public boolean isDeleted() {
- return getModificationStamp() == DELETED_MODIFICATION_STAMP;
- }
-
- /**
- * Mark the entry as deleted. It will also be removed from root index in that case.
- * null
if no interface names.
- * @return
- *
- * @since 1.1.0
- */
- public synchronized String[] getInterfaceNames() {
- return interfaceNames;
- }
-
- /**
- * Return the interface modification stamps or null
if no interfaces.
- * @return
- *
- * @since 1.1.0
- */
- public synchronized long[] getInterfaceModificationStamps() {
- return interfaceModicationStamps;
- }
-
- /*
- * Set the modification stamp. true
if operations are cached, false
if they are not cached.
- *
- * @since 1.1.0
- */
- public synchronized boolean isOperationsStored() {
- return saveOperations;
- }
-
- /*
- * Set the operations stored flag.
- * @param storeOperations
- *
- * @see BeanInfoCacheController.ClassEntry#isOperationsStored()
- * @since 1.1.0
- */
- void setOperationsStored(boolean storeOperations) {
- saveOperations = storeOperations;
- }
-
- /**
- * Get the configuration modification stamp of the last saved override cache.
- *
- * @return
- *
- * @since 1.1.0
- */
- public synchronized long getConfigurationModificationStamp() {
- return configurationModificationStamp;
- }
-
- /*
- * Set the configuration modification stamp.
- * null
if not pending.
- *
- * @return the pending resource or null
if not pending.
- *
- * @since 1.1.0
- */
- public synchronized Resource getPendingResource() {
- return pendingResource;
- }
-
- /*
- * Set the entry. The sequence get,do something,set must be grouped within a synchronized(ClassEntry).
- * null
if not pending.
- *
- * @return the pending override resource or null
if not pending.
- *
- * @since 1.1.0
- */
- public synchronized Resource getPendingOverrideResource() {
- return pendingOverrideResource;
- }
-
- /*
- * Set the entry. The sequence get,do something,set must be grouped within a synchronized(ClassEntry).
- * null
if no current entry.
- *
- * @param jclass
- * @return class entry or null
if no current entry.
- *
- * @since 1.1.0
- */
- public ClassEntry getClassEntry(JavaClass jclass) {
- IType type = (IType) jclass.getReflectionType();
- RootIndex rootIndex = getRootIndex(type);
- String className = jclass.getQualifiedNameForReflection();
- return getClassEntry(rootIndex, className, false);
- }
-
- /**
- * Enumeration for newCache: Signals that this cache is the Reflection Cache with no operations in it.
- * @since 1.1.0
- */
- public final static int REFLECTION_CACHE = 1;
- /**
- * Enumeration for newCache: Signals that this cache is the Reflection Cache with operations in it.
- * @since 1.1.0
- */
- public final static int REFLECTION_OPERATIONS_CACHE = 2;
- /**
- * Enumeration for newCache: Signals that this cache is the Overrides cache.
- * @since 1.1.0
- */
- public final static int OVERRIDES_CACHE = 3;
- /**
- * A new cache entry for the given class has been created. Need to write it out.
- *
- * @param jclass
- * the JavaClass the cache is for.
- * @param cache
- * the ChangeDescription to put out if cacheType is Reflection types, a List if override cache type.
- * @param cacheType
- * {@link BeanInfoCacheController.ClassEntry#REFLECTION_CACHE} for the enum values.
- * @return new class entry (or old one if same one). Should always replace one being held by this one. null
if cache could not be
- * updated for some reason.
- * @since 1.1.0
- */
- public ClassEntry newCache(JavaClass jclass, Object cache, int cacheType) {
- if (BeaninfoPlugin.getPlugin().getLogger().isLoggingLevel(Level.FINER)) {
- Logger logger = BeaninfoPlugin.getPlugin().getLogger();
- String type = cacheType!=OVERRIDES_CACHE?"Class":"Overrides"; //$NON-NLS-1$ //$NON-NLS-2$
- if (cacheType == OVERRIDES_CACHE && cache == null)
- type+=" empty"; //$NON-NLS-1$
- logger.log("Creating cache for class "+jclass.getQualifiedNameForReflection()+" cache type="+type, Level.FINER); //$NON-NLS-1$ //$NON-NLS-2$
- }
- ChangeDescription cd = null;
- if (cacheType != OVERRIDES_CACHE) {
- // First go through the cd and remove any empty changes. This is because we created the feature change before we knew what went into
- // it, and at times nothing goes into it.
- cd = (ChangeDescription) cache;
- for (Iterator iter = cd.getObjectChanges().iterator(); iter.hasNext();) {
- EObjectToChangesMapEntryImpl fcEntry = (EObjectToChangesMapEntryImpl) iter.next();
- if (((List) fcEntry.getValue()).isEmpty())
- iter.remove(); // Empty changes, remove it.
- }
- }
- IType type = (IType) jclass.getReflectionType();
- RootIndex rootIndex = getRootIndex(type);
- String className = jclass.getQualifiedNameForReflection();
- ClassEntry ce = getClassEntry(rootIndex, className, true); // Create it if not existing.
- // Sync on ce so that only can create a cache for a class at a time and so that writing (if occurring at the same time for the class) can be
- // held up.
- // this is a violation of the agreement to only sync on THIS, but it is necessary or else the write job would lock everything out while it is
- // writing. This way it only locks out one class, if the class is at the same time.
- // We shouldn't have deadlock because here we lock ce and then THIS (maybe). The write job will lock ce, and then lock THIS. Everywhere else
- // we must
- // also do lock ce then THIS. Mustn't do other way around or possibility of deadlock. Be careful that any synchronized methods in this class
- // do
- // not lock an existing ce.
- ResourceSet cacheRset = null;
- synchronized (ce) {
- Resource cres;
- if (cacheType != OVERRIDES_CACHE) {
- cres = ce.getPendingResource();
- if (cres != null) {
- // We have a pending, so clear and reuse the resource.
- cres.getContents().clear();
- } else {
- // Not currently writing or waiting to write, so create a new resource.
- cres = jclass.eResource().getResourceSet().createResource(
- URI.createFileURI(rootIndex.getCachePath().append(className + CLASS_CACHE_SUFFIX).toString()));
- }
- cacheRset = cres.getResourceSet();
- ce.setOperationsStored(cacheType == REFLECTION_OPERATIONS_CACHE);
- ce.setPendingResource(cres);
- cres.getContents().add(cd);
- // Archives use same mod as archive (retrieve from rootindex), while non-archive use the underlying resource's mod stamp.
- if (rootIndex.isArchiveRoot())
- ce.setModificationStamp(((ArchiveRootIndex) rootIndex).getArchiveModificationStamp());
- else {
- try {
- ce.setModificationStamp(type.getUnderlyingResource().getModificationStamp());
- } catch (JavaModelException e) {
- BeaninfoPlugin.getPlugin().getLogger().log(e);
- ce.markDeleted(); // Mark as deleted in case this was an existing that someone is holding.
- return null; // Couldn't do it, throw cache entry away. This actually should never occur.
- }
- }
- // Need to get the supers info.
- List supers = jclass.getESuperTypes();
- if (!supers.isEmpty()) {
- // We assume that they all have been introspected. This was done back in main introspection. If they are introspected they will have a class entry.
- BeaninfoClassAdapter bca = BeaninfoClassAdapter.getBeaninfoClassAdapter((EObject) supers.get(0));
- ClassEntry superCE = bca.getClassEntry();
- if (superCE != null)
- ce.setSuperModificationStamp(superCE.getModificationStamp());
- else
- ce.setSuperModificationStamp(ClassEntry.SUPER_UNDEFINED_MODIFICATION_STAMP); // No classentry means undefined. So put something in so that when it becomes defined we will know.
- if(supers.size() == 1) {
- ce.setInterfaceNames(null);
- ce.setInterfaceModificationStamps(null);
- } else {
- String[] interNames = new String[supers.size()-1];
- long[] interMods = new long[interNames.length];
- for (int i = 1, indx = 0; indx < interNames.length; i++, indx++) {
- JavaClass javaClass = (JavaClass) supers.get(i);
- bca = BeaninfoClassAdapter.getBeaninfoClassAdapter(javaClass);
- bca.introspectIfNecessary(); // Force introspection to get a valid super mod stamp.
- superCE = bca.getClassEntry();
- interNames[indx] = javaClass.getQualifiedNameForReflection();
- if (superCE != null)
- interMods[indx] = superCE.getModificationStamp();
- else
- interMods[indx] = ClassEntry.SUPER_UNDEFINED_MODIFICATION_STAMP; // No classentry means undefined. So put something in so that when it becomes defined we will know.
- }
- ce.setInterfaceNames(interNames);
- ce.setInterfaceModificationStamps(interMods);
- }
- } else {
- ce.setSuperModificationStamp(IResource.NULL_STAMP);
- ce.setInterfaceNames(null);
- ce.setInterfaceModificationStamps(null);
- }
- } else {
- // We are an override cache.
- if (cache != null) {
- cres = ce.getPendingOverrideResource();
- if (cres != null) {
- // We have a pending, so clear and reuse the resource.
- cres.getContents().clear();
- } else {
- // Not currently writing or waiting to write, so create a new resource.
- cres = jclass.eResource().getResourceSet().createResource(
- URI.createFileURI(rootIndex.getCachePath().append(className + OVERRIDE_CACHE_SUFFIX).toString()));
- }
- cacheRset = cres.getResourceSet();
- cres.getContents().addAll((List) cache);
- ce.setPendingOverrideResource(cres);
- ce.setOverrideCacheExists(true);
- } else {
- ce.setPendingOverrideResource(null);
- ce.setOverrideCacheExists(false);
- }
- ce.setConfigurationModificationStamp(Platform.getPlatformAdmin().getState(false).getTimeStamp());
- }
- }
- queueClassEntry(ce, cacheRset); // Now queue it up.
- return ce;
- }
-
- /**
- * Get the cache resource for the given java class.
- * true
if this the reflection/introspection cache or false
if this is the override cache.
- * @return the loaded cache resource, or null
if not there (for some reason) or an error trying to load it.
- *
- * @since 1.1.0
- */
- public Resource getCache(JavaClass jclass, ClassEntry ce, boolean reflectCache) {
- String className = jclass.getQualifiedNameForReflection();
- if (BeaninfoPlugin.getPlugin().getLogger().isLoggingLevel(Level.FINER)) {
- Logger logger = BeaninfoPlugin.getPlugin().getLogger();
- String type = reflectCache?"Class":"Overrides"; //$NON-NLS-1$ //$NON-NLS-2$
- logger.log("Loading cache for class "+className+" cache type="+type, Level.FINER); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- if (reflectCache) {
- boolean waitForJob = false;
- synchronized (ce) {
- if (ce.getPendingResource() != null) {
- // We have one pending. So wait until write cache job is done, and then load it in.
- // Note: Can't just copy the pending resource because it has references to JavaClasses
- // and these could be in a different project (since this could be a workspace wide class).
- // We would get the wrong java classes then when we apply it.
- waitForJob = true;
- if (BeaninfoPlugin.getPlugin().getLogger().isLoggingLevel(Level.FINER))
- BeaninfoPlugin.getPlugin().getLogger().log("Using pending class cache.", Level.FINER); //$NON-NLS-1$
- }
- }
- if (waitForJob)
- waitForCacheSaveJob();
-
- try {
- return jclass.eResource().getResourceSet().getResource(
- URI.createFileURI(ce.getRootIndex().getCachePath().append(
- className + CLASS_CACHE_SUFFIX).toString()), true);
- } catch (Exception e) {
- // Something happened and couldn't load it.
- // TODO - need to remove the Level.INFO arg when the beaninfo cache is working dynamically
- BeaninfoPlugin.getPlugin().getLogger().log(e, Level.INFO);
- return null;
- }
- } else {
- boolean waitForJob = false;
- synchronized (ce) {
- if (ce.getPendingOverrideResource() != null) {
- // We have one pending. So wait until write cache job is done, and then load it in.
- // Note: Can't just copy the pending resource because it has references to JavaClasses
- // and these could be in a different project (since this could be a workspace wide class).
- // We would get the wrong java classes then when we apply it.
- waitForJob = true;
- if (BeaninfoPlugin.getPlugin().getLogger().isLoggingLevel(Level.FINER))
- BeaninfoPlugin.getPlugin().getLogger().log("Using pending override cache.", Level.FINER); //$NON-NLS-1$
- }
- }
- if (waitForJob)
- waitForCacheSaveJob();
-
- try {
- return jclass.eResource().getResourceSet().getResource(
- URI.createFileURI(ce.getRootIndex().getCachePath().append(
- className + OVERRIDE_CACHE_SUFFIX).toString()), true);
- } catch (Exception e) {
- // Something happened and couldn't load it.
- // TODO - need to remove the Level.INFO arg when the beaninfo cache is working dynamically
- BeaninfoPlugin.getPlugin().getLogger().log(e, Level.INFO);
- return null;
- }
- }
- }
-
- private synchronized ClassEntry getClassEntry(RootIndex rootIndex, String className, boolean createEntry) {
- ClassEntry ce = (ClassEntry) rootIndex.classNameToClassEntry.get(className);
- if (createEntry && ce == null) {
- // Need to create one.
- ce = new ClassEntry(rootIndex, className);
- // Don't actually mark the rootIndex dirty until the cache for it is actually saved out.
- }
- return ce;
- }
-
- private static final String ROOT_PREFIX = "root"; //$NON-NLS-1$
-
- /*
- * Get the root index for the appropriate cache for the given java class.
- */
- private RootIndex getRootIndex(IType type) {
- IPackageFragmentRoot root = (IPackageFragmentRoot) type.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
- if (!root.isExternal()) {
- // So it is in a project. Get the project index.
- return getRootIndex(root, root.getJavaProject().getProject());
- } else {
- // It is an external jar (archive), so needs to come from main index, no project.
- return getRootIndex(root, null);
- }
- }
-
- /*
- * Get the root index for the given root. A Project index if project is not null.
- */
- private synchronized RootIndex getRootIndex(IPackageFragmentRoot root, IProject project) {
- Index index = project != null ? getProjectIndex(project) : getMainIndex();
- IPath rootPath = root.getPath();
- RootIndex rootIndex = (RootIndex) index.rootToRootIndex.get(rootPath);
- if (rootIndex == null) {
- // Need to do a new root path.
- String rootName = ROOT_PREFIX + (++index.highRootNumber);
- rootIndex = root.isArchive() ? createArchiveRootIndex(root, rootName, index) : new FolderRootIndex(rootName, index);
- index.rootToRootIndex.put(rootPath, rootIndex);
- // Don't set index dirty until we actually save a class cache file. Until then it only needs to be in memory.
- }
- rootIndex.setupIndex(project); // Set it up, or may already be set, so it will do nothing in that case.
- return rootIndex;
- }
-
- /*
- * Create an archive root with the given root number and root.
- */
- private RootIndex createArchiveRootIndex(IPackageFragmentRoot rootArchive, String rootName, Index index) {
- long modStamp = IResource.NULL_STAMP;
- if (rootArchive.isExternal()) {
- modStamp = rootArchive.getPath().toFile().lastModified();
- } else {
- try {
- modStamp = rootArchive.getUnderlyingResource().getModificationStamp();
- } catch (JavaModelException e) {
- BeaninfoPlugin.getPlugin().getLogger().log(e);
- }
- }
- return new ArchiveRootIndex(rootName, modStamp, index);
- }
-
- private static final String INDEXFILENAME = ".index"; //$NON-NLS-1$
-
- private static final String CACHEDIR = ".cache"; // Cache directory (so as not to conflict with any future BeanInfo Plugin specific data files. //$NON-NLS-1$
-
- /*
- * Get the cache directory for the project (or if project is null, the main plugin cache directory).
- */
- // TODO: make this one private
- public static IPath getCacheDir(IProject project) {
- if (project != null)
- return project.getWorkingLocation(BeaninfoPlugin.getPlugin().getBundle().getSymbolicName()).append(CACHEDIR);
- else
- return BeaninfoPlugin.getPlugin().getStateLocation().append(CACHEDIR);
- }
-
- /*
- * Get the project index. Synchronized so that we can create it if necessary and not get race conditions.
- */
- private synchronized Index getProjectIndex(IProject project) {
- try {
- Index index = (Index) project.getSessionProperty(PROJECT_INDEX_KEY);
- if (index == null) {
- // Read the index in.
- File indexDirFile = getCacheDir(project).append(INDEXFILENAME).toFile();
- if (indexDirFile.canRead()) {
- ObjectInputStream ois = null;
- try {
- ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(indexDirFile)));
- index = (Index) ois.readObject();
- } catch (InvalidClassException e) {
- // This is ok. It simply means the cache index is at a downlevel format and needs to be reconstructed.
- } catch (IOException e) {
- BeaninfoPlugin.getPlugin().getLogger().log(e);
- } catch (ClassNotFoundException e) {
- BeaninfoPlugin.getPlugin().getLogger().log(e);
- } finally {
- if (ois != null)
- try {
- ois.close();
- } catch (IOException e) {
- BeaninfoPlugin.getPlugin().getLogger().log(e);
- }
- }
- }
-
- if (index == null) {
- // Doesn't yet exist or it couldn't be read for some reason, or it was downlevel cache in which case we just throw it away and create
- // new).
- index = new Index();
- index.highRootNumber = 0;
- index.rootToRootIndex = new HashMap();
- }
-
- project.setSessionProperty(PROJECT_INDEX_KEY, index); // We either created a new one, or we were able to load it.
- }
- return index;
- } catch (CoreException e) {
- // Shouldn't occur,
- return null;
- }
- }
-
- /*
- * Get the main index. Synchronized so that we can create it if necessary and not get race conditions.
- */
- private synchronized Index getMainIndex() {
- if (MAIN_INDEX == null) {
- // Read the index in.
- File indexDirFile = getCacheDir(null).append(INDEXFILENAME).toFile();
- if (indexDirFile.canRead()) {
- ObjectInputStream ois = null;
- try {
- ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(indexDirFile)));
- MAIN_INDEX = (Index) ois.readObject();
- } catch (InvalidClassException e) {
- // This is ok. It just means that the cache index is at a downlevel format and needs to be reconstructed.
- } catch (IOException e) {
- BeaninfoPlugin.getPlugin().getLogger().log(e);
- } catch (ClassNotFoundException e) {
- BeaninfoPlugin.getPlugin().getLogger().log(e);
- } finally {
- if (ois != null)
- try {
- ois.close();
- } catch (IOException e) {
- BeaninfoPlugin.getPlugin().getLogger().log(e);
- }
- }
- }
-
- if (MAIN_INDEX == null) {
- // Doesn't yet exist or it couldn't be read for some reason, or it was downlevel cache in which case we just throw it away and create
- // new).
- MAIN_INDEX = new Index();
- MAIN_INDEX.highRootNumber = 0;
- MAIN_INDEX.rootToRootIndex = new HashMap();
- }
-
- }
- return MAIN_INDEX;
- }
-
- // -------------- Save Participant code -----------------
-
- protected class SaveParticipant implements ISaveParticipant {
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.core.resources.ISaveParticipant#doneSaving(org.eclipse.core.resources.ISaveContext)
- */
- public void doneSaving(ISaveContext context) {
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.core.resources.ISaveParticipant#prepareToSave(org.eclipse.core.resources.ISaveContext)
- */
- public void prepareToSave(ISaveContext context) throws CoreException {
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.core.resources.ISaveParticipant#rollback(org.eclipse.core.resources.ISaveContext)
- */
- public void rollback(ISaveContext context) {
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.core.resources.ISaveParticipant#saving(org.eclipse.core.resources.ISaveContext)
- */
- public void saving(ISaveContext context) throws CoreException {
- boolean fullsave = false;
- switch (context.getKind()) {
- case ISaveContext.PROJECT_SAVE:
- IProject project = context.getProject();
- synchronized (BeanInfoCacheController.INSTANCE) {
- // Write the index. The cache save job will eventually run and at that point write out the pending cache files too.
- // They don't need to be written before the project save is complete.
- Index projectIndex = (Index) project.getSessionProperty(PROJECT_INDEX_KEY);
- if (projectIndex != null && projectIndex.isDirty())
- if (reconcileIndexDirectory(project, projectIndex))
- writeIndex(project, projectIndex);
- else {
- // It was empty, just get rid of the index. The directories have already been cleared.
- projectIndex.markDead();
- project.setSessionProperty(PROJECT_INDEX_KEY, null);
- }
- }
- break;
- case ISaveContext.FULL_SAVE:
- fullsave = true;
- waitForCacheSaveJob();
- // Now flow into the snapshot save to complete the fullsave.
- case ISaveContext.SNAPSHOT:
- // For a snapshot, just the dirty indexes, no clean up. If fullsave, cleanup the indexes, but only save the dirty.
- synchronized (BeanInfoCacheController.INSTANCE) {
- if (MAIN_INDEX != null) {
- if (fullsave) {
- if (reconcileIndexDirectory(null, MAIN_INDEX)) {
- if (MAIN_INDEX.isDirty())
- writeIndex(null, MAIN_INDEX);
- } else {
- // It was empty, just get rid of the index. The directories have already been cleared.
- MAIN_INDEX.markDead();
- MAIN_INDEX = null;
- }
- } else if (MAIN_INDEX.isDirty())
- writeIndex(null, MAIN_INDEX);
- }
- // Now do the project indexes. We have to walk all open projects to see which have an index. Since we are
- // doing a major save, the hit will ok
- IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
- for (int i=0; iorg.eclipse
as a fragment and and org.eclipse.core
as
- * a packagePath will answer true, but if you swapped them it will answer false.
- *
- * @param fragment
- * @param packagePath
- * @return true
if the given fragment is a leading part of the package.
- *
- * @since 1.0.0
- */
- protected boolean isFragment(IPath fragment, IPath packagePath) {
- return fragment.isPrefixOf(packagePath);
- }
-
- /**
- * Return the unmatched portion of the package path from a fragment. Used by subclasses
- * to get the part of the package path that is after the fragment. This is then used to
- * append to the path from the override to get the full path to override files for this
- * package.
- * null
if couldn't be loaded or if it was already used once.
- *
- * @since 1.0.0
- */
- protected Resource loadOverrideResource(Bundle bundle, String relativePath, ResourceSet rset, BeaninfoPlugin.IContributorOverrideRunnable runnable) {
- URI uri = URI.createURI(JEMUtilPlugin.PLATFORM_PROTOCOL+":/"+JEMUtilPlugin.PLATFORM_PLUGIN+'/'+bundle.getSymbolicName()+'/'+relativePath); //$NON-NLS-1$
- if (runnable.resourceContributed(uri))
- return null; // Already contributed once.
- Resource result = null;
- try {
- result = rset.getResource(uri, true);
- } 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.
- result = null;
- Resource res = rset.getResource(uri, false);
- if (res != null)
- rset.getResources().remove(res);
- } 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$
- // In case it happened after creating resource but during load. Need to get rid of it in the finally.
- result = null;
- Resource res = rset.getResource(uri, false);
- if (res != null)
- rset.getResources().remove(res);
- };
- return result;
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.beaninfo.core.IBeanInfoContributor#getBeanInfoEntryContributions(org.eclipse.jem.internal.proxy.core.IConfigurationContributionInfo)
- */
- public BeaninfoEntry[] getBeanInfoEntryContributions(IConfigurationContributionInfo info) {
- return EMPTY_BEANINFO_ENTRIES;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.beaninfo.core.IBeanInfoContributor#runOverrides(org.eclipse.core.runtime.IPath, java.lang.String, org.eclipse.jem.java.JavaClass, org.eclipse.emf.ecore.resource.ResourceSet, org.eclipse.jem.internal.beaninfo.core.BeaninfoPlugin.IContributorOverrideRunnable)
- */
- public void runOverrides(IPath packagePath, String className, JavaClass javaClass, ResourceSet rset, IContributorOverrideRunnable runnable) {
- // Default is do nothing
- }
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfoCoreMessages.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfoCoreMessages.java
deleted file mode 100644
index 2dd5656a6..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfoCoreMessages.java
+++ /dev/null
@@ -1,28 +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.core;
-
-import org.eclipse.osgi.util.NLS;
-
-public final class BeaninfoCoreMessages extends NLS {
-
- private static final String BUNDLE_NAME = "org.eclipse.jem.internal.beaninfo.core.messages";//$NON-NLS-1$
-
- private BeaninfoCoreMessages() {
- // Do not instantiate
- }
-
- public static String BeanInfoCacheController_Job_WriteBeaninfoCache_Title;
-
- static {
- NLS.initializeMessages(BUNDLE_NAME, BeaninfoCoreMessages.class);
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfoEntry.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfoEntry.java
deleted file mode 100644
index 2a91c7d36..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfoEntry.java
+++ /dev/null
@@ -1,373 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.core;
-/*
- * $RCSfile: BeaninfoEntry.java,v $
- * $Revision: 1.8 $ $Date: 2006/05/17 20:13:00 $
- */
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.logging.Level;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jdt.core.*;
-import org.w3c.dom.*;
-
-import org.eclipse.jem.internal.beaninfo.adapters.*;
-
-/**
- * Beaninfo entry. Location of the beaninfos. Much like a standard classpath entry.
- * The BeanInfos are either in a jar or another project. They can be supplied as
- * a local file in the project, or as an external jar, or as external jar through a
- * variable, or an external jar through a plugin.
- * null
if no paths.
- *
- * @since 1.0.0
- */
- public Object[] getClasspath(IJavaProject javaProject) {
- if (entry != null) {
- // It is a standard CPE Entry.
- IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
- List paths = new ArrayList(1);
- IClasspathEntry resolvedEntry = JavaCore.getResolvedClasspathEntry(entry);
- resolveEntry(root, paths, resolvedEntry, javaProject);
- return paths.toArray();
- } else if (pluginPath != null)
- return new Object[] {pluginPath};
-
- return null;
-
- }
-
- private void resolveEntry(IWorkspaceRoot root, List paths, IClasspathEntry entry, IJavaProject javaProject) {
- switch (entry.getEntryKind()) {
- case IClasspathEntry.CPE_PROJECT :
- IProject reqProject = (IProject) root.findMember(entry.getPath().lastSegment());
- // Project entries only have one segment.
- if (reqProject != null && reqProject.isOpen())
- paths.add(reqProject);
- break;
-
- case IClasspathEntry.CPE_SOURCE :
- reqProject = (IProject) root.findMember(entry.getPath().segment(0));
- // Find project from the first segment.
- IJavaProject jProject = JavaCore.create(reqProject);
- if (jProject != null) {
- try {
- IPath outputLocation = jProject.getOutputLocation();
- IResource resource = root.findMember(outputLocation);
- if (resource != null) {
- paths.add(resource.getLocation().toString());
- }
- } catch(JavaModelException e) {
- }
- }
- break;
-
- case IClasspathEntry.CPE_LIBRARY :
- IResource library = root.findMember(entry.getPath());
- // can be external or in workspace
- paths.add((library != null) ? library.getLocation().toString() : entry.getPath().toString());
- break;
-
- case IClasspathEntry.CPE_CONTAINER:
- try {
- IClasspathContainer container = JavaCore.getClasspathContainer(entry.getPath(), javaProject);
- if (container != null) {
- IClasspathEntry[] entries = container.getClasspathEntries();
- for (int i = 0; i < entries.length; i++) {
- resolveEntry(root, paths, entries[i], javaProject);
- }
- }
- } catch (JavaModelException e) {
- BeaninfoPlugin.getPlugin().getLogger().log(e, Level.WARNING);
- }
- }
- }
-
- public int getKind() {
- return entry != null ? entry.getEntryKind() : BIE_PLUGIN;
- }
-
- public IPath getPath() {
- return entry != null ? entry.getPath() : pluginPath;
- }
-
- public boolean equals(Object other) {
- if (this == other)
- return true;
-
- if (!(other instanceof BeaninfoEntry))
- return false;
-
- // Return equal if the classpath entry is the same classpath entry or plugin path entry.
- // The search path doesn't have any affect on the semantic equality.
- BeaninfoEntry otherEntry = (BeaninfoEntry) other;
- if (isExported != otherEntry.isExported)
- return false;
- if (entry != null)
- return entry.equals(otherEntry.entry);
-
- return pluginPath.equals(otherEntry.pluginPath);
- }
-
- public int hashCode() {
- if (entry != null)
- return entry.hashCode() ^ (isExported ? Boolean.TRUE : Boolean.FALSE).hashCode();
- else
- return pluginPath.hashCode() ^ (isExported ? Boolean.TRUE : Boolean.FALSE).hashCode();
- }
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfoPlugin.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfoPlugin.java
deleted file mode 100644
index 0584d07cf..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfoPlugin.java
+++ /dev/null
@@ -1,752 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.core;
-/*
- * $RCSfile: BeaninfoPlugin.java,v $
- * $Revision: 1.22 $ $Date: 2006/05/17 20:13:00 $
- */
-
-
-import java.util.*;
-import java.util.Map.Entry;
-import java.util.logging.Level;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.*;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.JavaCore;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-
-import org.eclipse.jem.internal.beaninfo.adapters.BeaninfoNature;
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.core.ContainerPathContributionMapping.ContainerContributionEntry;
-import org.eclipse.jem.internal.proxy.core.IConfigurationContributionInfo.ContainerPaths;
-import org.eclipse.jem.java.JavaClass;
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jem.util.logger.proxyrender.EclipseLogger;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
-
-
-/**
- * The plugin class for the org.eclipse.jem.internal.proxy.core plugin.
- */
-
-public class BeaninfoPlugin extends Plugin {
- public static final String PI_BEANINFO_PLUGINID = "org.eclipse.jem.beaninfo"; // Plugin ID, used for QualifiedName. //$NON-NLS-1$
- public static final String PI_BEANINFO_OVERRIDES = "overrides"; // ID of the overrides extension point. //$NON-NLS-1$
-
- private static BeaninfoPlugin BEANINFO_PLUGIN = null;
-
- public BeaninfoPlugin() {
- BEANINFO_PLUGIN = this;
- }
-
- /**
- * Accessor method to get the singleton plugin.
- */
- public static BeaninfoPlugin getPlugin() {
- return BEANINFO_PLUGIN;
- }
-
- /**
- * Special Override file name used when need to apply an override to a class that is at the root.
- * A root is one that doesn't have a super type. These are java.lang.Object
, interfaces, and any
- * undefined classes (i.e. classes that don't actually exist).
- */
- public static final String ROOT = "..ROOT.."; //$NON-NLS-1$
-
-
- /**
- * Special override scheme to refer to the current java class. (As in "X:ROOT#//@root").
- * @since 1.2.0
- */
- public static final String ROOT_SCHEMA = "X"; //$NON-NLS-1$
-
- /**
- * Special override opaque part to refer to the current java class. (As in "X:ROOT#//@root").
- * @since 1.2.0
- */
- public static final String ROOT_OPAQUE = "ROOT"; //$NON-NLS-1$
-
- /**
- * The extension used on any override file when you pass in a path through the method that takes a string.
- */
- public static final String OVERRIDE_EXTENSION = "override"; //$NON-NLS-1$
-
-
- /*
- * Map of open natures. This map is needed because on shutdown of beaninfo plugin we need
- * to shutdown the natures. If we don't do that there is a slight possibility of an error
- * because proxy plugin will shutdown and this can cause a callback into beaninfo which has
- * already been shutdown. It calls back through the registry listener that BeaninfoNature
- * added to the registry to notify that the registry is being shutdown.
- *
- * Also BeanInfoCacheController needs to know so that it can tell it the project is closing or
- * being deleted or that it needs to be cleared due to a clear request.
- */
- private Map openNatures;
-
- private ContainerPathContributionMapping beaninfoEntryContributionsMapping;
- private ContainerPathContributionMapping contributorContributionsMapping;
- private Map pluginToBeaninfoEntryContributions;
- private Map pluginToContributors;
-
- /*
- * Override contributions from extension point.
- * ocFragments: Array of fragments paths. When a match is found for a path, the index
- * is the index into the ocContainerIds and ocPluginIds array for the contributions.
- * ocContainerIds: The first dimension is the index of the fragment that the list of OverrideContributions is for.
- * The second dimension is the array of contributions for that fragment, one per container id.
- * ocPluginIds: The first dimension is the index of the fragment that the list of OverrideContributions is for.
- * The second dimension is the array of contributions for that fragment, one per plugin id.
- *
- * If a particular fragment doesn't have any entries of container and/or plugin, then EMPTY_OC is used for that
- * entry so that we don't need to check for null.
- *
- * How this is used is for a particular path requested, the ocFragments will be searched for the fragments that
- * are appropriate, then the index of the entry is used to walk through the OC[] array returned from the ocContainerIds
- * or ocPluginIds. Each contribution would be checked to see if the container id/plugin id is in the visible classpath (through
- * the info data stored in the persistent property). If it is, then the overrides from that contribution will be used.
- */
- private IPath ocFragments[];
- private OverrideContribution[][] ocContainerIds;
- private OverrideContribution[][] ocPluginIds;
-
- private static final OverrideContribution[] EMPTY_OC = new OverrideContribution[0]; // Used for an empty contribution list for a fragment.
-
- public synchronized BeaninfoEntry[] getContainerIdBeanInfos(String containerID, String[] containerPaths) {
- if (beaninfoEntryContributionsMapping == null)
- processBeanInfoContributionExtensionPoint();
- return (BeaninfoEntry[]) beaninfoEntryContributionsMapping.getContributors(containerID, containerPaths);
- }
-
- public synchronized BeaninfoEntry[] getPluginBeanInfos(String pluginid) {
- if (pluginToBeaninfoEntryContributions == null)
- processBeanInfoContributionExtensionPoint();
- return (BeaninfoEntry[]) pluginToBeaninfoEntryContributions.get(pluginid);
- }
-
- public synchronized IConfigurationElement[] getPluginContributors(String pluginid) {
- if (pluginToContributors == null)
- processBeanInfoContributionExtensionPoint();
- return (IConfigurationElement[]) pluginToContributors.get(pluginid);
- }
-
- public synchronized IConfigurationElement[] getContainerIdContributors(String containerID, String[] containerPaths) {
- if (contributorContributionsMapping == null)
- processBeanInfoContributionExtensionPoint();
- return (IConfigurationElement[]) contributorContributionsMapping.getContributors(containerID, containerPaths);
- }
-
- public static final String PI_BEANINFO_CONTRIBUTION_EXTENSION_POINT = PI_BEANINFO_PLUGINID+".registrations"; //$NON-NLS-1$
- public static final String PI_REGISTRATION = "registration"; //$NON-NLS-1$
- public static final String PI_BEANINFO = "beaninfo"; //$NON-NLS-1$
- public static final String PI_OVERRIDE = "override"; //$NON-NLS-1$
- public static final String PI_CONTRIBUTOR = "contributor"; //$NON-NLS-1$
- public static final String PI_PACKAGE = "package"; //$NON-NLS-1$
- public static final String PI_PATH = "path"; //$NON-NLS-1$
-
- protected synchronized void processBeanInfoContributionExtensionPoint() {
- ContributorExtensionPointInfo info = ProxyPlugin.processContributionExtensionPoint(PI_BEANINFO_CONTRIBUTION_EXTENSION_POINT);
- ConfigurationElementReader reader = new ConfigurationElementReader();
- // Process the container IDs first. We can't use the info directly because the actual configuration elements of interest are
- // sub-elements of the info. The info contains the container path that we need.
- beaninfoEntryContributionsMapping = new ContainerPathContributionMapping(BeaninfoEntry.class);
- contributorContributionsMapping = new ContainerPathContributionMapping(IConfigurationElement.class);
-
- Map fragmentsToIds = new HashMap();
- for (Iterator iter = info.containerPathContributions.containerIdToContributions.entrySet().iterator(); iter.hasNext();) {
- Map.Entry entry= (Map.Entry) iter.next();
- String containerid = (String) entry.getKey();
- ContainerContributionEntry[] contribElements = (ContainerContributionEntry[]) entry.getValue();
- for (int i = 0; i < contribElements.length; i++) {
- ContainerContributionEntry contribElement = contribElements[i];
- IConfigurationElement element = (IConfigurationElement) contribElement.getContribution();
- if (PI_REGISTRATION.equals(element.getName())) {
- IConfigurationElement[] children = element.getChildren();
- for (int j = 0; j < children.length; j++) {
- IConfigurationElement child = children[j];
- if (PI_BEANINFO.equals(child.getName())) {
- // This is a beaninfo entry
- BeaninfoEntry be = BeaninfoEntry.readEntry(reader, child, null);
- if (be != null)
- beaninfoEntryContributionsMapping.addContribution(containerid, contribElement.getContainerPathPattern(), be);
- } else if (PI_OVERRIDE.equals(child.getName())) {
- addOverrideEntry(fragmentsToIds, true, containerid, contribElement.getContainerPathPattern(), child);
- }
- }
- } else if (PI_CONTRIBUTOR.equals(element.getName())) {
- contributorContributionsMapping.addContribution(containerid, contribElement.getContainerPathPattern(), element);
- }
- }
- }
-
- beaninfoEntryContributionsMapping.finalizeMapping();
- contributorContributionsMapping.finalizeMapping();
-
- // Now process the plugin IDs.
- pluginToBeaninfoEntryContributions = new HashMap(info.pluginToContributions.size());
- for (Iterator iter = info.pluginToContributions.entrySet().iterator(); iter.hasNext();) {
- Map.Entry entry= (Map.Entry) iter.next();
- String pluginId = (String) entry.getKey();
- IConfigurationElement[] configElements = (IConfigurationElement[]) entry.getValue();
- for (int i = 0; i < configElements.length; i++) {
- IConfigurationElement element = configElements[i];
- if (PI_REGISTRATION.equals(element.getName())) {
- IConfigurationElement[] children = element.getChildren();
- for (int j = 0; j < children.length; j++) {
- IConfigurationElement child = children[j];
- if (PI_BEANINFO.equals(child.getName())) {
- // This is a beaninfo entry
- BeaninfoEntry be = BeaninfoEntry.readEntry(reader, child, null);
- if (be != null)
- addEntry(pluginToBeaninfoEntryContributions, pluginId, be);
- } else if (PI_OVERRIDE.equals(child.getName())) {
- addOverrideEntry(fragmentsToIds, false, pluginId, null, child);
- }
- }
- } else if (PI_CONTRIBUTOR.equals(element.getName())) {
- if (pluginToContributors == null)
- pluginToContributors = new HashMap(5); // These are rare, don't create until necessary.
- addEntry(pluginToContributors, pluginId, element);
- }
- }
- }
-
- // Now go through and turn all of the contribution lists into arrays.
- for (Iterator iter = pluginToBeaninfoEntryContributions.entrySet().iterator(); iter.hasNext();) {
- Map.Entry entry = (Map.Entry) iter.next();
- entry.setValue(((List) entry.getValue()).toArray(new BeaninfoEntry[((List) entry.getValue()).size()]));
- }
-
- if (pluginToContributors == null)
- pluginToContributors = Collections.EMPTY_MAP; // Since we don't have any.
- else {
- for (Iterator iter = pluginToContributors.entrySet().iterator(); iter.hasNext();) {
- Map.Entry entry = (Map.Entry) iter.next();
- entry.setValue(((List) entry.getValue()).toArray(new IConfigurationElement[((List) entry.getValue()).size()]));
- }
- }
-
- // Now handle the entire list of fragments.
- ocFragments = new IPath[fragmentsToIds.size()];
- ocContainerIds = new OverrideContribution[ocFragments.length][];
- ocPluginIds = new OverrideContribution[ocFragments.length][];
- Iterator iter;
- int fragIndex;
- for (iter = fragmentsToIds.entrySet().iterator(), fragIndex=0; iter.hasNext(); fragIndex++) {
- Map.Entry mapEntry = (Map.Entry) iter.next();
- ocFragments[fragIndex] = (IPath) mapEntry.getKey();
- Map[] mapValue = (Map[]) mapEntry.getValue();
- if (mapValue[0] == null)
- ocContainerIds[fragIndex] = EMPTY_OC;
- else {
- Map containers = mapValue[0];
- List ocContributions = new ArrayList();
- for (Iterator ocIterator = containers.entrySet().iterator(); ocIterator.hasNext();) {
- Map.Entry containerEntry = (Map.Entry) ocIterator.next();
- String containerID = (String) containerEntry.getKey();
- for (Iterator patternIterator = ((Map) containerEntry.getValue()).entrySet().iterator(); patternIterator.hasNext();) {
- Map.Entry patternEntry = (Entry) patternIterator.next();
- OverrideContribution oc = new OverrideContribution();
- oc.id = containerID;
- oc.pattern = (Pattern) patternEntry.getKey();
- List[] ocLists = (List[]) patternEntry.getValue();
- oc.pluginIds = (String[]) ocLists[0].toArray(new String[ocLists[0].size()]);
- oc.paths = (String[]) ocLists[1].toArray(new String[ocLists[1].size()]);
- ocContributions.add(oc);
- }
- }
- ocContainerIds[fragIndex] = (OverrideContribution[]) ocContributions.toArray(new OverrideContribution[ocContributions.size()]);
- }
- if (mapValue[1] == null)
- ocPluginIds[fragIndex] = EMPTY_OC;
- else {
- Map plugins = mapValue[1];
- OverrideContribution[] ocContribution = ocPluginIds[fragIndex] = new OverrideContribution[plugins.size()];
- int ocIndex;
- Iterator ocIterator;
- for (ocIterator = plugins.entrySet().iterator(), ocIndex=0; ocIterator.hasNext(); ocIndex++) {
- Map.Entry pluginEntry = (Map.Entry) ocIterator.next();
- OverrideContribution oc = ocContribution[ocIndex] = new OverrideContribution();
- oc.id = (String) pluginEntry.getKey();
- List[] ocLists = (List[]) pluginEntry.getValue();
- oc.pluginIds = (String[]) ocLists[0].toArray(new String[ocLists[0].size()]);
- oc.paths = (String[]) ocLists[1].toArray(new String[ocLists[1].size()]);
- }
- }
- }
- }
-
- /*
- * Add an entry to the map. If the key doesn't exist, create an entry as an array. Then add the entry to array.
- */
- private void addEntry(Map map, Object key, Object entry) {
- List mapEntry = (List) map.get(key);
- if (mapEntry == null) {
- mapEntry = new ArrayList(1);
- map.put(key, mapEntry);
- }
- mapEntry.add(entry);
- }
-
- /*
- * Add an entry to the map.
- * id is the container path pattern/plugin id.
- *
- * The structure of the map is:
- * key: fragment name
- * value: Map[2], where [0] is for container id, and [1] is for plugin ids.
- * Map[x]:
- * key: container/plugin id
- * value: Map(pattern->List(FinalOverride)) for container, of FinalOverride for plugin.
- *
- * FinalOverride: List[2], where [0] is list of plugin ids for the override, and [1] is list of paths for the override files relative to that plugin id.
- *
- * After all done these maps/list will be boiled down to the arrays that will be used for lookup.
- */
- private void addOverrideEntry(Map map, boolean container, Object id, Pattern pattern, IConfigurationElement entry) {
-
- String packageName = entry.getAttributeAsIs(PI_PACKAGE);
- String plugin = null;
- String pathString = entry.getAttributeAsIs(PI_PATH);
- IPath fragment = null;
- if (packageName != null && packageName.length() > 0 && pathString != null && pathString.length() > 0) {
- fragment = new Path(packageName.replace('.', '/'));
- if (pathString.charAt(pathString.length()-1) != '/')
- pathString += '/';
- if (pathString.charAt(0) != '/')
- plugin = entry.getDeclaringExtension().getContributor().getName();
- else {
- if (pathString.length() > 4) {
- int pend = pathString.indexOf('/', 1);
- if (pend == -1 || pend >= pathString.length()-1)
- return; // invalid
- plugin = pathString.substring(1, pend);
- pathString = pathString.substring(pend+1);
- } else
- return; // invalid
- }
- }
- if (pathString.length() < 2)
- return; // invalid
-
- Map[] mapEntry = (Map[]) map.get(fragment);
- if (mapEntry == null) {
- mapEntry = new HashMap[2];
- map.put(fragment, mapEntry);
- }
- List[] idEntry;
- if (container) {
- if (mapEntry[0] == null)
- mapEntry[0] = new HashMap(2);
-
- Map patternMap = (Map) mapEntry[0].get(id);
- if (patternMap == null)
- mapEntry[0].put(id, patternMap = new HashMap());
-
- idEntry = (List[]) patternMap.get(pattern);
- if (idEntry == null) {
- patternMap.put(pattern, idEntry = new List[] { new ArrayList(1), new ArrayList(1)});
- }
- } else {
- if (mapEntry[1] == null)
- mapEntry[1] = new HashMap(2);
-
- idEntry = (List[]) mapEntry[1].get(id);
- if (idEntry == null) {
- mapEntry[1].put(id, idEntry = new List[] { new ArrayList(1), new ArrayList(1)});
- }
- }
- idEntry[0].add(plugin);
- idEntry[1].add(pathString);
-
-
- }
-
- /*
- * This is an list of overrides that are available as a contribution for a specific fragment.
- *
- *
- * IContributorOverrideRunnable
which
- * inherits from this interface.
- * IOverrideRunnable
, so see that for more methods to call.
- * true
if used already.
- *
- * @see IOverrideRunnable#run(String)
- * @since 1.0.0
- */
- public boolean pathContributed(String path);
-
- /**
- * Tests if the URI has already been contributed once for the current class.
- * true
if used already.
- *
- * @see IOverrideRunnable#run(Resource)
- * @since 1.0.0
- */
- public boolean resourceContributed(URI resourceURI);
- }
-
- private static final String[] NO_PATHS = new String[0];
-
- /**
- * Return just the contributed override paths (through the BeanInfo registrations). Does not include any paths that are contributed from
- * IBeanInfoContributor's. This is used by the BeanInfoClassAdapter to load the overrides files into one cache file so that it can
- * be done at one time the next time it is needed.
- *
- * @param project
- * @param packageName
- * @return array of path strings to the override. The files may not exist, they is just possible overrides.
- *
- * @since 1.1.0
- */
- public String[] getOverridePaths(IProject project, String packageName) {
- final IPath packagePath = new Path(packageName.replace('.', '/')+'/');
- List overridePaths = new ArrayList();
- try {
- IConfigurationContributionInfo info = (IConfigurationContributionInfo) project.getSessionProperty(BeaninfoNature.CONFIG_INFO_SESSION_KEY);
- if (info == null) {
- // It hasn't been created yet, so we need to create our own internal version here.
- info = ProxyLaunchSupport.createDefaultConfigurationContributionInfo(JavaCore.create(project));
- BeaninfoNature.computeBeanInfoConfigInfo(info);
- }
- synchronized (this) {
- if (ocFragments == null)
- processBeanInfoContributionExtensionPoint(); // We haven't processed them yet.
- }
-
- // Cache of tested patterns. (Pattern->Boolean). If a pattern has been tested against all visible container paths we don't need to test the
- // pattern again if it is found again. (Note: This works for efficiency because ProxyPlugin uses the same pattern instance for
- // same pattern found while processing one extension point). The value is true if the pattern matches a visible container path.
- Map testedPatterns = new HashMap();
- for (int fragmentIndex = 0; fragmentIndex < ocFragments.length; fragmentIndex++) {
- if (ocFragments[fragmentIndex].isPrefixOf(packagePath)) {
- String leftOver = null; // The left over portion of the package. This will be set first time needed.
- OverrideContribution[] cntrContributions = ocContainerIds[fragmentIndex];
- for (int ocindex = 0; ocindex < cntrContributions.length; ocindex++) {
- OverrideContribution contribution = cntrContributions[ocindex];
- Boolean tested = (Boolean) testedPatterns.get(contribution.pattern);
- if (tested == null) {
- tested = Boolean.FALSE;
- ContainerPaths containerPaths = (ContainerPaths) info.getContainerIds().get(contribution.id);
- if (containerPaths != null) {
- String[] visible = containerPaths.getVisibleContainerPaths();
- for (int i = 0; i < visible.length; i++) {
- if (contribution.pattern.matcher(visible[i]).matches()) {
- tested = Boolean.TRUE;
- break;
- }
- }
- }
- testedPatterns.put(contribution.pattern, tested);
- }
-
- if (tested.booleanValue()) {
- for (int cindex = 0; cindex < contribution.pluginIds.length; cindex++) {
- // Because of URIConverters and normalization in org.eclipse.jem.util stuff, we
- // need to have plugin uri's in the form "platform:/plugin/pluginname".
- // Bundle's don't return this format. They return bundle:/stuff
- // So we will simple create it of the platform:/plugin format.
- // To save time, we will first see if we have the bundle.
- Bundle bundle = Platform.getBundle(contribution.pluginIds[cindex]);
- if (bundle != null) {
- if (leftOver == null)
- leftOver = getLeftOver(ocFragments[fragmentIndex], packagePath);
- overridePaths.add(JEMUtilPlugin.PLATFORM_PROTOCOL+":/"+JEMUtilPlugin.PLATFORM_PLUGIN+'/'+bundle.getSymbolicName()+'/'+contribution.paths[cindex]+leftOver); //$NON-NLS-1$
- }
- }
- }
- }
-
- OverrideContribution[] pluginContributions = ocPluginIds[fragmentIndex];
- for (int ocindex = 0; ocindex < pluginContributions.length; ocindex++) {
- OverrideContribution contribution = pluginContributions[ocindex];
- Boolean visible = (Boolean) info.getPluginIds().get(contribution.id);
- if (visible != null && visible.booleanValue()) {
- for (int cindex = 0; cindex < contribution.pluginIds.length; cindex++) {
- Bundle bundle = Platform.getBundle(contribution.pluginIds[cindex]);
- if (bundle != null) {
- if (leftOver == null)
- leftOver = getLeftOver(ocFragments[fragmentIndex], packagePath);
- overridePaths.add(JEMUtilPlugin.PLATFORM_PROTOCOL+":/"+JEMUtilPlugin.PLATFORM_PLUGIN+'/'+bundle.getSymbolicName()+'/'+contribution.paths[cindex]+leftOver); //$NON-NLS-1$
- }
- }
- }
- }
- }
- }
- } catch (CoreException e) {
- getLogger().log(e, Level.INFO);
- }
- return overridePaths.isEmpty() ? NO_PATHS : (String[]) overridePaths.toArray(new String[overridePaths.size()]);
- }
-
- /**
- * Apply the runnable to all of the override paths that are applicable to the
- * given package name. It will run through the explicit contributors and the IContainers that implement IBeanInfoContributor.
- * java.lang
" as a package name.
- * null
if not registered.
- *
- * @since 1.1.0
- */
- BeaninfoNature getNature(IProject project) {
- return (BeaninfoNature) openNatures.get(project);
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
- */
- public void stop(BundleContext context) throws Exception {
- if (openNatures != null && !openNatures.isEmpty()) {
- for (Iterator natureItr = openNatures.values().iterator(); natureItr.hasNext();) {
- BeaninfoNature nature = (BeaninfoNature) natureItr.next();
- nature.shutdown();
- }
- }
-
- super.stop(context);
- }
-}
-
-
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfoRegistration.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfoRegistration.java
deleted file mode 100644
index ca350c98e..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfoRegistration.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.core;
-/*
- * $RCSfile: BeaninfoRegistration.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:31:29 $
- */
-
-import org.eclipse.core.runtime.IConfigurationElement;
-
-/**
- * This is the registration information for registered beaninfos in the BeaninfoPlugin.
- * @version 1.0
- * @author
- */
-public class BeaninfoRegistration {
-
- protected BeaninfosDoc doc;
- protected IConfigurationElement variableElement; // This is used to get contributor element. If null, then no contributor.
-
- public BeaninfoRegistration() {
- }
-
- /**
- * Construct with a BeaninfosDoc
- */
- public BeaninfoRegistration(BeaninfosDoc doc) {
- this.doc = doc;
- }
-
- /**
- * Construct with a BeaninfosDoc and variable element.
- */
- public BeaninfoRegistration(BeaninfosDoc doc, IConfigurationElement variableElement) {
- this.doc = doc;
- this.variableElement = variableElement;
- }
-
- /**
- * Gets the doc.
- * @return Returns a BeaninfosDoc
- */
- public BeaninfosDoc getDoc() {
- return doc;
- }
-
- /**
- * Sets the doc.
- * @param doc The doc to set
- */
- public void setDoc(BeaninfosDoc doc) {
- this.doc = doc;
- }
-
- /**
- * Gets the variableElement.
- * @return Returns a IConfigurationElement
- */
- public IConfigurationElement getVariableElement() {
- return variableElement;
- }
-
- /**
- * Sets the variableElement.
- * @param variableElement The variableElement to set
- */
- public void setVariableElement(IConfigurationElement variableElement) {
- this.variableElement = variableElement;
- }
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfosDoc.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfosDoc.java
deleted file mode 100644
index ad2299a95..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/BeaninfosDoc.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.core;
-/*
- * $RCSfile: BeaninfosDoc.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:31:29 $
- */
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.w3c.dom.*;
-
-import org.eclipse.jem.internal.beaninfo.adapters.*;
-/**
- * Beaninfos document in-memory format.
- */
-
-public class BeaninfosDoc implements IBeaninfosDocEntry {
-
- protected IBeaninfosDocEntry[] searchpath;
-
- static final String sExported = "exported"; //$NON-NLS-1$
-
- static final String sKind = "kind"; //$NON-NLS-1$
-
- static final String sPath = "path"; //$NON-NLS-1$
-
- public BeaninfosDoc() {
- }
-
- public BeaninfosDoc(IBeaninfosDocEntry[] searchpath) {
- this.searchpath = searchpath;
- }
-
- public int getKind() {
- return -1; // N.A.
- }
-
- public IPath getPath() {
- return null; // N.A.
- }
-
- public static BeaninfosDoc readEntry(IReader reader, Object root, IProject project) {
- ArrayList paths = new ArrayList();
- Object children = reader.getChildren(root);
- int childrenLength = reader.getLength(children);
- for (int i = 0; i < childrenLength; i++) {
- Object child = reader.getItem(children, i);
- if (reader.isNodeTypeElement(child)) {
- Object entry = null;
- if (reader.getNodeName(child).equalsIgnoreCase(BeaninfoEntry.sBeaninfo)) {
- entry = BeaninfoEntry.readEntry(reader, child, project);
- } else if (reader.getNodeName(child).equalsIgnoreCase(SearchpathEntry.sSearchpath)) {
- entry = SearchpathEntry.readEntry(reader, child, project, false);
- }
- if (entry != null)
- paths.add(entry);
- }
- }
- return new BeaninfosDoc((IBeaninfosDocEntry[]) paths.toArray(new IBeaninfosDocEntry[paths.size()]));
- }
-
- public IBeaninfosDocEntry[] getSearchpath() {
- return searchpath;
- }
-
- public void setSearchpath(IBeaninfosDocEntry[] searchpath) {
- this.searchpath = searchpath;
- }
-
- public Node writeEntry(Document doc, IProject project) {
- Element root = doc.createElement(SearchpathEntry.sSearchpath); // Create Root Element
- for (int i = 0; i < searchpath.length; i++) {
- root.appendChild(searchpath[i].writeEntry(doc, project)); // Add to the document
- }
- return root;
- }
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/ConfigurationElementReader.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/ConfigurationElementReader.java
deleted file mode 100644
index 71d0bdb0e..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/ConfigurationElementReader.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.core;
-/*
- * $RCSfile: ConfigurationElementReader.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:31:29 $
- */
-
-import java.lang.reflect.Array;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-
-import org.eclipse.jem.internal.beaninfo.adapters.*;
-
-
-/**
- * For reading from IConfigurationElements
- * @version 1.0
- * @author
- */
-class ConfigurationElementReader implements IReader {
-
- /*
- * @see IReader#getChildren(Object)
- */
- public Object getChildren(Object node) {
- return (node instanceof IConfigurationElement) ? ((IConfigurationElement) node).getChildren() : new IConfigurationElement[0];
- }
-
- /*
- * @see IReader#getLength(Object)
- */
- public int getLength(Object nodeList) {
- return (nodeList instanceof IConfigurationElement[]) ? Array.getLength(nodeList) : 0;
- }
-
- /*
- * @see IReader#getItem(Object, int)
- */
- public Object getItem(Object nodeList, int index) {
- return (nodeList instanceof IConfigurationElement[]) ? Array.get(nodeList, index) : null;
- }
-
- /*
- * @see IReader#isNodeTypeElement(Object)
- */
- public boolean isNodeTypeElement(Object node) {
- return node instanceof IConfigurationElement;
- }
-
- /*
- * @see IReader#getNodeName(Object)
- */
- public String getNodeName(Object node) {
- return (node instanceof IConfigurationElement) ? ((IConfigurationElement) node).getName() : ""; //$NON-NLS-1$
- }
-
- /*
- * @see IReader#getAttribute(Object, String)
- */
- public String getAttribute(Object element, String attributeName) {
- return (element instanceof IConfigurationElement) ? ((IConfigurationElement) element).getAttributeAsIs(attributeName) : null;
- }
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/IBeanInfoContributor.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/IBeanInfoContributor.java
deleted file mode 100644
index f1f9966da..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/IBeanInfoContributor.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: IBeanInfoContributor.java,v $
- * $Revision: 1.6 $ $Date: 2005/08/24 20:31:28 $
- */
-package org.eclipse.jem.internal.beaninfo.core;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-import org.eclipse.jem.internal.proxy.core.IConfigurationContributionInfo;
-import org.eclipse.jem.java.JavaClass;
-
-/**
- * Interface for BeanInfo contributors. Supplied either as additional interface on a IClasspathContainer, or as
- * an explicit contributor for BeanInfos from the manifest files.
- * BeanInfoContributorAdapter
) that can be subclassed. The
- * default doesn't do anything on its own. But it does have a very useful utility method for loading resources.
- *
- * @see org.eclipse.jem.internal.beaninfo.core.BeanInfoContributorAdapter
- * @since 1.0.0
- */
-public interface IBeanInfoContributor {
-
- /**
- * Return the BeanInfoEntry contributions that are needed.
- * null
if none to contribute.
- *
- * @since 1.0.0
- */
- public BeaninfoEntry[] getBeanInfoEntryContributions(IConfigurationContributionInfo info);
-
- /**
- * For the given package path run the override contributions through the runnable.
- * runnable
) for each override file that is to be applied to the incoming class.
- * You can either call the run method that passes in a string pointing to a directory where your override file is
- * located (i.e. overrideFileName.override
where "overrideFileName" is the name passed. Or you can call the run method that
- * takes a Resource that is already loaded (and maybe modified or created locally).
- *
- * @param packagePath
- * @param overrideFileName the overrideFileName that the overrides is for. This can be used in very special cases to provide
- * exact override files instead of letting the path be searched. An example would be for providing a file that isn't the same name as the class.
- * A very special case is ROOT
. This is used when asking to apply root overrides to classes that have no
- * super type.
- * @param javaClass the java class that the overrides will be applied to. Note: Do not call any property, features, events, or operations calls
- * or any property, events, or operations Utilities against this class. That is because this class is being introspected at this time
- * and those calls will return invalid values if called at this point since introspection is not yet complete.
- * @param resource set that contributors can use to temporarily load dynamic override files.
- * @param runnable the runnable that you call to actually apply the override files.
- *
- * @see BeaninfoPlugin#ROOT
- * @see BeaninfoPlugin#OVERRIDE_EXTENSION
- * @since 1.0.0
- */
- public void runOverrides(IPath packagePath, String overrideFileName, JavaClass javaClass, ResourceSet rset, BeaninfoPlugin.IContributorOverrideRunnable runnable);
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/IBeaninfoSupplier.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/IBeaninfoSupplier.java
deleted file mode 100644
index 0bd69e76c..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/IBeaninfoSupplier.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.core;
-/*
- * $RCSfile: IBeaninfoSupplier.java,v $
- * $Revision: 1.5 $ $Date: 2005/09/13 20:30:46 $
- */
-
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-import org.eclipse.jem.internal.proxy.core.ProxyFactoryRegistry;
-import org.eclipse.jem.util.emf.workbench.ProjectResourceSet;
-/**
- * Interface to supply information for beaninfo to decouple
- * the introspection from the desktop.
- */
-
-public interface IBeaninfoSupplier {
-
- /**
- * @return Return the registry to use. Initialize it if not already initialized.
- */
- public ProxyFactoryRegistry getRegistry();
-
- /**
- * Used to know if we currently have a registry created in the supplier.
- *
- * @return true if there is a registry currently in the supplier.
- */
- public boolean isRegistryCreated();
-
- /**
- * Close the registry. This tells the registry to close. This is necessary
- * at times because of changes to classes require the registry to be
- * reconstructed.
- */
- public void closeRegistry();
-
- /**
- * Return the project that this supplier is for.
- * @return
- *
- * @since 1.0.0
- */
- public IProject getProject();
-
- /**
- * Create a new resource set based upon the current project. This resource set is hooked into the
- * project's resource set so that any searches for java classes.
- *
- * @return a new resource set that is hooked into the project's java resource set.
- *
- * @since 1.2.0
- */
- public ProjectResourceSet getNewResourceSet();
-
- /**
- * The project resource set for this supplier.
- * @return
- *
- * @since 1.2.0
- */
- public ResourceSet getProjectResourceSet();
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/IBeaninfosDocEntry.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/IBeaninfosDocEntry.java
deleted file mode 100644
index f81dadee5..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/IBeaninfosDocEntry.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.core;
-/*
- * $RCSfile: IBeaninfosDocEntry.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:31:28 $
- */
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * Interface for DOM Doc writable entries.
- *
- * @version 1.0
- * @author
- */
-public interface IBeaninfosDocEntry {
- public Node writeEntry(Document doc, IProject project);
-
- public int getKind();
- public IPath getPath();
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/Init.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/Init.java
deleted file mode 100644
index 4ac93b596..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/Init.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.core;
-/*
- * $RCSfile: Init.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:31:28 $
- */
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-import org.eclipse.jem.internal.beaninfo.adapters.BeaninfoAdapterFactory;
-import org.eclipse.jem.internal.java.beaninfo.IIntrospectionAdapter;
-import org.eclipse.jem.internal.proxy.core.ProxyFactoryRegistry;
-
-/**
- * Static initializer class to initialize the beaninfo stuff.
- * It is disconnected from the desktop and so doesn't require it.
- */
-
-public class Init {
-
- // So it can't be instantiated.
- private Init() {
- };
-
- /**
- * Initialize the context with an IBeaninfoSupplier, used to set up the
- * introspection process.
- *
- * The beaninfo supplier is responsible for setting up the bean info search path,
- * including removing the sun beaninfos, if desired.
- */
- public static void initialize(ResourceSet rset, final IBeaninfoSupplier supplier) {
- rset.getAdapterFactories().add(new BeaninfoAdapterFactory(supplier));
- }
-
- /**
- * Initialize the registry now that it is available.
- */
- public static void initialize(ProxyFactoryRegistry registry) {
- // Remove the "sun.beans.info" from the beaninfo search path because
- // we completely override the sun bean infos.
- Utilities.removeBeanInfoPath(registry, "sun.beans.infos"); //$NON-NLS-1$
- }
-
- /**
- * Cleanup from the context because we are being removed.
- * If clearResults is true, then the factory should clear the results of introspection
- * from the everything because the context will still be around.
- */
- public static void cleanup(ResourceSet rset, boolean clearResults) {
- BeaninfoAdapterFactory factory =
- (BeaninfoAdapterFactory) EcoreUtil.getAdapterFactory(rset.getAdapterFactories(), IIntrospectionAdapter.ADAPTER_KEY);
- rset.getAdapterFactories().remove(factory);
- if (factory != null)
- factory.closeAll(clearResults);
- }
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/SearchpathEntry.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/SearchpathEntry.java
deleted file mode 100644
index ff80e01a8..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/SearchpathEntry.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.core;
-/*
- * $RCSfile: SearchpathEntry.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:31:29 $
- */
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.w3c.dom.*;
-
-import org.eclipse.jem.internal.beaninfo.adapters.*;
-
-/**
- * Searchpath entry. Beaninfo searchpath entry (i.e. package name). Can include
- * kind/path/exported if not a child of the BeaninfoEntry.
- *
- * Note: if not a child of a BeanInfoEntry, then the path refers to a package
- * in the classpath, so container is supported here.
- *
- * @version 1.0
- * @author
- */
-public class SearchpathEntry implements IBeaninfosDocEntry {
-
- final static String sSearchpath = "searchpath"; // Searchpath entry, shared with BeaninfosDoc. //$NON-NLS-1$
- final static String sPackage = "package"; // Package name. //$NON-NLS-1$
-
- /**
- * Read the entry in from the element.
- */
- public static SearchpathEntry readEntry(IReader reader, Object element, IProject project, boolean beaninfoChild) {
- String packageName = reader.getAttribute(element, sPackage);
- if (beaninfoChild)
- return new SearchpathEntry(packageName); // Kind/path aren't valid on beaninfo children.
-
- String elementKind = reader.getAttribute(element, BeaninfosDoc.sKind);
- String pathStr = reader.getAttribute(element, BeaninfosDoc.sPath);
- int kind = BeaninfoEntry.kindFromString(elementKind);
- IPath path = null;
- if (pathStr != null) {
- // ensure path is absolute
- path = new Path(pathStr);
- if (kind != IClasspathEntry.CPE_VARIABLE && kind != IClasspathEntry.CPE_CONTAINER && !path.isAbsolute()) {
- path = project != null ? project.getFullPath().append(path) : path.makeAbsolute(); // Some folder/jar within this project
- }
- }
-
- // create the appropriate entry
- boolean valid = true;
- switch (kind) {
-
- case IClasspathEntry.CPE_LIBRARY :
- valid = path != null && path.isAbsolute();
- break;
-
- case IClasspathEntry.CPE_SOURCE :
- if (path == null)
- valid = false;
- else if (path.isAbsolute()) {
- // must be an entry in this project or specify another project
- String projSegment = path.segment(0);
- if (project == null || projSegment == null || !projSegment.equals(project.getName())) {
- // another project
- kind = IClasspathEntry.CPE_PROJECT;
- }
- }
- break;
-
- case IClasspathEntry.CPE_VARIABLE :
- case IClasspathEntry.CPE_CONTAINER:
- break;
-
- default :
- valid = false;
- break;
- }
-
- if (valid)
- return new SearchpathEntry(kind, path, packageName);
- else
- return null;
-
- }
-
- protected int kind = -1; // Under Beaninfo entry, these don't have kind/path's.
- protected IPath path; // Path can be null if under beaninfo entry
- protected String packageName; // Packagename can be null if kind/path refer to a project or registered variable.
- protected boolean isExported;
-
- public SearchpathEntry(int kind, IPath path, String packageName) {
- this.kind = kind;
- this.path = path;
- this.packageName = packageName;
- }
-
- public SearchpathEntry(String packageName) {
- this.packageName = packageName;
- }
-
- public int getKind() {
- return kind;
- }
-
- public IPath getPath() {
- return path;
- }
-
- public String getPackage() {
- return packageName;
- }
-
- public Node writeEntry(Document doc, IProject project) {
-
- Element element = doc.createElement(sSearchpath);
- if (kind != -1) {
- // A non-beaninfo child
- element.setAttribute(BeaninfosDoc.sKind, BeaninfoEntry.kindToString(kind));
- IPath tPath = path;
- if (kind != IClasspathEntry.CPE_VARIABLE && kind != IClasspathEntry.CPE_CONTAINER) {
- // translate to project relative from absolute (unless a device path)
- if (tPath.isAbsolute()) {
- if (tPath.segment(0).equals(project.getFullPath().segment(0))) {
- tPath = tPath.removeFirstSegments(1);
- tPath = tPath.makeRelative();
- } else {
- tPath = tPath.makeAbsolute();
- }
- }
- }
-
- element.setAttribute(BeaninfosDoc.sPath, tPath.toString());
- }
- if (packageName != null)
- element.setAttribute(sPackage, packageName);
- return element;
- }
-
- public boolean equals(Object other) {
- if (this == other)
- return true;
-
- if (!(other instanceof SearchpathEntry))
- return false;
-
- SearchpathEntry otherEntry = (SearchpathEntry) other;
- if (kind != otherEntry.kind)
- return false;
-
- if (path == null)
- if (otherEntry.path != null)
- return false;
- else
- ;
- else if (!path.equals(otherEntry.path))
- return false;
-
- if (packageName == null)
- if (otherEntry.packageName != null)
- return false;
- else
- ;
- else if (!packageName.equals(otherEntry.packageName))
- return false;
-
- return true;
- }
-
- public int hashCode() {
- int hashCode = kind;
- if (path != null)
- hashCode ^= path.hashCode();
- if (packageName != null)
- hashCode ^= packageName.hashCode();
- return hashCode;
- }
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/Utilities.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/Utilities.java
deleted file mode 100644
index 1a35a1085..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/Utilities.java
+++ /dev/null
@@ -1,501 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2006 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.core;
-/*
- * $RCSfile: Utilities.java,v $
- * $Revision: 1.10 $ $Date: 2006/05/23 15:43:06 $
- */
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.*;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-import org.eclipse.jem.internal.beaninfo.*;
-import org.eclipse.jem.internal.beaninfo.adapters.BeaninfoNature;
-import org.eclipse.jem.internal.beaninfo.adapters.BeaninfoProxyConstants;
-import org.eclipse.jem.internal.java.adapters.ReflectionAdaptor;
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.java.*;
-
-/**
- * Beaninfo (introspection) utilities methods
- */
-
-public final class Utilities {
-
- private Utilities() {
- }
-
- /**
- * Utility to return the class as a JavaClass. If it actually is a JavaType this will
- * fail with a ClassCastException.
- * @param className
- * @param rset
- * @return java class
- *
- * @throws ClassCastException if not a java class, but instead a java primitive.
- * @since 1.1.0
- */
- public static JavaClass getJavaClass(String className, ResourceSet rset) {
- return (JavaClass) getJavaType(className, rset);
- }
-
- /**
- * Utility to return the class as a JavaHelpers.
- *
- * @param className
- * @param rset
- * @return java helpers.
- *
- * @since 1.1.0
- */
- public static JavaHelpers getJavaType(String className, ResourceSet rset) {
- return (JavaHelpers) rset.getEObject(getJavaClassURI(className), true);
- }
-
- /**
- * Create a URI to the given classname.
- * null
if there are no parms.
- * @return
- *
- * @since 1.1.0
- */
- public static URI getMethodURI(String fullyQualifiedClassName, String methodName, String[] parmTypes) {
- return URI.createURI(computeMethodURL(fullyQualifiedClassName, methodName, parmTypes));
- }
-
- /**
- * Turn it into an URI.
- */
- public static URI getMethodURI(IMethodProxy method) {
- return URI.createURI(getMethodURL(method));
- }
-
- /**
- * Utility to compute the Java Modeling METHODID from method declaring class name,
- * method name, and parameter class names.
- */
- public static String computeMethodID(String className, String methodName, String[] parameterTypes) {
- StringBuffer out = new StringBuffer(50);
- out.append(className);
- out.append(ReflectionAdaptor.C_CLASS_MEMBER_DELIMITER);
- out.append(methodName);
- out.append(ReflectionAdaptor.C_METHOD_PARM_DELIMITER);
- if (parameterTypes != null)
- for (int i = 0; i < parameterTypes.length; i++) {
- out.append(parameterTypes[i]);
- if (i < parameterTypes.length - 1)
- out.append(ReflectionAdaptor.C_PARM_PARM_DELIMITER);
- }
- if (className.equals(methodName))
- out.append(ReflectionAdaptor.S_CONSTRUCTOR_TOKEN); //It's a constructor
- return out.toString();
- }
-
- /**
- * Utility to retrieve the BeanDecorator.
- */
- public static BeanDecorator getBeanDecorator(EModelElement model) {
- return (BeanDecorator) getDecorator(model, BeanDecorator.class);
- }
- /**
- * Utility to retrieve a decorator of the specified class.
- */
- public static EAnnotation getDecorator(EModelElement model, Class decoratorClass) {
- Iterator itr = model.getEAnnotations().iterator();
- while (itr.hasNext()) {
- EAnnotation decr = (EAnnotation) itr.next();
- if (decoratorClass.isInstance(decr))
- return decr;
- }
- return null;
- }
-
- /**
- * Utility to retrieve the EventSetDecorator.
- */
- public static EventSetDecorator getEventSetDecorator(EModelElement model) {
- return (EventSetDecorator) getDecorator(model, EventSetDecorator.class);
- }
-
- /**
- * Utility to retrieve the MethodDecorator.
- */
- public static MethodDecorator getMethodDecorator(EModelElement model) {
- return (MethodDecorator) getDecorator(model, MethodDecorator.class);
- }
-
- /**
- * Utility to retrieve the PropertyDecorator.
- */
- public static PropertyDecorator getPropertyDecorator(EModelElement model) {
- return (PropertyDecorator) getDecorator(model, PropertyDecorator.class);
- }
-
- /**
- * Utility to return an iterator on the list which will return the property decorators
- * of only the properties in the EList passed in. If the property does not have a
- * property decorator, then it is not a beaninfo property.
- */
- public static Iterator getPropertiesIterator(final EList properties) {
- return new Iterator() {
- private Iterator itr = properties.iterator();
- private boolean hasNext = true;
- private PropertyDecorator next;
- {
- findNext();
- }
- public boolean hasNext() {
- return hasNext;
- }
-
- public Object next() {
- PropertyDecorator temp = next;
- findNext();
- return temp;
- }
-
- public void remove() {
- throw new UnsupportedOperationException();
- }
-
- private void findNext() {
- while (itr.hasNext()) {
- EModelElement nextOne = (EModelElement) itr.next();
- next = getPropertyDecorator(nextOne);
- if (next != null) {
- return;
- }
- }
- hasNext = false;
- }
- };
- }
-
- /**
- * Utility to return an iterator on the list which will return the EventSet decorators
- * of only the BeanEvents in the EList passed in.
- */
- public static Iterator getEventSetsIterator(final EList events) {
- return new Iterator() {
- private Iterator itr = events.iterator();
- private boolean hasNext = true;
- private EventSetDecorator next;
- {
- findNext();
- }
- public boolean hasNext() {
- return hasNext;
- }
-
- public Object next() {
- EventSetDecorator temp = next;
- findNext();
- return temp;
- }
-
- public void remove() {
- throw new UnsupportedOperationException();
- }
-
- private void findNext() {
- while (itr.hasNext()) {
- EModelElement nextOne = (EModelElement) itr.next();
- next = getEventSetDecorator(nextOne);
- if (next != null) {
- return;
- }
- }
- hasNext = false;
- }
- };
- }
-
- /**
- * Utility to return an iterator on the list which will return the Method decorators
- * of only the Methods in the EList passed in.
- */
- public static Iterator getMethodsIterator(final EList methods) {
- return new Iterator() {
- private Iterator itr = methods.iterator();
- private boolean hasNext = true;
- private MethodDecorator next;
- {
- findNext();
- }
- public boolean hasNext() {
- return hasNext;
- }
-
- public Object next() {
- MethodDecorator temp = next;
- findNext();
- return temp;
- }
-
- public void remove() {
- throw new UnsupportedOperationException();
- }
-
- private void findNext() {
- while (itr.hasNext()) {
- EModelElement nextOne = (EModelElement) itr.next();
- next = getMethodDecorator(nextOne);
- if (next != null) {
- return;
- }
- }
- hasNext = false;
- }
- };
- }
-
- /**
- * Get the search path from the remote vm.
- *
- * Note: This shouldn't be used when working with a BeaninfoNature. Use the
- * accessors taking the nature instead. Otherwise there will be inconsistencies since the search path won't be
- * saved across invocations of the workspace if it is not updated through the nature).
- */
- public static IArrayBeanProxy getBeanInfoSearchPath(ProxyFactoryRegistry registry) {
- BeaninfoProxyConstants biconstants = BeaninfoProxyConstants.getConstants(registry);
- if (biconstants != null)
- return (IArrayBeanProxy) biconstants
- .getGetBeanInfoSearchPathProxy()
- .invokeCatchThrowableExceptions(
- null);
- else
- return null;
- }
-
- /**
- * Set the search path to the array of strings passed in on the remote vm.
- *
- * Note: This shouldn't be used when working with a BeaninfoNature. Use the
- * accessors taking the nature instead. Otherwise there will be inconsistencies since the search path won't be
- * saved across invocations of the workspace if it is not updated through the nature).
- */
- public static void setBeanInfoSearchPath(ProxyFactoryRegistry registry, String[] paths) {
-
- try {
- BeaninfoProxyConstants biConstants = BeaninfoProxyConstants.getConstants(registry);
- if (biConstants != null) {
- JavaStandardBeanProxyConstants jConstants = JavaStandardBeanProxyConstants.getConstants(registry);
- IStandardBeanProxyFactory proxyFactory = registry.getBeanProxyFactory();
- IArrayBeanProxy newPath = proxyFactory.createBeanProxyWith(jConstants.getStringType(), paths != null ? paths.length : 0);
- if (paths != null)
- for (int i = 0; i < paths.length; i++)
- newPath.set(proxyFactory.createBeanProxyWith(paths[i]), i);
- biConstants.getSetBeanInfoSearchPathProxy().invoke(null, newPath);
- }
- } catch (ThrowableProxy e) {
- }
- }
-
- /**
- * From the Beaninfo Nature, insert a path to the beaninfo path at the given index, -1 means at the end.
- * If index is larger than the current path, it will also add at the end.
- */
- public static void insertBeanInfoSearchPath(BeaninfoNature nature, IBeaninfosDocEntry path, int index) throws CoreException {
- BeaninfosDoc infoPath = nature.getSearchPath();
- IBeaninfosDocEntry[] oldPath = infoPath.getSearchpath();
-
- IBeaninfosDocEntry[] newPath = new IBeaninfosDocEntry[oldPath.length + 1];
-
- if (index == -1 || index >= oldPath.length) {
- // At the end or past end
- System.arraycopy(oldPath, 0, newPath, 0, oldPath.length);
- newPath[oldPath.length] = path;
- } else {
- // In the middle
- System.arraycopy(oldPath, 0, newPath, 0, index);
- newPath[index] = path;
- System.arraycopy(oldPath, index, newPath, index + 1, oldPath.length - index);
- }
-
- infoPath.setSearchpath(newPath);
- nature.setSearchPath(infoPath);
- }
-
- /**
- * Insert a path to the beaninfo path at the given index, -1 means at the end.
- * If index is larger than the current path, it will also add at the end.
- *
- * Note: This shouldn't be used when working with a BeaninfoNature. Use the
- * accessors taking the nature instead. Otherwise there will be inconsistencies since the search path won't be
- * saved across invocations of the workspace if it is not updated through the nature).
- */
- public static void insertBeanInfoSearchPath(ProxyFactoryRegistry registry, String path, int index) {
- try {
- BeaninfoProxyConstants biConstants = BeaninfoProxyConstants.getConstants(registry);
- if (biConstants != null) {
- IArrayBeanProxy infoPath = (IArrayBeanProxy) biConstants.getGetBeanInfoSearchPathProxy().invoke(null);
- int pathLength = infoPath.getLength();
- IStandardBeanProxyFactory proxyFactory = registry.getBeanProxyFactory();
- IArrayBeanProxy newPath = proxyFactory.createBeanProxyWith(infoPath.getTypeProxy(), pathLength + 1);
- IBeanProxy stringProxy = proxyFactory.createBeanProxyWith(path);
- JavaStandardBeanProxyConstants constants = JavaStandardBeanProxyConstants.getConstants(registry);
- if (index == -1 || index >= pathLength) {
- // At the end or past end
- constants.arraycopy(infoPath, 0, newPath, 0, infoPath.getLength());
- newPath.set(stringProxy, pathLength);
- } else {
- // In the middle
- constants.arraycopy(infoPath, 0, newPath, 0, index);
- newPath.set(stringProxy, index);
- constants.arraycopy(infoPath, index, newPath, index + 1, pathLength - index);
- }
- biConstants.getSetBeanInfoSearchPathProxy().invoke(null, newPath);
- }
- } catch (ThrowableProxy e) {
- }
- }
-
- /**
- * From the Beaninfo Nature, remove the specified path from the beaninfo search path.
- * Not an error if not found.
- */
- public static void removeBeanInfoPath(BeaninfoNature nature, IBeaninfosDocEntry path) throws CoreException {
- BeaninfosDoc infoPath = nature.getSearchPath();
- IBeaninfosDocEntry[] oldPath = infoPath.getSearchpath();
-
- for (int i = 0; i < oldPath.length; i++) {
- if (path.equals(oldPath[i])) {
- // We found it, so remove it.
- IBeaninfosDocEntry[] newPath = new IBeaninfosDocEntry[oldPath.length - 1];
- System.arraycopy(oldPath, 0, newPath, 0, i);
- if (i < oldPath.length - 1)
- System.arraycopy(oldPath, i + 1, newPath, i, oldPath.length - i - 1);
- infoPath.setSearchpath(newPath);
- nature.setSearchPath(infoPath);
- return;
- }
- }
- }
-
- /**
- * Remove the specified path from the beaninfo search path.
- * Not an error if not found.
- *
- * Note: This shouldn't be used when working with a BeaninfoNature. Use the
- * accessors taking the nature instead. Otherwise there will be inconsistencies since the search path won't be
- * saved across invocations of the workspace if it is not updated through the nature).
- */
- public static void removeBeanInfoPath(ProxyFactoryRegistry registry, String path) {
- try {
- BeaninfoProxyConstants biConstants = BeaninfoProxyConstants.getConstants(registry);
- if (biConstants != null) {
- IArrayBeanProxy infoPath = (IArrayBeanProxy) biConstants.getGetBeanInfoSearchPathProxy().invoke(null);
- int pathLength = infoPath.getLength();
- for (int i = 0; i < pathLength; i++) {
- IStringBeanProxy aPath = (IStringBeanProxy) infoPath.get(i);
- if (path.equals(aPath.stringValue())) {
- // We found it, so remove it.
- IArrayBeanProxy newPath = registry.getBeanProxyFactory().createBeanProxyWith(infoPath.getTypeProxy(), pathLength - 1);
- JavaStandardBeanProxyConstants constants = JavaStandardBeanProxyConstants.getConstants(registry);
- constants.arraycopy(infoPath, 0, newPath, 0, i);
- if (i < pathLength - 1)
- constants.arraycopy(infoPath, i + 1, newPath, i, pathLength - i - 1);
- biConstants.getSetBeanInfoSearchPathProxy().invoke(null, newPath);
- return;
- }
- }
- }
- } catch (ThrowableProxy e) {
- }
- };
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/messages.properties b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/messages.properties
deleted file mode 100644
index a6341164c..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/core/messages.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 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
-###############################################################################
-#
-BeanInfoCacheController_Job_WriteBeaninfoCache_Title=Write BeanInfo cache files
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeanDecoratorImpl.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeanDecoratorImpl.java
deleted file mode 100644
index e4ef73ebc..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeanDecoratorImpl.java
+++ /dev/null
@@ -1,1072 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.impl;
-/*
- * $RCSfile: BeanDecoratorImpl.java,v $
- * $Revision: 1.22 $ $Date: 2005/10/18 15:32:19 $
- */
-
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Collection;
-import java.util.logging.Level;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EModelElement;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import org.eclipse.jem.beaninfo.common.IBaseBeanInfoConstants;
-import org.eclipse.jem.internal.beaninfo.BeanDecorator;
-import org.eclipse.jem.internal.beaninfo.BeaninfoPackage;
-import org.eclipse.jem.internal.beaninfo.ImplicitItem;
-
-import org.eclipse.jem.internal.beaninfo.common.FeatureAttributeValue;
-import org.eclipse.jem.internal.beaninfo.core.*;
-import org.eclipse.jem.java.JavaClass;
-
-/**
- *
- * An implementation of the model object 'Bean Decorator'.
- *
- *
- *
- *
- *
- *
- *
- *
- *
- * true
if source is not null and not equal to class name (less the "Impl" at the end).
- *
- * @since 1.1.0
- */
- protected boolean isSourceSet() {
- return source != null && !eClass().getInstanceClassName().equals(source);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.emf.ecore.EObject#eIsSet(org.eclipse.emf.ecore.EStructuralFeature)
- */
- public boolean eIsSet(EStructuralFeature eFeature) {
- switch (eDerivedStructuralFeatureID(eFeature)) {
- case BeaninfoPackage.FEATURE_DECORATOR__SOURCE:
- return isSourceSet(); // Override so that if set to the same as classname, then it is considered not set.
- default:
- return eIsSetGen(eFeature);
- }
- }
-
-
- /**
- *
- *
- * @generated
- */
- public boolean eIsSetGen(EStructuralFeature eFeature) {
- switch (eDerivedStructuralFeatureID(eFeature)) {
- case BeaninfoPackage.FEATURE_DECORATOR__EANNOTATIONS:
- return eAnnotations != null && !eAnnotations.isEmpty();
- case BeaninfoPackage.FEATURE_DECORATOR__SOURCE:
- return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source);
- case BeaninfoPackage.FEATURE_DECORATOR__DETAILS:
- return details != null && !details.isEmpty();
- case BeaninfoPackage.FEATURE_DECORATOR__EMODEL_ELEMENT:
- return getEModelElement() != null;
- case BeaninfoPackage.FEATURE_DECORATOR__CONTENTS:
- return contents != null && !contents.isEmpty();
- case BeaninfoPackage.FEATURE_DECORATOR__REFERENCES:
- return references != null && !references.isEmpty();
- case BeaninfoPackage.FEATURE_DECORATOR__DISPLAY_NAME:
- return isSetDisplayName();
- case BeaninfoPackage.FEATURE_DECORATOR__SHORT_DESCRIPTION:
- return isSetShortDescription();
- case BeaninfoPackage.FEATURE_DECORATOR__CATEGORY:
- return CATEGORY_EDEFAULT == null ? category != null : !CATEGORY_EDEFAULT.equals(category);
- case BeaninfoPackage.FEATURE_DECORATOR__EXPERT:
- return isSetExpert();
- case BeaninfoPackage.FEATURE_DECORATOR__HIDDEN:
- return isSetHidden();
- case BeaninfoPackage.FEATURE_DECORATOR__PREFERRED:
- return isSetPreferred();
- case BeaninfoPackage.FEATURE_DECORATOR__MERGE_INTROSPECTION:
- return ((eFlags & MERGE_INTROSPECTION_EFLAG) != 0) != MERGE_INTROSPECTION_EDEFAULT;
- case BeaninfoPackage.FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY:
- return ((eFlags & ATTRIBUTES_EXPLICIT_EMPTY_EFLAG) != 0) != ATTRIBUTES_EXPLICIT_EMPTY_EDEFAULT;
- case BeaninfoPackage.FEATURE_DECORATOR__IMPLICITLY_SET_BITS:
- return implicitlySetBits != IMPLICITLY_SET_BITS_EDEFAULT;
- case BeaninfoPackage.FEATURE_DECORATOR__IMPLICIT_DECORATOR_FLAG:
- return implicitDecoratorFlag != IMPLICIT_DECORATOR_FLAG_EDEFAULT;
- case BeaninfoPackage.FEATURE_DECORATOR__ATTRIBUTES:
- return attributes != null && !attributes.isEmpty();
- }
- return eDynamicIsSet(eFeature);
- }
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/IndexedPropertyDecoratorImpl.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/IndexedPropertyDecoratorImpl.java
deleted file mode 100644
index bcd72a943..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/IndexedPropertyDecoratorImpl.java
+++ /dev/null
@@ -1,664 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.impl;
-/*
- * $RCSfile: IndexedPropertyDecoratorImpl.java,v $
- * $Revision: 1.12 $ $Date: 2005/09/19 15:43:02 $
- */
-
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EModelElement;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import org.eclipse.jem.internal.beaninfo.BeaninfoPackage;
-import org.eclipse.jem.internal.beaninfo.ImplicitItem;
-import org.eclipse.jem.internal.beaninfo.IndexedPropertyDecorator;
-import org.eclipse.jem.java.Field;
-import org.eclipse.jem.java.JavaClass;
-import org.eclipse.jem.java.Method;
-/**
- *
- * An implementation of the model object 'Indexed Property Decorator'.
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- * {initString, isShared, onFreeform}
where:
- *
- *
- * null
if it doesn't
- * need one (i.e. all static) or if the default constructor should be used.
- * This is used when a component is dropped from the palette that is for a toolkit component.
- * false
if each call to the creation method should have a new instance of the toolkit. This means that the toolkit manages only
- * one instance. This is more like a controller than a toolkit in this case. true
if it should
- * try to reuse the toolkit of the parent if it has one, or any other found toolkit of the same type, (i.e. a subtype will be acceptable).
- * This is used when a component is dropped from the palette that is for a toolkit component.
- * true
if the toolkit is created that it should appear on the freeform surface to be selectable. This would be of use
- * if the toolkit had properties that need to be set. If the toolkit had no properties then it doesn't need to be selectable and should
- * not be on the freeform. Use false
in that case.
- * {methodName, returnedClassname, isStatic, Object[], ...}
where:
- *
- *
- * Boolean.TRUE
if the method is a static method, Boolean.FALSE
if not.
- * This is used when a component is dropped from the palette that is for a toolkit component.
- * null
if that arg is not a property. There can be more than one array if there
- * is more than one factory method of the same name, and returns the same type, but what is different is only the number of arguments.
- * If there is a
- * factory method that has no properties as arguments or has no arguments, don't include an array for it. For example if there was only one factory method and it had no
- * arguments then there would not be any arrays.
- * Currently cannot handle where more than one method has the same number of arguments but different types for the arguments.
- *
- *
- * new Object[][] {
- * {"new a.b.c.Toolkit(\"ABC\")", Boolean.TRUE, Boolean.FALSE},
- * {"createButton", "a.b.c.Button", Boolean.FALSE, new Object[] {"parent", "text"}, new Object[] {"parent"}}
- * }
- *
- * "new a.b.c.Toolkit(\"ABC\")"
and it is shared
- * with other objects created from this factory instance. Also, the factory method is "createButton", returns an "a.b.c.Button", and it is
- * not a static call (i.e. use a toolkit instance to create it). It has two forms of factory methods. One is two arguments where the first
- * arg is the parent property and the second arg is the text property. The other form has only one argument, the parent property.
- * {toolkit:classname}.factorymethod(args)
. So for the above example it would be {toolkit:a.b.c.Toolkit}.createButton(parent)
.
- * The classname must be fully-qualified and if an inner class it must use the "$" instead of "." for the name, i.e. a.b.c.Toolkit.InnerFactory
- * would be a.b.c.Toolkit$InnerFactory.
- * true
- * indicates that the Customize Bean customizer supplied by the BeanInfo will indicate which
- * properties it has changed through firing {@link java.beans.PropertyChangeEvent} instead of the
- * Visual Editor automatically trying to determine the set of changed properties.
- * false
.
- *
- * @since 1.1.0.1
- */
- public static final String EXPLICIT_PROPERTY_CHANGE = "EXPLICIT_PROPERTY_CHANGE"; //$NON-NLS-1$
-
- /**
- * Used by Visual Editor as feature attribute key/value to indicate that it must create an implicit setting of a property(s).
- * For example {@link javax.swing.JFrame#getContentPane()}. There must be a content pane
- * set in the VE model so that users can drop the components on it. Setting this here
- * means that the default content pane from the JFrame will show up in the editor to use.
- * null
. Save space that way.
- */
- public String[] notInheritedPropertyNames;
- /**
- * Names of operations that are to not be inherited in getEAllOperations(). It is set only
- * if the list is not the full list of inherited operations.
- * If all are inherited or if mergeInheritedOperations is false, then the field will be null
. Save space that way.
- */
- public String[] notInheritedOperationNames;
- /**
- * Names of events that are to not be inherited in getAllEvents(). It is set only
- * if the list is not the full list of inherited events.
- * If all are inherited or if mergeInheritedEvents is false, then the field will be null
. Save space that way.
- */
- public String[] notInheritedEventNames;
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/EventSetRecord.java b/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/EventSetRecord.java
deleted file mode 100644
index e0f47e7df..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/EventSetRecord.java
+++ /dev/null
@@ -1,37 +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: EventSetRecord.java,v $
- * $Revision: 1.2 $ $Date: 2005/02/15 22:44:52 $
- */
-package org.eclipse.jem.internal.beaninfo.common;
-
-
-/**
- * This is the data structure for sending the EventSetDescriptor info from
- * the BeanInfo vm to the IDE vm. It is serializable so that it can
- * be serialized for transmission.
- * value
massaged into an easier to use form
- * in the IDE. It will not be serialized out. It will not be reconstructed from an init string.
- *
- * String: "zxvzxv"
- * Number: number
- * Boolean: true or false
- * Character: 'c'
- * null: null
- *
- * Array: (all arrays will be turned into Object[])
- * [dim]{e1, e2}
- * [dim1][dim2]{[dim1a]{e1, e2}, [dim2a]{e3, e4}}
- * where en are objects that follow the pattern for single output above.
- *
- * Any invalid object (i.e. not one of the ones we handle) will be:
- * INV
- *
- * Arrays of invalid types (not Object, String, Number, Boolean, Character,
- * or primitives) will be marked as INV.
- *
- * @param value
- * @return serialized form as a string.
- *
- * @since 1.1.0
- */
- public static String makeString(Object value) {
- StringBuffer out = new StringBuffer(100);
- makeString(value, out);
- return out.toString();
- }
-
- private static final Pattern QUOTE = Pattern.compile("\""); // Pattern for searching for double-quote. Make it static so don't waste time compiling each time. //$NON-NLS-1$
- private static final String NULL = "null"; // Output string for null //$NON-NLS-1$
- private static final String INVALID = "INV"; // Invalid object flag. //$NON-NLS-1$
- private static final String IMPLICIT = "implicit,"; // Implicit flag. //$NON-NLS-1$
-
- /*
- * Used for recursive building of the string.
- */
- private static void makeString(Object value, StringBuffer out) {
- if (value == null)
- out.append(NULL);
- else if (value instanceof String || value instanceof Class) {
- // String: "string" or "string\"stringend" if str included a double-quote.
- out.append('"');
- // If class, turn value into the classname.
- String str = value instanceof String ? (String) value : ((Class) value).getName();
- if (str.indexOf('"') != -1) {
- // Replace double-quote with escape double-quote so we can distinquish it from the terminating double-quote.
- out.append(QUOTE.matcher(str).replaceAll("\\\\\"")); // Don't know why we need the back-slash to be doubled for replaceall, but it doesn't work otherwise. //$NON-NLS-1$
- } else
- out.append(str);
- out.append('\"');
- } else if (value instanceof Number) {
- // Will go out as either a integer number or a floating point number.
- // When read back in it will be either a Long or a Double.
- out.append(value);
- } else if (value instanceof Boolean) {
- // It will go out as either true or false.
- out.append(value);
- } else if (value instanceof Character) {
- // Character: 'c' or '\'' if char was a quote.
- out.append('\'');
- Character c = (Character) value;
- if (c.charValue() != '\'')
- out.append(c.charValue());
- else
- out.append("\\'"); //$NON-NLS-1$
- out.append('\'');
- } else if (value.getClass().isArray()) {
- // Handle array format.
- Class type = value.getClass();
- // See if final type is a valid type.
- Class ft = type.getComponentType();
- int dims = 1;
- while (ft.isArray()) {
- dims++;
- ft = ft.getComponentType();
- }
- if (ft == Object.class || ft == String.class || ft == Boolean.class || ft == Character.class || ft.isPrimitive() || Number.class.isAssignableFrom(ft)) {
- // [length][][] {....}
- out.append('[');
- int length = Array.getLength(value);
- out.append(length);
- out.append(']');
- while(--dims > 0) {
- out.append("[]"); //$NON-NLS-1$
- }
- out.append('{');
- for (int i=0; i < length; i++) {
- if (i != 0)
- out.append(',');
- makeString(Array.get(value, i), out);
- }
- out.append('}');
- } else
- out.append(INVALID); // Any other kind of array is invalid.
- } else {
- out.append(INVALID);
- }
- }
-
-
- /**
- * Helper method to take the string input from EMF serialization and turn it
- * into an Object.
- * null
if there aren't any.
- */
- public ParameterRecord[] parameters;
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/ParameterRecord.java b/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/ParameterRecord.java
deleted file mode 100644
index 4aac601ac..000000000
--- a/plugins/org.eclipse.jem.beaninfo/beaninfoCommon/org/eclipse/jem/internal/beaninfo/common/ParameterRecord.java
+++ /dev/null
@@ -1,32 +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: ParameterRecord.java,v $
- * $Revision: 1.2 $ $Date: 2005/02/15 22:44:52 $
- */
-package org.eclipse.jem.internal.beaninfo.common;
-
-
-/**
- * This is the data structure for sending the ParameterDescriptor info from
- * the BeanInfo vm to the IDE vm. It is serializable so that it can
- * be serialized for transmission.
- *
- *
- *
- * @since 1.1.0
- */
- public static final String DESIGNTIMEPROPERTY = "ivjDesignTimeProperty"; //$NON-NLS-1$
-
- /**
- * EventAdapterClass indicator for apply property arguments. Event adapter class is a pre-defined attribute name too. That is where the event
- * adapter is stored.
- * true
: Special property (it will show on property sheet if not hidden), but it can't be connected to. Usually this is a
- * property that is fluffed up for the IDE purposes but doesn't have a get/set method. This means it is a property for design time and not for
- * runtime.
- * false
: This property will not show up on property sheet but it can be connected to.
- * java.awt.event.WindowListener
has an adapter of java.awt.event.WindowAdapter
. What is stored is actually the
- * class name, not the class itself.
- *
- * @since 1.1.0
- */
- public static final String EVENTADAPTERCLASS = "eventAdapterClass"; //$NON-NLS-1$
-
-
- public static final boolean JVM_1_3 = System.getProperty("java.version", "").startsWith("1.3"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- /**
- * Empty args list for those descriptors that don't have arguments.
- * @since 1.1.0
- */
- public static final Object[] EMPTY_ARGS = new Object[0];
-
- /**
- * Capitalize the string. This uppercases only the first character. So if you have property name of "abc" it will become "Abc".
- *
- * @param s
- * @return string with first letter capitalized.
- *
- * @since 1.1.0
- */
- public static String capitalize(String s) {
- if (s.length() == 0) { return s; }
- char chars[] = s.toCharArray();
- chars[0] = Character.toUpperCase(chars[0]);
- return new String(chars);
- }
-
- /**
- * Create a BeanDescriptor object given an array of keyword/value arguments. Use the keywords defined in this class, e.g. BOUND, EXPERT, etc.
- *
- * @param cls
- * bean for which the bean descriptor is being created.
- * @param args
- * arg pairs, [0] keyword, [1] value, [2] keyword, [3] value, etc. or null if no args
- * @return new bean descriptor
- *
- * @since 1.1.0
- */
- public static BeanDescriptor createBeanDescriptor(Class cls, Object[] args) {
- Class customizerClass = null;
-
- if (args != null) {
- /* Find the specified customizerClass */
- for (int i = 0; i < args.length; i += 2) {
- if (CUSTOMIZERCLASS.equals(args[i])) {
- customizerClass = (Class) args[i + 1];
- break;
- }
- }
- }
-
- BeanDescriptor bd = new BeanDescriptor(cls, customizerClass);
-
- if (args != null) {
- for (int i = 0; i < args.length; i += 2) {
- String key = (String) args[i];
- Object value = args[i + 1];
- setFeatureDescriptorValue(bd, key, value);
- }
- }
- return bd;
- }
-
- /**
- * Create a beans EventSetDescriptor given the following:
- *
- * @param cls
- * The bean class
- * @param name
- * Name of event set
- * @param args
- * arg pairs, [0] keyword, [1] value, [2] keyword, [3] value, etc. or null if no args.
- * @param lmds
- * array of MethodDescriptors defining the listener methods
- * @param listenerType
- * type of listener
- * @param addListenerName
- * add listener method name
- * @param removeListenerNameremove
- * listener method name
- * @return new event set descriptor
- * @since 1.1.0
- */
- public static EventSetDescriptor createEventSetDescriptor(Class cls, String name, Object[] args, MethodDescriptor[] lmds, Class listenerType,
- String addListenerName, String removeListenerName) {
- EventSetDescriptor esd = null;
- Class[] paramTypes = { listenerType};
- try {
- java.lang.reflect.Method addMethod = null;
- java.lang.reflect.Method removeMethod = null;
- try {
- /* get addListenerMethod with parameter types. */
- addMethod = cls.getMethod(addListenerName, paramTypes);
- } catch (Exception ie) {
- throwError(ie, java.text.MessageFormat.format(RESBUNDLE.getString("Cannot_get_the_meth1_EXC_"), //$NON-NLS-1$
- new Object[] { addListenerName}));
- }
- ;
- try {
- /* get removeListenerMethod with parameter types. */
- removeMethod = cls.getMethod(removeListenerName, paramTypes);
- } catch (Exception ie) {
- throwError(ie, java.text.MessageFormat.format(RESBUNDLE.getString("Cannot_get_the_meth1_EXC_"), //$NON-NLS-1$
- new Object[] { removeListenerName}));
- }
- ;
-
- esd = new EventSetDescriptor(name, listenerType, lmds, addMethod, removeMethod);
- } catch (Exception ie) {
- throwError(ie, java.text.MessageFormat.format(RESBUNDLE.getString("Cannot_create_the_E1_EXC_"), //$NON-NLS-1$
- new Object[] { name}));
- }
- ;
- if (args != null) {
- // set the event set descriptor properties
- for (int i = 0; i < args.length; i += 2) {
- String key = (String) args[i];
- Object value = args[i + 1];
- if (INDEFAULTEVENTSET.equals(key)) {
- esd.setInDefaultEventSet(((Boolean) value).booleanValue());
- } else
- setFeatureDescriptorValue(esd, key, value);
- }
- }
- return esd;
- }
-
- /**
- * Create a bean's MethodDescriptor.
- *
- * @param cls
- * class of the method.
- * @param name
- * name of the method.
- * @param args
- * arg pairs, [0] keyword, [1] value, [2] keyword, [3] value, etc. or null if no args
- * @param params
- * parameter descriptors or null
if no parameter descriptors.
- * @param paramTypes
- * parameter types
- * @return new method descriptor
- *
- * @since 1.1.0
- */
- public static MethodDescriptor createMethodDescriptor(Class cls, String name, Object[] args, ParameterDescriptor[] params, Class[] paramTypes) {
- MethodDescriptor md = null;
- try {
- java.lang.reflect.Method aMethod = null;
- try {
- /* getMethod with parameter types. */
- aMethod = cls.getMethod(name, paramTypes);
- } catch (Exception ie) {
- throwError(ie, java.text.MessageFormat.format(RESBUNDLE.getString("Cannot_get_the_meth1_EXC_"), //$NON-NLS-1$
- new Object[] { name}));
- }
- ;
- if (params != null && params.length > 0)
- md = new MethodDescriptor(aMethod, params);
- else
- md = new MethodDescriptor(aMethod);
- } catch (Exception ie) {
- throwError(ie, java.text.MessageFormat.format(RESBUNDLE.getString("Cannot_create_Method_EXC_"), //$NON-NLS-1$
- new Object[] { name}));
- }
- ;
- if (args != null) {
- // set the method properties
- for (int i = 0; i < args.length; i += 2) {
- String key = (String) args[i];
- Object value = args[i + 1];
- setFeatureDescriptorValue(md, key, value);
- }
- }
- return md;
- }
-
- private static PropertyDescriptor createOtherPropertyDescriptor(String name, Class cls) throws IntrospectionException {
- Method readMethod = null;
- Method writeMethod = null;
- String base = capitalize(name);
- Class[] parameters = new Class[0];
-
- // First we try boolean accessor pattern
- try {
- readMethod = cls.getMethod("is" + base, parameters);//$NON-NLS-1$
- } catch (Exception ex1) {
- }
- if (readMethod == null) {
- try {
- // Else we try the get accessor pattern.
- readMethod = cls.getMethod("get" + base, parameters);//$NON-NLS-1$
- } catch (Exception ex2) {
- // Find by matching methods of the class
- readMethod = findMethod(cls, "get" + base, 0);//$NON-NLS-1$
- }
- }
-
- if (readMethod == null) {
- // For write-only properties, find the write method
- writeMethod = findMethod(cls, "set" + base, 1);//$NON-NLS-1$
- } else {
- // In Sun's code, reflection fails if there are two
- // setters with the same name and the first setter located
- // does not have the same return type of the getter.
- // This fixes that.
- parameters = new Class[1];
- parameters[0] = readMethod.getReturnType();
- try {
- writeMethod = cls.getMethod("set" + base, parameters);//$NON-NLS-1$
- } catch (Exception ex3) {
- }
- }
- // create the property descriptor
- if ((readMethod != null) || (writeMethod != null)) {
- return new PropertyDescriptor(name, readMethod, writeMethod);
- } else {
- throw new IntrospectionException(java.text.MessageFormat.format(RESBUNDLE.getString("Cannot_find_the_acc1_EXC_"), //$NON-NLS-1$
- new Object[] { name}));
- }
- }
-
- /**
- * Create a beans parameter descriptor.
- *
- * @param name
- * name of parameter
- * @param args
- * arg pairs, [0] keyword, [1] value, [2] keyword, [3] value, etc. or null if no args
- * @return new parameter descriptor
- *
- * @since 1.1.0
- */
- public static ParameterDescriptor createParameterDescriptor(String name, Object[] args) {
- ParameterDescriptor pd = null;
- try {
- pd = new ParameterDescriptor();
- } catch (Exception ie) {
- throwError(ie, java.text.MessageFormat.format(RESBUNDLE.getString("Cannot_create_Param1_EXC_"), //$NON-NLS-1$
- new Object[] { name}));
- }
- ;
- // set the name
- pd.setName(name);
- if (args != null) {
- // set the method properties
- for (int i = 0; i < args.length; i += 2) {
- String key = (String) args[i];
- Object value = args[i + 1];
- setFeatureDescriptorValue(pd, key, value);
- }
- }
- return pd;
- }
-
- private static Method GETCLASS;
-
- static {
- try {
- GETCLASS = Object.class.getMethod("getClass", null); //$NON-NLS-1$
- } catch (SecurityException e) {
- } catch (NoSuchMethodException e) {
- }
- }
- /**
- * Create a property descriptor describing a field property.
- * null
if nothing to add.
- *
- * @throws Error
- * turns exception into an Error.
- * @since 1.1.0
- */
- protected static void throwError(Exception e, String s) {
- throw new Error(e.toString() + " " + s);//$NON-NLS-1$
- }
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/beaninfo/vm/basebeaninfonls.properties b/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/beaninfo/vm/basebeaninfonls.properties
deleted file mode 100644
index e78fb1181..000000000
--- a/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/beaninfo/vm/basebeaninfonls.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 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
-###############################################################################
-#
-# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/beaninfo/vm/Attic/basebeaninfonls.properties,v $
-# $Revision: 1.5 $ $Date: 2005/08/24 20:31:28 $
-#
-
-
-#
-# Properties for the IvjBeanInfo
-#
-
-#
-# IvjBeanInfo Strings
-#
-Cannot_get_the_meth1_EXC_ = IWAV0011E Cannot get the method {0}.
-Cannot_create_the_E1_EXC_ = IWAV0012E Cannot create the EventSetDescriptor for {0}.
-Cannot_create_Method_EXC_ = IWAV0013E Cannot create the MethodDescriptor for {0}.
-Cannot_find_the_acc1_EXC_ = IWAV0014E Cannot find at least the write or read accessor for property {0}.
-Cannot_create_Param1_EXC_ = IWAV0015E Cannot create the ParameterDescriptor for {0}.
-Cannot_create_the_P1 = Cannot create the PropertyDescriptor for {0}.
-{0}_no_read_method_EXC_ = IWAV0016E Class {0} doesn''t have the requested read accessor {1}.
-{0}_no_write_method_EXC_ = IWAV0017E Class {0} doesn''t have the requested write accessor {1}.
diff --git a/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/beaninfo/vm/beaninfo.properties b/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/beaninfo/vm/beaninfo.properties
deleted file mode 100644
index 81fddc2d5..000000000
--- a/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/beaninfo/vm/beaninfo.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 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
-###############################################################################
-#
-# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/beaninfo/vm/Attic/beaninfo.properties,v $
-# $Revision: 1.4 $ $Date: 2005/08/24 20:31:28 $
-#
-
-
-#
-# Properties for the VCE Beaninfo
-#
-
-#
-# IvjBeanInfo Strings
-#
-Cannot_get_the_meth1_EXC_ = IWAV0007E Cannot get the method {0}.
-Cannot_create_the_E1_EXC_ = IWAV0008E Cannot create the EventSetDescriptor for {0}.
-Cannot_create_Method_EXC_ = IWAV0009E Cannot create the MethodDescriptor for {0}.
-Cannot_find_the_acc1_EXC_ = IWAV0010E Cannot find at least the write or read accessor for property {0}.
-Cannot_create_Param1_EXC_ = IWAV0146E Cannot create the ParameterDescriptor for {0}.
-Cannot_create_the_P1_EXC_ = IWAV0147E Cannot create the PropertyDescriptor for {0}.
-{0}_no_read_method_EXC_ = IWAV0148E Class {0} doesn''t have the requested read accessor {1}.
-{0}_no_write_method_EXC_ = IWAV0149E Class {0} doesn''t have the requested write accessor {1}.
-UNCAUGHT_EXC_ = IWAV0123E --------- UNCAUGHT EXCEPTION ---------
diff --git a/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/BeanDescriptorEquality.java b/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/BeanDescriptorEquality.java
deleted file mode 100644
index 01f0b2983..000000000
--- a/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/BeanDescriptorEquality.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.vm;
-/*
- * $RCSfile: BeanDescriptorEquality.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:31:29 $
- */
-
-import java.beans.*;
-/**
- * Equality tester for BeanDescriptors
- */
-public class BeanDescriptorEquality extends FeatureDescriptorEquality {
- static void INIT() {
- try {
- MAP_EQUALITY.put(BeanDescriptor.class, (BeanDescriptorEquality.class).getConstructor(new Class[] {BeanDescriptor.class}));
- } catch (NoSuchMethodException e) {
- }
- }
-
- /**
- * Constructor for BeanDescriptorEquality.
- */
- public BeanDescriptorEquality() {
- super();
- }
-
-
- public BeanDescriptorEquality(BeanDescriptor descr) {
- super(descr);
- }
-
- /**
- * Calculate the hashcode for the current feature, add this
- * to the hashcode received from super.calculateHashCode
- * and return the new value.
- *
- * NOTE: for subclasses, it is MANDITORY that the first line be:
- * int hashcode = super.calculateHashCode();
- * and the last line be:
- * return hashcode*31 + (your calculated hashcode for just this subclass);
- */
- protected int calculateHashCode() {
- int hashcode = super.calculateHashCode();
- BeanDescriptor bd = (BeanDescriptor) fFeature;
- int hc = bd.getBeanClass().hashCode();
- if (bd.getCustomizerClass() != null)
- hc += bd.getCustomizerClass().hashCode();
-
- return hashcode*31 + hc;
- }
-
- public boolean equals(Object obj) {
- if (identityTest(obj))
- return true;
- if (!super.equals(obj))
- return false;
-
- BeanDescriptor ob = (BeanDescriptor) ((FeatureDescriptorEquality) obj).fFeature;
- BeanDescriptor fb = (BeanDescriptor) fFeature;
-
- if (ob.getBeanClass() != fb.getBeanClass())
- return false;
- if (ob.getCustomizerClass() != fb.getCustomizerClass())
- return false;
-
- return true;
- }
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/EventSetDescriptorEquality.java b/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/EventSetDescriptorEquality.java
deleted file mode 100644
index d7b1c2972..000000000
--- a/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/EventSetDescriptorEquality.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.vm;
-/*
- * $RCSfile: EventSetDescriptorEquality.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:31:29 $
- */
-
-import java.beans.*;
-import java.util.*;
-import java.lang.reflect.Method;
-/**
- * Equality tester for EventSetDescriptors
- */
-public class EventSetDescriptorEquality extends FeatureDescriptorEquality {
-
- static void INIT() {
- try {
- MAP_EQUALITY.put(EventSetDescriptor.class, (EventSetDescriptorEquality.class).getConstructor(new Class[] {EventSetDescriptor.class}));
- } catch (NoSuchMethodException e) {
- }
- }
-
- private ArrayList fListenerMethodDescriptors; // Array of MethodDescriptorEquality's.
-
- /**
- * Constructor for EventSetDescriptorEquality.
- */
- public EventSetDescriptorEquality() {
- super();
- }
-
-
- public EventSetDescriptorEquality(EventSetDescriptor descr) {
- super(descr);
- }
-
- /**
- * A new feature is being set into this object,
- * clear any cache members so that they can be reconstructed.
- *
- * NOTE: Subclasses - remember to call super.clearFeature();
- */
- protected void clearFeature() {
- super.clearFeature();
- fListenerMethodDescriptors = null;
- }
-
- protected ArrayList listenerMethodDescriptors() {
- if (fListenerMethodDescriptors == null) {
- MethodDescriptor[] mds = ((EventSetDescriptor) fFeature).getListenerMethodDescriptors();
- fListenerMethodDescriptors = new ArrayList(mds.length);
- for (int i=0; iserialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = -3744776740604328324L;
- private FeatureDescriptorEquality workingKey;
-
- public FeatureEqualitySet(List features) {
- super(features.size());
- // Get first feature to fiqure out type of working key. This will not be reentrant.
- workingKey = FeatureDescriptorEquality.createEquality((FeatureDescriptor) features.get(0));
- this.addAll(features);
- }
-
- /**
- * @see java.util.Collection#add(Object)
- */
- public boolean add(Object o) {
- return super.add(FeatureDescriptorEquality.createEquality((FeatureDescriptor) o));
- }
-
- /**
- * @see java.util.Collection#contains(Object)
- */
- public boolean contains(Object o) {
- workingKey.setFeature((FeatureDescriptor) o);
- return super.contains(workingKey);
- }
-
- }
-
- // The following fields indicate if the super info should be merged
- // in on the model side. no merge means there were no inherited methods at all. So the
- // beaninfo presented is definitive. If merge, then get...Descriptors will return just
- // the ones for this level, and getSuper...Descriptors will return the inherited ones.
- // Though in this case, if the returned super list is null, then that means use ALL of
- // the inherited ones.
- // The super list returns simply the names, don't need to have the full descriptors in that case.
- protected boolean fMergeInheritedEvents = false, fMergeInheritedMethods = false, fMergeInheritedProperties = false;
-
- protected final BeanInfo fTargetBeanInfo; // The beaninfo being modeled.
-
- // Local descriptors
- protected EventSetDescriptor[] fEventSets;
-
- protected MethodDescriptor[] fMethods;
-
- protected PropertyDescriptor[] fProperties;
-
- // Not inherited descriptor names, will be null if no merge or if merge all. This is list of names to NOT merge. It is usually shorter than the list to merge from super.
-
- // Methods are special. You can have duplicates, so name is not sufficient.
- // So for methods,
- // will use an array of Strings where:
- // For each one the full signature
- // will be in the list, e.g. "name:methodName(argtype,..." where argtype is the fullyqualified
- // classname (using "." notation for inner classes), and using format "java.lang.String[]" for
- // arrays.
- //
- // This is because even if there are no duplicates, it will take less time/space to simply create the entries
- // then it would to create a set to see if there are duplicates and then create the final array.
- protected String[] fNotInheritedEventSets;
-
- protected String[] fNotInheritedMethods;
-
- protected String[] fNotInheritedProperties;
-
- protected int doFlags;
-
- /**
- * Method used to do introspection and create the appropriate ModelingBeanInfo
- *
- * This will always introspect.
- */
- public static ModelingBeanInfo introspect(Class introspectClass, int doFlags) throws IntrospectionException {
- return introspect(introspectClass, true, doFlags);
- }
-
- /**
- * Method used to do introspection and create the appropriate ModelingBeanInfo
- *
- * introspectIfNoBeanInfo: If this is true, then if no explicit beaninfo was found for this class, then introspection will be done anyway. The
- * Introspector will use reflection for local methods/events/properties of this class and then add in the results of the superclass introspection.
- * If this parameter is false, then if the explicit beaninfo is not found, then no introspection will be done and null will be returned.
- */
- public static ModelingBeanInfo introspect(Class introspectClass, boolean introspectIfNoBeanInfo, int doFlags) throws IntrospectionException {
- if (!Beans.isDesignTime())
- Beans.setDesignTime(true); // Since this a jem beaninfo specific vm, we should also be considered design time.
- if (!introspectIfNoBeanInfo) {
- // Need to check if the beaninfo is explicitly supplied.
- // If not, then we return null.
- // The checks will be the same that Introspector will use.
-
- boolean found = false;
- // 1. Is there a BeanInfo class in the same package
- if (!classExists(introspectClass.getName() + "BeanInfo", introspectClass)) { //$NON-NLS-1$
- // 2. Is this class a BeanInfo class for itself.
- if (!(BeanInfo.class).isAssignableFrom(introspectClass)) {
- // 3. Can this class be found in the Beaninfo searchpath.
- String[] searchPath = Introspector.getBeanInfoSearchPath();
- int startClassname = introspectClass.getName().lastIndexOf(".") + 1; //$NON-NLS-1$
- String biName = "." + introspectClass.getName().substring(startClassname) + "BeanInfo"; //$NON-NLS-1$ //$NON-NLS-2$
- for (int i = 0; i < searchPath.length; i++) {
- if (classExists(searchPath[i] + biName, introspectClass)) {
- found = true;
- break;
- }
- }
- } else
- found = true;
- } else
- found = true;
-
- if (!found)
- return null;
- }
-
- BeanInfo bInfo = Introspector.getBeanInfo(introspectClass);
- Class superClass = introspectClass.getSuperclass();
-
- if (superClass == null)
- return PRE15 ? (ModelingBeanInfo) new ModelingBeanInfoPre15(bInfo, doFlags) : new ModelingBeanInfo15(bInfo, doFlags);
- else
- return PRE15 ? (ModelingBeanInfo) new ModelingBeanInfoPre15(bInfo, Introspector.getBeanInfo(superClass), doFlags) : new ModelingBeanInfo15(bInfo,
- Introspector.getBeanInfo(superClass), doFlags);
- }
-
- /**
- * See if this class exists, first in the class loader of the sent class, then in the system loader, then the bootstrap loader, and finally the
- * current thread context class loader.
- */
- protected static boolean classExists(String className, Class fromClass) {
- if (fromClass.getClassLoader() != null)
- try {
- fromClass.getClassLoader().loadClass(className);
- return true;
- } catch (ClassNotFoundException e) {
- }
- if (ClassLoader.getSystemClassLoader() != null)
- try {
- ClassLoader.getSystemClassLoader().loadClass(className);
- return true;
- } catch (ClassNotFoundException e) {
- }
- try {
- Class.forName(className);
- return true;
- } catch (ClassNotFoundException e) {
- }
-
- try {
- // Use the classloader from the current Thread.
- ClassLoader cl = Thread.currentThread().getContextClassLoader();
- cl.loadClass(className);
- return true;
- } catch (ClassNotFoundException e) {
- }
-
- return false;
-
- }
-
- /**
- * Used only for Object since that is the only bean that doesn't have a superclass. Superclass beaninfo required for all other classes. If this is
- * constructed then this means no merge and the list is definitive.
- */
- protected ModelingBeanInfo(BeanInfo beanInfo, int doFlags) {
- fTargetBeanInfo = beanInfo;
- this.doFlags = doFlags;
- }
-
- protected ModelingBeanInfo(BeanInfo beanInfo, BeanInfo superBeanInfo, int doFlags) {
- this(beanInfo, doFlags);
-
- // Now go through the beaninfo to determine the merge state.
- // The default is no merge.
-
- if ((doFlags & IBeanInfoIntrospectionConstants.DO_EVENTS) != 0) {
- List full = addAll(beanInfo.getEventSetDescriptors());
- List inherited = addAll(superBeanInfo.getEventSetDescriptors());
-
- fMergeInheritedEvents = stripList(full, inherited);
- if (fMergeInheritedEvents) {
- if (!full.isEmpty())
- fEventSets = (EventSetDescriptor[]) full.toArray(new EventSetDescriptor[full.size()]);
- if (!inherited.isEmpty())
- createEventArray(inherited); // This is actually a list of those NOT inherited.
- }
- }
-
- if ((doFlags & IBeanInfoIntrospectionConstants.DO_METHODS) != 0) {
- List full = addAll(beanInfo.getMethodDescriptors());
- List inherited = addAll(superBeanInfo.getMethodDescriptors());
-
- fMergeInheritedMethods = stripList(full, inherited);
- if (fMergeInheritedMethods) {
- if (!full.isEmpty())
- fMethods = (MethodDescriptor[]) full.toArray(new MethodDescriptor[full.size()]);
- if (!inherited.isEmpty())
- createMethodEntries(inherited); // This is actually a list of those NOT inherited.
- }
- }
-
- if ((doFlags & IBeanInfoIntrospectionConstants.DO_PROPERTIES) != 0) {
- List full = addAll(beanInfo.getPropertyDescriptors());
- List inherited = addAll(superBeanInfo.getPropertyDescriptors());
-
- fMergeInheritedProperties = stripList(full, inherited);
- if (fMergeInheritedProperties) {
- if (!full.isEmpty())
- fProperties = (PropertyDescriptor[]) full.toArray(new PropertyDescriptor[full.size()]);
- if (!inherited.isEmpty())
- createPropertyArray(inherited); // This is actually a list of those NOT inherited.
- }
- }
- }
-
- protected void createEventArray(List features) {
- fNotInheritedEventSets = createDescriptorNames(features);
- }
-
- protected void createMethodEntries(List features) {
- int s = features.size();
- fNotInheritedMethods = new String[s];
- for (int i = 0; i < s; i++) {
- fNotInheritedMethods[i] = longName((MethodDescriptor) features.get(i));
- }
- }
-
- protected String longName(MethodDescriptor md) {
- String n = md.getName();
- StringBuffer sb = new StringBuffer(n.length() + 20);
- sb.append(n);
- sb.append(':');
- Method m = md.getMethod();
- sb.append(m.getName());
- sb.append('(');
- Class[] parms = m.getParameterTypes();
- for (int j = 0; j < parms.length; j++) {
- if (j > 0)
- sb.append(',');
- if (!parms[j].isArray())
- sb.append(parms[j].getName().replace('$', '.'));
- else {
- Class finalType = parms[j].getComponentType();
- int insrt = sb.length();
- while (finalType.isArray()) {
- sb.append("[]"); //$NON-NLS-1$
- finalType = finalType.getComponentType();
- }
- sb.insert(insrt, finalType.getName().replace('$', '.'));
- }
- }
- return sb.toString();
- }
-
- protected void createPropertyArray(List features) {
- fNotInheritedProperties = createDescriptorNames(features);
- }
-
- protected String[] createDescriptorNames(List features) {
- String[] result = new String[features.size()];
- for (int i = 0; i < result.length; i++) {
- result[i] = ((FeatureDescriptor) features.get(i)).getName();
- }
- return result;
- }
-
- protected List addAll(Object[] set) {
- if (set != null) {
- ArrayList l = new ArrayList(set.length);
- for (int i = 0; i < set.length; i++) {
- l.add(set[i]);
- }
- return l;
- } else
- return Collections.EMPTY_LIST;
- }
-
- /**
- * If this returns true, then all of the super class's events should be merged in. If it returns false, then the events returned are it, there are
- * no others.
- */
- public boolean isMergeInheritedEvents() {
- return fMergeInheritedEvents;
- }
-
- /**
- * If this returns true, then all of the super class's methods should be merged in. If it returns false, then the methods returned are it, there
- * are no others.
- */
- public boolean isMergeInheritedMethods() {
- return fMergeInheritedMethods;
- }
-
- /**
- * If this returns true, then all of the super class's properties should be merged in. If it returns false, then the properties returned are it,
- * there are no others.
- */
- public boolean isMergeInheritedProperties() {
- return fMergeInheritedProperties;
- }
-
- public BeanInfo[] getAdditionalBeanInfo() {
- return fTargetBeanInfo.getAdditionalBeanInfo();
- }
-
- public BeanDescriptor getBeanDescriptor() {
- return fTargetBeanInfo.getBeanDescriptor();
- }
-
- public EventSetDescriptor[] getEventSetDescriptors() {
- return fMergeInheritedEvents ? fEventSets : fTargetBeanInfo.getEventSetDescriptors();
- }
-
- public java.awt.Image getIcon(int iconKind) {
- return fTargetBeanInfo.getIcon(iconKind);
- }
-
- public MethodDescriptor[] getMethodDescriptors() {
- return fMergeInheritedMethods ? fMethods : fTargetBeanInfo.getMethodDescriptors();
- }
-
- public PropertyDescriptor[] getPropertyDescriptors() {
- return fMergeInheritedProperties ? fProperties : fTargetBeanInfo.getPropertyDescriptors();
- }
-
- public String[] getNotInheritedEventSetDescriptors() {
- return fNotInheritedEventSets;
- }
-
- public String[] getNotInheritedMethodDescriptors() {
- return fNotInheritedMethods;
- }
-
- public String[] getNotInheritedPropertyDescriptors() {
- return fNotInheritedProperties;
- }
-
- protected String computeKey(FeatureDescriptor feature) {
- return feature instanceof MethodDescriptor ? longName((MethodDescriptor) feature) : feature.getName();
- }
-
- /*
- * Strip the list down using the Equality objects.
- */
- protected boolean stripList(List fullList, List inheritedList) {
- // The process is to create a boolean list mirroring the inheritedList.
- // This boolean list indicates if the corresponding (by index)
- // entry from the inheritedList is to be retained in the final computed
- // list.
- //
- // A Hashmap is created where the key is the computedKey from the inheritedList
- // and the value is the index into the inheritedList. This is so that we can quickly determine if the
- // entry is matching.
- //
- // Then the fullList will be stepped through and see if there is
- // an entry in the Hashmap for it. If there is an entry, then
- // the entry is checked to see if it is semantically equal.
- // If it is, then the boolean list entry is marked so that
- // the inheritedList entry will be retained, the fullList entry removed and the counter
- // of the number of entries in the inheritedList copy is incremented.
- // If they aren't semantically equal, then we know that this is
- // an override. In that case, the fullList entry is kept, the inheritedList
- // entry is not retained, but we don't prevent merge later.
- //
- // If the fullList entry is not found in the HashMap, then we know it is not
- // from the inheritedList, so it will be retained in the fullList.
- //
- // If we get all of the way through, then we know that what is left
- // in fullList is just this level.
- //
- // When we return we know that
- // a) fullList has only the features that are found at the local level
- // b) inheritedList if not empty contains the ones from super that SHOULD NOT be inherited.
- // If it is empty, then if this method returns true, then ALL should be inherited,
- // or if this method returns false, then it doesn't matter because we aren't merging any.
- //
- // All of this is based upon the assumption that the list can
- // get quite large (which it does for javax.swing) and that
- // a simple n-squared order search would be too slow.
-
- if (fullList.isEmpty()) {
- return false; // There are none in the full list, so there should be none, and don't merge.
- } else if (inheritedList.isEmpty())
- return false; // There are no inheritedList features, so treat as no merge.
-
- // We have some features and some inheritedList features, so we need to go through the lists.
-
- // Create a working copy of the FeatureDescriptorEquality for fullList and stripList and just reuse them
- FeatureDescriptorEquality workingStrip = FeatureDescriptorEquality.createEquality((FeatureDescriptor) inheritedList.get(0));
- FeatureDescriptorEquality workingFull = FeatureDescriptorEquality.createEquality((FeatureDescriptor) fullList.get(0));
-
- int inheritedSize = inheritedList.size();
- boolean[] copy = new boolean[inheritedSize];
-
- HashMap inheritedMap = new HashMap(inheritedSize);
- for (int i = 0; i < inheritedSize; i++) {
- FeatureDescriptor f = (FeatureDescriptor) inheritedList.get(i);
- String key = computeKey(f);
- Object value = inheritedMap.get(key);
- if (value == null)
- inheritedMap.put(key, new Integer(i));
- else {
- // Shouldn't occur.
- }
-
- }
-
- // When we are done with this processing, inheritedList will contain the super that should not be used, and full list will contain only the locals
- // (those defined at this class level).;
- int inheritedRetained = 0;
- Iterator fullItr = fullList.iterator();
- // Continue while we've retained less than the full super amount. If we've retained all of the inheritedList, there is no
- // need to continue processing the fullList because there can't possibly be any inheritedList entries left to find.
- while (inheritedRetained < inheritedSize && fullItr.hasNext()) {
- FeatureDescriptor f = (FeatureDescriptor) fullItr.next();
- boolean foundFull = false;
- Object index = inheritedMap.get(computeKey(f));
- if (index != null) {
- workingFull.setFeature(f);
- int ndx = ((Integer) index).intValue();
- workingStrip.setFeature((FeatureDescriptor) inheritedList.get(ndx));
- if (workingFull.equals(workingStrip)) {
- // They are semantically identical, so retain in the inheritedList.
- copy[ndx] = true;
- foundFull = true;
- inheritedRetained++;
- }
- }
-
- if (foundFull) {
- // We found the inheritedList entry semantically equal in the full list somewhere, so we need to remove the full entry.
- fullItr.remove();
- }
- }
-
- if (inheritedRetained == inheritedSize) {
- inheritedList.clear(); // All were found in inheritedList, so just clear the inheritedList and return just what was left in the found.
- // Those in full found in super had been removed from full during the processing.
- return true; // We merge with all inherited.
- } else if (inheritedRetained != 0) {
- // Some were retained, take out of the list those that were retained.
- // When done the list will contain those that should be dropped from the inherited list.
- // We start from end because the actual number of bytes moved overall will be less than if we started from the front.
- for (ListIterator itr = inheritedList.listIterator(inheritedList.size()); itr.hasPrevious();) {
- int i = itr.previousIndex();
- itr.previous(); // To back up the itr so that remove can remove it. We actually don't care what the value is.
- if (copy[i])
- itr.remove();
- }
- return true; // We merge, and the list is not empty but it did have some removed, so we leave the list alone. Those are not inherited.
- } else
- return false; // All were removed (retained == 0). None were retained. So we just don't do a merge. The list will be ignored.
- }
-
- // The modeling beaninfo is also used to send itself back in serialized mode as a callback.
-
- private IVMCallbackServer vmServer;
-
- private int callbackID;
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.common.ICallback#initializeCallback(org.eclipse.jem.internal.proxy.common.IVMServer, int)
- */
- public void initializeCallback(IVMCallbackServer vmServer, int callbackID) {
- this.vmServer = vmServer;
- this.callbackID = callbackID;
- }
-
- public void send() throws IOException, CommandException {
- if (doFlags != 0) {
- ObjectOutputStream stream = new ObjectOutputStream(vmServer.requestStream(callbackID, 0));
- if ((doFlags & IBeanInfoIntrospectionConstants.DO_BEAN_DECOR) != 0)
- sendBeanDecorator(stream);
- if ((doFlags & IBeanInfoIntrospectionConstants.DO_PROPERTIES) != 0)
- sendPropertyDecorators(stream);
- if ((doFlags & IBeanInfoIntrospectionConstants.DO_METHODS) != 0)
- sendMethodDecorators(stream);
- if ((doFlags & IBeanInfoIntrospectionConstants.DO_EVENTS) != 0)
- sendEventDecorators(stream);
- stream.writeInt(IBeanInfoIntrospectionConstants.DONE);
- stream.close();
- }
- }
-
- /**
- * Called by IDE to send the bean decorator information back through the callback.
- * @throws CommandException
- * @throws IOException
- *
- * @since 1.1.0
- */
- public void sendBeanDecorator(ObjectOutputStream stream) throws IOException, CommandException {
- BeanRecord br = new BeanRecord();
- BeanDescriptor bd = getBeanDescriptor();
-
- if (bd != null) {
- br.customizerClassName = getClassName(bd.getCustomizerClass());
- br.mergeInheritedProperties = isMergeInheritedProperties();
- br.mergeInheritedOperations = isMergeInheritedMethods();
- br.mergeInheritedEvents = isMergeInheritedEvents();
- br.notInheritedPropertyNames = getNotInheritedPropertyDescriptors();
- br.notInheritedOperationNames = getNotInheritedMethodDescriptors();
- br.notInheritedEventNames = getNotInheritedEventSetDescriptors();
- fill(bd, br, BEAN_RECORD_TYPE);
- }
- stream.writeInt(IBeanInfoIntrospectionConstants.BEAN_DECORATOR_SENT);
- stream.writeObject(br);
- }
-
- /**
- * Called by IDE to send the property decorators information back through the callback.
- *
- * @throws CommandException
- * @throws IOException
- * @since 1.1.0
- */
- public void sendPropertyDecorators(ObjectOutputStream stream) throws IOException, CommandException {
- PropertyDescriptor[] properties = getPropertyDescriptors();
- if (properties != null && properties.length > 0) {
- // Now start writing the records.
- stream.writeInt(IBeanInfoIntrospectionConstants.PROPERTY_DECORATORS_SENT);
- stream.writeInt(properties.length);
- for (int i = 0; i < properties.length; i++) {
- PropertyDescriptor pd = properties[i];
- // Much of the two types are common, so if indexed, fill in the index part and then pass on to property part.
- PropertyRecord usepr = null;
- int useType = 0;
- if (pd.getClass() == IndexedPropertyDescriptor.class) {
- IndexedPropertyDescriptor ipd = (IndexedPropertyDescriptor) pd;
- IndexedPropertyRecord ipr = new IndexedPropertyRecord();
- usepr = ipr;
- useType = INDEXEDPROPERTY_RECORD_TYPE;
- ipr.indexedReadMethod = getReflectedMethodRecord(ipd.getIndexedReadMethod());
- ipr.indexedWriteMethod = getReflectedMethodRecord(ipd.getIndexedWriteMethod());
- ipr.indexedPropertyTypeName = getClassName(ipd.getIndexedPropertyType());
- } else {
- usepr = new PropertyRecord();
- useType = PROPERTY_RECORD_TYPE;
- }
- usepr.propertyEditorClassName = getClassName(pd.getPropertyEditorClass());
- usepr.propertyTypeName = getClassName(pd.getPropertyType());
- usepr.readMethod = getReflectedMethodRecord(pd.getReadMethod());
- usepr.writeMethod = getReflectedMethodRecord((pd.getWriteMethod()));
- usepr.bound = pd.isBound();
- usepr.constrained = pd.isConstrained();
- usepr.designTime = null;
- usepr.field = null;
- fill(pd, usepr, useType);
- stream.writeObject(usepr);
- }
- }
- }
-
- /**
- * Called by IDE to send the method decorators information back through the callback.
- *
- * @throws CommandException
- * @throws IOException
- * @since 1.1.0
- */
- public void sendMethodDecorators(ObjectOutputStream stream) throws IOException, CommandException {
- MethodDescriptor[] methods = getMethodDescriptors();
- if (methods != null && methods.length > 0) {
- // Now start writing the records.
- stream.writeInt(IBeanInfoIntrospectionConstants.METHOD_DECORATORS_SENT);
- stream.writeInt(methods.length);
- for (int i = 0; i < methods.length; i++) {
- MethodRecord mr = new MethodRecord();
- fill(mr, methods[i]);
- stream.writeObject(mr);
- }
- }
- }
-
- /**
- * Fill in a MethodRecord from the MethodDescriptor.
- * @param mr
- * @param md
- *
- * @since 1.1.0
- */
- protected void fill(MethodRecord mr, MethodDescriptor md) {
- mr.methodForDescriptor = getReflectedMethodRecord(md.getMethod());
- ParameterDescriptor[] parms = md.getParameterDescriptors();
- if (parms == null)
- mr.parameters = null;
- else {
- mr.parameters = new ParameterRecord[parms.length];
- for (int j = 0; j < parms.length; j++) {
- ParameterRecord pr = new ParameterRecord();
- fill(parms[j], pr, PARAMETER_RECORD_TYPE);
- mr.parameters[j] = pr;
- }
- }
- fill(md, mr, METHOD_RECORD_TYPE);
- }
-
- /**
- * Called by IDE to send the event set decorators information back through the callback.
- *
- * @throws CommandException
- * @throws IOException
- * @since 1.1.0
- */
- public void sendEventDecorators(ObjectOutputStream stream ) throws IOException, CommandException {
- EventSetDescriptor[] events = getEventSetDescriptors();
- if (events != null && events.length > 0) {
- // Now start writing the records.
- stream.writeInt(IBeanInfoIntrospectionConstants.EVENT_DECORATORS_SENT);
- stream.writeInt(events.length);
- for (int i = 0; i < events.length; i++) {
- EventSetDescriptor ed = events[i];
- EventSetRecord er = new EventSetRecord();
- er.addListenerMethod = getReflectedMethodRecord(ed.getAddListenerMethod());
- MethodDescriptor[] mds = ed.getListenerMethodDescriptors();
- if (mds == null)
- er.listenerMethodDescriptors = null;
- else {
- er.listenerMethodDescriptors = new MethodRecord[mds.length];
- for (int j = 0; j < mds.length; j++) {
- fill(er.listenerMethodDescriptors[j] = new MethodRecord(), mds[j]);
- }
- }
- er.listenerTypeName = getClassName(ed.getListenerType());
- er.removeListenerMethod = getReflectedMethodRecord(ed.getRemoveListenerMethod());
- er.inDefaultEventSet = ed.isInDefaultEventSet();
- er.unicast = ed.isUnicast();
- er.eventAdapterClassName = null;
- fill(ed, er, EVENTSET_RECORD_TYPE);
- stream.writeObject(er);
- }
- }
- }
-
- protected static final int BEAN_RECORD_TYPE = 0;
-
- protected static final int PROPERTY_RECORD_TYPE = 1;
-
- protected static final int INDEXEDPROPERTY_RECORD_TYPE = 2;
-
- protected static final int METHOD_RECORD_TYPE = 3;
-
- protected static final int PARAMETER_RECORD_TYPE = 4;
-
- protected static final int EVENTSET_RECORD_TYPE = 5;
-
- /**
- * Fill in the special attr/values for the given record type. The default handles the standard ones.
- *
- * @param record
- * @param descr
- * @param attributeName
- * @param recordType
- * type of record ultimately being processed.
- * @return true
if this attribute is a special one and processed, false
if not special and should be added to
- * attributes list transferred to IDE.
- *
- * @see ModelingBeanInfo#PROPERTY_RECORD_TYPE
- * @since 1.1.0
- */
- protected boolean fillFromAttributes(FeatureRecord record, FeatureDescriptor descr, String attributeName, int recordType) {
- switch (recordType) {
- case INDEXEDPROPERTY_RECORD_TYPE:
- case PROPERTY_RECORD_TYPE:
- if (BaseBeanInfo.DESIGNTIMEPROPERTY.equals(attributeName)) {
- ((PropertyRecord) record).designTime = (Boolean) descr.getValue(attributeName);
- return true;
- } else if (BaseBeanInfo.FIELDPROPERTY.equals(attributeName)) {
- Field f = (Field) descr.getValue(attributeName);
- // We have a field, set the property type to this since we couldn't correctly create this otherwise.
- PropertyRecord pr = (PropertyRecord) record;
- pr.propertyTypeName = getClassName(f.getType());
- pr.field = getReflectedFieldRecord(f);
- pr.readMethod = null; // Need to wipe out our dummy.
- pr.writeMethod = null; // Or if it set, not valid for a field.
- return true;
- }
- break;
- case EVENTSET_RECORD_TYPE:
- if (BaseBeanInfo.EVENTADAPTERCLASS.equals(attributeName)) {
- ((EventSetRecord) record).eventAdapterClassName = (String) descr.getValue(attributeName);
- return true;
- }
- break;
- default:
- break; // Didn't handle it.
- }
- return false;
- }
-
- /**
- * Fill in the feature portion of the Descriptor into the record. We can be reusing some records (so we don't keep allocating when not needed), so
- * we will null out unset fields.
- *
- * @param descr
- * @param record
- * @param recordType
- * type of record ultimately being processed. Used for fillFromAttributes.
- *
- * @see ModelingBeanInfo#PROPERTY_RECORD_TYPE
- * @since 1.1.0
- */
- protected void fill(FeatureDescriptor descr, FeatureRecord record, int recordType) {
- record.name = descr.getName();
- String dn = descr.getDisplayName();
- if (!record.name.equals(dn))
- record.displayName = dn; // display name returns name if display name not set. We don't want to send it if identical. (Note some Beaninfos are setting displayname the same text but not same string).
- else
- record.displayName = null;
- String shd = descr.getShortDescription();
- if (!dn.equals(shd))
- record.shortDescription = shd; // short description returns displayname if short description not set. We don't want to send it if
- // identical.
- else
- record.shortDescription = null;
- record.expert = descr.isExpert();
- record.hidden = descr.isHidden();
- record.preferred = descr.isPreferred();
- record.category = null; // Clear out in case not set.
- Enumeration attrs = descr.attributeNames();
- if (attrs.hasMoreElements()) {
- // We don't have a way of knowing how many there are ahead of time, so we will build into lists and then turn into arrays at the end.
- List names = new ArrayList();
- List values = new ArrayList();
- while (attrs.hasMoreElements()) {
- String attrName = (String) attrs.nextElement();
- if (attrName.equals(IBaseBeanInfoConstants.CATEGORY))
- record.category = (String) descr.getValue(IBaseBeanInfoConstants.CATEGORY);
- else if (attrName.equals(BaseBeanInfo.PREFERRED)) {
- // A bug in Java 1.3, doing setPreferred was lost. So for those also stored it in attributes. So if set here, then use it.
- record.preferred = ((Boolean) descr.getValue(BaseBeanInfo.PREFERRED)).booleanValue();
- } else if (!fillFromAttributes(record, descr, attrName, recordType)) {
- // Just copy accross. FillfromAttributes didn't handle it.
- FeatureAttributeValue fv = new FeatureAttributeValue();
- fv.setValue(descr.getValue(attrName));
- names.add(attrName);
- values.add(fv);
- }
- }
- if (!names.isEmpty()) {
- record.attributeNames = (String[]) names.toArray(new String[names.size()]);
- record.attributeValues = (FeatureAttributeValue[]) values.toArray(new FeatureAttributeValue[values.size()]);
- } else {
- record.attributeNames = null;
- record.attributeValues = null;
- }
- } else {
- record.attributeNames = null;
- record.attributeValues = null;
- }
-
- }
-
- /*
- * Get the classname from the class. If classs is null, then this return null.
- */
- private String getClassName(Class classs) {
- return classs != null ? classs.getName() : null;
- }
-
- private ReflectMethodRecord getReflectedMethodRecord(Method method) {
- if (method != null) {
- ReflectMethodRecord rmr = new ReflectMethodRecord();
- rmr.className = getClassName(method.getDeclaringClass());
- rmr.methodName = method.getName();
- Class[] parmTypes = method.getParameterTypes();
- if (parmTypes.length > 0) {
- rmr.parameterTypeNames = new String[parmTypes.length];
- for (int i = 0; i < parmTypes.length; i++) {
- rmr.parameterTypeNames[i] = getClassName(parmTypes[i]);
- }
- }
- return rmr;
- } else
- return null;
- }
-
- private ReflectFieldRecord getReflectedFieldRecord(Field field) {
- if (field != null) {
- ReflectFieldRecord rf = new ReflectFieldRecord();
- rf.className = getClassName(field.getDeclaringClass());
- rf.fieldName = field.getName();
- rf.readOnly = Modifier.isFinal(field.getModifiers());
- return rf;
- } else
- return null;
- }
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/ModelingBeanInfo15.java b/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/ModelingBeanInfo15.java
deleted file mode 100644
index db5958910..000000000
--- a/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/ModelingBeanInfo15.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.vm;
-/*
- * $RCSfile: ModelingBeanInfo15.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:31:29 $
- */
-
-import java.beans.BeanInfo;
-
-/**
- * This was supposed to for 1.4 or above where it can use identity
- * to test for inherited features, but it still is not correct
- * in 1.4. See the header comments in ModelingBeanInfo.
- * @see org.eclipse.jem.internal.beaninfo.vm.ModelingBeanInfo
- */
-public class ModelingBeanInfo15 extends ModelingBeanInfo {
-
- /**
- * Constructor for ModelingBeanInfo15.
- * @param beanInfo
- */
- public ModelingBeanInfo15(BeanInfo beanInfo, int doFlags) {
- super(beanInfo, doFlags);
- }
-
- /**
- * Constructor for ModelingBeanInfo15.
- * @param beanInfo
- * @param superBeanInfo
- */
- public ModelingBeanInfo15(BeanInfo beanInfo, BeanInfo superBeanInfo, int doFlags) {
- super(beanInfo, superBeanInfo, doFlags);
- }
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/ModelingBeanInfoPre15.java b/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/ModelingBeanInfoPre15.java
deleted file mode 100644
index 50f553897..000000000
--- a/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/ModelingBeanInfoPre15.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.vm;
-/*
- * $RCSfile: ModelingBeanInfoPre15.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:31:29 $
- */
-
-import java.beans.BeanInfo;
-
-/**
- * This is the modeling BeanInfo for Pre-JDK 1.4.
- */
-public class ModelingBeanInfoPre15 extends ModelingBeanInfo {
-
- public ModelingBeanInfoPre15(BeanInfo beanInfo, int doFlags) {
- super(beanInfo, doFlags);
- }
-
- public ModelingBeanInfoPre15(BeanInfo beanInfo, BeanInfo superBeanInfo, int doFlags) {
- super(beanInfo, superBeanInfo, doFlags);
- }
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/ParameterDescriptorEquality.java b/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/ParameterDescriptorEquality.java
deleted file mode 100644
index 0b06da1fd..000000000
--- a/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/ParameterDescriptorEquality.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.vm;
-/*
- * $RCSfile: ParameterDescriptorEquality.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:31:29 $
- */
-
-import java.beans.*;
-/**
- * ParameterDescriptor equality tester
- */
-public class ParameterDescriptorEquality extends FeatureDescriptorEquality {
-
- static void INIT() {
- try {
- MAP_EQUALITY.put(ParameterDescriptor.class, (ParameterDescriptorEquality.class).getConstructor(new Class[] {ParameterDescriptor.class}));
- } catch (NoSuchMethodException e) {
- }
- }
-
- public ParameterDescriptorEquality() {
- }
-
- public ParameterDescriptorEquality(ParameterDescriptor descr) {
- super(descr);
- }
-
-}
diff --git a/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/PropertyDescriptorEquality.java b/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/PropertyDescriptorEquality.java
deleted file mode 100644
index db1c1dd88..000000000
--- a/plugins/org.eclipse.jem.beaninfo/vm_beaninfovm/org/eclipse/jem/internal/beaninfo/vm/PropertyDescriptorEquality.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.vm;
-/*
- * $RCSfile: PropertyDescriptorEquality.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:31:29 $
- */
-
-import java.beans.*;
-/**
- * PropertyDescriptor equality tester
- */
-public abstract class PropertyDescriptorEquality extends FeatureDescriptorEquality {
-
- public PropertyDescriptorEquality() {
- }
-
- public PropertyDescriptorEquality(PropertyDescriptor descr) {
- super(descr);
- }
- /**
- * Calculate the hashcode for the current feature, add this
- * to the hashcode received from super.calculateHashCode
- * and return the new value.
- *
- * NOTE: for subclasses, it is MANDITORY that the first line be:
- * int hashcode = super.calculateHashCode();
- * and the last line be:
- * return hashcode*31 + (your calculated hashcode for just this subclass);
- */
- protected int calculateHashCode() {
- int hashcode = super.calculateHashCode();
- PropertyDescriptor pd = (PropertyDescriptor) fFeature;
- int hc = 0;
- if (pd.getPropertyEditorClass() != null)
- hc += pd.getPropertyEditorClass().hashCode();
- if (pd.getPropertyType() != null)
- hc += pd.getPropertyType().hashCode();
- if (pd.getReadMethod() != null)
- hc += pd.getReadMethod().hashCode();
- if (pd.getWriteMethod() != null)
- hc += pd.getWriteMethod().hashCode();
-
- hc += (pd.isBound() ? Boolean.TRUE : Boolean.FALSE).hashCode();
- hc += (pd.isConstrained() ? Boolean.TRUE : Boolean.FALSE).hashCode();
-
- return hashcode*31 + hc;
- }
-
- public boolean equals(Object obj) {
- if (identityTest(obj))
- return true;
-
- if (!super.equals(obj))
- return false;
-
- PropertyDescriptor op = (PropertyDescriptor) ((FeatureDescriptorEquality) obj).fFeature;
- PropertyDescriptor fp = (PropertyDescriptor) fFeature;
-
- if (op.getPropertyEditorClass() != fp.getPropertyEditorClass())
- return false;
- if (op.getReadMethod() != fp.getReadMethod())
- return false;
- if (op.getWriteMethod() != fp.getWriteMethod())
- return false;
- if (op.isBound() != fp.isBound())
- return false;
- if (op.isConstrained() != fp.isConstrained())
- return false;
-
- return true;
- }
-
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/.classpath b/plugins/org.eclipse.jem.proxy/.classpath
deleted file mode 100644
index 2ff85e08a..000000000
--- a/plugins/org.eclipse.jem.proxy/.classpath
+++ /dev/null
@@ -1,13 +0,0 @@
-
-About This Content
-
-License
-
-serialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = -4245984020065761634L;
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/CannotProcessInnerClassesException.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/CannotProcessInnerClassesException.java
deleted file mode 100644
index ac390b93b..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/CannotProcessInnerClassesException.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.initParser;
-/*
- * $RCSfile: CannotProcessInnerClassesException.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:07 $
- */
-
-/**
- * This exception is thrown to indicate that inner classes cannot be processed
- */
-public class CannotProcessInnerClassesException extends RuntimeException {
-
- /**
- * Comment for serialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = 8290504580738499445L;
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Cast.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Cast.java
deleted file mode 100644
index 2a1d54e8c..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Cast.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.initParser;
-/*
- * $RCSfile: Cast.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:08 $
- */
-
-
-import java.util.HashMap;
-
-public class Cast extends Expression {
- protected static final int BYTE_TYPE = 0;
- protected static final int SHORT_TYPE = 1;
- protected static final int INT_TYPE = 2;
- protected static final int LONG_TYPE = 3;
- protected static final int FLOAT_TYPE = 4;
- protected static final int DOUBLE_TYPE = 5;
-
- protected static final HashMap sTypeLookup;
- static {
- sTypeLookup = new HashMap(6);
- sTypeLookup.put(Byte.TYPE, new Integer(BYTE_TYPE));
- sTypeLookup.put(Short.TYPE, new Integer(SHORT_TYPE));
- sTypeLookup.put(Integer.TYPE, new Integer(INT_TYPE));
- sTypeLookup.put(Long.TYPE, new Integer(LONG_TYPE));
- sTypeLookup.put(Float.TYPE, new Integer(FLOAT_TYPE));
- sTypeLookup.put(Double.TYPE, new Integer(DOUBLE_TYPE));
- }
-
- protected Static fCastType;
- protected boolean fIsClosed = false;
-
- public Cast(Static castType, ClassLoader aClassLoader) {
- fCastType = castType;
- fClassLoader = aClassLoader;
- }
-
- public boolean isPrimitive() throws Exception {
- return getTypeClass().isPrimitive();
- }
-
- /**
- * The type of a Cast expression is the type of the cast type.
- */
- public Class getTypeClass() throws Exception {
- return fCastType.getTypeClass();
- }
-
-
- public boolean isComplete() {
- return currentExpression != null && currentExpression.isComplete();
- }
-
- /**
- * If the type is primitive, then we need to
- * convert the value, otherwise just pass
- * the value on.
- *
- * This is important for primitives because if your
- * entire initialization string was simply "(short) 3"
- * then a Short value must be returned so that the
- * correct kind of primitive proxy is created.
- */
- public Object evaluate() throws Exception {
- if (getTypeClass() == currentExpression.getTypeClass())
- return currentExpression.evaluate(); // They're the same, so just return it.
- if (getTypeClass().isPrimitive()) {
- // Can only cast a primitive to a primitive, except null can't be cast to a primitive.
- if (!currentExpression.getTypeClass().isPrimitive() || currentExpression.getTypeClass() == Void.TYPE)
- throw new EvaluationException(new ClassCastException(currentExpression.getTypeClass().getName()));
- // boolean only allows boolean cast.
- if (fCastType.getTypeClass() == Boolean.TYPE || currentExpression.getTypeClass() == Boolean.TYPE)
- throw new EvaluationException(new ClassCastException(currentExpression.getTypeClass().getName()));
- if (fCastType.getTypeClass() == Character.TYPE) {
- // So we have either a Character or a number as the value. Cast that.
- return new Character((char) ((Number) currentExpression.evaluate()).intValue());
- } else {
- Number value = null;
- // See if the value is character or a number.
- if (currentExpression.getTypeClass() == Character.TYPE)
- value = new Integer(((Character) currentExpression.evaluate()).charValue());
- else
- value = (Number) currentExpression.evaluate();
- switch (((Integer) sTypeLookup.get(fCastType.getTypeClass())).intValue()) {
- case BYTE_TYPE:
- return new Byte(value.byteValue());
- case SHORT_TYPE:
- return new Short(value.shortValue());
- case INT_TYPE:
- return new Integer(value.intValue());
- case LONG_TYPE:
- return new Long(value.longValue());
- case FLOAT_TYPE:
- return new Float(value.floatValue());
- case DOUBLE_TYPE:
- return new Double(value.doubleValue());
- default:
- return null; // Shouldn't occur. Just satisifies compiler.
- }
- }
-
- } else
- return currentExpression.evaluate();
- }
- /**
- * A cast expression always pushes onto the cast value
- */
- public Expression push(char[] token , char tokenDelimiter) {
- // If we don't have a class yet then we are within the statement to try and deterine the type being cast to
- if(fCastType.getPrimitiveTypeClass() == null && !fIsClosed){
- fCastType.push(token,tokenDelimiter);
- // If the type was completed and we have a ) then close us
- if(fCastType.getPrimitiveTypeClass() != null && tokenDelimiter == DelimiterCloseParen){
- fIsClosed = true;
- }
- return this;
- }
-
- if (!fIsClosed) {
- // The cast is not closed, but we have a static class. This class must therefore keep processing the tokens as it could be a method or message send
- Expression result = fCastType.push(token,tokenDelimiter);
- result.parenthesisLevel++;
- return result;
- }
-
- // If we have no expression push onto the cast value
- if(currentExpression == null){
- currentExpression = new Statement(fClassLoader);
- currentExpression = currentExpression.push(token,tokenDelimiter);
- return this;
- }
- Expression result = currentExpression.push(token, tokenDelimiter);
- // If the result if a push then push the stack
- if ( result.isComplete() ) {
- popExpressionStack();
- } else if ( result != currentExpression ) {
- pushExpressionStack(result);
- }
- return this;
- }
- public String toString(){
- StringBuffer buffer = new StringBuffer();
- buffer.append("Cast("); //$NON-NLS-1$
- if (fCastType != null){
- buffer.append(fCastType.toString());
- } else {
- buffer.append("???"); //$NON-NLS-1$
- }
- buffer.append(") "); //$NON-NLS-1$
- if ( currentExpression != null){
- buffer.append(currentExpression.toString());
- } else {
- buffer.append("???"); //$NON-NLS-1$
- }
- return buffer.toString();
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.initParser.Expression#getTypeClassName()
- */
- protected String getTypeClassName() {
- return fCastType.getTypeClassName();
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/CharLiteral.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/CharLiteral.java
deleted file mode 100644
index a0dd4d834..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/CharLiteral.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.initParser;
-/*
- * $RCSfile: CharLiteral.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:07 $
- */
-
-import java.text.MessageFormat;
-
-
-
-public class CharLiteral extends Expression {
- protected boolean isComplete;
- public char value;
- public StringBuffer valueBuffer = new StringBuffer();
- protected boolean isEscaped = false;
-
-/**
- * constructor
- */
-public CharLiteral(){
-}
-
-/**
- * evaluate method comment.
- */
-public Object evaluate() throws Exception {
- if (valueBuffer.length() == 1)
- return new Character(valueBuffer.charAt(0));
- else
- throw new EvaluationException(
- new IllegalArgumentException(MessageFormat.format(ProxyInitParserMessages.getString("CharTooComplicated_EXC_"), //$NON-NLS-1$
- new Object[] {valueBuffer.toString()})));
-}
-
-public boolean isComplete(){
- return isComplete;
-}
-/**
- * We must evaluate ourself and return the type of the result
- */
-
-public Class getTypeClass() {
- return Character.TYPE;
-}
-
-protected String getTypeClassName() {
- return Character.TYPE.getName();
-}
-/**
- *This string might be broken into a few tokens
- *so we need a StringBuffer
- */
-public Expression push(char[] token , char delimiter){
-
- if (isEscaped) {
- isEscaped = false;
- if (token.length != 0) {
- // Had an escape followed by stuff, so not a true esc for our current definition
- valueBuffer.append(DelimiterEscape);
- } else {
- if (delimiter == DelimiterSingleQuote || delimiter == DelimiterEscape)
- valueBuffer.append(delimiter); // It was a true escape.
- else {
- valueBuffer.append(DelimiterEscape); // If wasn't a true escape
- valueBuffer.append(delimiter);
- }
- return this;
- }
- }
-
- valueBuffer.append(token);
-
- if (delimiter == DelimiterSingleQuote){
- isComplete =true;
- return this;
- }
-
- // If the delimiter is an escape character remember it so we can escape
- // the next token, otherwise treat it as a literal
- if (delimiter == DelimiterEscape ){
- isEscaped = true;
- } else {
- valueBuffer.append(delimiter);
- }
- return this;
-}
-
-/**
- * chars are primitives.
- */
-public boolean isPrimitive() {
- return true;
-}
-public String toString(){
- StringBuffer buffer = new StringBuffer();
- buffer.append("Char('"); //$NON-NLS-1$
- if ( valueBuffer != null ) {
- buffer.append(valueBuffer.toString());
- }
- buffer.append(')');
- return buffer.toString();
-}
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Constructor.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Constructor.java
deleted file mode 100644
index 4afa2638d..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Constructor.java
+++ /dev/null
@@ -1,339 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.proxy.initParser;
-/*
- * $RCSfile: Constructor.java,v $
- * $Revision: 1.6 $ $Date: 2006/05/17 20:13:05 $
- */
-
-
-import java.util.*;
-
-import org.eclipse.jem.internal.proxy.common.AmbiguousMethodException;
-import org.eclipse.jem.internal.proxy.common.MethodHelper;
-/**
- * Insert the type's description here.
- * Creation date: (11/01/00 8:52:36 PM)
- * @author: Administrator
- */
-public class Constructor extends Expression {
- public boolean argsOpened = false;
- public boolean argsClosed = false;
- public boolean trailingPeriod = false;
- public ArrayList arguments = new ArrayList(2);
- public Static type;
- protected boolean fIsComplete;
- public boolean insideArgsOpenedParen = false;
- public boolean insideArgsClosedParen = false;
- public boolean isString = false;
- public java.lang.reflect.Constructor ctor;
-/**
- * Constructor constructor comment.
- */
-public Constructor(ClassLoader aClassLoader) {
- super();
- fClassLoader = aClassLoader;
-}
-
-public boolean isComplete(){
- return fIsComplete;
-}
-
-/**
- * Invoke the construtor
- */
-public Object evaluate() throws Exception {
-
- if ( type.isArray() ) {
- // For arrays we get the array that is actually held inside the static
- // To instantiate the array it is possible that the static knows the array size, e.g. new int[2]
- // or else it must be given this from the number of arguments we have, e.g. new int[] { 2 , 3 }
- if ( arguments.size() > 0 ) {
- type.setArrayArguments(arguments);
- }
- Object result = type.evaluate();
- // Deal with array initialization arguments
- return result;
- } else {
- // For non arrays we find the method and invoke it on the type
- cacheCtor();
- // Get the array of arguments
- Object[] args = new Object[arguments.size()];
- Iterator itr = arguments.iterator();
- for (int i = 0; i < arguments.size() ; i++){
- Expression anExpression = (Expression)itr.next();
- args[i] = anExpression.evaluate();
- }
-
- try {
- return ctor.newInstance(args);
- } catch (Exception e) {
- // If we got this far, then we have a valid parse, so anything is an evaluation exception.
- throw new EvaluationException(e);
- }
- }
-}
-/** A constructor can only return the class of its type
- */
-public Class getTypeClass() throws Exception {
- if ( type.isArray() ) {
- // For arrays we get the array that is actually held inside the static
- // To instantiate the array it is possible that the static knows the array size, e.g. new int[2]
- // or else it must be given this from the number of arguments we have, e.g. new int[] { 2 , 3 }
- if ( arguments.size() > 0 ) {
- type.setArrayArguments(arguments);
- }
- }
- return type.getTypeClass();
-}
-
-protected String getTypeClassName() {
- return type.getTypeClassName();
-}
-
-private void cacheCtor() throws Exception {
-
- if (ctor == null) {
- Class[] argTypes = new Class[arguments.size()];
- Iterator itr = arguments.iterator();
- for (int i=0; iserialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = -6997239021885310986L;
-
- /**
- * Constructor for ReturnableException.
- * @param exc
- */
- public EvaluationException(Throwable exc) {
- super(exc instanceof InvocationTargetException ? ((InvocationTargetException) exc).getTargetException() : exc);
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Expression.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Expression.java
deleted file mode 100644
index 5e7ec38a0..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Expression.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.initParser;
-/*
- * $RCSfile: Expression.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import java.util.*;
-/**
- * Insert the type's description here.
- * Creation date: (11/01/00 8:46:44 PM)
- * @author: Administrator
- */
-public abstract class Expression implements IParserConstants {
- protected Expression currentExpression;
- protected List fExpressionStack;
- protected ClassLoader fClassLoader;
- public int parenthesisLevel = 0;
-/** Compare the two char arrays
- */
-public static boolean compare(char[] from , char[] to){
-
- return Arrays.equals(from, to);
-}
-/**
- * Expression constructor comment.
- * Note: If any exceptions that are due to evaluation, and not due to some
- * invalid state, then the exception should be wrappered in an EvaluationException,
- * and the EvaluationException thrown instead. This way we can distinquish between
- * valid exceptions that result evaluations (such as null pointer exceptions) from
- * parser errors due to string is too complicated.
- */
-public abstract Object evaluate() throws Exception;
-
-public abstract boolean isComplete();
-/**
- * Return a class type that the expression syntactically would produce.
- * For example, if a field is of type XYZ, return XYZ, even though
- * the value of the field may be SubXYZ where SubXYZ is a subclass of XYZ.
- */
-public abstract Class getTypeClass() throws Exception;
-/**
- * In evaluation phase, get the type class from the expression.
- * If typeclass not found, then a ClassCastException is thrown.
- * @param exp To getTypeClass from
- * @return type class.
- * @throws Exception ClassNotFoundException if type not found.
- */
-public Class getEvaluationTypeClass(Expression exp) throws Exception {
- Class cls = exp.getTypeClass();
- if (cls == null)
- throw new EvaluationException(new ClassNotFoundException(exp.getTypeClassName()));
- return cls;
-}
-
-/**
- * @return Type name that should be returned from this expression.
- */
-protected abstract String getTypeClassName();
-
-public boolean isNumber(char[] token){
-
- if ( token.length == 0) return false;
- // See whether the token is a number
- int parsePosition = 0;
- // Take into account it may start with a - sign, e.g. -1
- if ( token[0] == '-' ) parsePosition = 1;
- for (int i = parsePosition; i < token.length ; i++){
- // If the next token is a digit return true
- // Other things like decimals or primitive types, e.g. 2.2 or 2.2f are
- // handled by NumberLiteral
- return Character.isDigit(token[i]);
- }
- return true;
-}
-public boolean isPop(){
- return false;
-}
-protected void popExpressionStack(){
-
- if ( fExpressionStack != null && fExpressionStack.size() > 0 ) {
- currentExpression = (Expression) fExpressionStack.remove(fExpressionStack.size()-1);
- }
-}
-protected void pushExpressionStack(Expression anExpression){
-
- if ( fExpressionStack == null ) fExpressionStack = new ArrayList(2);
- // The current expression should go onto the stack
- fExpressionStack.add(currentExpression);
- // The current expression is replaced with the argument
- currentExpression = anExpression;
-
-}
-
-void setClassLoader(ClassLoader aClassLoader){
-}
-
-/**
- * Push an expression onto us
- * Return the new expression onto which subsequent token should be pushed
- */
-public abstract Expression push(char[] token , char tokenDelimiter);
-
-/**
- * Answer if this expression results in a primitive.
- */
-public abstract boolean isPrimitive() throws Exception;
-
-public String toString(int depth, boolean aBreak){
- StringBuffer buffer = new StringBuffer();
- if ( aBreak ) {
- buffer.append(System.getProperty("System.lineSeparator")); //$NON-NLS-1$
- }
- for(int i=0;iserialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = -8633390926210276727L;
-public InitializationStringEvaluationException(Throwable exc){
- super(exc);
-}
-public Throwable getOriginalException(){
- return getCause();
-}
-}
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/InitializationStringParser.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/InitializationStringParser.java
deleted file mode 100644
index 893ce84f9..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/InitializationStringParser.java
+++ /dev/null
@@ -1,300 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.initParser;
-/*
- * $RCSfile: InitializationStringParser.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import java.util.ArrayList;
-/**
- * Insert the type's description here.
- * Creation date: (11/01/00 8:53:45 PM)
- * @author: Administrator
- */
-public class InitializationStringParser implements IParserConstants {
- protected ClassLoader fClassLoader;
- protected boolean isComplete = false;
- protected String fInitString;
- protected int fSourceLength;
- protected char[] fSource;
- protected int fSourcePosition = -1;
- private char[] fCurrentToken;
- private char fCurrentTokenDelimiter = 0;
- protected ArrayList fExpressionStack = new ArrayList(4);
- protected Expression fExpression;
-/**
- * InitializationStringParser constructor comment.
- */
-public InitializationStringParser(String initString){
-
- fInitString = initString;
- fSource = initString.toCharArray();
- fSourceLength = fSource.length;
-
-}
-/** Look for a known token
- */
-protected void createNextToken(){
-
- fCurrentTokenDelimiter = 0;
- if ( fSourcePosition >= fSourceLength - 1 ) {
- isComplete = true;
- return;
- }
-
- fSourcePosition++;
- // If we are not in a token then look for " " or else for a period
- char[] fCurrentTokenSource = new char[fSourceLength];
- int i = 0;
- scanner : for ( ; fSourcePosition < fSourceLength ; fSourcePosition++ , i++ ){
- // Advance the source position so when finding the next token we skip over the '.' or ' '
- // Record the delimiter that was found
- switch ( fSource[fSourcePosition] ) {
- case DelimiterPeriod: {
- fCurrentTokenDelimiter = DelimiterPeriod;
- break scanner;
- }
- case DelimiterOpenParen: {
- fCurrentTokenDelimiter = DelimiterOpenParen;
- break scanner;
- }
- case DelimiterCloseParen: {
- fCurrentTokenDelimiter = DelimiterCloseParen;
- break scanner;
- }
- case DelimiterComma: {
- fCurrentTokenDelimiter = DelimiterComma;
- break scanner;
- }
- case DelimiterSpace: {
- fCurrentTokenDelimiter = DelimiterSpace;
- break scanner;
- }
- case DelimiterQuote: {
- fCurrentTokenDelimiter = DelimiterQuote;
- break scanner;
- }
- case DelimiterSingleQuote: {
- fCurrentTokenDelimiter = DelimiterSingleQuote;
- break scanner;
- }
- case DelimiterEscape: {
- fCurrentTokenDelimiter = DelimiterEscape;
- break scanner;
- }
- case DelimiterOpenElipse:{
- fCurrentTokenDelimiter = DelimiterOpenElipse;
- break scanner;
- }
- case DelimiterOpenSquareBrace:{
- fCurrentTokenDelimiter = DelimiterOpenSquareBrace;
- break scanner;
- }
- case DelimiterCloseSquareBrace:{
- fCurrentTokenDelimiter = DelimiterCloseSquareBrace;
- break scanner;
- }
- case DelimiterCloseElipse:{
- fCurrentTokenDelimiter = DelimiterCloseElipse;
- break scanner;
- }
- // Do the math functions
- case OperPlus: {
- fCurrentTokenDelimiter = OperPlus;
- break scanner;
- }
- case OperMinus: {
- fCurrentTokenDelimiter = OperMinus;
- break scanner;
- }
- case OperMultiply: {
- fCurrentTokenDelimiter = OperMultiply;
- break scanner;
- }
- case OperDivide: {
- fCurrentTokenDelimiter = OperDivide;
- break scanner;
- }
- // Do the primitive BitWise operations
- case BitOR: {
- fCurrentTokenDelimiter = BitOR;
- break scanner;
- }
- case BitAND: {
- fCurrentTokenDelimiter = BitAND;
- break scanner;
- }
- default: {
- fCurrentTokenSource[i] = fSource[fSourcePosition];
- }
- }
- }
-
- // Push the token onto the stack for later decoding
- if ( i >= 1 ) {
- fCurrentToken = new char[i];
- System.arraycopy( fCurrentTokenSource , 0 , fCurrentToken , 0 , i );
- } else {
- fCurrentToken = new char[0];
- }
-
-}
-/** Answer the result of evaluating the expression
- */
-public Object evaluate() throws InitializationStringEvaluationException {
-
- try {
- return fExpression.evaluate();
- } catch (java.lang.reflect.InvocationTargetException e) {
- throw new EvaluationException(e);
- } catch (EvaluationException e) {
- throw e; // Don't loose these
- } catch (Throwable e) {
- throw new InitializationStringEvaluationException(e);
- }
-
-}
-public static Object evaluate(String initString) throws InitializationStringEvaluationException {
-
- return evaluate(initString,null);
-
-}
-public static Object evaluate(String initString,ClassLoader aClassLoader) throws InitializationStringEvaluationException {
-
- InitializationStringParser parser = null;;
- try {
- parser = new InitializationStringParser(initString);
- parser.setClassLoader(aClassLoader);
- parser.parse();
- } catch ( Throwable exc ) {
- throw new InitializationStringEvaluationException(exc);
- }
- return parser.evaluate();
-}
-
-/**
- * Return a parser already parsed. Use the default classloader (i.e. classloader that loaded InitializationStringParser).
- *
- * @param initString
- * @return The parser, already parsed.
- * @throws InitializationStringEvaluationException
- */
-
-public static InitializationStringParser createParser(String initString) throws InitializationStringEvaluationException {
- return createParser(initString, null);
-}
-
-/**
- * Return a parser already parsed. Use the given classloader.
- *
- * @param initString
- * @param classLoader
- * @return The parser, already parsed.
- * @throws InitializationStringEvaluationException
- */
-public static InitializationStringParser createParser(String initString, ClassLoader classLoader) throws InitializationStringEvaluationException {
-
- try {
- InitializationStringParser parser = new InitializationStringParser(initString);
- parser.setClassLoader(classLoader);
- parser.parse();
- return parser;
- } catch ( Throwable exc ) {
- throw new InitializationStringEvaluationException(exc);
- }
-
-}
-
-/** Analyze the string
- */
-public void parse(){
-
- createFirstExpression();
- int i =1;
- while ( true ){
- createNextToken();
- if ( isComplete ) {
- // If the current expression is incomplete it must be completed
- // by the end, which is basically the equiavlent of a;
- return;
- } else {
- i++;
- Expression result = fExpression.push( fCurrentToken , fCurrentTokenDelimiter );
- // If the result if a push then push the stack
- if ( result.isComplete() ) {
- popExpressionStack();
- } else if ( result != fExpression ) {
- pushExpressionStack(result);
- }
- }
- }
-}
-
-/**
- * Answer if the string results in a primitive.
- */
-public boolean isPrimitive() throws InitializationStringEvaluationException {
- try {
- return fExpression.isPrimitive();
- } catch (Exception e) {
- throw new InitializationStringEvaluationException(e);
- }
-}
-
-public Class getExpectedType() throws InitializationStringEvaluationException {
- try {
- return fExpression.getTypeClass();
- } catch (Exception e) {
- throw new InitializationStringEvaluationException(e);
- }
-}
-
-/* Pop the top expression off the stack
- */
-protected void popExpressionStack(){
-
- if ( fExpressionStack.size() > 0 ) {
- fExpression = (Expression) fExpressionStack.remove(fExpressionStack.size()-1);
- }
-}
-/* Push the expression onto the stack
- */
-protected void pushExpressionStack(Expression anExpression){
-
- // The current expression should go onto the stack
- fExpressionStack.add(fExpression);
- // The current expression is replaced with the argument
- fExpression = anExpression;
-
-}
-protected void createFirstExpression(){
- if ( fExpression == null ) {
- fExpression = new Statement(fClassLoader);
- };
-}
-public void setClassLoader(ClassLoader aClassLoader){
- fClassLoader = aClassLoader;
-}
-public String toString(){
- StringBuffer writer = new StringBuffer();
- writer.append("Parser. token=\""); //$NON-NLS-1$
- if ( fCurrentToken != null ) {
- writer.append(fCurrentToken);
- }
- writer.append("\", delim=\""); //$NON-NLS-1$
- writer.append(fCurrentTokenDelimiter);
- writer.append("\", initString=\""); //$NON-NLS-1$
- writer.append(fInitString);
- return writer.toString();
-}
-}
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Message.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Message.java
deleted file mode 100644
index be1e0724c..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/Message.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.initParser;
-/*
- * $RCSfile: Message.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.jem.internal.proxy.common.AmbiguousMethodException;
-import org.eclipse.jem.internal.proxy.common.MethodHelper;
-
-public class Message extends Expression {
- protected boolean trailingPeriod = false;
- protected Method fMethod;
- public Expression receiver;
- public String message;
- public boolean argsClosed = false;
- public boolean insideArgsOpenedParen = false;
- public boolean insideArgsClosedParen = false;
- protected boolean isComplete = false;
- public ArrayList arguments = new ArrayList(2);
-
-public Message(Expression aReceiver , char[] token , ClassLoader aClassLoader){
- receiver = aReceiver;
- message = new String(token);
- fClassLoader = aClassLoader;
-}
-public boolean isComplete(){
- return isComplete;
-}
-
-/**
- * Send the message to the receiver
- */
-public Object evaluate() throws Exception {
- cacheMethod();
-
- // Get the array of arguments
- Object[] args = new Object[arguments.size()];
- Iterator itr = arguments.iterator();
- for (int i = 0; i < arguments.size() ; i++){
- Expression anExpression = (Expression)itr.next();
- args[i] = anExpression.evaluate();
- }
-
- Object receiverValue = receiver.evaluate(); // So if evaluation exception thrown, we don't wrapper again.
-
- try {
- return fMethod.invoke(receiverValue, args);
- } catch (Exception e) {
- throw new EvaluationException(e);
- }
-}
-
-/**
- * Cache the message
- */
-protected void cacheMethod() throws Exception {
- if (fMethod == null) {
- Class[] argTypes = new Class[arguments.size()];
- Iterator itr = arguments.iterator();
- for (int i=0; iint
value of the enumerator.
- */
- private final int value;
-
- /**
- * Creates an initialized instance.
- *
- * @param value
- * the int
value of the enumerator.
- * @param name
- * the name of the enumerator.
- */
- protected AbstractEnum(int value, String name) {
- this.name = name;
- this.value = value;
- }
-
- /**
- * Returns the name of the enumerator.
- *
- * @return the name.
- */
- public final String getName() {
- return name;
- }
-
- /**
- * Returns the int
value of the enumerator.
- *
- * @return the value.
- */
- public final int getValue() {
- return value;
- }
-
- /**
- * Returns the name of the enumerator.
- *
- * @return the name.
- */
- public final String toString() {
- return name;
- }
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/Enum.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/Enum.java
deleted file mode 100644
index 7d2fb3e4d..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/Enum.java
+++ /dev/null
@@ -1,37 +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: Enum.java,v $
- * $Revision: 1.1 $ $Date: 2005/05/11 19:01:12 $
- */
-package org.eclipse.jem.internal.proxy.initParser.tree;
-
-/**
- * TypeSafe enumerations for the IExpression processing.
- *
- * @since 1.1.0
- */
-public interface Enum {
-
- /**
- * Returns the name of the enumerator.
- *
- * @return the name.
- */
- String getName();
-
- /**
- * Returns the int
value of the enumerator.
- *
- * @return the value.
- */
- int getValue();
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/ExpressionProcesser.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/ExpressionProcesser.java
deleted file mode 100644
index 4f2b5d811..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/ExpressionProcesser.java
+++ /dev/null
@@ -1,3364 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 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: ExpressionProcesser.java,v $
- * $Revision: 1.24 $ $Date: 2006/05/18 16:52:16 $
- */
-package org.eclipse.jem.internal.proxy.initParser.tree;
-
-import java.lang.reflect.*;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jem.internal.proxy.common.*;
-import org.eclipse.jem.internal.proxy.initParser.InitializationStringEvaluationException;
-import org.eclipse.jem.internal.proxy.initParser.InitializationStringParser;
-
-/**
- * Expression processing. This does the actual expression processing with the live objects.
- * It is meant to be subclassed only to provide additional expression types. All of the
- * current expressions cannot be overridden. This is because the stack is very sensitive to
- * call order.
- *
- * @since 1.0.0
- */
-public class ExpressionProcesser {
-
- /**
- * A variable reference for a field access.
- *
- * @since 1.1.0
- */
- protected static class FieldAccessReference extends VariableReference {
-
- private final Field field;
- private final Object receiver;
-
- /**
- * Use this to construct a FieldAccessReference. This will do checks to make sure
- * it is valid so that exceptions won't be thrown later when actually dereferenced.
- *
- * @param field
- * @param receiver
- * @return
- * @throws IllegalArgumentException
- *
- * @since 1.1.0
- */
- public static FieldAccessReference createFieldAccessReference(Field field, Object receiver) throws IllegalArgumentException {
- // If static, then receiver is ignored.
- if (!Modifier.isStatic(field.getModifiers())) {
- if (!field.getDeclaringClass().isInstance(receiver))
- throw new IllegalArgumentException(MessageFormat.format(InitparserTreeMessages.getString("ExpressionProcesser.CreateFieldAccessReference.FieldsTypesNotMatching_EXC_"), new Object[]{field.getType(), (receiver!=null ? receiver.getClass() : null)})); //$NON-NLS-1$
- }
- field.setAccessible(true); // Make it always accessible. Trust it.
- return new FieldAccessReference(field, receiver);
- }
-
- protected FieldAccessReference(Field field, Object receiver) {
- this.field = field;
- this.receiver = receiver;
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.initParser.tree.ExpressionProcesser.VariableReference#dereference()
- */
- public Object dereference() {
- try {
- return field.get(receiver);
- } catch (IllegalArgumentException e) {
- // Shouldn't occur. Already tested for this.
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- // Shouldn't occur. Already tested for this.
- e.printStackTrace();
- }
- return null;
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.initParser.tree.ExpressionProcesser.VariableReference#set(java.lang.Object, java.lang.Class)
- */
- public Object set(Object value, Class type) throws IllegalArgumentException, IllegalAccessException {
- field.set(receiver, value);
- return field.get(receiver); // Just in case some conversion happened. Technically it is not the value set but the retrieved when in an assignment.
- }
-
-
- /* (non-Javadoc)
- * @see java.lang.Object#toString()
- */
- public String toString() {
- return "FieldAccess{"+field.toString()+"} on "+(receiver != null ? receiver.toString() : "x[3][4]
is the access, then what will be given to this reference will be
- * the array entry at x[3][4], not the x array itself.
- *
- * @since 1.1.0
- */
- protected static class ArrayAccessReference extends VariableReference {
-
-
- private final Object array;
- private final int index;
-
- /**
- * Use this to construct an array access reference. This will do checks to make sure
- * it is valid so that exceptions won't be thrown later when actually dereferenced.
- *
- * @param array
- * @param index
- * @return
- * @throws IllegalArgumentException
- *
- * @since 1.1.0
- */
- public static ArrayAccessReference createArrayAccessReference(Object array, int index) throws IllegalArgumentException, ArrayIndexOutOfBoundsException {
- int len = Array.getLength(array);
- if (index < 0 || len <= index)
- throw new ArrayIndexOutOfBoundsException(MessageFormat.format(InitparserTreeMessages.getString("ExpressionProcesser.CreateArrayAccessReference.OutOfBounds_EXC_"), new Object[]{new Integer(index), new Integer(len)})); //$NON-NLS-1$
- return new ArrayAccessReference(array, index);
- }
- /**
- * Construct the reference with the array and the index of the entry being referenced.
- * @param array
- * @param index
- *
- * @since 1.1.0
- */
- protected ArrayAccessReference(Object array, int index) {
- this.array = array;
- this.index = index;
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.initParser.tree.VariableReference#dereference()
- */
- public Object dereference() {
- return Array.get(array, index);
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.initParser.tree.VariableReference#set(java.lang.Object, java.lang.Class)
- */
- public Object set(Object value, Class type) throws IllegalArgumentException {
- Array.set(array, index, value);
- return Array.get(array, index); // In case there was some conversion applied. Technically it is not the value set but the retrieved when in an assignment.
- }
-
-
- /* (non-Javadoc)
- * @see java.lang.Object#toString()
- */
- public String toString() {
- return "ArrayAccess["+index+"]: "+array.toString(); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- /**
- * The expression result stack and the expression result type stack.
- * The type stack is used to be expected type of the corresponding
- * expression result. This is needed for converting to primitives
- * and for finding correct method call from the argument types. In
- * this case, it is not the true value, but the value expected, e.g.
- * Object getObject()
returns something of type Object.
- * This needs to be maintained so that if it goes into another method
- * we don't accidently return a more specific method instead of the
- * one that takes Object as an argument.
- *
- * expressionStack has result of the expression.
- * expressionTypeStack has the computed type of the expression i.e.
- * the type that the expression returns, not the type of the value.
- * These can be different because the expression (e.g. method) may
- * return an Object, but the expression value will be some specific
- * subclass. So the expressionTypeStack would have a java.lang.Object.class
- * on it in that case.
- * Note: if the expressionStack has a null
on it, then the type stack
- * may either have a specific type in it, or it may be MethodHelper.NULL_TYPE
. It
- * would be this if it was explicitly pushed in and not as the
- * result of a computation. If the result of a computation, it would have the
- * true value.
- * Note: if the expressionStack has a Void.type
on it, then that
- * means the previous expression had no result. This is an error if trying to
- * use the expression in another expression.
- *
- * @see org.eclipse.jem.internal.proxy.initParser.MethodHelper#NULL_TYPE
- */
- private List expressionStack = new ArrayList(10);
- private List expressionTypeStack = new ArrayList(10);
-
- /**
- * List of the expression proxies. The index into the list is the
- * same as the expression proxy id.
- */
- private ArrayList expressionProxies; // It is array list because we want to call ensureCapacity and that is not available on List.
-
- /**
- * An error has occurred. At this point all subcommands will simply make sure they flush the input stream
- * correctly, but they do not process it.
- *
- * @since 1.0.0
- */
- private boolean errorOccurred = false;
- private boolean novalueException = false;
-
- private Throwable exception = null; // Was there another kind of exception that was caught.
-
- /**
- * Process all other exceptions then the NoExpressionValueException. This can be called from usage code so that if there was an error
- * in setting up for a call to the processer it can be logged.
- *
- * @param e
- *
- * @since 1.0.0
- */
- public final void processException(Throwable e) {
- // Process all other exceptions.
- novalueException = false;
- while (e.getCause() != null)
- e = e.getCause();
- if (traceOn) {
- System.out.println();
- System.out.print("***** >>>\tException: "); //$NON-NLS-1$
- System.out.println(e);
- }
- throwException(e); // Treat as a throw to let try/catches expressions handle it.
- }
-
- /**
- * This is a syntax exception. This means data coming across is corrupted in
- * some way so no further processing should occur.
- * @param e
- *
- * @since 1.1.0
- */
- protected final void processSyntaxException(Throwable e) {
- errorOccurred = true;
- novalueException = false;
- exception = e;
- }
-
- /**
- * Process a NoExpressionValueException. Don't wrapper these.
- * @param e
- *
- * @since 1.1.0
- */
- protected final void processSyntaxException(NoExpressionValueException e) {
- if (traceOn) {
- // This can happen at any time, so make sure we are on a new line.
- System.out.println();
- printTrace("Expression has no value", false); //$NON-NLS-1$
- }
- try {
- errorOccurred = true;
- novalueException = true;
- exception = e;
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- /**
- * Return whether there are any errors.
- *
- * @return true
if no errors.
- *
- * @since 1.0.0
- */
- public boolean noErrors() {
- return !errorOccurred;
- }
-
- /**
- * Return whether the error is a NoExpressionValueException or not.
- * @return
- *
- * @since 1.1.0
- */
- public boolean isNoExpressionValue() {
- return novalueException;
- }
-
- /**
- * Return the throwable if a Throwable was caught.
- *
- * @return The throwable, or null
if not set.
- *
- * @since 1.0.0
- */
- public Throwable getErrorThrowable() {
- return exception;
- }
-
- /**
- * Push the expression value and its expected type.
- * @param o
- * @param type
- *
- * @since 1.0.0
- */
- protected final void pushExpressionValue(Object o, Class type) {
- expressionStack.add(o);
- expressionTypeStack.add(type);
- }
-
- /**
- * Pop just the expression value. It is imperitive that the expression type
- * is popped immediately following. Separated the methods so that we
- * don't need to create an array to return two values. This will dereference
- * any variable references.
- *
- * @return The value.
- * @throws NoExpressionValueException
- *
- * @since 1.0.0
- */
- protected final Object popExpression() throws NoExpressionValueException {
- return popExpression(true);
- }
-
- /**
- * Pop just the expression value. It is imperitive that the expression type
- * is popped immediately following. Separated the methods so that we
- * don't need to create an array to return two values.
- *
- * @param deReference If the top expression is a Reference, then dereference it.
- * @return The value.
- * @throws NoExpressionValueException
- *
- * @since 1.0.0
- */
- protected final Object popExpression(boolean deReference) throws NoExpressionValueException {
- try {
- // Do not pop above the current subexpression pos, if any.
- if (topSubexpression != -1)
- if (expressionStack.size() == subexpressionStackPos[topSubexpression])
- throw new NoExpressionValueException();
-
- Object result = expressionStack.remove(expressionStack.size()-1);
- if (deReference && result instanceof VariableReference)
- result = ((VariableReference) result).dereference();
- return result;
- } catch (IndexOutOfBoundsException e) {
- throw new NoExpressionValueException();
- }
- }
-
- /**
- * Get the expression at fromTop
down from the top. This is
- * need for when multi-operators happen and they are stored in reverse of
- * what is needed. They would normally be stored left to right, with the
- * rightmost one on top. But they need to be processed left to right, so
- * to get the left most one requires digging down in the stack.
- * popExpressions(int count)
must be called to
- * clean them out since they were processed.
- * 1
is the top one, 2
is the next one down.
- * @return The entry from the top that was requested.
- * @throws NoExpressionValueException
- *
- * @see IDEExpression#popExpressions(int)
- * @since 1.0.0
- */
- protected final Object getExpression(int fromTop) throws NoExpressionValueException {
- try {
- // Do not pull above the current subexpression pos, if any.
- if (topSubexpression != -1)
- if (expressionStack.size()-fromTop < subexpressionStackPos[topSubexpression])
- throw new NoExpressionValueException();
-
- return expressionStack.get(expressionStack.size()-fromTop);
- } catch (IndexOutOfBoundsException e) {
- throw new NoExpressionValueException();
- }
- }
-
- /**
- * Remove the top count
items. This will not cause dereferencing to occur. It
- * removes the corresponding type stack entries.
- *
- * @param count
- * @throws NoExpressionValueException
- *
- * @since 1.0.0
- */
- protected final void popExpressions(int count) throws NoExpressionValueException {
- try {
- // Do not pop above the current subexpression pos, if any.
- int stop = topSubexpression != -1 ? subexpressionStackPos[topSubexpression] : -1;
- int remove = expressionStack.size()-1;
- while (count-- > 0) {
- if (expressionStack.size() <= stop)
- throw new NoExpressionValueException(); // Try to go above the current subexpression.
- expressionStack.remove(remove);
- expressionTypeStack.remove(remove--);
- }
- } catch (IndexOutOfBoundsException e) {
- throw new NoExpressionValueException();
- }
- }
-
- /**
- * Pop just the expression type. It is imperitive that the expression type
- * is popped immediately following popExpression. Separated the methods so that we
- * don't need to create an array to return two values.
- * true
- * @return The type.
- * @throws NoExpressionValueException
- * @since 1.0.0
- */
- protected final Class popExpressionType(boolean allowVoid) throws NoExpressionValueException {
- try {
- Class result = (Class) expressionTypeStack.remove(expressionTypeStack.size()-1);
- if (!allowVoid && result == Void.TYPE)
- throw new NoExpressionValueException(InitparserTreeMessages.getString("ExpressionProcesser.PopExpressionType.ExpressionVoid_EXC_")); //$NON-NLS-1$
- return result;
-
- } catch (IndexOutOfBoundsException e) {
- throw new NoExpressionValueException();
- }
- }
-
- /**
- * Get the expression type at fromTop
down from the top. This is
- * need for when multi-operators happen and they are stored in reverse of
- * what is needed. They would normally be stored left to right, with the
- * rightmost one on top. But they need to be processed left to right, so
- * to get the left most one requires digging down in the stack.
- * popExpressionTypes(int count)
must be called to
- * clean them out since they were processed.
-
- * @param fromTop 1
is the top one, 2
is the next one down.
- * @param allowVoid Allow void types if true
- * @return The type from the top that was requested.
- * @throws ThrowableProxy
- * @throws NoExpressionValueException
- *
- * @see IDEExpression#popExpressionTypes(int)
- * @since 1.0.0
- */
- protected final Class getExpressionType(int fromTop, boolean allowVoid) throws NoExpressionValueException {
- try {
- Class result = (Class) expressionTypeStack.get(expressionTypeStack.size()-fromTop);
- if (!allowVoid && result == Void.TYPE)
- throw new NoExpressionValueException();
- return result;
- } catch (IndexOutOfBoundsException e) {
- throw new NoExpressionValueException();
- }
- }
-
- /**
- * Flag indicating expression should be ignored and not processed.
- * This happens because of few cases, like conditional and, that
- * if one returns false, the rest of the expressions in that conditional and
- * expression should be ignored and not processed.
- * null
then no one is ignoring.
- * true
to increment indent, or otherwise decrement.
- *
- * @since 1.1.0
- */
- protected void indent(boolean indent) {
- this.indent += (indent ? 1 : -1);
- if (this.indent < 0)
- this.indent = 0;
- }
-
- /**
- * Print the object and type. It will not end with a newline char, so one will be needed afterwards.
- *
- * @param o
- * @param t
- *
- * @since 1.1.0
- */
- protected void printObjectAndType(Object o, Class t) {
- System.out.print(' ');
- System.out.print("Object-"); //$NON-NLS-1$
- System.out.print(o);
- System.out.print(" Type-"); //$NON-NLS-1$
- System.out.print(t);
- System.out.print(' ');
- }
-
- /**
- * Close the exception processing
- *
- * @since 1.0.0
- */
- public final void close() {
- boolean firstClose = expressionStack != null;
- if (firstClose && traceOn) {
- printTrace("End expression", false); //$NON-NLS-1$
- long totalTime = System.currentTimeMillis()-startExpressionTime;
- System.out.print(" Total expression evaluation time: "); //$NON-NLS-1$
- System.out.print(totalTime);
- System.out.print("ms."); //$NON-NLS-1$
- }
- try {
- expressionStack = null;
- expressionTypeStack = null;
- expressionProxies = null;
- exception = null;
- catchThrowable = null;
- saveStates = null;
- } finally {
- if (firstClose && traceOn)
- printTraceEnd();
- }
- }
-
- /**
- * Pull the value. The value will be placed into the array passed in.
- * It will be stored as value[0] = value value[1] = valuetype(Class).
- *
- * @param value The value array to store the value and type into.
- * @throws NoExpressionValueException
- * @since 1.0.0
- */
- public final void pullValue(Object[] value) throws NoExpressionValueException {
- if (traceOn)
- printTrace("Pull value:", false); //$NON-NLS-1$
- try {
- value[0] = popExpression();
- value[1] = popExpressionType(false);
- } finally {
- if (traceOn) {
- printObjectAndType(value[0], (Class) value[1]);
- printTraceEnd();
- }
- }
- close();
- }
-
- /**
- * Pull the value of the expression proxy, dereferencing it if necessary. This is for resolution only purposes at the
- * end of the expression being processed. Not meant for general access to the value of expression proxy. Use
- * {@link ExpressionProcesser#getExpressionProxyValue(int, Object[])} instead for general access to the value.
- *
- * @param proxyid
- * @param value
- * @throws NoExpressionValueException
- *
- * @since 1.1.0
- */
- public final void pullExpressionProxyValue(int proxyid, Object[] value) throws NoExpressionValueException {
- getExpressionProxyValue(proxyid, value, true, true);
- }
-
- /**
- * Get the expression proxy value. If the expression has not yet been evaluated it will
- * return false. If it has it will return true.
- * @param proxyid
- * @param value put value into value[0] and the type into value[1].
- * @return true
if successful, or false
if the expression proxy was never resolved or doesn't exist.
- *
- * @since 1.1.0
- */
- public boolean getExpressionProxyValue(int proxyid, Object[] value) {
- try {
- return getExpressionProxyValue(proxyid, value, true, false);
- } catch (NoExpressionValueException e) {
- return false;
- }
- }
-
- /**
- * Get the expression proxy value, or the NoExpressionValueException if not resolved. This
- * is useful for callers that need to handle the proxy itself for failed calls.
- *
- * @param proxyid
- * @param value
- * @throws NoExpressionValueException
- *
- * @since 1.1.0
- */
- public void getExpressionProxy(int proxyid, Object[] value) throws NoExpressionValueException {
- getExpressionProxyValue(proxyid, value, true, false);
- }
-
- /*
- * Internal method use to actually get the value, but to distinquish between pull and get of the public interface.
- * Get will process the errors as normal execution errors, while pull will throw the errors. finalTrace is when
- * this is the final call to return the values to the client. We will trace the results in that case.
- * Return true if successful.
- */
- private boolean getExpressionProxyValue(int proxyid, Object[] value, boolean pull, boolean finalTrace) throws NoExpressionValueException {
- // Note: This will throw the exceptions right away since this is called from outside to fill in the value and
- // so we are holding such exceptions.
- boolean doTrace = finalTrace && traceOn;
- try {
- if (expressionProxies != null && expressionProxies.size() > proxyid) {
- InternalExpressionProxy proxy = (InternalExpressionProxy) expressionProxies.get(proxyid);
- if (proxy != null && proxy.isSet()) {
- value[0] = proxy.getValue();
- if (value[0] instanceof VariableReference)
- value[0] = ((VariableReference) value[0]).dereference(); // Here we want the final current value.
- value[1] = proxy.getType();
- if (doTrace)
- if (value[1] != Void.TYPE) {
- printTrace("Return Proxy #" + proxyid + " Resolved to", false); //$NON-NLS-1$ //$NON-NLS-2$
- printObjectAndType(value[0], (Class) value[1]);
- } else
- printTrace("Return Proxy #" + proxyid + " Resolved to void.", false); //$NON-NLS-1$ //$NON-NLS-2$
- return true;
-
- } else {
- if (doTrace)
- printTrace("Return Proxy #" + proxyid + ": Not resolved", false); //$NON-NLS-1$ //$NON-NLS-2$
- NoExpressionValueException e = new NoExpressionValueException(InitparserTreeMessages.getString("ExpressionProcesser.GetExpressionProxyValue.ExpressionProxyNotSet_EXC_"), proxy); //$NON-NLS-1$
- if (pull)
- throw e;
- else
- processSyntaxException(e);
- return false;
- }
- } else {
- if (doTrace)
- printTrace("Return Proxy #" + proxyid + ": Never created.", false); //$NON-NLS-1$ //$NON-NLS-2$
- NoExpressionValueException e = new NoExpressionValueException(InitparserTreeMessages.getString("ExpressionProcesser.GetExpressionProxyValue.ExpressionProxyDoesntExist_EXC_")); //$NON-NLS-1$
- if (pull)
- throw e;
- else
- processSyntaxException(e);
- return false;
- }
- } finally {
- if (doTrace)
- printTraceEnd();
- }
- }
-
- /**
- * Push the expression (just a value) onto the stack.
- *
- * @param o
- * @param t
- *
- * @since 1.0.0
- */
- public final void pushExpression(Object o, Class t) {
- boolean ignore = (ignoreExpression != null || errorOccurred);
- if (traceOn) {
- printTrace("Push: ", ignore); //$NON-NLS-1$
- printObjectAndType(o, t);
- }
- try {
- if (ignore)
- return;
- pushExpressionValue(o, t);
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- /**
- * Get the value of the expression proxy (from proxy id), and push the value onto the stack.
- *
- * @param proxyid The proxy id of the ExpressionProxy to push as a value.
- *
- * @since 1.0.0
- */
- public final void pushExpressionProxy(int proxyid) {
- boolean ignore =(ignoreExpression != null || errorOccurred);
- if (traceOn)
- printTrace("Push Expression Proxy #"+proxyid, ignore); //$NON-NLS-1$
- try {
- if (ignore)
- return;
- if (expressionProxies != null && expressionProxies.size() > proxyid) {
- InternalExpressionProxy proxy = (InternalExpressionProxy) expressionProxies.get(proxyid);
- if (proxy != null && proxy.isSet()) {
- if (traceOn)
- printObjectAndType(proxy.getValue(), proxy.getType());
- pushExpressionValue(proxy.getValue(), proxy.getType()); // Can push a VariableReference. This is ok. When used it will then deref with the current value.
- } else
- processException(new NoExpressionValueException("Proxy id: "+proxyid)); //$NON-NLS-1$
- } else
- processException(new NoExpressionValueException("Proxy id: "+proxyid)); //$NON-NLS-1$
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- /**
- * Push a cast onto stack. The type passed in is either a String (with classname to cast to) or the
- * type to cast to.
- * @param type To cast to. If String
then convert to type (using something like Class.forName()
) or it is a Class
- *
- * @since 1.0.0
- */
- public final void pushCast(Class type) {
- boolean ignore = (ignoreExpression != null || errorOccurred);
- if (traceOn)
- printTrace("Cast to: "+type, ignore); //$NON-NLS-1$
- try {
- if (ignore)
- return;
-
- try {
- Object exp = popExpression();
- Class exptype = popExpressionType(false);
-
- pushExpressionValue(castBean(type, exp, exptype), type);
- } catch (RuntimeException e) {
- processException(e);
- } catch (NoExpressionValueException e) {
- processException(e);
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
-
- }
-
- /**
- * Cast a bean into the return type. If the return type is not primitive, then
- * the bean is left alone, however it is checked to be an instance of
- * the return type. If the return type is primitive, then the
- * correct primitive wrapper is created from the bean (bean must be a number or character or boolean primitve so
- * that cast will work).
- * null
or not of the type that can be converted to a primitive.
- *
- * @since 1.0.0
- */
- protected final Class getPrimitiveType(Object bean) throws IllegalArgumentException {
- if (bean instanceof Boolean)
- return Boolean.TYPE;
- else if (bean instanceof Integer)
- return Integer.TYPE;
- else if (bean instanceof Byte)
- return Byte.TYPE;
- else if (bean instanceof Character)
- return Character.TYPE;
- else if (bean instanceof Double)
- return Double.TYPE;
- else if (bean instanceof Float)
- return Float.TYPE;
- else if (bean instanceof Long)
- return Long.TYPE;
- else if (bean instanceof Short)
- return Short.TYPE;
- else
- throw new IllegalArgumentException(bean != null ? bean.getClass().getName() : "null"); //$NON-NLS-1$
- }
-
- private static final Object IFELSE_IGNORE = "IF/ELSE IGNORE"; // Flag for if/else in ingore //$NON-NLS-1$
- private int ifElseNesting = 0; // Nesting of if/else expressions.
- private int ifElseIgnoreNestCount = 0; // When ignoring if/else expressions, ignore until this nest count.
- private boolean ifElseSkipTruePart;
-
-
- /**
- * Push an if test expression.
- * @param hasElseClause
- *
- * @since 1.0.0
- */
- public final void pushIfElse() {
- try {
- boolean ignore = true;
- try {
- if (errorOccurred)
- return;
- // Slightly different here in that if an ignoring occurred we still need to process at least part of it so that
- // we can get the expression grouping correct.
- ifElseNesting++; // We have the test.
-
- if (ignoreExpression != null)
- return;
- ignore = false;
- } finally {
- if (traceOn)
- printTrace("If test condition", ignore); //$NON-NLS-1$
- }
-
- try {
- Object condition = popExpression();
- Class type = popExpressionType(false);
- if (type != Boolean.TYPE)
- throwClassCast(Boolean.TYPE, condition);
- if (traceOn) {
- System.out.print(" Test Result="+condition); //$NON-NLS-1$
- printTraceEnd();
- indent(true);
- printTrace("Begin True Expression.", ignore); //$NON-NLS-1$
- printTraceEnd();
- indent(true);
- }
- if (((Boolean) condition).booleanValue()) {
- // Condition was true.
- // Do nothing. Let true condition be processed.
- } else {
- // Condition was false.
- ifElseSkipTruePart = true; // Tell the true condition should be ignored.
- ignoreExpression = IFELSE_IGNORE;
- ifElseIgnoreNestCount = ifElseNesting;
- }
- // We don't put anything back on the stack because the condition test is not ever returned.
- // The appropriate true or false condition evaluation will be left on the stack.
- } catch (RuntimeException e) {
- processException(e);
- } catch (NoExpressionValueException e) {
- processException(e);
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- /**
- * Push an if/else clause. It can be any clause of the if (true, or false clause).
- * @param clauseType
- *
- * @since 1.0.0
- */
- public final void pushIfElse(InternalIfElseOperandType clauseType) {
- try {
- boolean ignore = true;
- if (errorOccurred)
- return;
- // Slightly different here in that if an ignoring occurred we still need to process at least part of it so that
- // we can get the expression grouping correct.
- switch (clauseType.getValue()) {
- case InternalIfElseOperandType.TRUE_CLAUSE_VALUE:
- if (traceOn) {
- indent(false);
- printTrace("Begin False Expression.", ignore); //$NON-NLS-1$
- printTraceEnd();
- indent(true);
- }
- if (ifElseSkipTruePart && ignoreExpression == IFELSE_IGNORE && ifElseIgnoreNestCount == ifElseNesting) {
- // stop ignoring, we've ignored the true condition of interest.
- ignoreExpression = null;
- return; // However, leave because since this condition was ignored.
- }
- break;
- case InternalIfElseOperandType.ELSE_CLAUSE_VALUE:
- if (traceOn) {
- indent(false);
- indent(false);
- printTrace("End IF/ELSE Expression.", ignore); //$NON-NLS-1$
- printTraceEnd();
- }
- int currentNesting = ifElseNesting--;
- if (ignoreExpression == IFELSE_IGNORE && ifElseIgnoreNestCount == currentNesting) {
- // stop ignoring, we've ignored the false condition of interest.
- ignoreExpression = null;
- return; // However, leave because since this condition was ignored.
- }
- }
-
- if (ignoreExpression != null)
- return;
- ignore = false;
-
-
- try {
- switch (clauseType.getValue()) {
- case InternalIfElseOperandType.TRUE_CLAUSE_VALUE:
- ifElseSkipTruePart = false; // Tell the false condition should be ignored.
- ignoreExpression = IFELSE_IGNORE;
- ifElseIgnoreNestCount = ifElseNesting;
- break;
- case InternalIfElseOperandType.ELSE_CLAUSE_VALUE:
- // There's nothing to do, if it was ignored due to true, we wouldn't of gotton here.
- // If it wasn't ignored, then the result of the false expression is on the stack, which is what it should be.
- break;
- }
- } catch (RuntimeException e) {
- processException(e);
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- /**
- * Push the instanceof expression. The type passed in is either a String (with classname to test against) or the
- * type to test against.
- * @param type To test against.
- * @since 1.0.0
- */
- public final void pushInstanceof(Class type) {
- boolean ignore = (ignoreExpression != null || errorOccurred);
- if (traceOn)
- printTrace("Instanceof type: "+type, ignore); //$NON-NLS-1$
- try {
- if (ignore)
- return;
-
- try {
- Object exp = popExpression();
- Class exptype = popExpressionType(false);
- pushExpressionValue(Boolean.valueOf(isInstance(type, exp, exptype)), Boolean.TYPE);
- } catch (NoExpressionValueException e) {
- processException(e);
- } catch (RuntimeException e) {
- processException(e);
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- /**
- * Test if instance of. It will make sure that primitive to non-primitive is not permitted.
- * This is a true instance of, which means null IS NOT AN instance of any type. This is
- * different then assignable from, in that case null can be assigned to any class type.
- * null
to use classloader of InitializationStringParser.class.
- *
- * @since 1.1.0
- */
- public final void pushNewInstanceFromString(String initializationString, Class resultType, ClassLoader classloader) {
- boolean ignore = (ignoreExpression != null || errorOccurred);
- if (traceOn)
- printTrace("New instance from string: \""+initializationString+"\" Type="+resultType, ignore); //$NON-NLS-1$ //$NON-NLS-2$
- try {
- if (ignore)
- return;
-
- try {
- InitializationStringParser parser = InitializationStringParser.createParser(initializationString, classloader);
- Object newValue = parser.evaluate();
- newValue = castBean(resultType, newValue, parser.getExpectedType());
- pushExpressionValue(newValue, resultType);
- } catch (RuntimeException e) {
- processException(e);
- } catch (InitializationStringEvaluationException e) {
- processException(e);
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
-
- }
-
- /**
- * Push prefix expression.
- * @param operator
- * @since 1.0.0
- */
- public final void pushPrefix(PrefixOperator operator) {
- try {
- if (ignoreExpression != null || errorOccurred) {
- if (traceOn)
- printTrace("Prefix: \'"+operator+"\'", true); //$NON-NLS-1$ //$NON-NLS-2$
- return;
- }
-
- if (operator == PrefixOperator.PRE_PLUS)
- return; // Do nothing. "+" doesn't affect the result of the current top expression.
-
- if (traceOn)
- printTrace("Prefix: \'"+operator+"\' ", false); //$NON-NLS-1$ //$NON-NLS-2$
-
- try {
- Object exp = popExpression();
- Class exptype = popExpressionType(false);
- if (!exptype.isPrimitive())
- throwInvalidPrefix(operator, exp);
-
- int primTypeEnum = getEnumForPrimitive(exptype);
- switch (operator.getValue()) {
- case PrefixOperator.PRE_MINUS_VALUE:
- switch (primTypeEnum) {
- case BOOLEAN:
- throwInvalidPrefix(operator, exp);
- case BYTE:
- exp = new Integer(-((Number) exp).byteValue());
- break;
- case CHAR:
- exp = new Integer(-((Character) exp).charValue());
- break;
- case DOUBLE:
- exp = new Double(-((Number) exp).doubleValue());
- break;
- case FLOAT:
- exp = new Float(-((Number) exp).floatValue());
- break;
- case INT:
- exp = new Integer(-((Number) exp).intValue());
- break;
- case LONG:
- exp = new Long(-((Number) exp).longValue());
- break;
- case SHORT:
- exp = new Integer(-((Number) exp).shortValue());
- break;
- }
- exptype = getPrimitiveType(exp); // It can actually change the type.
- break;
-
- case PrefixOperator.PRE_COMPLEMENT_VALUE:
- switch (primTypeEnum) {
- case BOOLEAN:
- case DOUBLE:
- case FLOAT:
- throwInvalidPrefix(operator, exp);
- case BYTE:
- exp = new Integer(~((Number) exp).byteValue());
- break;
- case CHAR:
- exp = new Integer(~((Character) exp).charValue());
- break;
- case INT:
- exp = new Integer(~((Number) exp).intValue());
- break;
- case LONG:
- exp = new Long(~((Number) exp).longValue());
- break;
- case SHORT:
- exp = new Integer(~((Number) exp).shortValue());
- break;
- }
- exptype = getPrimitiveType(exp); // It can actually change the type.
- break;
- case PrefixOperator.PRE_NOT_VALUE:
- switch (primTypeEnum) {
- case BOOLEAN:
- exp = !((Boolean) exp).booleanValue() ? Boolean.TRUE : Boolean.FALSE;
- break;
- case BYTE:
- case CHAR:
- case DOUBLE:
- case FLOAT:
- case INT:
- case LONG:
- case SHORT:
- throwInvalidPrefix(operator, exp);
- }
- break;
- }
-
- if (traceOn)
- printObjectAndType(exp, exptype);
- pushExpressionValue(exp, exptype); // Push the result back on the stack.
-
- } catch (IllegalArgumentException e) {
- processSyntaxException(e);
- } catch (NoExpressionValueException e) {
- processException(e);
- } catch (RuntimeException e) {
- processException(e);
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
-
- }
-
- /**
- * Assign the right expression to the left expression.
- * @since 1.1.0
- */
- public final void pushAssignment() {
- if (ignoreExpression != null || errorOccurred) {
- if (traceOn) {
- printTrace("Assignment", true); //$NON-NLS-1$
- printTraceEnd();
- }
- return;
- }
-
- try {
- // KLUDGE: The only reason leftValue/refType are outside of try/finally is because
- // of tracing. pushExpression() does its own trace statements, so we need to end
- // our trace before calling pushExpression.
- Object leftValue;
- Class refType;
- try {
- if (traceOn)
- printTrace("Assignment: ", false); //$NON-NLS-1$
- // The order on the stack is right then left operand.
- // First the right operand
- Object value = popExpression();
- Class type = popExpressionType(false);
-
- // Next the left operand, should be a reference.
- VariableReference left = (VariableReference) popExpression(false); // Don't dereference it.
- refType = popExpressionType(false);
-
- if (traceOn)
- printObjectAndType(left, refType);
-
- leftValue = left.set(value, type);
- } finally {
- if (traceOn)
- printTraceEnd();
- }
-
- // Now do assignment and return the value to the stack.
- pushExpression(leftValue, refType); // The type of the result is the type of the reference.
-
- } catch (IllegalArgumentException e) {
- processException(e);
- } catch (NoExpressionValueException e) {
- processException(e);
- } catch (IllegalAccessException e) {
- processException(e);
- } catch (RuntimeException e) {
- processException(e);
- }
-
- }
-
- /**
- * Assign the expression proxy to the top expression value.
- *
- * @param proxy
- *
- * @since 1.1.0
- */
- public final void pushAssignment(InternalExpressionProxy proxy) {
- boolean ignore = (ignoreExpression != null || errorOccurred);
- try {
- if (traceOn) {
- printTrace("Assign to Proxy #"+proxy.getProxyID(), ignore); //$NON-NLS-1$
- }
- if (ignore)
- return;
-
- try {
- assignToExpressionProxyFromTopStackEntry(proxy);
- if (traceOn)
- printObjectAndType(proxy.getValue(), proxy.getType());
- } catch (NoExpressionValueException e) {
- processException(e);
- } catch (RuntimeException e) {
- processException(e);
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
-
- }
-
- /**
- * Assign the top stack entry to the new expression proxy and allocate it for callback later.
- * @param proxy
- * @throws NoExpressionValueException
- *
- * @since 1.1.0
- */
- protected void assignToExpressionProxyFromTopStackEntry(InternalExpressionProxy proxy) throws NoExpressionValueException {
- Object value = getExpression(1);
- Class type = getExpressionType(1, true);
- if (value instanceof VariableReference)
- value = ((VariableReference) value).dereference(); // Here we want the final current value.
-
- proxy.setProxy(value, type);
- allocateExpressionProxy(proxy);
- }
-
- /**
- * Allocate an expression proxy. This is used to make an expression proxy known to the processor. The expression proxy must
- * have been setProxy() at this point. This is used to assign from the top of the stack or to add from outside an evaluated proxy
- * to be used later by others.
- *
- * @param proxy
- *
- * @since 1.1.0
- */
- public void allocateExpressionProxy(InternalExpressionProxy proxy) {
- int minSize = proxy.getProxyID()+1;
- if (expressionProxies == null)
- expressionProxies = new ArrayList(minSize+10); // Allow room to grow ten more.
- else if (expressionProxies.size() < minSize)
- expressionProxies.ensureCapacity(minSize+10); // Allow room to grow ten more.
- int fill = minSize-expressionProxies.size(); // Number of "null" fill entries needed. Probably shouldn't occur, but to be safe.
- if (fill > 0) {
- while (--fill > 0)
- expressionProxies.add(null);
- expressionProxies.add(proxy);
- } else
- expressionProxies.set(proxy.getProxyID(), proxy); // Already large enough, replace entry.
-
- }
-
- /**
- * The primitive enums.
- * NOTE: Their order must not changed. They are in order of permitted widening.
- *
- */
- protected static final int
- BOOLEAN = 0,
- BYTE = 1,
- SHORT = 2,
- CHAR = 3,
- INT = 4,
- LONG = 5,
- FLOAT = 6,
- DOUBLE = 7;
-
-
-
- /**
- * Get the enum constant for the type of primitive passed in.
- * Number/code> or
if it is not one they
- * are interested in.
- *
- * @param delta
- *
- * @since 1.2.0
- */
- public void processDelta(IJavaElementDelta delta) {
- IJavaElement element = delta.getElement();
-
- switch (element.getElementType()) {
- case IJavaElement.JAVA_MODEL:
- processJavaElementChanged((IJavaModel) element, delta);
- break;
- case IJavaElement.JAVA_PROJECT:
- processJavaElementChanged((IJavaProject) element, delta);
- break;
- case IJavaElement.PACKAGE_FRAGMENT_ROOT:
- processJavaElementChanged((IPackageFragmentRoot) element, delta);
- break;
- case IJavaElement.PACKAGE_FRAGMENT:
- processJavaElementChanged((IPackageFragment) element, delta);
- break;
- case IJavaElement.COMPILATION_UNIT:
- processJavaElementChanged((ICompilationUnit) element, delta);
- processContentChanged(delta);
- break;
- case IJavaElement.CLASS_FILE:
- processJavaElementChanged((IClassFile) element, delta);
- break;
- case IJavaElement.TYPE:
- processJavaElementChanged((IType) element, delta);
- break;
- // Note: if we are to update the Method/Field adapters, we should process the
- // IJavaElement.METHOD and IJavaElement.FIELD
- }
- }
-
- /**
- * Process the classfile changed event. The default is to do nothing. It will not walk any children of the delta either. Subclasses may override
- * to perform their own functions.
- *
- * @param element
- * @param delta
- *
- * @since 1.2.0
- */
- protected void processJavaElementChanged(IClassFile element, IJavaElementDelta delta) {
- }
-
- /**
- * Process the compilation unit changed event. The default is to process the children of the delta. Subclasses may override to perform their own
- * functions. If they wish to walk the children they should then also call
- * Character
.
- * Anything else will cause a class cast error.
- * Number/code> or
if there isn't one.
- */
- private Socket requestCallbackSocket() {
- Socket socket = getSocket();
- if (socket != null) {
- boolean closeSocket = true;
- try {
- DataOutputStream out = new DataOutputStream(socket.getOutputStream());
- DataInputStream in = new DataInputStream(socket.getInputStream());
-
- try {
- out.writeByte(Commands.ATTACH_CALLBACK);
- out.writeInt(registryKey);
- out.flush();
- closeSocket = !in.readBoolean();
- return !closeSocket ? socket : null;
- } finally {
- if (closeSocket) {
- try {
- in.close();
- } catch (IOException e) {
- }
- try {
- out.close();
- } catch (IOException e) {
- }
- }
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (closeSocket) {
- try {
- socket.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
-
- return null;
- }
-
-
-
- protected Socket getSocket() {
- // We are putting it off into a thread because there are no timeout capabilities on getting a socket.
- // So we need to allow for that.
- final Socket[] scArray = new Socket[1];
- final boolean[] waiting = new boolean[] {true};
- Thread doIt = new Thread(new Runnable() {
- public void run() {
- try {
- Socket sc = new Socket("localhost", masterIDESocketPort); //$NON-NLS-1$
- synchronized (this) {
- if (waiting[0])
- scArray[0] = sc;
- else
- sc.close(); // We are no longer waiting on this thread so close the socket since no one will use it.
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- });
-
- doIt.start();
- while (true) {
- try {
- doIt.join(60000);
- synchronized (doIt) {
- waiting[0] = false; // To let it know we are no longer waiting
- }
- break;
- } catch (InterruptedException e) {
- }
- }
-
- if (scArray[0] == null) {
- System.out.println("Couldn't retrieve a socket from master server in 60 seconds."); //$NON-NLS-1$
- return null; // Couldn't get one, probably server is down.
- }
-
- return scArray[0];
- }
-
- private List shutdownRunnables;
-
- public synchronized void addShutdownListener(Runnable runnable) {
- if (shutdownRunnables == null) {
- shutdownRunnables = new ArrayList();
- } else if (shutdownRunnables.contains(runnable))
- return;
- shutdownRunnables.add(runnable);
- }
-
- public synchronized void removeShutdownListener(Runnable runnable) {
- if (shutdownRunnables != null)
- shutdownRunnables.remove(runnable);
- }
-
-
- public IVMServer getIVMServer() {
- return this;
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/StackTraceUtility.java b/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/StackTraceUtility.java
deleted file mode 100644
index bdeb6aecf..000000000
--- a/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/StackTraceUtility.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.vm.remote;
-/*
- * $RCSfile: StackTraceUtility.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:08 $
- */
-
-
-import java.io.*;
-/**
- * A utility to get the stack trace from an exception
- * back to the client.
- */
-public class StackTraceUtility {
-
- public static String printStackTrace(Throwable t) {
- StringWriter writer = new StringWriter();
- t.printStackTrace(new PrintWriter(writer));
- return writer.toString();
- }
-
-
-}
diff --git a/plugins/org.eclipse.jem.ui/.classpath b/plugins/org.eclipse.jem.ui/.classpath
deleted file mode 100644
index 66f349e21..000000000
--- a/plugins/org.eclipse.jem.ui/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-
-Character
.
- * Anything else will cause a class cast error.
- * Number/code> or
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = 1701752035606593305L;
- private final Object fErrorObject;
- private final int fErrorCode;
-
- public CommandErrorException(int errorCode, Commands.ValueObject errorData) {
- super(errorData.clone()); // Clone it because typically these get reused and cleared out. This way we have our own.
- fErrorObject = null;
- fErrorCode = errorCode;
- }
-
- public CommandErrorException(String msg, int errorCode, Commands.ValueObject errorData, Object errorObject) {
- super(msg, errorData.clone());
- fErrorObject = errorObject;
- fErrorCode = errorCode;
- }
-
- public Commands.ValueObject getValue() {
- return (Commands.ValueObject) getExceptionData();
- }
-
- public boolean isRecoverable() {
- return true; // Command errors are recoverable.
- }
-
- /**
- * Return the error code.
- */
- public int getErrorCode() {
- return fErrorCode;
- }
-
- /**
- * Return the error object after conversion to proxy format.
- */
- public Object getErrorObject() {
- return fErrorObject;
- }
-
-
- /* (non-Javadoc)
- * @see java.lang.Object#toString()
- */
- public String toString() {
- return super.toString() + "-- Error code:"+getErrorCode() + (getValue() != null ? " Value data:\"" + getValue().getAsObject() + "\"" : " ") + (fErrorObject != null ? " Error object:\""+fErrorObject.toString()+"\"" : " "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/Commands.java b/plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/Commands.java
deleted file mode 100644
index dfe252773..000000000
--- a/plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/Commands.java
+++ /dev/null
@@ -1,1450 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.common.remote;
-/*
- * $RCSfile: Commands.java,v $
- * $Revision: 1.16 $ $Date: 2005/12/02 18:41:25 $
- */
-
-import java.io.*;
-
-import org.eclipse.jem.internal.proxy.common.CommandException;
-/**
- * The commands that can be passed back and forth between
- * client and server. And other constants.
- *
- * - Contains helper methods for reading/writing commands.
- */
-public class Commands {
- // The commands will be written in writeByte format .
- public final static byte
- GET_CLASS = 1, // Get the class object,
- VALUE = 2, // Returning a value
- QUIT_CONNECTION = 4, // Close this connection
- TERMINATE_SERVER = 5, // Terminate the entire server.
- ERROR = 6, // Returning an error
- RELEASE_OBJECT = 7, // An object is no longer needed on the client side, so
- // it can be removed from the server id table and released.
- GET_CLASS_RETURN = 8, // The return command from GET_CLASS
- // Obsolete, not used anymore GET_METHOD = 9, // Return the id for a method
- // Obsolete, not used anymore GET_CTOR = 10, // Return the id for a constructor
- NEW_INIT_STRING = 11, // Create a new bean using the init string
- GET_CLASS_FROM_ID = 12, // We have an ID, return the class info for this id.
- GET_CLASS_ID_RETURN = 13, // The return command from GET_CLASS_FROM_ID
- GET_OBJECT_DATA = 14, // We have an ID, but we don't have the info, return it. This is a
- // corrective command only. This would happen if for some strange
- // reason the proxy has been removed but has not been released. This
- // really shouldn't happen except as a possible race condition between
- // GC and returning id from the server.
- INVOKE = 15, // Invoke a method.
-
-
- // These commands are to the Master Server thread in the IDE.
- ALIVE = 16, // Are you alive?
- REMOTE_STARTED = 17, // Remote VM has started.
- ATTACH_CALLBACK = 18, // Attach to a callback thread on the IDE side. The remote vm will use its socket as the callback socket.
- // it will return boolean Character
.
- * Anything else will cause a class cast error.
- * Number/code> or
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = 2076777336810215206L;
- private Integer fID;
- protected final REMProxyFactoryRegistry fFactory;
- private IBeanTypeProxy fTypeProxy;
-
- /**
- * Set the bean we are proxying. We are a proxy for a bean running on the remote VM.
- */
- protected REMThrowableBeanProxy(REMProxyFactoryRegistry aRegistry, Integer anID, IBeanTypeProxy aType){
- fFactory = aRegistry;
- fID = anID;
- fTypeProxy = aType;
- }
-
- /**
- * equals: Equal if:
- * 1) This proxy == (identity) to the other object
- * 2) Else if other is an IBeanProxy and not a constant one, then if
- * equals on the server.
- * 3) If this is a constant proxy and the other is too or is a constant
- * value (e.g. IStringBeanProxy.equals(String), then true if values are equals.
- */
- public boolean equals(Object anObject) {
- if (super.equals(anObject))
- return true; // Identity
- if (anObject instanceof IBeanProxy && !(anObject instanceof IREMConstantBeanProxy) && fFactory.isValid() && ((IBeanProxy) anObject).getProxyFactoryRegistry() == fFactory)
- try {
- // The other is a bean proxy and is not a constant one, let the server do the check.
- return ((IBooleanBeanProxy) REMStandardBeanProxyConstants.getConstants(fFactory).getObjectEquals().invoke(this, (IBeanProxy) anObject)).booleanValue();
- } catch (ThrowableProxy e) {
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#sameAs(org.eclipse.jem.internal.proxy.core.IBeanProxy)
- */
- public boolean sameAs(IBeanProxy aBeanProxy) {
- return this == aBeanProxy; // We can be assured in Remote Proxy that identity of proxy and identity of object are the same.
- }
-
-
- /**
- * Get ID. An internal method to be used only within the ProxyFactory family.
- */
- public Integer getID() {
- return fID;
- }
-
- /**
- * isValid - has this bean been released.
- */
- public boolean isValid() {
- return fID != null;
- }
-
- /**
- * release - The bean is being released.
- */
- public void release() {
- fID = null;
- fTypeProxy = null;
- }
-
- /**
- * Return the registry this proxy was created with.
- */
- public ProxyFactoryRegistry getProxyFactoryRegistry() {
- return fFactory;
- }
-
- /**
- * Return the proxied class of the bean
- * Creation date: (12/3/99 11:37:01 AM)
- * @author: Joe Winchester
- */
- public IBeanTypeProxy getTypeProxy() {
- return fTypeProxy;
- }
-
- /**
- * Return the toString of the actual bean on the remote side.
- */
- public String toBeanString() {
- IStringBeanProxy string = (IStringBeanProxy) REMStandardBeanProxyConstants.getConstants(fFactory).getObjectToString().invokeCatchThrowableExceptions(this);
- return (string != null) ? string.stringValue() : null;
- }
-
- public String getProxyLocalizedMessage() {
- IStringBeanProxy msg = (IStringBeanProxy) REMStandardBeanProxyConstants.getConstants(fFactory).getThrowableLocalizedMessage().invokeCatchThrowableExceptions(this);
- return msg != null ? msg.stringValue() : null;
- }
-
- public String getProxyMessage() {
- IStringBeanProxy msg = (IStringBeanProxy) REMStandardBeanProxyConstants.getConstants(fFactory).getThrowableMessage().invokeCatchThrowableExceptions(this);
- return msg != null ? msg.stringValue() : null;
- }
-
- /**
- * Temporary way to get the string value of the stacktrace.
- */
- private String getProxyStackTrace() {
- IMethodProxy tempGetStackTrace = fFactory.getMethodProxyFactory().getMethodProxy("org.eclipse.jem.internal.proxy.vm.remote.StackTraceUtility", "printStackTrace", new String[] {"java.lang.Throwable"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- IStringBeanProxy trace = (IStringBeanProxy) tempGetStackTrace.invokeCatchThrowableExceptions(null, this);
- return trace != null ? trace.stringValue() : ""; //$NON-NLS-1$
- }
-
- public void printProxyStackTrace(java.io.PrintWriter writer) {
- String trace = getProxyStackTrace();
- synchronized(writer) {
- writer.print(trace);
- }
- }
-
- public void printProxyStackTrace(java.io.PrintStream stream) {
- String trace = getProxyStackTrace();
- synchronized(stream) {
- stream.print(trace);
- }
-
- }
-
- public void printProxyStackTrace() {
- String trace = getProxyStackTrace();
- synchronized(System.err) {
- System.err.print(trace);
- }
- }
-
-
- /**
- * Below are the actual printStackTrace. They are set up to first call
- * the proxy trace so that it can show where it occurred on the server,
- * and then it will do a super to show where it occurred on this side.
- */
- public void printStackTrace() {
- synchronized (System.err) {
- System.err.println(ProxyRemoteMessages.REMOTE_VM_TRACE_INFO_);
- printProxyStackTrace();
- System.err.println(ProxyRemoteMessages.REMOTE_VM_LOCAL_TRACE_INFO_);
- super.printStackTrace();
- }
- }
-
- public void printStackTrace(java.io.PrintWriter s) {
- synchronized (s) {
- s.println(ProxyRemoteMessages.REMOTE_VM_TRACE_INFO_);
- printProxyStackTrace(s);
- s.println(ProxyRemoteMessages.REMOTE_VM_LOCAL_TRACE_INFO_);
- super.printStackTrace(s);
- }
- }
-
- public void printStackTrace(java.io.PrintStream s) {
- synchronized (s) {
- s.println(ProxyRemoteMessages.REMOTE_VM_TRACE_INFO_);
- printProxyStackTrace(s);
- s.println(ProxyRemoteMessages.REMOTE_VM_LOCAL_TRACE_INFO_);
- super.printStackTrace(s);
- }
- }
-
- /**
- * Render the bean into value object.
- */
- public void renderBean(Commands.ValueObject value) {
- value.setObjectID(getID().intValue());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxy#isBeanProxy()
- */
- public final boolean isBeanProxy() {
- return true;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxy#isExpressionProxy()
- */
- public final boolean isExpressionProxy() {
- return false;
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMThrowableBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMThrowableBeanTypeProxy.java
deleted file mode 100644
index 0dc9f290c..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMThrowableBeanTypeProxy.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMThrowableBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * The Remote implementation of a Throwable bean type.
- */
-public class REMThrowableBeanTypeProxy extends REMAbstractBeanTypeProxy implements IREMSpecialBeanTypeProxy {
-
- protected REMThrowableBeanTypeProxy(REMProxyFactoryRegistry aRegistry, Integer anID, String aClassname, IBeanTypeProxy aSuperType) {
- super(aRegistry, anID, aClassname, aSuperType);
- }
-
- /**
- * Helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- */
- REMThrowableBeanProxy createThrowableBeanProxy(Integer objectID) {
- return new REMThrowableBeanProxy(fRegistry, objectID, this);
- }
-
- /**
- * newBeanTypeForClass: Create a new beantypeproxy of this kind for the given class.
- * This is used by beantype proxy factory when creating a beantype proxy for a subclass.
- * This is because subclasses, unless explicitly overridden, should use the same kind
- * of beantype proxy. This way if anything special is needed for a specific type, then
- * that can be done.
- *
- * NOTE: All subclasses must override this to return the correct type of BeanTypeProxy.
- */
- public IREMBeanTypeProxy newBeanTypeForClass(Integer anID, String aClassname, boolean anAbstract) {
- return newBeanTypeForClass(anID, aClassname, anAbstract, this);
- }
-
- /**
- * The special method to handle subclassing from an abstract).
- */
- public IREMBeanTypeProxy newBeanTypeForClass(Integer anID, String aClassname, boolean anAbstract, IBeanTypeProxy superType) {
- // We can never have an interface of type Throwable since that doesn't exist.
- if (!anAbstract)
- return new REMThrowableBeanTypeProxy(fRegistry, anID, aClassname, superType);
- else
- return new REMAnAbstractBeanTypeProxy(fRegistry, anID, aClassname, superType, this);
- }
-
- /**
- * Specialized from REMAbstractBeanTypeProxy to ensure ExceptionBeanProxies are created correctly.
- */
- public IREMBeanProxy newBeanProxy(Integer objectID) {
- return createThrowableBeanProxy(objectID);
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMVoidBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMVoidBeanTypeProxy.java
deleted file mode 100644
index 4b0f272ad..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMVoidBeanTypeProxy.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMVoidBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * BeanTypeProxy for representing the "void" type value, and a value of this type is "null".
- * Creation date: (2/11/00 2:26:47 PM)
- * @author: Richard Lee Kulp
- */
-final class REMVoidBeanTypeProxy extends REMAbstractBeanTypeProxy implements IREMConstantBeanTypeProxy {
-
-
-protected REMVoidBeanTypeProxy(REMProxyFactoryRegistry aRegistry) {
- super(aRegistry, new Integer(Commands.VOID_TYPE), Void.TYPE.getName(), null);
-}
-
-/**
- * Return the supertype for us
- * null/void has no superclass.
- * This is required as part of the interface
- */
-public IBeanTypeProxy getSuperBeanTypeProxy() {
- return null;
-}
-
-/**
- * Create a new bean proxy with the specified id.
- *
- * For void, this is an invalid operation. They are created
- * explicitly through the appropriate create method.
- */
-public IREMBeanProxy newBeanProxy(Integer anID) {
- throw new UnsupportedOperationException();
-}
-
-/**
- * newBeanTypeForClass: Create a new beantypeproxy of this kind for the given class.
- * This is used by beantype proxy factory when creating a beantype proxy for a subclass.
- * This is because subclasses, unless explicitly overridden, should use the same kind
- * of beantype proxy. This way if anything special is needed for a specific type, then
- * that can be done.
- *
- * For void is a final class, so you can't create a newBeanType
- * for subclasses.
- */
-public IREMBeanTypeProxy newBeanTypeForClass(Integer anID, String aClassname, boolean anAbstract) {
- throw new UnsupportedOperationException();
-}
-
-/**
- * newInstance method. void represents "null",
- * so return the null for this case because that is the default value.
- */
-public IBeanProxy newInstance() {
- return null;
-}
-
-/**
- * Create a new bean proxy the ValueObject passed in.
- * We will assume the object is correct type.
- */
-public IBeanProxy newBeanProxy(Commands.ValueObject value) {
- return newInstance();
-}
-
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMDimensionBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMDimensionBeanProxy.java
deleted file mode 100644
index 8d1fdf147..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMDimensionBeanProxy.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote.awt;
-/*
- * $RCSfile: REMDimensionBeanProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-import org.eclipse.jem.internal.proxy.remote.*;
-import org.eclipse.jem.internal.proxy.awt.*;
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * The REM Bean Proxy for java.awt.Dimension.
- */
-public class REMDimensionBeanProxy extends REMBeanProxy implements IDimensionBeanProxy {
-
- protected REMDimensionBeanProxy(REMProxyFactoryRegistry aRegistry, Integer anID, IBeanTypeProxy aType) {
- super(aRegistry, anID, aType);
- }
-
- public int getHeight() {
- try {
- IIntegerBeanProxy h = (IIntegerBeanProxy) JavaStandardAwtBeanConstants.getConstants(fFactory).getDimensionHeightFieldProxy().get(this);
- return h.intValue();
- } catch (ThrowableProxy e) {
- return 0;
- }
- }
-
- public int getWidth() {
- try {
- IIntegerBeanProxy h = (IIntegerBeanProxy) JavaStandardAwtBeanConstants.getConstants(fFactory).getDimensionWidthFieldProxy().get(this);
- return h.intValue();
- } catch (ThrowableProxy e) {
- return 0;
- }
- }
-
- public void setHeight(int height) {
- try {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getDimensionHeightFieldProxy().set(this, fFactory.getBeanProxyFactory().createBeanProxyWith(height));
- } catch (ThrowableProxy e) {
- }
- }
-
- public void setWidth(int width) {
- try {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getDimensionWidthFieldProxy().set(this, fFactory.getBeanProxyFactory().createBeanProxyWith(width));
- } catch (ThrowableProxy e) {
- }
- }
-
- public void setSize(int width, int height) {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getDimensionSetSizeHWProxy().invokeCatchThrowableExceptions(this, new IBeanProxy[] {fFactory.getBeanProxyFactory().createBeanProxyWith(width), fFactory.getBeanProxyFactory().createBeanProxyWith(height)});
- }
-
- public void setSize(IDimensionBeanProxy fromDimensionProxy) {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getDimensionSetSizeDProxy().invokeCatchThrowableExceptions(this, fromDimensionProxy);
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMDimensionBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMDimensionBeanTypeProxy.java
deleted file mode 100644
index 6064424a9..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMDimensionBeanTypeProxy.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote.awt;
-/*
- * $RCSfile: REMDimensionBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-import org.eclipse.jem.internal.proxy.remote.*;
-import org.eclipse.jem.internal.proxy.core.IBeanTypeProxy;
-/**
- * Beantype proxy for java.awt.Dimension
- */
-public class REMDimensionBeanTypeProxy extends REMAbstractBeanTypeProxy implements IREMSpecialBeanTypeProxy {
-
- protected REMDimensionBeanTypeProxy(REMProxyFactoryRegistry aRegistry, Integer anID, String aClassname, IBeanTypeProxy aSuperType) {
- super(aRegistry, anID, aClassname, aSuperType);
- }
-
- /**
- * Helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- */
- REMDimensionBeanProxy createDimensionBeanProxy(Integer objectID) {
- return new REMDimensionBeanProxy(fRegistry, objectID, this);
- }
-
- /**
- * newBeanTypeForClass: Create a new beantypeproxy of this kind for the given class.
- * This is used by beantype proxy factory when creating a beantype proxy for a subclass.
- * This is because subclasses, unless explicitly overridden, should use the same kind
- * of beantype proxy. This way if anything special is needed for a specific type, then
- * that can be done.
- *
- * NOTE: All subclasses must override this to return the correct type of BeanTypeProxy.
- */
- public IREMBeanTypeProxy newBeanTypeForClass(Integer anID, String aClassname, boolean anAbstract) {
- return newBeanTypeForClass(anID, aClassname, anAbstract, this);
- }
-
- /**
- * The special method to handle subclassing from an abstract).
- */
- public IREMBeanTypeProxy newBeanTypeForClass(Integer anID, String aClassname, boolean anAbstract, IBeanTypeProxy superType) {
- if (!anAbstract)
- return new REMDimensionBeanTypeProxy(fRegistry, anID, aClassname, superType);
- else
- return new REMAnAbstractBeanTypeProxy(fRegistry, anID, aClassname, superType, this);
- }
-
- /**
- * Specialized from REMAbstractBeanTypeProxy to ensure ExceptionBeanProxies are created correctly.
- */
- public IREMBeanProxy newBeanProxy(Integer objectID) {
- return createDimensionBeanProxy(objectID);
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMPointBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMPointBeanProxy.java
deleted file mode 100644
index a3877f5ee..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMPointBeanProxy.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote.awt;
-/*
- * $RCSfile: REMPointBeanProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-import org.eclipse.jem.internal.proxy.remote.*;
-import org.eclipse.jem.internal.proxy.awt.*;
-import org.eclipse.jem.internal.proxy.core.*;
-
-/**
- * The REM Bean Proxy for java.awt.Point.
- */
-public class REMPointBeanProxy extends REMBeanProxy implements IPointBeanProxy {
-
- protected REMPointBeanProxy(REMProxyFactoryRegistry aRegistry, Integer anID, IBeanTypeProxy aType) {
- super(aRegistry, anID, aType);
- }
-
- public int getX() {
- try {
- IIntegerBeanProxy h = (IIntegerBeanProxy) JavaStandardAwtBeanConstants.getConstants(fFactory).getPointXFieldProxy().get(this);
- return h.intValue();
- } catch (ThrowableProxy e) {
- return 0;
- }
- }
-
- public int getY() {
- try {
- IIntegerBeanProxy h = (IIntegerBeanProxy) JavaStandardAwtBeanConstants.getConstants(fFactory).getPointYFieldProxy().get(this);
- return h.intValue();
- } catch (ThrowableProxy e) {
- return 0;
- }
- }
-
- public void setX(int x) {
- try {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getPointXFieldProxy().set(this, fFactory.getBeanProxyFactory().createBeanProxyWith(x));
- } catch (ThrowableProxy e) {
- }
- }
-
- public void setY(int y) {
- try {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getPointYFieldProxy().set(this, fFactory.getBeanProxyFactory().createBeanProxyWith(y));
- } catch (ThrowableProxy e) {
- }
- }
-
- public void setLocation(int x, int y) {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getPointSetLocationXYProxy().invokeCatchThrowableExceptions(this, new IBeanProxy[] {fFactory.getBeanProxyFactory().createBeanProxyWith(x), fFactory.getBeanProxyFactory().createBeanProxyWith(y)});
- }
-
- public void setLocation(IPointBeanProxy fromPointProxy) {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getPointSetLocationPProxy().invokeCatchThrowableExceptions(this, fromPointProxy);
- }
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMPointBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMPointBeanTypeProxy.java
deleted file mode 100644
index 8ee458ee7..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMPointBeanTypeProxy.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote.awt;
-/*
- * $RCSfile: REMPointBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-import org.eclipse.jem.internal.proxy.remote.*;
-import org.eclipse.jem.internal.proxy.core.IBeanTypeProxy;
-/**
- * Beantype proxy for java.awt.Dimension
- */
-public class REMPointBeanTypeProxy extends REMAbstractBeanTypeProxy implements IREMSpecialBeanTypeProxy {
-
- protected REMPointBeanTypeProxy(REMProxyFactoryRegistry aRegistry, Integer anID, String aClassname, IBeanTypeProxy aSuperType) {
- super(aRegistry, anID, aClassname, aSuperType);
- }
-
- /**
- * Helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- */
- REMPointBeanProxy createPointBeanProxy(Integer objectID) {
- return new REMPointBeanProxy(fRegistry, objectID, this);
- }
-
- /**
- * newBeanTypeForClass: Create a new beantypeproxy of this kind for the given class.
- * This is used by beantype proxy factory when creating a beantype proxy for a subclass.
- * This is because subclasses, unless explicitly overridden, should use the same kind
- * of beantype proxy. This way if anything special is needed for a specific type, then
- * that can be done.
- *
- * NOTE: All subclasses must override this to return the correct type of BeanTypeProxy.
- */
- public IREMBeanTypeProxy newBeanTypeForClass(Integer anID, String aClassname, boolean anAbstract) {
- return newBeanTypeForClass(anID, aClassname, anAbstract, this);
- }
-
- /**
- * The special method to handle subclassing from an abstract).
- */
- public IREMBeanTypeProxy newBeanTypeForClass(Integer anID, String aClassname, boolean anAbstract, IBeanTypeProxy superType) {
- if (!anAbstract)
- return new REMPointBeanTypeProxy(fRegistry, anID, aClassname, superType);
- else
- return new REMAnAbstractBeanTypeProxy(fRegistry, anID, aClassname, superType, this);
- }
-
- /**
- * Specialized from REMAbstractBeanTypeProxy to ensure ExceptionBeanProxies are created correctly.
- */
- public IREMBeanProxy newBeanProxy(Integer objectID) {
- return createPointBeanProxy(objectID);
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMRectangleBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMRectangleBeanProxy.java
deleted file mode 100644
index be3194d1d..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMRectangleBeanProxy.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote.awt;
-/*
- * $RCSfile: REMRectangleBeanProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.remote.*;
-import org.eclipse.jem.internal.proxy.awt.*;
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * The REM Bean Proxy for java.awt.Rectangle.
- */
-public class REMRectangleBeanProxy extends REMBeanProxy implements IRectangleBeanProxy {
-
- protected REMRectangleBeanProxy(REMProxyFactoryRegistry aRegistry, Integer anID, IBeanTypeProxy aType) {
- super(aRegistry, anID, aType);
- }
-
- public int getX() {
- try {
- IIntegerBeanProxy h = (IIntegerBeanProxy) JavaStandardAwtBeanConstants.getConstants(fFactory).getRectangleXFieldProxy().get(this);
- return h.intValue();
- } catch (ThrowableProxy e) {
- return 0;
- }
- }
-
- public int getY() {
- try {
- IIntegerBeanProxy h = (IIntegerBeanProxy) JavaStandardAwtBeanConstants.getConstants(fFactory).getRectangleYFieldProxy().get(this);
- return h.intValue();
- } catch (ThrowableProxy e) {
- return 0;
- }
- }
-
- public void setX(int x) {
- try {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getRectangleXFieldProxy().set(this, fFactory.getBeanProxyFactory().createBeanProxyWith(x));
- } catch (ThrowableProxy e) {
- }
- }
-
- public void setY(int y) {
- try {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getRectangleYFieldProxy().set(this, fFactory.getBeanProxyFactory().createBeanProxyWith(y));
- } catch (ThrowableProxy e) {
- }
- }
-
- public void setLocation(int x, int y) {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getRectangleSetLocationXYProxy().invokeCatchThrowableExceptions(this, new IBeanProxy[] {fFactory.getBeanProxyFactory().createBeanProxyWith(x), fFactory.getBeanProxyFactory().createBeanProxyWith(y)});
- }
-
- public void setLocation(IPointBeanProxy fromPointProxy) {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getRectangleSetLocationPProxy().invokeCatchThrowableExceptions(this, fromPointProxy);
- }
-
-
- public int getHeight() {
- try {
- IIntegerBeanProxy h = (IIntegerBeanProxy) JavaStandardAwtBeanConstants.getConstants(fFactory).getRectangleHeightFieldProxy().get(this);
- return h.intValue();
- } catch (ThrowableProxy e) {
- return 0;
- }
- }
-
- public int getWidth() {
- try {
- IIntegerBeanProxy h = (IIntegerBeanProxy) JavaStandardAwtBeanConstants.getConstants(fFactory).getRectangleWidthFieldProxy().get(this);
- return h.intValue();
- } catch (ThrowableProxy e) {
- return 0;
- }
- }
-
- public void setHeight(int height) {
- try {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getRectangleHeightFieldProxy().set(this, fFactory.getBeanProxyFactory().createBeanProxyWith(height));
- } catch (ThrowableProxy e) {
- }
- }
-
- public void setWidth(int width) {
- try {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getRectangleWidthFieldProxy().set(this, fFactory.getBeanProxyFactory().createBeanProxyWith(width));
- } catch (ThrowableProxy e) {
- }
- }
-
- public void setSize(int width, int height) {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getRectangleSetSizeHWProxy().invokeCatchThrowableExceptions(this, new IBeanProxy[] {fFactory.getBeanProxyFactory().createBeanProxyWith(width), fFactory.getBeanProxyFactory().createBeanProxyWith(height)});
- }
-
- public void setSize(IDimensionBeanProxy fromDimensionProxy) {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getRectangleSetSizeDProxy().invokeCatchThrowableExceptions(this, fromDimensionProxy);
- }
-
- public void setBounds(int x, int y, int width, int height) {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getRectangleSetBoundsXYHWProxy().invokeCatchThrowableExceptions(this, new IBeanProxy[] {fFactory.getBeanProxyFactory().createBeanProxyWith(x), fFactory.getBeanProxyFactory().createBeanProxyWith(y), fFactory.getBeanProxyFactory().createBeanProxyWith(width), fFactory.getBeanProxyFactory().createBeanProxyWith(height)});
- }
-
- public void setBounds(IRectangleBeanProxy fromRectangleProxy) {
- JavaStandardAwtBeanConstants.getConstants(fFactory).getRectangleSetBoundsRProxy().invokeCatchThrowableExceptions(this, fromRectangleProxy);
- }
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMRectangleBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMRectangleBeanTypeProxy.java
deleted file mode 100644
index 31fcc77b1..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMRectangleBeanTypeProxy.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote.awt;
-/*
- * $RCSfile: REMRectangleBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-import org.eclipse.jem.internal.proxy.remote.*;
-import org.eclipse.jem.internal.proxy.core.IBeanTypeProxy;
-/**
- * Beantype proxy for java.awt.Dimension
- */
-public class REMRectangleBeanTypeProxy extends REMAbstractBeanTypeProxy implements IREMSpecialBeanTypeProxy {
-
- protected REMRectangleBeanTypeProxy(REMProxyFactoryRegistry aRegistry, Integer anID, String aClassname, IBeanTypeProxy aSuperType) {
- super(aRegistry, anID, aClassname, aSuperType);
- }
-
- /**
- * Helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- */
- REMRectangleBeanProxy createRectangleBeanProxy(Integer objectID) {
- return new REMRectangleBeanProxy(fRegistry, objectID, this);
- }
-
- /**
- * newBeanTypeForClass: Create a new beantypeproxy of this kind for the given class.
- * This is used by beantype proxy factory when creating a beantype proxy for a subclass.
- * This is because subclasses, unless explicitly overridden, should use the same kind
- * of beantype proxy. This way if anything special is needed for a specific type, then
- * that can be done.
- *
- * NOTE: All subclasses must override this to return the correct type of BeanTypeProxy.
- */
- public IREMBeanTypeProxy newBeanTypeForClass(Integer anID, String aClassname, boolean anAbstract) {
- return newBeanTypeForClass(anID, aClassname, anAbstract, this);
- }
-
- /**
- * The special method to handle subclassing from an abstract).
- */
- public IREMBeanTypeProxy newBeanTypeForClass(Integer anID, String aClassname, boolean anAbstract, IBeanTypeProxy superType) {
- if (!anAbstract)
- return new REMRectangleBeanTypeProxy(fRegistry, anID, aClassname, superType);
- else
- return new REMAnAbstractBeanTypeProxy(fRegistry, anID, aClassname, superType, this);
- }
-
- /**
- * Specialized from REMAbstractBeanTypeProxy to ensure ExceptionBeanProxies are created correctly.
- */
- public IREMBeanProxy newBeanProxy(Integer objectID) {
- return createRectangleBeanProxy(objectID);
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMRegisterAWT.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMRegisterAWT.java
deleted file mode 100644
index af121c46b..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMRegisterAWT.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote.awt;
-/*
- * $RCSfile: REMRegisterAWT.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:07 $
- */
-
-import org.eclipse.jem.internal.proxy.core.IBeanTypeProxy;
-import org.eclipse.jem.internal.proxy.core.IMethodProxy;
-import org.eclipse.jem.internal.proxy.remote.REMProxyFactoryRegistry;
-/**
- * This class is used to register the AWT factories. It is not
- * meant to be called by anyone other than ProxyVMStarter.
- */
-public final class REMRegisterAWT {
- public static void registerAWT(REMProxyFactoryRegistry registry) {
- new REMStandardAWTBeanTypeProxyFactory(registry);
- new REMStandardAWTBeanProxyFactory(registry);
-
- // If we are doing AWT, get the AWT event queue going. This is trying to be a time-saver
- // by having it up right away.
- IBeanTypeProxy starterBeanType = registry.getBeanTypeProxyFactory().getBeanTypeProxy("org.eclipse.jem.internal.proxy.vm.remote.AWTStarter"); //$NON-NLS-1$
- if (starterBeanType != null) {
- IMethodProxy starter = starterBeanType.getMethodProxy("startAWT"); //$NON-NLS-1$
- if (starter != null)
- starter.invokeCatchThrowableExceptions(null);
- }
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMStandardAWTBeanProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMStandardAWTBeanProxyFactory.java
deleted file mode 100644
index 29adbf6f9..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMStandardAWTBeanProxyFactory.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote.awt;
-/*
- * $RCSfile: REMStandardAWTBeanProxyFactory.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:07 $
- */
-
-import org.eclipse.jem.internal.proxy.awt.*;
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.remote.REMProxyFactoryRegistry;
-
-/**
- * Standard AWT Bean Proxy Factory.
- * Package protected because it should not referenced
- * outside of the package other than through the interface.
- */
-class REMStandardAWTBeanProxyFactory implements IStandardAwtBeanProxyFactory {
-
- final IStandardBeanTypeProxyFactory fBeanTypeFactory;
-
- public REMStandardAWTBeanProxyFactory(REMProxyFactoryRegistry factory) {
- factory.registerBeanProxyFactory(IStandardAwtBeanProxyFactory.REGISTRY_KEY, this);
- fBeanTypeFactory = factory.getBeanTypeProxyFactory();
- }
-
- public IDimensionBeanProxy createDimensionBeanProxyWith(int width, int height){
- try {
- return (IDimensionBeanProxy) fBeanTypeFactory.getBeanTypeProxy("java.awt.Dimension").newInstance("new java.awt.Dimension("+width+","+height+")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- } catch (ThrowableProxy e) {
- return null;
- } catch (InstantiationException e) {
- return null; // Shouldn't occur
- }
- }
-
- public IPointBeanProxy createPointBeanProxyWith(int x, int y){
- try {
- return (IPointBeanProxy) fBeanTypeFactory.getBeanTypeProxy("java.awt.Point").newInstance("new java.awt.Point("+x+","+y+")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- } catch (ThrowableProxy e) {
- return null;
- } catch (InstantiationException e) {
- return null; // Shouldn't occur
- }
-
- }
-
- public IRectangleBeanProxy createBeanProxyWith(int x, int y, int width, int height){
- try {
- return (IRectangleBeanProxy) fBeanTypeFactory.getBeanTypeProxy("java.awt.Rectangle").newInstance("new java.awt.Rectangle("+x+","+y+","+width+","+height+")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
- } catch (ThrowableProxy e) {
- return null;
- } catch (InstantiationException e) {
- return null; // Shouldn't occur
- }
-
- }
-
- /*
- * Terminate this factory. Since it doesn't hold onto anything other than the beantype factory,
- * and nothing will be holding onto this factory, nothing needs to be done. It will be GC'd.
- */
- public void terminateFactory(boolean wait) {
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMStandardAWTBeanTypeProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMStandardAWTBeanTypeProxyFactory.java
deleted file mode 100644
index 57f6e4a19..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/awt/REMStandardAWTBeanTypeProxyFactory.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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: REMStandardAWTBeanTypeProxyFactory.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:07 $
- */
-package org.eclipse.jem.internal.proxy.remote.awt;
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.core.IBeanTypeProxy;
-import org.eclipse.jem.internal.proxy.remote.*;
-
-/**
- * BeanType factory standard AWT bean types. This is package protected because it shouldn't be referenced outside the package. It should only be
- * accessed through the interface.
- */
-class REMStandardAWTBeanTypeProxyFactory implements IREMBeanTypeProxyFactory {
-
- static final String BEAN_TYPE_FACTORY_KEY = "java.awt"; //$NON-NLS-1$
-
- protected final REMProxyFactoryRegistry fFactoryRegistry;
-
- REMStandardAWTBeanTypeProxyFactory(REMProxyFactoryRegistry aRegistry) {
- fFactoryRegistry = aRegistry;
- fFactoryRegistry.registerBeanTypeProxyFactory(BEAN_TYPE_FACTORY_KEY, this);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.remote.IREMBeanTypeProxyFactory#getExtensionBeanTypeProxy(java.lang.String)
- */
- public IREMBeanTypeProxy getExtensionBeanTypeProxy(String className) {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.remote.IREMBeanTypeProxyFactory#getExtensionBeanTypeProxy(java.lang.String, java.lang.Integer,
- * org.eclipse.jem.internal.proxy.core.IBeanTypeProxy)
- */
- public IREMBeanTypeProxy getExtensionBeanTypeProxy(String className, Integer classID, IBeanTypeProxy superType) {
-
- if ("java.awt.Dimension".equals(className)) //$NON-NLS-1$
- return new REMDimensionBeanTypeProxy(fFactoryRegistry, classID, className, superType);
- else if ("java.awt.Point".equals(className)) //$NON-NLS-1$
- return new REMPointBeanTypeProxy(fFactoryRegistry, classID, className, superType);
- else if ("java.awt.Rectangle".equals(className)) //$NON-NLS-1$
- return new REMRectangleBeanTypeProxy(fFactoryRegistry, classID, className, superType);
- else
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.remote.IREMBeanTypeProxyFactory#getExtensionBeanTypeProxy(java.lang.String,
- * org.eclipse.jem.internal.proxy.core.IExpression)
- */
- public IProxyBeanType getExtensionBeanTypeProxy(String typeName, IExpression expression) {
- return getExtensionBeanTypeProxy(typeName);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxyFactory#terminateFactory(boolean)
- */
- public void terminateFactory(boolean wait) {
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/messages.properties b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/messages.properties
deleted file mode 100644
index 24a8f630f..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/messages.properties
+++ /dev/null
@@ -1,67 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 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
-###############################################################################
-#
-# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/messages.properties,v $
-# $Revision: 1.16 $ $Date: 2006/05/23 15:43:03 $
-#
-
-
-
-# Exception message - {0} is the name of a project within Eclipse.
-NO_OUTPUT_FOLDER_EXC_ = IWAV0071E No output folder for project "{0}."
-
-# These are lines that are placed into a log file listing the outputs from the two different streams.
-VM_TERMINATED_INFO_ = IWAV0072I Remote VM terminated before any commands can be sent. Following are the error and output streams.
-VM_TERMINATED_LINE1 = -- Error Stream --
-VM_TERMINATED_LINE2 = -- Output Stream --
-VM_TERMINATED_LINE3 = -- End of Stream Output --
-
-# These are the headers for two parts of a stack trace of an exception. The first one is the trace from the remote system.
-# The second is the trace from the local system.
-REMOTE_VM_TRACE_INFO_ = IWAV0073I *** RemoteVM Exception - Trace from Remote VM:
-REMOTE_VM_LOCAL_TRACE_INFO_ = IWAV0074I *** Local StackTrace:
-
-# In the two below, {0} is a string that is a java creation string, e.g. "new Integer(3)", so they don't participate in translation.
-# In Classcast, {1} is a java type name, e.g. java.lang.Integer.
-Classcast_EXC_ = IWAV0124E "{0}" does not evaluate to an object of type {1}
-Instantiate_EXC_ = IWAV0125E "{0}" is too complicated to be evaluated
-
-# {0} is a number, e.g. 1, 2, ...
-RemoteCmd_EXC_ = IWAV0126E Remote command error {0}
-
-# The following is an exception error where {0} is the name of the class of the exception and {1} is the message from the exception
-# The message {1} has already been localized (if it supplied it localized). It comes from somewhere outside of our project.
-ExceptionErrorMsg_EXC_ = IWAV0135E {0}({1})
-OK_7 = OK
-Proxy_NoRunner_ERROR_ = IWAV0137E Could not find a Run type runner to launch for \"{0}\".
-Proxy_Error_Title = Error:
-Proxy_Terminated_too_soon_ERROR_ = IWAV0138E Remote VM terminated too soon. See .log file for trace of output. For VM \"{0}\".
-# This is a launch name for a given project name ({0}).
-# WARNING for the ProxyRemoteVMName and ProxyRemoteVMNameWithComment do not use double-quote ("). It will cause problems.
-ProxyRemoteVMName = Project ({0})
-# This is a launch name that has a comment ({0} is project name, {1} is the comment for this project launch)
-ProxyRemoteVMNameWithComment = Project ({0})-{1}
-
-ProxyRemoteNoLaunchKey = Cannot launch local proxy registry. Not launched from valid launcher.
-
-# {0} is the appropriate VMName from the above two entries.
-ProxyRemoteLaunchVM = Launching remote vm "{0}"
-
-CleanupJob_title = Remote VM Cleanup GC'd Proxies Job
-
-REMProxyFactoryRegistry_CallbackConnectionNotWorking_EXC_ = IWAV0169E Callback connection is not working.
-REMProxyFactoryRegistry_ConnectionCreationFailed_INFO_ = IWAV0170I Connection creation failed.
-REMProxyFactoryRegistry_Job_TerminateProcess_Title=Terminate the remote vm process.
-REMProxyFactoryRegistry_CouldNotCreateSocketConnectionToRemoteVM_EXC_ = IWAV0171E Could not create a socket connection to remote vm.
-REMExpression_IOExceptionSeeLog_INFO_ = IWAV0172I I/O Exception occurred. See .log file for details.
-REMExpression_CommandExceptionSeeLog_INFO_ = IWAV0173I Command Exception occurred. See .log file for details.
-LocalProxyLaunchDelegate_Monitor_PrintRemoteTrace_Text=Print remote vm trace output
-VM_COMMAND_LINE=Remote VM Commandline:
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEAccessibleObjectProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEAccessibleObjectProxy.java
deleted file mode 100644
index 710989d65..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEAccessibleObjectProxy.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: IDEAccessibleObjectProxy.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:06 $
- */
-package org.eclipse.jem.internal.proxy.ide;
-
-import java.lang.reflect.AccessibleObject;
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-/**
- *
- * @since 1.0.0
- */
-public class IDEAccessibleObjectProxy extends IDEBeanProxy implements IAccessibleObjectProxy {
-
- protected IDEAccessibleObjectProxy(IDEProxyFactoryRegistry aProxyFactoryRegistry) {
- super(aProxyFactoryRegistry);
- }
-
- protected IDEAccessibleObjectProxy(IDEProxyFactoryRegistry aProxyFactoryRegistry, Object anObject) {
- super(aProxyFactoryRegistry, anObject);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IAccessibleObjectProxy#isAccessible()
- */
- public boolean isAccessible() throws ThrowableProxy {
- return ((AccessibleObject) getBean()).isAccessible();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IAccessibleObjectProxy#setAccessible(boolean)
- */
- public void setAccessible(boolean flag) throws ThrowableProxy {
- ((AccessibleObject) getBean()).setAccessible(flag);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#getTypeProxy()
- */
- public IBeanTypeProxy getTypeProxy() {
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).accessibleType;
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEArrayBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEArrayBeanProxy.java
deleted file mode 100644
index 518d565b9..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEArrayBeanProxy.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEArrayBeanProxy.java,v $
- * $Revision: 1.9 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-import java.lang.reflect.*;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-/**
- * IDE VM version of the Array proxy
- */
-
-public final class IDEArrayBeanProxy extends IDEObjectBeanProxy implements IArrayBeanProxy {
-
- private IDEStandardBeanTypeProxyFactory fBeanTypeProxyFactory;
-
-IDEArrayBeanProxy(IDEProxyFactoryRegistry aRegistry, Object array,IBeanTypeProxy aType) {
- super(aRegistry, array ,aType);
- fBeanTypeProxyFactory = (IDEStandardBeanTypeProxyFactory)aRegistry.getBeanTypeProxyFactory();
-}
-/**
- * Get the object at the specified index.
- */
-public IBeanProxy get(int index) throws ThrowableProxy {
- // If the component type is primitive, we need to use the correct getter so that a valid value is returned,
- // if we just used the standard get, if the type was "int" the value returned would be an java.lang.Integer.
- IBeanTypeProxy compType = ((IArrayBeanTypeProxy) getTypeProxy()).getComponentType();
- if (!compType.isPrimitive()) {
- // Use standard getter.
- Object result = Array.get(fBean,index);
- if ( result == null ) return null;
- return ((IDEBeanTypeProxy)fBeanTypeProxyFactory.getBeanTypeProxy(result.getClass())).newBeanProxy(result);
- } else {
- // Use the correct primitive getter.
- int id = ((IDEPrimitiveBeanTypeProxy)compType).getPrimitiveType();
- switch (id) {
- case IDEPrimitiveBeanTypeProxy.BYTE:
- return fBeanTypeProxyFactory.byteType.createByteBeanProxy(Array.getByte(fBean,index));
- case IDEPrimitiveBeanTypeProxy.BOOLEAN:
- return fBeanTypeProxyFactory.booleanType.createBooleanBeanProxy(Array.getBoolean(fBean,index));
- case IDEPrimitiveBeanTypeProxy.CHAR:
- return fBeanTypeProxyFactory.charType.createCharBeanProxy(Array.getChar(fBean,index));
- case IDEPrimitiveBeanTypeProxy.DOUBLE:
- return fBeanTypeProxyFactory.doubleType.createDoubleBeanProxy(Array.getDouble(fBean,index));
- case IDEPrimitiveBeanTypeProxy.FLOAT:
- return fBeanTypeProxyFactory.floatType.createFloatBeanProxy(Array.getFloat(fBean,index));
- case IDEPrimitiveBeanTypeProxy.INTEGER:
- return fBeanTypeProxyFactory.intType.createIntegerBeanProxy(Array.getInt(fBean,index));
- case IDEPrimitiveBeanTypeProxy.LONG:
- return fBeanTypeProxyFactory.longType.createLongBeanProxy(Array.getLong(fBean,index));
- case IDEPrimitiveBeanTypeProxy.SHORT:
- return fBeanTypeProxyFactory.shortType.createShortBeanProxy(Array.getShort(fBean,index));
- default :
- return null; // Shouldn't get here, said it was primitive, but not one we understand
- }
- }
-}
-/**
- * Get the object at the specified multi-dimensional index.
- * The array must be at least the number of dimensions specified,
- * and each index along the way must exist.
- * The number of dimensions can't be greater than the number
- * of dimensions of the real object.
- */
-public IBeanProxy get(int[] indexes) throws ThrowableProxy {
- if (indexes.length == 1)
- return get(indexes[0]);
- int dims = ((IArrayBeanTypeProxy) getTypeProxy()).getDimensions();
- if (dims < indexes.length)
- throw new IllegalArgumentException(); // Too many dimensions
- // Get up to the next to last dimension so that we can do the appropriate final get depending upon primitive or not.
- Object array = fBean;
- int lastArrayDim = indexes.length - 1;
- for (int i = 0; i < lastArrayDim; i++)
- array = Array.get(array, indexes[i]);
-
- int index = indexes[lastArrayDim]; // Final array dim to retrieve
-
- if (dims == indexes.length) {
- IBeanTypeProxy finalCompType = ((IArrayBeanTypeProxy) getTypeProxy()).getFinalComponentType();
- if (finalCompType.isPrimitive()) {
- // If the component type at the specified dimension is primitive, we need to use the correct getter so that a valid value is returned,
- // if we just used the standard get, if the type was "int" the value returned would be an java.lang.Integer.
- int id = ((IDEPrimitiveBeanTypeProxy) finalCompType).getPrimitiveType();
- switch (id) {
- case IDEPrimitiveBeanTypeProxy.BYTE :
- return fBeanTypeProxyFactory.byteType.createByteBeanProxy(Array.getByte(array, index));
- case IDEPrimitiveBeanTypeProxy.BOOLEAN :
- return fBeanTypeProxyFactory.booleanType.createBooleanBeanProxy(Array.getBoolean(array, index));
- case IDEPrimitiveBeanTypeProxy.CHAR :
- return fBeanTypeProxyFactory.charType.createCharBeanProxy(Array.getChar(array, index));
- case IDEPrimitiveBeanTypeProxy.DOUBLE :
- return fBeanTypeProxyFactory.doubleType.createDoubleBeanProxy(Array.getDouble(array, index));
- case IDEPrimitiveBeanTypeProxy.FLOAT :
- return fBeanTypeProxyFactory.floatType.createFloatBeanProxy(Array.getFloat(array, index));
- case IDEPrimitiveBeanTypeProxy.INTEGER :
- return fBeanTypeProxyFactory.intType.createIntegerBeanProxy(Array.getInt(array, index));
- case IDEPrimitiveBeanTypeProxy.LONG :
- return fBeanTypeProxyFactory.longType.createLongBeanProxy(Array.getLong(array, index));
- case IDEPrimitiveBeanTypeProxy.SHORT :
- return fBeanTypeProxyFactory.shortType.createShortBeanProxy(Array.getShort(array, index));
- default :
- return null; // Shouldn't get here, said it was primitive, but not one we understand
- }
- }
- }
-
- // Won't be returning a primitive, so use standard accessor
- Object result = Array.get(array, index);
- if (result == null)
- return null;
- return ((IDEBeanTypeProxy) fBeanTypeProxyFactory.getBeanTypeProxy(result.getClass())).newBeanProxy(
- result);
-}
-
-/**
- * Set the object at the specified index.
- */
-public void set(IBeanProxy valueProxy, int index) throws ThrowableProxy {
- // If the component type is primitive, we need to use the correct getter so that a valid value is returned,
- // if we just used the standard get, if the type was "int" the value returned would be an java.lang.Integer.
- Object value = ((IIDEBeanProxy)valueProxy).getBean();
- Class valueClass = value.getClass();
- if (!valueClass.isPrimitive()) {
- // Use standard getter.
- Array.set(fBean,index,value);
- } else if (valueClass == Byte.TYPE ) {
- Array.setByte(fBean,index,((Byte)value).byteValue());
- } else if (valueClass == Boolean.TYPE ){
- Array.setBoolean(fBean,index,((Boolean)value).booleanValue());
- } else if (valueClass == Character.TYPE) {
- Array.setChar(fBean,index,((Character)value).charValue());
- } else if (valueClass == Double.TYPE) {
- Array.setDouble(fBean,index,((Double)value).doubleValue());
- } else if (valueClass == Float.TYPE) {
- Array.setFloat(fBean,index,((Float)value).floatValue());
- } else if (valueClass == Integer.TYPE) {
- Array.setInt(fBean,index,((Integer)value).intValue());
- } else if (valueClass == Long.TYPE ) {
- Array.setLong(fBean,index,((Long)value).longValue());
- } else if (valueClass == Short.TYPE ) {
- Array.setShort(fBean,index,((Short)value).shortValue());
- }
-}
-/**
- * Set the object at the specified multi-dimensional index.
- * The array must be at least the number of dimensions specified,
- * and each index along the way must exist.
- * The number of dimensions can't be greater than the number
- * of dimensions of the real object.
- */
-public void set(IBeanProxy valueProxy, int[] indexes) throws ThrowableProxy {
-
- Object subArray = fBean;
- int upTo = indexes.length - 1;
- for (int i = 0; i < upTo; i++)
- subArray = Array.get(subArray, indexes[i]);
- int index = indexes[upTo];
-
- // Now set the appropriate value in
- // If the component type is primitive, we need to use the correct getter so that a valid value is returned,
- // if we just used the standard get, if the type was "int" the value returned would be an java.lang.Integer.
- Object value = ((IIDEBeanProxy) valueProxy).getBean();
- Class valueClass = value.getClass();
- if (!valueClass.isPrimitive()) {
- // Use standard getter.
- Array.set(subArray, index, value);
- } else if (valueClass == Byte.TYPE) {
- Array.setByte(subArray, index, ((Byte) value).byteValue());
- } else if (valueClass == Boolean.TYPE) {
- Array.setBoolean(subArray, index, ((Boolean) value).booleanValue());
- } else if (valueClass == Character.TYPE) {
- Array.setChar(subArray, index, ((Character) value).charValue());
- } else if (valueClass == Double.TYPE) {
- Array.setDouble(subArray, index, ((Double) value).doubleValue());
- } else if (valueClass == Float.TYPE) {
- Array.setFloat(subArray, index, ((Float) value).floatValue());
- } else if (valueClass == Integer.TYPE) {
- Array.setInt(subArray, index, ((Integer) value).intValue());
- } else if (valueClass == Long.TYPE) {
- Array.setLong(subArray, index, ((Long) value).longValue());
- } else if (valueClass == Short.TYPE) {
- Array.setShort(subArray, index, ((Short) value).shortValue());
- }
-
-}
-/**
- * Get the length of the first dimension of this array.
- * If there are multi-dimensions, you must get the appropriate
- * dimension from the get method to see the size of that dimension.
- *
- * e.g.
- * int [3] returns 3
- * int [3][2] returns 3
- *
- * ((IArrayBeanProxy) get(1)).getLength() returns 2
- * Since arrays do not have to be homogenous, there could
- * be a different length array for each of the arrays
- * returned from the first dimension, the returned length
- * from get(2) and get(3) could result in a different value
- * from get(1).
- */
-public int getLength() {
- return Array.getLength(fBean);
-}
- /**
- * @see org.eclipse.jem.internal.proxy.core.IArrayBeanProxy#getCatchThrowableException(int)
- */
- public IBeanProxy getCatchThrowableException(int index) {
- try {
- return get(index);
- } catch ( ThrowableProxy exc ) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", exc)); //$NON-NLS-1$
- return null;
- }
- }
-
-
- public IBeanProxy[] getSnapshot() throws ThrowableProxy {
- // If the component type is primitive, we need to use the correct getter so that a valid value is returned,
- // if we just used the standard get, if the type was "int" the value returned would be an java.lang.Integer.
- IBeanTypeProxy compType = ((IArrayBeanTypeProxy) getTypeProxy()).getComponentType();
- int id = compType.isPrimitive() ? ((IDEPrimitiveBeanTypeProxy)compType).getPrimitiveType() : -1;
- IBeanProxy[] result = new IBeanProxy[Array.getLength(fBean)];
- for (int i = 0; i < result.length; i++) {
- if (id == -1) {
- // Use standard getter.
- Object val = Array.get(fBean,i);
- if ( val != null )
- result[i] = ((IDEBeanTypeProxy)fBeanTypeProxyFactory.getBeanTypeProxy(val.getClass())).newBeanProxy(val);
- } else {
- // Use the correct primitive getter.
- switch (id) {
- case IDEPrimitiveBeanTypeProxy.BYTE:
- result[i] = fBeanTypeProxyFactory.byteType.createByteBeanProxy(Array.getByte(fBean,i));
- break;
- case IDEPrimitiveBeanTypeProxy.BOOLEAN:
- result[i] = fBeanTypeProxyFactory.booleanType.createBooleanBeanProxy(Array.getBoolean(fBean,i));
- break;
- case IDEPrimitiveBeanTypeProxy.CHAR:
- result[i] = fBeanTypeProxyFactory.charType.createCharBeanProxy(Array.getChar(fBean,i));
- break;
- case IDEPrimitiveBeanTypeProxy.DOUBLE:
- result[i] = fBeanTypeProxyFactory.doubleType.createDoubleBeanProxy(Array.getDouble(fBean,i));
- break;
- case IDEPrimitiveBeanTypeProxy.FLOAT:
- result[i] = fBeanTypeProxyFactory.floatType.createFloatBeanProxy(Array.getFloat(fBean,i));
- break;
- case IDEPrimitiveBeanTypeProxy.INTEGER:
- result[i] = fBeanTypeProxyFactory.intType.createIntegerBeanProxy(Array.getInt(fBean,i));
- break;
- case IDEPrimitiveBeanTypeProxy.LONG:
- result[i] = fBeanTypeProxyFactory.longType.createLongBeanProxy(Array.getLong(fBean,i));
- break;
- case IDEPrimitiveBeanTypeProxy.SHORT:
- result[i] = fBeanTypeProxyFactory.shortType.createShortBeanProxy(Array.getShort(fBean,i));
- break;
- default :
- break; // Shouldn't get here, said it was primitive, but not one we understand
- }
- }
- }
- return result;
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEArrayBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEArrayBeanTypeProxy.java
deleted file mode 100644
index ba1e81203..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEArrayBeanTypeProxy.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-
-/*
- * $RCSfile: IDEArrayBeanTypeProxy.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-import java.lang.reflect.*;
-
-/**
- * Array Type Proxy for the IDE VM.
- *
- * The class is final because array's are special and shouldn't have any subclasses since the factory would never call it.
- */
-
-public final class IDEArrayBeanTypeProxy extends IDEBeanTypeProxy implements IArrayBeanTypeProxy {
-
- IBeanTypeProxy fFinalComponentType;
-
- IBeanTypeProxy fComponentType;
-
- String fTypeName;
-
- /**
- * Create with a registry and a class. It is package so that only the factory with this IDE package can call it.
- */
- IDEArrayBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, String aTypeName, Class aClass) {
- // The class of an Array is always Object
- super(aRegistry, aClass);
- fTypeName = aTypeName;
- }
-
- /**
- * This is an array type!
- */
- public boolean isArray() {
- return true;
- }
-
- public String getTypeName() {
- return fTypeName;
- }
-
- /**
- * Return the final component type.
- */
- public IBeanTypeProxy getFinalComponentType() {
- if (fFinalComponentType == null) {
- // Component type is strip off all '[' and return class name (if we ever add classLoader support, this won't work).
- // However, if the type is a primitive we need to go through the change table).
- int typeStart = getTypeName().lastIndexOf('[') + 1;
- if (getTypeName().charAt(typeStart) == 'L') {
- // It is a class.
- // Strip off up to the 'L', and the trailing ';'. That is the class name.
- fFinalComponentType = fProxyFactoryRegistry.getBeanTypeProxyFactory().getBeanTypeProxy(
- getTypeName().substring(typeStart + 1, getTypeName().length() - 1));
- } else {
- // It is a type. Need to map it.
- Class aType = (Class) IDEStandardBeanTypeProxyFactory.MAP_SHORTSIG_TO_TYPE.get(getTypeName().substring(typeStart, typeStart + 1));
- fFinalComponentType = aType != null ? fProxyFactoryRegistry.getBeanTypeProxyFactory().getBeanTypeProxy(aType.getName()) : null;
- }
- }
- return fFinalComponentType;
- }
-
- /**
- * Return the component type.
- */
- public IBeanTypeProxy getComponentType() {
- if (fComponentType == null) {
- // Component type is strip off first '[' and return class name (if we ever add classLoader support, this won't work).
- // However, if the type is a primitive we need to go through the change table).
- if (getTypeName().charAt(1) != '[') {
- // It is a one dimensional array, just send to getFinalComponentType to figure out the type.
- fComponentType = getFinalComponentType();
- } else {
- // It is a multi-dimensional array. Just strip off one '[' and send that to the bean type factory.
- fComponentType = fProxyFactoryRegistry.getBeanTypeProxyFactory().getBeanTypeProxy(getTypeName().substring(1));
- }
- }
- return fComponentType;
- }
-
- /**
- * Return the number of dimensions.
- */
- public int getDimensions() {
- return getTypeName().lastIndexOf('[') + 1;
- }
-
- /**
- * Return the null ctor proxy for this method with these arguments. For all of the array types, this is an invalid operation.
- */
- public IConstructorProxy getNullConstructorProxy() {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return a proxy to the constructor for the target VM being the same as the REM For all of the array types, this is an invalid operation.
- */
- public IConstructorProxy getConstructorProxy(String[] argumentClassNames) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return a proxy to the constructor for the target VM being the same as the REM For all of the array types, this is an invalid operation.
- */
- public IConstructorProxy getConstructorProxy(IBeanTypeProxy[] argumentTypes) {
- throw new UnsupportedOperationException();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors() For all of the array types, this is an invalid operation.
- */
- public IConstructorProxy[] getConstructors() {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return a proxy to the constructor for the target VM being the same as the REM For all of the array types, this is an invalid operation.
- */
- public IConstructorProxy getDeclaredConstructorProxy(String[] argumentClassNames) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return a proxy to the constructor for the target VM being the same as the REM For all of the array types, this is an invalid operation.
- */
- public IConstructorProxy getDeclaredConstructorProxy(IBeanTypeProxy[] argumentTypes) {
- throw new UnsupportedOperationException();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors() For all of the array types, this is an invalid operation.
- */
- public IConstructorProxy[] getDeclaredConstructors() {
- throw new UnsupportedOperationException();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors() For all of the array types, this is an invalid operation.
- */
- public IFieldProxy[] getFields() {
- throw new UnsupportedOperationException();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getCompatibleConstructor(org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- public IConstructorProxy getCompatibleConstructor(IBeanTypeProxy[] argumentTypes) {
- throw new UnsupportedOperationException();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getCompatibleMethod(java.lang.String,
- * org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- public IMethodProxy getCompatibleMethod(String methodName, IBeanTypeProxy[] argumentTypes) {
- throw new UnsupportedOperationException();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors() For all of the array types, this is an invalid operation.
- */
- public IFieldProxy[] getDeclaredFields() {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return a proxy to the field for the target VM being the same as the REM For all of the array types, this is an invalid operation.
- */
- public IFieldProxy getFieldProxy(String fieldName) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return the method proxy for this method with these arguments. For all of the array types, this is an invalid operation.
- */
- public IMethodProxy getMethodProxy(String methodName, IBeanTypeProxy[] argumentTypes) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return the method proxy for this method with these arguments. For all of the array types, this is an invalid operation.
- */
- public IMethodProxy getMethodProxy(String methodName, String[] argumentClassNames) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return the method proxy for this method with these arguments. For all of the array types, this is an invalid operation.
- */
- public IMethodProxy getMethodProxy(String methodName, String argumentQualifiedTypeName) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return the method proxy for this method with these arguments. For all of the array types, this is an invalid operation.
- */
- public IMethodProxy getMethodProxy(String methodName) {
- throw new UnsupportedOperationException();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors() For all of the array types, this is an invalid operation.
- */
- public IMethodProxy[] getMethods() {
- throw new UnsupportedOperationException();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors() For all of the array types, this is an invalid operation.
- */
- public IMethodProxy[] getDeclaredMethods() {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return the method proxy for this method with these arguments. For all of the array types, this is an invalid operation.
- */
- public IMethodProxy getDeclaredMethodProxy(String methodName, IBeanTypeProxy[] argumentTypes) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Return the method proxy for this method with these arguments. For all of the array types, this is an invalid operation.
- */
- public IMethodProxy getDeclaredMethodProxy(String methodName, String[] argumentClassNames) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Create an array bean proxy.
- * - (int, new int[2] {3, 4}) will create: int [3] [4]
- * - (int[], new int[1] {1}) int [1]
- * - (int[], new int[2] {2,3}) int [2] [3]
- *
- * - (int[], null) or (int[], new int[0]) or (int, null) or (int, new int[0]) int [0] (int[][], null) or (int[][], new int[0]) int[0][] This is
- * because an array instance with no dimensions specified is not valid.
- * - (int[][], new int[1] {3}) int[3][]
- *
- * It is package protected so that only the REM Factory can call it.
- */
- IDEArrayBeanProxy createBeanProxyWith(int[] dimensions) throws ThrowableProxy {
- // If the dimensions is null or zero length, then create the
- // array as a 0 sized array one dimensional array.
- if (dimensions == null || dimensions.length == 0)
- return createBeanProxyWith(new int[] { 0});
-
- // Remove from this type the number of dimensions specified
- // coming in, up to but no further than the final component.
- // From here we can then use the appropriate java.lang.reflect.Array
- // method to create the array.
- IBeanTypeProxy compType = null; // The type of array to create (it may be different number of dimensions).
- int numDims = getDimensions();
- if (numDims <= dimensions.length)
- compType = getFinalComponentType(); // There are the same or more requested dimensions, so use final component type
- else {
- // There are fewer requested dimensions, so strip off that many
- String compClass = getTypeName().substring(dimensions.length);
- compType = fProxyFactoryRegistry.getBeanTypeProxyFactory().getBeanTypeProxy(compClass);
- }
-
- if (dimensions.length == 1) {
- // Use the one dimension call
- Object array = Array.newInstance(((IDEBeanTypeProxy) compType).fClass, dimensions[0]);
- return new IDEArrayBeanProxy(fProxyFactoryRegistry, array, null);
- } else {
- // Use the multi dimension call
- Object array = Array.newInstance(((IDEBeanTypeProxy) compType).fClass, dimensions);
- return new IDEArrayBeanProxy(fProxyFactoryRegistry, array, null);
- }
- }
-
- /**
- * Create a new bean proxy with the specified object
- */
- protected IIDEBeanProxy newBeanProxy(Object anObject) {
-
- return new IDEArrayBeanProxy(fProxyFactoryRegistry, anObject, this);
-
- }
-
- /**
- * @see IBeanTypeProxy#getFormalTypeName()
- */
- public String getFormalTypeName() {
- String name = getTypeName();
- int dims = name.lastIndexOf('[') + 1;
- String type = getFinalComponentType().getTypeName();
- StringBuffer formalType = new StringBuffer(type.length() + ("[]".length() * dims)); //$NON-NLS-1$
- formalType.append(type);
- for (int i = 0; i < dims; i++)
- formalType.append("[]"); //$NON-NLS-1$
- return formalType.toString();
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBeanProxy.java
deleted file mode 100644
index ca53a1cd8..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBeanProxy.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEBeanProxy.java,v $
- * $Revision: 1.7 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-public abstract class IDEBeanProxy implements IBeanProxy, IIDEBeanProxy {
-
- protected Object fBean;
- protected final IDEProxyFactoryRegistry fProxyFactoryRegistry;
-
- protected IDEBeanProxy(IDEProxyFactoryRegistry aProxyFactoryRegistry) {
- fProxyFactoryRegistry = aProxyFactoryRegistry;
- }
- protected IDEBeanProxy(IDEProxyFactoryRegistry aProxyFactoryRegistry, Object anObject) {
- fProxyFactoryRegistry = aProxyFactoryRegistry;
- fBean = anObject;
- }
- public boolean isValid() {
- return true;
- }
- public ProxyFactoryRegistry getProxyFactoryRegistry() {
- return fProxyFactoryRegistry;
- }
- /**
- * USE with extreme care
- */
- public final Object getBean() {
- return fBean;
- }
- /**
- * Return the toString() of the bean
- */
- public String toBeanString() {
- return (fBean != null ? fBean.toString() : "null"); //$NON-NLS-1$
- }
- /**
- Append the bean's to string to our own name if we have one
- */
- public String toString() {
-
- if (fBean == null)
- return super.toString();
- else
- return super.toString() + "(" + fBean.toString() + ")"; //$NON-NLS-2$//$NON-NLS-1$
-
- }
- /**
- * equals: If there are identical or if they wrapper the same bean. In the IDE VM this
- * can happen if bean proxies are created from a Bean, since proxies aren't cached in
- * the beanproxy factory, more than one proxy can be created for the same bean.
- */
- public boolean equals(Object obj) {
- if (super.equals(obj))
- return true;
- if (obj instanceof IIDEBeanProxy) {
- return fBean.equals(((IIDEBeanProxy) obj).getBean());
- }
- return false;
- }
-
- public int hashCode() {
- return 12345 + (getBean() != null ? getBean().hashCode() : 0);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#sameAs(org.eclipse.jem.internal.proxy.core.IBeanProxy)
- */
- public boolean sameAs(IBeanProxy aBeanProxy) {
- if (this == aBeanProxy)
- return true;
- if (aBeanProxy instanceof IIDEBeanProxy)
- return getBean() == ((IIDEBeanProxy) aBeanProxy).getBean();
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxy#isBeanProxy()
- */
- public final boolean isBeanProxy() {
- return true;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxy#isExpressionProxy()
- */
- public final boolean isExpressionProxy() {
- return false;
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBeanTypeProxy.java
deleted file mode 100644
index 4401b7e2a..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBeanTypeProxy.java
+++ /dev/null
@@ -1,451 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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: IDEBeanTypeProxy.java,v $ $Revision: 1.16 $ $Date: 2006/05/17 20:13:05 $
- */
-package org.eclipse.jem.internal.proxy.ide;
-
-import org.eclipse.jem.internal.proxy.common.AmbiguousMethodException;
-import org.eclipse.jem.internal.proxy.core.*;
-
-import java.lang.reflect.*;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-public class IDEBeanTypeProxy extends IDEBeanProxy implements IBeanTypeProxy {
-
- protected IDEProxyFactoryRegistry fProxyFactoryRegistry;
-
- Class fClass;
-
- protected IDEBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass);
- fProxyFactoryRegistry = aRegistry;
- fClass = aClass;
- }
-
- /**
- * Get Type Proxy. The type proxy of a BeanType is Class.
- */
- public IBeanTypeProxy getTypeProxy() {
- return ((IDEStandardBeanTypeProxyFactory) fProxyFactoryRegistry.getBeanTypeProxyFactory()).classClass;
- }
-
- public Class getTypeClass() {
- return fClass;
- }
-
- public String toBeanString() {
- return fClass.toString();
- }
-
- public ProxyFactoryRegistry getProxyFactoryRegistry() {
- return fProxyFactoryRegistry;
- }
-
- public String getTypeName() {
- return fClass.getName();
- }
-
- public boolean isKindOf(IBeanTypeProxy aBeanTypeProxy) {
- return ((IDEBeanTypeProxy) aBeanTypeProxy).fClass.isAssignableFrom(fClass);
- }
-
- public boolean isInterface() {
- return fClass.isInterface();
- }
-
- public boolean isPrimitive() {
- return fClass.isPrimitive();
- }
-
- public boolean isArray() {
- return fClass.isArray();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors()
- */
- public IMethodProxy[] getMethods() {
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getMethods(fClass);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors()
- */
- public IMethodProxy[] getDeclaredMethods() {
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getDeclaredMethods(fClass);
- }
-
- /**
- * We can use reflection on our class to find the java.reflect.Method instance and create the IDEMethodProxy directly
- */
- public IMethodProxy getMethodProxy(String methodName) {
-
- try {
- Method aMethod = fClass.getMethod(methodName, new Class[0]);
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getMethodProxy(aMethod);
- } catch (Exception exc) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", exc)); //$NON-NLS-1$
- }
- return null;
-
- }
-
- public IMethodProxy getMethodProxy(String methodName, String[] argumentClassNames) {
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getMethodProxy(this, methodName, argumentClassNames);
- }
-
- public IMethodProxy getMethodProxy(String methodName, String firstArgClass) {
- return getMethodProxy(methodName, new String[] { firstArgClass});
- }
-
- public IMethodProxy getMethodProxy(String methodName, IBeanTypeProxy[] args) {
- Class[] argClasses = new Class[args.length];
- for (int i = 0; i < args.length; i++) {
- argClasses[i] = ((IDEBeanTypeProxy) args[i]).fClass;
- }
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getMethodProxy(fClass, methodName, argClasses);
- }
-
- public IMethodProxy getDeclaredMethodProxy(String methodName, String[] argumentClassNames) {
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getDeclaredMethodProxy(fClass, methodName, argumentClassNames);
- }
-
- public IMethodProxy getDeclaredMethodProxy(String methodName, IBeanTypeProxy[] args) {
- Class[] argClasses = null;
- if (args != null) {
- argClasses = new Class[args.length];
- for (int i = 0; i < args.length; i++) {
- argClasses[i] = ((IDEBeanTypeProxy) args[i]).fClass;
- }
- }
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getDeclaredMethodProxy(fClass, methodName, argClasses);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getInvokable(java.lang.String, org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- public IInvokable getInvokable(String methodName, IBeanTypeProxy[] argumentTypes) {
- return getMethodProxy(methodName, argumentTypes);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getInvokable(java.lang.String, java.lang.String)
- */
- public IInvokable getInvokable(String methodName, String argumentClassName) {
- return getMethodProxy(methodName, argumentClassName);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getInvokable(java.lang.String, java.lang.String[])
- */
- public IInvokable getInvokable(String methodName, String[] argumentClassNames) {
- return getMethodProxy(methodName, argumentClassNames);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getInvokable(java.lang.String)
- */
- public IInvokable getInvokable(String methodName) {
- return getMethodProxy(methodName);
- }
-
- public IConstructorProxy getConstructorProxy(String[] argTypeNames) {
- IBeanTypeProxy[] argClasses = new IBeanTypeProxy[argTypeNames.length];
- IStandardBeanTypeProxyFactory btFactory = fProxyFactoryRegistry.getBeanTypeProxyFactory();
- for (int i = 0; i < argTypeNames.length; i++) {
- argClasses[i] = btFactory.getBeanTypeProxy(argTypeNames[i]);
- if (argClasses[i] == null) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "Constructor not found - " //$NON-NLS-1$
- + fClass.getName() + " args=" + argTypeNames, null)); //$NON-NLS-1$
- return null;
- }
- }
- return getConstructorProxy(argClasses);
- }
-
- public IConstructorProxy getConstructorProxy(IBeanTypeProxy[] args) {
- Class[] argClasses = new Class[args.length];
- for (int i = 0; i < args.length; i++) {
- argClasses[i] = ((IDEBeanTypeProxy) args[i]).fClass;
- }
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getConstructorProxy(fClass, argClasses);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors()
- */
- public IConstructorProxy[] getConstructors() {
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getConstructors(fClass);
- }
-
- public IConstructorProxy getDeclaredConstructorProxy(String[] argTypeNames) {
- IBeanTypeProxy[] argClasses = new IBeanTypeProxy[argTypeNames.length];
- IStandardBeanTypeProxyFactory btFactory = fProxyFactoryRegistry.getBeanTypeProxyFactory();
- for (int i = 0; i < argTypeNames.length; i++) {
- argClasses[i] = btFactory.getBeanTypeProxy(argTypeNames[i]);
- if (argClasses[i] == null) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "Constructor not found - " //$NON-NLS-1$
- + fClass.getName() + " args=" + argTypeNames, null)); //$NON-NLS-1$
- return null;
- }
- }
- return getDeclaredConstructorProxy(argClasses);
- }
-
- public IConstructorProxy getDeclaredConstructorProxy(IBeanTypeProxy[] args) {
- Class[] argClasses = new Class[args.length];
- for (int i = 0; i < args.length; i++) {
- argClasses[i] = ((IDEBeanTypeProxy) args[i]).fClass;
- }
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getDeclaredConstructorProxy(fClass, argClasses);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors()
- */
- public IConstructorProxy[] getDeclaredConstructors() {
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getDeclaredConstructors(fClass);
- }
-
- /**
- * Return the supertype for us Use the factory to get it rather than create it directly so that the factory has the chance to cache classes if
- * required This is required as part of the interface
- */
- public IBeanTypeProxy getSuperBeanTypeProxy() {
-
- if (fClass.isInterface())
- return null;
- else
- return fProxyFactoryRegistry.getBeanTypeProxyFactory().getBeanTypeProxy(fClass.getSuperclass().getName());
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors()
- */
- public IFieldProxy[] getFields() {
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getFields(fClass);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors()
- */
- public IFieldProxy[] getDeclaredFields() {
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getDeclaredFields(fClass);
- }
-
- public IFieldProxy getFieldProxy(String fieldName) {
- try {
- Field field = fClass.getField(fieldName);
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getFieldProxy(field);
- } catch (NoSuchFieldException exc) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "Field not found " + fClass.getName() //$NON-NLS-1$
- + " - " + fieldName, exc)); //$NON-NLS-1$
- return null;
- }
- }
-
- public IFieldProxy getDeclaredFieldProxy(String fieldName) {
- try {
- Field field = fClass.getDeclaredField(fieldName);
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getFieldProxy(field);
- } catch (NoSuchFieldException exc) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "Field not found " + fClass.getName() //$NON-NLS-1$
- + " - " + fieldName, exc)); //$NON-NLS-1$
- return null;
- }
- }
-
- /**
- * Return a proxy to the constructor for the target VM being the same as the IDE We can use the package protected contstructor on
- * IDEConstructorProxy
- */
- IConstructorProxy getConstructorProxy(Class[] parameterTypes) {
-
- Constructor aConstructor = null;
-
- // Use reflection to try and find a constructor. The argumentClassNames must be converted to classes
- try {
- aConstructor = fClass.getConstructor(parameterTypes);
- } catch (Exception e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- }
- // If we have a constructor return it
- if (aConstructor != null) {
- return getNewConstructorProxy(aConstructor);
- } else {
- return null;
- }
-
- }
-
- /**
- * Factored into its own method so subclass can override
- */
- protected IConstructorProxy getNewConstructorProxy(Constructor aConstructor) {
-
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getConstructorProxy(aConstructor);
-
- }
-
- /**
- * Return a proxy to the null constructor for the target VM being the same as the IDE We can use the package protected contstructor on
- * IDEConstructorProxy
- */
- public IConstructorProxy getNullConstructorProxy() {
-
- Constructor aConstructor = null;
-
- // Use reflection to try and find a constructor. The argumentClassNames must be converted to classes
- try {
- aConstructor = fClass.getConstructor(null);
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getConstructorProxy(aConstructor);
- } catch (Exception e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- return null;
- }
-
- }
-
- public IBeanProxy newInstance(String initializationString) {
- return ((IDEStandardBeanProxyFactory) fProxyFactoryRegistry.getBeanProxyFactory()).createBeanProxy(this, initializationString);
- }
-
- public IBeanProxy newInstance() {
- return ((IDEStandardBeanProxyFactory) fProxyFactoryRegistry.getBeanProxyFactory()).createBeanProxy(this);
- }
-
- /**
- * Create a new bean proxy with the specified object Use the constructor that allows the type proxy to be set as well as the bean because we are
- * the type and by setting it now we might avoid it being lookup for in the factory the first time it is asked for
- *
- * NOTE: All subclasses need to override this to return the appropriate IDEBeanProxy.
- */
- protected IIDEBeanProxy newBeanProxy(Object anObject) {
-
- return new IDEObjectBeanProxy(fProxyFactoryRegistry, anObject, this);
-
- }
-
- /**
- * Create a subclass beantype proxy.
- */
- public IDEBeanTypeProxy newBeanTypeForClass(Class type) {
- // Default is just another instance of this same class.
- return new IDEBeanTypeProxy(fProxyFactoryRegistry, type);
- }
-
- /**
- * @see IBeanTypeProxy#getFormalTypeName()
- */
- public String getFormalTypeName() {
- return getTypeName();
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getInitializationError()
- */
- public String getInitializationError() {
- return null; // By default none have an initialization error. There is a special instance for init errors.
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getCompatibleConstructor(org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- public IConstructorProxy getCompatibleConstructor(IBeanTypeProxy[] argumentTypes) throws AmbiguousMethodException, NoSuchMethodException, IllegalAccessException {
-
- Class[] argClasses = new Class[argumentTypes.length];
- for (int i = 0; i < argumentTypes.length; i++) {
- argClasses[i] = ((IDEBeanTypeProxy) argumentTypes[i]).fClass;
- }
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getCompatibleConstructor(fClass, argClasses);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getCompatibleMethod(java.lang.String,
- * org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- public IMethodProxy getCompatibleMethod(String methodName, IBeanTypeProxy[] argumentTypes) throws NoSuchMethodException, AmbiguousMethodException {
- Class[] argClasses = new Class[argumentTypes.length];
- for (int i = 0; i < argumentTypes.length; i++) {
- argClasses[i] = ((IDEBeanTypeProxy) argumentTypes[i]).fClass;
- }
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getCompatibleMethod(fClass, methodName, argClasses);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxyBeanType#getMethodProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String, org.eclipse.jem.internal.proxy.core.IProxyBeanType[])
- */
- public IProxyMethod getMethodProxy(IExpression expression, String methodName, IProxyBeanType[] parameterTypes) {
- IProxyMethod method = ((IDEExpression) expression).getMethodExpressionProxy(this, methodName, parameterTypes);
- if (method == null) {
- // Need to go to the expression and create it.
- method = ((Expression) expression).createMethodExpressionProxy(this, methodName, parameterTypes);
- }
- return method;
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxyBeanType#getMethodProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String, java.lang.String[])
- */
- public IProxyMethod getMethodProxy(IExpression expression, String methodName, String[] parameterTypes) {
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).getMethodProxy(expression, this, methodName, parameterTypes);
- }
-
- public IProxyMethod getMethodProxy(IExpression expression, String methodName) {
- return getMethodProxy(expression, methodName, (IProxyBeanType[]) null);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxyBeanType#getFieldProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String)
- */
- public IProxyField getFieldProxy(IExpression expression, String fieldName) {
- IProxyField field = ((IDEExpression) expression).getFieldExpressionProxy(this, fieldName);
- if (field == null) {
- // Need to go to the expression and create it.
- field = ((Expression) expression).createFieldExpressionProxy(this, fieldName);
- }
- return field;
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBigDecimalBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBigDecimalBeanTypeProxy.java
deleted file mode 100644
index 866b5e320..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBigDecimalBeanTypeProxy.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEBigDecimalBeanTypeProxy.java,v $
- * $Revision: 1.6 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-import java.math.*;
-
-final class IDEBigDecimalBeanTypeProxy extends IDENumberBeanTypeProxy {
-// Some values are cache'd for speed
-IDEBigDecimalBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass,new BigDecimal(0));
-}
-/**
- * Static helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- */
-INumberBeanProxy createBigDecimalBeanProxy(BigDecimal aBigDecimal) {
- if ( aBigDecimal == null || aBigDecimal.intValue() == 0 ) {
- return zeroProxy;
- } else {
- return new IDENumberBeanProxy(fProxyFactoryRegistry,aBigDecimal,this);
- }
-}
-}
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBigIntegerBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBigIntegerBeanTypeProxy.java
deleted file mode 100644
index 8b91066d1..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBigIntegerBeanTypeProxy.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEBigIntegerBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-import java.math.*;
-/**
- * IDE Implementation of IIntegerBeanTypeProxy
- */
-final class IDEBigIntegerBeanTypeProxy extends IDENumberBeanTypeProxy {
-// Some values are cache'd for speed
-IDEBigIntegerBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass, new BigInteger("0")); //$NON-NLS-1$
-}
-/**
- * Static helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- */
-INumberBeanProxy createBigIntegerBeanProxy(BigInteger aBigInteger) {
- if ( aBigInteger == null || aBigInteger.intValue() == 0 ) {
- return zeroProxy;
- } else {
- return new IDENumberBeanProxy(fProxyFactoryRegistry,aBigInteger,this);
- }
-}
-}
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBooleanBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBooleanBeanProxy.java
deleted file mode 100644
index 853e0a10c..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBooleanBeanProxy.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEBooleanBeanProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * IDE Implementation of IBooleanBeanProxy..
- * Creation date: (2/6/00 9:02:54 AM)
- * @author: Joe Winchester
- */
-class IDEBooleanBeanProxy extends IDEObjectBeanProxy implements IBooleanBeanProxy {
- protected Boolean fBooleanValue;
-/**
- * As well as storing the bean store the boolean value so that we can return the booleanValue faster
- * without the need for repeated re-casting. It is package protected because it is created in
- * special way, so no one else should create these.
- * @param aBean java.lang.Object
- */
-IDEBooleanBeanProxy(IDEProxyFactoryRegistry aRegistry, Object aBean, IBeanTypeProxy aBeanTypeProxy) {
- super(aRegistry, aBean,aBeanTypeProxy);
- fBooleanValue = (Boolean)aBean;
-}
-public boolean booleanValue() {
- return fBooleanValue.booleanValue();
-}
-public Boolean getBooleanValue() {
- return fBooleanValue;
-}
-}
-
-
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBooleanBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBooleanBeanTypeProxy.java
deleted file mode 100644
index c06f941bc..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBooleanBeanTypeProxy.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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
- *******************************************************************************/
-/*
- * Created on Sep 15, 2003
- *
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-package org.eclipse.jem.internal.proxy.ide;
-
-import org.eclipse.jem.internal.proxy.core.IBeanProxy;
-import org.eclipse.jem.internal.proxy.core.IBeanTypeProxy;
-
-/**
- * @author richkulp
- *
- * To change the template for this generated type comment go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-public class IDEBooleanBeanTypeProxy extends IDEBooleanBeanProxy {
-
- /**
- * @param aRegistry
- * @param aBean
- * @param aBeanTypeProxy
- */
- public IDEBooleanBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Object aBean, IBeanTypeProxy aBeanTypeProxy) {
- super(aRegistry, aBean, aBeanTypeProxy);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#sameAs(org.eclipse.jem.internal.proxy.core.IBeanProxy)
- */
- public boolean sameAs(IBeanProxy aBeanProxy) {
- return (aBeanProxy instanceof IDEBooleanBeanTypeProxy) ? getBooleanValue() == ((IDEBooleanBeanTypeProxy) aBeanProxy).getBooleanValue() : false;
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBooleanClassBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBooleanClassBeanTypeProxy.java
deleted file mode 100644
index 41b31b4ab..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBooleanClassBeanTypeProxy.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEBooleanClassBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-final public class IDEBooleanClassBeanTypeProxy extends IDEBeanTypeProxy {
-
- // Cache these instances. Since the BeanType proxies are cached also, only one instance
- // of true/false will be in system.
- protected final IDEBooleanBeanProxy trueProxy;
- protected final IDEBooleanBeanProxy falseProxy;
-
-IDEBooleanClassBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
-
- super(aRegistry, aClass);
- trueProxy = new IDEBooleanBeanProxy( fProxyFactoryRegistry, Boolean.TRUE, this );
- falseProxy = new IDEBooleanBeanProxy( fProxyFactoryRegistry, Boolean.FALSE, this);
-}
-IBooleanBeanProxy createBooleanBeanProxy(Boolean aBoolean) {
- if ( aBoolean.booleanValue() ){
- return trueProxy;
- } else {
- return falseProxy;
- }
-}
-/* Specialized from IDEBeanTypeProxy to ensure IBooleanBeanProxies are created correctly
- */
-protected IIDEBeanProxy newBeanProxy(Object anObject){
-
- if ( anObject == null || anObject == Boolean.FALSE ) {
- return falseProxy;
- } else {
- return trueProxy;
- }
-}
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBooleanTypeBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBooleanTypeBeanTypeProxy.java
deleted file mode 100644
index 45f0fd0ae..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEBooleanTypeBeanTypeProxy.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEBooleanTypeBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-final public class IDEBooleanTypeBeanTypeProxy extends IDEPrimitiveBeanTypeProxy {
-
- // Cache these instances. Since the BeanType proxies are cached also, only one instance
- // of true/false will be in system.
- protected final IDEBooleanBeanProxy trueProxy;
- protected final IDEBooleanBeanProxy falseProxy;
-
-IDEBooleanTypeBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
-
- super(aRegistry, aClass);
- trueProxy = new IDEBooleanBeanTypeProxy( fProxyFactoryRegistry, Boolean.TRUE, this );
- falseProxy = new IDEBooleanBeanTypeProxy( fProxyFactoryRegistry, Boolean.FALSE, this );
-
- // TODO Need to go through all of the primitives, separate them out into a separate classes so
- // that sameAs can work with them correctly. Currently only boolean type will do sameAs correctly.
- // Should also look into storing the primitive in the proxy instead of creating a new wrapper object
- // for each for the non-boolean primitives.
-}
-/**
- * Static helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- */
-IBooleanBeanProxy createBooleanBeanProxy(boolean aBoolean) {
- if ( aBoolean ){
- return trueProxy;
- } else {
- return falseProxy;
- }
-}
-/* Specialized from IDEBeanTypeProxy to ensure IBooleanBeanProxies are created correctly
- */
-protected IIDEBeanProxy newBeanProxy(Object anObject){
-
- return (IIDEBeanProxy)createBooleanBeanProxy( anObject != null ? ((Boolean)anObject).booleanValue() : false );
-
-}
-int getPrimitiveType(){
- return BOOLEAN;
-}
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEByteClassBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEByteClassBeanTypeProxy.java
deleted file mode 100644
index bcd682c27..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEByteClassBeanTypeProxy.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEByteClassBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-/**
- * Byte BeanType Proxy.
- */
-final class IDEByteClassBeanTypeProxy extends IDENumberBeanTypeProxy {
-
-protected IDEByteClassBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass, new Byte((byte)0));
-}
-INumberBeanProxy createByteBeanProxy(Byte aByte){
- return new IDENumberBeanProxy(fProxyFactoryRegistry,aByte,this);
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEByteTypeBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEByteTypeBeanTypeProxy.java
deleted file mode 100644
index cb8c88ad9..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEByteTypeBeanTypeProxy.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEByteTypeBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * Byte BeanType Proxy.
- */
-final class IDEByteTypeBeanTypeProxy extends IDEPrimitiveBeanTypeProxy {
-protected IDEByteTypeBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass);
-}
-INumberBeanProxy createByteBeanProxy(byte aByte){
- return new IDENumberBeanProxy(fProxyFactoryRegistry,new Byte(aByte),this);
-}
-int getPrimitiveType(){
- return BYTE;
-}
-protected IIDEBeanProxy newBeanProxy(Object anObject){
- Number n = anObject instanceof Character ? new Byte((byte)((Character) anObject).charValue()) : (Number) anObject;
- return new IDENumberBeanProxy(fProxyFactoryRegistry, n, this);
-}
-}
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDECallbackRegistry.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDECallbackRegistry.java
deleted file mode 100644
index e47d77b0c..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDECallbackRegistry.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDECallbackRegistry.java,v $
- * $Revision: 1.10 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import java.io.*;
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.core.ExpressionProxy.ProxyEvent;
-
-public class IDECallbackRegistry implements ICallbackRegistry {
-
- IDEVMServer fVMServer;
- int fNextCallbackID;
- IDEProxyFactoryRegistry fProxyFactoryRegistry;
- Map fCallbackIDToCallback = new HashMap(25);
- Map fBeanProxyToCallbackID = new HashMap(25);
- Map fCallbackIDToStream = new HashMap(25);
- private IProxyMethod initializeCallbackMethodProxy;
- private IBeanProxy vmServerProxy;
-
-IDECallbackRegistry(IDEProxyFactoryRegistry aRegistry){
- fProxyFactoryRegistry = aRegistry;
- fVMServer = new IDEVMServer(this);
-
- vmServerProxy = aRegistry.getBeanProxy(fVMServer.getClass(), fVMServer);
-
- try {
- Method initializeCallbackMethod = org.eclipse.jem.internal.proxy.common.ICallback.class.getMethod("initializeCallback", new Class[] {org.eclipse.jem.internal.proxy.common.IVMCallbackServer.class, Integer.TYPE}); //$NON-NLS-1$
- initializeCallbackMethodProxy = (IProxyMethod) aRegistry.getBeanProxy(Method.class, initializeCallbackMethod);
- } catch (SecurityException e) {
- e.printStackTrace();
- } catch (NoSuchMethodException e) {
- e.printStackTrace();
- }
-
-}
-
-
-/**
- * Add a callback. aBeanProxy is running on the target VM and ICallback runs on our VM
- * aBeanProxy will implement ICallback on the target side
- */
-public void registerCallback(IBeanProxy aBeanProxy, ICallback aCallback){
-
- // Get a handle to the remote VM callback
- org.eclipse.jem.internal.proxy.common.ICallback vmCallback = (org.eclipse.jem.internal.proxy.common.ICallback) ((IIDEBeanProxy)aBeanProxy).getBean();
- fNextCallbackID = fNextCallbackID + 1;
- int callbackID = fNextCallbackID;
- vmCallback.initializeCallback(
- fVMServer,
- callbackID);
- Integer callbackIntegerID = new Integer(callbackID);
- fCallbackIDToCallback.put(callbackIntegerID,aCallback);
- fBeanProxyToCallbackID.put(aBeanProxy,callbackIntegerID);
-
-}
-
-
-/* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.ICallbackRegistry#registerCallback(org.eclipse.jem.internal.proxy.core.IProxy, org.eclipse.jem.internal.proxy.core.ICallback, org.eclipse.jem.internal.proxy.core.IExpression)
- */
-public void registerCallback(IProxy callbackProxy, final ICallback cb, IExpression expression) {
- final Integer callbackID = new Integer(++fNextCallbackID);
- fCallbackIDToCallback.put(callbackID, cb);
- if (callbackProxy.isBeanProxy()) {
- fBeanProxyToCallbackID.put(callbackProxy, callbackID);
- } else {
- ((ExpressionProxy) callbackProxy).addProxyListener(new ExpressionProxy.ProxyAdapter() {
- public void proxyResolved(ProxyEvent event) {
- fBeanProxyToCallbackID.put(event.getProxy(), callbackID);
- }
- });
- }
- expression.createSimpleMethodInvoke(initializeCallbackMethodProxy, callbackProxy, new IProxy[] {vmServerProxy, fProxyFactoryRegistry.getBeanProxyFactory().createBeanProxyWith(callbackID.intValue())}, false);
-
-}
-
-OutputStream requestStream(final int aCallbackID, final int aMsgID){
- final PipedOutputStream result = new PipedOutputStream();
- PipedInputStream tempStream = null;
- try {
- tempStream = new PipedInputStream(result);
- } catch ( IOException exc ) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", exc)); //$NON-NLS-1$
- return null;
- }
- final PipedInputStream inputStream = tempStream;
- Thread streamProcessor = new Thread(){
- public void run(){
- ICallback ideCallback = (ICallback)fCallbackIDToCallback.get(new Integer(aCallbackID));
- if (ideCallback != null) {
- try {
- ideCallback.calledBackStream(aMsgID, inputStream);
- } finally {
- try {
- inputStream.close(); // Make sure it's closed.
- } catch ( IOException exc ){
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", exc)); //$NON-NLS-1$
- }
- }
- }
- }
- };
- streamProcessor.start();
- return result;
-}
-
-Object vmCallback(int aCallbackID ,int aMsgID, Object[] parms){
- // Find the bean proxy that registered with the ID
- ICallback ideCallback = (ICallback) fCallbackIDToCallback.get(new Integer(aCallbackID));
- Object callbackResult = null;
- if ( parms.length == 1 ) {
- callbackResult = ideCallback.calledBack(aMsgID,(IBeanProxy)parms[0]);
- } else {
- callbackResult = ideCallback.calledBack(aMsgID,parms);
- }
- return callbackResult;
-}
-
-Object vmCallback(int aCallbackID ,int aMsgID, Object parm){
- // Find the bean proxy that registered with the ID
- ICallback ideCallback = (ICallback) fCallbackIDToCallback.get(new Integer(aCallbackID));
- return ideCallback.calledBack(aMsgID,parm);
-}
-
-public void deregisterCallback(IBeanProxy aBeanProxy){
- // Remove the callback from both maps. The actual unregistering of the callback
- // on the target VM is done separately by the object that added the event handler on the target VM
- Integer callbackID = (Integer) fBeanProxyToCallbackID.remove(aBeanProxy);
- fCallbackIDToCallback.remove(callbackID);
-}
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDECharTypeBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDECharTypeBeanTypeProxy.java
deleted file mode 100644
index cf86cfbec..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDECharTypeBeanTypeProxy.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDECharTypeBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-/**
- * char BeanType Proxy.
- */
-final class IDECharTypeBeanTypeProxy extends IDEPrimitiveBeanTypeProxy {
-protected IDECharTypeBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass);
-}
-ICharacterBeanProxy createCharBeanProxy(char aChar){
- return new IDECharacterBeanProxy(fProxyFactoryRegistry,new Character(aChar),this);
-}
-int getPrimitiveType(){
- return CHAR;
-}
-protected IIDEBeanProxy newBeanProxy(Object anObject){
- Character c = anObject instanceof Character ? (Character) anObject : new Character((char)((Number) anObject).intValue());
- return new IDECharacterBeanProxy(fProxyFactoryRegistry, c, this);
-
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDECharacterBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDECharacterBeanProxy.java
deleted file mode 100644
index cf5b69b6f..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDECharacterBeanProxy.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDECharacterBeanProxy.java,v $ $Revision: 1.6 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * IDE Implementation of ICharacterBeanBeanProxy..
- */
-class IDECharacterBeanProxy extends IDEObjectBeanProxy implements ICharacterBeanProxy {
- protected Character fCharacterValue;
- IDECharacterBeanProxy(IDEProxyFactoryRegistry aRegistry, Object aBean, IBeanTypeProxy aBeanTypeProxy) {
- super(aRegistry, aBean, aBeanTypeProxy);
- fCharacterValue = (Character) aBean;
- }
- public char charValue() {
- return fCharacterValue.charValue();
- }
- public Character characterValue() {
- return fCharacterValue;
- }
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IIntegerBeanProxy#intValue()
- */
- public int intValue() {
- return charValue();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.INumberBeanProxy#byteValue()
- */
- public byte byteValue() {
- return (byte) charValue();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.INumberBeanProxy#doubleValue()
- */
- public double doubleValue() {
- return charValue();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.INumberBeanProxy#floatValue()
- */
- public float floatValue() {
- return charValue();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.INumberBeanProxy#longValue()
- */
- public long longValue() {
- return charValue();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.INumberBeanProxy#numberValue()
- */
- public Number numberValue() {
- // This is a kludge. Need to new one up.
- return new Integer(charValue());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.INumberBeanProxy#shortValue()
- */
- public short shortValue() {
- return (short) charValue();
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDECharacterClassBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDECharacterClassBeanTypeProxy.java
deleted file mode 100644
index 1aadde0df..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDECharacterClassBeanTypeProxy.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDECharacterClassBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-/**
- * Char BeanType Proxy.
- */
-final class IDECharacterClassBeanTypeProxy extends IDEBeanTypeProxy {
-
-protected IDECharacterClassBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass);
-}
-ICharacterBeanProxy createCharacterBeanProxy(Character aChar){
- return new IDECharacterBeanProxy(fProxyFactoryRegistry,aChar,this);
-}
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEClassBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEClassBeanTypeProxy.java
deleted file mode 100644
index eabe62c7c..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEClassBeanTypeProxy.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: IDEClassBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:06 $
- */
-package org.eclipse.jem.internal.proxy.ide;
-
-import org.eclipse.jem.internal.proxy.core.IBeanProxy;
-
-/**
- * For java.lang.Class type.
- * @since 1.0.0
- */
-public class IDEClassBeanTypeProxy extends IDEBeanTypeProxy {
-
- /**
- * @param aRegistry
- * @param aClass
- *
- * @since 1.0.0
- */
- public IDEClassBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.ide.IDEBeanTypeProxy#newBeanProxy(java.lang.Object)
- */
- protected IIDEBeanProxy newBeanProxy(Object anObject) {
- return (IIDEBeanProxy) ((IDEStandardBeanTypeProxyFactory) fProxyFactoryRegistry.getBeanTypeProxyFactory()).getBeanTypeProxy((Class) anObject);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.ide.IDEBeanTypeProxy#newBeanTypeForClass(java.lang.Class)
- */
- public IDEBeanTypeProxy newBeanTypeForClass(Class type) {
- throw new UnsupportedOperationException();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#newInstance()
- */
- public IBeanProxy newInstance() {
- throw new UnsupportedOperationException();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#newInstance(java.lang.String)
- */
- public IBeanProxy newInstance(String initializationString) {
- throw new UnsupportedOperationException();
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEConstructorProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEConstructorProxy.java
deleted file mode 100644
index bf594cf87..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEConstructorProxy.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEConstructorProxy.java,v $
- * $Revision: 1.10 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import java.lang.reflect.Constructor;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-/**
- * This is an implementation of IConstructorProxy where the target VM is the same as
- * the IDE. The java.lang.reflect.Constructor instance is held in a field
- */
-class IDEConstructorProxy extends IDEAccessibleObjectProxy implements IConstructorProxy {
-
- /**
- * package protected constructor where the instance of java.lang.reflect.Constructor
- * can be passed in directly
- */
- IDEConstructorProxy(IDEProxyFactoryRegistry aRegistry, Constructor aConstructor) {
- super(aRegistry, aConstructor);
- }
- /**
- * The type proxy is constant proxy out of the method factory.
- */
- public IBeanTypeProxy getTypeProxy() {
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).constructorType;
- }
-
- /**
- * This is factored into a special method so that subclasses can override
- * if they wish.
- */
- protected IBeanProxy getNewIDEBeanProxy(Object aBean) {
-
- return IDEStandardBeanProxyFactory.createBeanProxy(fProxyFactoryRegistry, aBean); // Use local helper method to do this.
- }
- /**
- * Invoke the constructor and return an IDEBeanProxy with the result
- */
- public IBeanProxy newInstance() {
-
- // Invoke the constructor
- try {
- Object result = ((Constructor) getBean()).newInstance(null);
- return getNewIDEBeanProxy(result);
- } catch (Exception e) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- return null;
- }
-
- }
- public IBeanProxy newInstanceCatchThrowableExceptions() {
- return newInstance();
- }
- public IBeanProxy newInstanceCatchThrowableExceptions(IBeanProxy[] args) {
- return newInstance(args);
- }
- /**
- * Invoke the constructor and return an IDEBeanProxy with the result
- */
- public IBeanProxy newInstance(IBeanProxy[] creationArguments) {
-
- // Get an array of bean objects from the bean proxy arguments
- Object result = null;
- Object[] creationObjects = new Object[creationArguments.length];
- for (int i = 0; i < creationArguments.length; i++) {
- // It is possible the arguments are null which is perfectly valid
- if (creationArguments[i] != null)
- creationObjects[i] = ((IIDEBeanProxy) creationArguments[i]).getBean();
- }
-
- // Invoke the constructor
- try {
- result = ((Constructor) getBean()).newInstance(creationObjects);
- } catch (Exception e) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- }
-
- // If we have a non-null result create an IDEBeanProxy and return it
- if (result != null) {
- return getNewIDEBeanProxy(result);
- } else {
- return null;
- }
-
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConstructorProxy#getParameterTypes()
- */
- public IBeanTypeProxy[] getParameterTypes() {
- Class[] parmClasses = ((Constructor) getBean()).getParameterTypes();
- IBeanTypeProxy[] parmTypes = new IBeanTypeProxy[parmClasses.length];
- IDEStandardBeanTypeProxyFactory factory = (IDEStandardBeanTypeProxyFactory) fProxyFactoryRegistry.getBeanTypeProxyFactory();
- for (int i = 0; i < parmClasses.length; i++) {
- parmTypes[i] = factory.getBeanTypeProxy(parmClasses[i]);
- }
- return parmTypes;
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEConstructorTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEConstructorTypeProxy.java
deleted file mode 100644
index 48ac99aa1..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEConstructorTypeProxy.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEConstructorTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-/**
- * @version 1.0
- * @author
- */
-public class IDEConstructorTypeProxy extends IDEBeanTypeProxy {
-
- IDEConstructorTypeProxy(IDEProxyFactoryRegistry registry) {
- super(registry, java.lang.reflect.Constructor.class);
- }
-
- /*
- * @see IDEBeanTypeProxy#newBeanProxy(Object)
- */
- protected IIDEBeanProxy newBeanProxy(Object anObject) {
- return new IDEConstructorProxy(fProxyFactoryRegistry, (java.lang.reflect.Constructor) anObject);
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEDoubleClassBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEDoubleClassBeanTypeProxy.java
deleted file mode 100644
index 4ca710c21..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEDoubleClassBeanTypeProxy.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEDoubleClassBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-/**
- * Double BeanType Proxy.
- */
-final class IDEDoubleClassBeanTypeProxy extends IDENumberBeanTypeProxy {
-
-protected IDEDoubleClassBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass, new Double(0));
-}
-INumberBeanProxy createDoubleBeanProxy(Double aDouble){
- return new IDENumberBeanProxy(fProxyFactoryRegistry,aDouble,this);
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEDoubleTypeBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEDoubleTypeBeanTypeProxy.java
deleted file mode 100644
index fbbad515d..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEDoubleTypeBeanTypeProxy.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEDoubleTypeBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-/**
- * double BeanType Proxy.
- */
-final class IDEDoubleTypeBeanTypeProxy extends IDEPrimitiveBeanTypeProxy {
-protected IDEDoubleTypeBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass);
-}
-INumberBeanProxy createDoubleBeanProxy(double aDouble){
- return new IDENumberBeanProxy(fProxyFactoryRegistry,new Double(aDouble),this);
-}
-int getPrimitiveType(){
- return DOUBLE;
-}
-
-protected IIDEBeanProxy newBeanProxy(Object anObject){
- Number n = anObject instanceof Character ? new Double(((Character) anObject).charValue()) : (Number) anObject;
- return new IDENumberBeanProxy(fProxyFactoryRegistry, n, this);
-}
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEExpression.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEExpression.java
deleted file mode 100644
index ac8876292..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEExpression.java
+++ /dev/null
@@ -1,1077 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: IDEExpression.java,v $ $Revision: 1.12 $ $Date: 2005/08/24 20:39:06 $
- */
-package org.eclipse.jem.internal.proxy.ide;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.Platform;
-
-import org.eclipse.jem.internal.proxy.common.MethodHelper;
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.core.ExpressionProxy.ProxyEvent;
-import org.eclipse.jem.internal.proxy.initParser.tree.*;
-
-/**
- * IDE expression processing.
- *
- * @since 1.0.0
- */
-public class IDEExpression extends Expression {
-
- private final IDEStandardBeanTypeProxyFactory beantypefactory;
- protected final ExpressionProcesser eproc;
- {
- boolean useTracing = !isTraceSet() ?
- "true".equalsIgnoreCase(Platform.getDebugOption(ProxyPlugin.getPlugin().getBundle().getSymbolicName() + ProxyLaunchSupport.EXPRESSION_TRACING)) : //$NON-NLS-1$
- isTrace();
- long threshold = Long.getLong(Platform.getDebugOption(ProxyPlugin.getPlugin().getBundle().getSymbolicName() + ProxyLaunchSupport.EXPRESSION_TRACEING_TIMER_THRESHOLD), -1L).longValue();
- eproc = new ExpressionProcesser(useTracing, threshold);
- }
-
-
- private void processExpressionError() throws ThrowableProxy, NoExpressionValueException {
- if (!eproc.noErrors())
- if (eproc.isNoExpressionValue())
- throw (NoExpressionValueException) eproc.getErrorThrowable();
- else {
- Throwable t = eproc.getErrorThrowable();
- if (t instanceof ThrowableProxy)
- throw (ThrowableProxy) t;
- else
- throw new IDEThrowableProxy(eproc.getErrorThrowable(), beantypefactory.getBeanTypeProxy(t.getClass()));
- }
- }
-
- /**
- * Create the IDEExpression
- *
- * @param registry
- *
- * @since 1.0.0
- */
- public IDEExpression(ProxyFactoryRegistry registry) {
- super(registry);
- beantypefactory = (IDEStandardBeanTypeProxyFactory) registry.getBeanTypeProxyFactory();
- }
-
- protected final IDEProxyFactoryRegistry getIDERegistry() {
- return (IDEProxyFactoryRegistry) registry;
- }
-
- protected final IDEStandardBeanTypeProxyFactory getIDEBeanTypeFactory() {
- return beantypefactory;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushToProxy(org.eclipse.jem.internal.proxy.core.IProxy)
- */
- protected void pushToProxy(IProxy proxy) {
- if (proxy == null)
- eproc.pushExpression(null, MethodHelper.NULL_TYPE);
- else if (proxy.isBeanProxy())
- eproc.pushExpression(((IDEBeanProxy) proxy).getBean(), ((IDEBeanTypeProxy) ((IBeanProxy) proxy).getTypeProxy()).getTypeClass());
- else
- eproc.pushExpressionProxy(((ExpressionProxy) proxy).getProxyID());
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.Expression#closeProxy()
- */
- protected void closeProxy() {
- methodExpressionProxies = fieldExpressionProxies = null;
- eproc.close();
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pullProxyValue(int, java.util.List)
- */
- protected IBeanProxy pullProxyValue(int proxycount, List expressionProxies) throws ThrowableProxy, NoExpressionValueException {
- processExtensionProxies(proxycount, expressionProxies);
- processExpressionError();
- Object result[] = new Object[2];
- eproc.pullValue(result);
- IBeanProxy resultProxy = getIDERegistry().getBeanProxy((Class) result[1], result[0]);
- return resultProxy;
- }
-
- private void processExtensionProxies(int proxycount, List expressionProxies) {
- if (proxycount > 0) {
- int len = expressionProxies.size();
- Object[] proxyResolution = new Object[2];
- for (int i = 0; i < len; i++) {
- ExpressionProxy ep = (ExpressionProxy) expressionProxies.get(i);
- if (ep != null) {
- try {
- eproc.pullExpressionProxyValue(ep.getProxyID(), proxyResolution);
- if (proxyResolution[1] != Void.TYPE)
- fireProxyResolved(ep, getIDERegistry().getBeanProxy((Class) proxyResolution[1], proxyResolution[0]));
- else
- fireProxyVoid(ep);
- } catch (NoExpressionValueException e) {
- fireProxyNotResolved(ep);
- }
- }
- }
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushCastToProxy(org.eclipse.jem.internal.proxy.core.IProxyBeanType)
- */
- protected void pushCastToProxy(IProxyBeanType type) {
- try {
- eproc.pushCast(getIDEBeanTypeProxy(type).getTypeClass());
- } catch (ThrowableProxy e) {
- eproc.processException(e);
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushInstanceofToProxy(org.eclipse.jem.internal.proxy.core.IProxyBeanType)
- */
- protected void pushInstanceofToProxy(IProxyBeanType type) {
- try {
- eproc.pushInstanceof(getIDEBeanTypeProxy(type).getTypeClass());
- } catch (ThrowableProxy e) {
- eproc.processException(e);
- }
- }
-
- /**
- * Get the BeanType proxy and test if valid. Throw ThrowableProxy if not valid.
- *
- * @param type
- * @return
- * @throws ThrowableProxy
- *
- * @since 1.0.0
- */
- protected IDEBeanTypeProxy getIDEBeanTypeProxy(IProxyBeanType type) throws ThrowableProxy {
- IDEBeanTypeProxy typeProxy;
- if (type.isExpressionProxy()) {
- // It should already be resolved at this point.
- typeProxy = ((IDEBeanTypeExpressionProxy) type).getBeanTypeProxy();
- } else
- typeProxy = (IDEBeanTypeProxy) type;
- if (!typeProxy.isValid()) {
- throw new IDEThrowableProxy(
- new Exception(typeProxy.getInitializationError()),
- getIDEBeanTypeFactory().getBeanTypeProxy(Exception.class));
- } else
- return typeProxy;
- }
-
-
- /**
- * Get the BeanType proxy and test if valid. Throw ThrowableProxy if not valid.
- * @param type
- * @return
- * @throws ThrowableProxy
- *
- * @since 1.1.0
- */
- protected IDEBeanTypeProxy getIDEBeanTypeProxy(String type) throws ThrowableProxy {
- return (IDEBeanTypeProxy) registry.getBeanTypeProxyFactory().getBeanTypeProxy(type);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushPrefixToProxy(org.eclipse.jem.internal.proxy.initParser.tree.PrefixOperator)
- */
- protected void pushPrefixToProxy(PrefixOperator operator) {
- eproc.pushPrefix(operator);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushInfixToProxy(org.eclipse.jem.internal.proxy.initParser.tree.InfixOperator, org.eclipse.jem.internal.proxy.initParser.tree.InternalInfixOperandType)
- */
- protected void pushInfixToProxy(InfixOperator operator, InternalInfixOperandType operandType) {
- eproc.pushInfix(operator, operandType);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushArrayAccessToProxy(int)
- */
- protected void pushArrayAccessToProxy(int indexCount) {
- eproc.pushArrayAccess(indexCount);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushArrayCreationToProxy(org.eclipse.jem.internal.proxy.core.IProxyBeanType, int)
- */
- protected void pushArrayCreationToProxy(IProxyBeanType type, int dimensionCount) {
- try {
- eproc.pushArrayCreation(getIDEBeanTypeProxy(type).getTypeClass(), dimensionCount);
- } catch (ThrowableProxy e) {
- eproc.processException(e);
- }
- }
-
- protected void pushArrayInitializerToProxy(IProxyBeanType type, int stripCount, int expressionCount) {
- try {
- eproc.pushArrayInitializer(getIDEBeanTypeProxy(type).getTypeClass(), stripCount, expressionCount);
- } catch (ThrowableProxy e) {
- eproc.processException(e);
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushClassInstanceCreationToProxy(org.eclipse.jem.internal.proxy.core.IProxyBeanType, int)
- */
- protected void pushClassInstanceCreationToProxy(IProxyBeanType type, int argumentCount) {
- try {
- eproc.pushClassInstanceCreation(getIDEBeanTypeProxy(type).getTypeClass(), argumentCount);
- } catch (ThrowableProxy e) {
- eproc.processException(e);
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushTypeReceiverToProxy(org.eclipse.jem.internal.proxy.core.IProxyBeanType)
- */
- protected void pushTypeReceiverToProxy(IProxyBeanType type) {
- try {
- Class c = getIDEBeanTypeProxy(type).getTypeClass();
- eproc.pushExpression(c, c); // When as a receiver, the type is the same as the receiver.
- } catch (ThrowableProxy e) {
- eproc.processException(e);
- } catch (RuntimeException e) {
- eproc.processException(e);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushFieldAccessToProxy(java.lang.Object, boolean)
- */
- protected void pushFieldAccessToProxy(Object field, boolean hasReceiver) {
- boolean isString = field instanceof String;
- try {
- eproc.pushFieldAccess(isString ? field : getIDEFieldProxy((IProxyField) field).getBean(), isString, hasReceiver);
- } catch (ThrowableProxy e) {
- eproc.processException(e);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushMethodInvocationToProxy(java.lang.Object, boolean, int)
- */
- protected void pushMethodInvocationToProxy(Object method, boolean hasReceiver, int argCount) {
- boolean isString = method instanceof String;
- try {
- eproc.pushMethodInvocation(isString ? method : getIDEMethodProxy((IProxyMethod) method).getBean(), isString, hasReceiver, argCount);
- } catch (ThrowableProxy e) {
- eproc.processException(e);
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushConditionalToProxy(org.eclipse.jem.internal.proxy.initParser.tree.InternalConditionalOperandType)
- */
- protected void pushConditionalToProxy(InternalConditionalOperandType expressionType) {
- eproc.pushConditional(expressionType);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushInvoke()
- */
- protected void pushInvoke(int proxycount, List expressionProxies) throws ThrowableProxy, NoExpressionValueException {
- // In the IDE case do nothing. Nothing is pending. But still need to handle proxy resolution.
- processExtensionProxies(proxycount, expressionProxies);
- processExpressionError();
- }
-
- /**
- * This is used as both an ExpressionProxy (i.e. IDE side) and the Expressions expression proxy result on the other side.
- * This makes it easier to just use same instance on both sides.
- *
- * @since 1.1.0
- */
- protected static class IDEExpressionProxy extends ExpressionProxy implements InternalExpressionProxy {
-
- protected IDEExpressionProxy(int proxyid, int proxyType, Expression expression) {
- super(proxyid, proxyType, expression);
- }
-
- private Object value;
- private Class type;
- private boolean set;
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.ExpressionProxy#dispose()
- */
- protected void dispose() {
- super.dispose();
- value = null;
- type = null;
- set = false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.initParser.tree.InternalExpressionProxy#getType()
- */
- public Class getType() {
- return type;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.initParser.tree.InternalExpressionProxy#getValue()
- */
- public Object getValue() {
- return value;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.initParser.tree.InternalExpressionProxy#setProxy(java.lang.Object, java.lang.Class)
- */
- public void setProxy(Object value, Class type) {
- this.value = value;
- this.type = type;
- set = true;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.initParser.tree.InternalExpressionProxy#isSet()
- */
- public boolean isSet() {
- return set;
- }
- }
-
- /**
- * The Expression proxy for IDE BeanTypes.
- *
- * @since 1.1.0
- */
- protected static class IDEBeanTypeExpressionProxy extends IDEExpressionProxy implements IBeanTypeExpressionProxy {
-
- private String typeName;
- private IDEBeanTypeProxy resolvedProxy;
-
- /**
- * @param proxyid
- *
- * @since 1.1.0
- */
- public IDEBeanTypeExpressionProxy(int proxyid, Expression expression) {
- super(proxyid, BEANTYPE_EXPRESSION_PROXY, expression);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeExpressionProxy#setTypeName(java.lang.String)
- */
- public void setTypeName(String typeName) {
- this.typeName = typeName;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxyBeanType#getTypeName()
- */
- public String getTypeName() {
- return typeName;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.ExpressionProxy#toString()
- */
- public String toString() {
- return super.toString()+" - "+getTypeName(); //$NON-NLS-1$
- }
-
- /**
- * Called by IDEExpression to resolve the beantype.
- * @param beantypeProxy
- *
- * @since 1.1.0
- */
- void setProxy(IDEBeanTypeProxy beantypeProxy) {
- this.resolvedProxy = beantypeProxy;
- setProxy(resolvedProxy.getTypeClass(), Class.class);
- }
-
- /**
- * Called by IDEExpression to get the resolved beantype proxy.
- * @return
- *
- * @since 1.1.0
- */
- IDEBeanTypeProxy getBeanTypeProxy() {
- return resolvedProxy;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxyBeanType#getMethodProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String, org.eclipse.jem.internal.proxy.core.IProxyBeanType[])
- */
- public IProxyMethod getMethodProxy(IExpression expression, String methodName, IProxyBeanType[] parameterTypes) {
- IProxyMethod method = ((IDEExpression) expression).getMethodExpressionProxy(this, methodName, parameterTypes);
- if (method == null) {
- // Need to go to the expression and create it.
- method = ((Expression) expression).createMethodExpressionProxy(this, methodName, parameterTypes);
- }
- return method;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxyBeanType#getMethodProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String, java.lang.String[])
- */
- public IProxyMethod getMethodProxy(IExpression expression, String methodName, String[] parameterTypes) {
- return ((IDEMethodProxyFactory) expression.getRegistry().getMethodProxyFactory()).getMethodProxy(expression, this, methodName, parameterTypes);
- }
-
- public IProxyMethod getMethodProxy(IExpression expression, String methodName) {
- return getMethodProxy(expression, methodName, (IProxyBeanType[]) null);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxyBeanType#getFieldProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String)
- */
- public IProxyField getFieldProxy(IExpression expression, String fieldName) {
- IProxyField field = ((IDEExpression) expression).getFieldExpressionProxy(this, fieldName);
- if (field == null) {
- // Need to go to the expression and create it.
- field = ((Expression) expression).createFieldExpressionProxy(this, fieldName);
- }
- return field;
- }
- }
-
- /**
- * The Expression proxy for IDE BeanTypes.
- *
- * @since 1.1.0
- */
- protected static class IDEMethodExpressionProxy extends IDEExpressionProxy implements IProxyMethod {
-
- private String methodName;
- private IDEMethodProxy resolvedProxy;
- private ThrowableProxy errorThrowable;
-
- /**
- * @param proxyid
- *
- * @since 1.1.0
- */
- public IDEMethodExpressionProxy(int proxyid, Expression expression) {
- super(proxyid, METHOD_EXPRESSION_PROXY, expression);
- }
-
- /**
- * Set by IDEExpression with the method name.
- * @param methodName
- *
- * @since 1.1.0
- */
- void setMethodName(String methodName) {
- this.methodName = methodName;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.ExpressionProxy#toString()
- */
- public String toString() {
- return super.toString()+" - "+methodName; //$NON-NLS-1$
- }
-
- /**
- * Called by IDEExpression to resolve the beantype.
- * @param methodProxy
- *
- * @since 1.1.0
- */
- void setProxy(IDEMethodProxy methodProxy) {
- this.resolvedProxy = methodProxy;
- setProxy(resolvedProxy.getBean(), Class.class);
- }
-
- /**
- * Called by IDEExpression to say there was error in creating the proxy.
- * @param errorThrowable
- *
- * @since 1.1.0
- */
- void setThrowable(ThrowableProxy errorThrowable) {
- this.errorThrowable = errorThrowable;
- }
-
- /**
- * Called by IDEExpression to get the resolved method proxy.
- * @return
- * @throws ThrowableProxy
- *
- * @since 1.1.0
- */
- IDEMethodProxy getMethodProxy() throws ThrowableProxy {
- if (errorThrowable != null)
- throw errorThrowable;
- return resolvedProxy;
- }
- }
-
- protected static class IDEFieldExpressionProxy extends IDEExpressionProxy implements IProxyField {
-
- private String fieldName;
- private IDEFieldProxy resolvedProxy;
- private ThrowableProxy errorThrowable;
-
- /**
- * @param proxyid
- *
- * @since 1.1.0
- */
- public IDEFieldExpressionProxy(int proxyid, Expression expression) {
- super(proxyid, FIELD_EXPRESSION_PROXY, expression);
- }
-
- /**
- * Set by IDEExpression with the method name.
- * @param fieldName
- *
- * @since 1.1.0
- */
- void setField(String fieldName) {
- this.fieldName = fieldName;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.ExpressionProxy#toString()
- */
- public String toString() {
- return super.toString()+" - "+fieldName; //$NON-NLS-1$
- }
-
- /**
- * Called by IDEExpression to resolve the beantype.
- * @param fieldProxy
- *
- * @since 1.1.0
- */
- void setProxy(IDEFieldProxy fieldProxy) {
- this.resolvedProxy = fieldProxy;
- setProxy(resolvedProxy.getBean(), Class.class);
- }
-
- /**
- * Called by IDEExpression to say there was error in creating the proxy.
- * @param errorThrowable
- *
- * @since 1.1.0
- */
- void setThrowable(ThrowableProxy errorThrowable) {
- this.errorThrowable = errorThrowable;
- }
-
- /**
- * Called by IDEExpression to get the resolved field proxy.
- * @return
- * @throws ThrowableProxy
- *
- * @since 1.1.0
- */
- IDEFieldProxy getFieldProxy() throws ThrowableProxy {
- if (errorThrowable != null)
- throw errorThrowable;
- return resolvedProxy;
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#createExpressionProxy(int, int)
- */
- protected ExpressionProxy createExpressionProxy(int proxyType, int proxyID) {
- switch (proxyType) {
- case NORMAL_EXPRESSION_PROXY:
- default:
- return new IDEExpressionProxy(proxyID, NORMAL_EXPRESSION_PROXY, this);
-
- case BEANTYPE_EXPRESSION_PROXY:
- return new IDEBeanTypeExpressionProxy(proxyID, this);
-
- case METHOD_EXPRESSION_PROXY:
- return new IDEMethodExpressionProxy(proxyID, this);
-
- case FIELD_EXPRESSION_PROXY:
- return new IDEFieldExpressionProxy(proxyID, this);
- }
-
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushAssignmentToProxy(org.eclipse.jem.internal.proxy.core.ExpressionProxy)
- */
- protected void pushAssignmentToProxy(ExpressionProxy proxy) {
- eproc.pushAssignment((InternalExpressionProxy) proxy);
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushAssignmentToProxy()
- */
- protected void pushAssignmentToProxy() {
- eproc.pushAssignment();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushBlockBeginToProxy(int)
- */
- protected void pushBlockBeginToProxy(int blockNumber) {
- eproc.pushBlockBegin(blockNumber);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushBlockEndToProxy(int)
- */
- protected void pushBlockEndToProxy(int blockNumber) {
- eproc.pushBlockEnd(blockNumber);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushBlockBreakToProxy(int)
- */
- protected void pushBlockBreakToProxy(int blockNumber) {
- eproc.pushBlockBreak(blockNumber);
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushTryBeginToProxy(int)
- */
- protected void pushTryBeginToProxy(int tryNumber) {
- eproc.pushTryBegin(tryNumber);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushTryCatchClauseToProxy(int, org.eclipse.jem.internal.proxy.core.IProxyBeanType, org.eclipse.jem.internal.proxy.core.ExpressionProxy)
- */
- protected void pushTryCatchClauseToProxy(int tryNumber, IProxyBeanType exceptionType, ExpressionProxy ep) {
- try {
- eproc.pushTryCatchClause(tryNumber, getIDEBeanTypeProxy(exceptionType).getTypeClass(), (InternalExpressionProxy) ep);
- } catch (ThrowableProxy e) {
- eproc.processException(e);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushTryFinallyClauseToProxy(int)
- */
- protected void pushTryFinallyClauseToProxy(int tryNumber) {
- eproc.pushTryFinallyClause(tryNumber);
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushTryEndToProxy(int)
- */
- protected void pushTryEndToProxy(int tryNumber) {
- eproc.pushTryEnd(tryNumber);
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushThrowToProxy()
- */
- protected void pushThrowToProxy() {
- eproc.pushThrowException();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushRethrowToProxy(int)
- */
- protected void pushRethrowToProxy(int tryNumber) {
- eproc.pushTryRethrow(tryNumber);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushBeanTypeToProxy(org.eclipse.jem.internal.proxy.core.IBeanTypeExpressionProxy)
- */
- protected void pushBeanTypeToProxy(IBeanTypeExpressionProxy proxy) {
- try {
- IDEBeanTypeExpressionProxy ep = (IDEBeanTypeExpressionProxy) proxy;
- IDEBeanTypeProxy typeProxy = getIDEBeanTypeProxy(proxy.getTypeName());
- ep.setProxy(typeProxy);
- eproc.allocateExpressionProxy(ep);
- if (!typeProxy.isValid()) {
- Throwable cause = ((IDEInitErrorBeanTypeProxy) typeProxy).getCause();
- if (cause == null)
- throw new IDEThrowableProxy(
- new Exception(typeProxy.getInitializationError()),
- getIDEBeanTypeFactory().getBeanTypeProxy(Exception.class));
- else
- throw new IDEThrowableProxy(
- cause,
- getIDEBeanTypeFactory().getBeanTypeProxy(cause.getClass()));
-
- }
- } catch (ThrowableProxy e) {
- eproc.processException(e);
- }
- }
-
- /**
- * Get the map of IProxyBeanTypes for a beantype name. Meant to be used only in conjunction with IDEStandardBeanTypeFactory.
- * It is here so the IDDEStandardBeanTypeFactory can store pending proxies per expression.
- *
- * @param beanType
- * @return
- *
- * @since 1.1.0
- */
- public IProxyBeanType getBeanType(String beanTypeName) {
- if (beanTypeCache == null)
- beanTypeCache = new HashMap();
- return (IProxyBeanType) beanTypeCache.get(beanTypeName);
- }
-
- /**
- * Add the beantype expression proxy to the map of bean type expression proxies. Used in conjunction with IDEStandardBeanTypeFactory.
- * It is here so the IDEStandardBeanTypeFactory can store pending proxies per expression.
- * @param beanTypeName
- * @param beantype
- *
- * @since 1.1.0
- */
- public void addBeanType(String beanTypeName, IProxyBeanType beantype) {
- beanTypeCache.put(beanTypeName, beantype);
- }
-
- /**
- * Remove the beantype expression proxy from the map. This is called because there was a rollback due to an endmark.
- * @param beanTypeName
- *
- * @since 1.1.0
- */
- public void removeBeanType(String beanTypeName) {
- beanTypeCache.remove(beanTypeName);
- }
-
- /**
- * Keeping a local map of Method Expression Proxies so that we don't keep recreating them for each request from within this expression.
- * The map will be: declaringTypeName->(Map) methodName or IDEMethodKey -> method expression proxy.
- * @see IDEExpression#pushMethodToProxy(ExpressionProxy, IProxyBeanType, String, IProxyBeanType[]) for the actual implementation.
- */
- protected Map methodExpressionProxies;
-
- /**
- * Keeping a local map of Field Expression Proxies so that we don't keep recreating them for each request from within this expression.
- * The map will be: declaringTypeName->(Map) fieldname -> field expression proxy.
- * @see IDEExpression#pushFieldToProxy(ExpressionProxy, IProxyBeanType, String)
- */
- protected Map fieldExpressionProxies;
-
- /**
- * Keeping a local map of BeanType expression proxies so that we don't keep recreating them for each request from within this expression.
- * The map will be: typename->beanTypeExpressionProxy
- */
- protected Map beanTypeCache; // Use to cache pending BeanTypes. Used in conjunction with IDEStandardBeanTypeFactory.
-
- /*
- * Used as the key to the methodCache when there are parms.
- * It allows the parms to be either IProxyBeanType without the
- * overhead of creating complicated strings.
- *
- * It will compare method name and each individual parm name without fluffing
- * up a string and building it up.
- *
- * For no parm methods, just the name of the method as a string will be the key.
- *
- * @since 1.1.0
- */
- private static class MethodKey {
- public String methodName;
- public IProxyBeanType[] parmTypes;
- public MethodKey(String methodName, IProxyBeanType[] parmTypes) {
- this.methodName = methodName;
- this.parmTypes = parmTypes;
- }
-
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- try {
- return ((MethodKey) obj).compareParms(parmTypes);
- } catch (ClassCastException e) {
- return false;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.remote.REMProxyConstants.MethodKey#hashCode()
- */
- public int hashCode() {
- int h = methodName.hashCode();;
- for (int i = 0; i < parmTypes.length; i++) {
- h += parmTypes[i].getTypeName().hashCode();
- }
- return h;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.remote.REMProxyConstants.MethodKey#compareParms(java.lang.String[])
- */
- protected boolean compareParms(IProxyBeanType[] parms) {
- if (parms.length != parmTypes.length)
- return false;
- for (int i = 0; i < parms.length; i++) {
- if (!parmTypes[i].getTypeName().equals(parms[i].getTypeName()))
- return false;
- }
- return true;
- }
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushMethodToProxy(org.eclipse.jem.internal.proxy.core.ExpressionProxy, org.eclipse.jem.internal.proxy.core.IProxyBeanType, java.lang.String, org.eclipse.jem.internal.proxy.core.IProxyBeanType[])
- */
- protected void pushMethodToProxy(ExpressionProxy proxy, IProxyBeanType declaringType, String methodName, IProxyBeanType[] parameterTypes) {
- try {
- final Map methods = getMethods(declaringType);
- final Object key = getMethodKey(methodName, parameterTypes);
- methods.put(key, proxy);
- proxy.addProxyListener(new ExpressionProxy.ProxyAdapter() {
-
- public void proxyNotResolved(ProxyEvent event) {
- methods.remove(key); // Back it out. tis could happen due to endmark rollback.
- }
-
- });
-
- IDEMethodExpressionProxy ep = (IDEMethodExpressionProxy) proxy;
- ep.setMethodName(methodName);
- // We resolve immediately. Any expression proxies should also be resolved at this point too.
- Class declaringClass = getIDEBeanTypeProxy(declaringType).getTypeClass();
- Class[] parameterClasses;
- if (parameterTypes == null || parameterTypes.length == 0)
- parameterClasses = null;
- else {
- parameterClasses = new Class[parameterTypes.length];
- for (int i = 0; i < parameterClasses.length; i++) {
- parameterClasses[i] = getIDEBeanTypeProxy(parameterTypes[i]).getTypeClass();
- }
- }
- IDEMethodProxy methodProxy = ((IDEMethodProxyFactory) registry.getMethodProxyFactory()).getMethodProxy(declaringClass, methodName, parameterClasses);
- if (methodProxy == null) {
- String parms = ""; //$NON-NLS-1$
- if (parameterTypes != null && parameterTypes.length > 0) {
- StringBuffer st = new StringBuffer(100);
- for (int i = 0; i < parameterClasses.length; i++) {
- if (i > 0)
- st.append(',');
- st.append(parameterTypes[i].getTypeName());
- }
- parms = st.toString();
- }
- throw new IDEThrowableProxy(new NoSuchMethodException("No method: "+declaringType+'.'+methodName+"("+parms+')'), //$NON-NLS-1$ //$NON-NLS-2$
- getIDEBeanTypeFactory().getBeanTypeProxy(NoSuchMethodException.class));
- }
-
- ep.setProxy(methodProxy);
- eproc.allocateExpressionProxy(ep);
- } catch (ThrowableProxy e) {
- ((IDEMethodExpressionProxy) proxy).setThrowable(e); // So we don't recreate throwable all of the time.
- eproc.processException(e);
- }
- }
-
- private Map getMethods(IProxyBeanType classtype) {
- if (methodExpressionProxies == null)
- methodExpressionProxies = new HashMap();
- Map methods = (Map) methodExpressionProxies.get(classtype.getTypeName());
- if (methods == null)
- methodExpressionProxies.put(classtype.getTypeName(), methods = new HashMap());
- return methods;
- }
-
- private Object getMethodKey(String methodName, IProxyBeanType[] parameterTypes) {
- if (parameterTypes == null || parameterTypes.length == 0)
- return methodName;
- else
- return new MethodKey(methodName, parameterTypes);
- }
-
- private Map getFields(IProxyBeanType classtype) {
- if (fieldExpressionProxies == null)
- fieldExpressionProxies = new HashMap();
- Map fields = (Map) fieldExpressionProxies.get(classtype.getTypeName());
- if (fields == null)
- fieldExpressionProxies.put(classtype.getTypeName(), fields = new HashMap());
- return fields;
- }
-
- /**
- * This is used by IDEBeanTypes and IDEBeanTypeExpressionProxy to access any already created Method Expression Proxies.
- *
- * @param declaringType
- * @param methodName
- * @param parameterTypes
- * @return IProxyMethod or Character
.
- * Anything else will cause a class cast error.
- * true
if field is a string name, and not a java.lang.reflect.Field.
- * @param hasReceiver
- *
- * @since 1.0.0
- */
- public final void pushFieldAccess(Object field, boolean fieldIsString, boolean hasReceiver) {
- try {
- if (ignoreExpression != null || errorOccurred) {
- if (traceOn)
- printTrace("Field Access", true); //$NON-NLS-1$
- return;
- }
-
- if (traceOn)
- printTrace("Field Access: ", false); //$NON-NLS-1$
- try {
- // Get the receiver off of the stack.
- Object receiver = null;
- Class receiverType = null;
- if (hasReceiver) {
- receiver = popExpression();
- receiverType = popExpressionType(false);
- }
-
- // Find the field.
- Field reflectField = fieldIsString ? receiverType.getField((String) field) : (Field) field;
- // Access the field.
- Object value = FieldAccessReference.createFieldAccessReference(reflectField, receiver);
- Class valueType = reflectField.getType();
- if (traceOn) {
- System.out.print("Field: "); //$NON-NLS-1$
- if (fieldIsString)
- System.out.print("(looked up) "); //$NON-NLS-1$
- System.out.print(reflectField);
- System.out.print(">"); //$NON-NLS-1$
- printObjectAndType(value, valueType);
- }
-
- pushExpressionValue(value, valueType);
- } catch (RuntimeException e) {
- processException(e);
- } catch (NoExpressionValueException e) {
- processException(e);
- } catch (NoSuchFieldException e) {
- processException(e);
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
-
- }
-
- /**
- * Push the method invocation expression.
- * @param method
- * @param methodIsString true
if method is a string (so string name) or else it is a java.lang.reflect.Method.
- * @param hasReceiver
- * @param argCount
- * @since 1.0.0
- */
- public final void pushMethodInvocation(Object method, boolean methodIsString, boolean hasReceiver, int argCount) {
- try {
- if (ignoreExpression != null || errorOccurred) {
- if (traceOn)
- printTrace("Invoke", true); //$NON-NLS-1$
- return;
- }
-
- if (traceOn)
- printTrace("Invoke: ", false); //$NON-NLS-1$
-
- Method reflectMethod = null;
- try {
- // We need to pull in the arguments. They are stacked in reverse order.
- Object[] args = new Object[argCount];
- Class[] argTypes = new Class[argCount];
- for (int i = argCount - 1; i >= 0; i--) {
- args[i] = popExpression();
- argTypes[i] = popExpressionType(false);
- }
-
- // Now get receiver
- Object receiver = null;
- Class receiverType = null;
- if (hasReceiver) {
- receiver = popExpression();
- receiverType = popExpressionType(false);
- }
-
- // Now we need to find the appropriate method. If it is a string then there must be a receiver, otherwise no way to know.
- if (methodIsString) {
- reflectMethod = MethodHelper.findCompatibleMethod(receiverType, (String) method, argTypes);
- } else
- reflectMethod = (Method) method;
-
- if (traceOn && reflectMethod != null) {
- System.out.print("Method: "); //$NON-NLS-1$
- if (methodIsString)
- System.out.print("(looked up) "); //$NON-NLS-1$
- System.out.print(reflectMethod);
- }
-
- if (!Modifier.isStatic(reflectMethod.getModifiers()) && receiver == null)
- throw new NullPointerException("No receiver for non-static method: "+reflectMethod.toString()); //$NON-NLS-1$
-
- Object value = reflectMethod.invoke(receiver, args);
-
- if (traceOn) {
- System.out.print(" returns: "); //$NON-NLS-1$
- printObjectAndType(value, reflectMethod.getReturnType());
- }
- pushExpressionValue(value, reflectMethod.getReturnType());
- } catch (RuntimeException e) {
- processException(fixUpMethodException(e, reflectMethod));
- } catch (NoExpressionValueException e) {
- processException(fixUpMethodException(e, reflectMethod));
- } catch (IllegalAccessException e) {
- processException(fixUpMethodException(e, reflectMethod));
- } catch (InvocationTargetException e) {
- processException(fixUpMethodException(e.getCause(), reflectMethod));
- } catch (NoSuchMethodException e) {
- processException(e);
- } catch (AmbiguousMethodException e) {
- processException(e);
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
-
- }
-
- /*
- * Many of the exceptions don't add in what method had the error, so we
- * will do that here.
- */
- private Throwable fixUpMethodException(Throwable e, Method method) {
- if (method == null)
- return e;
- try {
- String msg = e.getMessage();
- Constructor eWithStringCtor = e.getClass().getConstructor(new Class[] {String.class});
- String newMsg;
- if (msg == null) {
- newMsg = method.toString();
- } else {
- newMsg = method.toString()+": \""+msg+'\"'; //$NON-NLS-1$
- }
- Exception fixedupE = (Exception) eWithStringCtor.newInstance(new Object[] {newMsg});
- fixedupE.setStackTrace(e.getStackTrace());
- return fixedupE;
- } catch (Exception e1) {
- return e;
- }
-
- }
-
- private static final Object CONDITIONAL_IGNORE = "CONDITIONAL IGNORE"; // Flag for conditional in ingore //$NON-NLS-1$
- private int conditionalNesting = 0; // Nesting of conditional expressions.
- private int conditionalIgnoreNestCount = 0; // When ignoring conditional expressions, ignore until this nest count.
- private boolean skipTruePart;
-
- /**
- * Push a conditional expression. It can be any clause of the conditional (test, true, or false clause).
- * @param expressionType
- *
- * @since 1.0.0
- */
- public final void pushConditional(InternalConditionalOperandType expressionType) {
- try {
- boolean ignore = true;
- try {
- if (errorOccurred)
- return;
- // Slightly different here in that if an ignoring occurred we still need to process at least part of it so that
- // we can get the expression grouping correct.
- switch (expressionType.getValue()) {
- case InternalConditionalOperandType.CONDITIONAL_TEST_VALUE:
- conditionalNesting++;
- break;
- case InternalConditionalOperandType.CONDITIONAL_TRUE_VALUE:
- if (skipTruePart && ignoreExpression == CONDITIONAL_IGNORE && conditionalIgnoreNestCount == conditionalNesting) {
- // stop ignoring, we've ignored the true condition of interest.
- ignoreExpression = null;
- return; // However, leave because since this condition was ignored.
- }
- break;
- case InternalConditionalOperandType.CONDITIONAL_FALSE_VALUE:
- int currentNesting = conditionalNesting--;
- if (ignoreExpression == CONDITIONAL_IGNORE && conditionalIgnoreNestCount == currentNesting) {
- // stop ignoring, we've ignored the false condition of interest.
- ignoreExpression = null;
- return; // However, leave because since this condition was ignored.
- }
- }
-
- if (ignoreExpression != null)
- return;
- ignore = false;
- } finally {
- if (traceOn)
- printTrace("Conditional "+expressionType, ignore); //$NON-NLS-1$
- }
-
- try {
- switch (expressionType.getValue()) {
- case InternalConditionalOperandType.CONDITIONAL_TEST_VALUE:
- Object condition = popExpression();
- Class type = popExpressionType(false);
- if (type != Boolean.TYPE)
- throwClassCast(Boolean.TYPE, condition);
- if (((Boolean) condition).booleanValue()) {
- // Condition was true.
- // Do nothing. Let true condition be processed.
- } else {
- // Condition was false.
- skipTruePart = true; // Tell the true condition should be ignored.
- ignoreExpression = CONDITIONAL_IGNORE;
- conditionalIgnoreNestCount = conditionalNesting;
- }
- // We don't put anything back on the stack because the condition test is not ever returned.
- // The appropriate true or false condition evaluation will be left on the stack.
- break;
- case InternalConditionalOperandType.CONDITIONAL_TRUE_VALUE:
- skipTruePart = false; // Tell the false condition should be ignored.
- ignoreExpression = CONDITIONAL_IGNORE;
- conditionalIgnoreNestCount = conditionalNesting;
- break;
- case InternalConditionalOperandType.CONDITIONAL_FALSE_VALUE:
- // There's nothing to do, if it was ignored due to true, we wouldn't of gotton here.
- // If it wasn't ignored, then the result of the false expression is on the stack, which is what it should be.
- break;
- }
- } catch (RuntimeException e) {
- processException(e);
- } catch (NoExpressionValueException e) {
- processException(e);
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- private static final Object BLOCK_IGNORE = "BLOCK IGNORE"; //$NON-NLS-1$
- private int[] blocks; // Stack of block numbers currently evaluating.
- private int topBlock = -1; // Top block index.
- private int breakBlock = -1; // Block number we are breaking to.
-
- /**
- * Push a begin block.
- * @param blockNumber
- *
- * @since 1.1.0
- */
- public final void pushBlockBegin(int blockNumber) {
- if (traceOn) {
- printTrace("Begin Block #"+blockNumber, errorOccurred); //$NON-NLS-1$
- indent(true);
- }
- try {
- if (errorOccurred)
- return;
- // We are not checking ignore because this is a structural concept instead of executable expressions, so we need to keep track of these.
- if (blocks == null)
- blocks = new int[10];
- if (++topBlock >= blocks.length) {
- int[] newList = new int[blocks.length*2];
- System.arraycopy(blocks, 0, newList, 0, blocks.length);
- blocks = newList;
- }
- blocks[topBlock] = blockNumber;
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- /**
- * Push a block end. The current block must be the given number, or it is an error.
- *
- * @param blockNumber
- *
- * @since 1.1.0
- */
- public final void pushBlockEnd(int blockNumber) {
- try {
- if (traceOn) {
- indent(false);
- printTrace("End Block #"+blockNumber, errorOccurred); //$NON-NLS-1$
- }
- if (errorOccurred)
- return;
- // We are not checking ignore because this is a structural concept instead of executable expressions, so we need to keep track of these.
- if (blocks == null || topBlock < 0 || blocks[topBlock] != blockNumber) {
- processSyntaxException(new IllegalStateException(InitparserTreeMessages.getString("ExpressionProcesser.PushBlockEnd.ReceivedEndBlocksOutOfOrder_EXC_"))); //$NON-NLS-1$
- } else {
- topBlock--;
- if (ignoreExpression == BLOCK_IGNORE && blockNumber == breakBlock) {
- ignoreExpression = null;
- }
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- /**
- * Skip all following until we hit the requested block number.
- * @param blockNumber
- *
- * @since 1.1.0
- */
- public final void pushBlockBreak(int blockNumber) {
- try {
- if (traceOn)
- printTrace("Break Block #"+blockNumber, errorOccurred); //$NON-NLS-1$
- if (errorOccurred)
- return;
- if (ignoreExpression == null) {
- ignoreExpression = BLOCK_IGNORE; // Start ignoring expressions until we hit the block number end block.
- breakBlock = blockNumber;
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- private static final Object TRY_THROW_IGNORE = "TRY THROW IGNORE"; //$NON-NLS-1$
- private static final Object TRY_FINAL_IGNORE = "TRY FINAL IGNORE"; //$NON-NLS-1$
- private int[] trys; // Stack of try numbers currently evaluating.
- // Stack of trys in catch clause (i.e. starting executing a catch/final clause for the try). Corresponds with try from same index in trys. Contains the throwable for the catch.
- // This is used to know we are executing a catch (entry not null) and for the rethrow short-hand to rethrow the same exception within the catch.
- private Throwable[] trysInCatch;
- private int topTry = -1; // Top try index.
- private int breakTry = -1; // Try number we are breaking to.
- private Throwable catchThrowable; // The throwable to check catches against.
-
- /**
- * Push a try statement.
- * @param tryNumber
- *
- * @since 1.1.0
- */
- public final void pushTryBegin(int tryNumber) {
- try {
- if (traceOn) {
- printTrace("Begin Try #"+tryNumber, errorOccurred); //$NON-NLS-1$
- indent(true);
- }
-
- if (errorOccurred)
- return;
- // We are not checking ignore because this is a structural concept instead of executable expressions, so we need to keep track of these.
- if (trys == null) {
- trys = new int[10];
- trysInCatch = new Throwable[10];
- }
- if (++topTry >= trys.length) {
- int[] newList = new int[trys.length*2];
- System.arraycopy(trys, 0, newList, 0, trys.length);
- trys = newList;
- Throwable[] newCatches = new Throwable[trys.length];
- System.arraycopy(trysInCatch, 0, newCatches, 0, trysInCatch.length);
- trysInCatch = newCatches;
- }
- trys[topTry] = tryNumber;
- trysInCatch[topTry] = null;
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- /**
- * Throw the top stack entry. It must be an exception.
- *
- *
- * @since 1.1.0
- */
- public final void pushThrowException() {
- try {
- boolean ignore = (ignoreExpression != null || errorOccurred);
- if (traceOn)
- printTrace("Throw exception: ", ignore); //$NON-NLS-1$
-
- if (ignore)
- return;
-
- try {
- Object t = popExpression();
- popExpressionType(false);
- if (traceOn) {
- System.out.print(t);
- }
- throwException((Throwable) t);
- } catch (NoExpressionValueException e) {
- processException(e);
- } catch (ClassCastException e) {
- processException(e);
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- /**
- * Throw this exception (means throw through the expression being processed, not throw for this thread).
- * @param exception
- *
- * @since 1.1.0
- */
- protected final void throwException(Throwable exception) {
- if (topTry == -1) {
- // There are no tries, so treat this as a syntax error.
- if (exception instanceof NoExpressionValueException)
- processSyntaxException((NoExpressionValueException) exception);
- else
- processSyntaxException(exception);
- } else if (trysInCatch[topTry] == null) {
- // We are not in a catch clause of the top try. So do a throw ignore for toptry.
- ignoreExpression = TRY_THROW_IGNORE;
- breakTry = trys[topTry];
- catchThrowable = exception;
- } else {
- // We are in a catch of the top try. So do a throw to finally instead.
- ignoreExpression = TRY_FINAL_IGNORE;
- trysInCatch[topTry] = FINAL_CATCH;
- breakTry = trys[topTry];
- catchThrowable = exception;
- }
- }
-
- /**
- * Push a catch clause
- * @param tryNumber
- * @param exceptionType
- * @param expressionProxy
- *
- * @since 1.1.0
- */
- public final void pushTryCatchClause(int tryNumber, Class exceptionType, InternalExpressionProxy expressionProxy) {
- try {
- if (traceOn) {
- indent(false);
- if (expressionProxy == null)
- printTrace("Catch Try #"+tryNumber+" ("+exceptionType+')', errorOccurred); //$NON-NLS-1$ //$NON-NLS-2$
- else
- printTrace("Catch Try #"+tryNumber+" ("+exceptionType+") Return exception in proxy #"+expressionProxy.getProxyID(), errorOccurred); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- indent(true);
- }
-
- if (errorOccurred)
- return;
-
- // We are not checking ignore because this is a structural concept instead of executable expressions, so we need to keep track of these.
- if (trys == null || topTry < 0 || trys[topTry] != tryNumber) {
- processSyntaxException(new IllegalStateException(InitparserTreeMessages.getString("ExpressionProcesser.PushTryCatchClause.CatchReceivedOutOfOrder_EXC_"))); //$NON-NLS-1$
- } else {
- if (ignoreExpression == null) {
- // Normal flow, no throw in progress, so just ignore now until the finally or end try reached.
- ignoreExpression = TRY_FINAL_IGNORE;
- breakTry = tryNumber;
- } else if (ignoreExpression == TRY_THROW_IGNORE && tryNumber == breakTry) {
- // We are here due to a throw occuring in this try block, see if for us, and if it is, stop ignoring.
- // Else just continue ignoring.
- if (exceptionType.isInstance(catchThrowable)) {
- // For us, so just turn everything back on, except mark that we are in the catch phase.
- ignoreExpression = null;
- trysInCatch[topTry] = catchThrowable; // This is so that we know if we throw again that we should not catch anything.
- breakTry = -1;
- if (expressionProxy != null) {
- expressionProxy.setProxy(catchThrowable, catchThrowable.getClass());
- allocateExpressionProxy(expressionProxy);
- }
- if (traceOn) {
- System.out.print(" Caught: "); //$NON-NLS-1$
- System.out.print(catchThrowable);
- }
- catchThrowable = null;
- }
- }
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- // This is used only so that finally clause can indicate it was executing so that end expression knows this.
- private static final Throwable FINAL_CATCH = new RuntimeException();
-
- /**
- * Push the try finally clause.
- * @param tryNumber
- *
- * @since 1.1.0
- */
- public final void pushTryFinallyClause(int tryNumber) {
- try {
- if (traceOn) {
- indent(false);
- printTrace("Finally Try #"+tryNumber, errorOccurred); //$NON-NLS-1$
- indent(true);
- }
- if (errorOccurred)
- return;
- // We are not checking ignore because this is a structural concept instead of executable expressions, so we need to keep track of these.
- if (trys == null || topTry < 0 || trys[topTry] != tryNumber) {
- processSyntaxException(new IllegalStateException(InitparserTreeMessages.getString("ExpressionProcesser.PushTryFinallyClause.FinallyReceivedOutOfOrder_EXC_"))); //$NON-NLS-1$
- } else {
- if (tryNumber == breakTry && (ignoreExpression == TRY_THROW_IGNORE || ignoreExpression == TRY_FINAL_IGNORE)) {
- // We are here due to a throw occuring in this try block or a catch was reached (in which case all intervening catch's were ignored).
- // Now do a normal execution. If we are here due to a throw that wasn't cleared (either no catch or another throw occured within the catch)
- // then we leave it uncleared so that try/end may rethrow it.
- ignoreExpression = null;
- trysInCatch[topTry] = FINAL_CATCH; // We are in the finally clause of a exception being thrown within this try.
- breakTry = -1;
- if (traceOn)
- System.out.print(" Executing finally."); //$NON-NLS-1$
- }
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- /**
- * Rethrow the caught exception. This is a shortcut for:
- * } catch (Exception e) {
- * ... do stuff ...
- * throw e;
- * }
- * @param tryNumber
- *
- * @since 1.1.0
- */
- public final void pushTryRethrow(int tryNumber) {
- if (traceOn)
- printTrace("Rethrow Try #"+tryNumber, errorOccurred || ignoreExpression != null); //$NON-NLS-1$
-
- try {
- if (errorOccurred)
- return;
- // We are not checking ignore because we need to make sure this is not called out of order.
- if (trys == null || topTry < 0 || trys[topTry] != tryNumber) {
- processSyntaxException(new IllegalStateException(InitparserTreeMessages.getString("ExpressionProcesser.PushTryRethrow.RethrowReceivedOutOfOrder_EXC_"))); //$NON-NLS-1$
- } else if (ignoreExpression == null) {
- if (trysInCatch[topTry] == null || trysInCatch[topTry] == FINAL_CATCH)
- processSyntaxException(new IllegalStateException(InitparserTreeMessages.getString("ExpressionProcesser.PushTryRethrow.RetryReceivedOutOfExecutingCatchClause_EXC_"))); //$NON-NLS-1$
- else {
- throwException(trysInCatch[topTry]);
- }
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- public final void pushTryEnd(int tryNumber) {
- if (traceOn) {
- indent(false);
- printTrace("End Try #"+tryNumber, errorOccurred); //$NON-NLS-1$
- }
- try {
- if (errorOccurred)
- return;
- // We are not checking ignore because this is a structural concept instead of executable expressions, so we need to keep track of these.
- if (trys == null || topTry < 0 || trys[topTry] != tryNumber) {
- processSyntaxException(new IllegalStateException(InitparserTreeMessages.getString("ExpressionProcesser.PushTryEnd.TryEndReceivedOutOfOrder_EXC_"))); //$NON-NLS-1$
- } else {
- boolean inCatch = trysInCatch[topTry] != null;
- trysInCatch[topTry] = null;
- topTry--;
- if (inCatch || (tryNumber == breakTry && (ignoreExpression == TRY_THROW_IGNORE || ignoreExpression == TRY_FINAL_IGNORE))) {
- // We are here due to a throw or normal flow through a catch. Either way if there is a throwable still pending, we rethrow.
- ignoreExpression = null;
- breakTry = -1;
- if (catchThrowable != null)
- throwException(catchThrowable);
- }
- }
- } finally {
- if (traceOn)
- printTraceEnd();
- }
- }
-
- /**
- * Class used to save the state at time of mark. It will
- * be used to restore state if error.
- *
- * @since 1.1.0
- */
- protected class SaveState {
- public int markID;
-
- // Block state
- public int topBlock;
- public int breakBlock;
-
- // Subexpression state
- public int topSubexpression;
-
- // Try state
- public int topTry;
- public int breakTry;
- public Throwable catchThrowable;
-
- // Error state
- public boolean errorOccurred;
- public boolean novalueException;
- public Throwable exception;
- public Object ignoreExpression;
-
- // Expression stack state
- public int expressionStackPos;
-
- // If/else state
- public int ifElseNesting;
- public int ifElseIgnoreNestCount;
- public boolean ifElseSkipTruePart;
-
- // Other
- public int indent;
- public int expressionProxyPos;
-
- /**
- * Construct and save the state.
- *
- * @param markNumber
- *
- * @since 1.1.0
- */
- public SaveState(int markID) {
- this.markID = markID;
-
- ExpressionProcesser ep = ExpressionProcesser.this;
- this.topBlock = ep.topBlock;
- this.breakBlock = ep.breakBlock;
-
- this.topSubexpression = ep.topSubexpression;
-
- this.topTry = ep.topTry;
- this.breakTry = ep.breakTry;
- this.catchThrowable = ep.catchThrowable;
-
- this.errorOccurred = ep.errorOccurred;
- this.novalueException = ep.novalueException;
- this.exception = ep.exception;
- this.ignoreExpression = ep.ignoreExpression;
-
- this.expressionStackPos = expressionStack.size()-1;
-
- this.ifElseNesting = ep.ifElseNesting;
- this.ifElseIgnoreNestCount = ep.ifElseIgnoreNestCount;
- this.ifElseSkipTruePart = ep.ifElseSkipTruePart;
-
- this.indent = ep.indent;
- this.expressionProxyPos = expressionProxies != null ? expressionProxies.size()-1 : -1;
- }
-
- /**
- * Restore the state.
- *
- *
- * @since 1.1.0
- */
- public void restoreState() {
- ExpressionProcesser ep = ExpressionProcesser.this;
- ep.topBlock = this.topBlock;
- ep.breakBlock = this.breakBlock;
-
- ep.topSubexpression = this.topSubexpression;
-
- ep.topTry = this.topTry;
- ep.breakTry = this.breakTry;
- ep.catchThrowable = this.catchThrowable;
- if (trysInCatch != null) {
- for (int i = topTry + 1; i < ep.trysInCatch.length; i++) {
- ep.trysInCatch[i] = null;
- }
- }
-
- ep.errorOccurred = this.errorOccurred;
- ep.novalueException = ep.novalueException;
- ep.exception = this.exception;
- ep.ignoreExpression = this.ignoreExpression;
-
- // Pop stack down to saved state.
- for (int i = expressionStack.size()-1; i > this.expressionStackPos; i--) {
- expressionStack.remove(i);
- expressionTypeStack.remove(i);
- }
-
- ep.ifElseNesting = this.ifElseNesting;
- ep.ifElseIgnoreNestCount = this.ifElseIgnoreNestCount;
- ep.ifElseSkipTruePart = this.ifElseSkipTruePart;
-
- ep.indent = this.indent;
-
- if (expressionProxies != null) {
- for (int i = expressionProxies.size() - 1; i > this.expressionProxyPos; i--) {
- expressionProxies.remove(i);
- }
- }
-
- // These settings can't cross mark boundaries, so reset them to not set. This is in case we were in this state somewhere
- // in the mark when the restore occurred.
- ep.conditionalIgnoreNestCount = 0;
- ep.conditionalNesting = 0;
- ep.skipTruePart = false;
-
- ep.infixIgnoreNestCount = 0;
- ep.infixNesting = 0;
- }
- }
-
- /**
- * Create the save state with the given id.
- * @param markID
- * @return
- *
- * @since 1.1.0
- */
- protected SaveState createSaveState(int markID) {
- return new SaveState(markID);
- }
-
- /**
- * Push the start of a mark.
- * @param markNumber
- *
- * @since 1.1.0
- */
- public final void pushMark(int markNumber) {
- if (traceOn)
- printTrace("Mark#"+markNumber, false); //$NON-NLS-1$
-
- if (saveStates == null)
- saveStates = new ArrayList();
- saveStates.add(createSaveState(markNumber));
-
- if (traceOn)
- printTraceEnd();
- }
-
- /**
- * Push the end mark. If there is no error, it will simply
- * remove it and all save states in the map after it. If there
- * is an error it will do this plus it will restore the state.
- * []
).
- */
- public static final int ARRAYACCESS_INDEX_VALUE = 2;
-
- public static final ForExpression ARRAYACCESS_INDEX = new ForExpression(ARRAYACCESS_INDEX_VALUE, "Array Access: Index"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating an dimension expression for an array creation (i.e. one of the expressions within the []
).
- */
- public static final int ARRAYCREATION_DIMENSION_VALUE = 3;
-
- public static final ForExpression ARRAYCREATION_DIMENSION = new ForExpression(ARRAYCREATION_DIMENSION_VALUE, "Array Access: Dimension"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating an expression for an array initializer (i.e. one of the expressions with the {}
). Special case is that
- * array initializers are valid as an expression within an array initializer and it doesn't use a for expression.
- */
- public static final int ARRAYINITIALIZER_EXPRESSION_VALUE = 4;
-
- public static final ForExpression ARRAYINITIALIZER_EXPRESSION = new ForExpression(ARRAYINITIALIZER_EXPRESSION_VALUE, "Array Initializer"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating the expression for the cast (i.e. the expresion after the (type)
).
- */
- public static final int CAST_EXPRESSION_VALUE = 5;
-
- public static final ForExpression CAST_EXPRESSION = new ForExpression(CAST_EXPRESSION_VALUE, "Cast"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating the argument expression for the new instance.
- */
- public static final int CLASSINSTANCECREATION_ARGUMENT_VALUE = 6;
-
- public static final ForExpression CLASSINSTANCECREATION_ARGUMENT = new ForExpression(CLASSINSTANCECREATION_ARGUMENT_VALUE,
- "Class Instance Creation: Argument"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating the condition for a conditional expression.
- */
- public static final int CONDITIONAL_CONDITION_VALUE = 7;
-
- public static final ForExpression CONDITIONAL_CONDITION = new ForExpression(CONDITIONAL_CONDITION_VALUE, "Conditional: Condition"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating the true (then) expression for a conditional expression.
- */
- public static final int CONDITIONAL_TRUE_VALUE = 8;
-
- public static final ForExpression CONDITIONAL_TRUE = new ForExpression(CONDITIONAL_TRUE_VALUE, "Conditional: True"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating the false (else) condition for a conditional expression.
- */
- public static final int CONDITIONAL_FALSE_VALUE = 9;
-
- public static final ForExpression CONDITIONAL_FALSE = new ForExpression(CONDITIONAL_FALSE_VALUE, "Conditional: False"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating the receiver for a field access (i.e. the expression before the ".")
- */
- public static final int FIELD_RECEIVER_VALUE = 10;
-
- public static final ForExpression FIELD_RECEIVER = new ForExpression(FIELD_RECEIVER_VALUE, "Field Access: Receiver"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating the left operand of an infix expression.
- */
- public static final int INFIX_LEFT_VALUE = 11;
-
- public static final ForExpression INFIX_LEFT = new ForExpression(INFIX_LEFT_VALUE, "Infix: Left"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating the right operand of an infix expression.
- */
- public static final int INFIX_RIGHT_VALUE = 12;
-
- public static final ForExpression INFIX_RIGHT = new ForExpression(INFIX_RIGHT_VALUE, "Infix: Right"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating an extended operand of an infix expression.
- */
- public static final int INFIX_EXTENDED_VALUE = 13;
-
- public static final ForExpression INFIX_EXTENDED = new ForExpression(INFIX_EXTENDED_VALUE, "Infix: Extended"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating the value expression of an instanceof.
- */
- public static final int INSTANCEOF_VALUE_VALUE = 14;
-
- public static final ForExpression INSTANCEOF_VALUE = new ForExpression(INSTANCEOF_VALUE_VALUE, "Instanceof"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating a receiver expression for a method invocation.
- */
- public static final int METHOD_RECEIVER_VALUE = 15;
-
- public static final ForExpression METHOD_RECEIVER = new ForExpression(METHOD_RECEIVER_VALUE, "Method Invoke: Receiver"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating an argument for a method invocation.
- */
- public static final int METHOD_ARGUMENT_VALUE = 16;
-
- public static final ForExpression METHOD_ARGUMENT = new ForExpression(METHOD_ARGUMENT_VALUE, "Method Invoke: Argument"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating the operand expression for a prefix operator.
- */
- public static final int PREFIX_OPERAND_VALUE = 17;
-
- public static final ForExpression PREFIX_OPERAND = new ForExpression(PREFIX_OPERAND_VALUE, "Prefix: Operand"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating the right operand of an assignment operator.
- *
- * @since 1.1.0
- */
- public static final int ASSIGNMENT_RIGHT_VALUE = 18;
-
- public static final ForExpression ASSIGNMENT_RIGHT = new ForExpression(ASSIGNMENT_RIGHT_VALUE, "Assignment: Right"); //$NON-NLS-1$
-
- /**
- * forExpression: Creating the left operand of an assignment operator.
- * true
if it has been set.
- *
- * @since 1.1.0
- */
- public boolean isSet();
-}
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalExpressionTypes.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalExpressionTypes.java
deleted file mode 100644
index d1a35eda7..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalExpressionTypes.java
+++ /dev/null
@@ -1,303 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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.proxy.initParser.tree;
-
-/**
- * These constants are for communicating between the IDE and the proxy side for expression evaluation. It is not meant to be used by customers.
- *
- * @since 1.0.0
- */
-public class InternalExpressionTypes extends AbstractEnum {
-
- /**
- * ARRAY ACCESS Expression
- */
- public final static int ARRAY_ACCESS_EXPRESSION_VALUE = 1;
-
- public final static InternalExpressionTypes ARRAY_ACCESS_EXPRESSION = new InternalExpressionTypes(ARRAY_ACCESS_EXPRESSION_VALUE,
- "Array Access Expression"); //$NON-NLS-1$
-
- /**
- * ARRAY CREATION Expression
- */
- public final static int ARRAY_CREATION_EXPRESSION_VALUE = 2;
-
- public final static InternalExpressionTypes ARRAY_CREATION_EXPRESSION = new InternalExpressionTypes(ARRAY_CREATION_EXPRESSION_VALUE,
- "Array Creation Expression"); //$NON-NLS-1$
-
- /**
- * ARRAY INITIALIZER expression
- */
- public final static int ARRAY_INITIALIZER_EXPRESSION_VALUE = 3;
-
- public final static InternalExpressionTypes ARRAY_INITIALIZER_EXPRESSION = new InternalExpressionTypes(ARRAY_INITIALIZER_EXPRESSION_VALUE,
- "Array Initializer Expression"); //$NON-NLS-1$
-
- /**
- * CAST Expression.
- */
- public final static int CAST_EXPRESSION_VALUE = 4;
-
- public final static InternalExpressionTypes CAST_EXPRESSION = new InternalExpressionTypes(CAST_EXPRESSION_VALUE, "Cast Expression"); //$NON-NLS-1$
-
- /**
- * CONDITIONAL expression
- */
- public final static int CONDITIONAL_EXPRESSION_VALUE = 5;
-
- public final static InternalExpressionTypes CONDITIONAL_EXPRESSION = new InternalExpressionTypes(CONDITIONAL_EXPRESSION_VALUE,
- "Conditional Expression"); //$NON-NLS-1$
-
- /**
- * CLASS INSTANCE CREATION expression
- */
- public final static int CLASS_INSTANCE_CREATION_EXPRESSION_VALUE = 6;
-
- public final static InternalExpressionTypes CLASS_INSTANCE_CREATION_EXPRESSION = new InternalExpressionTypes(
- CLASS_INSTANCE_CREATION_EXPRESSION_VALUE, "Class Instance Creation Expression"); //$NON-NLS-1$
-
- /**
- * FIELD ACCESS expression.
- */
- public final static int FIELD_ACCESS_EXPRESSION_VALUE = 7;
-
- public final static InternalExpressionTypes FIELD_ACCESS_EXPRESSION = new InternalExpressionTypes(FIELD_ACCESS_EXPRESSION_VALUE,
- "Field Access Expression"); //$NON-NLS-1$
-
- /**
- * INSTANCEOF Expression.
- */
- public final static int INSTANCEOF_EXPRESSION_VALUE = 8;
-
- public final static InternalExpressionTypes INSTANCEOF_EXPRESSION = new InternalExpressionTypes(INSTANCEOF_EXPRESSION_VALUE,
- "Instanceof Expression"); //$NON-NLS-1$
-
- /**
- * Infix expression
- */
- public final static int INFIX_EXPRESSION_VALUE = 9;
-
- public final static InternalExpressionTypes INFIX_EXPRESSION = new InternalExpressionTypes(INFIX_EXPRESSION_VALUE, "Infix Expression"); //$NON-NLS-1$
-
- /**
- * Method expression.
- */
- public final static int METHOD_EXPRESSION_VALUE = 10;
-
- public final static InternalExpressionTypes METHOD_EXPRESSION = new InternalExpressionTypes(METHOD_EXPRESSION_VALUE, "Method Invoke Expression"); //$NON-NLS-1$
-
- /**
- * Prefix expression
- */
- public final static int PREFIX_EXPRESSION_VALUE = 11;
-
- public final static InternalExpressionTypes PREFIX_EXPRESSION = new InternalExpressionTypes(PREFIX_EXPRESSION_VALUE, "Prefix Expression"); //$NON-NLS-1$
-
- /**
- * Push to proxy expression.
- */
- public final static int PUSH_TO_PROXY_EXPRESSION_VALUE = 12;
-
- public final static InternalExpressionTypes PUSH_TO_PROXY_EXPRESSION = new InternalExpressionTypes(PUSH_TO_PROXY_EXPRESSION_VALUE,
- "Push to Proxy Expression"); //$NON-NLS-1$
-
- /**
- * Push BeanType expression proxy expression.
- */
- public final static int PUSH_BEANTYPE_EXPRESSIONPROXY_EXPRESSION_VALUE = 13;
-
- public final static InternalExpressionTypes PUSH_BEANTYPE_EXPRESSIONPROXY_EXPRESSION = new InternalExpressionTypes(PUSH_BEANTYPE_EXPRESSIONPROXY_EXPRESSION_VALUE,
- "Push BeanType ExpressionProxy Expression"); //$NON-NLS-1$
-
-
- /**
- * Type receiver expression.
- */
- public final static int TYPERECEIVER_EXPRESSION_VALUE = 14;
-
- public final static InternalExpressionTypes TYPERECEIVER_EXPRESSION = new InternalExpressionTypes(TYPERECEIVER_EXPRESSION_VALUE,
- "Type Receiver Expression"); //$NON-NLS-1$
-
- /**
- * Assignment to an ExpressionProxy expression.
- */
- public final static int ASSIGNMENT_PROXY_EXPRESSION_VALUE = 15;
-
- public final static InternalExpressionTypes ASSIGNMENT_PROXY_EXPRESSION = new InternalExpressionTypes(ASSIGNMENT_PROXY_EXPRESSION_VALUE,
- "Assignment to Proxy Expression"); //$NON-NLS-1$
-
- /**
- * Push expression proxy value expression.
- */
- public final static int PUSH_TO_EXPRESSION_PROXY_EXPRESSION_VALUE = 16;
-
- public final static InternalExpressionTypes PUSH_TO_EXPRESSION_PROXY_EXPRESSION = new InternalExpressionTypes(
- PUSH_TO_EXPRESSION_PROXY_EXPRESSION_VALUE, "Push to Expression Proxy Expression"); //$NON-NLS-1$
-
- /**
- * Assignment expression.
- */
- public final static int ASSIGNMENT_EXPRESSION_VALUE = 17;
-
- public final static InternalExpressionTypes ASSIGNMENT_EXPRESSION = new InternalExpressionTypes(ASSIGNMENT_EXPRESSION_VALUE,
- "Assignment Expression"); //$NON-NLS-1$
-
- /**
- * Block End expression.
- */
- public final static int BLOCK_BEGIN_EXPRESSION_VALUE = 18;
-
- public final static InternalExpressionTypes BLOCK_BEGIN_EXPRESSION = new InternalExpressionTypes(BLOCK_BEGIN_EXPRESSION_VALUE,
- "Begin block Expression"); //$NON-NLS-1$
-
- /**
- * Block End expression.
- */
- public final static int BLOCK_BREAK_EXPRESSION_VALUE = 19;
-
- public final static InternalExpressionTypes BLOCK_BREAK_EXPRESSION = new InternalExpressionTypes(BLOCK_BREAK_EXPRESSION_VALUE,
- "Break block Expression"); //$NON-NLS-1$
-
- /**
- * Block End expression.
- */
- public final static int BLOCK_END_EXPRESSION_VALUE = 20;
-
- public final static InternalExpressionTypes BLOCK_END_EXPRESSION = new InternalExpressionTypes(BLOCK_END_EXPRESSION_VALUE,
- "End block Expression"); //$NON-NLS-1$
-
- /**
- * Try Begin expression.
- */
- public final static int TRY_BEGIN_EXPRESSION_VALUE = 21;
-
- public final static InternalExpressionTypes TRY_BEGIN_EXPRESSION = new InternalExpressionTypes(TRY_BEGIN_EXPRESSION_VALUE,
- "Begin try Expression"); //$NON-NLS-1$
-
- /**
- * Try Catch expression.
- */
- public final static int TRY_CATCH_EXPRESSION_VALUE = 22;
-
- public final static InternalExpressionTypes TRY_CATCH_EXPRESSION = new InternalExpressionTypes(TRY_CATCH_EXPRESSION_VALUE,
- "Try catch Expression"); //$NON-NLS-1$
-
- /**
- * Try Finally expression.
- */
- public final static int TRY_FINALLY_EXPRESSION_VALUE = 23;
-
- public final static InternalExpressionTypes TRY_FINALLY_EXPRESSION = new InternalExpressionTypes(TRY_FINALLY_EXPRESSION_VALUE,
- "Try finally Expression"); //$NON-NLS-1$
-
- /**
- * Try End expression.
- */
- public final static int TRY_END_EXPRESSION_VALUE = 24;
-
- public final static InternalExpressionTypes TRY_END_EXPRESSION = new InternalExpressionTypes(TRY_END_EXPRESSION_VALUE,
- "End try Expression"); //$NON-NLS-1$
-
- /**
- * Throw expression.
- */
- public final static int THROW_EXPRESSION_VALUE = 25;
-
- public final static InternalExpressionTypes THROW_EXPRESSION = new InternalExpressionTypes(THROW_EXPRESSION_VALUE,
- "Throw Expression"); //$NON-NLS-1$
-
- /**
- * Rethrow expression.
- */
- public final static int RETHROW_EXPRESSION_VALUE = 26;
-
- public final static InternalExpressionTypes RETHROW_EXPRESSION = new InternalExpressionTypes(RETHROW_EXPRESSION_VALUE,
- "Rethrow Expression"); //$NON-NLS-1$
-
- /**
- * Push Method Lookup expression proxy expression.
- */
- public final static int PUSH_METHOD_EXPRESSIONPROXY_EXPRESSION_VALUE = 27;
-
- public final static InternalExpressionTypes PUSH_METHOD_EXPRESSIONPROXY_EXPRESSION = new InternalExpressionTypes(PUSH_METHOD_EXPRESSIONPROXY_EXPRESSION_VALUE,
- "Push Method ExpressionProxy Expression"); //$NON-NLS-1$
-
- /**
- * Push Field Lookup expression proxy expression.
- */
- public final static int PUSH_FIELD_EXPRESSIONPROXY_EXPRESSION_VALUE = 28;
-
- public final static InternalExpressionTypes PUSH_FIELD_EXPRESSIONPROXY_EXPRESSION = new InternalExpressionTypes(PUSH_FIELD_EXPRESSIONPROXY_EXPRESSION_VALUE,
- "Push Field ExpressionProxy Expression"); //$NON-NLS-1$
-
- /**
- * Push If/else (the clauses) expression proxy expression.
- */
- public final static int IF_ELSE_EXPRESSION_VALUE = 29;
-
- public final static InternalExpressionTypes IF_ELSE_EXPRESSION = new InternalExpressionTypes(IF_ELSE_EXPRESSION_VALUE,
- "Push If/else Expression"); //$NON-NLS-1$
-
- /**
- * Push If/else condition test expression proxy expression.
- */
- public final static int IF_TEST_EXPRESSION_VALUE = 30;
-
- public final static InternalExpressionTypes IF_TEST_EXPRESSION = new InternalExpressionTypes(IF_TEST_EXPRESSION_VALUE,
- "Push If Test Expression"); //$NON-NLS-1$
-
-
- /**
- * Push new instance from init string proxy expression.
- */
- public final static int NEW_INSTANCE_VALUE = 31;
-
- public final static InternalExpressionTypes NEW_INSTANCE = new InternalExpressionTypes(NEW_INSTANCE_VALUE,
- "Push New Instance Expression"); //$NON-NLS-1$
-
-
- /**
- * Push mark proxy expression.
- */
- public final static int MARK_VALUE = 32;
-
- public final static InternalExpressionTypes MARK = new InternalExpressionTypes(MARK_VALUE,
- "Push Mark Expression"); //$NON-NLS-1$
-
- /**
- * Push end mark proxy expression.
- */
- public final static int ENDMARK_VALUE = 33;
-
- public final static InternalExpressionTypes ENDMARK = new InternalExpressionTypes(ENDMARK_VALUE,
- "Push End Mark Expression"); //$NON-NLS-1$
-
- /**
- * Subexpression End expression.
- */
- public final static int SUBEXPRESSION_BEGIN_EXPRESSION_VALUE = 34;
-
- public final static InternalExpressionTypes SUBEXPRESSION_BEGIN_EXPRESSION = new InternalExpressionTypes(SUBEXPRESSION_BEGIN_EXPRESSION_VALUE,
- "Begin Subexpression Expression"); //$NON-NLS-1$
-
- /**
- * Subexpression End expression.
- */
- public final static int SUBEXPRESSION_END_EXPRESSION_VALUE = 35;
-
- public final static InternalExpressionTypes SUBEXPRESSION_END_EXPRESSION = new InternalExpressionTypes(SUBEXPRESSION_END_EXPRESSION_VALUE,
- "End Subexpression Expression"); //$NON-NLS-1$
-
-
- private InternalExpressionTypes(int value, String name) {
- super(value, name);
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalIfElseOperandType.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalIfElseOperandType.java
deleted file mode 100644
index c048a4dd1..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalIfElseOperandType.java
+++ /dev/null
@@ -1,60 +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: InternalIfElseOperandType.java,v $
- * $Revision: 1.2 $ $Date: 2005/05/18 23:11:26 $
- */
-package org.eclipse.jem.internal.proxy.initParser.tree;
-
-/**
- * Internal class for the If/else operand type. Not meant to be used by customers.
- *
- * @since 1.1.0
- */
-public class InternalIfElseOperandType extends AbstractEnum {
-
- /**
- * Used in If/else processing. False clause on expression stack
- */
- public final static int ELSE_CLAUSE_VALUE = 0;
-
- public final static InternalIfElseOperandType ELSE_CLAUSE = new InternalIfElseOperandType(ELSE_CLAUSE_VALUE,
- "Else Clause Flag"); //$NON-NLS-1$
-
- /**
- * Used in If/else processing. If operand on expression stack
- */
- public final static int TRUE_CLAUSE_VALUE = 1;
-
- public final static InternalIfElseOperandType TRUE_CLAUSE = new InternalIfElseOperandType(TRUE_CLAUSE_VALUE,
- "If True Clause Flag"); //$NON-NLS-1$
-
- /**
- * Return the enum for the given value.
- * @param value
- * @return
- *
- * @since 1.1.0
- */
- public static InternalIfElseOperandType get(int value) {
- switch (value) {
- case ELSE_CLAUSE_VALUE:
- return ELSE_CLAUSE;
- case TRUE_CLAUSE_VALUE:
- return TRUE_CLAUSE;
- }
- return null;
- }
-
- private InternalIfElseOperandType(int value, String name) {
- super(value, name);
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalInfixOperandType.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalInfixOperandType.java
deleted file mode 100644
index bef20d502..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/InternalInfixOperandType.java
+++ /dev/null
@@ -1,63 +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: InternalInfixOperandType.java,v $
- * $Revision: 1.2 $ $Date: 2005/05/18 23:11:26 $
- */
-package org.eclipse.jem.internal.proxy.initParser.tree;
-
-
-/**
- * Internal class for the Prefix operand type. Not meant to be used by customers.
- * @since 1.1.0
- */
-public class InternalInfixOperandType extends AbstractEnum {
-
- /**
- * Used in Infix processing. Left operand on expression stack
- */
- public final static int INFIX_LEFT_OPERAND_VALUE = 0;
- public final static InternalInfixOperandType INFIX_LEFT_OPERAND = new InternalInfixOperandType(INFIX_LEFT_OPERAND_VALUE, "Infix Left Operand Flag"); //$NON-NLS-1$
- /**
- * Used in Infix processing. Other operand (but not last) on expression stack
- */
- public final static int INFIX_OTHER_OPERAND_VALUE = 1;
- public final static InternalInfixOperandType INFIX_OTHER_OPERAND = new InternalInfixOperandType(INFIX_OTHER_OPERAND_VALUE,
- "Infix Other Operand Flag"); //$NON-NLS-1$
- /**
- * Used in Infix processing. Rightmost (last) operand on expression stack
- */
- public final static int INFIX_LAST_OPERAND_VALUE = 2;
- public final static InternalInfixOperandType INFIX_LAST_OPERAND = new InternalInfixOperandType(INFIX_LAST_OPERAND_VALUE, "Infix Last Operand Flag"); //$NON-NLS-1$
-
- /**
- * Return the enum for the given value.
- * @param value
- * @return
- *
- * @since 1.1.0
- */
- public static InternalInfixOperandType get(int value) {
- switch (value) {
- case INFIX_LAST_OPERAND_VALUE:
- return INFIX_LAST_OPERAND;
- case INFIX_LEFT_OPERAND_VALUE:
- return INFIX_LEFT_OPERAND;
- case INFIX_OTHER_OPERAND_VALUE:
- return INFIX_OTHER_OPERAND;
- }
- return null;
- }
-
- private InternalInfixOperandType(int value, String name) {
- super(value, name);
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/NoExpressionValueException.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/NoExpressionValueException.java
deleted file mode 100644
index 41e6a777c..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/NoExpressionValueException.java
+++ /dev/null
@@ -1,87 +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: NoExpressionValueException.java,v $
- * $Revision: 1.3 $ $Date: 2005/07/20 19:27:25 $
- */
-package org.eclipse.jem.internal.proxy.initParser.tree;
-
-
-/**
- * The expression (or some nested expression) did not return a value. I.e. it was void
.
- * This would occur only if the value of expression was being retrieved through getExpressionValue,
- * or if a nested expression was used, since in that case the value would of been used as an
- * argument or receiver to another expression.
- *
- * @since 1.0.0
- */
-public class NoExpressionValueException extends Exception {
-
- /**
- * Comment for serialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = -7953101867782417964L;
-
- private InternalExpressionProxy proxy;
-
- /**
- * Construct with no arguments.
- *
- * @since 1.0.0
- */
- public NoExpressionValueException() {
- super();
- }
-
- public NoExpressionValueException(Throwable e) {
- super(e);
- }
-
- /**
- * Construct with a message.
- *
- * @param message
- *
- * @since 1.0.0
- */
- public NoExpressionValueException(String message) {
- this(message, null);
- }
-
- /**
- * Construct with a message and a proxy. This is only used from {@link ExpressionProcesser#getExpressionProxyValue(int, Object[])} when
- * the proxy existed but it was not set.
- *
- * @param message
- * @param proxy
- *
- * @since 1.1.0
- */
- public NoExpressionValueException(String message, InternalExpressionProxy proxy) {
- super (message);
- this.proxy = proxy;
- }
-
- /**
- * Get the proxy if there is one. It will be a proxy if {@link ExpressionProcesser#getExpressionProxyValue(int, Object[])}
- * was for an existing proxy but that proxy was not set. Otherwise it will be null. This is here for callers to
- * put special info in the proxy for the not set condition and report better info.
- *
- * @return the proxy (if not set) or null
if no proxy available.
- *
- * @since 1.1.0
- */
- public InternalExpressionProxy getProxy() {
- return proxy;
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/PrefixOperator.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/PrefixOperator.java
deleted file mode 100644
index a1e0a3021..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/PrefixOperator.java
+++ /dev/null
@@ -1,77 +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: PrefixOperator.java,v $
- * $Revision: 1.2 $ $Date: 2005/05/18 23:11:26 $
- */
-package org.eclipse.jem.internal.proxy.initParser.tree;
-
-/**
- * Enum for prefix operator.
- *
- * @since 1.1.0
- */
-public class PrefixOperator extends AbstractEnum {
-
- /**
- * Prefix plus "+"
- */
- public static final int PRE_PLUS_VALUE = 0;
-
- public static final PrefixOperator PRE_PLUS = new PrefixOperator(PRE_PLUS_VALUE, "Prefix +"); //$NON-NLS-1$
-
- /**
- * Prefix minus "-"
- */
- public static final int PRE_MINUS_VALUE = 1;
-
- public static final PrefixOperator PRE_MINUS = new PrefixOperator(PRE_MINUS_VALUE, "Prefix -"); //$NON-NLS-1$
-
- /**
- * Prefix bitwise complement "~"
- */
- public static final int PRE_COMPLEMENT_VALUE = 2;
-
- public static final PrefixOperator PRE_COMPLEMENT = new PrefixOperator(PRE_COMPLEMENT_VALUE, "Prefix ~"); //$NON-NLS-1$
-
- /**
- * Prefix logical not "!"
- */
- public static final int PRE_NOT_VALUE = 3;
-
- public static final PrefixOperator PRE_NOT = new PrefixOperator(PRE_NOT_VALUE, "Prefix !"); //$NON-NLS-1$
-
- /**
- * Return the prefix operator for the given enum value.
- * @param value
- * @return
- *
- * @since 1.1.0
- */
- public static PrefixOperator get(int value) {
- switch (value) {
- case PRE_PLUS_VALUE:
- return PRE_PLUS;
- case PRE_MINUS_VALUE:
- return PRE_MINUS;
- case PRE_COMPLEMENT_VALUE:
- return PRE_COMPLEMENT;
- case PRE_NOT_VALUE:
- return PRE_NOT;
- }
- return null;
- }
-
- private PrefixOperator(int value, String name) {
- super(value, name);
- }
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/VariableReference.java b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/VariableReference.java
deleted file mode 100644
index 645f2b339..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/VariableReference.java
+++ /dev/null
@@ -1,58 +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: VariableReference.java,v $
- * $Revision: 1.2 $ $Date: 2005/08/24 20:39:07 $
- */
-package org.eclipse.jem.internal.proxy.initParser.tree;
-
-
-/**
- * This represents a Variable Reference value. A variable reference value can be on the left
- * side of an assignment (e.g. field or array access) or on any side
- * of any expression. When on the left side of an assignment, then the
- * value can assigned to. Such as x[3] = 4
. Or it is value
- * that can be used in expressions, such as x[3] + 2
.
- * x[3]
. The type of the reference
- * is the type stored in the corresponding expressionTypeStack entry for this reference.
- * @throws IllegalAccessException
- * @throws IllegalArgumentException
- *
- * @since 1.1.0
- */
- public abstract Object dereference();
-
- /**
- * Set the value into the variable and dereference it. Once it is set it is
- * no longer a reference and must be dereferenced.
- * @param value value to set to.
- * @param type type of the value being set. It may be of use to the reference or maybe not.
- * @return the dereferenced value after being set. The type of the dereferenced value
- * is the type stored in the corresponding expressionTypeStack entry for this reference.
- * @throws IllegalAccessException
- * @throws IllegalArgumentException
- *
- * @since 1.1.0
- */
- public abstract Object set(Object value, Class type) throws IllegalArgumentException, IllegalAccessException;
-}
diff --git a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/messages.properties b/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/messages.properties
deleted file mode 100644
index da6840dc1..000000000
--- a/plugins/org.eclipse.jem.proxy/initParser/org/eclipse/jem/internal/proxy/initParser/tree/messages.properties
+++ /dev/null
@@ -1,29 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 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
-###############################################################################
-ExpressionProcesser.CannotCastXToY_EXC_ = IWAV0156E Cannot cast "{0}" to be "{1}".
-ExpressionProcesser.InvalidOperandOfPrefixOperator_EXC_ = IWAV0157E {0} not valid as the operand of prefix operator "{1}".
-ExpressionProcesser.PopExpressionType.ExpressionVoid_EXC_=Expression was void.
-ExpressionProcesser.InvalidOperandOfOperator_EXC_ = IWAV0158E {0} not valid as the operand of operator "{1}".
-ExpressionProcesser.XIsGreaterThanNumberOfDimensionsInArray_EXC_ = IWAV0159E {0} is greater then number of dimensions ({1}) in the array
-ExpressionProcesser.CreateArrayAccessReference.OutOfBounds_EXC_=Index: {0} size:{1}
-ExpressionProcesser.PushTryEnd.TryEndReceivedOutOfOrder_EXC_=Try/end received out of order.
-ExpressionProcesser.PushEndmark.EndMarkOnNonExistingID_EXC_=Tried to do an end mark on a non-existing markID ({0})
-ExpressionProcesser.NotAnArray_EXC_ = IWAV0160E "{0}" is not an array.
-ExpressionProcesser.ArraytypeHasFewerDimensionsThanRequested_EXC_ = IWAV0161E Arraytype "{0}" has fewer dimensions than creation requested ({1}).
-ExpressionProcesser.CreateFieldAccessReference.FieldsTypesNotMatching_EXC_=Field receiver does not match the type of the field: Field: {0} receiver: {1}
-ExpressionProcesser.GetExpressionProxyValue.ExpressionProxyNotSet_EXC_=Expression Proxy never set.
-ExpressionProcesser.GetExpressionProxyValue.ExpressionProxyDoesntExist_EXC_=Expression proxy doesn't exist.
-ExpressionProcesser.PushBlockEnd.ReceivedEndBlocksOutOfOrder_EXC_=End Blocks received out of order.
-ExpressionProcesser.PushTryCatchClause.CatchReceivedOutOfOrder_EXC_=Catch received out of order.
-ExpressionProcesser.PushTryFinallyClause.FinallyReceivedOutOfOrder_EXC_=Finally received out of order.
-ExpressionProcesser.PushTryRethrow.RethrowReceivedOutOfOrder_EXC_=Rethrow received out of order.
-ExpressionProcesser.PushTryRethrow.RetryReceivedOutOfExecutingCatchClause_EXC_=Retry received outside of an executing catch clause
-ExpressionProcesser.PushSubexpressionEnd.ReceivedEndSubexpressionsOutOfOrder_EXC_=End Subexpressions received out of order.
diff --git a/plugins/org.eclipse.jem.proxy/plugin.properties b/plugins/org.eclipse.jem.proxy/plugin.properties
deleted file mode 100644
index e07dfc9d5..000000000
--- a/plugins/org.eclipse.jem.proxy/plugin.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 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
-###############################################################################
-#
-# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/plugins/org.eclipse.jem.proxy/plugin.properties,v $
-# $Revision: 1.7 $ $Date: 2005/08/24 20:39:07 $
-#
-
-
-pluginName=Java EMF Model Proxy Support
-providerName = Eclipse.org
-contributors.extensionpoint.name=Proxy configuration contributors
-extensions.extensionpoint.name=Proxy configuration extension registrations
-Launch.localProxy=Local Proxy Application
diff --git a/plugins/org.eclipse.jem.proxy/plugin.xml b/plugins/org.eclipse.jem.proxy/plugin.xml
deleted file mode 100644
index ca74b4218..000000000
--- a/plugins/org.eclipse.jem.proxy/plugin.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
- *
- * @since 1.2.0
- */
-public class ContainerPathContributionMapping {
-
- /**
- * Used in {@link ContainerPathContributionMapping#containerIdToContributions} as the value of the map.
- * This contains a Pattern for a container path to match against to see if the contribution
- * should be used.
- *
- * ContainerPathContributionMapping mapping = new ContainerPathContributionMapping(contributionType);
- * mapping.addContribution(containerid, pattern, contribution);
- * ...
- * mapping.finalizeMapping();
- *
fromTop
is how far from the top of the stack to look.
- * If it one, then it is the top entry, two is the next one down. Zero is an invalid value for the parameter.
- * @param fromTop How far from the top to peek. 1
is the top, not zero.
- * @return
- *
- * @since 1.0.0
- */
- protected final Object peek(int fromTop) {
- // 1 means the top, 2 is the next one down.
- return controlStack.get(controlStack.size()-fromTop);
- }
-
- /*
- * Expression type constants.
- */
-
- /*
- * ARRAY ACCESS expression.
- * The expression stack will have:
- * IExpression.ARRAYACCESS_ARRAY
- * IExpression.ARRAYACCESS_INDEX (for 1 to n times depending on index count)
- * PROCESS_EXPRESSION
- *
- * The value stack will have
- * ARRAYACCESS
- * Integer(index count)
- */
- private static final Integer ARRAYACCESS_INDEX_1 = new Integer(1); // Use in normal case of one index count. Saves object creation.
-
- /*
- * ARRAY CREATION expression.
- * The expression stack will have:
- * ARRAYCREATION_INITIALIZER - if hasInitializer
- * IExpression.ARRAYCREATION_DIMENSION (for 0 to n times depending on dimension count)
- * PROCESS_EXPRESSION
- *
- * The value stack will have
- * ARRAYCREATION
- * type (either a string representing the type, or an IBeanProxyType representing the type).
- * Integer(dimension count) (if zero then there is an initializer)
- *
- *
- * Note: Array Initializer works with this in that it will peek into the value stack two entries down
- * to find the type of array it should be creating.
- */
- private static final Integer ARRAY_CREATION_DIMENSION_1 = new Integer(1); // Use in normal case of one dimension. Save object creation.
- private static final Integer ARRAY_CREATION_DIMENSION_0 = new Integer(0); // Use in normal case of initializer. Save object creation.
- private static final ForExpression ARRAY_INITIALIZER = new ExpressionEnum(Integer.MIN_VALUE+1, "Array Initializer Internal"); //$NON-NLS-1$
-
- /*
- * ARRAY INITIALIZER expression
- * The expression stack will have:
- * IExpression.ARRAYINITIALIZER_EXPRESSION (for n times depending on number of expressions count)
- * PROCESS_EXPRESSION
- *
- * The value stack will have
- * ARRAYINITIALIZER
- * type (either a string representing the type, or an IBeanProxyType representing the type).
- * I.e. if array being created is int[][], the value pushed here will be int[]. This is because when created
- * the array will wind up with int[expressioncount][] in the end.
- * Integer (expression count)
- *
- * Note: Imbedded Array Initializers works with this in that it will peek into the value stack two entries down
- * to find the type of array it should be creating.
- */
- private static final Integer ARRAYINITIALIZER_COUNT_0 = new Integer(0); // Use in normal case of empty array. Save object creation.
- private static final Integer ARRAYINITIALIZER_COUNT_1 = new Integer(1); // Use in normal case of one element array. Save object creation.
- private static final Integer ARRAYINITIALIZER_COUNT_2 = new Integer(2); // Use in normal case of two element array. Save object creation.
-
- /*
- * CAST expression.
- * The expression stack will have:
- * IExpression.CAST_EXPRESSION
- * PROCESS_EXPRESSION
- *
- * The value stack will have:
- * CAST
- * type (either a string representing the type, or an IBeanProxyType representing the type).
- */
-
- /*
- * CLASS INSTANCE CREATION expression.
- * The expression stack will have:
- * IExpression.CLASSINSTANCECREATION_ARGUMENT (for 0 to n times depending on argument count)
- * PROCESS_EXPRESSION
- *
- * The value stack will have
- * CLASSINSTANCECREATION
- * type (either a string representing the type, or an IBeanProxyType representing the type).
- * Integer(argument count)
- *
- *
- * Note: Array Initializer works with this in that it will peek into the value stack two entries down
- * to find the type of array it should be creating.
- */
- private static final Integer CLASS_INSTANCE_CREATION_ARGUMENTS_1 = new Integer(1); // Use in normal case of one argument. Save object creation.
- private static final Integer CLASS_INSTANCE_CREATION_ARGUMENTS_0 = new Integer(0); // Use in normal case of no arguments (default ctor). Save object creation.
-
- /*
- * CONDITIONAL expression.
- * Since this can cause skipping of expressions (e.g. if condition is false, then the true condition should not be evaluated),
- * we need to have a process expression and process call to the other side for each expression so that it can
- * determine if it should be ignored or not.
- *
- * The expression stack will have:
- * IExpression.CONDITIONAL_CONDITION
- * PROCESS_EXPRESSION
- * IExpression.CONDITIONAL_TRUE
- * PROCESS_EXPRESSION
- * IExpression.CONDITIONAL_FALSE
- * PROCESS_EXPRESSION
- *
- * The value stack will have:
- * CONDITIONAL
- * CONDITIONAL_CONDITION
- * CONDITIONAL
- * CONDITIONAL_TRUE
- * CONDITIONAL
- * CONDITIONAL_FALSE
- *
- */
-
- /*
- * PREFIX expression.
- * The expression stack will have:
- * IExpression.PREFIX_OPERAND
- * PROCESS_EXPRESSION
- *
- * The value stack will have:
- * PREFIX
- * operator (using Integer prefix operator constants defined here)
- */
-
- /*
- * INFIX expression.
- * Since two types of infix operators (conditional and AND or) can cause skipping of expressions (e.g. once
- * conditional and sees a false expression, the rest of the expressions are skipped and should not be evaluated),
- * we need to have a process expression and process call to the other side for each expression so that it can
- * determine if it should be ignored or not.
- *
- * The expression stack will have:
- * IExpression.INFIX_LEFT
- * PROCESS_EXPRESSION
- * IExpression.INFIX_RIGHT
- * PROCESS_EXPRESSION
- * (for 0 to n times depending upon extended count)
- * IExpression.INFIX_EXTENDED
- * PROCESS_EXPRESSION
- *
- * The value stack will have:
- * INFIX
- * operator (using Integer infix operator constants defined here)
- * IN_LEFT
- * (for (extendedCount) times) This will cover the right one and all but last extended
- * INFIX
- * operator (using Integer infix operator constants defined here)
- * IN_OTHER
- * INFIX
- * operator (using Integer infix operator constants defined here)
- * IN_LAST (this is covers either the right one if no extended, or the last extended)
- */
-
- /*
- * INSTANCEOF expression.
- * The expression stack will have:
- * IExpression.INSTANCEOF_EXPRESSION
- * PROCESS_EXPRESSION
- *
- * The value stack will have:
- * INSTANCEOF
- * type (either a string representing the type, or an IBeanProxyType representing the type).
- */
-
- /*
- * Field access expression.
- * The expression stack will have:
- * IExpression.FIELD_RECEIVER (if hasReceiver is true)
- * PROCESS_EXPRESSION
- *
- * The value stack will have:
- * FIELDACCESS
- * name (the name of the field)
- * Boolean (true if has receiver)
- */
-
- /*
- * Method invocation expression.
- * The expression stack will have:
- * IExpression.METHOD_RECEIVER (if hasReceiver is true)
- * IExpression.METHOD_ARGUMENT (0 to n times for how many arguments).
- * PROCESS_EXPRESSION
- *
- * The value stack will have:
- * METHODINVOCATION
- * name (the name of the method)
- * Boolean (true if has receiver)
- * argCount (the number of arguments).
- */
- private static final Integer METHOD_ARGUMENTS_1 = new Integer(1); // Use in normal case of one argument. Save object creation.
- private static final Integer METHOD_ARGUMENTS_0 = new Integer(0); // Use in normal case of no arguments. Save object creation.
-
-
- /*
- * Assignment expression
- * The expression stack will have:
- * IExpression.ASSIGNMENT_RIGHT
- * IExpression.ASSIGNMENT_LEFT
- * PROCESS_EXPRESSION
- *
- * The value stack will have:
- * ASSIGNMENT
- * left expression (variable reference)
- * right expression
- */
-
- /*
- * Assignment proxy expression
- * The expression stack will have:
- * IExpression.ASSIGNMENT_RIGHT
- * PROCESS_EXPRESSION
- *
- * The value stack will have:
- * ASSIGNMENT_PROXY
- * expression proxy (an expression proxy)
- */
-
- /*
- * Next valid for expression stack. This is kept as a stack also.
- * As the expressions come in, the appropriate order (in reverse)
- * of expression types will be pushed, and then popped as they
- * come in.
- *
- * Since we can't have an array list of ints, will simulate the
- * stack here.
- */
- private ForExpression[] nextForExpressionStack = new ForExpression[30];
- private int nextForExpressionStackPos = -1; // Position of top entry in stack.
- private boolean expressionValid = true; // Is the expression currently valid.
- private String invalidMsg = null; // Msg for being invalid if default msg not sufficient.
- private List expressionProxies; // List of expression proxies. The index of the proxy is its id. This list must never shrink in size.
-
- // A MarkEntry. To allow restore in case of error.
- private static class MarkEntry {
- public int markID;
- public int controlStackPos; // Position of control stack at time of mark.
- public int nextExpressionStackPos; // Position of nextForExpression stack at time of mark.
- public int expressionProxiesPos; // Position of expressionProxies list at time of mark.
- }
-
- private int highestMarkID = 0; // Next mark id. '0' is invalid, as in no marks. This is incremented for each new mark. Never decremented.
- private MarkEntry currentMarkEntry; // Just a convienence to the current mark entry so no need to look into the list every time.
- private List markEntries; // Stack of mark entries.
-
- // This class is here so we can add our special internal ForExpression: PROCESS_EXPRESSION. These are never used outside Expression.
- private static class ExpressionEnum extends ForExpression {
-
- public ExpressionEnum(int value, String name) {
- super(value, name);
- }
-
- }
-
- // This is pushed onto the next expression stack, and when it is popped, then the expression is complete and ready to be pushed to the proxy side.
- private static final ForExpression PROCESS_EXPRESSION = new ExpressionEnum(Integer.MIN_VALUE, "Process Expression"); //$NON-NLS-1$
-
- // This is pushed onto the next expression stack for end block and will test if this there to make sure that it is being called correctly.
- private static final ForExpression BLOCKEND_EXPRESSION = new ExpressionEnum(PROCESS_EXPRESSION.getValue()-2, "End Block Expression"); //$NON-NLS-1$
-
- // This is pushed onto the next expression stack for end try and will test if this there to make sure that it is being called correctly.
- private static final ForExpression TRYEND_EXPRESSION = new ExpressionEnum(BLOCKEND_EXPRESSION.getValue()-1, "End Try Expression"); //$NON-NLS-1$
-
- // This is pushed onto the next expression stack for catch and will test if this there to make sure that it is being called correctly.
- private static final ForExpression TRYCATCH_EXPRESSION = new ExpressionEnum(TRYEND_EXPRESSION.getValue()-1, "Catch Expression"); //$NON-NLS-1$
-
-
- // This is pushed onto the next expression stack for begin thread transfer and will test if this there to make sure that it is being called correctly.
- private static final ForExpression THREADTRANSFER_EXPRESSION = new ExpressionEnum(TRYCATCH_EXPRESSION.getValue()-1, "Catch Expression"); //$NON-NLS-1$
-
- // This is pushed onto the next expression stack for end subexpression and will test if this there to make sure that it is being called correctly.
- private static final ForExpression SUBEXPRESSIONEND_EXPRESSION = new ExpressionEnum(THREADTRANSFER_EXPRESSION.getValue()-2, "End Subexpression"); //$NON-NLS-1$
-
- /**
- * Check the for expression, and if legal, set to the next valid for expression type,
- * if it can. If the stack entry is ROOTEXPRESSION, and the forExpression is ROOTEXPRESSION,
- * then the expression is allowed, but it is not popped. It must be popped later when appropriate.
- * true
if the top expression equals the parameter passed in.
- *
- * @since 1.0.0
- */
- protected final boolean peekForExpression(ForExpression forExpression) {
- if (expressionValid) {
- if (nextForExpressionStackPos == -1)
- if (forExpression == ForExpression.ROOTEXPRESSION)
- return true; // valid. We are at the root (i.e. nothing is waiting).
- else
- ; // invalid. drop through
- else if (nextForExpressionStack[nextForExpressionStackPos] == forExpression)
- return true; // Valid, the top expression matched.
- }
- return false;
- }
-
- /**
- * Mark this expression as now invalid.
- */
- protected final void markInvalid() {
- expressionValid = false;
- }
-
- /**
- * Mark this expression as now invalid, but supply a message to go with it.
- *
- * @param msg
- *
- * @since 1.0.0
- */
- protected final void markInvalid(String msg) {
- invalidMsg = msg;
- markInvalid();
- }
-
- public void close() {
- nextForExpressionStackPos = -1;
- controlStack.clear();
- if (expressionProxies != null)
- markAllProxiesNotResolved(expressionProxies); // They weren't processed, close must of been called early.
- expressionProxies = null;
- markEntries = null;
- expressionValid = false;
- closeProxy();
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#isValid()
- */
- public boolean isValid() {
- return expressionValid;
- }
-
- /*
- * Check if the pending expression is ready for evaluation.
- * It is complete if the next entry on the stack is a PROCESS_EXPRESSION
- */
- private boolean expressionReady() {
- if (nextForExpressionStackPos >= 0 && nextForExpressionStack[nextForExpressionStackPos] == PROCESS_EXPRESSION) {
- checkForExpression(PROCESS_EXPRESSION); // pop it
- return true;
- } else
- return false;
- }
-
- /*
- * Push the next expression type.
- */
- private void pushForExpression(ForExpression nextExpression) {
- if (++nextForExpressionStackPos >= nextForExpressionStack.length) {
- // Increase stack size.
- ForExpression[] newStack = new ForExpression[nextForExpressionStackPos*2]; // So room to grow without excessive allocations.
- System.arraycopy(nextForExpressionStack, 0, newStack, 0, nextForExpressionStack.length);
- nextForExpressionStack = newStack;
- }
- nextForExpressionStack[nextForExpressionStackPos] = nextExpression;
- }
-
- /*
- * Check if expression is complete, and if it is, process it.
- */
- private void processExpression() {
- while (expressionReady()) {
- try {
- // We've received all of the expressions for the expression, so process it.
- int expType = ((InternalExpressionTypes) pop()).getValue();
- switch (expType) {
- case InternalExpressionTypes.CAST_EXPRESSION_VALUE:
- pushCastToProxy((IProxyBeanType) pop());
- break;
- case InternalExpressionTypes.INSTANCEOF_EXPRESSION_VALUE:
- pushInstanceofToProxy((IProxyBeanType) pop());
- break;
- case InternalExpressionTypes.PREFIX_EXPRESSION_VALUE:
- pushPrefixToProxy((PrefixOperator)pop());
- break;
- case InternalExpressionTypes.INFIX_EXPRESSION_VALUE:
- pushInfixToProxy((InfixOperator) pop(), (InternalInfixOperandType) pop());
- break;
- case InternalExpressionTypes.ARRAY_ACCESS_EXPRESSION_VALUE:
- pushArrayAccessToProxy(((Integer) pop()).intValue());
- break;
- case InternalExpressionTypes.ARRAY_CREATION_EXPRESSION_VALUE:
- pushArrayCreationToProxy((IProxyBeanType) pop(), ((Integer) pop()).intValue());
- break;
- case InternalExpressionTypes.ARRAY_INITIALIZER_EXPRESSION_VALUE:
- pushArrayInitializerToProxy((IProxyBeanType) pop(), ((Integer) pop()).intValue(), ((Integer) pop()).intValue());
- break;
- case InternalExpressionTypes.CLASS_INSTANCE_CREATION_EXPRESSION_VALUE:
- pushClassInstanceCreationToProxy((IProxyBeanType) pop(), ((Integer) pop()).intValue());
- break;
- case InternalExpressionTypes.FIELD_ACCESS_EXPRESSION_VALUE:
- pushFieldAccessToProxy(pop(), ((Boolean) pop()).booleanValue());
- break;
- case InternalExpressionTypes.METHOD_EXPRESSION_VALUE:
- pushMethodInvocationToProxy(pop(), ((Boolean) pop()).booleanValue(), ((Integer) pop()).intValue());
- break;
- case InternalExpressionTypes.CONDITIONAL_EXPRESSION_VALUE:
- pushConditionalToProxy((InternalConditionalOperandType) pop());
- break;
- case InternalExpressionTypes.ASSIGNMENT_PROXY_EXPRESSION_VALUE:
- pushAssignmentToProxy((ExpressionProxy) pop());
- break;
- case InternalExpressionTypes.ASSIGNMENT_EXPRESSION_VALUE:
- pushAssignmentToProxy();
- break;
- case InternalExpressionTypes.BLOCK_END_EXPRESSION_VALUE:
- pushBlockEndToProxy(((Integer) pop()).intValue());
- break;
- case InternalExpressionTypes.TRY_END_EXPRESSION_VALUE:
- pushTryEndToProxy(((Integer) pop()).intValue());
- break;
- case InternalExpressionTypes.THROW_EXPRESSION_VALUE:
- pushThrowToProxy();
- break;
- case InternalExpressionTypes.IF_TEST_EXPRESSION_VALUE:
- pushIfTestToProxy();
- break;
- case InternalExpressionTypes.IF_ELSE_EXPRESSION_VALUE:
- pushIfElseToProxy((InternalIfElseOperandType) pop());
- break;
- case InternalExpressionTypes.SUBEXPRESSION_END_EXPRESSION_VALUE:
- pushSubexpressionEndToProxy(((Integer) pop()).intValue());
- break;
- default:
- internalProcessUnknownExpressionType(expType);
- break;
- }
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
- }
-
-
- private void internalProcessUnknownExpressionType(int expressionType) throws IllegalArgumentException {
- if (!processUnknownExpressionType(expressionType))
- throw new IllegalArgumentException();
- }
-
- /**
- * An unknown expression type was found in the processing of expression stack. Subclasses can override
- * to process new types of expressions.
- * true
if they processed the expression type. If they return false
- * it means they didn't understand it either and we should do default processing for unknow type.
- * @param expressionType
- * @return true
if type was processed, false
if not known by subclass either.
- *
- * @since 1.0.0
- */
- protected boolean processUnknownExpressionType(int expressionType) {
- return false;
- }
-
- /**
- * Create the expression.
- *
- * @param registry
- *
- * @since 1.0.0
- */
- protected Expression(ProxyFactoryRegistry registry) {
- this.registry = registry;
- this.beanProxyFactory = this.registry.getBeanProxyFactory();
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#getRegistry()
- */
- public ProxyFactoryRegistry getRegistry() {
- return registry;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#invokeExpression()
- */
- public final void invokeExpression() throws ThrowableProxy, IllegalStateException, NoExpressionValueException {
- try {
- checkForExpression(ForExpression.ROOTEXPRESSION); // We are at the root.
- popForExpression(); // Get rid of any intermediate roots.
- checkForExpression(ForExpression.ROOTEXPRESSION); // We should be at true root now. We don't have more than one intermediate root pushed in sequence.
- List proxies = expressionProxies;
- expressionProxies = null;
- pushInvoke(processExpressionProxyCallbacks(proxies), proxies);
- } finally {
- markInvalid(); // Mark invalid so any new calls after this will fail.
- close();
- }
- }
-
- /*
- * Process the expression proxy callbacks, if any.
- * @return the number of proxies that have callbacks.
- */
- private int processExpressionProxyCallbacks(List proxies) {
- if (proxies != null) {
- // Strip list down to only those with callbacks and send on.
- int proxiesWithCallbacks = 0;
- for (ListIterator eps = proxies.listIterator(); eps.hasNext();) {
- ExpressionProxy proxy = (ExpressionProxy) eps.next();
- if (!proxy.hasListeners())
- eps.set(null); // Remove it from the list. No one cares.
- else
- proxiesWithCallbacks++;
- }
- return proxiesWithCallbacks;
- }
- return 0;
- }
-
- /**
- * Called to validate this is a valid proxy for this expression. This could happen
- * if a proxy from another expression is sent to this expression. If the proxy
- * is a bean proxy or is an expression proxy for this expression, then this
- * just returns. Else it will throw the {@link IllegalArgumentException}.
- * @param proxy
- * @throws IllegalArgumentException if the proxy is an expression proxy for another expression.
- *
- * @since 1.1.0.1
- */
- private void validateProxy(IProxy proxy) throws IllegalArgumentException {
- if (proxy != null && (proxy.isExpressionProxy() && ((ExpressionProxy) proxy).getExpression() != this))
- throw new IllegalArgumentException(ProxyMessages.Expression_InvalidProxy);
- }
-
- /**
- * Called by subclass to fill in the value of an expression proxy. See {@link Expression#pullProxyValue(int, List))} for an example of who would call it.
- * @param ep
- * @param beanproxy
- *
- * @since 1.1.0
- */
- protected void fireProxyResolved(ExpressionProxy ep, IBeanProxy beanproxy) {
- ep.fireResolved(beanproxy);
- }
-
- /**
- * Called by subclass to fire proxy was not resolved. See {@link Expression#pullProxyValue(int, List))} for an example of who would call it.
- * @param ep
- *
- * @since 1.1.0
- */
- protected void fireProxyNotResolved(ExpressionProxy ep) {
- ep.fireNotResolved();
- }
-
- /**
- * Called by subclass to fire proxy resolved to a void return type. See {@link Expression#pullProxyValue(int, List))} for an example of who would call it.
- * @param ep
- *
- * @since 1.1.0
- */
- protected void fireProxyVoid(ExpressionProxy ep) {
- ep.fireVoidResolved();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#getExpressionValue()
- */
- public final IBeanProxy getExpressionValue() throws ThrowableProxy, NoExpressionValueException, IllegalStateException {
- try {
- checkForExpression(ForExpression.ROOTEXPRESSION); // We are at the root.
- popForExpression(); // Get rid of any intermediate roots.
- checkForExpression(ForExpression.ROOTEXPRESSION); // We should be at true root now. We don't have more than one intermediate root pushed in sequence.
- List proxies = expressionProxies;
- expressionProxies = null;
- return pullProxyValue(processExpressionProxyCallbacks(proxies), proxies); // Get the top value.
- } finally {
- markInvalid(); // Mark invalid so any new calls after this will fail.
- close();
- }
- }
-
-
- /**
- * Mark the list of proxies as not resolved.
- *
- * @since 1.1.0
- */
- protected void markAllProxiesNotResolved(List proxies) {
- if (proxies != null) {
- for (ListIterator eps = proxies.listIterator(); eps.hasNext();) {
- ExpressionProxy proxy = (ExpressionProxy) eps.next();
- if (proxy != null && proxy.hasListeners())
- fireProxyNotResolved(proxy);
- }
- }
- }
-
- private int blockNumber = -1; // Current block number. This is always incrementing.
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createBlockBegin()
- */
- public final int createBlockBegin() throws IllegalStateException {
- try {
- // Blocks are special, they can be anywhere at root, of could be the true or else clause of an if/else.
- if (peekForExpression(ForExpression.ROOTEXPRESSION))
- checkForExpression(ForExpression.ROOTEXPRESSION);
- else if (peekForExpression(ForExpression.IF_TRUE))
- checkForExpression(ForExpression.IF_TRUE);
- else
- checkForExpression(ForExpression.IF_ELSE);
-
- pushForExpression(PROCESS_EXPRESSION);
- pushForExpression(BLOCKEND_EXPRESSION);
- pushForExpression(ForExpression.ROOTEXPRESSION);
-
- pushBlockBeginToProxy(++blockNumber);
- push(new Integer(blockNumber));
- push(InternalExpressionTypes.BLOCK_END_EXPRESSION);
- processExpression();
- return blockNumber;
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createBlockBreak(int)
- */
- public final void createBlockBreak(int blockNumber) throws IllegalStateException {
- try {
- checkForExpression(ForExpression.ROOTEXPRESSION);
- pushBlockBreakToProxy(blockNumber);
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createBlockEnd()
- */
- public final void createBlockEnd() throws IllegalStateException {
- try {
- checkForExpression(ForExpression.ROOTEXPRESSION);
- popForExpression(); // Remove the root expression since block is done.
- checkForExpression(BLOCKEND_EXPRESSION); // This needs to be next for it to be valid.
- processExpression(); // Now let it handle the previously pushed end block, containing the block number being ended.
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createArrayAccess(int, int)
- */
- public final void createArrayAccess(ForExpression forExpression, int indexCount) {
- try {
- checkForExpression(forExpression);
- pushForExpression(PROCESS_EXPRESSION);
- int i = indexCount;
- while (i-- > 0)
- pushForExpression(ForExpression.ARRAYACCESS_INDEX);
- pushForExpression(ForExpression.ARRAYACCESS_ARRAY);
-
- push(indexCount == 1 ? ARRAYACCESS_INDEX_1 : new Integer(indexCount));
- push(InternalExpressionTypes.ARRAY_ACCESS_EXPRESSION);
- processExpression(); // See if previous expression is ready for processing.
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createArrayCreation(int, java.lang.String, int)
- */
- public final void createArrayCreation(ForExpression forExpression, String type, int dimensionExpressionCount)
- throws IllegalStateException {
- pushArrayCreation(forExpression, getProxyBeanType(type), dimensionExpressionCount);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createArrayCreation(org.eclipse.jem.internal.proxy.initParser.tree.ForExpression, org.eclipse.jem.internal.proxy.core.IProxyBeanType, int)
- */
- public final void createArrayCreation(ForExpression forExpression, IProxyBeanType type, int dimensionExpressionCount)
- throws IllegalStateException, IllegalArgumentException {
- pushArrayCreation(forExpression, type, dimensionExpressionCount);
- }
-
- private void pushArrayCreation(ForExpression forExpression, IProxyBeanType type, int dimensionExpressionCount) throws IllegalStateException, IllegalArgumentException {
- try {
- checkForExpression(forExpression);
- validateProxy(type);
- switch (dimensionExpressionCount) {
- case 0:
- push(ARRAY_CREATION_DIMENSION_0);
- break;
- case 1:
- push(ARRAY_CREATION_DIMENSION_1);
- break;
- default:
- push(new Integer(dimensionExpressionCount));
- break;
- }
- push(type);
- push(InternalExpressionTypes.ARRAY_CREATION_EXPRESSION);
-
- pushForExpression(PROCESS_EXPRESSION);
- if (dimensionExpressionCount == 0)
- pushForExpression(ARRAY_INITIALIZER);
- else {
- while (dimensionExpressionCount-- > 0)
- pushForExpression(ForExpression.ARRAYCREATION_DIMENSION);
- }
- processExpression(); // See if previous expression is ready for processing.
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createArrayInitializer(int)
- */
- public final void createArrayInitializer(int expressionCount) throws IllegalStateException {
- try {
- // This is special, we could be waiting for an array initializer or an array initializer expression.
- // We will peek to see what it is and handle it.
- if (peekForExpression(ARRAY_INITIALIZER))
- checkForExpression(ARRAY_INITIALIZER);
- else
- checkForExpression(ForExpression.ARRAYINITIALIZER_EXPRESSION);
-
- // At this point in time that stack may either have:
- // array_type, array_creation
- // strip_count, array_type, array_initializer
- // So we can get the array type from peek(2), and get the command type from peek(1).
- // Then if the command type is array_creation, strip_count will be inited to 0, while
- // else it will be inited to peek(3). From that we can increment the strip_count to
- // use for this initializer.
- //
- // We need to peek here because we will be adding various pushes to the stack and we
- // need to get the info while it is still at the top of the stack.
- Object arrayType = peek(2);
- int stripCount = 0;
- if (peek(1) == InternalExpressionTypes.ARRAY_INITIALIZER_EXPRESSION)
- stripCount = ((Integer) peek(3)).intValue();
-
- switch (expressionCount) {
- case 0:
- push(ARRAYINITIALIZER_COUNT_0);
- break;
- case 1:
- push(ARRAYINITIALIZER_COUNT_1);
- break;
- case 2:
- push(ARRAYINITIALIZER_COUNT_2);
- break;
- default:
- push(new Integer(expressionCount));
- break;
- }
-
- if (arrayType instanceof String) {
- String at = (String) arrayType;
- int i = at.lastIndexOf("[]"); //$NON-NLS-1$
- if (i == -1)
- throw new IllegalArgumentException(MessageFormat.format(
- ProxyMessages.Expression_ArrayTypeNotAnArray_EXC_, new Object[] { arrayType}));
- arrayType = getProxyBeanType(at);
- } else if (!(arrayType instanceof IProxyBeanType)) {
- throw new IllegalArgumentException(MessageFormat.format(
- ProxyMessages.Expression_ArrayTypeNotAnArray_EXC_, new Object[] { arrayType}));
- }
- push(new Integer(++stripCount));
- push(arrayType);
- push(InternalExpressionTypes.ARRAY_INITIALIZER_EXPRESSION);
-
- pushForExpression(PROCESS_EXPRESSION);
- while (expressionCount-- > 0)
- pushForExpression(ForExpression.ARRAYINITIALIZER_EXPRESSION);
-
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createCastExpression(int, java.lang.String)
- * A cast expression has one nested expression.
- */
- public final void createCastExpression(ForExpression forExpression, String type) throws IllegalStateException {
- pushCast(forExpression, getProxyBeanType(type)); // Push this onto the local stack to wait for completion.
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createCastExpression(org.eclipse.jem.internal.proxy.initParser.tree.ForExpression, org.eclipse.jem.internal.proxy.core.IProxyBeanType)
- */
- public final void createCastExpression(ForExpression forExpression, IProxyBeanType type) throws IllegalStateException, IllegalArgumentException {
- pushCast(forExpression, type); // Push this onto the local stack to wait for completion.
- }
-
- /*
- * Push for a cast.
- */
- private void pushCast(ForExpression forExpression, IProxyBeanType type) throws IllegalStateException, IllegalArgumentException {
- try {
- checkForExpression(forExpression);
- validateProxy(type);
- push(type);
- push(InternalExpressionTypes.CAST_EXPRESSION);
- pushForExpression(PROCESS_EXPRESSION);
- pushForExpression(ForExpression.CAST_EXPRESSION); // The next expression must be for the cast expression.
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createClassInstanceCreation(int, java.lang.String, int)
- */
- public final void createClassInstanceCreation(ForExpression forExpression, String type, int argumentCount)
- throws IllegalStateException {
- pushClassInstanceCreation(forExpression, getProxyBeanType(type), argumentCount); // Push this onto the local stack to wait for completion.
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createClassInstanceCreation(org.eclipse.jem.internal.proxy.initParser.tree.ForExpression, org.eclipse.jem.internal.proxy.core.IProxyBeanType, int)
- */
- public final void createClassInstanceCreation(ForExpression forExpression, IProxyBeanType type, int argumentCount)
- throws IllegalStateException, IllegalArgumentException {
- pushClassInstanceCreation(forExpression, type, argumentCount); // Push this onto the local stack to wait for completion.
- }
-
- /*
- * Push for a class instance creation
- */
- private void pushClassInstanceCreation(ForExpression forExpression, IProxyBeanType type, int argumentCount) throws IllegalStateException, IllegalArgumentException {
- try {
- checkForExpression(forExpression);
- validateProxy(type);
- switch (argumentCount) {
- case 0:
- push(CLASS_INSTANCE_CREATION_ARGUMENTS_0);
- break;
- case 1:
- push(CLASS_INSTANCE_CREATION_ARGUMENTS_1);
- break;
- default:
- push(new Integer(argumentCount));
- break;
- }
- push(type);
- push(InternalExpressionTypes.CLASS_INSTANCE_CREATION_EXPRESSION);
-
- pushForExpression(PROCESS_EXPRESSION);
- while (argumentCount-- > 0)
- pushForExpression(ForExpression.CLASSINSTANCECREATION_ARGUMENT);
- processExpression(); // See if previous expression is ready for processing.
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createConditionalExpression(int)
- */
- public final void createConditionalExpression(ForExpression forExpression) throws IllegalStateException {
- try {
- checkForExpression(forExpression);
- pushForExpression(PROCESS_EXPRESSION);
- pushForExpression(ForExpression.CONDITIONAL_FALSE);
- pushForExpression(PROCESS_EXPRESSION);
- pushForExpression(ForExpression.CONDITIONAL_TRUE);
- pushForExpression(PROCESS_EXPRESSION);
- pushForExpression(ForExpression.CONDITIONAL_CONDITION);
-
- push(InternalConditionalOperandType.CONDITIONAL_FALSE);
- push(InternalExpressionTypes.CONDITIONAL_EXPRESSION);
- push(InternalConditionalOperandType.CONDITIONAL_TRUE);
- push(InternalExpressionTypes.CONDITIONAL_EXPRESSION);
- push(InternalConditionalOperandType.CONDITIONAL_TEST);
- push(InternalExpressionTypes.CONDITIONAL_EXPRESSION);
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createFieldAccess(int, java.lang.String, boolean)
- */
- public final void createFieldAccess(ForExpression forExpression, String fieldName, boolean hasReceiver) throws IllegalStateException, IllegalArgumentException {
- try {
- // Only for string fieldnames is this invalid when no receiver because no way to determine receiver. (Don't handle implicit "this" yet for fields).
- // For the accessor that takes a IFieldProxy we can get away with no receiver because the field proxy can determine if static or not, and if not
- // static it will fail at evaluation time.
- if (!hasReceiver)
- throw new IllegalArgumentException(MessageFormat.format(
- ProxyMessages.Expression_CannotHandleNoReceiveOnFieldAccess_EXC_, new Object[] { fieldName}));
- pushFieldAccess(forExpression, fieldName, hasReceiver);
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createIfElse(boolean)
- */
- public final void createIfElse(boolean hasElseClause) throws IllegalStateException {
- try {
- checkForExpression(ForExpression.ROOTEXPRESSION);
-
- pushForExpression(PROCESS_EXPRESSION);
- if (hasElseClause) {
- pushForExpression(ForExpression.IF_ELSE);
- }
- pushForExpression(PROCESS_EXPRESSION);
- pushForExpression(ForExpression.IF_TRUE);
- pushForExpression(PROCESS_EXPRESSION);
- pushForExpression(ForExpression.IF_CONDITION);
-
- // We still push an else clause so that we know when finished. We don't have a pushForExpression for it because there
- // won't be any. But the else clause processing will be on the push stack so that we can clean up when end of if stmt occurs.
- push(InternalIfElseOperandType.ELSE_CLAUSE);
- push(InternalExpressionTypes.IF_ELSE_EXPRESSION);
-
- push(InternalIfElseOperandType.TRUE_CLAUSE);
- push(InternalExpressionTypes.IF_ELSE_EXPRESSION);
- push(InternalExpressionTypes.IF_TEST_EXPRESSION);
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /*
- * Push the field access.
- * @param forExpression
- * @param field String if field name, or IProxyField.
- * @param hasReceiver
- * @throws IllegalAccessException
- *
- * @since 1.1.0
- */
- private void pushFieldAccess(ForExpression forExpression, Object field, boolean hasReceiver) throws IllegalStateException {
- try {
- checkForExpression(forExpression);
- push(hasReceiver ? Boolean.TRUE : Boolean.FALSE); // We have a receiver
- push(field);
- push(InternalExpressionTypes.FIELD_ACCESS_EXPRESSION);
-
- pushForExpression(PROCESS_EXPRESSION);
- if (hasReceiver)
- pushForExpression(ForExpression.FIELD_RECEIVER);
- processExpression(); // See if previous expression is ready for processing.
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createInfixExpression(int, int, int)
- */
- public final void createInfixExpression(ForExpression forExpression, InfixOperator operator, int extendedOperandCount) throws IllegalStateException {
- try {
- checkForExpression(forExpression);
- push(InternalInfixOperandType.INFIX_LAST_OPERAND);
- push(operator);
- push(InternalExpressionTypes.INFIX_EXPRESSION);
- int i = extendedOperandCount;
- while (i-- > 0) {
- push(InternalInfixOperandType.INFIX_OTHER_OPERAND);
- push(operator);
- push(InternalExpressionTypes.INFIX_EXPRESSION);
- }
- push(InternalInfixOperandType.INFIX_LEFT_OPERAND);
- push(operator);
- push(InternalExpressionTypes.INFIX_EXPRESSION);
-
- i = extendedOperandCount;
- while (i-- > 0) {
- pushForExpression(PROCESS_EXPRESSION);
- pushForExpression(ForExpression.INFIX_EXTENDED);
- }
- pushForExpression(PROCESS_EXPRESSION);
- pushForExpression(ForExpression.INFIX_RIGHT);
- pushForExpression(PROCESS_EXPRESSION);
- pushForExpression(ForExpression.INFIX_LEFT);
- processExpression(); // See if previous expression is ready for processing.
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createInstanceofExpression(int, java.lang.String)
- */
- public final void createInstanceofExpression(ForExpression forExpression, String type) throws IllegalStateException {
- pushInstanceof(forExpression, getProxyBeanType(type)); // Push this onto the local stack to wait for completion.
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createInstanceofExpression(org.eclipse.jem.internal.proxy.initParser.tree.ForExpression, org.eclipse.jem.internal.proxy.core.IProxyBeanType)
- */
- public final void createInstanceofExpression(ForExpression forExpression, IProxyBeanType type) throws IllegalStateException, IllegalArgumentException {
- pushInstanceof(forExpression, type); // Push this onto the local stack to wait for completion.
- }
-
- /*
- * Push for a cast.
- */
- private void pushInstanceof(ForExpression forExpression, IProxyBeanType type) throws IllegalStateException, IllegalArgumentException {
- try {
- checkForExpression(forExpression);
- validateProxy(type);
- push(type);
- push(InternalExpressionTypes.INSTANCEOF_EXPRESSION);
- pushForExpression(PROCESS_EXPRESSION);
- pushForExpression(ForExpression.INSTANCEOF_VALUE); // The next expression must be for the instance of expression.
- processExpression();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createMethodInvocation(int, java.lang.String, boolean, int)
- */
- public final void createMethodInvocation(ForExpression forExpression, String name, boolean hasReceiver, int argumentCount)
- throws IllegalStateException, IllegalArgumentException {
- try {
- // Only for string methodnames is this invalid when no receiver because no way to determine receiver. (Don't handle implicit "this" yet for methods).
- // For the accessor that takes a IFieldProxy we can get away with no receiver because the field proxy can determine if static or not, and if not
- // static it will fail at evaluation time.
- if (!hasReceiver)
- throw new IllegalArgumentException(MessageFormat.format(
- ProxyMessages.Expression_MethodsNeedReceiver_EXC_, new Object[] { name}));
-
- pushMethodInvocation(forExpression, name, hasReceiver, argumentCount);
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /**
- * @param forExpression
- * @param method String for method name, IMethodProxy otherwise.
- * @param hasReceiver
- * @param argumentCount
- * @throws ThrowableProxy
- * @throws NoExpressionValueException
- *
- * @since 1.1.0
- */
- private void pushMethodInvocation(ForExpression forExpression, Object method, boolean hasReceiver, int argumentCount) throws IllegalArgumentException, IllegalStateException {
- try {
- checkForExpression(forExpression);
- switch (argumentCount) {
- case 0:
- push(METHOD_ARGUMENTS_0);
- break;
- case 1:
- push(METHOD_ARGUMENTS_1);
- break;
- default:
- push(new Integer(argumentCount));
- break;
- }
- push(hasReceiver ? Boolean.TRUE : Boolean.FALSE);
- push(method);
- push(InternalExpressionTypes.METHOD_EXPRESSION);
-
- pushForExpression(PROCESS_EXPRESSION);
- while (argumentCount-- > 0)
- pushForExpression(ForExpression.METHOD_ARGUMENT);
- if (hasReceiver)
- pushForExpression(ForExpression.METHOD_RECEIVER);
- processExpression(); // See if previous expression is ready for processing.
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IExpression#createPrefixExpression(int, org.eclipse.jem.internal.proxy.initParser.tree.PrefixOperator)
- */
- public final void createPrefixExpression(ForExpression forExpression, PrefixOperator operator) throws IllegalStateException {
- try {
- checkForExpression(forExpression);
- push(operator);
- push(InternalExpressionTypes.PREFIX_EXPRESSION);
-
- pushForExpression(PROCESS_EXPRESSION);
- pushForExpression(ForExpression.PREFIX_OPERAND);
- processExpression(); // See if previous expression is ready for processing.
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /**
- * Create a new instance using the initialization string. The result must be compatible with the
- * given type. This is not on the IExpression interface because it is not for use of regular
- * customers. It is here for the allocation processer to create entries that are just strings.
- * null
if no parameter types.
- * @return
- *
- * @throws IllegalArgumentException
- * @since 1.1.0
- */
- public final IProxyMethod createMethodExpressionProxy(IProxyBeanType declaringType, String methodName, IProxyBeanType[] parameterTypes) throws IllegalArgumentException{
- validateProxy(declaringType);
- if (parameterTypes != null && parameterTypes.length > 0) {
- for (int i = 0; i < parameterTypes.length; i++) {
- validateProxy(parameterTypes[i]);
- }
- }
- ExpressionProxy proxy = allocateExpressionProxy(METHOD_EXPRESSION_PROXY);
- // This can be sent at any time. It doesn't matter what is on the expression stack. It will be sent to be resolved immediately.
- pushMethodToProxy(proxy, declaringType, methodName, parameterTypes);
- return (IProxyMethod) proxy;
- }
-
- /**
- * Called by registries to create an expression proxy for a field. It is not in the interface because it should
- * only be called by the proxy registry to create an expression proxy. It shouldn't be called outside of the registries
- * because there may already exist in the registry the true IFieldProxy, and that one should be used instead.
- *
- *
- * @throws IllegalStateException
- * @throws ThrowableProxy Thrown if there was an exception with the remote vm during this request.
- * @since 1.1.0
- */
- public final void beginTransferThread() throws IllegalStateException, ThrowableProxy {
- try {
- pushForExpression(THREADTRANSFER_EXPRESSION);
- pushBeginTransferThreadToProxy();
- } catch (RuntimeException e) {
- markInvalid();
- throw e;
- }
- }
-
- /**
- * Transfer the expression to the current thread.
- *
- * ... expression stuff ...
- * expression.beginTransferThread()
- * ... do what is necessary to get to the other thread ...
- * ... on other thread:
- * expression.transferThread();
- * try {
- * ... do your expression stuff on this thread ...
- * } finally {
- * expression.beginTransferThread(); // This is to return it to old thread.
- * }
- * ... tell old thread to pick up ...
- * ... back on old thread:
- * expression.transferThread();
- * ... do more expression stuff ...
- * expression.invokeExpression();
- *
null
if exception is not to be assigned.
- *
- * @since 1.1.0
- */
- protected abstract void pushTryCatchClauseToProxy(int tryNumber, IProxyBeanType exceptionType, ExpressionProxy ep);
-
- /**
- * Push the finally clause to proxy.
- * @param tryNumber
- *
- * @since 1.1.0
- */
- protected abstract void pushTryFinallyClauseToProxy(int tryNumber);
-
- /**
- * Push try end to proxy.
- * @param tryNumber
- *
- * @since 1.1.0
- */
- protected abstract void pushTryEndToProxy(int tryNumber);
-
- /**
- * Push the throw of the exception to proxy.
- * @param exception
- *
- * @since 1.1.0
- */
- protected abstract void pushThrowToProxy();
-
- /**
- * Push a rethrow to proxy.
- * @param tryNumber
- *
- * @since 1.1.0
- */
- protected abstract void pushRethrowToProxy(int tryNumber);
-
- /**
- * Push the BeanType Expression proxy to be resolved on the execution side.
- * @param proxy
- *
- * @since 1.1.0
- */
- protected abstract void pushBeanTypeToProxy(IBeanTypeExpressionProxy proxy);
-
- /**
- * Push the Method Expression proxy to be resolved on the execution side.
- * @param proxy
- * @param declaringType
- * @param methodName
- * @param parameterTypes parameter types or null
if no parameters.
- *
- * @since 1.1.0
- */
- protected abstract void pushMethodToProxy(ExpressionProxy proxy, IProxyBeanType declaringType, String methodName, IProxyBeanType[] parameterTypes);
-
- /**
- * Push the Field Expression Proxy to be resolved on the execution side.
- * @param proxy
- * @param declaringType
- * @param fieldName
- *
- * @since 1.1.0
- */
- protected abstract void pushFieldToProxy(ExpressionProxy proxy, IProxyBeanType declaringType, String fieldName);
-
- /**
- * Push the If test condition to proxy.
- *
- * @since 1.1.0
- */
- protected abstract void pushIfTestToProxy();
-
- /**
- * Push a true or else clause to proxy.
- * @param clauseType
- *
- * @since 1.1.0
- */
- protected abstract void pushIfElseToProxy(InternalIfElseOperandType clauseType);
-
- /**
- * Push to proxy a new instance using an initialization string.
- * @param initializationString
- * @param resultType
- *
- * @since 1.1.0
- */
- protected abstract void pushNewInstanceToProxy(String initializationString, IProxyBeanType resultType);
-
- /**
- * Push the mark id to proxy.
- *
- * @param markID
- *
- * @since 1.1.0
- */
- protected abstract void pushMarkToProxy(int markID);
-
- /**
- * Push the end mark id to proxy.
- *
- * @param markID
- * @param restore true
if this is a restore due to error, false
if this is just a normal end mark.
- *
- * @since 1.1.0
- */
- protected abstract void pushEndmarkToProxy(int markID, boolean restore);
-
- /**
- * Push the begin transfer thread to proxy.
- *
- *
- * @since 1.1.0
- */
- protected abstract void pushBeginTransferThreadToProxy() throws ThrowableProxy;
-
- /**
- * Push the actual transfer to the current thread to proxy.
- *
- *
- * @since 1.1.0
- */
- protected abstract void pushTransferThreadToProxy();
-
- /**
- * Push the subexpression begin to proxy.
- * @param subexpressionNumber
- *
- * @since 1.1.0
- */
- protected abstract void pushSubexpressionBeginToProxy(int subexpressionNumber);
-
- /**
- * Push the subexpression end to proxy.
- * @param subexpressionNumber
- *
- * @since 1.1.0
- */
- protected abstract void pushSubexpressionEndToProxy(int subexpressionNumber);
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ExpressionProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ExpressionProxy.java
deleted file mode 100644
index 94ea28cfe..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ExpressionProxy.java
+++ /dev/null
@@ -1,349 +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: ExpressionProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:05 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-import java.util.EventObject;
-import java.util.logging.Level;
-
-
-/**
- * This is a proxy for an IExpression evaluation value. It is used as a place holder proxy value for result of an expression, and
- * then the value can be used in a later expression, or at the end, it can callback and return a proxy in the IDE
- * side in a callback for usage later on outside of the IExpression.
- * serialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = -2305781662465107377L;
- private final IBeanProxy proxy;
-
- /**
- * @param source the expression proxy for the event.
- * @param proxy the bean proxy the expression proxy (source) resolved to.
- *
- * @since 1.1.0
- */
- public ProxyEvent(ExpressionProxy source, IBeanProxy proxy) {
- super(source);
- this.proxy = proxy;
- }
-
- /**
- * Construct the event with no proxy. Used for not resolved and void.
- * @param source
- *
- * @since 1.1.0
- */
- public ProxyEvent(ExpressionProxy source) {
- this(source, null);
- }
-
- /**
- * Get the proxy value that the expression proxy (source) resolved to.
- * @return
- *
- * @since 1.1.0
- */
- public IBeanProxy getProxy() {
- return proxy;
- }
- }
-
- /**
- * Listener for expression proxy events.
- *
- * @since 1.1.0
- */
- public interface ProxyListener {
- /**
- * The expression proxy has been resolved. The event contains the resolved proxy.
- * At this point, any listeners should no longer hold onto the ExpressionProxy
- * because it is now invalid. They should hold onto the resolved bean proxy instead.
- *
- * @param event
- *
- * @since 1.1.0
- */
- public void proxyResolved(ProxyEvent event);
-
- /**
- * This is called for ExpressionProxies that have a callback listener, but the proxy
- * was never resolved. This means that the expression that assigns to the proxy was
- * not executed. In this case the event does not have a bean proxy in it.
- *
- * @param event
- *
- * @since 1.1.0
- */
- public void proxyNotResolved(ProxyEvent event);
-
- /**
- * This is called for ExpressionProxies that were assigned to an expression that
- * had a VOID
return type. This is usually for method invocations that
- * have a void return type. In this case the event does not have a bean proxy in it.
- * @param event
- *
- * @since 1.1.0
- */
- public void proxyVoid(ProxyEvent event);
- }
-
- /**
- * An implementation of ProxyListener that does nothing. It can be
- * used as a superclass for individual listeners that are only interested
- * in some of the events.
- *
- * @since 1.1.0
- */
- public static class ProxyAdapter implements ProxyListener {
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.ExpressionProxy.ProxyListener#proxyNotResolved(org.eclipse.jem.internal.proxy.core.ExpressionProxy.ProxyEvent)
- */
- public void proxyNotResolved(ProxyEvent event) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.ExpressionProxy.ProxyListener#proxyResolved(org.eclipse.jem.internal.proxy.core.ExpressionProxy.ProxyEvent)
- */
- public void proxyResolved(ProxyEvent event) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.ExpressionProxy.ProxyListener#proxyVoid(org.eclipse.jem.internal.proxy.core.ExpressionProxy.ProxyEvent)
- */
- public void proxyVoid(ProxyEvent event) {
- }
- }
-
- final private int proxyID;
- final private int proxyType;
- private ListenerList listenerList;
- private Expression expression;
-
- /**
- * Create with the given proxy id.
- * @param proxyid
- *
- * @since 1.1.0
- */
- public ExpressionProxy(int proxyid, int proxyType, Expression expression) {
- this.proxyID = proxyid;
- this.proxyType = proxyType;
- this.expression = expression;
- }
-
- /**
- * Get the expression this proxy is for.
- * @return
- *
- * @since 1.1.0
- */
- public Expression getExpression() {
- return expression;
- }
-
- /**
- * Used internally in expression to get the proxy type.
- * @return
- *
- * @since 1.1.0
- */
- protected final int getProxyType() {
- return proxyType;
- }
-
- /**
- * Return the proxy id.
- * @return
- *
- * @since 1.1.0
- */
- public final int getProxyID() {
- return proxyID;
- }
-
- /**
- * Add a listener. If listener already added, it has no effect.
- * @param listener
- *
- * @since 1.1.0
- */
- public void addProxyListener(ProxyListener listener) {
- if (listenerList == null)
- listenerList = new ListenerList();
- listenerList.add(listener);
- }
-
- /**
- * Remove a listener. If listener not already added, then no error.
- * @param listener
- *
- * @since 1.1.0
- */
- public void removeProxyListener(ProxyListener listener) {
- if (listenerList != null)
- listenerList.remove(listener);
- }
-
- /**
- * Used by internal subclasses or Expression to know if anyone is listening.
- * @return
- *
- * @since 1.1.0
- */
- protected final boolean hasListeners() {
- return listenerList != null && !listenerList.isEmpty();
- }
-
- /**
- * The proxy has been fired (one of the events has occurred). Subclasses should clean
- * up and not hold onto anything that would be expensive in case the proxy is still
- * held onto be someone. For example the default clears the listener list.
- * true
if accessible.
- */
- public boolean isAccessible() throws ThrowableProxy;
-
- /**
- * Set the accessible flag on the proxy.
- *
- * @param flag true
if accessible.
- * @throws ThrowableProxy
- */
- public void setAccessible(boolean flag) throws ThrowableProxy;
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IArrayBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IArrayBeanProxy.java
deleted file mode 100644
index af51c010e..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IArrayBeanProxy.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: IArrayBeanProxy.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:05 $
- */
-
-
-/**
- * Proxy wrappering an array.
- */
-public interface IArrayBeanProxy extends IBeanProxy {
- /**
- * Get the object at the specified index.
- */
- IBeanProxy get(int index) throws ThrowableProxy;
-
- IBeanProxy getCatchThrowableException(int index);
-
- /**
- * Get the object at the specified multi-dimensional index.
- * The array must be at least the number of dimensions specified,
- * and each index along the way must exist.
- * The number of dimensions can't be greater than the number
- * of dimensions of the real object.
- */
- IBeanProxy get(int [] indexes) throws ThrowableProxy;
-
- /**
- * Get a snapshot of the array. It will return an array of proxies of the
- * complete first dimension of the array. This is useful if you need
- * to be working with more than one entry of the array. You can save
- * accesses to the vm by doing this.
- * true
should wait for completion, false
don't necessarily wait. False is just
- * a suggestion. The factory may not permit not waiting. True must be honoured and it must wait.
- *
- * @since 1.0.2
- */
- public void terminateFactory(boolean wait);
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanTypeExpressionProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanTypeExpressionProxy.java
deleted file mode 100644
index 2726d05c6..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanTypeExpressionProxy.java
+++ /dev/null
@@ -1,32 +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: IBeanTypeExpressionProxy.java,v $
- * $Revision: 1.1 $ $Date: 2005/05/11 19:01:12 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-
-/**
- * An internal interface for the registries to create the appropriate beantype expression proxy.
- * Not to be implemented or referenced by customers.
- * @since 1.1.0
- */
-public interface IBeanTypeExpressionProxy extends IProxyBeanType {
-
- /**
- * Allow the expression to set the type name.
- * @param typeName
- *
- * @since 1.1.0
- */
- public void setTypeName(String typeName);
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanTypeProxy.java
deleted file mode 100644
index d9da12516..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IBeanTypeProxy.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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: IBeanTypeProxy.java,v $
- * $Revision: 1.10 $ $Date: 2006/05/17 20:13:05 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-import org.eclipse.jem.internal.proxy.common.AmbiguousMethodException;
-
-/**
- * A proxy for a BeanType (i.e. Java type/class). Creation date: (12/3/99 11:38:06 AM)
- *
- * @author: Joe Winchester
- */
-public interface IBeanTypeProxy extends IBeanProxy, IProxyBeanType {
-
- /**
- * Find the most compatible constructor (out of the declared constructors). This means it will
- * find either an exact match or an override that is compatible, e.g. X(Object j) is returned when looking with arg type of "java.lang.String".
- * @param argumentTypes array of arg types or null
if none. (In case of null, this is the default ctor, so just use that).
- * @return
- * @throws NoSuchMethodException
- * @throws AmbiguousMethodException
- * @throws IllegalAccessException
- *
- * @since 1.1.0
- */
- public IConstructorProxy getCompatibleConstructor(IBeanTypeProxy[] argumentTypes) throws AmbiguousMethodException, NoSuchMethodException, IllegalAccessException;
-
- /**
- * Find the most compatible public method, including inheritied. This means it will
- * find either an exact match or an override that is compatible, e.g. xyz(Object j) is returned when looking with arg type of "java.lang.String".
- * @param methodName
- * @param argumentTypes array of arg types or null
if none. (In case of null, just use getMethod(String methodName) since only one is compatible then.
- * @return
- * @throws AmbiguousMethodException
- * @throws NoSuchMethodException
- *
- * @since 1.1.0
- */
- public IMethodProxy getCompatibleMethod(String methodName, IBeanTypeProxy[] argumentTypes) throws AmbiguousMethodException, NoSuchMethodException;
-
- /**
- * Return the constructor proxy on the receiver with the specified arguments Creation date: (12/3/99 2:25:07 PM)
- */
- public IConstructorProxy getConstructorProxy(String[] argumentClassNames);
-
- /**
- * Return the constructor proxy on the receiver with the specified types Creation date: (12/3/99 2:25:07 PM)
- */
- public IConstructorProxy getConstructorProxy(IBeanTypeProxy[] argumentTypes);
-
- /**
- * Return an array of public constructors for this class.
- *
- * @return an array of constructor proxies or null
if an error.
- *
- * @since 1.1.0
- */
- public IConstructorProxy[] getConstructors();
-
- /**
- * Return the declared constructor proxy on the receiver with the specified arguments Creation date: (12/3/99 2:25:07 PM)
- */
- public IConstructorProxy getDeclaredConstructorProxy(String[] argumentClassNames);
-
- /**
- * Return the declared constructor proxy on the receiver with the specified types Creation date: (12/3/99 2:25:07 PM)
- */
- public IConstructorProxy getDeclaredConstructorProxy(IBeanTypeProxy[] argumentTypes);
-
- /**
- * Return an array of declared constructors for this class.
- *
- * @return an array of constructor proxies or null
if an error.
- *
- * @since 1.1.0
- */
- public IConstructorProxy[] getDeclaredConstructors();
-
- /**
- * Return the array of field proxies.
- * @return
- *
- * @since 1.1.0
- */
- public IFieldProxy[] getFields();
-
- /**
- * Return the array of declared field proxies.
- * @return
- *
- * @since 1.1.0
- */
- public IFieldProxy[] getDeclaredFields();
-
- /**
- * Return the fieldproxy on the receiver with the specified name Creation date: (12/3/99 2:25:07 PM)
- */
- public IFieldProxy getFieldProxy(String fieldName);
-
- /**
- * Return the declared fieldproxy on the receiver with the specified name
- */
- public IFieldProxy getDeclaredFieldProxy(String fieldName);
-
- /**
- * Return the method proxy on the receiver with the specified name and no arguments.
- *
- * @param methodName
- * @return
- * @since 1.0.0
- */
- public IMethodProxy getMethodProxy(String methodName);
-
- /**
- * Return the method proxy on the receiver with the qualified class names as string arguments
- *
- * @param methodName
- * @param argumentClassNames
- * @return
- * @since 1.0.0
- */
- public IMethodProxy getMethodProxy(String methodName, String[] argumentClassNames);
-
- /**
- * Return the method proxy on the receiver with the specified name and one argument
- *
- * @param methodName
- * @param argumentClassName
- * @return
- * @since 1.0.0
- */
- public IMethodProxy getMethodProxy(String methodName, String argumentClassName);
-
- /**
- * Return the method proxy on the receiver with the beanTypes as arguments
- *
- * @param methodName
- * @param argumentTypes
- * @return
- * @since 1.0.0
- */
- public IMethodProxy getMethodProxy(String methodName, IBeanTypeProxy[] argumentTypes);
-
- /**
- * Return an array of public methods for this class.
- *
- * @return an array of method proxies or null
if an error.
- *
- * @since 1.1.0
- */
- public IMethodProxy[] getMethods();
-
- /**
- * Return the declared method proxy on the receiver with the specified arguments Creation date: (12/3/99 2:25:07 PM)
- */
- public IMethodProxy getDeclaredMethodProxy(String methodName, String[] argumentClassNames);
-
- /**
- * Return the declared method proxy on the receiver with the specified types Creation date: (12/3/99 2:25:07 PM)
- */
- public IMethodProxy getDeclaredMethodProxy(String methodName, IBeanTypeProxy[] argumentTypes);
-
- /**
- * Return an array of declared methods for this class.
- *
- * @return an array of method proxies or null
if an error.
- *
- * @since 1.1.0
- */
- public IMethodProxy[] getDeclaredMethods();
-
- /**
- * Return the invokable on the receiver with the specified name and no arguments.
- * null
if null was sent.
- * @return
- *
- * @see ICallback#calledBackStream(int, InputStream)
- * @since 1.0.0
- */
- public Object calledBack(int msgID, Object parm);
-
- /**
- * This is the entry point of the callback.
- * It will be called whenever the callback stream
- * occurred. It will be on its own thread.
- * A particular thread cannot be requested.
- * null
- *
- * @since 1.0.0
- */
- public IJavaProject getJavaProject();
-
- /**
- * Add a project to the classpath. The type flag tells where to add it.
- *
- * @param project
- * @throws CoreException
- *
- * @since 1.0.0
- */
- public void contributeProject(IProject project) throws CoreException;
-
- /**
- * Add an external file/folder to the classpath. The type flag tells where to add it.
- *
- * @param classpath
- * @param typeFlag One of APPEND_USER_CLASSPATH
, APPEND_BOOT_CLASSPATH
, PREPEND_BOOT_CLASSPATH
, or APPEND_JAVA_LIBRARY_PATH
.
- *
- * @deprecated use contributeClasspath(URL, int) instead.
- * @see #contributeClasspath(URL, int)
- * @since 1.0.0
- */
- public void contributeClasspath(String classpath, int typeFlag);
-
- /**
- * Add an external file/folder to the classpath. The type flag tells where to add it.
- *
- * @param classpathURL
- * @param typeFlag One of APPEND_USER_CLASSPATH
, APPEND_BOOT_CLASSPATH
, PREPEND_BOOT_CLASSPATH
, or APPEND_JAVA_LIBRARY_PATH
.
- *
- * @since 1.0.0
- */
- public void contributeClasspath(URL classpathURL, int typeFlag);
-
- /**
- * Add an external files/folders to the classpath. The type flag tells where to add it.
- *
- * @param classpaths
- * @param typeFlag One of APPEND_USER_CLASSPATH
, APPEND_BOOT_CLASSPATH
, PREPEND_BOOT_CLASSPATH
, or APPEND_JAVA_LIBRARY_PATH
.
- *
- * @deprecated use contributeClasspath(URL[], int) instead.
- * @see #contributeClasspath(URL[], int)
- * @since 1.0.0
- */
- public void contributeClasspath(String[] classpaths, int typeFlag);
-
- /**
- * Add an external files/folders to the classpath. The type flag tells where to add it.
- *
- * @param classpathURLs
- * @param typeFlag One of APPEND_USER_CLASSPATH
, APPEND_BOOT_CLASSPATH
, PREPEND_BOOT_CLASSPATH
, or APPEND_JAVA_LIBRARY_PATH
.
- *
- * @since 1.0.0
- */
- public void contributeClasspath(URL[] classpathURLs, int typeFlag);
-
- /**
- * Add a file/folder from a plugin in the running Eclipse to the classpath. The type flag tells where to add it.
- * In development mode it will find the bin class files instead if proxy.jars is setup correctly.
- * true
, then it will also search through the fragments in this manner:
- * (Note: if false
it will still search in the fragments, but it will only return the first file found that matches.
- * null
if it is the bundle/fragment itself (for when the bundle has been jar'ed up).
- * Note: If it is APPEND_JAVA_LIBRARY_PATH
, it should be folder and nlsLocalize will be ignored.
- * In this case be careful that if a folder and the plugin is jarred that the folder IS NOT THE ROOT OF THE PLUGIN. This will
- * cause the entire plugin to be extracted instead of just the directory containing the libraries. If the libraries are in the root
- * of a jarred plugin then a separate cache directory should be created instead and the libraries of interest extracted to there. And
- * then point to the cache directory instead.
- * @param typeFlag One of APPEND_USER_CLASSPATH
, APPEND_BOOT_CLASSPATH
, PREPEND_BOOT_CLASSPATH
, or APPEND_JAVA_LIBRARY_PATH
.
- * @param nlsLocalize The usual value should be false
. Use true
if should look through fragments to gather them all as described in this methods description. This will work for jarred bundles/fragments too.
- *
- * @since 1.0.0
- */
- public void contributeClasspath(Bundle bundle, String relativePath, int typeFlag, boolean nlsLocalize);
-
- /**
- * Same as {@link #contributeClasspath(Bundle, String, int, boolean)} except an IPath can be used as the relative path.
- *
- * @param bundle
- * @param relativePath path to file within bundle. Or null
if it is the bundle/fragment itself (for when the bundle has been jar'ed up).
- * @param typeFlag
- * @param nlsLocalize
- *
- * @see #contributeClasspath(Bundle, String, int, boolean)
- * @since 1.0.0
- */
- public void contributeClasspath(Bundle bundle, IPath relativePath, int typeFlag, boolean nlsLocalize);
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IConfigurationContributionInfo.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IConfigurationContributionInfo.java
deleted file mode 100644
index 9920d7cdf..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IConfigurationContributionInfo.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: IConfigurationContributionInfo.java,v $
- * $Revision: 1.4 $ $Date: 2005/10/14 17:45:02 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-import java.util.Map;
-
-import org.eclipse.jdt.core.IJavaProject;
-
-/**
- * This interface will be passed to the IConfigurationContributor initialize method. It has info
- * that may be needed by the contributor. It may be saved for later use, but if classpaths have changed,
- * it won't be kept up to date.
- * null
- *
- * @since 1.0.0
- */
- public IJavaProject getJavaProject();
-
- /**
- * Return the map of containers (the key) that are found in the classpath. This is useful for determining
- * if the container impliments a contributor interface.
- * Boolean
and will be true if plugin was visible to top-level project.
- *
- * @return map of plugin ids. Key of type String. Empty if launch not in a project.
- *
- * @since 1.0.0
- */
- public Map getPluginIds();
-
- /**
- * Return the map of project paths (the key) that are found in the classpath. The top-level project
- * will NOT be in this list since it is assumed to be visible to itself.
- * Boolean
and will be true if project was visible to top-level project.
- *
- * @return map of project paths. Key of type IPath
. Empty if launch not in a project.
- *
- * @see org.eclipse.core.runtime.IPath
- * @since 1.0.0
- */
- public Map getProjectPaths();
-
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IConfigurationContributor.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IConfigurationContributor.java
deleted file mode 100644
index aceb0cac1..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IConfigurationContributor.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: IConfigurationContributor.java,v $
- * $Revision: 1.6 $ $Date: 2005/08/24 20:39:05 $
- */
-
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-
-
-/**
- * This interface is used to contribute to the configuration that will be
- * used to start a proxy registry.
- *
- * @since 1.0.0
- */
-public interface IConfigurationContributor {
-
- /**
- * Called first before any of the other calls. This can be used to do any internal initializations
- * required by the other calls. That way the other calls can have the order changed as the implementation
- * requires.
- * forExpression
flag.
- * This is a set of constants used as a clue for what expression this expression is being created.
- * This is for a sanity check on the state. For example, when creating the array expression for an
- * array access, the ARRAYACCESS_ARRAY flag is passed in. This way if the current expression on the
- * stack is not for an array access waiting for the array expression, an IllegalStateException will be thrown.
- * Without this flag, it would be easy to accidently create the wrong expression at the wrong time.
- * Once such an error occurs, this IExpression will no longer be valid. IllegalStateException will be thrown
- * for any type of access.
- * IllegalStateException
- * will be thrown.
- *
- * @throws ThrowableProxy
- * @throws IllegalStateException
- * @throws NoExpressionValueException
- *
- * @since 1.0.0
- */
- public void invokeExpression() throws ThrowableProxy, NoExpressionValueException, IllegalStateException;
-
- /**
- * Return whether the expression is valid. It would be invalid if any of the create... calls had thrown an
- * exception or if the expression has already been evaluated (invoked or getExpressionValue()).
- *
- * @return true
if expression is valid, false
if there had been some error, or if the expression has already been evaluated.
- *
- * @since 1.1.0
- */
- public boolean isValid();
-
- /**
- * Close the expression. This needs to be called if for some reason {@link IExpression#invokeExpression()} or {@link IExpression#getExpressionValue()}
- * were not called. It is not an error to always call this after these calls. It will not have any problems with the expression already
- * being closed. invoke and getvalue automatically call close for you. If you don't call close in case of an error, the resources
- * for the expression will not be freed up.
- *
- *
- * @since 1.1.0
- */
- public void close();
-
- /**
- * Invoke the root expression and return the value of the expression. If the expression stack
- * is not complete, or if there is more than one root expression, then IllegalStateException
- * will be thrown.
- *
- * @return The value of the root expression.
- *
- * @throws ThrowableProxy
- * @throws IllegalStateException
- * @throws NoExpressionValueException
- *
- * @since 1.0.0
- */
- public IBeanProxy getExpressionValue() throws ThrowableProxy, NoExpressionValueException, IllegalStateException;
-
- /**
- * Create an Array Access (e.g. x[3]).
- * This must be followed by create expressions for:
- *
- *
- * ARRAYACCESS_ARRAY
- * ARRAYACCESS_INDEX
an indexCount times.
- * new int[3]
or new int[3][]
or new int[] {3, 4}
).
- * If dimensionExpressionCount
is zero, then there must be an initializer. This is because
- * if there are any dimension expressions, then initializers are invalid and visa-versa.
- * new int[3]
will have a dimensionExpressionCount of 1. While
- * new int[3][]
will also have count of 1. And finally
- * new int []
will have a count of 0.
- *
- *
- *
- * @param forExpression
- * @param type This is the type. It must be fully-qualified and if an inner class, it must have the "$" format. It must also include the correct number of ARRAYCREATION_DIMENSION
a dimensionExpressionCount times,
- * or an createArrayInitializer()
if dimension count is 0.
- * []
at the end.
- * @param dimensionExpressionCount
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createArrayCreation(ForExpression forExpression, String type, int dimensionExpressionCount) throws IllegalStateException;
-
- /**
- * Create an Array Creation (e.g. new int[3]
or new int[3][]
or new int[] {3, 4}
).
- * If dimensionExpressionCount
is zero, then there must be an initializer. This is because
- * if there are any dimension expressions, then initializers are invalid and visa-versa.
- *
- *
- * The expressions that follow if dimensionExpressionCount is not zero must evaluate to be compatible to an int type (i.e. byte, char, short, or int).
- * Each expression will be used to create an array for that dimension of that size. For example new int[3]
will have a dimensionExpressionCount of 1. While
- * new int[3][]
will also have count of 1. And finally
- * new int []
will have a count of 0.
- * new int[3][]
will have an
- * dimension expression that evaluates to "3", and so it will create an array int[3][].
- * ARRAYCREATION_DIMENSION
- * or an createArrayInitializer if dimension count is 0.
- *
- * @param forExpression
- * @param type This is the type. This must be the actual type with the correct total number of dimensions (e.g. "java.lang.Object[][]").
- * @param dimensionExpressionCount number of int valued expressions that follow that give the size for each dimension.
- * @throws IllegalStateException
- * @throws IllegalArgumentException
- *
- * @since 1.0.0
- */
- public void createArrayCreation(ForExpression forExpression, IProxyBeanType type, int dimensionExpressionCount) throws IllegalStateException, IllegalArgumentException;
-
- /**
- * Create an array initializer. (e.g. {2,3}
).
- * This one is unusual in that there is no forExpression. That is because array initializers are only valid in
- * certain places. And so if called when not expected, this is an IllegalStateException.
- * ARRAYINITIALIZER_EXPRESSION
- * except if the expression is another array initializer. That is valid and doesn't have a forExpression,
- * but it does count as one of the expressionCounts.
- *
- * @param expressionCount Number of expressions, may be 0.
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createArrayInitializer(int expressionCount) throws IllegalStateException;
-
- /**
- * Create a cast expression (e.g. (short)10
or (java.lang.String) "asd"
)
- * CAST_EXPRESSION
- *
- * @param forExpression
- * @param type This is the type. It must be fully-qualified and if an inner class, it must have the "$" format.
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createCastExpression(ForExpression forExpression, String type) throws IllegalStateException;
-
- /**
- * Create a cast expression (e.g. (short)10
or (java.lang.String) "asd"
)
- * CAST_EXPRESSION
- *
- * @param forExpression
- * @param type This is the type.
- * @throws IllegalStateException
- * @throws IllegalArgumentException
- *
- * @since 1.0.0
- */
- public void createCastExpression(ForExpression forExpression, IProxyBeanType type) throws IllegalStateException, IllegalArgumentException;
-
- /**
- * Create a new class instance expression (e.g. new java.lang.Integer(5)
)
- * CLASSINSTANCECREATION_ARGUMENT
- *
- * new java.lang.Integer(5)
)
- * CLASSINSTANCECREATION_ARGUMENT
- *
- * x != 3 ? 4 : 5
)
- * CONDITIONAL_CONDITION
- * CONDITIONAL_TRUE
- * CONDITIONAL_FALSE
- *
- * @param forExpression
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createConditionalExpression(ForExpression forExpression) throws IllegalStateException;
-
- /**
- * Create a field access (e.g. java.awt.Color.red
)
- * this
object to know who the receiver implicitly is.
- * The receiver may be a "type receiver" if it is a type, e.g. java.awt.Color
.
- * FIELD_RECEIVER
if hasReceiver is true
- *
- * @param forExpression
- * @param fieldName The name of the field.
- * @param hasReceiver Has a receiver flag. Currently this must always be true. This is because can't tell what class to look into for the field without a receiver.
- * @throws IllegalArgumentException
- * @throws IllegalStateException
- *
- * @see IExpression#createTypeReceiver(String)
- * @since 1.0.0
- */
- public void createFieldAccess(ForExpression forExpression, String fieldName, boolean hasReceiver) throws IllegalArgumentException, IllegalStateException;
-
- /**
- * Create a field access (e.g. java.awt.Color.red
)
- * this
object to know who the receiver implicitly is.
- * The receiver may be a "type receiver" if it is a type, e.g. java.awt.Color
.
- *
- *
- *
- * @param forExpression
- * @param fieldProxy The field proxy for the field.
- * @param hasReceiver Has a receiver flag.
- * @throws IllegalStateException
- * @throws IllegalArgumentException
- *
- * @see IExpression#createTypeReceiver(String)
- * @since 1.0.0
- */
- public void createFieldAccess(ForExpression forExpression, IProxyField fieldProxy, boolean hasReceiver) throws IllegalStateException, IllegalArgumentException;
-
- /**
- * Create an if/else stmt. Since this is a statment, there is no ForExpression. ROOT_EXPRESSION must be the next expression type.
- * FIELD_RECEIVER
if hasReceiver is true
- * IF_CONDITION
The if test, must return boolean.
- * IF_TRUE
The if condition is true clause. The clause may be an expression, or a block.
- * IF_ELSE
if hasElseClause is true
. The else clause. The clause may be an expression, or a block.
- *
- *
- * @param hasElseClause
- * @throws IllegalStateException
- *
- * @since 1.1.0
- */
- public void createIfElse(boolean hasElseClause) throws IllegalStateException;
-
- /**
- * Create an infix expression (e.g. 3 + 4
or 3 + 4 + 5
).
- *
- * This must be followed by createExpressions for:
- *
- *
- * @param forExpression
- * @param operator The operator.
- * @param extendedOperandCount The number of extended operands. May be zero.
- * @throws IllegalStateException
- *
- * @see org.eclipse.jem.internal.proxy.common.IExpressionConstants#IN_AND
- * @since 1.0.0
- */
- public void createInfixExpression(ForExpression forExpression, InfixOperator operator, int extendedOperandCount) throws IllegalStateException;
-
- /**
- * Create an instanceof expression (e.g. INFIX_LEFT
- * INFIX_RIGHT
- * extendedOperandCount times an: INFIX_EXTENDED
- * x instanceof java.lang.String
- * INSTANCEOF_VALUE
- * @param forExpression
- * @param type This is the type. It must be fully-qualified and if an inner class, it must have the "$" format.
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createInstanceofExpression(ForExpression forExpression, String type) throws IllegalStateException;
-
- /**
- * Create an instanceof expression (e.g. x instanceof java.lang.String
- * INSTANCEOF_VALUE
- * @param forExpression
- * @param type This is the type.
- * @throws IllegalStateException
- * @throws IllegalArgumentException
- *
- * @since 1.0.0
- */
- public void createInstanceofExpression(ForExpression forExpression, IProxyBeanType type) throws IllegalStateException, IllegalArgumentException;
-
- /**
- * Create a method invocation expression (e.g. java.lang.String.valueOf(10)
).
- * When using a string the method invoked will be the one most compatible with the arguments sent.
- * This allows overloading a method to occur when coming in from a parse tree, since the parse tree
- * doesn't know the exact method to use.
- * this
object to know who the receiver implicitly is.
- * The receiver may be a "type receiver" if it is a type, e.g. java.awt.Color
.
- * METHOD_RECEIVER
- * argumentCounts times expressions for: METHOD_ARGUMENT
- *
- * @param forExpression
- * @param name The name of the method
- * @param hasReceiver Has a receiver flag. Currently this must always be true.
- * @param argumentCount Count of number of arguments. May be zero.
- * @throws IllegalStateException
- * @throws IllegalArgumentException
- *
- * @see IExpression#createTypeReceiver(String)
- * @since 1.0.0
- */
- public void createMethodInvocation(ForExpression forExpression, String name, boolean hasReceiver, int argumentCount) throws IllegalStateException, IllegalArgumentException;
-
- /**
- * Create a method invocation expression (e.g. java.lang.String.valueOf(10)
)
- * this
object to know who the receiver implicitly is.
- * The receiver may be a "type receiver" if it is a type, e.g. java.awt.Color
.
- * METHOD_RECEIVER
- * argumentCounts times expressions for: METHOD_ARGUMENT
- *
- * @param forExpression
- * @param methodProxy The proxy of the method
- * @param hasReceiver Has a receiver flag. Currently this must always be true.
- * @param argumentCount Count of number of arguments. May be zero.
- * @throws IllegalStateException
- * @throws IllegalArgumentException
- *
- * @see IExpression#createTypeReceiver(String)
- * @since 1.0.0
- */
- public void createMethodInvocation(ForExpression forExpression, IProxyMethod methodProxy, boolean hasReceiver, int argumentCount) throws IllegalStateException, IllegalArgumentException;
-
- /**
- * Create a prefix expression (e.g. !flag
or -(3+4)
).
- * If you are just trying to create a signed numeric literal, just use the createPrimitiveLiteral passing in a
- * negative value. You don't need to use prefix expression for that.
- *
- * This must be followed by createExpressions for:
- *
- * @param forExpression
- * @param operator The operator. The values come from IExpressionConstants, the prefix constants.
- * @throws IllegalStateException
- *
- * @see org.eclipse.jem.internal.proxy.common.IExpressionConstants#PRE_PLUS
- * @since 1.0.0
- */
- public void createPrefixExpression(ForExpression forExpression, PrefixOperator operator) throws IllegalStateException;
-
- /**
- * Create a reference to PREFIX_OPERAND
- * null
.
- *
- * @param forExpression
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createNull(ForExpression forExpression) throws IllegalStateException;
-
- /**
- * Create a type literal (e.g. java.lang.String.class
). This is used when the type is being used as value itself, not
- * as a receiver for a field or method or constructor or instanceof. Like as an argument to a method.
- * java.lang.String.valueOf(10)
). For this the "java.lang.String" IBeanTypeProxy is the type receiver.
- * java.lang.String.valueOf(10)
). For this the "java.lang.String" IProxyBeanType is the type receiver.
- * true
).
- *
- * @param forExpression
- * @param value The boolean value for the literal.
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createPrimitiveLiteral(ForExpression forExpression, boolean value) throws IllegalStateException;
-
- /**
- * Create a character literal (e.g. 'a'
or '\n'
)
- *
- * @param forExpression
- * @param value The character value for this literal.
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createPrimitiveLiteral(ForExpression forExpression, char value) throws IllegalStateException;
-
- /**
- * Create a byte literal (e.g. (byte)10
)
- *
- * @param forExpression
- * @param value The byte value for this literal.
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createPrimitiveLiteral(ForExpression forExpression, byte value) throws IllegalStateException;
-
- /**
- * Create a double literal (e.g. 10d
)
- *
- * @param forExpression
- * @param value The double value for this literal.
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createPrimitiveLiteral(ForExpression forExpression, double value) throws IllegalStateException;
-
- /**
- * Create a float literal (e.g. 10f
)
- *
- * @param forExpression
- * @param value The float value for this literal.
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createPrimitiveLiteral(ForExpression forExpression, float value) throws IllegalStateException;
-
- /**
- * Create a int literal (e.g. 100000
)
- *
- * @param forExpression
- * @param value The int value for this literal.
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createPrimitiveLiteral(ForExpression forExpression, int value) throws IllegalStateException;
-
- /**
- * Create a long literal (e.g. 10l
)
- *
- * @param forExpression
- * @param value The long value for this literal.
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createPrimitiveLiteral(ForExpression forExpression, long value) throws IllegalStateException;
-
- /**
- * Create a short literal (e.g. (short)10
)
- *
- * @param forExpression
- * @param value The short value for this literal.
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createPrimitiveLiteral(ForExpression forExpression, short value) throws IllegalStateException;
-
- /**
- * Create a string literal (e.g. "asdf"
). The value is the actual string, with escapes already
- * translated into the true character values.
- *
- * @param forExpression
- * @param value The string value for this literal.
- * @throws IllegalStateException
- *
- * @since 1.0.0
- */
- public void createStringLiteral(ForExpression forExpression, String value) throws IllegalStateException;
-
- /**
- * Create a subexpression.
- *
- *
- * In the above example, we needed to calculate "x" as the argument for XYZ, but it was too complicated and
- * could throw exceptions. So we used a subexpression instead.
- *
- * new XYZ(
- * {(subexpression)
- * try {
- * x = 3*y.get();
- * } catch (Exception e) {
- * x =4;
- * }
- * (end subexpression)}
- * x);
- *
- * @throws IllegalStateException
- *
- * @since 1.1.0
- */
- public void createSubexpression() throws IllegalStateException;
-
- public void createSubexpressionEnd() throws IllegalStateException;
-
- /**
- * Create an expression that has an existing bean proxy as its value.
- *
- * @param forExpression This is for what expression this expression is being created.
- * @param proxy The proxy that should be used as a value, either a bean proxy or an expression proxy.
- * @throws IllegalStateException
- * @throws IllegalArgumentException
- *
- * @since 1.0.0
- */
- public void createProxyExpression(ForExpression forExpression, IProxy proxy) throws IllegalStateException, IllegalArgumentException;
-
- /**
- * Create an assignment expression between a VariableReference and an expression. The left operand must be a variable reference (e.g. FieldAccess or
- * ArrayAccess). The right operand may be any expression that results in a value.
- *
- * try {
- * x = 3*y.get();
- * } catch (Exception e) {
- * x =4;
- * }
- * new XYZ(x);
- *
- * This must be followed by createExpressions for:
- *
- * @param forExpression
- * @throws ThrowableProxy
- * @throws IllegalStateException
- * @throws NoExpressionValueException
- *
- * @since 1.1.0
- */
- public void createAssignmentExpression(ForExpression forExpression) throws IllegalStateException;
-
- /**
- * Create an assignment expression (e.g. x = 3+4) where x will be assigned to the ExpressionProxy.
- * It may be used later on as a value in {@link IExpression#createExpressionProxyExpression(int, ExpressionProxy)}.
- * Or if callbacks were added, the callbacks would be called to return the true IBeanProxy value of the expression proxy when the complete
- * IExpression has been evaluated. The value of the assignment expression (e.g. x) will be passed on into the next expression.
- * ASSIGNMENT_LEFT
- * ASSIGNMENT_RIGHT
- *
- * This must be followed by createExpressions for:
- *
- * ASSIGNMENT_RIGHT
- *
- * This must be followed by createExpressions for:
- *
- * ASSIGNMENT_RIGHT
- * null
if a static method
- * @param arguments array of arguments, where each element can only be either null
for a null argument, IProxy
. The array can be null
if no arguments.
- * @param wantResult true
if you want an ExpressionProxy back, otherwise it will return null
. For performance reasons, only use true
if you really need the expression proxy.
- * @return expression proxy if "wantResult" was true, else null
.
- * @throws IllegalStateException
- * @throws IllegalArgumentException
- *
- * @since 1.1.0
- */
- public ExpressionProxy createSimpleMethodInvoke(IProxyMethod method, IProxy receiver, IProxy[] arguments, boolean wantResult) throws IllegalStateException, IllegalArgumentException;
-
- /**
- * A simple field access. This is a helper to make it easier for a simple field access. It uses only the
- * field proxy (not a string to look it up), and the bean proxy that is the receiver. Also it can be called only when the next
- * expression must be a RootExpression. It doesn't allow complicated field access, such as fielda.fieldb.fieldc
.
- * Since this is a field access, it will always return an ExpressionProxy. It doesn't make sense to have a simple field access
- * that doesn't return one.
- *
- * @param field field proxy of the field.
- * @param receiver the receiver proxy. It may be null
for static fields.
- * @return expression proxy to the result of the access.
- * @throws IllegalStateException
- * @throws IllegalArgumentException
- *
- * @since 1.1.0
- */
- public ExpressionProxy createSimpleFieldAccess(IProxyField field, IProxy receiver) throws IllegalStateException, IllegalArgumentException;
-
- /**
- * A simple field set. This is a helper to make it easier for a simple field access. It uses only the
- * field proxy (not a string to look it up), and the bean proxy that is the receiver. Also it can be called only when the next
- * expression must be a RootExpression. It doesn't allow complicated field access setting, such as fielda.fieldb.fieldc = 3
.
- *
- * @param field field proxy of the field.
- * @param receiver the receiver proxy. It may be null
if this is a static field.
- * @param value the value proxy to set it to or null
if set to null value.
- * @param wantResult true
if you want an ExpressionProxy back, otherwise it will return null
. For performance reasons, only use true
if you really need the expression proxy.
- * @return expression proxy if "wantResult" was true, else null
.
- * @throws IllegalStateException
- * @throws IllegalArgumentException
- *
- * @since 1.1.0
- */
- public ExpressionProxy createSimpleFieldSet(IProxyField field, IProxy receiver, IProxy value, boolean wantResult) throws IllegalStateException, IllegalArgumentException;
-
- /**
- * Begin a block. No need for a forExpression because it must currently be at ROOTEXPRESSION.
- *
- *
- * @return blocknumber for the block just opened. Can be used in {@link Expression#createBlockBreak(int)}.
- * @throws IllegalStateException
- *
- * @since 1.1.0
- */
- public int createBlockBegin() throws IllegalStateException;
-
- /**
- * Does a break for the specified block number. No need for a forExpression because it must currently be at ROOTEXPRESSION.
- * @param blockNumber
- * @throws IllegalStateException
- *
- * @since 1.1.0
- */
- public void createBlockBreak(int blockNumber) throws IllegalStateException;
-
- /**
- * End a block. It will always end the inner most block that currently is on the stack. No need for a forExpression because it must currently be at ROOTEXPRESSION.
- * @throws IllegalStateException
- *
- * @see Expression#createBlockBegin()
- * @since 1.1.0
- */
- public void createBlockEnd() throws IllegalStateException;
-
- /**
- * Create a try/catch statement. No need for a forExpression because it must currently be at ROOTEXPRESSION.
- * There must be at least one catch or finally clause before try end or this is invalid.
- *
- * exp.createBeginBlock();
- * try {
- * exp.create something else.
- * ...
- * } finally {
- * exp.createEndBlock();
- * }
- *
- * @throws IllegalStateException
- *
- * @since 1.1.0
- */
- public void createTry() throws IllegalStateException;
-
-
- /**
- * Create a catch clause for the inner most try statement. No need for a forExpression because it must currently be at ROOTEXPRESSION.
- *
- * exp.createTry();
- * try {
- * ... create other exceptions ...
- * ... create catch/finally clauses as needed.
- * } finally {
- * if (exp.isValid())
- * exp.createTryEnd();
- * }
- *
true
if you want an expression proxy for the exception.
- * @return the ExpressionProxy for the exception if wantExceptionReturned
is true
, null
otherwise.
- *
- * @throws IllegalStateException
- * @throws IllegalArgumentException
- * @since 1.1.0
- */
- public ExpressionProxy createTryCatchClause(IProxyBeanType exceptionType, boolean wantExceptionReturned) throws IllegalStateException, IllegalArgumentException;
-
- /**
- * Create a catch clause for the inner most try statement. No need for a forExpression because it must currently be at ROOTEXPRESSION.
- * true
if you want an expression proxy for the exception.
- * @return the ExpressionProxy for the exception if wantExceptionReturned
is true
, null
otherwise.
- *
- * @throws IllegalStateException
- * @since 1.1.0
- */
- public ExpressionProxy createTryCatchClause(String exceptionType, boolean wantExceptionReturned) throws IllegalStateException;;
-
- /**
- * Create a finally clause for the inner most try statement. No need for a forExpression because it must currently be at ROOTEXPRESSION.
- * There must be no more catch clauses for the try statement after this finally clause.
- *
- * @throws IllegalStateException
- * @since 1.1.0
- */
- public void createTryFinallyClause() throws IllegalStateException;;
-
- /**
- * Create the end of the inner most try statement. No need for a forExpression because it must currently be at ROOTEXPRESSION.
- * There must be no more catch/finally clauses after this except if a new try statement is started.
- *
- * @throws IllegalStateException
- * @since 1.1.0
- */
- public void createTryEnd() throws IllegalStateException;;
-
- /**
- * Create a throw. No need for a forExpression because it must currently be at ROOTEXPRESSION.
- * The next expression is the exception to be thrown.
- * THROW_OPERAND
- *
- * @throws IllegalStateException
- *
- * @since 1.1.0
- */
- public void createThrow() throws IllegalStateException;
-
- /**
- * Create a rethrow. This must be within a catch clause or there is an error.
- *
- * @throws IllegalStateException
- *
- * @since 1.1.0
- */
- public void createRethrow() throws IllegalStateException;
-
-
- /**
- * Mark the expression stack so that if there are IllegalStateExceptions errors that would make the
- * expression invalid, you can restore back to this mark point and the expression will now be valid
- * again and at the state it was when mark was created. All marks must be ended, and at the same nesting
- * level.
- *
- * try {
- * .. do something ..
- * } catch (AnException e) {
- * .. do something ..
- * throw e;
- * }
- *
mark;try/finally{endMark;}
because
- * the mark/endMark must match up.
- *
- *
- * int mark = expression.mark();
- * try {
- * expression.create ...
- * } catch (IllegalStateException e) {
- * process the error.
- * } finally {
- * expression.endMark(mark); // After this, the expression will be valid again.
- * }
- *
- *
- * expression.createTry();
- * int mark = expression.mark();
- * try {
- * expression.create ...
- * expression.createTryEnd();
- * } catch (IllegalStateException e) {
- * process the error. The expression is now invalid.
- * } finally {
- * expression.endMark(mark); // After this, the expression will be valid again, if it had gone invalid.
- * }
- *
null
for parameterTypes means no parameters.
- * @return a method proxy or null if can't be found.
- * @since 1.0.0
- */
- IMethodProxy getMethodProxy(String className, String methodName, String[] parameterTypes);
-
- /**
- * Return an IProxyMethod for the specified name, arguments from the given class.
- * @param expression
- * @param className
- * @param methodName
- * @param parameterTypes
- * @return
- *
- * @since 1.1.0
- */
- IProxyMethod getMethodProxy(IExpression expression, String className, String methodName, String[] parameterTypes);
-
- /**
- * Return an IProxyField for the specified name, arguments from the given class.
- * @param expression
- * @param className
- * @param fieldName
- * @return
- *
- * @since 1.1.0
- */
- IProxyField getFieldProxy(IExpression expression, String className, String fieldName);
-
-
- /**
- * Return an invokable for the specified name, arguments from the class. The method proxy is not retrieved. Instead the method will be looked up
- * each time on the vm. Because of this these are suitable only for one-shot invokations. If it is to be invoked often, then a method proxy should
- * be retrieved instead.
- * null
for parameterTypes means no parameters.
- * @return an invokable
- * @since 1.0.0
- */
- IInvokable getInvokable(String className, String methodName, String[] parameterTypes);
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/INumberBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/INumberBeanProxy.java
deleted file mode 100644
index ca0426a55..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/INumberBeanProxy.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: INumberBeanProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-/**
- * Interface to an integer bean proxy.
- * Creation date: (2/6/00 8:52:42 AM)
- * @author: Joe Winchester
- */
-public interface INumberBeanProxy extends IBeanProxy {
-/**
- * Return the primitive byte value of the proxied Number
- * Creation date: (2/6/00 8:52:59 AM)
- */
-byte byteValue();
-/**
- * Return the primitive double value of the proxied Number
- * Creation date: (2/6/00 8:52:59 AM)
- */
-double doubleValue();
-/**
- * Return the primitive float value of the proxied Number
- * Creation date: (2/6/00 8:52:59 AM)
- */
-float floatValue();
-/**
- * Return the primitive int value of the proxied Number
- * Creation date: (2/6/00 8:52:59 AM)
- */
-int intValue();
-/**
- * Return the primitive long value of the proxied Number
- * Creation date: (2/6/00 8:52:59 AM)
- */
-long longValue();
-/**
- * Return the value as a Number.
- * Creation date: (2/6/00 8:52:59 AM)
- */
-Number numberValue();
-/**
- * Return the primitive short value of the proxied Number
- * Creation date: (2/6/00 8:52:59 AM)
- */
-short shortValue();
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IPDEContributeClasspath.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IPDEContributeClasspath.java
deleted file mode 100644
index aad0c15ea..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IPDEContributeClasspath.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: IPDEContributeClasspath.java,v $
- * $Revision: 1.4 $ $Date: 2005/10/14 17:45:02 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-import org.eclipse.core.runtime.CoreException;
-
-
-/**
- * Contribute to classpath PDE entries that are needed for a launch.
- * INSTANCE()
to access the contributor. If the value
- * is null
, then PDE is not available.
- *
- * @since 1.0.2
- */
-public interface IPDEContributeClasspath {
-
- public static IPDEContributeClasspath INSTANCE = PDEContributeClasspathInstance.getInstance();
-
- /**
- * Return the classpath contributions for the plugins in the given project.
- * true
if this is a bean proxy.
- *
- * @since 1.1.0
- */
- public boolean isBeanProxy();
-
- /**
- * Is this an expression proxy.
- * @return true
if this is an expression proxy.
- *
- * @since 1.1.0
- */
- public boolean isExpressionProxy();
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxyBeanType.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxyBeanType.java
deleted file mode 100644
index 372e4e8a8..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxyBeanType.java
+++ /dev/null
@@ -1,85 +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: IProxyBeanType.java,v $
- * $Revision: 1.2 $ $Date: 2005/05/18 18:41:20 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-
-/**
- * This interface is for IBeanTypeProxy's and BeanTypeExpressionProxy's so that we can lazily
- * get the beantype proxy and have the expression process it when needed.
- *
- * @since 1.1.0
- */
-public interface IProxyBeanType extends IProxy {
-
- /**
- * Answer the name of the type we are proxying This is the fully qualified name. For arrays it will return the format: [Lclassname;
- * @return
- *
- * @since 1.1.0
- */
- public String getTypeName();
-
- /**
- * Get the IProxyMethod for the method from this beantype. It may be either a resolved method proxy (if already resolved) or
- * it may be an ExpressionProxy if not yet resolved.
- *
- * @param expression
- * @param methodName
- * @param parameterTypes array of parameter types or null
if no parameters.
- * @return
- *
- * @since 1.1.0
- */
- public IProxyMethod getMethodProxy(IExpression expression, String methodName, IProxyBeanType[] parameterTypes);
-
- /**
- * Get the IProxyMethod for the method from this beantype where the method has no arguments. It may be either a resolved method proxy (if already resolved) or
- * it may be an ExpressionProxy if not yet resolved.
- * null
if no parameters.
- * @return
- *
- * @since 1.1.0
- */
- public IProxyMethod getMethodProxy(IExpression expression, String methodName, String[] parameterTypes);
-
- /**
- * Get the IProxyyField for the field from this beantype. It may be either a resolved field proxy (if already resolved) or
- * it may be an ExpressionProxy if not yet resolved.
- *
- * @param expression
- * @param fieldName
- * @return
- *
- * @since 1.1.0
- */
- public IProxyField getFieldProxy(IExpression expression, String fieldName);
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxyConstants.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxyConstants.java
deleted file mode 100644
index 9887e00bc..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxyConstants.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: IProxyConstants.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:05 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-/**
- * Constants used with the plugin xml.
- *
- * @since 1.0.0
- */
-public interface IProxyConstants {
-
- /**
- * Launch group id for proxy launch configurations.
- */
- public static final String ID_PROXY_LAUNCH_GROUP = "org.eclipse.jem.proxy"; //$NON-NLS-1$
-
- /**
- * Launch configuration type for local proxy. It is local in that it is on the same machine, but a different
- * VM then the one running the IDE.
- *
- * It here because this is the default config type when no launch config specified for a project.
- */
- public static final String LOCAL_LAUNCH_TYPE = "org.eclipse.jem.proxy.LocalProxyLaunchConfigurationType"; //$NON-NLS-1$
-
- /**
- * Attribute on Proxy Launch Configuration:
- *
- * Key used in Launch Configuration for attaching AWT/Swing to the registry. This means simply
- * that AWT/Swing should be treated as being in the registry or not. It doesn't actually prevent
- * them from being there.
- *
- * The default value for this attribute is "true", so it should be set only to "false".
- */
- public static final String ATTRIBUTE_AWT_SWING = "org.eclipse.jem.proxy.AWT/Swing"; //$NON-NLS-1$
-
- /**
- * Attribute on Proxy Launch Configuration:
- *
- * Key used in Launch Configuration for the contributors and returning the registry. After retrieving key,
- * go back to ProxyLaunchSupport to retrieve the contributors. And it uses it to return the registry.
- *
- * Not to be set by contributors. This will be set only by the ProxyLaunchSupport start implementation methods.
- * It is here only because external developer's launch configurations will need to be able to access this.
- */
- public static final String ATTRIBUTE_LAUNCH_KEY = "org.eclipse.jem.proxy.LaunchKey"; //$NON-NLS-1$
-
- /**
- * Attribute on Proxy Launch Configuration:
- *
- * VM title used for the launch registry.
- *
- * Not to be set by contributors. This will be set only by the ProxyLaunchSupport start implementation methods.
- * It is here only because external developer's launch configurations will need to be able to access this.
- */
- public static final String ATTRIBUTE_VM_TITLE = "org.eclipse.jem.proxy.vmtitle"; //$NON-NLS-1$
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxyField.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxyField.java
deleted file mode 100644
index 24ef95324..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxyField.java
+++ /dev/null
@@ -1,25 +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: IProxyField.java,v $
- * $Revision: 1.1 $ $Date: 2005/05/11 19:01:12 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-
-/**
- * This interface is for IFieldProxy's and FieldExpressionProxy's so that we can lazily
- * get the field proxy and have the expression process it when needed.
- * @since 1.1.0
- */
-public interface IProxyField extends IProxy {
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxyMethod.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxyMethod.java
deleted file mode 100644
index 2268869eb..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IProxyMethod.java
+++ /dev/null
@@ -1,26 +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: IProxyMethod.java,v $
- * $Revision: 1.1 $ $Date: 2005/05/11 19:01:12 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-
-/**
- * This interface is for IMethodProxy's and MethodExpressionProxy's so that we can lazily
- * get the method proxy and have the expression process it when needed.
- *
- * @since 1.1.0
- */
-public interface IProxyMethod extends IProxy {
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IRectangleBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IRectangleBeanProxy.java
deleted file mode 100644
index fcfbf3941..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IRectangleBeanProxy.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: IRectangleBeanProxy.java,v $
- * $Revision: 1.2 $ $Date: 2005/08/24 20:39:05 $
- */
-
-
-/**
- * Interface to a Rectangle bean proxy.
- * add
method checks for and eliminates
- * duplicates based on identity (not equality). Likewise, the
- * remove
method compares based on identity.
- * getListeners
method when notifying listeners.
- * Note that no garbage is created if no listeners are registered.
- * The recommended code sequence for notifying all registered listeners
- * of say, FooListener.eventHappened
, is:
- *
- * Object[] listeners = myListenerList.getListeners();
- * for (int i = 0; i < listeners.length; ++i) {
- * ((FooListener) listeners[i]).eventHappened(event);
- * }
- *
- * null
but initialized
- * to an array of size capacity the first time a listener is added.
- * Maintains invariant: listeners != null IFF size != 0
- */
- private Object[] listeners = null;
-
- /**
- * The empty array singleton instance, returned by getListeners()
- * when size == 0.
- */
- private static final Object[] EmptyArray = new Object[0];
-
- /**
- * Creates a listener list with an initial capacity of 1.
- */
- public ListenerList() {
- this(1);
- }
-
- /**
- * Creates a listener list with the given initial capacity.
- *
- * @param capacity the number of listeners which this list can initially accept
- * without growing its internal representation; must be at least 1
- */
- public ListenerList(int capacity) {
- if (!(capacity >= 1))
- throw new IllegalArgumentException();
- this.capacity = capacity;
- }
-
- /**
- * Adds the given listener to this list. Has no effect if an identical listener
- * is already registered.
- *
- * @param listener the listener
- */
- public void add(Object listener) {
- if (listener == null)
- throw new IllegalArgumentException();
- if (size == 0) {
- listeners = new Object[capacity];
- } else {
- // check for duplicates using identity
- for (int i = 0; i < size; ++i) {
- if (listeners[i] == listener) {
- return;
- }
- }
- // grow array if necessary
- if (size == listeners.length) {
- System.arraycopy(
- listeners,
- 0,
- listeners = new Object[size * 2 + 1],
- 0,
- size);
- }
- }
- listeners[size++] = listener;
- }
-
- /**
- * Removes all listeners from this list.
- */
- public void clear() {
- size = 0;
- listeners = null;
- }
-
- /**
- * Returns an array containing all the registered listeners,
- * in the order in which they were added.
- * true
if there are no registered listeners, and
- * false
otherwise
- */
- public boolean isEmpty() {
- return size == 0;
- }
-
- /**
- * Removes the given listener from this list. Has no effect if an identical
- * listener was not already registered.
- *
- * @param listener the listener
- */
- public void remove(Object listener) {
- if (listener == null)
- throw new IllegalArgumentException();
- for (int i = 0; i < size; ++i) {
- if (listeners[i] == listener) {
- if (size == 1) {
- listeners = null;
- size = 0;
- } else {
- System.arraycopy(
- listeners,
- i + 1,
- listeners,
- i,
- --size - i);
- listeners[size] = null;
- }
- return;
- }
- }
- }
-
- /**
- * Returns the number of registered listeners.
- *
- * @return the number of registered listeners
- */
- public int size() {
- return size;
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/MapJNITypes.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/MapJNITypes.java
deleted file mode 100644
index e1be81d04..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/MapJNITypes.java
+++ /dev/null
@@ -1,72 +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: MapJNITypes.java,v $
- * $Revision: 1.3 $ $Date: 2005/05/11 19:01:12 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-import org.eclipse.jem.internal.proxy.common.MapTypes;
-
-
-/**
- * This is a public class to map between JNI and normal format (e.g. "[Ljava.lang.String;" to "java.lang.String[]") and back again.
- * This is for arrays, non-arrays will be left alone since they are already correct.
- * @since 1.1.0
- */
-public class MapJNITypes {
-
- /**
- * Convert the formal type name to the JNI format.
- * @param formalTypeName
- * @return JNI format
- *
- * @since 1.1.0
- */
- public static String getJNITypeName(String formalTypeName) {
- return MapTypes.getJNIFormatName(formalTypeName);
- }
-
- /**
- * Convert the JNI format to the formal type name.
- * @param jniTypeName
- * @return formal type name or "" if not valid.
- *
- * @since 1.1.0
- */
- public static String getFormalTypeName(String jniTypeName) {
- return MapTypes.getFormalTypeName(jniTypeName);
- }
-
- /**
- * Return whether the formal type name is for a primitive or not.
- * @param formalType
- * @return true
if for a primitive.
- *
- * @since 1.1.0
- */
- public static boolean isFormalTypePrimitive(String formalType) {
- return MapTypes.MAP_TYPENAME_TO_SHORTSIG.get(formalType) != null;
- }
-
- /**
- * Convert the formal type name, with the given number of dimensions,
- * to an array JNI type.
- * @param finalComponent final component name, should not be an array type.
- * @param dimensions number of dimensions for the array.
- * @return
- *
- * @since 1.1.0
- */
- public static String getJNITypeName(String finalComponent, int dimensions) {
- return MapTypes.getJNITypeName(finalComponent, dimensions);
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/PDEContributeClasspath.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/PDEContributeClasspath.java
deleted file mode 100644
index 0ddc64abb..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/PDEContributeClasspath.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: PDEContributeClasspath.java,v $
- * $Revision: 1.5 $ $Date: 2005/10/14 17:45:02 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import java.util.logging.Level;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.pde.core.plugin.*;
-import org.eclipse.pde.internal.core.*;
-
-
-
-/**
- * Contribute to classpath PDE entries that are needed for a launch.
- * null
if PDE not available.
- *
- * @since 1.0.2
- */
- public static IPDEContributeClasspath getInstance() {
- if (Platform.getBundle("org.eclipse.pde.core") != null) { //$NON-NLS-1$
- try {
- Class pdeClass = Class.forName("org.eclipse.jem.internal.proxy.core.PDEContributeClasspath"); //$NON-NLS-1$
- return (IPDEContributeClasspath) pdeClass.newInstance();
- } catch (ClassNotFoundException e) {
- // PDE not available, this is ok.
- } catch (InstantiationException e) {
- ProxyPlugin.getPlugin().getLogger().log(e.getCause(), Level.WARNING);
- } catch (IllegalAccessException e) {
- ProxyPlugin.getPlugin().getLogger().log(e, Level.WARNING);
- }
- }
- return null;
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/PDEProcessForPlugin.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/PDEProcessForPlugin.java
deleted file mode 100644
index 8095acaf5..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/PDEProcessForPlugin.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: PDEProcessForPlugin.java,v $
- * $Revision: 1.7 $ $Date: 2005/10/14 17:45:02 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.pde.core.plugin.*;
-import org.eclipse.pde.internal.core.PDECore;
-
-import org.eclipse.jem.internal.proxy.core.ProxyPlugin.FoundIDs;
-
-
-/*
- * Used for PDE Processing for the Proxy Plugin class. It will be optionally loaded
- * if PDE plugin is installed. This allows usage in an installation that doesn't have
- * PDE installed.
- *
- * @since 1.0.2
- */
-class PDEProcessForPlugin implements ProxyPlugin.IPDEProcessForPlugin {
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.ProxyPlugin.IPDEProcessForPlugin#processPlugin(org.eclipse.jdt.core.IJavaProject, java.util.Map, boolean, boolean)
- */
- public void findPlugins(IJavaProject project, FoundIDs foundIds, boolean visible, boolean first) {
- IPluginModelBase m = PDECore.getDefault().getModelManager().findModel(project.getProject());
- if (m instanceof IPluginModel) {
- // it is a plugin, process it.
- IPlugin plugin = ((IPluginModel) m).getPlugin();
- if (foundIds.pluginIds.containsKey(plugin.getId()))
- return; // already processed it
- foundIds.pluginIds.put(plugin.getId(), first || visible ? Boolean.TRUE : Boolean.FALSE);
- expandPlugin(plugin, foundIds, visible, first);
- }
- return;
- }
-
- private void expandPlugin(IPlugin plugin, FoundIDs foundIds, boolean visible, boolean first) {
- IPluginImport[] imports = plugin.getImports();
- for (int i = 0; i < imports.length; i++) {
- IPluginImport pi = imports[i];
- Boolean piValue = (Boolean) foundIds.pluginIds.get(pi.getId());
- boolean importVisible = first || (visible && pi.isReexported());
- if (piValue != null && (!importVisible || piValue.booleanValue()))
- continue; // we already processed it, this time not visible, or this time visible and was previously visible.
- // Now either first time, or it was there before, but now visible, but this time it is visible.
- // We want it to become visible in that case.
- foundIds.pluginIds.put(pi.getId(), importVisible ? Boolean.TRUE : Boolean.FALSE);
- IPlugin pb = PDECore.getDefault().findPlugin(pi.getId(),
- pi.getVersion(),
- pi.getMatch());
- if (pb != null)
- expandPlugin(pb, foundIds, importVisible, false);
- }
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyFactoryRegistry.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyFactoryRegistry.java
deleted file mode 100644
index a4642fcc5..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyFactoryRegistry.java
+++ /dev/null
@@ -1,327 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: ProxyFactoryRegistry.java,v $
- * $Revision: 1.14 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-import java.util.Hashtable;
-import java.util.Iterator;
-
-import org.eclipse.jem.util.TimerTests;
-
-/**
- * Registry of proxy factories on a per-VM basis.
- * There can be multiple VM's, this would be required by the
- * desktop because more than one project could be open, and each
- * would require their own VM because the classpaths would be different.
- * This class may be subclassed to provide more factories for a particular
- * VM.
- * Creation date: (3/13/00 10:48:10 AM)
- * @author: Richard Lee Kulp
- */
-public abstract class ProxyFactoryRegistry {
-
- protected boolean fIsValid = true; // The registry is valid until terminated.
- protected ListenerList registryListeners = new ListenerList();
-
- /**
- * IRegistryListener
- * Listen for the registry being terminated.
- */
- public interface IRegistryListener {
- /**
- * Method registryTerminated.
- *
- * The registry has been terminated. When this is called the registry
- * is no longer valid. It should not be assumed any calls can be made
- * to the registry.
- *
- * @param registry
- */
- public void registryTerminated(ProxyFactoryRegistry registry);
- }
-
-
- // Factory registration IS NOT a dynamic registration. Once registered for a VM or an instance
- // they should not be changed. This is because references are cached in other objects.
- // The VM associated with this Registry shouldn't exited and restarted because
- // the cached object will then have invalid references to no longer existing objects.
- // If the VM needs to be restarted, then all proxies need to be tossed.
-
- //
- // Individual ProxyFactoryRegistry, applies to a particular VM.
- //
-
- // ***************************
- //
- // IBeanProxyFactory Registry
- //
-
- // The standard bean proxy factory, the one the desktop will use for packages that have not
- // been extended and registered by customization developers.
- protected IStandardBeanProxyFactory fCurrentStandardBeanProxyFactory;
-
- // The directory of registered extension factories, typically registered by package.
- final protected Hashtable fRegisteredExtensionBeanProxyFactories = new Hashtable();
-
- // ***************************
- //
- // IBeanTypeProxyFactory Registry
- //
-
- // The standard bean type proxy factory, the one the desktop will use for packages that have not
- // been extended and registered by customization developers.
- protected IStandardBeanTypeProxyFactory fCurrentStandardBeanTypeProxyFactory;
-
- // The directory of registered extension factories, typically registered by package.
- final protected Hashtable fRegisteredExtensionBeanTypeProxyFactories = new Hashtable();
-
-
- // ***************************
- //
- // Other factories
- //
-
- protected IMethodProxyFactory fMethodProxyFactory = null; // Method Proxy Factory
-
- // ***************************
- //
- // Constants Registry. Different extensions can store
- // objects by key as a registry of constants.
- // For example, java.awt extension will store an object
- // which has some pre-fetched method proxies stored in it so
- // that they don't need to be continually recreated.
- //
- // This feature should be used with care, so that
- // only proxies that really need to be cached should
- // be cached.
- //
- // Don't store proxies to live beans in here because
- // those will be created and destroyed over and over,
- // and the instance in this cache will get stale.
- // Should only store things like often used method
- // proxies that once created are rarely changed.
- //
- // Since the proxies can be on any VM, you should have
- // an interface defining what's available in your
- // constants entry, and access it through that.
-
- protected final Hashtable fRegisteredConstants = new Hashtable();
-
- /**
- * ProxyFactoryRegistry constructor comment.
- */
- public ProxyFactoryRegistry() {
- super();
- }
-
- /**
- * Method addRegistryListener.
- * @param listener
- */
- public void addRegistryListener(IRegistryListener listener) {
- registryListeners.add(listener);
- }
-
- /**
- * Method removeRegistryListener.
- * @param listener
- */
- public void removeRegistryListener(IRegistryListener listener) {
- registryListeners.remove(listener);
- }
-
- protected void fireRegistryTerminated() {
- if (!registryListeners.isEmpty()) {
- Object[] list = registryListeners.getListeners();
- for (int i = 0; i < list.length; i++) {
- ((IRegistryListener) list[i]).registryTerminated(this);
- }
- }
- }
-
- /**
- Return the current factory to be used for creating IBeanProxy instances
- */
- public IStandardBeanProxyFactory getBeanProxyFactory() {
- if (fCurrentStandardBeanProxyFactory == null) {
- throw new RuntimeException(ProxyMessages.ProxyFactory_EXC__NoBeanProxyFactory);
- }
- return fCurrentStandardBeanProxyFactory;
- }
- /**
- Return the current registered bean proxy factory to be used for creating IBeanProxy instances
- */
- public IBeanProxyFactory getBeanProxyFactoryExtension(String packageName) {
- return (IBeanProxyFactory)fRegisteredExtensionBeanProxyFactories.get(packageName);
- }
-
- /**
- Return the current factory to be used for creating IBeanTypeProxy instances
- */
- public IStandardBeanTypeProxyFactory getBeanTypeProxyFactory() {
- if (fCurrentStandardBeanTypeProxyFactory == null) {
- throw new RuntimeException(ProxyMessages.ProxyFactory_EXC__NoBeanTypeProxyFactory);
- }
- return fCurrentStandardBeanTypeProxyFactory;
- }
- /**
- Return the current registered bean type proxy factory to be used for creating IBeanTypeProxy instances
- */
- public IBeanTypeProxyFactory getBeanTypeProxyFactoryExtension(String packageName) {
- return (IBeanTypeProxyFactory)fRegisteredExtensionBeanTypeProxyFactories.get(packageName);
- }
- /**
- * Return the requested constants entry
- */
- public Object getConstants(Object key) {
- return fRegisteredConstants.get(key);
- }
- /**
- * Return the MethodProxyFactory for this VM.
- * Creation date: (3/13/00 10:54:59 AM)
- * @return org.eclipse.jem.internal.proxy.core.IMethodProxyFactory
- */
- public IMethodProxyFactory getMethodProxyFactory() {
- return fMethodProxyFactory;
- }
-
-
- /**
- * Set the requested constants entry for this VM.
- */
- public void registerConstants(Object key, Object constant) {
- fRegisteredConstants.put(key, constant);
- }
-
- /**
- * Remove the constants for the given key.
- * @param key
- *
- * @since 1.1.0
- */
- public void deregisterConstants(Object key) {
- fRegisteredConstants.remove(key);
- }
- /**
- * Release the proxy, no longer needed.
- * This is a helper method to easily access the release from the bean proxy factory.
- */
- public void releaseProxy(IBeanProxy proxy) {
- // To simply things if release is called when the factory is down (invalid), then just
- // go on because the proxy is already released.
- if (fCurrentStandardBeanProxyFactory != null)
- fCurrentStandardBeanProxyFactory.releaseProxy(proxy);
- }
-
- /**
- * Is this a valid registry, i.e. is it not terminated.
- */
- public boolean isValid() {
- return fIsValid;
- }
-
- /**
- * Terminate the registry without waiting.
- * true
to wait for complete termination, false
to kick off termination but return ASAP.
- * @since 1.0.2
- */
- public final void terminateRegistry(boolean wait) {
- if (!fIsValid)
- return; // Already or are already terminating. Don't do it again and don't notify again.
- fIsValid = false;
- if (fCurrentStandardBeanTypeProxyFactory != null) {
-// TimerTests.basicTest.startStep("Terminate Bean Type Factory");
- fCurrentStandardBeanTypeProxyFactory.terminateFactory(wait);
-// TimerTests.basicTest.stopStep("Terminate Bean Type Factory");
- fCurrentStandardBeanTypeProxyFactory = null;
- }
- if (fCurrentStandardBeanProxyFactory != null) {
- fCurrentStandardBeanProxyFactory.terminateFactory(wait);
- fCurrentStandardBeanProxyFactory = null;
- }
- if (fMethodProxyFactory != null) {
- fMethodProxyFactory.terminateFactory(wait);
- fMethodProxyFactory = null;
- }
-
- Iterator itr = fRegisteredExtensionBeanTypeProxyFactories.values().iterator();
- while (itr.hasNext()) {
- ((IBeanProxyFactory) itr.next()).terminateFactory(wait);
- }
- fRegisteredExtensionBeanTypeProxyFactories.clear();
-
- itr = fRegisteredExtensionBeanProxyFactories.values().iterator();
- while (itr.hasNext()) {
- ((IBeanProxyFactory) itr.next()).terminateFactory(wait);
- }
- fRegisteredExtensionBeanProxyFactories.clear();
-
- fRegisteredConstants.clear();
-
- TimerTests.basicTest.startStep("Registry Terminated"); //$NON-NLS-1$
- registryTerminated(wait);
- TimerTests.basicTest.stopStep("Registry Terminated"); //$NON-NLS-1$
-
-// TimerTests.basicTest.startStep("Registry Terminated Notification");
- fireRegistryTerminated(); // Let everyone know that we are gone. This is fired even if wait is false because at this point in time the registry is invalid.
-// TimerTests.basicTest.stopStep("Registry Terminated Notification");
- }
-
-
- /**
- * Terminate the Registry.
- * false
, but it must be honoured if true
- *
- * @param wait wait for registry to terminate flag.
- *
- * @since 1.0.2
- */
- protected abstract void registryTerminated(boolean wait);
-
- /**
- * Get the callback registry.
- */
- public abstract ICallbackRegistry getCallbackRegistry();
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyFindSupport.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyFindSupport.java
deleted file mode 100644
index 84ca80919..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyFindSupport.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 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: ProxyFindSupport.java,v $
- * $Revision: 1.5 $ $Date: 2006/05/17 20:13:05 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-import java.io.*;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Properties;
-
-import org.eclipse.core.runtime.*;
-import org.osgi.framework.Bundle;
-
-
-/**
- * Utility to help finding files. It is used to find them within plugins of the current platform or to find them in the PDE target platform.
- * Also if in the current platform and the current platform is in development mode it will find the bin directories for the jars instead since
- * there are no jars in that case.
- * It can also extract non-local files (such as files within a jar) and make a cache of them so that are a local file and not extracted everytime
- * they are needed.
- *
- * TODO If we ever get back to continuing development we should add to this PDE Target support. And test the code here
- * since it hasn't been tested yet. Also note that in configuration contributor,
- * when we add the library path we expect it to be a folder. This would be a problem with jarred plugins because the directory containing the
- * libraries may be the root of the plugin and localizing a directory would extract and cache the entire plugin. Need to change to figure out
- * how to only extract the dll/so needed instead. Also, none of these handle the case where the bundle is actually non-local (e.g. "http:/").
- * @since 1.2.0
- */
-public class ProxyFindSupport {
-
-
- /**
- * Find the filename relative to the platform bundle. It will search in the bundle and in all fragments for the file name.
- * It will return a URL for each found file.
- * true
if the urls need to point to local filesystem files. This may cause caching of files locally. This
- * could happen if the file is within a plugin that is jarred. false
if the url can be a non-local filesystem url.
- * @return array of URL's for found files.
- *
- * @since 1.2.0
- */
- public static URL[] platformFindAll(Bundle bundle, IPath filenameWithinBundle, boolean asLocal) {
- Bundle[] fragments = Platform.getFragments(bundle);
- ArrayList urls = new ArrayList((fragments == null ? 0 : fragments.length) + 1);
- String filename = filenameWithinBundle.toString();
- URL url = internalFindFromBundleOnly(bundle, filename, asLocal);
- if (url != null)
- urls.add(url);
- if (fragments != null) {
- for (int i = 0; i < fragments.length; i++) {
- Bundle fragment = fragments[i];
- url = internalFindFromBundleOnly(fragment, filename, asLocal);
- if (url != null)
- urls.add(url);
- }
- }
- return (URL[]) urls.toArray(new URL[urls.size()]);
- }
-
- /**
- * @param bundle
- * @param filenameWithinBundle
- * @param asLocal
- * @return
- *
- * @since 1.2.0
- */
- private static URL internalFindFromBundleOnly(Bundle bundle, String filenameWithinBundle, boolean asLocal) {
- try {
- URL pvm = bundle.getEntry(filenameWithinBundle);
- if (pvm != null)
- return asLocal ? FileLocator.toFileURL(pvm) : pvm;
- } catch (IOException e) {
- }
- if (ProxyPlugin.getPlugin().isDevMode()) {
- return findDev(bundle, filenameWithinBundle, asLocal);
- } else
- return null;
- }
-
- /**
- * Find the filename relative to the platform bundle. It will search in the bundle and in all fragments for the file name. It will return
- * URL for the file if found.
- * true
if the urls need to point to local filesystem files. This may cause caching of files locally. This
- * could happen if the file is within a plugin that is jarred. false
if the url can be a non-local filesystem url.
- * @return the found url or null
if not found.
- *
- * @since 1.2.0
- */
- public static URL platformFind(Bundle bundle, IPath filenameWithinBundle, boolean asLocal) {
- try {
- URL pvm = FileLocator.find(bundle, filenameWithinBundle, null);
- if (pvm != null)
- return asLocal ? FileLocator.toFileURL(pvm) : pvm;
- } catch (IOException e) {
- }
- if (ProxyPlugin.getPlugin().isDevMode()) {
- return findDev(bundle, filenameWithinBundle.toString(), asLocal);
- } else
- return null;
-
- }
-
- private static final String BUILDPROPERTIES = "build.properties"; //$NON-NLS-1$
- private static final String PROXYJARS = "proxy.jars"; //$NON-NLS-1$
-
- private static URL findDev(Bundle bundle, String filenameWithinBundle, boolean asLocal) {
- // Got this far and in dev mode means it wasn't found, so we'll try for development style.
- // It is assumed that in dev mode, we are running with the IDE as local and any
- // build outputs will be local so local file protocol will be returned
- // from Platform.resolve(). We won't be running in dev mode with our entireplugin being in a jar,
- // or on a separate system.
- try {
- URL bp = bundle.getEntry(BUILDPROPERTIES);
- if (bp != null) {
- InputStream ios = null;
- try {
- ios = bp.openStream();
- Properties props = new Properties();
- props.load(ios);
- String pathString = props.getProperty("output."+filenameWithinBundle.toString()); //$NON-NLS-1$
- if (pathString != null) {
- URL pvm = bundle.getEntry(pathString);
- if (pvm != null)
- return asLocal ? FileLocator.toFileURL(pvm) : pvm;
- }
- } finally {
- if (ios != null)
- ios.close();
- }
- }
- } catch (IOException e) {
- }
-
- try {
- URL pvm = bundle.getEntry(PROXYJARS);
- if (pvm != null) {
- InputStream ios = null;
- try {
- ios = pvm.openStream();
- Properties props = new Properties();
- props.load(ios);
- String pathString = props.getProperty(filenameWithinBundle.toString());
- if (pathString != null) {
- URL url = FileLocator.resolve(bundle.getEntry("/")); // It is assumed that if in debug mode, then this plugin is an imported plugin within the developement workspace. //$NON-NLS-1$
- if (url.getProtocol().equals("file")) { //$NON-NLS-1$
- File file = new File(url.getFile()).getParentFile(); // This gets us to workspace root of development workspace.
- file = new File(file, pathString);
- return file.toURL();
- }
- }
- } finally {
- if (ios != null)
- ios.close();
- }
- }
- } catch (IOException e) {
- }
- return null;
- }
-
-
- /**
- * Find the bundle and all active fragments libraries. This should normally be used only when the bundle is packaged as a jar and not as a directory. It will
- * return the urls to the jars of the bundle and fragments. If in development mode it will find the bundle's "." output directory.
- * @param bundle
- * @return array of URL's for the jarred bundle and fragments. If the bundle/fragments are not packaged as jars, then the array will be empty.
- *
- * @since 1.2.0
- */
- public static URL[] platformFind(Bundle bundle) {
- return null;
- }
-
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyLaunchSupport.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyLaunchSupport.java
deleted file mode 100644
index c6bb36828..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyLaunchSupport.java
+++ /dev/null
@@ -1,871 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 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: ProxyLaunchSupport.java,v $
- * $Revision: 1.33 $ $Date: 2006/05/17 20:13:05 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-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.core.runtime.jobs.IJobManager;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.core.*;
-import org.eclipse.jdt.core.*;
-import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
-import org.osgi.framework.Bundle;
-
-import org.eclipse.jem.internal.proxy.core.IConfigurationContributionInfo.ContainerPaths;
-import org.eclipse.jem.internal.proxy.core.ProxyPlugin.FoundIDs;
-import org.eclipse.jem.util.PerformanceMonitorUtil;
-import org.eclipse.jem.util.TimerTests;
-
-
-/**
- * This is the used to launch the proxy registries.
- * This is a static helper class, it is not meant to be instantiated.
- *
- * @since 1.0.0
- */
-public class ProxyLaunchSupport {
-
- // The key for the persisten property is in ProxyPlugin so that it can set it on startup without
- // causing this class to be initialized. We don't want this class initialized until the very last
- // moment when needed. This is because it needs UI to be active when initialized to query some
- // values and if ProxyPlugin.start() causes this class to initialize, it may be too soon.
- //
- // If a project's persistent property is set with this value, that means there is at least one
- // launch configuration with this project, but none are selected as the default. This is here
- // so that we can check in the object contribution that if not set then don't show the menu
- // item at all. This is to clean up the popup menu so not so cluttered.
- // If the property is trully not set, then there is no default and there are no configurations for it.
- public static final String NOT_SET = "...not..set.."; //$NON-NLS-1$
-
- public static final String EXPRESSION_TRACING = "/debug/traceexpressions"; // Trace IExpressions. //$NON-NLS-1$
-
- /**
- * Timer threshold for indicating any expressions that took longer than this.
- * If not set, then threshold will default to 100ms.
- * It will only be used if traceexpressions is true.
- */
- public static final String EXPRESSION_TRACEING_TIMER_THRESHOLD = "/debug/traceexpressionstimethreshold"; //$NON-NLS-1$
-
- /*
- * Registry of launch key to LaunchInfo classes.
- */
- private static Map LAUNCH_INFO = new HashMap(2);
-
- /**
- * Public only for access by other launch delegates to set up if they go outside of ProxyLaunchSupport,
- * e.g. IDE proxy. Must not be used for any purpose.
- *
- * @since 1.0.0
- */
- public static class LaunchSupportIConfigurationContributionInfo implements IConfigurationContributionInfo {
-
- /**
- * Construct with no settings. This is to be used by other launch delegates that
- * don't have a {@link FoundIDs} available to fill in the fields. Those
- * delegates must fill the fields themselves.
- *
- *
- * @since 1.2.0
- */
- public LaunchSupportIConfigurationContributionInfo(IJavaProject javaProject) {
- this.javaProject = javaProject;
- }
-
- public LaunchSupportIConfigurationContributionInfo(IJavaProject javaProject, FoundIDs foundIDs) {
- this(javaProject);
- containerIds = foundIDs.containerIds;
- containers = foundIDs.containers;
- pluginIds = foundIDs.pluginIds;
- projectPaths = foundIDs.projects;
- }
-
- /* (non-Javadoc)
- * Map of containers (IClasspathContainer) found in classpath (including required projects).
- * This is for each project found. If there was a container in more than one project with the
- * id, this set will contain the container from each such project. They are not considered the
- * same because they come from a different project.
- * Boolean
, where true means it
- * is visible to the top-level project.
- * Boolean
, where true means it
- * is visible to the top-level project.
- *
- * Will be empty if no project sent in to launch configuration.
- */
- public Map pluginIds = Collections.EMPTY_MAP;;
-
- /* (non-Javadoc)
- * Map of unique projects found in classpath (including required projects), but not including top-level project.
- * IPath
for the project, and the value will be a Boolean
, where true means it
- * is visible to the top-level project.
- *
- * Will be null
if no project sent in to launch configuration.
- */
- public Map projectPaths;
-
- /* (non-Javadoc)
- * Java project for this launch. null
if not for a project.
- */
- public IJavaProject javaProject;
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionInfo#getContainerIds()
- */
- public Map getContainerIds() {
- return containerIds;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionInfo#getContainers()
- */
- public Map getContainers() {
- return containers;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionInfo#getJavaProject()
- */
- public IJavaProject getJavaProject() {
- return javaProject;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionInfo#getPluginIds()
- */
- public Map getPluginIds() {
- return pluginIds;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionInfo#getProjectPaths()
- */
- public Map getProjectPaths() {
- return projectPaths;
- }
-
- }
-
- /**
- * LaunchInfo for a launch. Stored by key and retrievable by the key.
- * This is only passed to launch delegates. It should not be passed on to
- * others, though the IConfigurationContributionInfo may be.
- *
- * null
. It may be empty.
- */
- public IConfigurationContributor[] contributors;
-
- /**
- * The registry returned from the launch. The launch needs to set this before it returns.
- */
- public ProxyFactoryRegistry resultRegistry;
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionInfo#getJavaProject()
- */
- public IJavaProject getJavaProject() {
- return configInfo.getJavaProject();
- }
-
- /**
- * Return the IConfigurationContributionInfo for this launch.
- * @return
- *
- * @since 1.0.0
- */
- public IConfigurationContributionInfo getConfigInfo() {
- return configInfo;
- }
-
- protected IConfigurationContributionInfo configInfo;
-
- }
-
- /**
- * Start an implementation using the default config for the given project.
- * null
.
- * @param vmTitle title for VM. It may be null
.
- * @param aContribs The contributions array. It may be null
.
- * @param pm
- * @return The created registry.
- * @throws CoreException
- *
- * @see ProxyLaunchSupport#startImplementation(IProject, String, IConfigurationContributor[], boolean, IProgressMonitor)
- * @since 1.0.0
- */
- public static ProxyFactoryRegistry startImplementation(
- IProject project,
- String vmTitle,
- IConfigurationContributor[] aContribs,
- IProgressMonitor pm)
- throws CoreException {
- return startImplementation(project, vmTitle, aContribs, true, pm);
- }
-
- /**
- * Start an implementation using the default config for the given project.
- * null
.
- * @param vmTitle title for VM. It may be null
.
- * @param aContribs The contributions array. It may be null
.
- * @param waitForBuild wait for the build. If caller knows that the build has been suspended by this thread, then it must call this with false. Otherwise a deadlock will occur.
- * @param pm
- * @return The created registry.
- * @throws CoreException
- *
- * @since 1.0.0
- */
- public static ProxyFactoryRegistry startImplementation(
- IProject project,
- String vmTitle,
- IConfigurationContributor[] aContribs,
- boolean waitForBuild,
- IProgressMonitor pm)
- throws CoreException {
- // First find the appropriate launch configuration to use for this project.
- // The process is:
- // 1) See if the project's persistent property has a setting for "proxyLaunchConfiguration", if it does,
- // get the configuration of that name and create a working copy of it.
- // 2) If not, then get the "org.eclipse.jem.proxy.LocalProxyLaunchConfigurationType"
- // and create a new instance working copy.
-
- IJavaProject javaProject = JavaCore.create(project);
- if (javaProject == null) {
- throw new CoreException(
- new Status(
- IStatus.WARNING,
- ProxyPlugin.getPlugin().getBundle().getSymbolicName(),
- 0,
- MessageFormat.format(
- ProxyMessages.Not_Java_Project_WARN_,
- new Object[] { project.getName()}),
- null));
- }
-
- // First if specific set.
- String launchName = project.getPersistentProperty(ProxyPlugin.PROPERTY_LAUNCH_CONFIGURATION);
- ILaunchConfiguration config = null;
- if (launchName != null && !NOT_SET.equals(launchName)) {
- ILaunchConfiguration[] configs = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurations();
- for (int i = 0; i < configs.length; i++) {
- if (configs[i].getName().equals(launchName)) {
- config = configs[i];
- break;
- }
- }
- if (config == null || !config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, "").equals(project.getName())) { //$NON-NLS-1$
- project.setPersistentProperty(ProxyPlugin.PROPERTY_LAUNCH_CONFIGURATION, (String) null); // Config not found, or for a different project, so no longer the default.
- config = null;
- }
- }
-
- if (config == null) {
- ILaunchConfigurationWorkingCopy configwc = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationType(IProxyConstants.LOCAL_LAUNCH_TYPE).newInstance(null, DebugPlugin.getDefault().getLaunchManager().generateUniqueLaunchConfigurationNameFrom("LocalProxy_"+project.getName())); //$NON-NLS-1$
- configwc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, project.getName());
- config = configwc;
- }
-
- return startImplementation(config, vmTitle, aContribs, waitForBuild, pm);
- }
-
- /**
- * Launch a registry using the given configuration.
- * null
.
- * @param aContribs The contributions array. It may be null
.
- * @param pm
- * @return The registry from this configuration.
- * @throws CoreException
- *
- * @see ProxyLaunchSupport#startImplementation(ILaunchConfiguration, String, IConfigurationContributor[], boolean, IProgressMonitor)
- * @since 1.0.0
- */
- public static ProxyFactoryRegistry startImplementation(
- ILaunchConfiguration config,
- String vmTitle,
- IConfigurationContributor[] aContribs,
- IProgressMonitor pm)
- throws CoreException {
- return startImplementation(config, vmTitle, aContribs, true, pm);
- }
-
- /**
- * Launch a registry using the given configuration.
- * null
.
- * @param aContribs The contributions array. It may be null
.
- * @param waitForBuild wait for the build. If caller knows that the build has been suspended by this thread, then it must call this with false. Otherwise a deadlock will occur.
- * @param pm
- * @return The registry from this configuration.
- * @throws CoreException
- *
- * @since 1.0.0
- */
- public static ProxyFactoryRegistry startImplementation(
- ILaunchConfiguration config,
- String vmTitle,
- IConfigurationContributor[] aContribs,
- boolean waitForBuild,
- IProgressMonitor pm)
- throws CoreException {
-
- if (pm == null)
- pm = new NullProgressMonitor();
- String stepId = "Pre-launch VM ( " + vmTitle + " )"; //$NON-NLS-1$ //$NON-NLS-2$
- TimerTests.basicTest.startStep(stepId);
- if (vmTitle.equals("Beaninfo")) //$NON-NLS-1$
- PerformanceMonitorUtil.getMonitor().snapshot(125);
- final ILaunchConfigurationWorkingCopy configwc = config.getWorkingCopy();
-
- pm.beginTask("", 400); //$NON-NLS-1$
- pm.subTask(ProxyMessages.ProxyLaunch);
- if (waitForBuild) {
- // See if build needed or waiting or inprogress, if so, wait for it to complete. We've
- // decided too difficult to determine if build would affect us or not, so just wait.
- if (UI_RUNNER != null)
- UI_RUNNER.handleBuild(new SubProgressMonitor(pm, 100));
- else
- runBuild(new SubProgressMonitor(pm, 100));
-
- if (pm.isCanceled())
- return null;
- }
-
- if (aContribs != null) {
- IConfigurationContributor[] newContribs = new IConfigurationContributor[aContribs.length+1];
- System.arraycopy(aContribs, 0, newContribs, 1, aContribs.length);
- newContribs[0] = new ProxyContributor();
- aContribs = newContribs;
- } else
- aContribs = new IConfigurationContributor[] {new ProxyContributor()};
-
- String launchKey = String.valueOf(System.currentTimeMillis());
- LaunchInfo launchInfo = new LaunchInfo();
- synchronized (ProxyLaunchSupport.class) {
- while (LAUNCH_INFO.containsKey(launchKey)) {
- launchKey += 'a'; // Just add something on to make it unique.
- }
- LAUNCH_INFO.put(launchKey, launchInfo);
- }
-
- String projectName = configwc.getAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, (String) null);
- aContribs = fillInLaunchInfo(aContribs, launchInfo, projectName);
-
- try {
- configwc.setAttribute(IProxyConstants.ATTRIBUTE_LAUNCH_KEY, launchKey);
- if (vmTitle != null && vmTitle.length()>0)
- configwc.setAttribute(IProxyConstants.ATTRIBUTE_VM_TITLE, vmTitle);
-
- if (ATTR_PRIVATE != null)
- configwc.setAttribute(ATTR_PRIVATE, true);
-
- // Let contributors modify the configuration.
- final IConfigurationContributor[] contribs = aContribs;
- final LaunchInfo linfo = launchInfo;
- for (int i = 0; i < contribs.length; i++) {
- // First run the initialize.
- // Run in safe mode so that anything happens we don't go away.
- final int ii = i;
- SafeRunner.run(new ISafeRunnable() {
- public void handleException(Throwable exception) {
- // Don't need to do anything. Platform.run logs it for me.
- }
-
- public void run() throws Exception {
- contribs[ii].initialize(linfo.getConfigInfo());
- }
- });
-
- // Now run the contribute to configuration.
- // Run in safe mode so that anything happens we don't go away.
- SafeRunner.run(new ISafeRunnable() {
- public void handleException(Throwable exception) {
- // Don't need to do anything. Platform.run logs it for me.
- }
-
- public void run() throws Exception {
- contribs[ii].contributeToConfiguration(configwc);
- }
- });
- }
- pm.worked(100);
-
- configwc.launch(ILaunchManager.RUN_MODE, new SubProgressMonitor(pm, 100));
-
- final ProxyFactoryRegistry reg = launchInfo.resultRegistry;
- if (!pm.isCanceled() && reg == null)
- throw new CoreException(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, ProxyMessages.ProxyLaunchSupport_RegistryCouldNotStartForSomeReason_WARN_, null));
- if (pm.isCanceled()) {
- if (reg != null)
- reg.terminateRegistry();
- return null;
- }
-
- performExtensionRegistrations((BaseProxyFactoryRegistry) reg, launchInfo);
-
-// TimerTests.basicTest.startStep("contribute to registry");
- for (int i = 0; i < contribs.length; i++) {
- final int ii = i;
- // Run in safe mode so that anything happens we don't go away.
- SafeRunner.run(new ISafeRunnable() {
- public void handleException(Throwable exception) {
- // Don't need to do anything. Platform.run logs it for me.
- }
-
- public void run() throws Exception {
-// String stepid = "contribute to registry for " + contribs[ii].getClass();
-// TimerTests.basicTest.startStep(stepid);
- contribs[ii].contributeToRegistry(reg);
-// TimerTests.basicTest.stopStep(stepid);
- }
- });
- }
-// TimerTests.basicTest.stopStep("contribute to registry");
- } finally {
- // Clean up and return.
- LAUNCH_INFO.remove(launchKey);
- }
-
- pm.done();
- if (vmTitle.equals("Beaninfo")) //$NON-NLS-1$
- PerformanceMonitorUtil.getMonitor().snapshot(126);
- TimerTests.basicTest.stopStep(stepId);
- return launchInfo.resultRegistry;
- }
-
- /**
- * Create a default IConfigurationContributionInfo for the given project. This is useful info even when not launching a
- * vm.
- *
- * @param javaProject
- * @return new contrib info.
- * @throws JavaModelException
- *
- * @since 1.1.0
- */
- public static IConfigurationContributionInfo createDefaultConfigurationContributionInfo(IJavaProject javaProject) throws JavaModelException {
- LaunchSupportIConfigurationContributionInfo configInfo = new LaunchSupportIConfigurationContributionInfo(javaProject,
- ProxyPlugin.getPlugin().getIDsFound(javaProject));
- return configInfo;
-
- }
-
- /**
- * Use in calling {@link ProxyLaunchSupport#fillInLaunchInfo(IConfigurationContributor[], LaunchInfo, String)} for the configuration
- * contributors array if there are no incoming contributors.
- *
- * @since 1.1.0
- */
- public static final IConfigurationContributor[] EMPTY_CONFIG_CONTRIBUTORS = new IConfigurationContributor[0];
- /**
- * Fill in the launch info config info and contribs. The contribs sent in may be expanded due to extension
- * points and a new one created. Either the expanded copy or the original (if no change) will be stored in
- * the launchinfo and returned from this call.
- *
- * @param aContribs this should never be null
. Pass in {@link ProxyLaunchSupport#EMPTY_CONFIG_CONTRIBUTORS} in that case.
- * @param launchInfo
- * @param projectName
- * @return a modified aContribs if any change was made to it. This will never be null
. It will return an empty list if aContribs was null and no changes were made.
- * @throws JavaModelException
- * @throws CoreException
- *
- * @since 1.0.0
- */
- public static IConfigurationContributor[] fillInLaunchInfo(IConfigurationContributor[] aContribs, LaunchInfo launchInfo, String projectName) throws JavaModelException, CoreException {
- if (projectName != null) {
- projectName = projectName.trim();
- if (projectName.length() > 0) {
- IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
- IJavaProject javaProject = JavaCore.create(project);
- if (javaProject != null && javaProject.exists()) {
- launchInfo.configInfo = createDefaultConfigurationContributionInfo(javaProject);
- if (!launchInfo.configInfo.getContainerIds().isEmpty() || !launchInfo.configInfo.getContainers().isEmpty() || !launchInfo.configInfo.getPluginIds().isEmpty()) {
- List computedContributors = new ArrayList(launchInfo.configInfo.getContainerIds().size()+launchInfo.configInfo.getContainers().size()+launchInfo.configInfo.getPluginIds().size());
- // Note: We don't care about the visibility business here. For contributors to proxy it means
- // some classes in the projects/plugins/etc. need configuration whether they are visible or not.
- // This is because even though not visible, some other visible class may instantiate it. So it
- // needs the configuration.
- // First handle explicit classpath containers that implement IConfigurationContributor
- for (Iterator iter = launchInfo.configInfo.getContainers().keySet().iterator(); iter.hasNext();) {
- IClasspathContainer container = (IClasspathContainer) iter.next();
- if (container instanceof IConfigurationContributor)
- computedContributors.add(container);
- }
-
- // Second add in contributors that exist for a container id.
- for (Iterator iter = launchInfo.configInfo.getContainerIds().values().iterator(); iter.hasNext();) {
- ContainerPaths paths = (ContainerPaths) iter.next();
- IConfigurationElement[] contributors = ProxyPlugin.getPlugin().getContainerConfigurations(paths.getContainerId(), paths.getAllPaths());
- if (contributors != null)
- for (int i = 0; i < contributors.length; i++) {
- Object contributor = contributors[i].createExecutableExtension(ProxyPlugin.PI_CLASS);
- if (contributor instanceof IConfigurationContributor)
- computedContributors.add(contributor);
- }
- }
-
- // Finally add in contributors that exist for a plugin id.
- for (Iterator iter = launchInfo.configInfo.getPluginIds().keySet().iterator(); iter.hasNext();) {
- String pluginId = (String) iter.next();
- IConfigurationElement[] contributors = ProxyPlugin.getPlugin().getPluginConfigurations(pluginId);
- if (contributors != null)
- for (int i = 0; i < contributors.length; i++) {
- Object contributor = contributors[i].createExecutableExtension(ProxyPlugin.PI_CLASS);
- if (contributor instanceof IConfigurationContributor)
- computedContributors.add(contributor);
- }
- }
-
- // Now turn into array
- if (!computedContributors.isEmpty()) {
- IConfigurationContributor[] newContribs = new IConfigurationContributor[aContribs.length
- + computedContributors.size()];
- System.arraycopy(aContribs, 0, newContribs, 0, aContribs.length);
- IConfigurationContributor[] cContribs = (IConfigurationContributor[]) computedContributors
- .toArray(new IConfigurationContributor[computedContributors.size()]);
- System.arraycopy(cContribs, 0, newContribs, aContribs.length, cContribs.length);
- aContribs = newContribs;
- }
- }
- }
- }
- }
-
- launchInfo.contributors = aContribs;
- return aContribs;
- }
-
- /**
- * Execute the extension registrations that are valid for this type of registry and the launchinfo paths.
- * null
if not convertable (i.e. not well-formed).
- *
- * @since 1.0.0
- */
- public static URL convertStringPathToURL(String path) {
- try {
- return path != null ? new File(path).toURL() : null;
- } catch (MalformedURLException e) {
- return null;
- }
- }
-
- /**
- * Convert the string paths into a valid urls.
- *
- * @param paths
- * @return the urls or null
if paths is null. Any path not convertable (i.e. not well-formed) will not be in the final list.
- * So this means the result length may be smaller than the paths length.
- *
- * @since 1.0.0
- */
- public static URL[] convertStringPathsToURL(String[] paths) {
- if (paths != null) {
- URL[] result = new URL[paths.length];
- int nextURL = 0;
- for (int i = 0; i < paths.length; i++) {
- URL url = convertStringPathToURL(paths[i]);
- if (url != null)
- result[nextURL++] = url;
- }
- if (nextURL == 0)
- return null; // None were found.
-
- if (nextURL != result.length) {
- URL[] nr = new URL[nextURL];
- System.arraycopy(result, 0, nr, 0, nr.length);
- result = nr;
- }
- return result;
- } else
- return null;
- }
-
- /**
- * Convert the urls to string array. It is assumed the urls are in file protocol. It handles platform and JDK reqts. too.
- * @param urls
- * @return string paths or null
if urls is null
. Any null
entry of urls will result in
- * a corresponding null
in the strings.
- *
- * @since 1.0.0
- */
- public static String[] convertURLsToStrings(URL[] urls) {
- if (urls != null) {
- String[] strings = new String[urls.length];
- for (int i = 0; i < urls.length; i++) {
- // [132378] There is a problem with IBM JDK's. They can't handle the getFile() from a URL in the java lib path on Windows.
- // That is because the normalized format of a file url on windows is "file:/D:/asdfasf". But IBM JDKs can't handle the
- // leading slash. Sun JDKs do.
- URL url = urls[i];
- if (url != null) {
- strings[i] = url.getFile();
- if(strings[i].startsWith("/") && Platform.getOS().equals(Platform.OS_WIN32)) //$NON-NLS-1$
- strings[i] = strings[i].substring(1);
- }
- }
- return strings;
- } else
- return null;
- }
-
- /* (non-Javadoc)
- * Local contributor used to make sure that certain jars are in the path.
- *
- * @since 1.0.0
- */
- static class ProxyContributor extends ConfigurationContributorAdapter {
- public void contributeClasspaths(IConfigurationContributionController controller) {
- // Add the required jars to the end of the classpath. (We want proxyCommon and initParser (+ initParser NLS), but they are in the runtime of the proxy bundle (which is jarred up), so we contribute the bundle instead.
- controller.contributeClasspath(ProxyPlugin.getPlugin().getBundle(), (IPath) null, IConfigurationContributionController.APPEND_USER_CLASSPATH, true); //$NON-NLS-1$
- }
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyMessages.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyMessages.java
deleted file mode 100644
index 81786529f..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyMessages.java
+++ /dev/null
@@ -1,48 +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.proxy.core;
-
-import org.eclipse.osgi.util.NLS;
-
-public final class ProxyMessages extends NLS {
-
- private static final String BUNDLE_NAME = "org.eclipse.jem.internal.proxy.core.messages";//$NON-NLS-1$
-
- private ProxyMessages() {
- // Do not instantiate
- }
-
- public static String UnexpectedException_EXC_;
- public static String ClassCast_EXC__IncorrectType;
- public static String ProxyFactory_EXC__NoBeanProxyFactory;
- public static String ProxyFactory_EXC__NoBeanTypeProxyFactory;
- public static String Not_Java_Project_WARN_;
- public static String No_VM_WARN_;
- public static String No_Implementation_WARN_;
- public static String ProxyLaunch;
- public static String ProxyWaitForBuild;
- public static String Expression_InInvalidStateDueTo_EXC_;
- public static String Expression_InInvalidState_EXC_;
- public static String Expression_TypeSentInInvalidOrder_EXC_;
- public static String Expression_ArrayTypeNotAnArray_EXC_;
- public static String Expression_CannotHandleNoReceiveOnFieldAccess_EXC_;
- public static String Expression_MethodsNeedReceiver_EXC_;
- public static String Expression_InvalidMarkNesting;
- public static String ProxyPlugin_CleanupDefaultProxyLaunchConfigurations;
- public static String ProxyLaunchSupport_RegistryCouldNotStartForSomeReason_WARN_;
- public static String Expression_CreateProxyReassignmentExpression_InvalidForReassignment_EXC_;
-
- static {
- NLS.initializeMessages(BUNDLE_NAME, ProxyMessages.class);
- }
-
- public static String Expression_InvalidProxy;
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyPlugin.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyPlugin.java
deleted file mode 100644
index 058b66ca6..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyPlugin.java
+++ /dev/null
@@ -1,1371 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.proxy.core;
-/*
- * $RCSfile: ProxyPlugin.java,v $
- * $Revision: 1.60 $ $Date: 2006/05/17 20:13:05 $
- */
-
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import java.util.Map.Entry;
-import java.util.logging.Level;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.core.*;
-import org.eclipse.jdt.core.*;
-import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
-import org.eclipse.jdt.launching.JavaRuntime;
-import org.eclipse.osgi.service.resolver.BundleSpecification;
-import org.eclipse.osgi.util.ManifestElement;
-import org.osgi.framework.*;
-
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jem.util.logger.proxyrender.EclipseLogger;
-
-import org.eclipse.jem.internal.proxy.core.IConfigurationContributionInfo.ContainerPaths;
-
-/**
- * The plugin class for the org.eclipse.jem.internal.proxy.core plugin.
- */
-
-public class ProxyPlugin extends Plugin {
-
- /**
- * This interface is for a listener that needs to know if this plugin (ProxyPlugin) is being shutdown.
- * It is needed because there are some extensions that get added dynamically that need to know when the
- * plugin is being shutdown. Can't use new bundle listener for this because it notifies AFTER shutdown.
- *
- * @since 1.0.0
- */
- public interface IProxyPluginShutdownListener {
- /**
- * ProxyPlugin is in shutdown.
- *
- * @since 1.0.0
- */
- public void shutdown();
- }
-
- private static ProxyPlugin PROXY_PLUGIN = null;
- public static final String PREFERENCES_VM_NOVERIFY_KEY = "JEM_PREFERENCES_VM_NOVERIFY_KEY"; // Key for NOVERIFY option of VM //$NON-NLS-1$
- public static final String PDE_NATURE_ID = "org.eclipse.pde.PluginNature" ; //$NON-NLS-1$
-
- // If this is set to true, then in development mode and it will try for proxy jars in directories.
- private boolean devMode;
-
- private ListenerList shutdownListeners;
-
- public ProxyPlugin() {
- super();
- PROXY_PLUGIN = this;
- devMode = Platform.inDevelopmentMode();
- }
-
- public boolean isDevMode() {
- return devMode;
- }
-
- /**
- * Access the singleton
- * @return the singleton plugin
- *
- * @since 1.0.0
- */
- public static ProxyPlugin getPlugin() {
- return PROXY_PLUGIN;
- }
-
- private Logger logger;
- public Logger getLogger() {
- if (logger == null)
- logger = EclipseLogger.getEclipseLogger(this);
- return logger;
- }
-
- /**
- * This will take the bundle and file name and make it local and return that
- * fully qualified. It will look in fragments, but only returns first found. If there can be multiples use
- * the one for bundles and it fragments.
- * "."
if not found.
- *
- * @since 1.0.0
- */
- public String localizeFromBundleOnly(Bundle bundle, String filenameWithinBundle) {
- URL url = urlLocalizeFromBundleOnly(bundle, filenameWithinBundle);
- return url != null ? getFileFromURL(url) : "."; //$NON-NLS-1$
- }
- public String localizeFromBundleAndFragments(Bundle bundle, String filenameWithinBundle) {
- URL url = urlLocalizeFromBundleAndFragments(bundle, filenameWithinBundle);
- return url != null ? getFileFromURL(url) : "."; //$NON-NLS-1$
- }
-
- /**
- * Just like localizeFromBundle except it will return an array of Strings. It will look for the filename
- * within the bundle and any fragments of the bundle. If none are found, an empty array will be returned.
- *
- *
localizeFromBundleAndFragments
except it returns URL's instead.
- *
- * @param bundle
- * @param filenameWithinBundle
- * @return
- *
- * @see ProxyPlugin#localizeFromBundleAndFragments(Bundle, String)
- * @since 1.0.0
- */
- public URL[] urlLocalizeAllFromBundleAndFragments(Bundle bundle, String filenameWithinBundle) {
- return urlLocalizeAllBundleAndFragments(bundle, Platform.getFragments(bundle), filenameWithinBundle);
- }
- public URL[] urlLocalizeAllFromBundleAndFragments(Bundle bundle, IPath filenameWithinBundle) {
- return urlLocalizeAllBundleAndFragments(bundle, Platform.getFragments(bundle), filenameWithinBundle.toString());
- }
-
- /**
- * @param bundle
- * @param filenameWithinBundle
- * @param fragments
- * @return
- *
- * @since 1.0.0
- */
- private URL[] urlLocalizeAllBundleAndFragments(Bundle bundle, Bundle[] fragments, String filenameWithinBundle) {
-
- ArrayList urls = new ArrayList((fragments == null ? 0 : fragments.length) + 1);
- URL url = internalUrlLocalizeFromBundleOnly(bundle, filenameWithinBundle);
- if (url != null)
- urls.add(url);
- if (fragments != null) {
- for (int i = 0; i < fragments.length; i++) {
- Bundle fragment = fragments[i];
- url = internalUrlLocalizeFromBundleOnly(fragment, filenameWithinBundle);
- if (url != null)
- urls.add(url);
- }
- }
- return (URL[]) urls.toArray(new URL[urls.size()]);
- }
-
- private static final String PROXYJARS = "proxy.jars"; //$NON-NLS-1$
-
- /**
- * @see ProxyPlugin#localizeFromBundle(Bundle, String)
- *
- * This is just a helper to return a url instead.
- *
- * @param bundle
- * @param filenameWithinBundle
- * @return
- *
- * @since 1.0.0
- */
- public URL urlLocalizeFromBundleOnly(Bundle bundle, String filenameWithinBundle) {
- // If the filenameWithinBundle begins with one of these special characters,
- // it might be in a fragment.
- if (filenameWithinBundle.charAt(0) == '$'
- && (filenameWithinBundle.regionMatches(true, 0, "$nl$", 0, "$nl$".length()) //$NON-NLS-1$ //$NON-NLS-2$
- || filenameWithinBundle.regionMatches(true, 0, "$os$", 0, "$os$".length()) || filenameWithinBundle.regionMatches(true, 0, //$NON-NLS-1$ //$NON-NLS-2$
- "$ws$", 0, "$ws$".length()))) //$NON-NLS-1$ //$NON-NLS-2$
- return urlLocalizeFromBundleAndFragments(bundle, filenameWithinBundle);
- try {
- URL pvm = new URL(bundle.getEntry("/"), filenameWithinBundle); //$NON-NLS-1$
- pvm = verifyFound(FileLocator.toFileURL(pvm));
- if (pvm != null)
- return pvm;
- } catch (IOException e) {
- }
- return findDev(bundle, filenameWithinBundle);
-
- }
-
- protected URL internalUrlLocalizeFromBundleOnly(Bundle bundle, String filenameWithinBundle) {
- try {
- URL pvm = bundle.getEntry(filenameWithinBundle);
- if (pvm != null)
- return FileLocator.toFileURL(pvm);
- } catch (IOException e) {
- }
- return findDev(bundle, filenameWithinBundle);
-
- }
-
- private URL verifyFound(URL pvm) throws IOException {
- if (devMode) {
- // Need to test if found in devmode. Otherwise we will just assume it is found. If not found on remote and moved to cache, an IOException would be thrown.
- if (pvm != null) {
- InputStream ios = null;
- try {
- ios = pvm.openStream();
- if (ios != null)
- return pvm; // Found it, so return it.
- } finally {
- if (ios != null)
- ios.close();
- }
- }
- } else
- return pvm;
- return null;
- }
-
- /**
- * @see ProxyPlugin#localizeFromBundle(bundle, String)
- *
- * This is just a helper to return a url instead.
- *
- * @param bundle
- * @param filenameWithinBundle
- * @return
- *
- * @since 1.0.0
- */
- public URL urlLocalizeFromBundleOnly(Bundle bundle, IPath filenameWithinBundle) {
- return urlLocalizeFromBundleOnly(bundle, filenameWithinBundle.toString());
- }
-
- private URL findDev(Bundle bundle, String filenameWithinBundle) {
- if (devMode) {
- // Got this far and in dev mode means it wasn't found, so we'll try for development style.
- // It is assumed that in dev mode, we are running with the IDE as local and any
- // build outputs will be local so local file protocol will be returned
- // from Platform.resolve(). We won't be running in dev mode with our entireplugin being in a jar,
- // or on a separate system.
- try {
- URL pvm = bundle.getEntry(PROXYJARS);
- if (pvm != null) {
- InputStream ios = null;
- try {
- ios = pvm.openStream();
- Properties props = new Properties();
- props.load(ios);
- String pathString = props.getProperty(filenameWithinBundle.toString());
- if (pathString != null) {
- URL url = FileLocator.resolve(bundle.getEntry("/")); // It is assumed that if in debug mode, then this plugin is an imported plugin within the developement workspace. //$NON-NLS-1$
- if (url.getProtocol().equals("file")) { //$NON-NLS-1$
- File file = new File(url.getFile()).getParentFile(); // This gets us to workspace root of development workspace.
- file = new File(file, pathString);
- return file.toURL();
- }
- }
- } finally {
- if (ios != null)
- ios.close();
- }
- }
- } catch (IOException e) {
- }
- }
-
- return null;
-
- }
- private URL[] findDevAllFromBundleAndFragments(Bundle bundle, String filenameWithinBundle) {
- Bundle [] fragments = Platform.getFragments(bundle);
- ArrayList urls = new ArrayList((fragments == null ? 0 : fragments.length) + 1);
- URL url = findDev(bundle, filenameWithinBundle);
- if (url != null)
- urls.add(url);
- if (fragments != null) {
- for (int i = 0; i < fragments.length; i++) {
- Bundle fragment = fragments[i];
- url = findDev(fragment, filenameWithinBundle);
- if (url != null)
- urls.add(url);
- }
- }
- return (URL[]) urls.toArray(new URL[urls.size()]);
- }
-
- /**
- * Get the urls for the bundle and all fragments. This is used when bundles/fragments are jarred. It won't work correctly if not
- * a jarred bundle and fragments. This would most likely be used for NLS
- * purposes to bring in the bundle and all of the nls. If a specific fragment was wanted use {@link #urlLocalizeBundle(Bundle)} instead.
- *
- * @param bundle
- * @return urls for bundle and all fragments.
- *
- * @since 1.2.0
- */
- public URL[] urlLocalizeBundleAndFragments(Bundle bundle) {
- Bundle[] fragments = Platform.getFragments(bundle);
- List urls = new ArrayList((fragments == null ? 0 : fragments.length) + 1);
- URL[] burls = urlLocalizeBundle(bundle);
- if (burls != null) {
- urls.addAll(Arrays.asList(burls));
- }
- if (fragments != null) {
- for (int i = 0; i < fragments.length; i++) {
- burls = urlLocalizeBundle(fragments[i]);
- if (burls != null)
- urls.addAll(Arrays.asList(burls));
- }
- }
-
- return (URL[]) urls.toArray(new URL[urls.size()]);
-
- }
-
- /**
- * Get the urls for the bundle libraries only. If a fragment is wanted, then pass in the fragment instead.
- * If bundle and all fragments are wanted use {@link #urlLocalizeBundleAndFragments(Bundle)} instead.
- * null
if not contributed.
- *
- * @param containerid the first segment of all of the container paths is the container id.
- * @param containerPaths array of container paths to match against for contributions. The paths must all be of the same container id.
- * @return Array of configuration elements.
- *
- * @since 1.0.0
- */
- public synchronized IConfigurationElement[] getContainerConfigurations(String containerid, String[] containerPaths) {
- if (contributions == null)
- processProxyContributionExtensionPoint();
- return (IConfigurationElement[]) contributions.containerPathContributions.getContributors(containerid, containerPaths);
- }
-
- /**
- * Return the plugin ordered array of configuration elements for the given plugin, or null
if not contributed.
- *
- * @param pluginid
- * @return Array of configuration elements or null
if this plugin has no contributions.
- *
- * @since 1.0.0
- */
- public synchronized IConfigurationElement[] getPluginConfigurations(String pluginid) {
- if (contributions == null)
- processProxyContributionExtensionPoint();
- return (IConfigurationElement[]) contributions.pluginToContributions.get(pluginid);
- }
-
- /**
- * Return the plugin ordered array of configuration elements for the given container, or null
if not contributed.
- *
- * @param containerid the first segment of all of the container paths is the container id.
- * @param containerPaths array of container paths to match against for contributions. The paths must all be of the same container id.
- * @return Array of configuration elements.
- *
- * @since 1.0.0
- */
- public synchronized IConfigurationElement[] getContainerExtensions(String containerid, String[] containerPaths) {
- if (extensions == null)
- processProxyExtensionExtensionPoint();
- return (IConfigurationElement[]) extensions.containerPathContributions.getContributors(containerid, containerPaths);
- }
-
- /**
- * Return the plugin ordered array of configuration elements for the given plugin, or null
if not contributed.
- *
- * @param pluginid
- * @return Array of configuration elements or null
if this plugin has no contributions.
- *
- * @since 1.0.0
- */
- public synchronized IConfigurationElement[] getPluginExtensions(String pluginid) {
- if (extensions == null)
- processProxyExtensionExtensionPoint();
- return (IConfigurationElement[]) extensions.pluginToContributions.get(pluginid);
- }
-
- protected synchronized void processProxyContributionExtensionPoint() {
- contributions = processContributionExtensionPoint(PI_CONFIGURATION_CONTRIBUTION_EXTENSION_POINT);
- }
-
- protected synchronized void processProxyExtensionExtensionPoint() {
- extensions = processContributionExtensionPoint(PI_EXTENSION_REGISTRATION_EXTENSION_POINT);
- }
-
- /**
- * Process the extension point looking contributors. It will find entries that have the "container" or "plugin" attributes
- * set on them.
- *
- * @param extensionPoint fully-qualified extension point id, including plugin id of the extension point.
- * @return the contributor info record.
- *
- * @since 1.0.0
- */
- public static ContributorExtensionPointInfo processContributionExtensionPoint(String extensionPoint) {
- // We are processing this once because it is accessed often (once per vm per project).
- // This can add up so we get it together once here.
- IExtensionPoint extp = Platform.getExtensionRegistry().getExtensionPoint(extensionPoint);
- ContributorExtensionPointInfo result = new ContributorExtensionPointInfo();
- result.containerPathContributions = new ContainerPathContributionMapping(IConfigurationElement.class);
- if (extp == null) {
- result.pluginToContributions = Collections.EMPTY_MAP;
- return result;
- }
-
- IExtension[] extensions = extp.getExtensions();
- if (extensions.length > 0) {
- // Need to be in plugin order so that first ones processed have no dependencies on others.
- // Gather in extension order.
- // We want the list in reverse order of found extensions for a bundle. This is a heuristic to try
- // to get leaves ordered in the order found from the extension list. Since the orderPlugins actually
- // reverses the leaf order, hopefully this will set it back to what we want at the end.
- HashMap bundlesToExtensions = new LinkedHashMap(extensions.length);
- for (int i = extensions.length-1; i >= 0; i--) {
- Bundle bundle = Platform.getBundle(extensions[i].getContributor().getName());
- IExtension[] ext = (IExtension[]) bundlesToExtensions.get(bundle);
- if (ext == null)
- bundlesToExtensions.put(bundle, new IExtension[] { extensions[i]});
- else {
- // More than one extension defined in this plugin.
- IExtension[] newExt = new IExtension[ext.length + 1];
- System.arraycopy(ext, 0, newExt, 0, ext.length);
- newExt[newExt.length - 1] = extensions[i];
- bundlesToExtensions.put(bundle, newExt);
- }
- }
-
- // Now order them so we process in required order.
- Bundle[] ordered = ProxyPlugin.orderPlugins(bundlesToExtensions.keySet());
- Map patternStringToID_Pattern = new HashMap(); // Map of string patterns to the {container id, compiled pattern}. This so that we use the same compiled pattern everywhere.
- result.pluginToContributions = new HashMap(ordered.length);
- for (int i = 0; i < ordered.length; i++) {
- IExtension[] exts = (IExtension[]) bundlesToExtensions.get(ordered[i]);
- for (int j = 0; j < exts.length; j++) {
- IConfigurationElement[] configs = exts[j].getConfigurationElements();
- // Technically we expect the config elements to have a name of "contributor", but since that
- // is all that can be there, we will ignore it. The content is what is important.
- for (int k = 0; k < configs.length; k++) {
- String containerPattern = configs[k].getAttributeAsIs(PI_CONTAINER);
- if (containerPattern != null) {
- Object[] id_Pattern = (Object[]) patternStringToID_Pattern.get(containerPattern);
- if (id_Pattern == null) {
- int slash = containerPattern.indexOf('/');
- String containerID = slash != -1 ? containerPattern.substring(0, slash) : containerPattern;
- // The pattern becomes for the containerPattern "SWT_CONTAINER" becomes "SWT_CONTAINER(/.*)*". This
- // means to match the string must start with "SWT_CONTAINER" and it must have either nothing after this
- // or it must have a "/" and any characters after that. So this means it will not match "SWT_CONTAINERXZ"
- // but it will match "SWT_CONTAINER/XYZ".
- id_Pattern = new Object[] { containerID, Pattern.compile(containerPattern + "(/.*)*")}; //$NON-NLS-1$
- patternStringToID_Pattern.put(containerPattern, id_Pattern);
- }
- result.containerPathContributions.addContribution((String) id_Pattern[0], (Pattern) id_Pattern[1], configs[k]);
- }
-
- String plugin = configs[k].getAttributeAsIs(PI_PLUGIN);
- if (plugin != null) {
- List contributions = (List) result.pluginToContributions.get(plugin);
- if (contributions == null) {
- contributions = new ArrayList(1);
- result.pluginToContributions.put(plugin, contributions);
- }
- contributions.add(configs[k]);
- }
- }
- }
- }
-
- // Finalize the mappings for both container paths and plugins.
- result.containerPathContributions.finalizeMapping();
- for (Iterator iter = result.pluginToContributions.entrySet().iterator(); iter.hasNext();) {
- Map.Entry entry = (Map.Entry) iter.next();
- entry.setValue(((List) entry.getValue()).toArray(new IConfigurationElement[((List) entry.getValue()).size()]));
- }
- } else
- result.pluginToContributions = Collections.EMPTY_MAP;
- return result;
- }
-
- /**
- * The result of the {@link ProxyPlugin#getIDsFound(IJavaProject)}.
- *
- * @since 1.2.0
- */
- public static class FoundIDs {
-
- /**
- * Map of (containerIds(String)->{@link ContainerPaths}) of containers classpaths found in the project's classpath.
- *
- */
- public Map containerIds = new HashMap(2);
-
- /**
- * Map of (containers({@link IClasspathContainer})->Boolean) of containers found in the project's classpath. The value will be true
if the container is visible to the top-level project.
- */
- public Map containers = new HashMap(2);
-
- /**
- * Map of (pluginIds(String)->Boolean) of plugin ids found in the project's classpath if the project is a plugin project. The value will be true
if the plugin is visible to the top-level project.
- */
- public Map pluginIds;
-
- /**
- * Map of (projects({@link IPath}->Boolean) of project found in the project's classpath. The value will be true
if the project is visible to the top-level project.
- */
- public Map projects = new HashMap(2);
-
- FoundIDs() {
- // not meant to be instantiated or subclassed by clients.
- }
- }
-
- /**
- * For the given java project, return the maps of found ids.
- *
- * @param jproject
- * @return the found ids.
- *
- * @since 1.0.0
- */
- public FoundIDs getIDsFound(IJavaProject jproject) throws JavaModelException {
- IPath projectPath = jproject.getProject().getFullPath();
- FoundIDs foundIDs = new FoundIDs();
- foundIDs.projects.put(projectPath, Boolean.TRUE);
- expandProject(projectPath, foundIDs, true, true);
-
- // The containerIds values will actually be an Map[] {Map(visibleIPath->pathString), Map(hiddenIPath->pathString)}. Needs to be converted to a ContainerPaths now
- // that we are done.
- for (Iterator itr = foundIDs.containerIds.entrySet().iterator(); itr.hasNext();) {
- Map.Entry entry = (Entry) itr.next();
- Map[] value = (Map[]) entry.getValue();
- entry.setValue(new ContainerPaths((String) entry.getKey(), (String[]) value[0].values().toArray(new String[value[0].size()]), (String[]) value[1].values().toArray(new String[value[1].size()])));
- }
-
- if (foundIDs.pluginIds == null)
- foundIDs.pluginIds = Collections.EMPTY_MAP;
-
- foundIDs.projects.remove(projectPath); // Don't need to include itself now, was needed for testing so if ciruclar we don't get into a loop.
- if (foundIDs.projects.isEmpty())
- foundIDs.projects = Collections.EMPTY_MAP;
-
- return foundIDs;
-
- }
-
- private static final IPath JRE_CONTAINER_PATH = new Path(JavaRuntime.JRE_CONTAINER);
-
- /*
- * The passed in visible flag tells if this project is visible and its contents are visible if they are exported.
- * Only exception is if first is true, then all contents are visible to the top level project.
- */
- private void expandProject(IPath projectPath, FoundIDs foundIds, boolean visible, boolean first) throws JavaModelException {
- IResource res = ResourcesPlugin.getWorkspace().getRoot().findMember(projectPath.lastSegment());
- if (res == null)
- return; // Not exist so don't delve into it.
- IJavaProject project = (IJavaProject)JavaCore.create(res);
- if (project == null || !project.exists() || !project.getProject().isOpen())
- return; // Not exist as a java project or not open, so don't delve into it.
-
- IClasspathEntry[] entries = project.getRawClasspath();
- for (int i = 0; i < entries.length; i++) {
- IClasspathEntry entry = entries[i];
- Boolean currentFlag = null; // Current setting value.
- boolean newFlag; // The new setting value.
- switch (entry.getEntryKind()) {
- case IClasspathEntry.CPE_PROJECT:
- // Force true if already true, or this is the first project, or this project is visible and the entry is exported. These override a previous false.
- currentFlag = (Boolean) foundIds.projects.get(entry.getPath());
- newFlag = (currentFlag != null && currentFlag.booleanValue()) || first || (visible && entry.isExported());
- if (currentFlag == null || currentFlag.booleanValue() != newFlag)
- foundIds.projects.put(entry.getPath(), newFlag ? Boolean.TRUE : Boolean.FALSE );
- if (currentFlag == null)
- expandProject(entry.getPath(), foundIds, visible && entry.isExported(), false);
- break;
- case IClasspathEntry.CPE_CONTAINER:
- if (!first && JavaRuntime.JRE_CONTAINER.equals(entry.getPath().segment(0))) //$NON-NLS-1$
- break; // The first project determines the JRE, so any subsequent ones can be ignored.
- Map[] paths = (Map[]) foundIds.containerIds.get(entry.getPath().segment(0));
- if (paths == null) {
- paths = new Map[] {new HashMap(2), new HashMap(2)};
- foundIds.containerIds.put(entry.getPath().segment(0), paths);
- }
- currentFlag = null;
- if (paths[0].containsKey(entry.getPath()))
- currentFlag = Boolean.TRUE;
- else if (paths[1].containsKey(entry.getPath()))
- currentFlag = Boolean.FALSE;
- newFlag = (currentFlag != null && currentFlag.booleanValue()) || first || (visible && entry.isExported());
- if (currentFlag == null || currentFlag.booleanValue() != newFlag) {
- if (newFlag) {
- // It is visible, remove from hidden, if there, and add to visible.
- paths[1].remove(entry.getPath());
- paths[0].put(entry.getPath(), entry.getPath().toString());
- } else {
- // It is hidden, remove from visible, if there, and add to hidden.
- paths[0].remove(entry.getPath());
- paths[1].put(entry.getPath(), entry.getPath().toString());
- }
- }
-
- IClasspathContainer container = JavaCore.getClasspathContainer(entry.getPath(), project);
- // Force true if already true, or this is the first project, or this project is visible and the entry is exported. These override a previous false.
- currentFlag = (Boolean) foundIds.containers.get(container);
- newFlag = (currentFlag != null && currentFlag.booleanValue()) || first || (visible && entry.isExported());
- if (currentFlag == null || currentFlag.booleanValue() != newFlag)
- foundIds.containers.put(container, newFlag ? Boolean.TRUE : Boolean.FALSE );
- break;
- case IClasspathEntry.CPE_VARIABLE:
- // We only care about JRE_LIB. If we have that, then we will treat it as JRE_CONTAINER. Only
- // care about first project too, because the first project is the one that determines the JRE type.
- if (first && JavaRuntime.JRELIB_VARIABLE.equals(entry.getPath().segment(0))) { //$NON-NLS-1$
- paths = (Map[]) foundIds.containerIds.get(JavaRuntime.JRE_CONTAINER);
- if (paths == null) {
- paths = new Map[] {new HashMap(2), new HashMap(2)};
- foundIds.containerIds.put(JavaRuntime.JRE_CONTAINER, paths);
- }
- currentFlag = null;
- if (paths[0].containsKey(JRE_CONTAINER_PATH))
- currentFlag = Boolean.TRUE;
- else if (paths[1].containsKey(JRE_CONTAINER_PATH))
- currentFlag = Boolean.FALSE;
- newFlag = (currentFlag != null && currentFlag.booleanValue()) || first || (visible && entry.isExported());
- if (currentFlag == null || currentFlag.booleanValue() != newFlag) {
- if (newFlag) {
- // It is visible, remove from hidden, if there, and add to visible.
- paths[1].remove(JRE_CONTAINER_PATH);
- paths[0].put(JRE_CONTAINER_PATH, JavaRuntime.JRE_CONTAINER);
- } else {
- // It is hidden, remove from visible, if there, and add to hidden.
- paths[0].remove(JRE_CONTAINER_PATH);
- paths[1].put(JRE_CONTAINER_PATH, JavaRuntime.JRE_CONTAINER);
- }
- }
- }
- break;
- default:
- break;
- }
- }
-
- findPlugins(foundIds, visible, first, project);
- }
-
- /**
- * Find the plugins that the given project references, either directly or indirectly.
- * BooleanTRUE
,
- * then the plugin is visible to the given project. the visible and first flags
- * will modify this. If first is true, then all direct plugins will be visible,
- * else only exported plugins will be visible. If visible is false and first is false, then it doesn't matter, all of the
- * plugins will not be visible.
- * true
means this project is visible, so any plugins visible to it will be visible, else none will be visible.
- * @param first true
if this is the top project of interest. This means that all plugins within the project are visible. Else only exported projects will be visible.
- * @param project project to start looking from
- *
- * @since 1.0.2
- */
- public void findPlugins(FoundIDs foundIds, boolean visible, boolean first, IJavaProject project) {
- try {
- // To prevent unnecessary loading of the PDE plugin, find the plugins only if this project is a PDE plugin project.
- if (isPDEProject(project)) {
- IPDEProcessForPlugin pdeprocess = getPDEProcessForPlugin();
- if (pdeprocess != null) {
- if (foundIds.pluginIds == null)
- foundIds.pluginIds = new HashMap();
- pdeprocess.findPlugins(project, foundIds, visible, first); // expand the plugins for this project, if any.
- }
- }
- } catch (CoreException e) {
- }
- }
-
- /**
- *
- * @param project
- *
- * @return true if this is a Plugin project or false if not
- * @throws CoreException
- *
- * @since 1.1.0
- */
- public static boolean isPDEProject(IJavaProject project) throws CoreException {
- return project.getProject().hasNature(PDE_NATURE_ID);
- }
-
-
- /*
- * Interface for processing Plugins. Used when PDE plugin is present in the installation.
- *
- * @since 1.0.2
- */
- interface IPDEProcessForPlugin {
-
- /*
- * Go through the project and find all of the plugins it references, either directly or through
- * the referenced plugins, and mark them as visible or not.
- */
- public abstract void findPlugins(IJavaProject project, FoundIDs foundIds, boolean visible, boolean first);
- }
-
- /*
- * Try to get the pde process for plugin. If already tried once and not found, then forget it.
- * null
if not found, [2] is the URL to the source zip, null
if not found.
- *
- * @since 1.0.0
- */
- public URL[] findPluginJarAndAttachedSource(Bundle bundle, IPath filepath) {
- // This is a bit kludgy, but the algorithm is to find the file first, and then get the root url of the bundle/fragment
- // that matches the found file. This will be used to calculate the name of the directory under the source. From there
- // all of the source extensions will be searched for the source zip file.
- // This is assuming that find returns a url where the file part of the url is a standard path and doesn't have
- // things like special chars to indicate within a jar. That would appear when it is resolved, but I think that the
- // unresolved ones from find are typically "jarbundle://nnn/path" or something like that. This is a gray area.
- URL jarURL = FileLocator.find(bundle, filepath, null);
- if (jarURL == null)
- return new URL[2];
-
- // Found it, so let's try to find which bundle/fragment it was found in.
- String jarString = jarURL.toExternalForm();
- // First the bundle itself.
- String installLoc = bundle.getEntry("/").toExternalForm(); //$NON-NLS-1$
- URL sourceURL = null;
- if (jarString.startsWith(installLoc))
- sourceURL = getSrcFrom(bundle, installLoc, jarString);
- else {
- // Now look in the fragments.
- Bundle[] frags = Platform.getFragments(bundle);
- for (int i = 0; i < frags.length; i++) {
- installLoc = frags[i].getEntry("/").toExternalForm(); //$NON-NLS-1$
- if (jarString.startsWith(installLoc)) {
- sourceURL = getSrcFrom(frags[i], installLoc, jarString);
- break;
- }
- }
- }
- return new URL[] {jarURL, sourceURL};
- }
-
- private URL getSrcFrom(Bundle bundle, String installLoc, String jarString) {
- // format of path in a PDE source plugin is (under the "src" directory from the extension point),
- // "bundlename_bundleversion/pathOfJar/jarnamesrc.zip". However there is no way to know
- // which extension has the source in it, so we need to search them all.
-
- IPath srcPath = new Path(bundle.getSymbolicName()+"_"+ (String) bundle.getHeaders("").get(Constants.BUNDLE_VERSION)); //$NON-NLS-1$ //$NON-NLS-2$ $NON-NLS-2$
- srcPath = srcPath.append(new Path(jarString.substring(installLoc.length())));
- if (srcPath.segmentCount() < 2)
- return null; // Something is not right. No jar name.
- srcPath = srcPath.removeFileExtension(); // Remove the .jar.
- String jarName = srcPath.lastSegment(); // This should be the jar name.
- srcPath = srcPath.removeLastSegments(1).append(jarName+"src.zip"); //$NON-NLS-1$
-
- // Now look through all of the src extensions. Can't tell if the extension is from a fragment or a bundle, so we need to
- // use Platform.find() to look in the bundle and fragment. So we may get a dup search if there is a fragment source
- // (for example platform source and win32 platform source (which is a fragment of platform source).
- IConfigurationElement[] ces = Platform.getExtensionRegistry().getConfigurationElementsFor("org.eclipse.pde.core.source"); //$NON-NLS-1$
- for (int i = 0; i < ces.length; i++) {
- IPath srcsrch = new Path(ces[i].getAttributeAsIs("path")).append(srcPath); //$NON-NLS-1$
- Bundle srcBundle = Platform.getBundle(ces[i].getDeclaringExtension().getContributor().getName());
- URL srcUrl = FileLocator.find(srcBundle, srcsrch, null);
- if (srcUrl != null) {
- return srcUrl;
- }
- }
- return null;
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ThrowableProxy.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ThrowableProxy.java
deleted file mode 100644
index da9c5cc17..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ThrowableProxy.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.core;
-/*
- * $RCSfile: ThrowableProxy.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:05 $
- */
-
-
-/**
- * This is a proxy wrapper for an exception being thrown on the
- * remove VM. The standard exception methods refer to this proxy.
- * To refer to the proxied exception itself, the methods defined
- * in here would be used.
- */
-public abstract class ThrowableProxy extends java.lang.Exception implements IBeanProxy {
- /**
- * Constructs an Exception
with no specified detail message.
- */
- public ThrowableProxy() {
- super();
- }
-
- /**
- * @param message
- * @param cause
- *
- * @since 1.1.0
- */
- protected ThrowableProxy(String message, Throwable cause) {
- super(message, cause);
- }
- /**
- * @param cause
- *
- * @since 1.1.0
- */
- protected ThrowableProxy(Throwable cause) {
- super(cause);
- }
- /**
- * Constructs an Exception
with the specified detail message.
- *
- * @param s the detail message.
- */
- public ThrowableProxy(String s) {
- super(s);
- }
-
-
- public abstract String getProxyLocalizedMessage();
- public abstract String getProxyMessage();
- public abstract void printProxyStackTrace(java.io.PrintWriter writer);
- public abstract void printProxyStackTrace(java.io.PrintStream stream);
- public abstract void printProxyStackTrace();
-
- public String toString() {
- return super.toString() + "Proxy: " + toBeanString(); //$NON-NLS1$ - toString's aren't nls'ed. //$NON-NLS-1$
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/UIRunner.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/UIRunner.java
deleted file mode 100644
index 94e500242..000000000
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/UIRunner.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: UIRunner.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:05 $
- */
-package org.eclipse.jem.internal.proxy.core;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.logging.Level;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-
-
-/**
- * The actual implementation of IUIRunner to run the build under
- * IProgressService control if in the UI thread.
- *
- * serialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = -7084137612344373381L;
- public AmbiguousMethodException() {
- }
- public AmbiguousMethodException(String msg) {
- super(msg);
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/CommandException.java b/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/CommandException.java
deleted file mode 100644
index e2883ff93..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/CommandException.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.common;
-/*
- * $RCSfile: CommandException.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:07 $
- */
-/**
- * An error occurred during command processing.
- *
- */
-
-public class CommandException extends Exception {
- /**
- * Comment for serialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = -2519238571145682514L;
- protected final Object fExceptionData;
-
- public CommandException() {
- fExceptionData = null;
- }
-
- public CommandException(Object data) {
- fExceptionData = data;
- }
-
- public CommandException(String msg, Object data) {
- super(msg);
- fExceptionData = data;
- }
-
- public Object getExceptionData() {
- return fExceptionData;
- }
-
- public boolean isRecoverable() {
- return false; // By default Command Exceptions are not recoverable.
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/GenericEventQueue.java b/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/GenericEventQueue.java
deleted file mode 100644
index 72fd9fd07..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/GenericEventQueue.java
+++ /dev/null
@@ -1,146 +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$
- * $Revision$ $Date$
- */
-package org.eclipse.jem.internal.proxy.common;
-
-import java.util.LinkedList;
-
-/**
- * A generic event queue. It runs on its own thread and will execute any queued up runnables.
- * null
to kick-start the thread if for some reason it may be waiting and it shouldn't be.
- *
- * @throws IllegalStateException thrown if the event queue thread has already been closed, or ended for some severe error.
- * @since 1.1.0.1
- */
- public void postEvent(Runnable runnable) {
- eventThread.postEvent(runnable);
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/ICallback.java b/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/ICallback.java
deleted file mode 100644
index 164d7e6d3..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/ICallback.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.common;
-/*
- * $RCSfile: ICallback.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:07 $
- */
-
-/**
- * This interface is to be implemented by any callback.
- * The callback will use the IVMCallbackServer passed in to
- * get callback handlers, and the id passed in is
- * to be passed to these handlers.
- */
-public interface ICallback {
-
- /**
- * Initialize the callback
- */
- public void initializeCallback(IVMCallbackServer vmServer, int callbackID);
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/ICallbackHandler.java b/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/ICallbackHandler.java
deleted file mode 100644
index 9b67ff265..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/ICallbackHandler.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.common;
-/*
- * $RCSfile: ICallbackHandler.java,v $
- * $Revision: 1.8 $ $Date: 2005/08/24 20:39:07 $
- */
-
-/**
- * This is the interface for a callback handler.
- * Users will talk to this interface to perform
- * callbacks.
- */
-public interface ICallbackHandler {
-
- /**
- * Callback, but send the parm as an object, ie. it must
- * be nothing but constants, e.g. String, Integer, or an
- * array of constants. Constants should not be things like
- * regular objects. This is because only standard java.lang
- * type constants can be assured to be available on the other
- * client. Also you don't want to send big objects. It must
- * be constants that don't need to be sent back for any reason
- * since their identity will be lost in the transfer.
- * null
if no parms, or it is an array of parms.
- * The parms
- * will be turned into proxies on the client vm. So the callback
- * will recieve an array of proxies to the values in the parms.
- * If any of the entries in the array is itself an array, a
- * proxy to the array will be created and sent. The array itself
- * will not be sent.
- * serialVersionUID
- *
- * @since 1.1.0.1
- */
- private static final long serialVersionUID = 7778842211073592790L;
-
- /**
- * Construct from an Error.
- * @param error The error that is the actual one. This will not be the cause, the message and stacktrace will be copied into this new error.
- *
- * @since 1.1.0.1
- */
- public UnresolvedCompilationError(Error error) {
- super(error.getMessage());
- setStackTrace(error.getStackTrace());
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/messages.properties b/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/messages.properties
deleted file mode 100644
index 937eea7b7..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/messages.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 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
-###############################################################################
-MethodHelper.NONSTATICINNERCLASS_WARNING=Class {0} is a non-static inner class. These cannot be instantiated at this time.
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/BeanProxyValueSender.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/BeanProxyValueSender.java
deleted file mode 100644
index 2631d1386..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/BeanProxyValueSender.java
+++ /dev/null
@@ -1,96 +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: BeanProxyValueSender.java,v $
- * $Revision: 1.3 $ $Date: 2005/05/11 19:01:12 $
- */
-package org.eclipse.jem.internal.proxy.remote;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-import org.eclipse.jem.internal.proxy.common.CommandException;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-import org.eclipse.jem.internal.proxy.core.ProxyPlugin;
-import org.eclipse.jem.internal.proxy.core.ThrowableProxy;
-
-/**
- * Useful in REM to get the array of BeanProxyValues.
- *
- * @since 1.1.0
- */
-public class BeanProxyValueSender implements Commands.ValueSender {
- protected int index = 0;
- protected Object[] array;
- private Exception exception;
- private final REMStandardBeanProxyFactory factory;
-
- /**
- * See if there was an exception thrown during reading.
- *
- * @return an exception or null
if no exception.
- *
- * @since 1.1.0
- */
- public Exception getException() {
- return exception;
- }
-
- public BeanProxyValueSender(REMStandardBeanProxyFactory factory) {
- this.factory = factory;
- }
- public BeanProxyValueSender(REMStandardBeanProxyFactory factory, Commands.ValueObject arrayHeader) {
- this(factory);
- initialize(arrayHeader);
- }
-
- public void initialize(Commands.ValueObject arrayHeader) {
- index = 0;
- // The array type doesn't matter, it will be an array of objects.
- // The values will either be IBeanProxies or an array, or constants.
- array = new Object[arrayHeader.anInt];
- }
-
- public void clear() {
- array = null;
- index = 0;
- }
-
- public Object[] getArray() {
- return array;
- }
-
- // A new value is being sent to the array
- // NOTE: It is important that this has been called within a transaction.
- public void sendValue(Commands.ValueObject value) {
- try {
- array[index++] = factory.getBeanProxy(value); // Add it to the array
- } catch (ThrowableProxy e) {
- // We can't stop it right away because we can't send exception on, however,
- // we can log it and save the exception.
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.ERROR, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- exception = e;
- } catch (CommandException e) {
- // We can't stop it right away because we can't send exception on, however,
- // we can log it and save the exception.
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.ERROR, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- exception = e;
- }
- }
-
- // The next entry is an array too!
- public Commands.ValueSender nestedArray(Commands.ValueObject arrayHeader) {
- BeanProxyValueSender sender = new BeanProxyValueSender(factory, arrayHeader);
- // Take the newly created array and put it into the current array.
- array[index++] = sender.getArray();
- return sender;
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/DebugModeHelper.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/DebugModeHelper.java
deleted file mode 100644
index a4c771c1b..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/DebugModeHelper.java
+++ /dev/null
@@ -1,365 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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: DebugModeHelper.java,v $
- * $Revision: 1.11 $ $Date: 2006/05/23 15:43:03 $
- */
-package org.eclipse.jem.internal.proxy.remote;
-
-
-import java.lang.reflect.*;
-
-import org.eclipse.core.runtime.Platform;
-import org.osgi.framework.Bundle;
-
-import org.eclipse.jem.internal.proxy.core.ProxyPlugin;
-/**
- * This is a helper for debug mode. It allows access to
- * the workbench, if available, or AWT, if available, for
- * the debug prompts. It uses reflection so that nothing is
- * forced to be loaded or pre-reqd. That way it can run headless.
- */
-
-class DebugModeHelper {
- boolean awt = false;
- boolean console = false;
- boolean setup = false;
- java.io.InputStreamReader inReader = null;
-
- // Workbench reflections
- Object display = null;
- Constructor cMB = null;
- Field fPrimaryModel = null;
- Method fasync = null;
- Method fsync = null;
- Method fSetText = null;
- Method fSetMessage = null;
- Method fOpen = null;
- Method fGetWorkbench = null;
- Class cSWT = null;
-
-
- // AWT Reflections
- Class cMessageDialog = null;
- Method fDoit = null;
-
- protected void setupType() {
- if (setup)
- return;
-
- setup = true;
-
- // See if use system console instead. If false or not set, then try to query usage.
- console = "true".equalsIgnoreCase(Platform.getDebugOption(ProxyPlugin.getPlugin().getBundle().getSymbolicName()+ProxyRemoteUtil.IO_CONSOLE)); //$NON-NLS-1$
- if (console)
- return;
-
- try {
- // See if PlatformUI plugin available.
- Bundle uiBundle = Platform.getBundle("org.eclipse.ui"); //$NON-NLS-1$
- if (uiBundle == null) {
- setupAWT(); // UI not available, try through AWT.
- return;
- }
-
- // Setup Eclipse
- Class cPlatformUI = uiBundle.loadClass("org.eclipse.ui.PlatformUI"); //$NON-NLS-1$
- Method isWBRunning = cPlatformUI.getMethod("isWorkbenchRunning", null); //$NON-NLS-1$
- if (!((Boolean) isWBRunning.invoke(null, null)).booleanValue()) {
- setupAWT(); // UI not available, try through AWT.
- return;
- }
-
- fGetWorkbench = cPlatformUI.getMethod("getWorkbench", null); //$NON-NLS-1$
- Object w = fGetWorkbench.invoke(null, null);
-
- if (w != null) {
- Class cDisplay = uiBundle.loadClass("org.eclipse.swt.widgets.Display"); //$NON-NLS-1$
- Method fGetCurrent = cDisplay.getMethod("getCurrent", null); //$NON-NLS-1$
- Method fGetDefault = cDisplay.getMethod("getDefault", null); //$NON-NLS-1$
- fasync = cDisplay.getMethod("asyncExec", new Class[] {Runnable.class}); //$NON-NLS-1$
- fsync = cDisplay.getMethod("syncExec", new Class[] {Runnable.class}); //$NON-NLS-1$
-
- // Get the display
- display = fGetCurrent.invoke(null, null);
- if (display == null)
- display = fGetDefault.invoke(null, null);
- }
-
- if (display != null) {
- Class cShell = uiBundle.loadClass("org.eclipse.swt.widgets.Shell"); //$NON-NLS-1$
- Class cMessageBox = uiBundle.loadClass("org.eclipse.swt.widgets.MessageBox"); //$NON-NLS-1$
- cMB = cMessageBox.getConstructor(new Class[] {cShell, Integer.TYPE});
-
- fSetText = cMessageBox.getMethod("setText", new Class[] {String.class}); //$NON-NLS-1$
- fSetMessage = cMessageBox.getMethod("setMessage", new Class[] {String.class}); //$NON-NLS-1$
- fOpen = cMessageBox.getMethod("open", null); //$NON-NLS-1$
-
- cSWT = uiBundle.loadClass("org.eclipse.swt.SWT"); //$NON-NLS-1$
- fPrimaryModel = cSWT.getField("PRIMARY_MODAL"); //$NON-NLS-1$
- } else {
- setupAWT(); // UI not available, try through AWT.
- }
- } catch (NoSuchMethodException e) {
- } catch (ClassNotFoundException e) {
- } catch (IllegalAccessException e) {
- } catch (InvocationTargetException e) {
- } catch (NoSuchFieldException e) {
- }
-
- return;
-
- }
-
- protected void setupAWT() {
-
- // See if AWT is available.
- try {
- cMessageDialog = Class.forName("org.eclipse.jem.internal.proxy.remote.MessageDialog"); //$NON-NLS-1$
- fDoit = cMessageDialog.getMethod("doit", new Class[] {String.class, String.class, String.class, String.class}); //$NON-NLS-1$
- awt = true;
- return;
- } catch (ClassNotFoundException e) {
- } catch (NoSuchMethodException e) {
- }
- console = true; // No AWT either, i.e. true headless environment
- }
-
- public boolean debugMode(final String name) {
- boolean debugMode = "true".equalsIgnoreCase(Platform.getDebugOption(ProxyPlugin.getPlugin().getBundle().getSymbolicName()+ProxyRemoteUtil.DEBUG_VM)); //$NON-NLS-1$
- if (!debugMode)
- return debugMode;
-
- setupType();
-
- // See if use system console instead. If false or not set, then try to query usage.
- if (console)
- return debugModeConsole(name);
-
- if (awt)
- return debugModeAWT(name);
-
- try {
- final Field fYes = cSWT.getField("YES"); //$NON-NLS-1$
- Field fNo = cSWT.getField("NO"); //$NON-NLS-1$
- Field fIcon = cSWT.getField("ICON_QUESTION"); //$NON-NLS-1$
-
- final int style = fYes.getInt(null) | fNo.getInt(null) | fIcon.getInt(null) | fPrimaryModel.getInt(null);
- final boolean[] db = new boolean[1];
-
- fsync.invoke(display, new Object[] { new Runnable() {
- /**
- * @see java.lang.Runnable#run()
- */
- public void run() {
- try {
- Object shell = getActiveShell();
- Object mb = cMB.newInstance(new Object[] {shell, new Integer(style)});
- fSetText.invoke(mb, new Object[] {"Debug RemoteVM?"}); //$NON-NLS-1$
- fSetMessage.invoke(mb, new Object[] {"Do you want to start the remote vm ("+name+") in debug mode?"}); // Not NLS'd because this is for internal developers only //$NON-NLS-1$ //$NON-NLS-2$
-
- db[0] = fYes.get(null).equals(fOpen.invoke(mb, null));
- } catch (InstantiationException e) {
- } catch (IllegalAccessException e) {
- } catch (InvocationTargetException e) {
- }
- }
- }});
- return db[0];
- } catch (IllegalAccessException e) {
- } catch (InvocationTargetException e) {
- } catch (NoSuchFieldException e) {
- }
-
- return debugModeAWT(name);
- }
-
-
- /*
- * This must be called from within the display thread.
- */
- protected Object getActiveShell() {
- Object shell = null;
- try {
- Object w = fGetWorkbench.invoke(null, null);
- Object ww = null;
- if (w != null) {
- Class cWorkbench = w.getClass();
- Method getWorkbenchWindow = cWorkbench.getMethod("getActiveWorkbenchWindow", null); //$NON-NLS-1$
- ww = getWorkbenchWindow.invoke(w, null);
- }
- if (ww != null) {
- Class cWorkbenchWindow = ww.getClass();
- Method getShell = cWorkbenchWindow.getMethod("getShell", null); //$NON-NLS-1$
- shell = getShell.invoke(ww, null);
- }
- } catch (IllegalAccessException e) {
- } catch (InvocationTargetException e) {
- } catch (NoSuchMethodException e) {
- }
-
- return shell;
- }
-
- protected boolean debugModeAWT(String name) {
-
- // See if AWT is available.
- try {
- Integer r = (Integer) fDoit.invoke(null, new Object[] {"Debug RemoteVM?", "Do you want to start the remote vm ("+name+") in debug mode?", "Yes", "No"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
- return r.intValue() == 1; // i.e. button1 or "yes" was hit.
- } catch (IllegalAccessException e) {
- } catch (InvocationTargetException e) {
- }
-
- return false; // No AWT either, i.e. headless environment, shouldn't of gotton here.
- }
-
- protected boolean debugModeConsole(String name) {
-
- // Debug through the console
- inReader = new java.io.InputStreamReader(System.in);
- System.out.println("Do you want to start the remote vm ("+name+") in debug mode? (Enter Y or N):"); //$NON-NLS-1$ //$NON-NLS-2$
- char r = ' ';
- try {
- r = Character.toLowerCase((char) inReader.read());
- // Need to flush the input reader now.
- while (inReader.ready())
- inReader.read();
- return r == 'y'; // i.e. "y" was entered.
- } catch (java.io.IOException e) {
- }
-
- return false; // Error reading, so no debugging.
- }
-
- /**
- * Return true if continue debugging.
- */
- public boolean promptPort(final int dport) {
- if (awt)
- return promptPortAWT(dport);
- else if (console)
- return promptPortConsole(dport);
-
- try {
- final Field fOK = cSWT.getField("OK"); //$NON-NLS-1$
- Field fCancel = cSWT.getField("CANCEL"); //$NON-NLS-1$
- Field fIcon = cSWT.getField("ICON_WORKING"); //$NON-NLS-1$
-
- final int style = fOK.getInt(null) | fCancel.getInt(null) | fIcon.getInt(null) | fPrimaryModel.getInt(null);
-
- final boolean[] ok = new boolean[1];
- fsync.invoke(display, new Object[] { new Runnable() {
- /**
- * @see java.lang.Runnable#run()
- */
- public void run() {
- try {
- Object shell = getActiveShell();
- Object mb = cMB.newInstance(new Object[] {shell, new Integer(style)});
- fSetText.invoke(mb, new Object[] {"Connect Debugger to RemoteVM!"}); //$NON-NLS-1$
- fSetMessage.invoke(mb, new Object[] {"You must now attach the debugger to port number "+dport+". Press OK when the debugger is attached. The program will not continue properly without the debugger being attached. Press Cancel if you could not connect the debugger. This will still cause an error, but it will clean up better."}); // Not NLS'd because this is for internal developers only //$NON-NLS-1$ //$NON-NLS-2$
- ok[0] = fOK.get(null).equals(fOpen.invoke(mb, null));
- } catch (InstantiationException e) {
- } catch (IllegalAccessException e) {
- } catch (InvocationTargetException e) {
- }
- }
- }});
- return ok[0];
- } catch (NoSuchFieldException e) {
- } catch (InvocationTargetException e) {
- } catch (IllegalAccessException e) {
- }
- return false;
- }
-
- protected boolean promptPortAWT(int dport) {
- try {
- Integer r = (Integer) fDoit.invoke(null, new Object[] {"Connect Debugger to RemoteVM!", "You must now attach the debugger to port number "+dport+". Press OK when the debugger is attached. The program will not continue properly without the debugger being attached. Press Cancel if you could not connect the debugger. This will still cause an error, but it will clean up better.", "OK", "Cancel"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
- return r.intValue() == 1; // i.e. button1 or "OK" was hit.
- } catch (InvocationTargetException e) {
- } catch (IllegalAccessException e) {
- }
-
- return false;
- }
-
- protected boolean promptPortConsole(int dport) {
- System.out.println("You must now attach the debugger to port number "+dport+". Enter 'y' when the debugger is attached. The program will not continue properly without the debugger being attached. Press 'n' if you could not connect the debugger. This will still cause an error, but it will clean up better. Enter 'y' or 'n':"); //$NON-NLS-1$ //$NON-NLS-2$
- char r = ' ';
- try {
- r = Character.toLowerCase((char) inReader.read());
- while (inReader.ready())
- inReader.read();
- return r == 'y'; // i.e. "y" was entered, go on
- } catch (java.io.IOException e) {
- }
-
- return false;
- }
-
- /**
- * Display an error msg. There will only be an OK button.
- * This will always display, debug mode won't be looked at.
- * This is for errors. This will be displayed async, so this
- * may return before the msg has been displayed and answered,
- * but since the only response is OK, it doesn't really matter.
- */
- public void displayErrorMessage(final String title, final String msg) {
- setupType();
- if (console)
- displayErrorMessageConsole(title, msg);
- else if (awt)
- displayErrorMessageAWT(title, msg);
- else {
- try { // This needs to be done in display thread.
- Field fOK = cSWT.getField("OK"); //$NON-NLS-1$
- Field fIcon = cSWT.getField("ICON_ERROR"); //$NON-NLS-1$
-
- final int style = fOK.getInt(null) | fIcon.getInt(null) | fPrimaryModel.getInt(null);
- fasync.invoke(display, new Object[] { new Runnable() {
- /**
- * @see java.lang.Runnable#run()
- */
- public void run() { try { Object shell = getActiveShell();
- Object mb = cMB.newInstance(new Object[] { shell, new Integer(style)});
-
- fSetText.invoke(mb, new Object[] { title });
- fSetMessage.invoke(mb, new Object[] { msg });
- fOpen.invoke(mb, null);
- } catch (InstantiationException e) {
- } catch (IllegalAccessException e) {
- } catch (InvocationTargetException e) {
- }
- }
- }
- });
- } catch (NoSuchFieldException e) {
- } catch (InvocationTargetException e) {
- } catch (IllegalAccessException e) {
- }
- }
- }
-
- protected void displayErrorMessageConsole(String title, String msg) {
- System.out.println("Error: " + title); //$NON-NLS-1$
- System.out.println(" " + msg); //$NON-NLS-1$
- }
-
- protected void displayErrorMessageAWT(String title, String msg) {
- try {
- fDoit.invoke(null, new Object[] {title, msg, ProxyRemoteMessages.OK_7, null});
- } catch (InvocationTargetException e) {
- } catch (IllegalAccessException e) {
- }
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMBeanProxy.java
deleted file mode 100644
index 15ea49325..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMBeanProxy.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: IREMBeanProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.IBeanProxy;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * A Remote VM proxy. All IBeanProxy implementations
- * for the Remote VM must also implement this interface.
- * This is necessary for proper functioning.
- *
- * NOTE: This is an internal interface to the Remote VM Proxy.
- * It MUST not be used outside of the proxy factory family.
- */
-
-public interface IREMBeanProxy extends IBeanProxy {
- /**
- * Return the ID of this proxy
- */
- public Integer getID();
-
- /**
- * Proxy is about to be released, MUST mark it invalid.
- * This is required. Resources can also be cleaned up
- * if they are being held and need to be cleaned up.
- *
- * NOTE: This method will only be called when the proxy
- * is explicitly released. If it is simply garbage collected,
- * then this method will not be called. Simple garbage collection
- * means that no one is referencing this proxy. The proxy factory
- * will know what id this proxy was referencing and will release it
- * on the server at GC time.
- *
- * If there are resources
- * that absolutely must be released, then the finalize method
- * should be implemented to do the clean up. However, try not
- * to have this be the case. Finalize methods add overhead that is
- * usually better not to have. The better way is for any users
- * that get this kind of proxy object know to call release on
- * ProxyFactoryRegistry to release it before garbage collection.
- */
- public void release();
-
- /**
- * Render this bean for transport to the server into a Commands.ValueObject.
- * For example, a string may put a string. An id type may put out the id.
- */
- public void renderBean(Commands.ValueObject renderInto);
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMBeanTypeProxy.java
deleted file mode 100644
index 6c0fc4fd9..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMBeanTypeProxy.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: IREMBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * All bean type proxies in remote vm must implement this interface.
- *
- * NOTE: This is an internal interface to the Remote VM Proxy.
- * It MUST not be used outside of the proxy factory family.
- */
-public interface IREMBeanTypeProxy extends IBeanTypeProxy, IREMBeanProxy {
-
-/**
- * Create a new bean proxy with the specified id.
- */
-public IREMBeanProxy newBeanProxy(Integer anID);
-
-/**
- * newBeanTypeForClass: Create a new beantypeproxy of this kind for the given class.
- * This is used by beantype proxy factory when creating a beantype proxy for a subclass.
- * This is because subclasses, unless explicitly overridden, should use the same kind
- * of beantype proxy. This way if anything special is needed for a specific type, then
- * that can be done.
- */
-public IREMBeanTypeProxy newBeanTypeForClass(Integer anID, String aClassname, boolean anAbstract);
-
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMBeanTypeProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMBeanTypeProxyFactory.java
deleted file mode 100644
index a28377fa1..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMBeanTypeProxyFactory.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: IREMBeanTypeProxyFactory.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * Interface for Remote VM Bean Type Proxy Factories.
- * All extension factories for Remote VM must implement this interface.
- */
-
-public interface IREMBeanTypeProxyFactory extends IBeanTypeProxyFactory {
-/**
- * Return a bean type proxy for the class name.
- * Return null if the extension factory doesn't handle this class.
- * Don't register any proxies returned, they will automatically be registered.
- * This should only return bean type proxies where the factory can determine
- * everything it needs, such as supertype and classID.
- * NOTE: This is implemented for the usage of the
- * standard BeanType proxy factory. It should
- * NOT be called by anyone else. They should
- * go through the IStandardBeanTypeFactory
- * instead. The standard bean type factory
- * will call this method on the appropriate
- * extension when it needs to.
- *
- * Creation date: (12/3/99 2:26:12 PM)
- */
-public IREMBeanTypeProxy getExtensionBeanTypeProxy(String typeName);
-
-/**
- * Return a bean type proxy for the class name.
- * Return null if the extension factory doesn't handle this class.
- * Don't register any proxies returned, they will automatically be registered.
- * This should only return bean type proxies where the factory can determine
- * everything it needs, such as supertype and classID.
- * NOTE: This is implemented for the usage of the
- * standard BeanType proxy factory. It should
- * NOT be called by anyone else. They should
- * go through the IStandardBeanTypeFactory
- * instead. The standard bean type factory
- * will call this method on the appropriate
- * extension when it needs to.
-
- * @param typeName
- * @param expression
- * @return
- *
- * @since 1.1.0
- */
-public IProxyBeanType getExtensionBeanTypeProxy(String typeName, IExpression expression);
-
-/**
- * Return a bean type proxy for the class id and class name.
- * Return null if the extension factory doesn't handle this class.
- * Don't register any proxies returned, they will automatically be registered.
- * This will be called in the case that a new class id was returned
- * from the server that we don't have registered yet. Implementers will
- * created a proxy out of the name and the id and return it.
- * The supertype will be passed in so that the extension factory doesn't need to
- * try to find it.
- * NOTE: This is implemented for the usage of the
- * standard BeanType proxy factory. It should
- * NOT be called by anyone else. They should
- * go through the IStandardBeanTypeFactory
- * instead. The standard bean type factory
- * will call this method on the appropriate
- * extension when it needs to.
- *
- * Creation date: (12/3/99 2:26:12 PM)
- */
-public IREMBeanTypeProxy getExtensionBeanTypeProxy(String typeName, Integer classID, IBeanTypeProxy superType);
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMConnection.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMConnection.java
deleted file mode 100644
index a0b653632..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMConnection.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: IREMConnection.java,v $
- * $Revision: 1.7 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.common.CommandException;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * Interface for the Remote VM Connection object.
- */
-
-public interface IREMConnection {
-
- /**
- * Did this construct correctly.
- * This is needed because an exception could be thrown in the ctor and
- * that's not a good thing to do.
- */
- public boolean isConnected();
-
- /**
- * Terminate the server.
- * WARNING: This is only here so that factory can to it. Termination should ONLY
- * be done by the Factory not any one else.
- */
- public void terminateServer();
-
- /**
- * Close the connection.
- */
- public void close();
-
- /**
- * Get the class information. Null return if not found.
- */
- public Commands.GetClassReturn getClass(String className) throws CommandException;
-
- /**
- * Get the class information from the id.
- */
- public Commands.GetClassIDReturn getClassFromID(int classID) throws CommandException;
-
-
-
- /**
- * Get object data from an id.
- */
- public void getObjectData(int objectID, Commands.ValueObject valueReturn) throws CommandException;
-
- /**
- * Get a new instance using the initialization string.
- */
- public void getNewInstance(int classID, String initString, Commands.ValueObject newInstance) throws CommandException;
-
- /**
- * Invoke the get array contents command.
- * @param arrayID
- * @param returnValue
- * @throws CommandException
- *
- * @since 1.1.0
- */
- public void getArrayContents(int arrayID, Commands.ValueObject returnValue) throws CommandException;
-
- /**
- * Invoke the method call.
- * The parms valueObject must represent an Object[] (either through ARRAY_IDS or OBJECT)
- */
- public void invokeMethod(int methodID, Commands.ValueObject invokeOn, Commands.ValueObject parms, Commands.ValueObject returnValue) throws CommandException;
-
- /**
- * Invoke the method call with method passed.
- * The parms valueObject must represent an Object[] (either through ARRAY_IDS or OBJECT)
- */
- public void invokeMethod(Commands.ValueObject classType, String methodName, Commands.ValueObject parmTypes, Commands.ValueObject invokeOn, Commands.ValueObject parms, Commands.ValueObject returnValue) throws CommandException;
-
- /**
- * Release the id. It is no longer needed on the client.
- */
- public void releaseID(int id);
-
- /**
- * Read array values as BeanProxies into valueSender.
- * @param returnValue
- * @param valueSender
- * @param allowFlag true
to allow FLAG values, false
if not allow flag values.
- *
- * @throws CommandException
- *
- * @since 1.1.0
- */
- public void readProxyArrayValues(Commands.ValueObject returnValue, Commands.ValueSender valueSender, boolean allowFlag) throws CommandException;
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMConstantBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMConstantBeanProxy.java
deleted file mode 100644
index f8daae036..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMConstantBeanProxy.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: IREMConstantBeanProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-/**
- * Tag interface to indicate this proxy is a constant proxy, i.e. there
- * is no bean on the server representing this (e.g. Strings and Integers).
- */
-
-public interface IREMConstantBeanProxy extends IREMBeanProxy {
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMConstantBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMConstantBeanTypeProxy.java
deleted file mode 100644
index e1a735238..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMConstantBeanTypeProxy.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: IREMConstantBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * This interface is used for any BeanType that represents a constant type bean.
- * These are types that are immutable and a copy of the actual value is kept here
- * in the client and not stored as an object id.
- */
-
-public interface IREMConstantBeanTypeProxy extends IBeanTypeProxy {
-
- /**
- * Create a new bean proxy the ValueObject passed in.
- */
- public IBeanProxy newBeanProxy(Commands.ValueObject value);
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMExpressionConnection.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMExpressionConnection.java
deleted file mode 100644
index 2de047ea8..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMExpressionConnection.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: IREMExpressionConnection.java,v $
- * $Revision: 1.7 $ $Date: 2005/08/24 20:39:06 $
- */
-package org.eclipse.jem.internal.proxy.remote;
-
-import java.io.IOException;
-
-import org.eclipse.jem.internal.proxy.common.CommandException;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-
-/**
- * Additional function on a connection for expression tree processing.
- * Connections returned (IREMConnections) will always also implement IREMExpressionConnection,
- * but they are separated so that expression functions don't pollute the regular
- * connection interface with added commands that shouldn't be called except
- * when processing an expression. If they were called out of order, big problems
- * can occur.
- * null
if no proxy ids.
- * @param sender sender to use to process the returned proxy ids, or null
if expecting no proxy resolutions.
- *
- * @throws CommandException
- *
- * @since 1.0.0
- */
- public void pullValue(int expressionID, Commands.ValueObject proxyids, Commands.ValueSender sender) throws CommandException;
-
- /**
- * Send the sync command, with the proxyids of intereset. If an error
- * occurs, command exception is thrown.
- * null
if no proxy ids.
- * @param sender sender to use to process the proxy id resolutions, or null
if expecting no proxy ids.
- *
- * @throws CommandException
- *
- * @since 1.0.0
- */
- public void sync(int expressionID, Commands.ValueObject proxyids, Commands.ValueSender sender) throws CommandException;
-
- /**
- * Stop expression processing.
- * @param expressionID
- *
- * @throws IOException
- *
- * @since 1.0.0
- */
- public void stopExpressionProcessing(int expressionID) throws IOException;
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMMethodProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMMethodProxy.java
deleted file mode 100644
index e92120112..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMMethodProxy.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: IREMMethodProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * This interface for REMMethodProxy allows the invokation where
- * the parms are a mixture of constant objects (i.e. can be sent
- * as values to the client) and IBeanProxies. It is only to be
- * used by other factories that want to invoke methods where
- * some of the parms are constants so that there is no need
- * create IBeanProxies for them, e.g. String. This should be
- * used with extreme care.
- */
-
-public interface IREMMethodProxy extends IMethodProxy, IREMBeanProxy {
- public IBeanProxy invokeWithParms(IBeanProxy subject, Object[] parms) throws ThrowableProxy;
-
-
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMSpecialBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMSpecialBeanTypeProxy.java
deleted file mode 100644
index 65974d7f1..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/IREMSpecialBeanTypeProxy.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: IREMSpecialBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-import org.eclipse.jem.internal.proxy.core.IBeanTypeProxy;
-/**
- * This is a special interface for allowing abstract
- * types to create the correct subclass types.
- * Only ones that use REMAnAbstractBeanTypeProxy
- * should implement this.
- */
-public interface IREMSpecialBeanTypeProxy {
-
- /**
- * Called by REMAnAbstractBeanTypeProxy to create a subclass of it.
- * This allows correct types to be created depending upon the
- * main super type.
- */
- public IREMBeanTypeProxy newBeanTypeForClass(Integer anID, String aClassname, boolean anAbstract, IBeanTypeProxy superType);
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalFileConfigurationContributorController.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalFileConfigurationContributorController.java
deleted file mode 100644
index 523261126..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalFileConfigurationContributorController.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: LocalFileConfigurationContributorController.java,v $
- * $Revision: 1.13 $ $Date: 2005/10/26 18:48:19 $
- */
-package org.eclipse.jem.internal.proxy.remote;
-
-import java.net.URL;
-import java.util.*;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.core.*;
-import org.eclipse.jdt.launching.IRuntimeClasspathEntry;
-import org.eclipse.jdt.launching.JavaRuntime;
-import org.osgi.framework.Bundle;
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
-
-/**
- * This version works with local files being added to the classpath, and the classpath is strings.
- *
- * @since 1.0.0
- */
-public class LocalFileConfigurationContributorController implements IConfigurationContributionController {
-
- private URL[] classpathInfo;
- private URL[][] bootpathInfo;
- private List classpath;
- private List prependBootpath;
- private List appendBootpath;
- private List javaLibraryPath;
- private ProxyLaunchSupport.LaunchInfo launchInfo;
-
- public LocalFileConfigurationContributorController(URL[] classpathInfo, URL[][] bootpathInfo, ProxyLaunchSupport.LaunchInfo launchInfo) {
- this.classpathInfo = classpathInfo;
- this.bootpathInfo = bootpathInfo;
- this.launchInfo = launchInfo;
- }
-
- public URL[] getFinalClasspath() {
- if (classpath == null)
- return classpathInfo;
- else
- return (URL[]) classpath.toArray(new URL[classpath.size()]);
- }
-
- public URL[] getFinalPrependBootpath() {
- if (prependBootpath == null)
- return bootpathInfo[0];
- else
- return (URL[]) prependBootpath.toArray(new URL[prependBootpath.size()]);
- }
-
- public URL[] getFinalAppendBootpath() {
- if (appendBootpath == null)
- return bootpathInfo[2];
- else
- return (URL[]) prependBootpath.toArray(new URL[appendBootpath.size()]);
- }
-
- public List getFinalJavaLibraryPath() {
- if (javaLibraryPath == null)
- return Collections.EMPTY_LIST;
- else
- return javaLibraryPath;
- }
-
- protected List getClasspath() {
- if (classpath == null) {
- classpath = new ArrayList(classpathInfo.length);
- addAll(classpath, classpathInfo, -1);
- }
- return classpath;
- }
-
- protected List getPrependBootpath() {
- if (prependBootpath == null) {
- if (bootpathInfo[0] != null) {
- prependBootpath = new ArrayList(bootpathInfo[0].length);
- addAll(prependBootpath, bootpathInfo[0], -1);
- } else
- prependBootpath = new ArrayList(1);
- }
- return prependBootpath;
- }
-
- protected List getAppendBootpath() {
- if (appendBootpath == null) {
- if (bootpathInfo[2] != null) {
- appendBootpath = new ArrayList(bootpathInfo[2].length);
- addAll(appendBootpath, bootpathInfo[2], -1);
- } else
- appendBootpath = new ArrayList(1);
- }
- return appendBootpath;
- }
-
- protected List getJavaLibraryPath() {
- if (javaLibraryPath == null) {
- javaLibraryPath = new ArrayList(3);
- }
- return javaLibraryPath;
- }
-
- protected void addAll(List toList, Object[] array, int loc) {
- for (int i = 0; i < array.length; i++) {
- // Need a dup check, sometimes dups come in especially during development
- if (toList.contains(array[i]))
- continue;
- if (loc == -1)
- toList.add(array[i]);
- else
- toList.add(loc++, array[i]);
- }
- }
-
- protected void addLocations(List toList, IRuntimeClasspathEntry[] entries) {
- for (int i = 0; i < entries.length; i++) {
- IRuntimeClasspathEntry entry = entries[i];
- URL location = ProxyLaunchSupport.convertStringPathToURL(entry.getLocation());
- if (location != null && !toList.contains(location))
- toList.add(location);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionController#getJavaProject()
- */
- public IJavaProject getJavaProject() {
- return launchInfo.getJavaProject();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionController#contributeProject(org.eclipse.core.resources.IProject)
- */
- public void contributeProject(IProject project) throws CoreException {
- IJavaProject jproject = JavaCore.create(project);
- IRuntimeClasspathEntry[] projPath = JavaRuntime.computeUnresolvedRuntimeClasspath(jproject);
- boolean jreContainerFound= false;
- for (int i = 0; i < projPath.length; i++) {
- IRuntimeClasspathEntry entry= projPath[i];
- if (entry.getClasspathProperty() == IRuntimeClasspathEntry.BOOTSTRAP_CLASSES || entry.getClasspathProperty() == IRuntimeClasspathEntry.STANDARD_CLASSES) {
- int entryKind= entry.getClasspathEntry().getEntryKind();
- String segment0= entry.getPath().segment(0);
- if (entryKind == IClasspathEntry.CPE_CONTAINER && JavaRuntime.JRE_CONTAINER.equals(segment0)
- || entryKind == IClasspathEntry.CPE_VARIABLE && JavaRuntime.JRELIB_VARIABLE.equals(segment0)) {
- jreContainerFound= true;
- } else {
- if (jreContainerFound)
- addLocations(getAppendBootpath(), JavaRuntime.resolveRuntimeClasspathEntry(entry, jproject));
- else
- addLocations(getPrependBootpath(), JavaRuntime.resolveRuntimeClasspathEntry(entry, jproject));
- }
- } else {
- addLocations(getClasspath(), JavaRuntime.resolveRuntimeClasspathEntry(entry, jproject));
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionController#contributeClasspath(java.lang.String, int)
- */
- public void contributeClasspath(String classpath, int typeFlag) {
- contributeClasspath(ProxyLaunchSupport.convertStringPathToURL(classpath), typeFlag);
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionController#contributeClasspath(java.net.URL, int)
- */
- public void contributeClasspath(URL classpathURL, int typeFlag) {
- if (classpathURL == null)
- return;
- switch (typeFlag) {
- case PREPEND_BOOT_CLASSPATH:
- if (!getPrependBootpath().contains(classpathURL))
- getPrependBootpath().add(classpathURL);
- break;
- case PREPEND_USER_CLASSPATH:
- if (!getClasspath().contains(classpathURL))
- getClasspath().add(0, classpathURL);
- break;
- case APPEND_USER_CLASSPATH:
- if (!getClasspath().contains(classpathURL))
- getClasspath().add(classpathURL);
- break;
- case APPEND_BOOT_CLASSPATH:
- if (!getAppendBootpath().contains(classpathURL))
- getAppendBootpath().add(classpathURL);
- break;
- case APPEND_JAVA_LIBRARY_PATH:
- if (!getJavaLibraryPath().contains(classpathURL))
- getJavaLibraryPath().add(classpathURL);
- break;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionController#contributeClasspath(org.osgi.framework.Bundle, java.lang.String, int, boolean)
- */
- public void contributeClasspath(Bundle bundle, String relativePath, int typeFlag, boolean nlsLocalize) {
- // If not nls localize, or if it is java library path, then just find the one in the plugin/fragment and add it.
- if (nlsLocalize)
- contributeClasspath(ProxyPlugin.getPlugin().urlLocalizeAllFromBundleAndFragments(bundle, relativePath), typeFlag);
- else if (typeFlag == IConfigurationContributionController.APPEND_JAVA_LIBRARY_PATH) {
- if (relativePath == null || relativePath.length() == 0) {
- // PDE is not here to help us extract that @#$ dll
- JEMUtilPlugin.getLogger().log("Can't extract a directory from the root of a plugin."); //$NON-NLS-1$
- return;
- }
- URL contribution = ProxyPlugin.getPlugin().urlLocalizeFromBundleAndFragments(bundle, relativePath);
- contributeClasspath(contribution, typeFlag);
- } else {
- if (relativePath != null)
- contributeClasspath(ProxyPlugin.getPlugin().urlLocalizeFromBundleOnly(bundle, relativePath), typeFlag);
- else
- contributeClasspath(ProxyPlugin.getPlugin().urlLocalizeBundle(bundle), typeFlag);
- }
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionController#contributeClasspath(org.osgi.framework.Bundle, org.eclipse.core.runtime.IPath, int, boolean)
- */
- public void contributeClasspath(Bundle bundle, IPath relativePath, int typeFlag, boolean nlsLocalize) {
- if (nlsLocalize)
- if (relativePath != null)
- contributeClasspath(ProxyPlugin.getPlugin().urlLocalizeAllFromBundleAndFragments(bundle, relativePath), typeFlag);
- else
- contributeClasspath(ProxyPlugin.getPlugin().urlLocalizeBundleAndFragments(bundle), typeFlag);
- else if (typeFlag == IConfigurationContributionController.APPEND_JAVA_LIBRARY_PATH) {
- if (relativePath == null || relativePath.segmentCount() == 0) {
- // PDE is not here to help us extract that @#$ dll
- JEMUtilPlugin.getLogger().log("Can't extract a directory from the root of a plugin."); //$NON-NLS-1$
- return;
- }
- URL contribution = ProxyPlugin.getPlugin().urlLocalizeFromBundleAndFragments(bundle, relativePath);
- contributeClasspath(contribution, typeFlag);
- } else {
- if (relativePath != null)
- contributeClasspath(ProxyPlugin.getPlugin().urlLocalizeFromBundleOnly(bundle, relativePath), typeFlag);
- else
- contributeClasspath(ProxyPlugin.getPlugin().urlLocalizeBundle(bundle), typeFlag);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionController#contributeClasspath(java.lang.String[], int)
- */
- public void contributeClasspath(String[] classpaths, int typeFlag) {
- contributeClasspath(ProxyLaunchSupport.convertStringPathsToURL(classpaths), typeFlag);
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionController#contributeClasspath(java.net.URL[], int)
- */
- public void contributeClasspath(URL[] classpathURLs, int typeFlag) {
- if (classpathURLs == null)
- return;
- switch (typeFlag) {
- case PREPEND_BOOT_CLASSPATH:
- addAll(getPrependBootpath(), classpathURLs, -1);
- break;
- case PREPEND_USER_CLASSPATH:
- addAll(getClasspath(), classpathURLs, 0);
- break;
- case APPEND_USER_CLASSPATH:
- addAll(getClasspath(), classpathURLs, -1);
- break;
- case APPEND_BOOT_CLASSPATH:
- addAll(getAppendBootpath(), classpathURLs, -1);
- break;
- case APPEND_JAVA_LIBRARY_PATH:
- addAll(getJavaLibraryPath(), classpathURLs, -1);
- break;
- }
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalProxyLaunchDelegate.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalProxyLaunchDelegate.java
deleted file mode 100644
index c59772c15..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalProxyLaunchDelegate.java
+++ /dev/null
@@ -1,475 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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: LocalProxyLaunchDelegate.java,v $ $Revision: 1.35 $ $Date: 2006/05/23 15:43:03 $
- */
-package org.eclipse.jem.internal.proxy.remote;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.*;
-import java.text.MessageFormat;
-import java.util.*;
-import java.util.logging.Level;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.core.*;
-import org.eclipse.debug.core.model.*;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.launching.*;
-
-import org.eclipse.jem.internal.proxy.common.remote.ExpressionCommands;
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.remote.awt.REMRegisterAWT;
-import org.eclipse.jem.util.TimerTests;
-import org.eclipse.jem.util.logger.proxy.Logger;
-
-
-/**
- * Launch Delegate for launching Local (i.e. remote vm is on local system). Here "remote" means the
- * registry is not in the IDE but in a separate VM, and "local" means that is in on the local
- * physical machine and not on a separate machine.
- *
- * @since 1.0.0
- */
-public class LocalProxyLaunchDelegate extends AbstractJavaLaunchConfigurationDelegate {
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate#launch(org.eclipse.debug.core.ILaunchConfiguration,
- * java.lang.String, org.eclipse.debug.core.ILaunch,
- * org.eclipse.core.runtime.IProgressMonitor)
- */
- public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor pm) throws CoreException {
-
- String launchKey = configuration.getAttribute(IProxyConstants.ATTRIBUTE_LAUNCH_KEY, (String) null);
- if (launchKey == null)
- abort(ProxyRemoteMessages.ProxyRemoteNoLaunchKey, null, 0);
-
- // In Eclipse, even if private, a launch will show up in the debug process tree and in the console viewer.
- // To be absolutely private, we need to remove the launch which has already been added.
- if (ProxyLaunchSupport.ATTR_PRIVATE != null && configuration.getAttribute(ProxyLaunchSupport.ATTR_PRIVATE, false))
- DebugPlugin.getDefault().getLaunchManager().removeLaunch(launch);
- if (pm == null) {
- pm = new NullProgressMonitor();
- }
-
- IJavaProject project = getJavaProject(configuration);
- String name = configuration.getAttribute(IProxyConstants.ATTRIBUTE_VM_TITLE, (String) null);
- if (name == null)
- name = MessageFormat.format(ProxyRemoteMessages.ProxyRemoteVMName, new Object[] { project != null ? project.getProject().getName() : "" }); //$NON-NLS-1$
- else
- name = MessageFormat.format(ProxyRemoteMessages.ProxyRemoteVMNameWithComment, new Object[] { project != null ? project.getProject().getName() : "", name }); //$NON-NLS-1$
-
- String stepId = "Launch VM ( " + name + " )"; //$NON-NLS-1$ //$NON-NLS-2$
- TimerTests.basicTest.startStep(stepId);
- // Problem with launch, can't have double-quotes in vmName.
- if (name.indexOf('"') != -1)
- name = name.replace('"', '\'');
-
- pm.beginTask("", 500); //$NON-NLS-1$
- pm.subTask(MessageFormat.format(ProxyRemoteMessages.ProxyRemoteLaunchVM, new Object[] { name }));
- // check for cancellation
- if (pm.isCanceled())
- return;
-
- IVMInstall vm = verifyVMInstall(configuration);
-
- IVMRunner runner = vm.getVMRunner(mode);
- if (runner == null) {
- abort(MessageFormat.format(ProxyRemoteMessages.Proxy_NoRunner_ERROR_, new Object[] { name }), null, 0);
- }
-
- File workingDir = verifyWorkingDirectory(configuration);
- String workingDirName = null;
- if (workingDir != null) {
- workingDirName = workingDir.getAbsolutePath();
- }
-
- // Environment variables
- String[] envp = DebugPlugin.getDefault().getLaunchManager().getEnvironment(configuration);
-
- // Program & VM args
- String pgmArgs = getProgramArguments(configuration);
- String vmArgs = getVMArguments(configuration);
- ExecutionArguments execArgs = new ExecutionArguments(vmArgs, pgmArgs);
-
- // VM-specific attributes
- Map vmAttributesMap = getVMSpecificAttributesMap(configuration);
-
- pm.worked(100);
-
- // Now let's get the classpaths created through the contributors.
- URL[] classpath = ProxyLaunchSupport.convertStringPathsToURL(getClasspath(configuration));
- String[][] bootpathInfoStrings = getBootpathExt(vmAttributesMap);
- URL[][] bootpathInfo = new URL[][]{
- ProxyLaunchSupport.convertStringPathsToURL(bootpathInfoStrings[0]),
- ProxyLaunchSupport.convertStringPathsToURL(bootpathInfoStrings[1]),
- ProxyLaunchSupport.convertStringPathsToURL(bootpathInfoStrings[2]),
- };
- ProxyLaunchSupport.LaunchInfo launchInfo = ProxyLaunchSupport.getInfo(launchKey);
- final IConfigurationContributor[] contributors = launchInfo.contributors;
- final LocalFileConfigurationContributorController controller =
- new LocalFileConfigurationContributorController(classpath, bootpathInfo, launchInfo);
- if (contributors != null) {
- for (int i = 0; i < contributors.length; i++) {
- // Run in safe mode so that anything happens we don't go away.
- final int ii = i;
- SafeRunner.run(new ISafeRunnable() {
- public void handleException(Throwable exception) {
- // Don't need to do anything. Platform.run logs it for me.
- }
-
- public void run() throws Exception {
- contributors[ii].contributeClasspaths(controller);
- }
- });
- }
- }
-
- // Add in the required ones by the Proxy support. These are hard-coded since they are
- // required.
- ProxyRemoteUtil.updateClassPaths(controller);
- addInFragmentLibraries(controller, launchInfo.getConfigInfo());
-
- classpath = controller.getFinalClasspath();
- if (bootpathInfo[0] != controller.getFinalPrependBootpath()) {
- if (vmAttributesMap == null)
- vmAttributesMap = new HashMap(2);
- vmAttributesMap.put(IJavaLaunchConfigurationConstants.ATTR_BOOTPATH_PREPEND, ProxyLaunchSupport.convertURLsToStrings(bootpathInfo[0]));
- }
- if (bootpathInfo[2] != controller.getFinalAppendBootpath()) {
- if (vmAttributesMap == null)
- vmAttributesMap = new HashMap(2);
- vmAttributesMap.put(IJavaLaunchConfigurationConstants.ATTR_BOOTPATH_APPEND, ProxyLaunchSupport.convertURLsToStrings(bootpathInfo[2]));
- }
-
- // check for cancellation
- if (pm.isCanceled())
- return;
- pm.worked(100);
-
- // Create VM config
- VMRunnerConfiguration runConfig =
- new VMRunnerConfiguration("org.eclipse.jem.internal.proxy.vm.remote.RemoteVMApplication", ProxyLaunchSupport.convertURLsToStrings(classpath)); //$NON-NLS-1$
-
- REMProxyFactoryRegistry registry = new REMProxyFactoryRegistry(ProxyRemoteUtil.getRegistryController(), name);
- Integer registryKey = registry.getRegistryKey();
-
- Integer bufSize = Integer.getInteger("proxyvm.bufsize"); //$NON-NLS-1$
- if (bufSize == null)
- bufSize = new Integer(16000);
-
- int masterServerPort = ProxyRemoteUtil.getRegistryController().getMasterSocketPort();
-
- // See if debug mode is requested.
- DebugModeHelper dh = new DebugModeHelper();
- boolean debugMode = dh.debugMode(name);
- boolean useNoverify = ProxyPlugin.getPlugin().getPluginPreferences().getBoolean(ProxyPlugin.PREFERENCES_VM_NOVERIFY_KEY);
-
- String[] evmArgs = execArgs.getVMArgumentsArray();
-
- int extraArgs = 4; // Number of extra standard args added (if number changes below, this must change)
- if (debugMode)
- extraArgs+=4; // Number of extra args added for debug mode (if number changes below, this must change).
- if(useNoverify)
- extraArgs++; // An extra arg added for '-noverify' flag (if number changes below, this must change).
-
- boolean useExpressionTracing = "true".equalsIgnoreCase(Platform.getDebugOption(ProxyPlugin.getPlugin().getBundle().getSymbolicName() + ProxyLaunchSupport.EXPRESSION_TRACING)); //$NON-NLS-1$
- long expressionTracingThreshold = -1;
- if (useExpressionTracing) {
- extraArgs++;
- String thresholdString = Platform.getDebugOption(ProxyPlugin.getPlugin().getBundle().getSymbolicName() + ProxyLaunchSupport.EXPRESSION_TRACEING_TIMER_THRESHOLD);
- if (thresholdString != null) {
- try {
- expressionTracingThreshold = Long.valueOf(thresholdString).longValue();
- extraArgs++;
- } catch (NumberFormatException e) {
- }
- }
- }
-
- List javaLibPaths = controller.getFinalJavaLibraryPath();
- int existingLibpaths = -1;
- if (!javaLibPaths.isEmpty()) {
- // first need to see if java lib path also specified in standard args by someone configuring the configuration by hand.
- for (int i = 0; i < evmArgs.length; i++) {
- if (evmArgs[i].startsWith("-Djava.library.path")) { //$NON-NLS-1$
- // We found one already here, save the spot so we update it later.
- existingLibpaths = i;
- break;
- }
- }
- if (existingLibpaths == -1)
- ++extraArgs; // Need to have room for one more.
- }
-
- String[] cvmArgs = new String[evmArgs.length + extraArgs];
- System.arraycopy(evmArgs, 0, cvmArgs, extraArgs, evmArgs.length); // Put existing into new list at the end.
-
- int cvmArgsCount=0;
- cvmArgs[cvmArgsCount++] = "-Dproxyvm.registryKey=" + registryKey; //$NON-NLS-1$
- cvmArgs[cvmArgsCount++] = "-Dproxyvm.masterPort=" + String.valueOf(masterServerPort); //$NON-NLS-1$
- cvmArgs[cvmArgsCount++] = "-Dproxyvm.bufsize=" + bufSize; //$NON-NLS-1$
- cvmArgs[cvmArgsCount++] = "-Dproxyvm.servername=" + name; //$NON-NLS-1$
-
- if(useNoverify)
- cvmArgs[cvmArgsCount++] = "-noverify"; //$NON-NLS-1$
-
- if (useExpressionTracing) {
- cvmArgs[cvmArgsCount++] = "-D"+ExpressionCommands.EXPRESSIONTRACE+"=true"; //$NON-NLS-1$ //$NON-NLS-2$
- if (expressionTracingThreshold != -1)
- cvmArgs[cvmArgsCount++] = "-D"+ExpressionCommands.EXPRESSIONTRACE_TIMER_THRESHOLD+'='+String.valueOf(expressionTracingThreshold); //$NON-NLS-1$
- }
-
- // If in debug mode, we need to find a port for it to use.
- int dport = -1;
- if (debugMode) {
- dport = findUnusedLocalPort("localhost", 5000, 15000, new int[0]); //$NON-NLS-1$
- cvmArgs[cvmArgsCount++] = "-Djava.compiler=NONE"; //$NON-NLS-1$
- cvmArgs[cvmArgsCount++] = "-Xdebug"; //$NON-NLS-1$
- cvmArgs[cvmArgsCount++] = "-Xnoagent"; //$NON-NLS-1$
- cvmArgs[cvmArgsCount++] = "-Xrunjdwp:transport=dt_socket,server=y,address=" + dport; //$NON-NLS-1$
- }
-
- if (!javaLibPaths.isEmpty()) {
- StringBuffer appendTo = null;
- if (existingLibpaths != -1) {
- appendTo = new StringBuffer(evmArgs[existingLibpaths]);
- appendTo.append(File.pathSeparatorChar); // Plus a separator so we can append
- } else
- appendTo = new StringBuffer("-Djava.library.path="); //$NON-NLS-1$
- String [] libPaths = ProxyLaunchSupport.convertURLsToStrings((URL[]) javaLibPaths.toArray(new URL[javaLibPaths.size()]));
- for (int i = 0; i < libPaths.length; i++) {
- if (i != 0)
- appendTo.append(File.pathSeparator);
- appendTo.append(libPaths[i]);
- }
- if (existingLibpaths != -1)
- cvmArgs[extraArgs+existingLibpaths] = appendTo.toString();
- else
- cvmArgs[extraArgs-1] = appendTo.toString();
- }
-
- runConfig.setProgramArguments(execArgs.getProgramArgumentsArray());
- runConfig.setEnvironment(envp);
- runConfig.setVMArguments(cvmArgs);
- runConfig.setWorkingDirectory(workingDirName);
- runConfig.setVMSpecificAttributesMap(vmAttributesMap);
-
- // Bootpath
- runConfig.setBootClassPath(getBootpath(configuration));
-
- // check for cancellation
- if (pm.isCanceled())
- return;
- pm.worked(100);
-
- // set the default source locator if required
- setDefaultSourceLocator(launch, configuration);
-
- // Launch the configuration - 1 unit of work
- runner.run(runConfig, launch, new SubProgressMonitor(pm, 100));
-
- // check for cancellation
- if (pm.isCanceled())
- return;
-
- IProcess[] processes = launch.getProcesses();
- IProcess process = processes[0]; // There is only one.
- // Check if it is already terminated. If it is, then there was a bad error, so just
- // print out the results from it.
- if (process.isTerminated()) {
- IStreamsProxy stProxy = process.getStreamsProxy();
- // Using a printWriter for println capability, but it needs to be on another
- // writer, which will be string
- java.io.StringWriter s = new java.io.StringWriter();
- java.io.PrintWriter w = new java.io.PrintWriter(s);
-
- w.println(ProxyRemoteMessages.VM_TERMINATED_INFO_);
- w.println(ProxyRemoteMessages.VM_COMMAND_LINE);
- w.println(process.getAttribute(IProcess.ATTR_CMDLINE));
- w.println(ProxyRemoteMessages.VM_TERMINATED_LINE1);
- w.println(stProxy.getErrorStreamMonitor().getContents());
- w.println(ProxyRemoteMessages.VM_TERMINATED_LINE2);
- w.println(stProxy.getOutputStreamMonitor().getContents());
- w.println(ProxyRemoteMessages.VM_TERMINATED_LINE3);
- w.close();
-
- String msg = MessageFormat.format(ProxyRemoteMessages.Proxy_Terminated_too_soon_ERROR_, new Object[] { name });
- dh.displayErrorMessage(ProxyRemoteMessages.Proxy_Error_Title, msg);
- throw new CoreException(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, s.toString(), null));
- } else {
- final String traceName = name;
- IStreamsProxy fStreamsProxy = process.getStreamsProxy();
-
- /**
- * StreamListener. Should not be created if ProxyPlugin logger is not logging the requested level.
- *
- * @since 1.1.0
- */
- class StreamListener implements IStreamListener {
- String tracePrefix;
- Level level;
- Job printJob; // Job to try to gather printing together.
- Logger logger;
- StringBuffer gatheredText = new StringBuffer(100);
- {
- logger = ProxyPlugin.getPlugin().getLogger();
- printJob = new Job("") { //$NON-NLS-1$
-
- protected IStatus run(IProgressMonitor monitor) {
- monitor.beginTask(ProxyRemoteMessages.LocalProxyLaunchDelegate_Monitor_PrintRemoteTrace_Text, 1);
- while(true) {
- String output = null;
- synchronized (gatheredText) {
- if (gatheredText.length() <= tracePrefix.length())
- break; // We've reached the end, no more to print.
- output = gatheredText.toString();
- gatheredText.setLength(tracePrefix.length()); // Reset the length to the prefix.
- }
- logger.log(output, level);
- }
- monitor.done();
- return Status.OK_STATUS;
- }
- };
- printJob.setPriority(Job.SHORT);
- printJob.setSystem(true);
- }
-
- public StreamListener(String type, Level level, Logger logger) {
- tracePrefix = traceName + ':' + type + '>' + System.getProperty("line.separator"); //$NON-NLS-1$
- gatheredText.append(tracePrefix);
- this.level = level;
- this.logger = logger;
- }
-
- public void streamAppended(String newText, IStreamMonitor monitor) {
- synchronized(gatheredText) {
- gatheredText.append(newText);
- }
- printJob.schedule(100L); // Wait tenth of second to gather as much as can together.
- }
- };
-
- Logger logger = ProxyPlugin.getPlugin().getLogger();
- if (logger.isLoggingLevel(Level.WARNING)) {
- // Always listen to System.err output if we are at least logging warnings.
- IStreamMonitor monitor = fStreamsProxy.getErrorStreamMonitor();
- if (monitor != null)
- monitor.addListener(new StreamListener("err", Level.WARNING, logger)); //$NON-NLS-1$
- }
-
- // If debug trace is requested, then attach trace listener for System.out
- // Expression tracing requires debug trace too because it prints to sysout. However, it requesting expressionTracing, change logging level to INFO,
- // we want them to show if this true. It is confusing to also have to change logging level in .options file.
- if (useExpressionTracing)
- if (!logger.isLoggingLevel(Level.INFO))
- logger.setLevel(Level.INFO);
- if (useExpressionTracing || "true".equalsIgnoreCase(Platform.getDebugOption(ProxyPlugin.getPlugin().getBundle().getSymbolicName() + ProxyRemoteUtil.DEBUG_VM_TRACEOUT))) { //$NON-NLS-1$
- // Want to trace the output of the remote vm's. And we are logging at least level info.
- if (logger.isLoggingLevel(Level.INFO)) {
- IStreamMonitor monitor = fStreamsProxy.getOutputStreamMonitor();
- if (monitor != null)
- monitor.addListener(new StreamListener("out", Level.INFO, logger)); //$NON-NLS-1$
- }
- }
- }
-
- // If in debug mode, tester must start debugger before going on.
- if (debugMode) {
- if (!dh.promptPort(dport)) {
- process.terminate();
- throw new CoreException(
- new Status(
- IStatus.WARNING,
- ProxyPlugin.getPlugin().getBundle().getSymbolicName(),
- 0,
- "Debugger attach canceled", //$NON-NLS-1$
- null));
- }
- }
-
- // Now set up the registry.
- registry.initializeRegistry(process);
- new REMStandardBeanTypeProxyFactory(registry);
- new REMStandardBeanProxyFactory(registry);
- new REMMethodProxyFactory(registry);
-
- if (debugMode || REMProxyFactoryRegistry.fGlobalNoTimeouts)
- registry.fNoTimeouts = true;
- if (configuration.getAttribute(IProxyConstants.ATTRIBUTE_AWT_SWING, true))
- REMRegisterAWT.registerAWT(registry);
-
- launchInfo.resultRegistry = registry;
-
- pm.done();
- TimerTests.basicTest.stopStep(stepId);
- }
-
- /**
- * @param controller
- * @param info
- * @throws CoreException
- *
- * @since 1.0.2
- */
- private void addInFragmentLibraries(IConfigurationContributionController controller, IConfigurationContributionInfo info) throws CoreException {
- IPDEContributeClasspath instance = IPDEContributeClasspath.INSTANCE;
- if (instance != null) {
- instance.getPDEContributions(controller, info);
- }
- }
-
- // Utilities to find the free port
- private static final Random fgRandom = new Random(System.currentTimeMillis());
-
- private static int findUnusedLocalPort(String host, int searchFrom, int searchTo, int[] exclude) {
- for (int i = 0; i < 10; i++) {
- int port = 0;
- newport : while (true) {
- port = getRandomPort(searchFrom, searchTo);
- if (exclude != null)
- for (int e = 0; e < exclude.length; e++)
- if (port == exclude[e])
- continue newport;
- break;
- }
- try {
- new Socket(host, port);
- } catch (ConnectException e) {
- return port;
- } catch (IOException e) {
- }
- }
- return -1;
- }
-
- private static int getRandomPort(int low, int high) {
- return (int) (fgRandom.nextFloat() * (high - low)) + low;
- }
-
- private String[][] getBootpathExt(Map vmMap) {
- String[][] ext = new String[3][];
- if (vmMap != null) {
- ext[0] = (String[]) vmMap.get(IJavaLaunchConfigurationConstants.ATTR_BOOTPATH_PREPEND);
- ext[1] = (String[]) vmMap.get(IJavaLaunchConfigurationConstants.ATTR_BOOTPATH);
- ext[2] = (String[]) vmMap.get(IJavaLaunchConfigurationConstants.ATTR_BOOTPATH_APPEND);
- }
- return ext;
- }
-
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/MessageDialog.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/MessageDialog.java
deleted file mode 100644
index aa614e5c7..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/MessageDialog.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: MessageDialog.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import java.awt.*;
-/**
- * This is an AWT message dialog. It will only be used
- * if not running in the workbench by the debug mode helper.
- * It won't be loaded unless AWT is available, so it can be
- * distributed without causing problems on systems that
- * don't have AWT because it won't be loaded in that case.
- */
-class MessageDialog extends Dialog {
- /**
- * Comment for serialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = 2547670349372067345L;
- private java.awt.Panel ivjContentsPane = null;
- IvjEventHandler ivjEventHandler = new IvjEventHandler();
- private java.awt.TextArea ivjTextArea1 = null;
- private java.awt.Button ivjButton1 = null;
- public int result = 2; // Nothing hit is the same as button 2.
- private java.awt.Button ivjButton2 = null;
-
-class IvjEventHandler implements java.awt.event.ActionListener, java.awt.event.WindowListener {
- public void actionPerformed(java.awt.event.ActionEvent e) {
- if (e.getSource() == MessageDialog.this.getButton1())
- connEtoC2(e);
- if (e.getSource() == MessageDialog.this.getButton2())
- connEtoC3(e);
- };
- public void windowActivated(java.awt.event.WindowEvent e) {};
- public void windowClosed(java.awt.event.WindowEvent e) {};
- public void windowClosing(java.awt.event.WindowEvent e) {
- if (e.getSource() == MessageDialog.this)
- connEtoC1(e);
- };
- public void windowDeactivated(java.awt.event.WindowEvent e) {};
- public void windowDeiconified(java.awt.event.WindowEvent e) {};
- public void windowIconified(java.awt.event.WindowEvent e) {};
- public void windowOpened(java.awt.event.WindowEvent e) {};
- };
-/**
- * MessageDialog constructor comment.
- * @param owner java.awt.Frame
- * @param title java.lang.String
- * @param modal boolean
- */
-public MessageDialog(Frame owner, String title, boolean modal, String msg, String button1, String button2) {
- super(owner, title, modal);
-
- initialize();
- getTextArea1().setText(msg);
- getButton1().setLabel(button1);
- if (button2 != null)
- getButton2().setLabel(button2);
- else {
- // We only want one button, so remove button2
- getContentsPane().remove(getButton2());
- }
-
-}
-/**
- * Comment
- */
-public void button1_ActionPerformed() {
- result = 1;
- setVisible(false);
- return;
-}
-/**
- * Comment
- */
-public void button2_ActionPerformed() {
- result = 2;
- setVisible(false);
- return;
-}
-/**
- * connEtoC1: (MessageDialog.window.windowClosing(java.awt.event.WindowEvent) --> MessageDialog.dispose()V)
- * @param arg1 java.awt.event.WindowEvent
- */
-/* WARNING: THIS METHOD WILL BE REGENERATED. */
-private void connEtoC1(java.awt.event.WindowEvent arg1) {
- try {
- // user code begin {1}
- // user code end
- this.dispose();
- // user code begin {2}
- // user code end
- } catch (java.lang.Throwable ivjExc) {
- // user code begin {3}
- // user code end
- handleException(ivjExc);
- }
-}
-/**
- * connEtoC2: (Button1.action.actionPerformed(java.awt.event.ActionEvent) --> MessageDialog.button1_ActionPerformed()V)
- * @param arg1 java.awt.event.ActionEvent
- */
-/* WARNING: THIS METHOD WILL BE REGENERATED. */
-private void connEtoC2(java.awt.event.ActionEvent arg1) {
- try {
- // user code begin {1}
- // user code end
- this.button1_ActionPerformed();
- // user code begin {2}
- // user code end
- } catch (java.lang.Throwable ivjExc) {
- // user code begin {3}
- // user code end
- handleException(ivjExc);
- }
-}
-/**
- * connEtoC3: (Button2.action.actionPerformed(java.awt.event.ActionEvent) --> MessageDialog.button2_ActionPerformed()V)
- * @param arg1 java.awt.event.ActionEvent
- */
-/* WARNING: THIS METHOD WILL BE REGENERATED. */
-private void connEtoC3(java.awt.event.ActionEvent arg1) {
- try {
- // user code begin {1}
- // user code end
- this.button2_ActionPerformed();
- // user code begin {2}
- // user code end
- } catch (java.lang.Throwable ivjExc) {
- // user code begin {3}
- // user code end
- handleException(ivjExc);
- }
-}
-/**
- * Display dialog.
- * @param args java.lang.String[]
- */
-public static int doit(String title, String message, String button1, String button2) {
- try {
- Frame f = new java.awt.Frame(title);
- f.setVisible(true);
- // Need to massage the method since AWT doesn't have wordwrap. This is for left to right only.
- String msg = message;
- if (message.length() > 95) {
- msg = ""; //$NON-NLS-1$
-nextSeg: while (message.length() > 95) {
- // Too wide, wrapping should be done. This is just a rough guess.
- for (int i=95; 0<=i; i--) {
- if (message.charAt(i) == ' ') {
- // Break here.
- msg = msg + message.substring(0, i) + '\n';
- if (i+1 < message.length())
- message = message.substring(i+1);
- else
- message = ""; //$NON-NLS-1$
- continue nextSeg;
- }
- }
- // If we got here, then there weren't any spaces in the first 80, so look right for first space.
- for (int i=96; inull
if no such entry.
- *
- * @since 1.1.0
- */
- protected PendingTransaction getPendingEntryFromTop(int fromTop) {
- if (pendingTransactions != null && pendingTransactions.size() >= fromTop) {
- return (PendingTransaction) pendingTransactions.get(pendingTransactions.size()-fromTop);
- } else
- return null;
- }
-
- /**
- * Pop up the top entry from the pending transactions queue.
- * @param fromTop how many entries to pop from the pending transaction list.
- *
- *
- * @since 1.1.0
- */
- protected void popPendingEntry(int fromTop) {
- if (pendingTransactions != null)
- if (pendingTransactions.size() > fromTop) {
- while(fromTop-- >0)
- pendingTransactions.remove(pendingTransactions.size()-1);
- } else
- pendingTransactions.clear();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushToProxy(org.eclipse.jem.internal.proxy.core.IProxy)
- */
- protected void pushToProxy(IProxy proxy) {
- if (proxy == null || proxy.isBeanProxy())
- pushToProxy((IBeanProxy) proxy);
- else
- pushToExpressionProxy((ExpressionProxy) proxy);
- }
-
- private void pushToProxy(IBeanProxy proxy) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push proxy command is:
- // PushExpressionCommand(push to proxy) followed by:
- // ValueObject containing the rendered proxy.
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.PUSH_TO_PROXY_EXPRESSION_VALUE);
- if (proxy == null)
- workerValue.set();
- else
- ((IREMBeanProxy) proxy).renderBean(workerValue);
- connection.pushValueObject(workerValue);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- } catch (CommandException e) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- if (!e.isRecoverable()) {
- connection.close();
- throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#closeProxy()
- */
- protected void closeProxy() {
- if (!closed) {
- try {
- if (connection != null && connection.isConnected()) {
- try {
- connection.stopExpressionProcessing(getREMExpressionID());
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e, Level.INFO);
- // Not throwing an illegal state here because we don't care, other than logging and not
- // returning the connection to the registry that there was an error on close.
- } finally {
- getREMRegistry().returnConnection(connection);
- }
- }
- } finally {
- closed = true;
- if (sentData)
- getREMBeanProxyFactory().stopTransaction(); // Resume proxy releases. We've sent data at least once.
- }
- }
- methodsCache = null;
- fieldsCache = null;
- beanTypeCache = null;
- pendingTransactions = null;
- connection = null;
- }
-
- private static final Object VOIDTYPE = new Object(); // A void type was sent in expression proxy resolution.
- private static final Object NOTRESOLVED = new Object(); // A not resolved type was sent in expression proxy resolution.
-
- /*
- * Get the sender to use for pulling the expression proxy resolutions.
- */
- private BeanProxyValueSender getExpressionProxiesSender() {
- return new BeanProxyValueSender(getREMBeanProxyFactory()) {
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.remote.BeanProxyValueSender#sendValue(org.eclipse.jem.internal.proxy.common.remote.Commands.ValueObject)
- */
- public void sendValue(ValueObject value) {
- if (value.getType() == Commands.FLAG) {
- switch (value.anInt) {
- case ExpressionCommands.EXPRESSIONPROXY_NOTRESOLVED:
- array[index++] = NOTRESOLVED;
- break;
- case ExpressionCommands.EXPRESSIONPROXY_VOIDTYPE:
- array[index++] = VOIDTYPE;
- break;
- default:
- // Shouldn't happen.
- break;
- }
- } else
- super.sendValue(value);
- }
- };
- }
-
- /*
- * Process the pulled expression proxy resolutions.
- */
- private void processpulledExpressionProxies(List expressionProxies, BeanProxyValueSender sender) {
-
- // It is expected that each entry will coorespond to the next non-null expression proxy and will be the bean proxy or one of the special
- // types.
- int len = expressionProxies.size();
- int j = 0;
- Object[] resolveds = sender.getArray();
- for (int i = 0; i < len; i++) {
- ExpressionProxy ep = (ExpressionProxy) expressionProxies.get(i);
- if (ep != null) {
- Object resolved = resolveds[j++];
- if (resolved == NOTRESOLVED)
- fireProxyNotResolved(ep);
- else if (resolved == VOIDTYPE)
- fireProxyVoid(ep);
- else
- fireProxyResolved(ep, (IBeanProxy) resolved);
- }
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.Expression#pullProxyValue(int, java.util.List)
- */
- protected IBeanProxy pullProxyValue(int proxycount, List expressionProxies) throws ThrowableProxy, NoExpressionValueException {
- if (!haveSentData()) {
- markAllProxiesNotResolved(expressionProxies);
- return null; // We haven't pushed any commands, so there is nothing to do. Don't create a connection for this.
- }
- // If there are any pending transactions at this point in time, there is no need to send them. They would be do nothings anyway.
-
- boolean processedExpressionProxies = false;
- IREMExpressionConnection lclConnection = getConnection();
- markInTransaction(lclConnection);
- try {
- Commands.ValueObject proxyids = null;
- BeanProxyValueSender sender = null;
- if (proxycount > 0) {
- proxyids = createExpressionProxiesValueObject(proxycount, expressionProxies);
- sender = getExpressionProxiesSender();
- }
-
- lclConnection.pullValue(getREMExpressionID(), proxyids, sender);
- // If we got this far, then if there are proxies, we need to process these too.
- if (proxycount > 0)
- processpulledExpressionProxies(expressionProxies, sender);
- processedExpressionProxies =true;
- lclConnection.getFinalValue(workerValue); // Get the returned value.
- return getREMBeanProxyFactory().getBeanProxy(workerValue);
- } catch (CommandErrorException e) {
- try {
- if (e.getErrorCode() == ExpressionCommands.EXPRESSION_NOEXPRESSIONVALUE_EXCEPTION) {
- // Need to turn it into a Throwable.
- ThrowableProxy t = null;
- try {
- getREMBeanProxyFactory().getBeanProxy(e.getValue()); // This will cause a throw to occur, but we don't want it going out, we want to capture it.
- } catch (ThrowableProxy e1) {
- t = e1;
- }
- throw new REMNoExpressionValueException(t);
- }
- getREMBeanProxyFactory().processErrorReturn(e);
- } catch (CommandException e1) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- if (!e.isRecoverable()) {
- lclConnection.close();
- throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- }
- } catch (CommandException e) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- if (!e.isRecoverable()) {
- lclConnection.close();
- throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- } finally {
- markEndTransaction(lclConnection);
- if (!processedExpressionProxies)
- markAllProxiesNotResolved(expressionProxies); // We failed before we could process the expression proxies. So mark all as not resolved.
- }
- return null;
- }
-
- /**
- * This is called by commands that write some data and will be reading data back immediately
- * (i.e. pull value and invoke expression). If we are on a callback thread and have the
- * used the connection from the callback thread, we need to tell the callback thread that
- * it is in a transaction. This is needed because while reading data back there are
- * sometimes calls back to the vm to get beantype data for new classes. This would
- * normally be through a new connection so that it doesn't get stuck in the middle of the
- * data being sent back. But when running on a callback the same connection is used. So it
- * would stick data in the middle of the return stream of data. To prevent this we need
- * to tell the callback thread that it is in a transaction during this call so that any
- * such new connection requests will get a new connection.
- * serialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = 1692406777391812694L;
-
-
- public REMNoExpressionValueException(ThrowableProxy e) {
- super(e);
- }
-
-
- /* (non-Javadoc)
- * @see java.lang.Throwable#getLocalizedMessage()
- */
- public String getLocalizedMessage() {
- return ((ThrowableProxy) getCause()).getProxyLocalizedMessage();
- }
-
-
- /* (non-Javadoc)
- * @see java.lang.Throwable#getMessage()
- */
- public String getMessage() {
- return ((ThrowableProxy) getCause()).getProxyMessage();
- }
-
-
- /* (non-Javadoc)
- * @see java.lang.Throwable#printStackTrace()
- */
- public void printStackTrace() {
- getCause().printStackTrace();
- }
-
-
- /* (non-Javadoc)
- * @see java.lang.Throwable#printStackTrace(java.io.PrintStream)
- */
- public void printStackTrace(PrintStream s) {
- getCause().printStackTrace(s);
- }
-
-
- /* (non-Javadoc)
- * @see java.lang.Throwable#printStackTrace(java.io.PrintWriter)
- */
- public void printStackTrace(PrintWriter s) {
- getCause().printStackTrace(s);
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushInvoke(int, java.util.List)
- */
- protected void pushInvoke(int proxycount, List expressionProxies) throws ThrowableProxy, NoExpressionValueException {
- if (!haveSentData()) {
- markAllProxiesNotResolved(expressionProxies);
- return; // We haven't pushed any commands, so there is nothing to do. Don't create a connection for this.
- }
- // If at this point there are pending transactions, there is no need to send them because they would all be do-nothings.
-
- boolean processedExpressionProxies = false;
- IREMExpressionConnection lclConnection = getConnection();
- markInTransaction(lclConnection);
- try {
- Commands.ValueObject proxyids = null;
- BeanProxyValueSender sender = null;
- if (proxycount > 0) {
- proxyids = createExpressionProxiesValueObject(proxycount, expressionProxies);
- sender = getExpressionProxiesSender();
- }
-
- lclConnection.sync(getREMExpressionID(), proxyids, sender);
-
- // If we got this far, then if there are proxies, we need to process these too.
- if (proxycount > 0)
- processpulledExpressionProxies(expressionProxies, sender);
- processedExpressionProxies = true;
- lclConnection.getFinalValue(workerValue); // We don't care what it is, we just need to see if there is an error.
- } catch (CommandErrorException e) {
- try {
- if (e.getErrorCode() == ExpressionCommands.EXPRESSION_NOEXPRESSIONVALUE_EXCEPTION) {
- // Need to turn it into a Throwable.
- ThrowableProxy t = null;
- try {
- getREMBeanProxyFactory().getBeanProxy(e.getValue()); // This will cause a throw to occur, but we don't want it going out, we want to capture it.
- } catch (ThrowableProxy e1) {
- t = e1;
- }
- throw new REMNoExpressionValueException(t);
- }
- getREMBeanProxyFactory().processErrorReturn(e);
- } catch (CommandException e1) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- if (!e.isRecoverable()) {
- lclConnection.close();
- throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- }
- } catch (CommandException e) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- if (!e.isRecoverable()) {
- lclConnection.close();
- throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- } finally {
- markEndTransaction(lclConnection);
- if (!processedExpressionProxies)
- markAllProxiesNotResolved(expressionProxies); // We failed before we could process the expression proxies. So mark all as not resolved.
- }
- }
-
- private static class REMBeanTypeExpressionProxy extends ExpressionProxy implements IBeanTypeExpressionProxy {
-
- private String typeName;
-
- /**
- * @param proxyid
- *
- * @since 1.1.0
- */
- private REMBeanTypeExpressionProxy(int proxyid, Expression expression) {
- super(proxyid, BEANTYPE_EXPRESSION_PROXY, expression);
- }
-
- public void setTypeName(String typeName) {
- this.typeName = typeName;
- }
-
- public String getTypeName() {
- return typeName;
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.ExpressionProxy#toString()
- */
- public String toString() {
- return super.toString()+" - "+getTypeName(); //$NON-NLS-1$
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxyBeanType#getMethodProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String, org.eclipse.jem.internal.proxy.core.IProxyBeanType[])
- */
- public IProxyMethod getMethodProxy(IExpression expression, String methodName, IProxyBeanType[] parameterTypes) {
- REMProxyFactoryRegistry registry = (REMProxyFactoryRegistry) expression.getRegistry();
- return ((REMMethodProxyFactory) registry.getMethodProxyFactory()).getMethodProxy(expression, this, methodName, parameterTypes);
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxyBeanType#getMethodProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String, java.lang.String[])
- */
- public IProxyMethod getMethodProxy(IExpression expression, String methodName, String[] parameterTypes) {
- REMProxyFactoryRegistry registry = (REMProxyFactoryRegistry) expression.getRegistry();
- return ((REMMethodProxyFactory) registry.getMethodProxyFactory()).getMethodProxy(expression, this, methodName, parameterTypes);
- }
-
- public IProxyMethod getMethodProxy(IExpression expression, String methodName) {
- return getMethodProxy(expression, methodName, (IProxyBeanType[]) null);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxyBeanType#getFieldProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String)
- */
- public IProxyField getFieldProxy(IExpression expression, String fieldName) {
- REMProxyFactoryRegistry registry = (REMProxyFactoryRegistry) expression.getRegistry();
- return ((REMMethodProxyFactory) registry.getMethodProxyFactory()).getFieldProxy(expression, this, fieldName);
- }
- }
-
- private static class REMMethodExpressionProxy extends ExpressionProxy implements IProxyMethod {
-
- /**
- * @param proxyid
- * @param proxyType
- * @param expression
- *
- * @since 1.1.0
- */
- private REMMethodExpressionProxy(int proxyid, Expression expression) {
- super(proxyid, METHOD_EXPRESSION_PROXY, expression);
- }
- }
-
- private static class REMFieldExpressionProxy extends ExpressionProxy implements IProxyField {
-
- /**
- * @param proxyid
- * @param proxyType
- * @param expression
- *
- * @since 1.1.0
- */
- private REMFieldExpressionProxy(int proxyid, Expression expression) {
- super(proxyid, FIELD_EXPRESSION_PROXY, expression);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#createExpressionProxy(int)
- */
- protected ExpressionProxy createExpressionProxy(int proxyType, int proxyID) {
- switch (proxyType) {
- case NORMAL_EXPRESSION_PROXY:
- default:
- return new ExpressionProxy(proxyID, NORMAL_EXPRESSION_PROXY, this);
-
- case BEANTYPE_EXPRESSION_PROXY:
- return new REMBeanTypeExpressionProxy(proxyID, this);
-
- case METHOD_EXPRESSION_PROXY:
- return new REMMethodExpressionProxy(proxyID, this);
-
- case FIELD_EXPRESSION_PROXY:
- return new REMFieldExpressionProxy(proxyID, this);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushAssignmentToProxy(org.eclipse.jem.internal.proxy.core.ExpressionProxy)
- */
- protected void pushAssignmentToProxy(ExpressionProxy proxy) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push assignment to proxy command is:
- // PushExpressionCommand(push assignment to proxy) followed by:
- // int: proxy id
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.ASSIGNMENT_PROXY_EXPRESSION_VALUE);
- connection.pushInt(proxy.getProxyID());
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushAssignmentToProxy()
- */
- protected void pushAssignmentToProxy() {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of the push assignment command is:
- // PushAssignmentCommand.
- connection.pushExpressionCommand(getREMExpressionID(), (byte) InternalExpressionTypes.ASSIGNMENT_EXPRESSION_VALUE);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
-
- private void pushToExpressionProxy(ExpressionProxy proxy) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push to expression proxy command is:
- // PushExpressionCommand(push expression proxy to proxy) followed by:
- // int: proxy id
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.PUSH_TO_EXPRESSION_PROXY_EXPRESSION_VALUE);
- connection.pushInt(proxy.getProxyID());
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- }
-
- }
-
- private static class BlockBegin extends PendingTransaction {
- public int blockNumber;
-
- public BlockBegin(int blockNumber) {
- this.blockNumber = blockNumber;
- }
-
- public void pushTransaction(REMExpression remExpression) {
- IREMExpressionConnection connection = remExpression.getConnection();
- try {
- // Format of push to block begin proxy command is:
- // PushExpressionCommand(push block begin proxy to proxy) followed by:
- // int: block id
- connection.pushExpressionCommand(remExpression.getREMExpressionID(), (byte)InternalExpressionTypes.BLOCK_BEGIN_EXPRESSION_VALUE);
- connection.pushInt(blockNumber);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- remExpression.markInvalid(e.getLocalizedMessage());
- remExpression.throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushBlockBeginToProxy(int)
- */
- protected void pushBlockBeginToProxy(int blockNumber) {
- addPendingTransaction(new BlockBegin(blockNumber));
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushBlockEndToProxy(int)
- */
- protected void pushBlockEndToProxy(int blockNumber) {
- // See if the top pending transactions is BreakBlock(blockNumber). If it is then the BreakBlock can be thrown away.
- PendingTransaction topEntry = getPendingEntryFromTop(1);
- if (topEntry instanceof BlockBreak && ((BlockBreak) topEntry).blockNumber == blockNumber) {
- popPendingEntry(1);
- topEntry = getPendingEntryFromTop(1);
- }
- // See if the top pending transaction is now BeginBlock(blockNumber). If it is, then this transaction and the block begin
- // can be thrown away because they are an empty block.
- if (topEntry instanceof BlockBegin && ((BlockBegin) topEntry).blockNumber == blockNumber) {
- popPendingEntry(1);
- return;
- }
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push to block end proxy command is:
- // PushExpressionCommand(push block end proxy to proxy) followed by:
- // int: block id
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.BLOCK_END_EXPRESSION_VALUE);
- connection.pushInt(blockNumber);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
- private static class BlockBreak extends PendingTransaction {
- public int blockNumber;
-
- public BlockBreak(int blockNumber) {
- this.blockNumber = blockNumber;
- }
-
- public void pushTransaction(REMExpression remExpression) {
- IREMExpressionConnection connection = remExpression.getConnection();
- try {
- // Format of push to block break proxy command is:
- // PushExpressionCommand(push block break proxy to proxy) followed by:
- // int: block id
- connection.pushExpressionCommand(remExpression.getREMExpressionID(), (byte)InternalExpressionTypes.BLOCK_BREAK_EXPRESSION_VALUE);
- connection.pushInt(blockNumber);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- remExpression.markInvalid(e.getLocalizedMessage());
- remExpression.throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushBlockBreakToProxy(int)
- */
- protected void pushBlockBreakToProxy(int blockNumber) {
- // Even if there is no pending block begin for this block, we will pend the break.
- // This is so that if the break occurred just before the block end, then it can be ignored.
- addPendingTransaction(new BlockBreak(blockNumber));
- }
-
- private static class TryBegin extends PendingTransaction {
-
- public final int tryNumber;
-
- public TryBegin(int tryNumber) {
- this.tryNumber = tryNumber;
-
- }
- public void pushTransaction(REMExpression remExpression) {
- IREMExpressionConnection connection = remExpression.getConnection();
- try {
- // Format of push to try begin proxy command is:
- // PushExpressionCommand(push try begin to proxy) followed by:
- // int: try id
- connection.pushExpressionCommand(remExpression.getREMExpressionID(), (byte)InternalExpressionTypes.TRY_BEGIN_EXPRESSION_VALUE);
- connection.pushInt(tryNumber);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- remExpression.markInvalid(e.getLocalizedMessage());
- remExpression.throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushTryBeginToProxy(int)
- */
- protected void pushTryBeginToProxy(int tryNumber) {
- addPendingTransaction(new TryBegin(tryNumber));
- }
-
- private static class TryCatch extends PendingTransaction {
-
- public final int tryNumber;
- private final IProxyBeanType exceptionType;
- private final ExpressionProxy ep;
-
- public TryCatch(int tryNumber, IProxyBeanType exceptionType, ExpressionProxy ep) {
- this.tryNumber = tryNumber;
- this.exceptionType = exceptionType;
- this.ep = ep;
- }
-
- public void pushTransaction(REMExpression remExpression) {
- IREMExpressionConnection connection = remExpression.getConnection();
- try {
- // Format of push to try begin proxy command is:
- // PushExpressionCommand(push try begin to proxy) followed by:
- // int: try id
- // object: expression type (as beantype or as expression proxy)
- // int: proxy id or (-1 if null).
- connection.pushExpressionCommand(remExpression.getREMExpressionID(), (byte)InternalExpressionTypes.TRY_CATCH_EXPRESSION_VALUE);
- connection.pushInt(tryNumber);
- remExpression.fillProxy(exceptionType, remExpression.workerValue);
- connection.pushValueObject(remExpression.workerValue);
- if (ep != null)
- connection.pushInt(ep.getProxyID());
- else
- connection.pushInt(-1);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- remExpression.markInvalid(e.getLocalizedMessage());
- remExpression.throwIllegalStateException(IO_EXCEPTION_MSG);
- } catch (CommandException e) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- remExpression.markInvalid(e.getLocalizedMessage());
- if (!e.isRecoverable()) {
- connection.close();
- remExpression.throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- }
- }
-
- }
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushTryCatchClauseToProxy(int, org.eclipse.jem.internal.proxy.core.IProxyBeanType, org.eclipse.jem.internal.proxy.core.ExpressionProxy)
- */
- protected void pushTryCatchClauseToProxy(int tryNumber, IProxyBeanType exceptionType, ExpressionProxy ep) {
- addPendingTransaction(new TryCatch(tryNumber, exceptionType, ep));
- }
-
- private static class TryFinally extends PendingTransaction {
-
- public final int tryNumber;
-
- public TryFinally(int tryNumber) {
- this.tryNumber = tryNumber;
-
- }
-
- public void pushTransaction(REMExpression remExpression) {
- IREMExpressionConnection connection = remExpression.getConnection();
- try {
- // Format of push to try begin proxy command is:
- // PushExpressionCommand(push try finally to proxy) followed by:
- // int: try id
- connection.pushExpressionCommand(remExpression.getREMExpressionID(), (byte)InternalExpressionTypes.TRY_FINALLY_EXPRESSION_VALUE);
- connection.pushInt(tryNumber);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- remExpression.markInvalid(e.getLocalizedMessage());
- remExpression.throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushTryFinallyClauseToProxy(int)
- */
- protected void pushTryFinallyClauseToProxy(int tryNumber) {
- addPendingTransaction(new TryFinally(tryNumber));
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushTryEndToProxy(int)
- */
- protected void pushTryEndToProxy(int tryNumber) {
- // This is a little tricky. We need to find if there is nothing but try/catch/finally for this tryNumber on the pending
- // transactions up to the try begin, if there is nothing else, then we can throw the entire try away. That
- // means there was no code at all in any of the try/catch/finally blocks.
- int fromTop = 0;
- while (true) {
- PendingTransaction topEntry = getPendingEntryFromTop(++fromTop);
- if (topEntry instanceof TryFinally) {
- if (((TryFinally) topEntry).tryNumber != tryNumber)
- break; // We met a finally that wasn't ours, so entire try group must be sent.
- } else if (topEntry instanceof TryCatch) {
- if (((TryCatch) topEntry).tryNumber != tryNumber)
- break; // We met a catch that wasn't ours, so entire try group must be sent.
- } else if (topEntry instanceof TryBegin) {
- if (((TryBegin) topEntry).tryNumber == tryNumber) {
- // We've met our try begin, and nothing but empty catch/finally in between, so the entire group can be thrown away
- popPendingEntry(fromTop);
- return;
- } else
- break; // We've hit a try begin that wasn't ours, so the entire try group must be sent.
- } else
- break; // We've hit something other than our try group, so process everything.
- }
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push to try begin proxy command is:
- // PushExpressionCommand(push try end to proxy) followed by:
- // int: try id
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.TRY_END_EXPRESSION_VALUE);
- connection.pushInt(tryNumber);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushThrowToProxy()
- */
- protected void pushThrowToProxy() {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push to try begin proxy command is:
- // PushExpressionCommand(push throw to proxy)
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.THROW_EXPRESSION_VALUE);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushRethrowToProxy(int)
- */
- protected void pushRethrowToProxy(int tryNumber) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push to rethow proxy command is:
- // PushExpressionCommand(push rethrow to proxy)
- // int: try id
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.RETHROW_EXPRESSION_VALUE);
- connection.pushInt(tryNumber);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushBeanTypeToProxy(org.eclipse.jem.internal.proxy.core.IBeanTypeExpressionProxy)
- */
- protected void pushBeanTypeToProxy(IBeanTypeExpressionProxy proxy) {
- // Push beantype to proxy is sent out of sequence without respect to where in expression we are,
- // so no need to handle pending transactions at this point. They would not affect the result
- // of this call.
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push to beanType proxy command is:
- // PushExpressionCommand(push bean type expression proxy)
- // int: proxy id
- // string: typename
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.PUSH_BEANTYPE_EXPRESSIONPROXY_EXPRESSION_VALUE);
- REMBeanTypeExpressionProxy ep = (REMBeanTypeExpressionProxy) proxy;
- connection.pushInt(ep.getProxyID());
- connection.pushString(ep.getTypeName());
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushMethodToProxy(org.eclipse.jem.internal.proxy.core.ExpressionProxy, org.eclipse.jem.internal.proxy.core.IProxyBeanType, java.lang.String, org.eclipse.jem.internal.proxy.core.IProxyBeanType[])
- */
- protected void pushMethodToProxy(ExpressionProxy proxy, IProxyBeanType declaringType, String methodName, IProxyBeanType[] parameterTypes) {
- // Push method to proxy is sent out of sequence without respect to where in expression we are,
- // so no need to handle pending transactions at this point. They would not affect the result
- // of this call.
-
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push to method proxy command is:
- // PushExpressionCommand(push method type expression proxy)
- // int: proxy id
- // ValueObject: containing the rendered bean type proxy or the expression proxy for the declaring type
- // string: method name
- // int: number of parameter types
- // ValueObject(s): containing the rendered bean type proxy or the expression proxy for the parameter types.
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.PUSH_METHOD_EXPRESSIONPROXY_EXPRESSION_VALUE);
- connection.pushInt(proxy.getProxyID());
- fillProxy(declaringType, workerValue);
- connection.pushValueObject(workerValue);
- connection.pushString(methodName);
- if (parameterTypes == null || parameterTypes.length == 0)
- connection.pushInt(0);
- else {
- connection.pushInt(parameterTypes.length);
- for (int i = 0; i < parameterTypes.length; i++) {
- fillProxy(parameterTypes[i], workerValue);
- connection.pushValueObject(workerValue);
- }
- }
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- } catch (CommandException e) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- if (!e.isRecoverable()) {
- connection.close();
- throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushFieldToProxy(org.eclipse.jem.internal.proxy.core.ExpressionProxy, org.eclipse.jem.internal.proxy.core.IProxyBeanType, java.lang.String)
- */
- protected void pushFieldToProxy(ExpressionProxy proxy, IProxyBeanType declaringType, String fieldName) {
- // Push field to proxy is sent out of sequence without respect to where in expression we are,
- // so no need to handle pending transactions at this point. They would not affect the result
- // of this call.
-
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push to field proxy command is:
- // PushExpressionCommand(push field type expression proxy)
- // int: proxy id
- // ValueObject: containing the rendered bean type proxy or the expression proxy for the declaring type
- // string: field name
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.PUSH_FIELD_EXPRESSIONPROXY_EXPRESSION_VALUE);
- connection.pushInt(proxy.getProxyID());
- fillProxy(declaringType, workerValue);
- connection.pushValueObject(workerValue);
- connection.pushString(fieldName);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- } catch (CommandException e) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- if (!e.isRecoverable()) {
- connection.close();
- throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- }
- }
-
- /**
- * Get the map of IProxyMethods for a beantype. Meant to be used only in conjunction with REMProxyConstants.
- * It is here so the REMProxyConstants can store pending proxies per expression.
- *
- * @param beanType
- * @return
- *
- * @since 1.1.0
- */
- public Map getMethods(IProxyBeanType beanType) {
- if (methodsCache == null)
- methodsCache = new HashMap();
- Map methods = (Map) methodsCache.get(beanType.getTypeName());
- if(methods == null){
- methods = new HashMap(20);
- methodsCache.put(beanType.getTypeName(),methods);
- }
- return methods;
- }
-
- /**
- * Get the map of IProxyFields for a beantype. Meant to be used only in conjunction with REMProxyConstants.
- * It is here so the REMProxyConstants can store pending proxies per expression.
- *
- * @param beanType
- * @return
- *
- * @since 1.1.0
- */
- public Map getFields(IProxyBeanType beanType) {
- if (fieldsCache == null)
- fieldsCache = new HashMap();
- Map fields = (Map) fieldsCache.get(beanType.getTypeName());
- if(fields == null){
- fields = new HashMap(20);
- fieldsCache.put(beanType.getTypeName(),fields);
- }
- return fields;
- }
-
- /**
- * Get the map of IProxyBeanTypes for a beantype name. Meant to be used only in conjunction with REMSgtandardBeanTypeFactory.
- * It is here so the REMStandardBeanTypeFactory can store pending proxies per expression.
- *
- * @param beanType
- * @return
- *
- * @since 1.1.0
- */
- public IProxyBeanType getBeanType(String beanTypeName) {
- if (beanTypeCache == null)
- beanTypeCache = new HashMap();
- return (IProxyBeanType) beanTypeCache.get(beanTypeName);
- }
-
- /**
- * Add the beantype expression proxy to the map of bean type expression proxies. Used in conjunction with REMStandardBeanTypeFactory.
- * It is here so the REMStandardBeanTypeFactory can store pending proxies per expression.
- * @param beanTypeName
- * @param beantype
- *
- * @since 1.1.0
- */
- public void addBeanType(String beanTypeName, IProxyBeanType beantype) {
- beanTypeCache.put(beanTypeName, beantype);
- }
-
- /**
- * Remove the beantype expression proxy from the map. This is called because there was a rollback due to an endmark.
- * @param beanTypeName
- *
- * @since 1.1.0
- */
- public void removeBeanType(String beanTypeName) {
- beanTypeCache.remove(beanTypeName);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushIfTestToProxy()
- */
- protected void pushIfTestToProxy() {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push if test to proxy command is:
- // PushExpressionCommand(push if test to proxy)
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.IF_TEST_EXPRESSION_VALUE);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushIfElseToProxy(org.eclipse.jem.internal.proxy.initParser.tree.InternalIfElseOperandType)
- */
- protected void pushIfElseToProxy(InternalIfElseOperandType clauseType) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push conditional to proxy command is:
- // PushExpressionCommand(push if/else clause to proxy) followed by:
- // byte: clause type
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.IF_ELSE_EXPRESSION_VALUE);
- connection.pushByte((byte) clauseType.getValue());
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushNewInstanceToProxy(java.lang.String, org.eclipse.jem.internal.proxy.core.IProxyBeanType)
- */
- protected void pushNewInstanceToProxy(String initializationString, IProxyBeanType resultType) {
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push new instance from initstring to proxy command is:
- // PushExpressionCommand(push new instance to proxy) followed by:
- // string: init string
- // ValueObject: containing the rendered bean type proxy or the expression proxy for the declaring type
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.NEW_INSTANCE_VALUE);
- connection.pushString(initializationString);
- fillProxy(resultType, workerValue);
- connection.pushValueObject(workerValue);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- } catch (CommandException e) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- if (!e.isRecoverable()) {
- connection.close();
- throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- }
- }
-
- private static class Mark extends PendingTransaction {
- public int markID;
-
- public Mark(int markID) {
- this.markID = markID;
- }
-
- public void pushTransaction(REMExpression remExpression) {
- IREMExpressionConnection connection = remExpression.getConnection();
- try {
- // Format of push mark to proxy command is:
- // PushExpressionCommand(push mark to proxy) followed by:
- // int: markID
- connection.pushExpressionCommand(remExpression.getREMExpressionID(), (byte)InternalExpressionTypes.MARK_VALUE);
- connection.pushInt(markID);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- remExpression.markInvalid(e.getLocalizedMessage());
- remExpression.throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
- }
-
- protected void pushMarkToProxy(int markID) {
- addPendingTransaction(new Mark(markID));
- }
-
- protected void pushEndmarkToProxy(int markID, boolean restore) {
- // See if the top pending transaction is now Mark(markID). If it is, then this transaction and the mark begin
- // can be thrown away because they are an empty block.
- PendingTransaction topEntry = getPendingEntryFromTop(1);
- if (topEntry instanceof Mark && ((Mark) topEntry).markID == markID) {
- popPendingEntry(1);
- return;
- }
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push end mark to proxy command is:
- // PushExpressionCommand(push end mark to proxy) followed by:
- // int: markID
- // boolean: restore
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.ENDMARK_VALUE);
- connection.pushInt(markID);
- connection.pushBoolean(restore);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
- // This is the expression processor controller used to transfer.
- // This is the guy that maintains continuity of the transaction as
- // it is passed from one connection to another.
- protected IBeanProxy expressionProcesserController;
- protected void pushBeginTransferThreadToProxy() throws ThrowableProxy {
- // If the controller is not null, that means we had already requested a transfer
- // but had not used it in this thread so there is no need to do anything. It
- // will be handled when switching back to the other thread.
- // If the connection is null, no need to do anything since there is no connection
- // to transfer.
- if (connection != null && expressionProcesserController == null) {
- IREMExpressionConnection lclConnection = getConnection();
- markInTransaction(lclConnection);
- try {
- workerValue.set();
- lclConnection.transferExpression(getREMExpressionID(), workerValue);
- expressionProcesserController = getREMBeanProxyFactory().getBeanProxy(workerValue);
- getREMRegistry().returnConnection(lclConnection);
- this.connection = null;
- } catch (CommandException e) {
- ProxyPlugin.getPlugin().getLogger().log(e);
- if (!e.isRecoverable()) {
- lclConnection.close();
- throwIllegalStateException(COMMAND_EXCEPTION_MSG);
- }
- } finally {
- markEndTransaction(lclConnection);
- }
- }
- }
-
- protected void pushTransferThreadToProxy() {
- // Don't need to do anything. The next time we need to push data across, we will get a connection and the getConnection()
- // will hook up the expression processor controller for us. This way if nothing happens in this thread then we won't
- // waste communication time on it.
- }
-
- private static class SubexpressionBegin extends PendingTransaction {
- public int subexpressionNumber;
-
- public SubexpressionBegin(int subexpressionNumber) {
- this.subexpressionNumber = subexpressionNumber;
- }
-
- public void pushTransaction(REMExpression remExpression) {
- IREMExpressionConnection connection = remExpression.getConnection();
- try {
- // Format of push to subexpression begin proxy command is:
- // PushExpressionCommand(push subexpression begin proxy to proxy) followed by:
- // int: subexpression id
- connection.pushExpressionCommand(remExpression.getREMExpressionID(), (byte)InternalExpressionTypes.SUBEXPRESSION_BEGIN_EXPRESSION_VALUE);
- connection.pushInt(subexpressionNumber);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- remExpression.markInvalid(e.getLocalizedMessage());
- remExpression.throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-
- }
-
- protected void pushSubexpressionBeginToProxy(int subexpressionNumber) {
- addPendingTransaction(new SubexpressionBegin(subexpressionNumber));
- }
-
- protected void pushSubexpressionEndToProxy(int subexpressionNumber) {
- // See if the top pending transactions is SubexpressionBegin(subexpressionNumber). If it is then the SubexpressionBegin can be thrown away.
- PendingTransaction topEntry = getPendingEntryFromTop(1);
- if (topEntry instanceof SubexpressionBegin && ((SubexpressionBegin) topEntry).subexpressionNumber == subexpressionNumber) {
- popPendingEntry(1);
- return;
- }
- processPendingTransactions();
- IREMExpressionConnection connection = getConnection();
- try {
- // Format of push to block end proxy command is:
- // PushExpressionCommand(push subexpression end proxy to proxy) followed by:
- // int: subexpression id
- connection.pushExpressionCommand(getREMExpressionID(), (byte)InternalExpressionTypes.SUBEXPRESSION_END_EXPRESSION_VALUE);
- connection.pushInt(subexpressionNumber);
- } catch (IOException e) {
- connection.close();
- ProxyPlugin.getPlugin().getLogger().log(e);
- markInvalid(e.getLocalizedMessage());
- throwIllegalStateException(IO_EXCEPTION_MSG);
- }
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFieldProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFieldProxy.java
deleted file mode 100644
index 20bbd4fad..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFieldProxy.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMFieldProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:07 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-
-final class REMFieldProxy extends REMAccessibleObjectProxy implements IFieldProxy {
- private IBeanTypeProxy fFieldType;
-
- REMFieldProxy(REMProxyFactoryRegistry aRegistry, Integer anID) {
- super(aRegistry, anID);
- }
-
- /**
- * Return the type of the field.
- */
- public IBeanTypeProxy getFieldType() {
- if (fFieldType == null)
- fFieldType =
- (IBeanTypeProxy) REMStandardBeanProxyConstants.getConstants(fFactory).getFieldGetType().invokeCatchThrowableExceptions(
- this);
-
- return fFieldType;
- }
-
- /**
- * Release the proxy, i.e. mark it invalid.
- */
- public void release() {
- fFieldType = null;
- super.release();
- }
-
- /**
- * Get the value of this field from the subject
- */
- public IBeanProxy get(IBeanProxy subject) throws ThrowableProxy {
- // Format of getter parms is: (Object (subject)).
- // If the component type is primitive, we need to use the correct getter so that a valid value is returned,
- // if we just used the standard get, if the type was "int" the value returned would be an java.lang.Integer.
- IBeanTypeProxy fieldType = getFieldType();
- if (!fieldType.isPrimitive()) {
- // Use standard getter.
- return ((IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fFactory).getFieldGet()).invoke(this, subject);
- } else {
- // Use the correct primitive getter.
- int id = ((IREMBeanProxy) fieldType).getID().intValue();
- switch (id) {
- case Commands.BYTE_TYPE :
- return ((IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fFactory).getFieldGetByte()).invoke(this, subject);
- case Commands.BOOLEAN_TYPE :
- return ((IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fFactory).getFieldGetBoolean()).invoke(
- this,
- subject);
- case Commands.CHARACTER_TYPE :
- return ((IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fFactory).getFieldGetChar()).invoke(this, subject);
- case Commands.DOUBLE_TYPE :
- return ((IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fFactory).getFieldGetDouble()).invoke(
- this,
- subject);
- case Commands.FLOAT_TYPE :
- return ((IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fFactory).getFieldGetFloat()).invoke(
- this,
- subject);
- case Commands.INTEGER_TYPE :
- return ((IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fFactory).getFieldGetInt()).invoke(this, subject);
- case Commands.LONG_TYPE :
- return ((IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fFactory).getFieldGetLong()).invoke(this, subject);
- case Commands.SHORT_TYPE :
- return ((IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fFactory).getFieldGetShort()).invoke(
- this,
- subject);
- }
- }
-
- return null;
- }
-
- /**
- * Set the value of this field in this subject to this value.
- */
- public void set(IBeanProxy subject, IBeanProxy value) throws ThrowableProxy {
- REMStandardBeanProxyConstants.getConstants(fFactory).getFieldSet().invoke(this, new IBeanProxy[] { subject, value });
- }
-
- /**
- * The type proxy is constant proxy out of the method factory.
- */
- public IBeanTypeProxy getTypeProxy() {
- return ((REMMethodProxyFactory) fFactory.getMethodProxyFactory()).fieldType;
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFieldTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFieldTypeProxy.java
deleted file mode 100644
index e0862c268..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFieldTypeProxy.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMFieldTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * BeanType Proxy for Method class.
- */
-
-final class REMFieldTypeProxy extends REMAbstractBeanTypeProxy {
-
-REMFieldTypeProxy(REMProxyFactoryRegistry aRegistry, IBeanTypeProxy accessibleTypeProxy) {
- super(aRegistry, new Integer(Commands.FIELD_CLASS), java.lang.reflect.Field.class.getName(), accessibleTypeProxy);
-}
-
-/**
- * newBeanTypeForClass: Create a new beantypeproxy of this kind for the given class.
- * This is used by beantype proxy factory when creating a beantype proxy for a subclass.
- * This is because subclasses, unless explicitly overridden, should use the same kind
- * of beantype proxy. This way if anything special is needed for a specific type, then
- * that can be done.
- *
- * For all of the accessible object types, they are final classes, so you can't create a newBeanType
- * for subclasses.
- */
-public IREMBeanTypeProxy newBeanTypeForClass(Integer anID, String aClassname, boolean anAbstract) {
- throw new UnsupportedOperationException();
-}
-
-/**
- * Specialized from REMAbstractBeanTypeProxy to ensure Constructor proxies are created correctly.
- */
-public IREMBeanProxy newBeanProxy(Integer objectID) {
- return new REMFieldProxy(fRegistry, objectID);
-}
-
-/**
- * Note: Since new instances of Constructor are never done through a default ctor,
- * this function is not supported.
- */
-public IBeanProxy newInstance() {
- throw new UnsupportedOperationException();
-}
-
-/**
- * Note: Since new instances of Constructor are never done through an initialization string,
- * this function is not supported.
- */
-public IBeanProxy newInstance(String initializationString) {
- throw new UnsupportedOperationException();
-}
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFloatClassBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFloatClassBeanProxy.java
deleted file mode 100644
index f5957c4af..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFloatClassBeanProxy.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMFloatClassBeanProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * Remote proxy implementation of INumberBeanProxy for Float.class
- */
-class REMFloatClassBeanProxy extends REMNumberBeanProxy {
-
-REMFloatClassBeanProxy(REMProxyFactoryRegistry aRegistry, Float aFloat) {
- super(aRegistry, aFloat);
-}
-
-/**
- * Get the beantype
- */
-public IBeanTypeProxy getTypeProxy() {
- return ((REMStandardBeanTypeProxyFactory) fFactory.getBeanTypeProxyFactory()).floatClass;
-}
-
-/**
- * Render the bean into value object.
- */
-public void renderBean(Commands.ValueObject value) {
- value.set((Float) numberValue());
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFloatClassBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFloatClassBeanTypeProxy.java
deleted file mode 100644
index b443b5c40..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFloatClassBeanTypeProxy.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMFloatClassBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * Remote Implementation of IBeanTypePRoxy for Float.class
- * Creation date: (2/6/00 9:01:40 AM)
- * @author: Joe Winchester
- */
-final class REMFloatClassBeanTypeProxy extends REMAbstractNumberBeanTypeProxy {
-// Some values are cache'd for speed
- private final INumberBeanProxy zeroProxy;
-/**
- * REMIntegerBeanTypeProxy constructor comment.
- * @param aClass java.lang.Class
- */
-REMFloatClassBeanTypeProxy(REMProxyFactoryRegistry aRegistry, IBeanTypeProxy numberType) {
- super(aRegistry, new Integer(Commands.FLOAT_CLASS), Float.class.getName(), numberType);
-
- // Create the cached values
- zeroProxy = new REMFloatClassBeanProxy(aRegistry, new Float(0F));
-}
-
-/**
- * Helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- */
-INumberBeanProxy createFloatBeanProxy(Float aFloat) {
- return (aFloat.floatValue() != 0F) ?
- new REMFloatClassBeanProxy(fRegistry, aFloat) : zeroProxy;
-}
-
-/**
- * Generic way to create an Float proxy, however, the Number must be a Float.
- */
-protected INumberBeanProxy createNumberBeanProxy(Number aNumber) {
- return createFloatBeanProxy((Float) aNumber);
-}
-
-/**
- * newInstance method. Number's don't have a default ctor, so the standard way won't work.
- * Return the zero proxy for this case.
- */
-public IBeanProxy newInstance() {
- return zeroProxy;
-}
-
-/**
- * Create a new bean proxy the ValueObject passed in.
- * We will assume the object is correct type.
- */
-public IBeanProxy newBeanProxy(Commands.ValueObject value) {
- return createFloatBeanProxy(new Float(value.aFloat));
-}
-
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFloatTypeBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFloatTypeBeanProxy.java
deleted file mode 100644
index aea0e1870..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFloatTypeBeanProxy.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMFloatTypeBeanProxy.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * Remote Implementation of INumberBeanProxy for the primitive "float".
- * It can answer all of the primitive number types (int, long, short, byte, double, float).
- * Creation date: (2/6/00 9:02:54 AM)
- * @author: Joe Winchester
- */
-class REMFloatTypeBeanProxy extends REMConstantBeanProxy implements INumberBeanProxy {
- private final float fFloat;
-
-/**
- * It is package protected because they are created
- * in a special way and no one else should create them.
- * @param aBean java.lang.Object
- */
-REMFloatTypeBeanProxy(REMProxyFactoryRegistry aRegistry, float aFloat) {
- super(aRegistry);
- fFloat = aFloat;
-}
-/**
- * equals: Equal if:
- * 1) This proxy == (identity) to the other object
- * 2) Else if other is an IBeanProxy and not a constant one, then if
- * equals on the server.
- * 3) If this is a constant proxy and the other is too or is a constant
- * value (e.g. IStringBeanProxy.equals(String), then true if values are equals.
- */
-public boolean equals(Object anObject) {
- if (this == anObject)
- return true; // Identity
- if (anObject instanceof REMFloatTypeBeanProxy)
- return fFloat == ((REMFloatTypeBeanProxy) anObject).floatValue();
- if (anObject instanceof Double)
- return fFloat == ((Float) anObject).floatValue();
- return false;
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#sameAs(org.eclipse.jem.internal.proxy.core.IBeanProxy)
- */
-public boolean sameAs(IBeanProxy aBeanProxy) {
- if (this == aBeanProxy)
- return true; // Identity
- if (aBeanProxy instanceof REMFloatTypeBeanProxy)
- return fFloat == ((REMFloatTypeBeanProxy) aBeanProxy).floatValue();
- return false;
-}
-/**
- * byteValue method comment.
- */
-public byte byteValue() {
- return (byte) fFloat;
-}
-/**
- * doubleValue method comment.
- */
-public double doubleValue() {
- return fFloat;
-}
-/**
- * floatValue method comment.
- */
-public float floatValue() {
- return fFloat;
-}
-/**
- * Return the int value
- */
-public int intValue() {
- return (int) fFloat;
-}
-/**
- * longValue method comment.
- */
-public long longValue() {
- return (long) fFloat;
-}
-/**
- * numberValue method comment.
- */
-public Number numberValue() {
- return new Float(fFloat);
-}
-/**
- * shortValue method comment.
- */
-public short shortValue() {
- return (short) fFloat;
-}
-
-/**
- * The bean's toString.
- */
-public String toBeanString() {
- return String.valueOf(fFloat);
-}
-
-/**
- * Get the beantype
- */
-public IBeanTypeProxy getTypeProxy() {
- return ((REMStandardBeanTypeProxyFactory) fFactory.getBeanTypeProxyFactory()).floatType;
-}
-
-/**
- * Render the bean into value object.
- */
-public void renderBean(Commands.ValueObject value) {
- value.set(fFloat);
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFloatTypeBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFloatTypeBeanTypeProxy.java
deleted file mode 100644
index 3337ad5ca..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMFloatTypeBeanTypeProxy.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMFloatTypeBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * Remote Implementation of IBeanTypeProxy for Float.TYPE.
- * Creation date: (2/6/00 9:01:40 AM)
- * @author: Joe Winchester
- */
-final class REMFloatTypeBeanTypeProxy extends REMPrimitiveBeanTypeProxy {
-// Some values are cache'd for speed
- private final INumberBeanProxy zeroProxy;
-/**
- * REMIntegerBeanTypeProxy constructor comment.
- * @param aClass java.lang.Class
- */
-REMFloatTypeBeanTypeProxy(REMProxyFactoryRegistry aRegistry) {
- super(aRegistry, new Integer(Commands.FLOAT_TYPE), Float.TYPE.getName());
-
- // Create the cached values
- zeroProxy = new REMFloatTypeBeanProxy(aRegistry, 0F);
-}
-
-/**
- * Helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- */
-INumberBeanProxy createFloatBeanProxy(float aFloat) {
- return (aFloat != 0F) ?
- new REMFloatTypeBeanProxy(fRegistry, aFloat) : zeroProxy;
-}
-
-/**
- * newInstance method. float is a primitive, so the standard way won't work.
- * Return the zeroProxy for this case because that is the default value.
- */
-public IBeanProxy newInstance() {
- return zeroProxy;
-}
-
-/**
- * Create a new bean proxy the ValueObject passed in.
- * We will assume the object is correct type.
- */
-public IBeanProxy newBeanProxy(Commands.ValueObject value) {
- return createFloatBeanProxy(value.aFloat);
-}
-
-/**
- * Short cut for newInstance where the string follows the
- * specific pattern we expect. That way it won't be necessary to ship over to the vm
- * to process it.
- *
- * The pattern it can accept is:
- * 1) (float) validNumber - number can be any number because (float) explicitly casts it down.
- * 2) validNumber
- * It will use the decode function of float to determine the valid number.
- */
-public IBeanProxy newInstance(String initializationString) throws ThrowableProxy, ClassCastException, InstantiationException {
- String trim = initializationString.trim();
- if (trim.length() == 0)
- return super.newInstance(initializationString);
- float aFloat;
- if (trim.startsWith("(float)")) { //$NON-NLS-1$
- Number v = parseString(trim.substring("(float)".length()).trim()); //$NON-NLS-1$
- if (v != null)
- aFloat = v.floatValue();
- else
- return super.newInstance(initializationString); // Can't decode it, let full parser handle it.
- } else {
- try {
- aFloat = Float.valueOf(initializationString).floatValue(); // See if valid float format.
- } catch (NumberFormatException e) {
- return super.newInstance(initializationString); // Can't decode it, let full parser handle it.
- }
- }
-
- return getProxyFactoryRegistry().getBeanProxyFactory().createBeanProxyWith(aFloat);
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMInitErrorBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMInitErrorBeanTypeProxy.java
deleted file mode 100644
index f638fbb09..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMInitErrorBeanTypeProxy.java
+++ /dev/null
@@ -1,469 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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: REMInitErrorBeanTypeProxy.java,v $
- * $Revision: 1.10 $ $Date: 2005/08/24 20:39:07 $
- */package org.eclipse.jem.internal.proxy.remote;
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-
-/**
- * A special bean type proxy. It is for those bean types that had an instantiation error while being initialized. It is so we have the message. All
- * other actions against it will fail.
- *
- * @author richkulp
- */
-public class REMInitErrorBeanTypeProxy implements IREMBeanTypeProxy {
-
- protected final String initializationError;
-
- protected final REMProxyFactoryRegistry registry;
-
- protected final String classname;
-
- /**
- * Constructor for REMInitErrorBeanTypeProxy.
- */
- public REMInitErrorBeanTypeProxy(REMProxyFactoryRegistry registry, String initializationError, String classname) {
- super();
- this.registry = registry;
- this.initializationError = initializationError;
- this.classname = classname;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.remote.IREMBeanTypeProxy#newBeanProxy(java.lang.Integer)
- */
- public IREMBeanProxy newBeanProxy(Integer anID) {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.remote.IREMBeanTypeProxy#newBeanTypeForClass(java.lang.Integer, java.lang.String, boolean)
- */
- public IREMBeanTypeProxy newBeanTypeForClass(Integer anID, String aClassname, boolean anAbstract) {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructorProxy(java.lang.String[])
- */
- public IConstructorProxy getConstructorProxy(String[] argumentClassNames) {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructorProxy(org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- public IConstructorProxy getConstructorProxy(IBeanTypeProxy[] argumentTypes) {
- return null;
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors()
- */
- public IConstructorProxy[] getConstructors() {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructorProxy(java.lang.String[])
- */
- public IConstructorProxy getDeclaredConstructorProxy(String[] argumentClassNames) {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructorProxy(org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- public IConstructorProxy getDeclaredConstructorProxy(IBeanTypeProxy[] argumentTypes) {
- return null;
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors()
- */
- public IConstructorProxy[] getDeclaredConstructors() {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors()
- */
- public IFieldProxy[] getFields() {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors()
- */
- public IFieldProxy[] getDeclaredFields() {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getFieldProxy(java.lang.String)
- */
- public IFieldProxy getFieldProxy(String fieldName) {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getDeclaredFieldProxy(java.lang.String)
- */
- public IFieldProxy getDeclaredFieldProxy(String fieldName) {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors()
- */
- public IMethodProxy[] getMethods() {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors()
- */
- public IMethodProxy[] getDeclaredMethods() {
- return null;
- }
-
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getMethodProxy(java.lang.String)
- */
- public IMethodProxy getMethodProxy(String methodName) {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getMethodProxy(java.lang.String, java.lang.String[])
- */
- public IMethodProxy getMethodProxy(String methodName, String[] argumentClassNames) {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getMethodProxy(java.lang.String, java.lang.String)
- */
- public IMethodProxy getMethodProxy(String methodName, String argumentClassName) {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getMethodProxy(java.lang.String, org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- public IMethodProxy getMethodProxy(String methodName, IBeanTypeProxy[] argumentTypes) {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getMethodProxy(java.lang.String, org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- public IMethodProxy getDeclaredMethodProxy(String methodName, IBeanTypeProxy[] argumentTypes) {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getMethodProxy(java.lang.String, java.lang.String[])
- */
- public IMethodProxy getDeclaredMethodProxy(String methodName, String[] argumentClassNames) {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getNullConstructorProxy()
- */
- public IConstructorProxy getNullConstructorProxy() {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#getProxyFactoryRegistry()
- */
- public ProxyFactoryRegistry getProxyFactoryRegistry() {
- return registry;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getSuperBeanTypeProxy()
- */
- public IBeanTypeProxy getSuperBeanTypeProxy() {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getTypeName()
- */
- public String getTypeName() {
- return classname;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getFormalTypeName()
- */
- public String getFormalTypeName() {
- return getTypeName();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#isArray()
- */
- public boolean isArray() {
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#isInterface()
- */
- public boolean isInterface() {
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#isPrimitive()
- */
- public boolean isPrimitive() {
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#isKindOf(org.eclipse.jem.internal.proxy.core.IBeanTypeProxy)
- */
- public boolean isKindOf(IBeanTypeProxy aBeanProxyType) {
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#newInstance()
- */
- public IBeanProxy newInstance() throws ThrowableProxy {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#newInstance(java.lang.String)
- */
- public IBeanProxy newInstance(String initializationString) throws ThrowableProxy, ClassCastException, InstantiationException {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getInitializationError()
- */
- public String getInitializationError() {
- return initializationError;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.remote.IREMBeanProxy#getID()
- */
- public Integer getID() {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.remote.IREMBeanProxy#release()
- */
- public void release() {
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.remote.IREMBeanProxy#renderBean(org.eclipse.jem.internal.proxy.common.remote.Commands.ValueObject)
- */
- public void renderBean(Commands.ValueObject renderInto) {
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#getTypeProxy()
- */
- public IBeanTypeProxy getTypeProxy() {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#toBeanString()
- */
- public String toBeanString() {
- return ""; //$NON-NLS-1$
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#isValid()
- */
- public boolean isValid() {
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#sameAs(org.eclipse.jem.internal.proxy.core.IBeanProxy)
- */
- public boolean sameAs(IBeanProxy aBeanProxy) {
- return this == aBeanProxy; // This is place holder anyway. So only identical if same proxy.
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getInvokable(java.lang.String, org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- public IInvokable getInvokable(String methodName, IBeanTypeProxy[] argumentTypes) {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getInvokable(java.lang.String, java.lang.String)
- */
- public IInvokable getInvokable(String methodName, String argumentClassName) {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getInvokable(java.lang.String, java.lang.String[])
- */
- public IInvokable getInvokable(String methodName, String[] argumentClassNames) {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getInvokable(java.lang.String)
- */
- public IInvokable getInvokable(String methodName) {
- return null;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getCompatibleConstructor(org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- public IConstructorProxy getCompatibleConstructor(IBeanTypeProxy[] argumentTypes) {
- return null;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getCompatibleMethod(java.lang.String, org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- public IMethodProxy getCompatibleMethod(String methodName, IBeanTypeProxy[] argumentTypes) {
- return null;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxy#isBeanProxy()
- */
- public final boolean isBeanProxy() {
- return true;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxy#isExpressionProxy()
- */
- public final boolean isExpressionProxy() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxyBeanType#getMethodProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String, org.eclipse.jem.internal.proxy.core.IProxyBeanType[])
- */
- public IProxyMethod getMethodProxy(IExpression expression, String methodName, IProxyBeanType[] parameters) {
- return null; // Since this guy is invalid, we can't return a method.
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxyBeanType#getMethodProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String, java.lang.String[])
- */
- public IProxyMethod getMethodProxy(IExpression expression, String methodName, String[] parameterTypes) {
- return null;
- }
-
- public IProxyMethod getMethodProxy(IExpression expression, String methodName) {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxyBeanType#getFieldProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String)
- */
- public IProxyField getFieldProxy(IExpression expression, String fieldName) {
- return null;
- }
-
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMIntegerClassBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMIntegerClassBeanProxy.java
deleted file mode 100644
index 6825c4f20..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMIntegerClassBeanProxy.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMIntegerClassBeanProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * Remote Proxy for Integers. Since Integers were first implemented
- * in the VCE, and because they are often referenced, we've created
- * a subclass to handle them. That way we wouldn't need to change
- * everyone that was using the IIntegerProxy interface.
- * Creation date: (08/31/00 11:28:48 AM)
- * @author: Administrator
- */
-class REMIntegerClassBeanProxy extends REMNumberBeanProxy implements IIntegerBeanProxy {
-
-REMIntegerClassBeanProxy(REMProxyFactoryRegistry aRegistry, Integer anInteger) {
- super(aRegistry, anInteger);
-}
-
-/**
- * Get the beantype
- */
-public IBeanTypeProxy getTypeProxy() {
- return ((REMStandardBeanTypeProxyFactory) fFactory.getBeanTypeProxyFactory()).integerClass;
-}
-
-/**
- * Render the bean into value object.
- */
-public void renderBean(Commands.ValueObject value) {
- value.set((Integer) numberValue());
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMIntegerClassBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMIntegerClassBeanTypeProxy.java
deleted file mode 100644
index c3436fd12..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMIntegerClassBeanTypeProxy.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMIntegerClassBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * Remote Implementation of INumberBeanProxy for Integer.class.
- * Creation date: (2/6/00 9:01:40 AM)
- * @author: Joe Winchester
- */
-final class REMIntegerClassBeanTypeProxy extends REMAbstractNumberBeanTypeProxy {
-// Some values are cache'd for speed
- private final IIntegerBeanProxy zeroProxy;
- private final IIntegerBeanProxy oneProxy;
- private final IIntegerBeanProxy twoProxy;
- private final IIntegerBeanProxy threeProxy;
-/**
- * REMIntegerBeanTypeProxy constructor comment.
- * @param aClass java.lang.Class
- */
-REMIntegerClassBeanTypeProxy(REMProxyFactoryRegistry aRegistry, IBeanTypeProxy numberType) {
- super(aRegistry, new Integer(Commands.INTEGER_CLASS), Integer.class.getName(), numberType);
-
- // Create the cached values
- zeroProxy = new REMIntegerClassBeanProxy(aRegistry, new Integer(0));
- oneProxy = new REMIntegerClassBeanProxy(aRegistry, new Integer(1));
- twoProxy = new REMIntegerClassBeanProxy(aRegistry, new Integer(2));
- threeProxy = new REMIntegerClassBeanProxy(aRegistry, new Integer(3));
-
-}
-
-/**
- * Helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- */
-IIntegerBeanProxy createIntegerBeanProxy(Integer anInteger) {
- switch(anInteger.intValue()) {
- case 0: return zeroProxy;
- case 1: return oneProxy ;
- case 2: return twoProxy ;
- case 3: return threeProxy ;
- default: return new REMIntegerClassBeanProxy(fRegistry, anInteger);
- }
-}
-
-/**
- * Generic way to create an Integer proxy, however, the Number must be an Integer.
- */
-protected INumberBeanProxy createNumberBeanProxy(Number aNumber) {
- return createIntegerBeanProxy((Integer) aNumber);
-}
-
-/**
- * newInstance method. Number's don't have a default ctor, so the standard way won't work.
- * Return the zero proxy for this case.
- */
-public IBeanProxy newInstance() {
- return zeroProxy;
-}
-
-/**
- * Create a new bean proxy the ValueObject passed in.
- * We will assume the object is correct type.
- */
-public IBeanProxy newBeanProxy(Commands.ValueObject value) {
- return createIntegerBeanProxy(new Integer(value.anInt));
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMIntegerTypeBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMIntegerTypeBeanProxy.java
deleted file mode 100644
index 48727837b..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMIntegerTypeBeanProxy.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMIntegerTypeBeanProxy.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * Remote Implementation of IIntegerBeanProxy for the primitive "int".
- * It can answer all of the primitive number types (int, long, short, byte, double, float).
- * Creation date: (2/6/00 9:02:54 AM)
- * @author: Joe Winchester
- */
-class REMIntegerTypeBeanProxy extends REMConstantBeanProxy implements IIntegerBeanProxy {
- private final int fInt;
-
-/**
- * It is package protected because they are created
- * in a special way and no one else should create them.
- * @param aBean java.lang.Object
- */
-REMIntegerTypeBeanProxy(REMProxyFactoryRegistry aRegistry, int anInt) {
- super(aRegistry);
- fInt = anInt;
-}
-/**
- * equals: Equal if:
- * 1) This proxy == (identity) to the other object
- * 2) Else if other is an IBeanProxy and not a constant one, then if
- * equals on the server.
- * 3) If this is a constant proxy and the other is too or is a constant
- * value (e.g. IStringBeanProxy.equals(String), then true if values are equals.
- */
-public boolean equals(Object anObject) {
- if (this == anObject)
- return true; // Identity
- if (anObject instanceof REMIntegerTypeBeanProxy)
- return fInt == ((REMIntegerTypeBeanProxy) anObject).intValue();
- if (anObject instanceof Integer)
- return fInt == ((Integer) anObject).intValue();
- return false;
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#sameAs(org.eclipse.jem.internal.proxy.core.IBeanProxy)
- */
-public boolean sameAs(IBeanProxy aBeanProxy) {
- if (this == aBeanProxy)
- return true; // Identity
- if (aBeanProxy instanceof REMIntegerTypeBeanProxy)
- return fInt == ((REMIntegerTypeBeanProxy) aBeanProxy).intValue();
- return false;
-}
-
-/**
- * byteValue method comment.
- */
-public byte byteValue() {
- return (byte) fInt;
-}
-/**
- * doubleValue method comment.
- */
-public double doubleValue() {
- return fInt;
-}
-/**
- * floatValue method comment.
- */
-public float floatValue() {
- return fInt;
-}
-/**
- * Return the int value
- */
-public int intValue() {
- return fInt;
-}
-/**
- * longValue method comment.
- */
-public long longValue() {
- return fInt;
-}
-/**
- * numberValue method comment.
- */
-public Number numberValue() {
- return new Integer(fInt);
-}
-/**
- * shortValue method comment.
- */
-public short shortValue() {
- return (short) fInt;
-}
-
-/**
- * The bean's toString.
- */
-public String toBeanString() {
- return String.valueOf(fInt);
-}
-
-/**
- * Get the beantype
- */
-public IBeanTypeProxy getTypeProxy() {
- return ((REMStandardBeanTypeProxyFactory) fFactory.getBeanTypeProxyFactory()).intType;
-}
-
-/**
- * Render the bean into value object.
- */
-public void renderBean(Commands.ValueObject value) {
- value.set(fInt);
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMIntegerTypeBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMIntegerTypeBeanTypeProxy.java
deleted file mode 100644
index ccc724a7a..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMIntegerTypeBeanTypeProxy.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMIntegerTypeBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * Remote Implementation of IBeanTypeProxy for Integer.TYPE.
- * Creation date: (2/6/00 9:01:40 AM)
- * @author: Joe Winchester
- */
-final class REMIntegerTypeBeanTypeProxy extends REMPrimitiveBeanTypeProxy {
-// Some values are cache'd for speed
- private final IIntegerBeanProxy zeroProxy;
- private final IIntegerBeanProxy oneProxy;
- private final IIntegerBeanProxy twoProxy;
- private final IIntegerBeanProxy threeProxy;
-/**
- * REMIntegerBeanTypeProxy constructor comment.
- * @param aClass java.lang.Class
- */
-REMIntegerTypeBeanTypeProxy(REMProxyFactoryRegistry aRegistry) {
- super(aRegistry, new Integer(Commands.INTEGER_TYPE), Integer.TYPE.getName());
-
- // Create the cached values
- zeroProxy = new REMIntegerTypeBeanProxy(aRegistry, 0);
- oneProxy = new REMIntegerTypeBeanProxy(aRegistry, 1);
- twoProxy = new REMIntegerTypeBeanProxy(aRegistry, 2);
- threeProxy = new REMIntegerTypeBeanProxy(aRegistry, 3);
-
-}
-/**
- * Helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- * Use the cache to see if the value is being held before creating a new one
- */
-IIntegerBeanProxy createIntegerBeanProxy(int anInt) {
-
- switch(anInt) {
- case 0: return zeroProxy;
- case 1: return oneProxy ;
- case 2: return twoProxy ;
- case 3: return threeProxy ;
- default: return new REMIntegerTypeBeanProxy(fRegistry, anInt);
- }
-}
-
-/**
- * newInstance method. integer is a primitive, so the standard way won't work.
- * Return the zeroProxy for this case because that is the default value.
- */
-public IBeanProxy newInstance() {
- return zeroProxy;
-}
-
-/**
- * Create a new bean proxy the ValueObject passed in.
- * We will assume the object is correct type.
- */
-public IBeanProxy newBeanProxy(Commands.ValueObject value) {
- return createIntegerBeanProxy(value.anInt);
-}
-
-/**
- * Short cut for newInstance where the string follows the
- * specific pattern we expect. That way it won't be necessary to ship over to the vm
- * to process it.
- *
- * The pattern it can accept is:
- * 1) (int) validNumber - number can be any number because (byte) explicitly casts it down.
- * 2) validNumber
- * It will use the decode function of int to determine the valid number.
- */
-public IBeanProxy newInstance(String initializationString) throws ThrowableProxy, ClassCastException, InstantiationException {
- String trim = initializationString.trim();
- if (trim.length() == 0)
- return super.newInstance(initializationString);
- int anInt;
- if (trim.startsWith("(int)")) { //$NON-NLS-1$
- Number v = parseString(trim.substring("(int)".length()).trim()); //$NON-NLS-1$
- if (v != null)
- anInt = v.intValue();
- else
- return super.newInstance(initializationString); // Can't decode it, let full parser handle it.
- } else {
- try {
- anInt = Integer.decode(trim).intValue(); // See if valid int format.
- } catch (NumberFormatException e) {
- return super.newInstance(initializationString); // Can't decode it, let full parser handle it.
- }
- }
-
- return getProxyFactoryRegistry().getBeanProxyFactory().createBeanProxyWith(anInt);
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMInterfaceBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMInterfaceBeanTypeProxy.java
deleted file mode 100644
index 34375b6cc..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMInterfaceBeanTypeProxy.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMInterfaceBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * Default beantype proxy for an interface.
- */
-
-public class REMInterfaceBeanTypeProxy extends REMAbstractBeanTypeProxy {
-
- protected REMInterfaceBeanTypeProxy(REMProxyFactoryRegistry aRegistry, Integer anID, String aClassname) {
- super(aRegistry, anID, aClassname, null);
- }
-
- /**
- * Interfaces are interfaces.
- */
- public boolean isInterface() {
- return true;
- }
-
- /**
- * Create a new bean proxy with the specified id.
- *
- * For all of the interface types, this is an invalid operation.
- */
- public IREMBeanProxy newBeanProxy(Integer anID) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * newBeanTypeForClass: Create a new beantypeproxy of this kind for the given class.
- * This is used by beantype proxy factory when creating a beantype proxy for a subclass.
- * This is because subclasses, unless explicitly overridden, should use the same kind
- * of beantype proxy. This way if anything special is needed for a specific type, then
- * that can be done.
- *
- * For all of the interface types, you can't create a newBeanType for subclasses since
- * interface aren't subclassable, only extendable.
- */
- public IREMBeanTypeProxy newBeanTypeForClass(Integer anID, String aClassname, boolean anAbstact) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Note: Since new instances of interfaces can never be done,
- * this function is not supported.
- */
- public IBeanProxy newInstance() {
- throw new UnsupportedOperationException();
- }
-
- /**
- * newInstance(initializationString) is valid because it can be used to create
- * an instance of an implementation of the interface.
- */
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMInvokable.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMInvokable.java
deleted file mode 100644
index 258ee8ba7..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMInvokable.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: REMInvokable.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:07 $
- */
-package org.eclipse.jem.internal.proxy.remote;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-import org.eclipse.jem.internal.proxy.common.CommandException;
-import org.eclipse.jem.internal.proxy.common.remote.*;
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.core.IInvokable;
-
-
-/**
- * Remote Invokable. This invokes on the remote vm, but it doesn't use a method proxy. Instead
- * it sends the information to get the method to the remote vm along with the parms. That way
- * it will do the lookup on the remote vm and we don't have the overhead of two calls, one to
- * get the methodproxy and the other to actually do the invoke. This should typically be used
- * only for infrequent calls so that cache of the method proxy is not needed.
- *
- * @since 1.0.0
- */
-class REMInvokable implements IInvokable {
-
- protected final IREMBeanTypeProxy beanType; // Beantype to get method from.
- protected final String methodName; // Method name
- protected final IBeanTypeProxy[] methodArgTypes; // Argument types (or null if no arguments).
- protected final REMProxyFactoryRegistry factory; // Factory for this invokable
-
-
- REMInvokable(IREMBeanTypeProxy beanType, String methodName, IBeanTypeProxy[] methodArgTypes) {
- this.beanType = beanType;
- this.methodName = methodName;
- this.methodArgTypes = methodArgTypes;
- this.factory = (REMProxyFactoryRegistry) beanType.getProxyFactoryRegistry();
- }
-
- public IBeanProxy invoke(IBeanProxy subject) throws ThrowableProxy {
- return invoke(subject, (IBeanProxy[]) null);
- }
-
- public IBeanProxy invoke(IBeanProxy subject, IBeanProxy[] parms) throws ThrowableProxy {
- return invokeWithParms(subject, parms);
- }
-
- /**
- * The internal method that allows mixture of constants (e.g. String) with bean proxies.
- * A parm value can be a REMMethodProxy.ParmArray. This means this parm is an array that
- * needs to have a ValueRetriever created for it. This is used if the array has ID's in
- * it and is not an existing array on the server or all constant values.
- *
- * NOTE: It is assumed that all IBeanTypeProxies of the parms have already been retrieved.
- * It should still work, but it could be asking for them in the middle of the request
- * if they are not first gotton.
- *
- */
- public IBeanProxy invokeWithParms(IBeanProxy subject, final Object[] parms) throws ThrowableProxy {
- IREMConnection connect = factory.getFreeConnection();
- REMStandardBeanProxyFactory proxyFactory = (REMStandardBeanProxyFactory) factory.getBeanProxyFactory();
- proxyFactory.startTransaction(); // This is definately a transaction, so start it.
- try {
- // First need to send the method info.
- Commands.ValueObject classValue = new Commands.ValueObject();
- beanType.renderBean(classValue);
-
- Commands.ValueObject parmTypesValue = new Commands.ValueObject();
- if (methodArgTypes != null) {
- class Retriever implements Commands.ValueRetrieve {
- int index = 0;
- Object[] array;
- Commands.ValueObject worker = new Commands.ValueObject();
-
- public Retriever(Object[] anArray) {
- array = anArray;
- }
-
- public Commands.ValueObject nextValue() {
- Object parm = array[index++];
- ((IREMBeanTypeProxy) parm).renderBean(worker);
- return worker;
- }
- };
-
- parmTypesValue.setArrayIDS(new Retriever(methodArgTypes), methodArgTypes.length, Commands.CLASS_CLASS); // Create Class[].
- }
-
-
- // Now we start building the actual invocation.
-
- Commands.ValueObject subjectValue = new Commands.ValueObject();
- if (subject != null)
- ((IREMBeanProxy) subject).renderBean(subjectValue);
-
- Commands.ValueObject parmsValue = new Commands.ValueObject();
-
- if (parms != null) {
- // Have a local definition of the retriever so that the retriever can create
- // another one of itself if necessary.
- final IStandardBeanTypeProxyFactory typeFactory = factory.getBeanTypeProxyFactory();
-
- class Retriever implements Commands.ValueRetrieve {
- int index = 0;
- Object[] array;
- Commands.ValueObject worker = new Commands.ValueObject();
-
- public Retriever(Object[] anArray) {
- array = anArray;
- }
-
- public Commands.ValueObject nextValue() {
- Object parm = array[index++];
- if (parm != null)
- if (parm instanceof IREMBeanProxy)
- ((IREMBeanProxy) parm).renderBean(worker);
- else if (parm instanceof TransmitableArray) {
- // It is another array, create a new retriever.
- worker.setArrayIDS(
- new Retriever(((TransmitableArray) parm).array),
- ((TransmitableArray) parm).array.length,
- ((TransmitableArray) parm).componentTypeID);
- } else {
- // It's an object. Need to get bean type so that we can send it.
- IREMBeanProxy type = (IREMBeanProxy) typeFactory.getBeanTypeProxy(parm.getClass().getName());
- if (type == null)
- throw new IllegalArgumentException();
- int classID = type.getID().intValue();
- worker.setAsObject(parm, classID);
- }
- else
- worker.set();
- return worker;
- }
- };
-
- parmsValue.setArrayIDS(new Retriever(parms), parms.length, Commands.OBJECT_CLASS); // Create Object[].
- }
-
- Commands.ValueObject returnValue = new Commands.ValueObject();
- try {
- invoke(connect, proxyFactory, classValue, parmTypesValue, subjectValue, parmsValue, returnValue);
- return proxyFactory.getBeanProxy(returnValue);
- } catch (CommandException e) {
- if (!e.isRecoverable()) {
- // Close the connection and try again.
- factory.closeConnection(connect);
- connect = null;
- connect = factory.getFreeConnection();
- try {
- invoke(connect, proxyFactory, classValue, parmTypesValue, subjectValue, parmsValue, returnValue);
- return proxyFactory.getBeanProxy(returnValue);
- } catch (CommandException eAgain) {
- // Failed again. Just close and print trace.
- factory.closeConnection(connect);
- connect = null;
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", eAgain)); //$NON-NLS-1$
- return null;
- }
- } else {
- // A recoverable error, print trace and return
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- return null;
- }
- }
- } finally {
- proxyFactory.stopTransaction();
- if (connect != null)
- factory.returnConnection(connect);
- }
- }
-
-private void invoke(
- IREMConnection connect,
- REMStandardBeanProxyFactory proxyFactory,
- Commands.ValueObject classTypeValue,
- Commands.ValueObject parmTypesValue,
- Commands.ValueObject subjectValue,
- Commands.ValueObject parmsValue,
- Commands.ValueObject returnValue)
- throws ThrowableProxy, CommandException {
- try {
- connect.invokeMethod(classTypeValue, methodName, parmTypesValue, subjectValue, parmsValue, returnValue);
- } catch (CommandErrorException e) {
- proxyFactory.processErrorReturn(e);
- }
- }
-
- public IBeanProxy invoke(IBeanProxy subject, IBeanProxy parm) throws ThrowableProxy {
- return invoke(subject, new IBeanProxy[] { parm });
- }
-
- public IBeanProxy invokeCatchThrowableExceptions(IBeanProxy subject) {
- try {
- return invoke(subject);
- } catch (ThrowableProxy e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- factory.releaseProxy(e); // Since it's no longer needed, get rid of now instead of GC time.
- return null;
- }
- }
-
- public IBeanProxy invokeCatchThrowableExceptions(IBeanProxy subject, IBeanProxy[] parms) {
- try {
- return invoke(subject, parms);
- } catch (ThrowableProxy e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- factory.releaseProxy(e); // Since it's no longer needed, get rid of now instead of GC time.
- return null;
- }
- }
-
- public IBeanProxy invokeCatchThrowableExceptions(IBeanProxy subject, IBeanProxy parm) {
- try {
- return invoke(subject, parm);
- } catch (ThrowableProxy e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- factory.releaseProxy(e); // Since it's no longer needed, get rid of now instead of GC time.
- return null;
- }
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMLongClassBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMLongClassBeanProxy.java
deleted file mode 100644
index 1a8a2e49b..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMLongClassBeanProxy.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMLongClassBeanProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * Remote Proxy for Long.class.
- */
-class REMLongClassBeanProxy extends REMNumberBeanProxy {
-
-REMLongClassBeanProxy(REMProxyFactoryRegistry aRegistry, Long aLong) {
- super(aRegistry, aLong);
-}
-
-/**
- * Get the beantype
- */
-public IBeanTypeProxy getTypeProxy() {
- return ((REMStandardBeanTypeProxyFactory) fFactory.getBeanTypeProxyFactory()).longClass;
-}
-
-/**
- * Render the bean into value object.
- */
-public void renderBean(Commands.ValueObject value) {
- value.set((Long) numberValue());
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMLongClassBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMLongClassBeanTypeProxy.java
deleted file mode 100644
index 476a8d8b2..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMLongClassBeanTypeProxy.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMLongClassBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * Remote Implementation of IBeanTypeProxy Long.class.
- * Creation date: (2/6/00 9:01:40 AM)
- * @author: Joe Winchester
- */
-final class REMLongClassBeanTypeProxy extends REMAbstractNumberBeanTypeProxy {
-// Some values are cache'd for speed
- private final INumberBeanProxy zeroProxy;
- private final INumberBeanProxy oneProxy;
- private final INumberBeanProxy twoProxy;
- private final INumberBeanProxy threeProxy;
-/**
- * REMIntegerBeanTypeProxy constructor comment.
- * @param aClass java.lang.Class
- */
-REMLongClassBeanTypeProxy(REMProxyFactoryRegistry aRegistry, IBeanTypeProxy numberType) {
- super(aRegistry, new Integer(Commands.LONG_CLASS), Long.class.getName(), numberType);
-
- // Create the cached values
- zeroProxy = new REMLongClassBeanProxy(aRegistry, new Long(0));
- oneProxy = new REMLongClassBeanProxy(aRegistry, new Long(1));
- twoProxy = new REMLongClassBeanProxy(aRegistry, new Long(2));
- threeProxy = new REMLongClassBeanProxy(aRegistry, new Long(3));
-}
-
-/**
- * Helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- */
-INumberBeanProxy createLongBeanProxy(Long aLong) {
- if (aLong.longValue() >= 0 && aLong.longValue() < 4) {
- // Switch statements don't work with longs.
- switch(aLong.intValue()) {
- case 0: return zeroProxy;
- case 1: return oneProxy ;
- case 2: return twoProxy ;
- case 3: return threeProxy ;
- }
- }
- return new REMLongClassBeanProxy(fRegistry, aLong);
-}
-
-/**
- * Generic way to create a Long proxy, however, the Number must be a Long.
- */
-protected INumberBeanProxy createNumberBeanProxy(Number aNumber) {
- return createLongBeanProxy((Long) aNumber);
-}
-
-/**
- * newInstance method. Number's don't have a default ctor, so the standard way won't work.
- * Return the zero proxy for this case.
- */
-public IBeanProxy newInstance() {
- return zeroProxy;
-}
-
-/**
- * Create a new bean proxy the ValueObject passed in.
- * We will assume the object is correct type.
- */
-public IBeanProxy newBeanProxy(Commands.ValueObject value) {
- return createLongBeanProxy(new Long(value.aLong));
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMLongTypeBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMLongTypeBeanProxy.java
deleted file mode 100644
index 172662a41..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMLongTypeBeanProxy.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMLongTypeBeanProxy.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * Remote Implementation of INumberBeanProxy for the primitive "long".
- * It can answer all of the primitive number types (int, long, short, byte, double, float).
- * Creation date: (2/6/00 9:02:54 AM)
- * @author: Joe Winchester
- */
-class REMLongTypeBeanProxy extends REMConstantBeanProxy implements INumberBeanProxy {
- private final long fLong;
-
-/**
- * It is package protected because they are created
- * in a special way and no one else should create them.
- * @param aBean java.lang.Object
- */
-REMLongTypeBeanProxy(REMProxyFactoryRegistry aRegistry, long aLong) {
- super(aRegistry);
- fLong = aLong;
-}
-/**
- * equals: Equal if:
- * 1) This proxy == (identity) to the other object
- * 2) Else if other is an IBeanProxy and not a constant one, then if
- * equals on the server.
- * 3) If this is a constant proxy and the other is too or is a constant
- * value (e.g. IStringBeanProxy.equals(String), then true if values are equals.
- */
-public boolean equals(Object anObject) {
- if (this == anObject)
- return true; // Identity
- if (anObject instanceof REMLongTypeBeanProxy)
- return fLong == ((REMLongTypeBeanProxy) anObject).longValue();
- if (anObject instanceof Long)
- return fLong == ((Long) anObject).longValue();
- return false;
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#sameAs(org.eclipse.jem.internal.proxy.core.IBeanProxy)
- */
-public boolean sameAs(IBeanProxy aBeanProxy) {
- if (this == aBeanProxy)
- return true; // Identity
- if (aBeanProxy instanceof REMLongTypeBeanProxy)
- return fLong == ((REMLongTypeBeanProxy) aBeanProxy).longValue();
- return false;
-}
-/**
- * byteValue method comment.
- */
-public byte byteValue() {
- return (byte) fLong;
-}
-/**
- * doubleValue method comment.
- */
-public double doubleValue() {
- return fLong;
-}
-/**
- * floatValue method comment.
- */
-public float floatValue() {
- return fLong;
-}
-/**
- * Return the int value
- */
-public int intValue() {
- return (int) fLong;
-}
-/**
- * longValue method comment.
- */
-public long longValue() {
- return fLong;
-}
-/**
- * numberValue method comment.
- */
-public Number numberValue() {
- return new Long(fLong);
-}
-/**
- * shortValue method comment.
- */
-public short shortValue() {
- return (short) fLong;
-}
-
-/**
- * The bean's toString.
- */
-public String toBeanString() {
- return String.valueOf(fLong);
-}
-
-/**
- * Get the beantype
- */
-public IBeanTypeProxy getTypeProxy() {
- return ((REMStandardBeanTypeProxyFactory) fFactory.getBeanTypeProxyFactory()).longType;
-}
-
-/**
- * Render the bean into value object.
- */
-public void renderBean(Commands.ValueObject value) {
- value.set(fLong);
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMLongTypeBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMLongTypeBeanTypeProxy.java
deleted file mode 100644
index 5f2c6dbf7..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMLongTypeBeanTypeProxy.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMLongTypeBeanTypeProxy.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:07 $
- */
-
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-/**
- * Remote Implementation of IBeanTypeProxy for Long.TYPE/
- * Creation date: (2/6/00 9:01:40 AM)
- * @author: Joe Winchester
- */
-final class REMLongTypeBeanTypeProxy extends REMPrimitiveBeanTypeProxy {
-// Some values are cache'd for speed
- private final INumberBeanProxy zeroProxy;
- private final INumberBeanProxy oneProxy;
- private final INumberBeanProxy twoProxy;
- private final INumberBeanProxy threeProxy;
-/**
- * REMIntegerBeanTypeProxy constructor comment.
- * @param aClass java.lang.Class
- */
-REMLongTypeBeanTypeProxy(REMProxyFactoryRegistry aRegistry) {
- super(aRegistry, new Integer(Commands.LONG_TYPE), Long.TYPE.getName());
-
- // Create the cached values
- zeroProxy = new REMLongTypeBeanProxy(aRegistry, 0);
- oneProxy = new REMLongTypeBeanProxy(aRegistry, 1);
- twoProxy = new REMLongTypeBeanProxy(aRegistry, 2);
- threeProxy = new REMLongTypeBeanProxy(aRegistry, 3);
-}
-
-/**
- * Helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- */
-INumberBeanProxy createLongBeanProxy(long aLong) {
- if (aLong >= 0 && aLong < 4) {
- // Switch statements don't work with longs.
- switch((int) aLong) {
- case 0: return zeroProxy;
- case 1: return oneProxy ;
- case 2: return twoProxy ;
- case 3: return threeProxy ;
- }
- }
- return new REMLongTypeBeanProxy(fRegistry, aLong);
-}
-
-/**
- * newInstance method. long is a primitive, so the standard way won't work.
- * Return the zeroProxy for this case because that is the default value.
- */
-public IBeanProxy newInstance() {
- return zeroProxy;
-}
-
-/**
- * Create a new bean proxy the ValueObject passed in.
- * We will assume the object is correct type.
- */
-public IBeanProxy newBeanProxy(Commands.ValueObject value) {
- return createLongBeanProxy(value.aLong);
-}
-
-/**
- * Short cut for newInstance where the string follows the
- * specific pattern we expect. That way it won't be necessary to ship over to the vm
- * to process it.
- *
- * The pattern it can accept is:
- * 1) (long) validNumber - number can be any number because (byte) explicitly casts it down.
- * 2) validNumber
- * It will use the decode function of long to determine the valid number.
- */
-public IBeanProxy newInstance(String initializationString) throws ThrowableProxy, ClassCastException, InstantiationException {
- String trim = initializationString.trim();
- if (trim.length() == 0)
- return super.newInstance(initializationString);
- long aLong;
- if (trim.startsWith("(long)")) { //$NON-NLS-1$
- Number v = parseString(trim.substring("(long)".length()).trim()); //$NON-NLS-1$
- if (v != null)
- aLong = v.longValue();
- else
- return super.newInstance(initializationString); // Can't decode it, let full parser handle it.
- } else {
- if (trim.charAt(trim.length()-1) == 'L' || trim.charAt(trim.length()-1) == 'l')
- trim = trim.substring(0, trim.length()-1);
- try {
- aLong = Long.decode(trim).longValue(); // See if valid long format.
- } catch (NumberFormatException e) {
- return super.newInstance(initializationString); // Can't decode it, let full parser handle it.
- }
- }
-
- return getProxyFactoryRegistry().getBeanProxyFactory().createBeanProxyWith(aLong);
-}
-
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMMasterServerThread.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMMasterServerThread.java
deleted file mode 100644
index 4ee60e313..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMMasterServerThread.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMMasterServerThread.java,v $
- * $Revision: 1.8 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import java.io.*;
-import java.net.*;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jem.internal.proxy.core.ProxyPlugin;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-
-/**
- * Master Server thread for the Remote VMs.
- *
- * It responds to the remote vm requests to this IDE.
- *
- * It is package-protected because only ProxyRemotePluguin should access it.
- * @author richkulp
- */
-class REMMasterServerThread extends Thread {
-
- protected ServerSocket masterServerSocket;
- protected REMRegistryController registryController;
- protected boolean shuttingDown = false;
-
- // Kludge: Bug in Linux 1.3.xxx of JVM. Closing a socket while the socket is being read/accept will not interrupt the
- // wait. Need to timeout to the socket read/accept before the socket close will be noticed. This has been fixed
- // in Linux 1.4. So on Linux 1.3 need to put timeouts in on those sockets that can be separately closed while reading/accepting.
- static boolean LINUX_1_3 = "linux".equalsIgnoreCase(System.getProperty("os.name")) && System.getProperty("java.version","").startsWith("1.3"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-
-
- public REMMasterServerThread(REMRegistryController registryController) {
- super("Remote Proxy Master Server Thread"); //$NON-NLS-1$
- this.registryController = registryController;
-
- try {
- masterServerSocket = new ServerSocket(0, 50, InetAddress.getByName("localhost")); // Any available port //$NON-NLS-1$
- if (LINUX_1_3)
- masterServerSocket.setSoTimeout(1000); // Linux 1.3 bug, see comment on LINUX_1_3
- } catch (SocketException e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.ERROR, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); // This is bad. Should be no exceptions creating a socket. //$NON-NLS-1$
- } catch (IOException e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.ERROR, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); // This is bad. Should be no exceptions creating a socket. //$NON-NLS-1$
- }
- }
-
- public ServerSocket getMasterSocket() {
- return masterServerSocket;
- }
-
- /**
- * @see java.lang.Thread#run()
- */
- public void run() {
- try {
- while (masterServerSocket != null) {
- Socket incoming = null;
- try {
- incoming = masterServerSocket.accept();
- } catch (InterruptedIOException e) {
- continue; // Timeout, try again
- } catch (NullPointerException e) {
- continue; // In Linux 1.3 case masterServerSocket could of gone null between loop test and try block.
- }
- boolean close = false; // process request will tell if socket should be closed. it may be passed onto callback thread instead.
- try {
- close = processRequest(incoming);
- } finally {
- if (close) {
- try {
- incoming.close();
- } catch (IOException e) {
- }
- }
-}
- incoming = null;
- }
- } catch (Exception e) {
- if (!shuttingDown)
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.ERROR, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- }
-
- shutdown(); // Either a bad exception or we were closed. Either way is shutdown.
- }
-
- /**
- * Use this to request a shutdown.
- */
- public void requestShutdown() {
- if (masterServerSocket == null)
- return;
- // Closing the server socket should cause a break.
- try {
- shuttingDown = true;
- masterServerSocket.close();
- } catch (Exception e) {
- }
- return;
- }
-
- protected boolean processRequest(Socket remote) throws IOException {
- DataInputStream in = new DataInputStream(remote.getInputStream());
- DataOutputStream out = new DataOutputStream(remote.getOutputStream());
- boolean close = true; // flag indicating socket not given over to callback. Don't close the socket when done because callback has it.
- try {
- byte cmd = in.readByte();
- switch (cmd) {
- case Commands.ALIVE:
- int registryID = in.readInt();
- out.writeBoolean(registryController.getRegistry(new Integer(registryID)) != null); // Return if registry still alive
- out.flush();
- break;
-
- case Commands.REMOTE_STARTED:
- registryID = in.readInt();
- int remoteServerPort = in.readInt();
- REMProxyFactoryRegistry registry = registryController.getRegistry(new Integer(registryID));
- if (registry != null) {
- registry.setServerPort(remoteServerPort);
- out.writeBoolean(true);
- } else
- out.writeBoolean(false); // No registry
- out.flush();
- break;
-
- case Commands.ATTACH_CALLBACK:
- registryID = in.readInt();
- registry = registryController.getRegistry(new Integer(registryID));
- if (registry != null) {
- close = !((REMCallbackRegistry) registry.getCallbackRegistry()).createCallback(remote); // close if failed, don't close if good.
- out.writeBoolean(!close); // if not close, then return it worked.
- } else
- out.writeBoolean(false);
- out.flush();
- break;
- }
- } catch (Exception e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.ERROR, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- } finally {
- if (close) {
- try {
- in.close();
- } catch (IOException e) {
- }
- try {
- out.close();
- } catch (IOException e) {
- }
- }
- }
- return close;
- }
-
- private void shutdown() {
- requestShutdown();
- masterServerSocket = null;
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMMethodProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMMethodProxy.java
deleted file mode 100644
index c6c674eae..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMMethodProxy.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.remote;
-/*
- * $RCSfile: REMMethodProxy.java,v $
- * $Revision: 1.12 $ $Date: 2005/08/24 20:39:07 $
- */
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-import org.eclipse.jem.internal.proxy.common.CommandException;
-import org.eclipse.jem.internal.proxy.common.remote.*;
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * Remote VM implementation of the MethodProxy
- */
-
-final class REMMethodProxy extends REMAccessibleObjectProxy implements IREMMethodProxy {
-
- private IBeanTypeProxy fDeclaringType;
- private String fMethodName;
- private IBeanTypeProxy[] fParameterTypes;
- private IBeanTypeProxy fReturnType;
-
- REMMethodProxy(REMProxyFactoryRegistry aRegistry, Integer anID) {
- super(aRegistry, anID);
- }
-
- public IBeanTypeProxy getClassType() {
- if (fDeclaringType == null)
- fDeclaringType =
- (IBeanTypeProxy) REMStandardBeanProxyConstants
- .getConstants(fFactory)
- .getMethodDeclaringClassMessage()
- .invokeCatchThrowableExceptions(
- this);
- return fDeclaringType;
- }
-
- public String getName() {
- if (fMethodName == null) {
- IStringBeanProxy proxy =
- (IStringBeanProxy) REMStandardBeanProxyConstants
- .getConstants(fFactory)
- .getMethodMethodNameMessage()
- .invokeCatchThrowableExceptions(
- this);
- if (proxy != null)
- fMethodName = proxy.stringValue();
- else
- fMethodName = ""; //$NON-NLS-1$
- }
- return fMethodName;
- }
-
- public synchronized IBeanTypeProxy[] getParameterTypes() {
- if (fParameterTypes == null) {
- IArrayBeanProxy parmTypes = (IArrayBeanProxy) REMStandardBeanProxyConstants.getConstants(fFactory)
- .getMethodParameterTypesMessage().invokeCatchThrowableExceptions(this);
- if (parmTypes == null)
- fParameterTypes = new IBeanTypeProxy[0]; // There was some error, only way null is returned
- else {
- int len = parmTypes.getLength();
- fParameterTypes = new IBeanTypeProxy[len];
- for (int i = 0; i < len; i++)
- try {
- fParameterTypes[i] = (IBeanTypeProxy) parmTypes.get(i);
- } catch (ThrowableProxy e) {
- }
- fFactory.releaseProxy(parmTypes); // Don't need the array on the server anymore.
- }
- }
-
- return fParameterTypes;
- }
-
- public IBeanTypeProxy getReturnType() {
- if (fReturnType == null)
- fReturnType =
- (IBeanTypeProxy) REMStandardBeanProxyConstants
- .getConstants(fFactory)
- .getMethodReturnTypeMessage()
- .invokeCatchThrowableExceptions(
- this);
- return fReturnType;
- }
-
- public IBeanProxy invoke(IBeanProxy subject) throws ThrowableProxy {
- return invoke(subject, (IBeanProxy[]) null);
- }
-
- public IBeanProxy invoke(IBeanProxy subject, IBeanProxy[] parms) throws ThrowableProxy {
- return invokeWithParms(subject, parms);
- }
-
- /**
- * The internal method that allows mixture of constants (e.g. String) with bean proxies.
- * A parm value can be a REMMethodProxy.ParmArray. This means this parm is an array that
- * needs to have a ValueRetriever created for it. This is used if the array has ID's in
- * it and is not an existing array on the server or all constant values.
- *
- * NOTE: It is assumed that all IBeanTypeProxies of the parms have already been retrieved.
- * It should still work, but it could be asking for them in the middle of the request
- * if they are not first gotton.
- *
- * NOTE: This is in IREMMethodProxy only so that other REM proxy implementations can access it.
- */
-
- public IBeanProxy invokeWithParms(IBeanProxy subject, final Object[] parms) throws ThrowableProxy {
- IREMConnection connect = fFactory.getFreeConnection();
- REMStandardBeanProxyFactory proxyFactory = (REMStandardBeanProxyFactory) fFactory.getBeanProxyFactory();
- proxyFactory.startTransaction(); // This is definately a transaction, so start it.
- try {
- Commands.ValueObject subjectValue = new Commands.ValueObject();
- if (subject != null)
- ((IREMBeanProxy) subject).renderBean(subjectValue);
-
- Commands.ValueObject parmsValue = new Commands.ValueObject();
-
- class Retriever implements Commands.ValueRetrieve {
- int index = 0;
- Object[] array;
- Commands.ValueObject worker = new Commands.ValueObject();
- IStandardBeanTypeProxyFactory typeFactory = fFactory.getBeanTypeProxyFactory();
-
- public Retriever(Object[] anArray) {
- array = anArray;
- }
-
- public void reset() {
- index = 0;
- }
-
- public Commands.ValueObject nextValue() {
- Object parm = array[index++];
- if (parm != null)
- if (parm instanceof IREMBeanProxy)
- ((IREMBeanProxy) parm).renderBean(worker);
- else if (parm instanceof TransmitableArray) {
- // It is another array, create a new retriever.
- worker.setArrayIDS(
- new Retriever(((TransmitableArray) parm).array),
- ((TransmitableArray) parm).array.length,
- ((TransmitableArray) parm).componentTypeID);
- } else {
- // It's an object. Need to get bean type so that we can send it.
- IREMBeanProxy type = (IREMBeanProxy) typeFactory.getBeanTypeProxy(parm.getClass().getName());
- if (type == null)
- throw new IllegalArgumentException();
- int classID = type.getID().intValue();
- worker.setAsObject(parm, classID);
- }
- else
- worker.set();
- return worker;
- }
- };
-
- Retriever retriever = null;
-
- if (parms != null) {
- // Have a local definition of the retriever so that the retriever can create
- // another one of itself if necessary.
- parmsValue.setArrayIDS(retriever = new Retriever(parms), parms.length, Commands.OBJECT_CLASS); // Create Object[].
- }
-
- Commands.ValueObject returnValue = new Commands.ValueObject();
- try {
- invoke(connect, proxyFactory, subjectValue, parmsValue, returnValue);
- return proxyFactory.getBeanProxy(returnValue);
- } catch (CommandException e) {
- if (!e.isRecoverable()) {
- // Close the connection and try again.
- fFactory.closeConnection(connect);
- connect = null;
- connect = fFactory.getFreeConnection();
- try {
- if (retriever != null)
- retriever.reset();
- invoke(connect, proxyFactory, subjectValue, parmsValue, returnValue);
- return proxyFactory.getBeanProxy(returnValue);
- } catch (CommandException eAgain) {
- // Failed again. Just close and print trace.
- fFactory.closeConnection(connect);
- connect = null;
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", eAgain)); //$NON-NLS-1$
- return null;
- }
- } else {
- // A recoverable error, print trace and return
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- return null;
- }
- }
- } finally {
- proxyFactory.stopTransaction();
- if (connect != null)
- fFactory.returnConnection(connect);
- }
- }
-
-private void invoke(
- IREMConnection connect,
- REMStandardBeanProxyFactory proxyFactory,
- Commands.ValueObject subjectValue,
- Commands.ValueObject parmsValue,
- Commands.ValueObject returnValue)
- throws ThrowableProxy, CommandException {
- try {
- connect.invokeMethod(getID().intValue(), subjectValue, parmsValue, returnValue);
- } catch (CommandErrorException e) {
- proxyFactory.processErrorReturn(e);
- }
- }
-
- public IBeanProxy invoke(IBeanProxy subject, IBeanProxy parm) throws ThrowableProxy {
- return invoke(subject, new IBeanProxy[] { parm });
- }
-
- public IBeanProxy invokeCatchThrowableExceptions(IBeanProxy subject) {
- try {
- return invoke(subject);
- } catch (ThrowableProxy e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- fFactory.releaseProxy(e); // Since it's no longer needed, get rid of now instead of GC time.
- return null;
- }
- }
-
- public IBeanProxy invokeCatchThrowableExceptions(IBeanProxy subject, IBeanProxy[] parms) {
- try {
- return invoke(subject, parms);
- } catch (ThrowableProxy e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- fFactory.releaseProxy(e); // Since it's no longer needed, get rid of now instead of GC time.
- return null;
- }
- }
-
- public IBeanProxy invokeCatchThrowableExceptions(IBeanProxy subject, IBeanProxy parm) {
- try {
- return invoke(subject, parm);
- } catch (ThrowableProxy e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- fFactory.releaseProxy(e); // Since it's no longer needed, get rid of now instead of GC time.
- return null;
- }
- }
-
- /**
- * The type proxy is constant proxy out of the method factory.
- */
- public IBeanTypeProxy getTypeProxy() {
- return ((REMMethodProxyFactory) fFactory.getMethodProxyFactory()).methodType;
- }
-
- /**
- * The bean is being released, clear out the fields so they can be GC'd if necessary.
- * Usually only big objects and proxy fields need to be cleared.
- */
- public void release() {
- fDeclaringType = null;
- fParameterTypes = null;
- fReturnType = null;
- super.release();
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMMethodProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMMethodProxyFactory.java
deleted file mode 100644
index 11e9d0016..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMMethodProxyFactory.java
+++ /dev/null
@@ -1,305 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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: REMMethodProxyFactory.java,v $
- * $Revision: 1.10 $ $Date: 2005/08/24 20:39:06 $
- */
-package org.eclipse.jem.internal.proxy.remote;
-
-import java.lang.reflect.AccessibleObject;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.common.remote.Commands;
-import org.eclipse.jem.internal.proxy.common.remote.TransmitableArray;
-
-/**
- * Factory for creating method proxies. Creation date: (12/3/99 6:29:40 PM)
- *
- * @author: Joe Winchester
- */
-public class REMMethodProxyFactory implements IMethodProxyFactory {
-
- final protected REMProxyFactoryRegistry fFactoryRegistry;
-
- // Cached copy of a few typical method type proxies.
- IREMBeanTypeProxy accessibleType;
-
- REMMethodTypeProxy methodType;
-
- REMFieldTypeProxy fieldType;
-
- REMConstructorTypeProxy ctorType;
-
- REMMethodProxy getMethodProxy;
-
- REMMethodProxyFactory(REMProxyFactoryRegistry aRegistry) {
- fFactoryRegistry = aRegistry;
- aRegistry.registerMethodProxyFactory(this);
- REMStandardBeanTypeProxyFactory typeFactory = (REMStandardBeanTypeProxyFactory) aRegistry.getBeanTypeProxyFactory();
-
- accessibleType = typeFactory.objectClass.newBeanTypeForClass(new Integer(Commands.ACCESSIBLEOBJECT_CLASS), AccessibleObject.class.getName(),
- false);
- methodType = new REMMethodTypeProxy(aRegistry, accessibleType);
- fieldType = new REMFieldTypeProxy(aRegistry, accessibleType);
- ctorType = new REMConstructorTypeProxy(aRegistry, accessibleType);
- aRegistry.getBeanTypeProxyFactory().registerBeanTypeProxy(accessibleType, true);
- aRegistry.getBeanTypeProxyFactory().registerBeanTypeProxy(methodType, true);
- aRegistry.getBeanTypeProxyFactory().registerBeanTypeProxy(fieldType, true);
- aRegistry.getBeanTypeProxyFactory().registerBeanTypeProxy(ctorType, true);
-
- getMethodProxy = (REMMethodProxy) methodType.newBeanProxy(new Integer(Commands.GET_METHOD_ID));
- ((REMStandardBeanProxyFactory) aRegistry.getBeanProxyFactory()).registerProxy(getMethodProxy);
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IMethodProxyFactory#getMethodProxy(java.lang.String, java.lang.String, java.lang.String[])
- */
- public IMethodProxy getMethodProxy(String className, String methodName, String[] parameterTypes) {
- IStandardBeanTypeProxyFactory typeFactory = fFactoryRegistry.getBeanTypeProxyFactory();
- IBeanTypeProxy clsProxy = typeFactory.getBeanTypeProxy(className);
- if (clsProxy == null)
- return null;
- // This will redirect to the beantype, which will go through the method cache.
- return clsProxy.getMethodProxy(methodName, parameterTypes);
- }
-
- /**
- * A helper method to get the method proxy for the expression. This is used by registries and beantype proxies. It will go through
- * the method cache to make sure we get only one.
- *
- * @param expression
- * @param aBeanTypeProxy
- * @param methodName
- * @param parmTypes
- * @return
- *
- * @since 1.1.0
- */
- public IProxyMethod getMethodProxy(IExpression expression, IProxyBeanType aBeanTypeProxy, String methodName, IProxyBeanType[] parmTypes){
- return ((REMStandardBeanTypeProxyFactory) fFactoryRegistry.getBeanTypeProxyFactory()).proxyConstants.getMethodProxy(expression, aBeanTypeProxy, methodName, parmTypes);
- }
-
- /**
- * A helper method to get the field proxy for the expression. This is used by registries and beantype proxies. It will go through
- * the method cache to make sure we get only one.
- * @param expression
- * @param aBeanTypeProxy
- * @param fieldName
- *
- * @return
- *
- * @since 1.1.0
- */
- public IProxyField getFieldProxy(IExpression expression, IProxyBeanType aBeanTypeProxy, String fieldName){
- return ((REMStandardBeanTypeProxyFactory) fFactoryRegistry.getBeanTypeProxyFactory()).proxyConstants.getFieldProxy(expression, aBeanTypeProxy, fieldName);
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IMethodProxyFactory#getFieldProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String, java.lang.String)
- */
- public IProxyField getFieldProxy(IExpression expression, String className, String fieldName) {
- // We are getting the class resolved through the expression. Might as well because it probably will
- // be needed again and this way when the expression is finished it will be resolved for later usage.
- IStandardBeanTypeProxyFactory beanTypeProxyFactory = fFactoryRegistry.getBeanTypeProxyFactory();
- IProxyBeanType beanType = beanTypeProxyFactory.getBeanTypeProxy(expression, className);
- return beanType.getFieldProxy(expression, fieldName);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IMethodProxyFactory#getMethodProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String, java.lang.String, java.lang.String[])
- */
- public IProxyMethod getMethodProxy(IExpression expression, String className, String methodName, String[] parameterTypes) {
- // We are getting the class and parmtypes resolved through the expression. Might as well because they probably will
- // be needed again and this way when the expression is finished they will be resolved for later usage.
- IStandardBeanTypeProxyFactory beanTypeProxyFactory = fFactoryRegistry.getBeanTypeProxyFactory();
- IProxyBeanType beanType = beanTypeProxyFactory.getBeanTypeProxy(expression, className);
- IProxyBeanType[] parmTypes = getParameterTypes(expression, parameterTypes, beanTypeProxyFactory);
- return beanType.getMethodProxy(expression, methodName, parmTypes);
- }
-
- /**
- * Helper method for BeanTypes and proxy Beantypes. So they don't need to have common code to convert string to proxy bean type.
- * @param expression
- * @param classType
- * @param methodName
- * @param parameterTypes
- * @return
- *
- * @since 1.1.0
- */
- public IProxyMethod getMethodProxy(IExpression expression, IProxyBeanType classType, String methodName, String[] parameterTypes) {
- // We are getting the class and parmtypes resolved through the expression. Might as well because they probably will
- // be needed again and this way when the expression is finished they will be resolved for later usage.
- IStandardBeanTypeProxyFactory beanTypeProxyFactory = fFactoryRegistry.getBeanTypeProxyFactory();
- IProxyBeanType[] parmTypes = getParameterTypes(expression, parameterTypes, beanTypeProxyFactory);
- return classType.getMethodProxy(expression, methodName, parmTypes);
- }
-
- /**
- * @param expression
- * @param parameterTypes
- * @param beanTypeProxyFactory
- * @return
- *
- * @since 1.1.0
- */
- protected IProxyBeanType[] getParameterTypes(IExpression expression, String[] parameterTypes, IStandardBeanTypeProxyFactory beanTypeProxyFactory) {
- IProxyBeanType[] parmTypes;
- if (parameterTypes == null || parameterTypes.length == 0)
- parmTypes = null;
- else {
- parmTypes = new IProxyBeanType[parameterTypes.length];
- for (int i = 0; i < parameterTypes.length; i++) {
- parmTypes[i] = beanTypeProxyFactory.getBeanTypeProxy(expression, parameterTypes[i]);
- }
- }
- return parmTypes;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IMethodProxyFactory#getInvokable(java.lang.String, java.lang.String, java.lang.String[])
- */
- public IInvokable getInvokable(String className, String methodName, String[] parameterTypes) {
- IStandardBeanTypeProxyFactory typeFactory = fFactoryRegistry.getBeanTypeProxyFactory();
- IBeanTypeProxy clsProxy = typeFactory.getBeanTypeProxy(className);
- if (clsProxy == null)
- return null;
- return clsProxy.getInvokable(methodName, parameterTypes);
- }
-
- /**
- * Get the method id from the remote system and create the method proxy.
- *
- * NOTE: It is public ONLY so that IBeanTypeProxy implementations can call it. It must not be used by anyone else.
- *
- * @param beanType
- * @param methodName
- * @param parameterTypes
- * @return
- *
- * @since 1.0.0
- */
- public IInvokable getInvokable(IREMBeanTypeProxy beanType, String methodName, String[] parameterTypes) {
- // First convert the parameter types into IBeanTypeProxy[].
- IREMBeanTypeProxy[] types = null;
- if (parameterTypes != null) {
- IStandardBeanTypeProxyFactory typeFactory = fFactoryRegistry.getBeanTypeProxyFactory();
- types = new IREMBeanTypeProxy[parameterTypes.length];
- for (int i = 0; i < parameterTypes.length; i++) {
- IBeanTypeProxy type = types[i] = (IREMBeanTypeProxy) typeFactory.getBeanTypeProxy(parameterTypes[i]);
- if (type == null)
- return null; // One of the parm types doesn't exist.
- }
- }
-
- return getInvokable(beanType, methodName, types);
- }
-
- /**
- * Get the method id from the remote system and create the method proxy.
- * This does not go through the method cache. It goes direct to the remote vm.
- *
- * NOTE: It is public ONLY so that IBeanTypeProxy implementations can call it. It must not be used by anyone else.
- */
- public IMethodProxy getMethodProxy(IREMBeanTypeProxy beanType, String methodName, String[] parameterTypes) {
- // First convert the parameter types into IBeanTypeProxy[].
- IBeanTypeProxy[] types = null;
- if (parameterTypes != null) {
- IStandardBeanTypeProxyFactory typeFactory = fFactoryRegistry.getBeanTypeProxyFactory();
- types = new IBeanTypeProxy[parameterTypes.length];
- for (int i = 0; i < parameterTypes.length; i++) {
- IBeanTypeProxy type = types[i] = typeFactory.getBeanTypeProxy(parameterTypes[i]);
- if (type == null)
- return null; // One of the parm types doesn't exist.
- }
- }
-
- return getMethodProxy(beanType, methodName, types);
- }
-
-
- /**
- * Get the invokable.
- *
- * NOTE: It is public ONLY so that IBeanTypeProxy implementations can call it. It must not be used by anyone else.
- * @param beanType
- * @param methodName
- * @param parameterTypes
- * @return
- *
- * @since 1.0.0
- */
- public IInvokable getInvokable(IREMBeanTypeProxy beanType, String methodName, IBeanTypeProxy[] parameterTypes) {
- return new REMInvokable(beanType, methodName, parameterTypes);
- }
-
- /**
- * Get the method id from the remote system and create the method proxy.
- * null
if not yet created.
- *
- * @since 1.1.0
- */
- IProxyMethod getMethodExpressionProxy(IProxyBeanType declaringType, String methodName, IProxyBeanType[] parameterTypes) {
- Map methods = getMethods(declaringType);
- Object key = getMethodKey(methodName, parameterTypes);
- return (IProxyMethod) methods.get(key);
- }
-
- /**
- * This is used by IDEBeanTypes and IDEBeanTypeExpressionProxy to access any already created Field Expression Proxies.
- * @param declaringType
- * @param fieldName
- * @return
- *
- * @since 1.1.0
- */
- IProxyField getFieldExpressionProxy(IProxyBeanType declaringType, String fieldName) {
- Map fields = getFields(declaringType);
- return (IProxyField) fields.get(fieldName);
- }
-
- /**
- * Get the IDEMethodProxy out of the already resolved Expression Proxy or IDEMethodProxy itself.
- * @param method
- * @return
- * @throws ThrowableProxy
- *
- * @since 1.1.0
- */
- protected IDEMethodProxy getIDEMethodProxy(IProxyMethod method) throws ThrowableProxy {
- IDEMethodProxy methodProxy;
- if (method.isExpressionProxy()) {
- // It should already be resolved at this point.
- methodProxy = ((IDEMethodExpressionProxy) method).getMethodProxy();
- } else
- methodProxy = (IDEMethodProxy) method;
- return methodProxy;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushFieldToProxy(org.eclipse.jem.internal.proxy.core.ExpressionProxy, org.eclipse.jem.internal.proxy.core.IProxyBeanType, java.lang.String)
- */
- protected void pushFieldToProxy(ExpressionProxy proxy, IProxyBeanType declaringType, final String fieldName) {
-
- try {
- final Map fields = getFields(declaringType);
- fields.put(fieldName, proxy);
- proxy.addProxyListener(new ExpressionProxy.ProxyAdapter(){
- public void proxyNotResolved(ExpressionProxy.ProxyEvent event) {
- fields.remove(fieldName); // this can happen due to an endmark. It could be one of the ones that are rolled back.
- }
- });
-
-
- IDEFieldExpressionProxy ep = (IDEFieldExpressionProxy) proxy;
- // We resolve immediately. Any expression proxies should also be resolved at this point too.
- IDEFieldProxy fieldProxy = (IDEFieldProxy) getIDEBeanTypeProxy(declaringType).getFieldProxy(fieldName);
- if (fieldProxy == null) {
- throw new IDEThrowableProxy(new NoSuchFieldException("No field: "+declaringType+'.'+fieldName), //$NON-NLS-1$
- getIDEBeanTypeFactory().getBeanTypeProxy(NoSuchFieldException.class));
- }
-
- ep.setProxy(fieldProxy);
- eproc.allocateExpressionProxy(ep);
- } catch (ThrowableProxy e) {
- ((IDEFieldExpressionProxy) proxy).setThrowable(e); // So we don't recreate throwable all of the time.
- eproc.processException(e);
- }
-
- }
-
- /**
- * Get the IDEFieldProxy out of the already resolved Expression Proxy or IDEFieldProxy itself.
- * @param field
- * @return
- * @throws ThrowableProxy
- *
- * @since 1.1.0
- */
- protected IDEFieldProxy getIDEFieldProxy(IProxyField field) throws ThrowableProxy {
- IDEFieldProxy fieldProxy;
- if (field.isExpressionProxy()) {
- // It should already be resolved at this point.
- fieldProxy = ((IDEFieldExpressionProxy) field).getFieldProxy();
- } else
- fieldProxy = (IDEFieldProxy) field;
- return fieldProxy;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushIfTestToProxy()
- */
- protected void pushIfTestToProxy() {
- eproc.pushIfElse();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushIfElseToProxy(org.eclipse.jem.internal.proxy.initParser.tree.InternalIfElseOperandType)
- */
- protected void pushIfElseToProxy(InternalIfElseOperandType clauseType) {
- eproc.pushIfElse(clauseType);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.Expression#pushNewInstanceToProxy(java.lang.String, org.eclipse.jem.internal.proxy.core.IProxyBeanType)
- */
- protected void pushNewInstanceToProxy(String initializationString, IProxyBeanType resultType) {
- try {
- eproc.pushNewInstanceFromString(initializationString, getIDEBeanTypeProxy(resultType).getTypeClass(), getIDERegistry().fClassLoader);
- } catch (ThrowableProxy e) {
- eproc.processException(e);
- }
- }
-
- protected void pushMarkToProxy(int markID) {
- eproc.pushMark(markID);
- }
-
- protected void pushEndmarkToProxy(int markID, boolean restore) {
- eproc.pushEndmark(markID, restore);
- }
-
- protected void pushBeginTransferThreadToProxy() {
- // For IDE it doesn't matter. Just go ahead and continue processing.
- }
-
- protected void pushTransferThreadToProxy() {
- // For IDE it doesn't matter. Just go ahead and continue processing.
- }
-
- protected void pushSubexpressionBeginToProxy(int subexpressionNumber) {
- eproc.pushSubexpressionBegin(subexpressionNumber);
- }
-
- protected void pushSubexpressionEndToProxy(int subexpressionNumber) {
- eproc.pushSubexpressionEnd(subexpressionNumber);
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEExtensionBeanTypeProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEExtensionBeanTypeProxyFactory.java
deleted file mode 100644
index 581b25a34..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEExtensionBeanTypeProxyFactory.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEExtensionBeanTypeProxyFactory.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-public interface IDEExtensionBeanTypeProxyFactory extends IBeanTypeProxyFactory {
-
-public IDEBeanTypeProxy getExtensionBeanTypeProxy(String className);
-
-public IDEBeanTypeProxy getExtensionBeanTypeProxy(String typeName, IBeanTypeProxy superType);
-
-public IProxyBeanType getExtensionBeanTypeProxy(String typeName, IExpression expression);
-
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEFieldProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEFieldProxy.java
deleted file mode 100644
index d2541881f..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEFieldProxy.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEFieldProxy.java,v $
- * $Revision: 1.9 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import java.lang.reflect.Field;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-/**
- * Implementation of IFieldProxy where the bean vm is the same as the IDE
- * Therefore we hold the instance of a java.lang.reflect.Field in a field
- * directly and have a package protected constructor to set this
- * Creation date: (1/17/00 12:32:24 PM)
- * @author: Joe Winchester
- */
-public class IDEFieldProxy extends IDEAccessibleObjectProxy implements IFieldProxy {
- protected IBeanTypeProxy fFieldType;
- /**
- * Package protected constructor that takes the field directly
- * This is package protected because only classes in the IDE package can construct
- * this. Everyone else must go via the typeProxy
- */
- IDEFieldProxy(IDEProxyFactoryRegistry aRegistry, Field aField) {
- super(aRegistry, aField);
- }
- /**
- * Get the value of the field and return it wrapped in a bean proxy
- */
- public IBeanProxy get(IBeanProxy aSubject) {
-
- Object result = null;
- // Get the field value and catch any errors
- try {
- result = ((Field) getBean()).get(aSubject != null ? ((IIDEBeanProxy) aSubject).getBean() : null);
- } catch (Exception e) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- }
-
- // If we have a non null result wrap it in an IBeanProxy and return it
- if (result != null) {
- return fProxyFactoryRegistry.getBeanProxy(((Field) getBean()).getType(), result);
- } else {
- return null;
- }
-
- }
- /**
- * Get the beans from both of the proxies and invoke the field set method
- * Cast to IDEBeanProxy and use package protected method
- */
- public void set(IBeanProxy aSubject, IBeanProxy argument) {
-
- // Set the field value and catch any errors
- try {
- ((Field) getBean()).set(
- aSubject != null ? ((IIDEBeanProxy) aSubject).getBean() : null,
- argument != null ? ((IIDEBeanProxy) argument).getBean() : null);
- } catch (Exception e) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- }
- }
- /**
- * The type proxy is constant proxy out of the method factory.
- */
- public IBeanTypeProxy getTypeProxy() {
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).fieldType;
- }
- /**
- * Return the type of the field.
- */
- public IBeanTypeProxy getFieldType() {
- if (fFieldType == null) {
- fFieldType =
- ((IDEStandardBeanTypeProxyFactory) fProxyFactoryRegistry.getBeanTypeProxyFactory()).getBeanTypeProxy(
- ((Field) getBean()).getType());
- }
- return fFieldType;
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEFieldTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEFieldTypeProxy.java
deleted file mode 100644
index 9e8c9ef54..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEFieldTypeProxy.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEFieldTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-/**
- * @version 1.0
- * @author
- */
-public class IDEFieldTypeProxy extends IDEBeanTypeProxy {
-
- IDEFieldTypeProxy(IDEProxyFactoryRegistry registry) {
- super(registry, java.lang.reflect.Field.class);
- }
-
- /*
- * @see IDEBeanTypeProxy#newBeanProxy(Object)
- */
- protected IIDEBeanProxy newBeanProxy(Object anObject) {
- return new IDEFieldProxy(fProxyFactoryRegistry, (java.lang.reflect.Field) anObject);
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEFloatClassBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEFloatClassBeanTypeProxy.java
deleted file mode 100644
index 3dd912c5c..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEFloatClassBeanTypeProxy.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEFloatClassBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * Float BeanType Proxy.
- */
-final class IDEFloatClassBeanTypeProxy extends IDENumberBeanTypeProxy {
-
-protected IDEFloatClassBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass, new Float(0));
-}
-INumberBeanProxy createFloatBeanProxy(Float aFloat){
- return new IDENumberBeanProxy(fProxyFactoryRegistry,aFloat,this);
-}
-}
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEFloatTypeBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEFloatTypeBeanTypeProxy.java
deleted file mode 100644
index 501c6989d..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEFloatTypeBeanTypeProxy.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEFloatTypeBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-/**
- * Float BeanType Proxy.
- */
-final class IDEFloatTypeBeanTypeProxy extends IDEPrimitiveBeanTypeProxy {
-protected IDEFloatTypeBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass);
-}
-INumberBeanProxy createFloatBeanProxy(float aFloat){
- return new IDENumberBeanProxy(fProxyFactoryRegistry,new Float(aFloat),this);
-}
-int getPrimitiveType(){
- return FLOAT;
-}
-
-protected IIDEBeanProxy newBeanProxy(Object anObject){
- Number n = anObject instanceof Character ? new Float(((Character) anObject).charValue()) : (Number) anObject;
- return new IDENumberBeanProxy(fProxyFactoryRegistry, n, this);
-
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEInitErrorBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEInitErrorBeanTypeProxy.java
deleted file mode 100644
index cab3363a3..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEInitErrorBeanTypeProxy.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-
-/*
- * $RCSfile: IDEInitErrorBeanTypeProxy.java,v $
- * $Revision: 1.7 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-/**
- * @author richkulp
- *
- * To change this generated comment edit the template variable "typecomment": Window>Preferences>Java>Templates. To enable and disable the creation of
- * type comments go to Window>Preferences>Java>Code Generation.
- */
-public class IDEInitErrorBeanTypeProxy extends IDEBeanTypeProxy {
-
- protected String classname;
-
- protected String initializationError;
-
- protected Throwable cause;
-
- protected IDEInitErrorBeanTypeProxy(IDEProxyFactoryRegistry registry, String classname, String initializationError, Throwable cause) {
- super(registry, null);
- this.classname = classname;
- this.initializationError = initializationError;
- this.cause = cause;
- }
-
- /**
- * Get the throwable (cause) that made this bean type bad.
- * @return the Throwable that was the cause, or null if not caused by an throwable.
- *
- * @since 1.1.0
- */
- public Throwable getCause() {
- return cause;
- }
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructorProxy(String[])
- */
- public IConstructorProxy getConstructorProxy(String[] argumentClassNames) {
- return null;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructorProxy(IBeanTypeProxy[])
- */
- public IConstructorProxy getConstructorProxy(IBeanTypeProxy[] argumentTypes) {
- return null;
- }
-
- public IConstructorProxy[] getConstructors() {
- return null;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructorProxy(String[])
- */
- public IConstructorProxy getDeclaredConstructorProxy(String[] argumentClassNames) {
- return null;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructorProxy(IBeanTypeProxy[])
- */
- public IConstructorProxy getDeclaredConstructorProxy(IBeanTypeProxy[] argumentTypes) {
- return null;
- }
-
- public IConstructorProxy[] getDeclaredConstructors() {
- return null;
- }
-
- public IFieldProxy[] getFields() {
- return null;
- }
-
- public IFieldProxy[] getDeclaredFields() {
- return null;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getFieldProxy(String)
- */
- public IFieldProxy getFieldProxy(String fieldName) {
- return null;
- }
-
- public IMethodProxy[] getMethods() {
- return null;
- }
-
- public IMethodProxy[] getDeclaredMethods() {
- return null;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getMethodProxy(String)
- */
- public IMethodProxy getMethodProxy(String methodName) {
- return null;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getMethodProxy(String, String[])
- */
- public IMethodProxy getMethodProxy(String methodName, String[] argumentClassNames) {
- return null;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getMethodProxy(String, String)
- */
- public IMethodProxy getMethodProxy(String methodName, String argumentClassName) {
- return null;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getMethodProxy(String, IBeanTypeProxy[])
- */
- public IMethodProxy getMethodProxy(String methodName, IBeanTypeProxy[] argumentTypes) {
- return null;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getMethodProxy(String, String[])
- */
- public IMethodProxy getDeclaredMethodProxy(String methodName, String[] argumentClassNames) {
- return null;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getMethodProxy(String, IBeanTypeProxy[])
- */
- public IMethodProxy getDeclaredMethodProxy(String methodName, IBeanTypeProxy[] argumentTypes) {
- return null;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getNullConstructorProxy()
- */
- public IConstructorProxy getNullConstructorProxy() {
- return null;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getSuperBeanTypeProxy()
- */
- public IBeanTypeProxy getSuperBeanTypeProxy() {
- return null;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getTypeName()
- */
- public String getTypeName() {
- return classname;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getFormalTypeName()
- */
- public String getFormalTypeName() {
- return getTypeName();
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#isArray()
- */
- public boolean isArray() {
- return false;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#isInterface()
- */
- public boolean isInterface() {
- return false;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#isPrimitive()
- */
- public boolean isPrimitive() {
- return false;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#isKindOf(IBeanTypeProxy)
- */
- public boolean isKindOf(IBeanTypeProxy aBeanProxyType) {
- return false;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#newInstance()
- */
- public IBeanProxy newInstance() {
- return null;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#newInstance(String)
- */
- public IBeanProxy newInstance(String initializationString) {
- return null;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getInitializationError()
- */
- public String getInitializationError() {
- return initializationError;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#toBeanString()
- */
- public String toBeanString() {
- return classname;
- }
-
- /**
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#isValid()
- */
- public boolean isValid() {
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getCompatibleConstructor(org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- public IConstructorProxy getCompatibleConstructor(IBeanTypeProxy[] argumentTypes) {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getCompatibleMethod(java.lang.String,
- * org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[])
- */
- public IMethodProxy getCompatibleMethod(String methodName, IBeanTypeProxy[] argumentTypes) {
- return null;
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEIntegerBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEIntegerBeanProxy.java
deleted file mode 100644
index 3dee6a18d..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEIntegerBeanProxy.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEIntegerBeanProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-/**
- * IDE Proxy for Integers. Since Integers were first implemented
- * in the VCE, and because they are often referenced, we've created
- * a subclass to handle them. That way we wouldn't need to change
- * everyone that was using the IIntegerProxy interface and we
- * can store the int value to speed up access.
- */
-public class IDEIntegerBeanProxy extends IDENumberBeanProxy implements IIntegerBeanProxy {
- protected int fIntValue;
-IDEIntegerBeanProxy(IDEProxyFactoryRegistry aRegistry, Number anInteger, IBeanTypeProxy aBeanTypeProxy) {
- super(aRegistry, anInteger , aBeanTypeProxy);
- fIntValue = anInteger.intValue();
-}
-/**
- * Return the int value
- */
-public int intValue() {
- return fIntValue;
-}
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEIntegerClassBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEIntegerClassBeanTypeProxy.java
deleted file mode 100644
index 59ea9ec01..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEIntegerClassBeanTypeProxy.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEIntegerClassBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.IIntegerBeanProxy;
-
-/**
- * IDE Implementation of IIntegerBeanTypeProxy
- */
-final class IDEIntegerClassBeanTypeProxy extends IDENumberBeanTypeProxy {
-// Some values are cache'd for speed
- private final IDEIntegerBeanProxy zeroIntProxy;
- private final IDEIntegerBeanProxy oneIntProxy;
- private final IDEIntegerBeanProxy twoIntProxy;
- private final IDEIntegerBeanProxy threeIntProxy;
-IDEIntegerClassBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass, new Integer(0));
- // Create the cached values
- zeroIntProxy = new IDEIntegerBeanProxy(aRegistry, new Integer(0), this );
- oneIntProxy = new IDEIntegerBeanProxy(aRegistry, new Integer(1), this );
- twoIntProxy = new IDEIntegerBeanProxy(aRegistry, new Integer(2), this );
- threeIntProxy = new IDEIntegerBeanProxy(aRegistry, new Integer(3), this );
-
-}
-/**
- * Static helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- */
-IIntegerBeanProxy createIntegerBeanProxy(Integer anInteger) {
- switch(anInteger.intValue()){
- case 0: return zeroIntProxy ;
- case 1: return oneIntProxy ;
- case 2: return twoIntProxy ;
- case 3: return threeIntProxy ;
- default: return new IDEIntegerBeanProxy(fProxyFactoryRegistry,anInteger,this);
- }
-}
-protected IIDEBeanProxy newBeanProxy(Object anObject){
-
- return (IIDEBeanProxy)createIntegerBeanProxy((Integer)anObject);
-
-}
-}
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEIntegerTypeBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEIntegerTypeBeanTypeProxy.java
deleted file mode 100644
index 5cf3edbfc..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEIntegerTypeBeanTypeProxy.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEIntegerTypeBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.IIntegerBeanProxy;
-
-/**
- * IDE Implementation of IIntegerBeanTypeProxy
- */
-final class IDEIntegerTypeBeanTypeProxy extends IDEPrimitiveBeanTypeProxy {
-// Some values are cache'd for speed
- private final IDEIntegerBeanProxy zeroProxy;
- private final IDEIntegerBeanProxy oneProxy;
- private final IDEIntegerBeanProxy twoProxy;
- private final IDEIntegerBeanProxy threeProxy;
-IDEIntegerTypeBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass);
- // Create the cached values
- zeroProxy = new IDEIntegerBeanProxy(aRegistry, new Integer(0), this );
- oneProxy = new IDEIntegerBeanProxy(aRegistry, new Integer(1), this );
- twoProxy = new IDEIntegerBeanProxy(aRegistry, new Integer(2), this );
- threeProxy = new IDEIntegerBeanProxy(aRegistry, new Integer(3), this );
-
-}
-/**
- * Static helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- */
-IIntegerBeanProxy createIntegerBeanProxy(int anInt) {
- switch(anInt){
- case 0: return zeroProxy ;
- case 1: return oneProxy ;
- case 2: return twoProxy ;
- case 3: return threeProxy ;
- default: return new IDEIntegerBeanProxy(fProxyFactoryRegistry,new Integer(anInt),this);
- }
-}
-/* Specialized from IDEBeanTypeProxy to ensure IIntegerBeanProxies are created correctly
- */
-protected IIDEBeanProxy newBeanProxy(Object anObject){
- Number n = anObject instanceof Character ? new Integer(((Character) anObject).charValue()) : (Number) anObject;
- switch(n.intValue()){
- case 0: return zeroProxy ;
- case 1: return oneProxy ;
- case 2: return twoProxy ;
- case 3: return threeProxy ;
- default: return new IDEIntegerBeanProxy(fProxyFactoryRegistry, n, this);
- }
-
-
-}
-int getPrimitiveType(){
- return INTEGER;
-}
-}
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDELongClassBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDELongClassBeanTypeProxy.java
deleted file mode 100644
index 5706b578f..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDELongClassBeanTypeProxy.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDELongClassBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-/**
- * Long BeanType Proxy.
- */
-final class IDELongClassBeanTypeProxy extends IDENumberBeanTypeProxy {
-
-protected IDELongClassBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass, new Long(0));
-}
-INumberBeanProxy createLongBeanProxy(Long aLong){
- return new IDENumberBeanProxy(fProxyFactoryRegistry,aLong,this);
-}
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDELongTypeBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDELongTypeBeanTypeProxy.java
deleted file mode 100644
index 2113ea0c9..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDELongTypeBeanTypeProxy.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDELongTypeBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * Long BeanType Proxy.
- */
-final class IDELongTypeBeanTypeProxy extends IDEPrimitiveBeanTypeProxy {
-
-protected IDELongTypeBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass);
-}
-INumberBeanProxy createLongBeanProxy(long aLong){
- return new IDENumberBeanProxy(fProxyFactoryRegistry,new Long(aLong),this);
-}
-int getPrimitiveType(){
- return LONG;
-}
-
-protected IIDEBeanProxy newBeanProxy(Object anObject){
- Number n = anObject instanceof Character ? new Long(((Character) anObject).charValue()) : (Number) anObject;
- return new IDENumberBeanProxy(fProxyFactoryRegistry, n, this);
-}
-}
-
-
-
-
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEMethodProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEMethodProxy.java
deleted file mode 100644
index 948f72b67..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEMethodProxy.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEMethodProxy.java,v $
- * $Revision: 1.9 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-public class IDEMethodProxy extends IDEAccessibleObjectProxy implements IMethodProxy {
-
- protected IDEMethodProxy(IDEProxyFactoryRegistry aRegistry, Method aMethod) {
- super(aRegistry, aMethod);
- }
-
- public IBeanTypeProxy getClassType() {
- return ((IDEStandardBeanTypeProxyFactory) fProxyFactoryRegistry.getBeanTypeProxyFactory()).getBeanTypeProxy(
- ((Method) getBean()).getDeclaringClass());
- }
- public IBeanTypeProxy getReturnType() {
- return ((IDEStandardBeanTypeProxyFactory) fProxyFactoryRegistry.getBeanTypeProxyFactory()).getBeanTypeProxy(
- ((Method) getBean()).getReturnType());
- }
- public IBeanTypeProxy[] getParameterTypes() {
- Class[] parmClasses = ((Method) getBean()).getParameterTypes();
- IBeanTypeProxy[] parmTypes = new IBeanTypeProxy[parmClasses.length];
- IDEStandardBeanTypeProxyFactory factory = (IDEStandardBeanTypeProxyFactory) fProxyFactoryRegistry.getBeanTypeProxyFactory();
- for (int i = 0; i < parmClasses.length; i++) {
- parmTypes[i] = factory.getBeanTypeProxy(parmClasses[i]);
- }
- return parmTypes;
- }
- public String getName() {
- return ((Method) getBean()).getName();
- }
-
- /**
- * The type proxy is constant proxy out of the method factory.
- */
- public IBeanTypeProxy getTypeProxy() {
- return ((IDEMethodProxyFactory) fProxyFactoryRegistry.getMethodProxyFactory()).methodType;
- }
-
- /**
- * Invoke the method directly. Because we are an IDEMethodProxy we can assume that IBeanProxy
- * is an IDEBeanProxy and we can get its bean directly
- */
- public IBeanProxy invoke(IBeanProxy subject) throws ThrowableProxy {
- try {
- Object result = ((Method) getBean()).invoke(subject != null ? ((IIDEBeanProxy) subject).getBean() : null, new Object[0]);
- if (result == null) {
- return null;
- } else {
- // The result may be a java.lang.Integer when we really want to create an int
- // Reflection always give you the big object
- Class returnType = ((Method) getBean()).getReturnType();
- return getBeanProxy(returnType, result);
- }
- } catch (InvocationTargetException e) {
- // This is a wrappered exception. Return the wrappered one so it looks like
- // it was the real one.
- IBeanTypeProxy exceptionTypeProxy =
- ((IDEStandardBeanTypeProxyFactory) fProxyFactoryRegistry.getBeanTypeProxyFactory()).getBeanTypeProxy(
- e.getTargetException().getClass());
- throw new IDEThrowableProxy(e.getTargetException(), exceptionTypeProxy);
- } catch (Exception exc) {
- IBeanTypeProxy exceptionTypeProxy =
- ((IDEStandardBeanTypeProxyFactory) fProxyFactoryRegistry.getBeanTypeProxyFactory()).getBeanTypeProxy(exc.getClass());
- throw new IDEThrowableProxy(exc, exceptionTypeProxy);
- }
- }
- /**
- * Do not throw an exception
- */
- public IBeanProxy invokeCatchThrowableExceptions(IBeanProxy subject) {
- try {
- return invoke(subject);
- } catch (ThrowableProxy exc) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", exc)); //$NON-NLS-1$
- }
- return null;
- }
- /**
- * Invoke the method with argument. The argument will be an IDEBeanProxy
- * ( because we are an IDEMethodProxy ) so we can cast to it and get the actual bean
- * itself and use this to invoke against method which is the actual
- * java.lang.Reflect instance
- */
- public IBeanProxy invoke(IBeanProxy subject, IBeanProxy argument) throws ThrowableProxy {
- try {
- Object result =
- ((Method) getBean()).invoke(
- subject != null ? ((IIDEBeanProxy) subject).getBean() : null,
- new Object[] { argument != null ? ((IIDEBeanProxy) argument).getBean() : null });
- if (result == null) {
- return null;
- } else {
- Class returnType = ((Method) getBean()).getReturnType();
- return getBeanProxy(returnType, result);
- }
- } catch (InvocationTargetException e) {
- // This is a wrappered exception. Return the wrappered one so it looks like
- // it was the real one.
- IBeanTypeProxy exceptionTypeProxy =
- ((IDEStandardBeanTypeProxyFactory) fProxyFactoryRegistry.getBeanTypeProxyFactory()).getBeanTypeProxy(
- e.getTargetException().getClass());
- throw new IDEThrowableProxy(e.getTargetException(), exceptionTypeProxy);
- } catch (Exception exc) {
- IBeanTypeProxy exceptionTypeProxy =
- ((IDEStandardBeanTypeProxyFactory) fProxyFactoryRegistry.getBeanTypeProxyFactory()).getBeanTypeProxy(exc.getClass());
- throw new IDEThrowableProxy(exc, exceptionTypeProxy);
- }
- }
- /**
- * Invoke without throwing an exception
- */
- public IBeanProxy invokeCatchThrowableExceptions(IBeanProxy subject, IBeanProxy argument) {
- try {
- return invoke(subject, argument);
- } catch (ThrowableProxy exc) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", exc)); //$NON-NLS-1$
- }
- return null;
- }
- /**
- * Invoke the method with arguments. The arguments will be IDEBeanProxy objects
- * ( because we are an IDEMethodProxy ) so we can cast to them and get the actual bean
- * objects themselves and use these to invoke against method which is the actual
- * java.lang.Reflect instance
- */
- public IBeanProxy invoke(IBeanProxy subject, IBeanProxy[] arguments) throws ThrowableProxy {
- Object[] beanArguments = new Object[arguments.length];
- for (int i = 0; i < arguments.length; i++) {
- if (arguments[i] != null) {
- beanArguments[i] = ((IIDEBeanProxy) arguments[i]).getBean();
- }
- }
- try {
- Object result = ((Method) getBean()).invoke(subject != null ? ((IIDEBeanProxy) subject).getBean() : null, beanArguments);
- if (result == null) {
- return null;
- } else {
- Class returnType = ((Method) getBean()).getReturnType();
- return getBeanProxy(returnType, result);
- }
- } catch (InvocationTargetException e) {
- // This is a wrappered exception. Return the wrappered one so it looks like
- // it was the real one.
- IBeanTypeProxy exceptionTypeProxy =
- ((IDEStandardBeanTypeProxyFactory) fProxyFactoryRegistry.getBeanTypeProxyFactory()).getBeanTypeProxy(
- e.getTargetException().getClass());
- throw new IDEThrowableProxy(e.getTargetException(), exceptionTypeProxy);
- } catch (Exception exc) {
- IBeanTypeProxy exceptionTypeProxy =
- ((IDEStandardBeanTypeProxyFactory) fProxyFactoryRegistry.getBeanTypeProxyFactory()).getBeanTypeProxy(exc.getClass());
- throw new IDEThrowableProxy(exc, exceptionTypeProxy);
- }
- }
- /**
- * Invoke without throwing an exception
- */
- public IBeanProxy invokeCatchThrowableExceptions(IBeanProxy subject, IBeanProxy[] arguments) {
- try {
- return invoke(subject, arguments);
- } catch (ThrowableProxy exc) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", exc)); //$NON-NLS-1$
- }
- return null;
- }
- IBeanProxy getBeanProxy(Class returnType, Object bean) {
- return fProxyFactoryRegistry.getBeanProxy(returnType, bean);
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEMethodProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEMethodProxyFactory.java
deleted file mode 100644
index 9122b678a..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEMethodProxyFactory.java
+++ /dev/null
@@ -1,337 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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: IDEMethodProxyFactory.java,v $ $Revision: 1.14 $ $Date: 2006/05/17 20:13:05 $
- */
-package org.eclipse.jem.internal.proxy.ide;
-
-import java.lang.reflect.*;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-import org.eclipse.jem.internal.proxy.common.AmbiguousMethodException;
-import org.eclipse.jem.internal.proxy.common.MethodHelper;
-import org.eclipse.jem.internal.proxy.core.*;
-
-public class IDEMethodProxyFactory implements IMethodProxyFactory {
-
- final protected IDEProxyFactoryRegistry fProxyFactoryRegistry;
-
- final protected static Map primLookup = new HashMap();
-
- IDEBeanTypeProxy accessibleType, fieldType, methodType, constructorType;
- // Cached copy of a few typical method type proxies.
- static {
- primLookup.put("int", Integer.TYPE); //$NON-NLS-1$
- primLookup.put("char", Character.TYPE); //$NON-NLS-1$
- primLookup.put("long", Long.TYPE); //$NON-NLS-1$
- primLookup.put("short", Short.TYPE); //$NON-NLS-1$
- primLookup.put("double", Double.TYPE); //$NON-NLS-1$
- primLookup.put("boolean", Boolean.TYPE); //$NON-NLS-1$
- primLookup.put("byte", Byte.TYPE); //$NON-NLS-1$
- primLookup.put("float", Float.TYPE); //$NON-NLS-1$
- }
-
- IDEMethodProxyFactory(IDEProxyFactoryRegistry aRegistry) {
- fProxyFactoryRegistry = aRegistry;
- fProxyFactoryRegistry.registerMethodProxyFactory(this);
- accessibleType = new IDEBeanTypeProxy(aRegistry, AccessibleObject.class);
- fieldType = new IDEFieldTypeProxy(aRegistry);
- methodType = new IDEMethodTypeProxy(aRegistry);
- constructorType = new IDEConstructorTypeProxy(aRegistry);
- fProxyFactoryRegistry.getBeanTypeProxyFactory().registerBeanTypeProxy(accessibleType, true);
- fProxyFactoryRegistry.getBeanTypeProxyFactory().registerBeanTypeProxy(fieldType, true);
- fProxyFactoryRegistry.getBeanTypeProxyFactory().registerBeanTypeProxy(methodType, true);
- fProxyFactoryRegistry.getBeanTypeProxyFactory().registerBeanTypeProxy(constructorType, true);
- }
-
- /**
- * Return an instance of an IDEConstructorProxy This is package protected because the only people who can use this are priveledge objects that
- * have the aMethod instance. These are part of the idevm package only. If you have to make this method public you are doing things incorrectly.
- * To get a method proxy you must use the interface methods on IMethodProxyFactory to do lookup by string or else on IBeanTypeProxy that has
- * getMethod(String) as well
- */
- IConstructorProxy getConstructorProxy(Constructor aConstructor) {
-
- return (IConstructorProxy) constructorType.newBeanProxy(aConstructor);
-
- }
-
- IConstructorProxy[] getConstructors(Class aClass) {
- Constructor[] ctors = aClass.getConstructors();
- IConstructorProxy[] ctorProxies = new IConstructorProxy[ctors.length];
- for (int i = 0; i < ctors.length; i++) {
- ctorProxies[i] = getConstructorProxy(ctors[i]);
- }
- return ctorProxies;
- }
-
- IConstructorProxy[] getDeclaredConstructors(Class aClass) {
- Constructor[] ctors = aClass.getDeclaredConstructors();
- IConstructorProxy[] ctorProxies = new IConstructorProxy[ctors.length];
- for (int i = 0; i < ctors.length; i++) {
- ctorProxies[i] = getConstructorProxy(ctors[i]);
- }
- return ctorProxies;
- }
-
- IConstructorProxy getConstructorProxy(Class aClass, Class[] args) {
-
- try {
- Constructor ctor = aClass.getConstructor(args);
- return getConstructorProxy(ctor);
- } catch (NoSuchMethodException exc) {
- return null;
- }
- }
-
- IConstructorProxy getDeclaredConstructorProxy(Class aClass, Class[] args) {
-
- try {
- Constructor ctor = aClass.getDeclaredConstructor(args);
- return getConstructorProxy(ctor);
- } catch (NoSuchMethodException exc) {
- return null;
- }
- }
-
- IFieldProxy[] getFields(Class aClass) {
- Field[] fields = aClass.getFields();
- IFieldProxy[] fieldProxies = new IFieldProxy[fields.length];
- for (int i = 0; i < fields.length; i++) {
- fieldProxies[i] = getFieldProxy(fields[i]);
- }
- return fieldProxies;
- }
-
- IFieldProxy[] getDeclaredFields(Class aClass) {
- Field[] fields = aClass.getDeclaredFields();
- IFieldProxy[] fieldProxies = new IFieldProxy[fields.length];
- for (int i = 0; i < fields.length; i++) {
- fieldProxies[i] = getFieldProxy(fields[i]);
- }
- return fieldProxies;
- }
-
- /**
- * Return an instance of an IDEFieldProxy This is package protected because the only people who can use this are priveledge objects that have the
- * aField instance. These are part of the idevm package only. If you have to make this method public you are doing things incorrectly. To get a
- * field proxy you must use the interface methods on IBeanTypeProxy that has getField(String) as well
- */
- IFieldProxy getFieldProxy(Field aField) {
-
- return (IFieldProxy) fieldType.newBeanProxy(aField);
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IMethodProxyFactory#getFieldProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String, java.lang.String)
- */
- public IProxyField getFieldProxy(IExpression expression, String className, String fieldName) {
- // We are getting the class resolved through the expression. Might as well because it probably will
- // be needed again and this way when the expression is finished they will be resolved for later usage.
- IStandardBeanTypeProxyFactory beanTypeProxyFactory = fProxyFactoryRegistry.getBeanTypeProxyFactory();
- IProxyBeanType beanType = beanTypeProxyFactory.getBeanTypeProxy(expression, className);
- return beanType.getFieldProxy(expression, fieldName);
- }
-
- /**
- * Return an instance of an IDEMethodProxy This is package protected because the only people who can use this are priveledge objects that have the
- * aMethod instance. These are part of the idevm package only. If you have to make this method public you are doing things incorrectly. To get a
- * method proxy you must use the interface methods on IMethodProxyFactory to do lookup by string or else on IBeanTypeProxy that has
- * getMethod(String) as well
- */
- IDEMethodProxy getMethodProxy(Method aMethod) {
-
- return (IDEMethodProxy) methodType.newBeanProxy(aMethod);
-
- }
-
- public IMethodProxy getMethodProxy(String className, String methodName, String[] parameterTypes) {
- try {
- Class aClass = fProxyFactoryRegistry.loadClass(className);
- return getMethodProxy(aClass, methodName, parameterTypes);
- } catch (ClassNotFoundException exc) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", exc)); //$NON-NLS-1$
- return null;
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IMethodProxyFactory#getMethodProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String, java.lang.String, java.lang.String[])
- */
- public IProxyMethod getMethodProxy(IExpression expression, String className, String methodName, String[] parameterTypes) {
- // We are getting the class and parmtypes resolved through the expression. Might as well because they probably will
- // be needed again and this way when the expression is finished they will be resolved for later usage.
- IStandardBeanTypeProxyFactory beanTypeProxyFactory = fProxyFactoryRegistry.getBeanTypeProxyFactory();
- IProxyBeanType beanType = beanTypeProxyFactory.getBeanTypeProxy(expression, className);
- IProxyBeanType[] parmTypes = getParameterTypes(expression, parameterTypes, beanTypeProxyFactory);
- return beanType.getMethodProxy(expression, methodName, parmTypes);
- }
-
- /**
- * Helper method for Beantypes and Proxy bean types to get the proxy.
- * @param expression
- * @param classType
- * @param methodName
- * @param parameterTypes
- * @return
- *
- * @since 1.1.0
- */
- public IProxyMethod getMethodProxy(IExpression expression, IProxyBeanType classType, String methodName, String[] parameterTypes) {
- // We are getting the parmtypes resolved through the expression. Might as well because they probably will
- // be needed again and this way when the expression is finished they will be resolved for later usage.
- IStandardBeanTypeProxyFactory beanTypeProxyFactory = fProxyFactoryRegistry.getBeanTypeProxyFactory();
- IProxyBeanType[] parmTypes = getParameterTypes(expression, parameterTypes, beanTypeProxyFactory);
- return classType.getMethodProxy(expression, methodName, parmTypes);
- }
-
- /**
- * @param expression
- * @param parameterTypes
- * @param beanTypeProxyFactory
- * @return
- *
- * @since 1.1.0
- */
- protected IProxyBeanType[] getParameterTypes(IExpression expression, String[] parameterTypes, IStandardBeanTypeProxyFactory beanTypeProxyFactory) {
- IProxyBeanType[] parmTypes;
- if (parameterTypes == null || parameterTypes.length == 0)
- parmTypes = null;
- else {
- parmTypes = new IProxyBeanType[parameterTypes.length];
- for (int i = 0; i < parameterTypes.length; i++) {
- parmTypes[i] = beanTypeProxyFactory.getBeanTypeProxy(expression, parameterTypes[i]);
- }
- }
- return parmTypes;
- }
-
- public IMethodProxy getMethodProxy(Class cls, String methodName, String[] parameterTypes) {
- try {
- Class[] parmClasses = null;
- if (parameterTypes != null) {
- parmClasses = new Class[parameterTypes.length];
- for (int i = 0; i < parmClasses.length; i++) {
- Class temp = (Class) primLookup.get(parameterTypes[i]);
- if (temp == null)
- temp = fProxyFactoryRegistry.loadClass(parameterTypes[i]);
- parmClasses[i] = temp;
- }
- }
- return getMethodProxy(cls.getMethod(methodName, parmClasses));
- } catch (ClassNotFoundException e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- } catch (NoSuchMethodException e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- }
- return null;
- }
-
- IMethodProxy getDeclaredMethodProxy(Class cls, String methodName, String[] parameterTypes) {
- try {
- Class[] parmClasses = null;
- if (parameterTypes != null) {
- parmClasses = new Class[parameterTypes.length];
- for (int i = 0; i < parmClasses.length; i++) {
- Class temp = (Class) primLookup.get(parameterTypes[i]);
- if (temp == null)
- temp = fProxyFactoryRegistry.loadClass(parameterTypes[i]);
- parmClasses[i] = temp;
- }
- }
- return getMethodProxy(cls.getDeclaredMethod(methodName, parmClasses));
- } catch (ClassNotFoundException e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- } catch (NoSuchMethodException e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- }
- return null;
- }
-
- IDEMethodProxy getMethodProxy(Class aClass, String methodName, Class[] args) {
- try {
- Method method = aClass.getMethod(methodName, args);
- return getMethodProxy(method);
- } catch (NoSuchMethodException exc) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "Unable to find method " + aClass.getName() //$NON-NLS-1$
- + ":" + methodName + " args=" + args, exc)); //$NON-NLS-1$ //$NON-NLS-2$
- return null;
- }
- }
-
- IMethodProxy getDeclaredMethodProxy(Class aClass, String methodName, Class[] args) {
- try {
- Method method = aClass.getDeclaredMethod(methodName, args);
- return getMethodProxy(method);
- } catch (NoSuchMethodException exc) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "Unable to find method " + aClass.getName() //$NON-NLS-1$
- + ":" + methodName + " args=" + args, exc)); //$NON-NLS-1$ //$NON-NLS-2$
- return null;
- }
- }
-
- IMethodProxy getMethodProxy(IDEBeanTypeProxy aTypeProxy, String methodName, String[] parameterTypes) {
- return getMethodProxy(aTypeProxy.fClass, methodName, parameterTypes);
- }
-
- IMethodProxy[] getMethods(Class aClass) {
- Method[] methods = aClass.getMethods();
- IMethodProxy[] methodProxies = new IMethodProxy[methods.length];
- for (int i = 0; i < methods.length; i++) {
- methodProxies[i] = getMethodProxy(methods[i]);
- }
- return methodProxies;
- }
-
- IMethodProxy getCompatibleMethod(Class aClass, String methodName, Class[] parmTypes) throws NoSuchMethodException, AmbiguousMethodException {
- Method method = MethodHelper.findCompatibleMethod(aClass, methodName, parmTypes);
- return getMethodProxy(method);
- }
-
- IConstructorProxy getCompatibleConstructor(Class aClass, Class[] parmTypes) throws AmbiguousMethodException, NoSuchMethodException, IllegalAccessException {
- Constructor method = MethodHelper.findCompatibleConstructor(aClass, parmTypes);
- return getConstructorProxy(method);
- }
-
-
- IMethodProxy[] getDeclaredMethods(Class aClass) {
- Method[] methods = aClass.getDeclaredMethods();
- IMethodProxy[] methodProxies = new IMethodProxy[methods.length];
- for (int i = 0; i < methods.length; i++) {
- methodProxies[i] = getMethodProxy(methods[i]);
- }
- return methodProxies;
- }
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IMethodProxyFactory#getInvokable(java.lang.String, java.lang.String, java.lang.String[])
- */
- public IInvokable getInvokable(String className, String methodName, String[] parameterTypes) {
- return getMethodProxy(className, methodName, parameterTypes);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxyFactory#terminateFactory(boolean)
- */
- public void terminateFactory(boolean wait) {
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEMethodTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEMethodTypeProxy.java
deleted file mode 100644
index 8a6a3729c..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEMethodTypeProxy.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEMethodTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-/**
- * @version 1.0
- * @author
- */
-public class IDEMethodTypeProxy extends IDEBeanTypeProxy {
-
- IDEMethodTypeProxy(IDEProxyFactoryRegistry registry) {
- super(registry, java.lang.reflect.Method.class);
- }
-
- /*
- * @see IDEBeanTypeProxy#newBeanProxy(Object)
- */
- protected IIDEBeanProxy newBeanProxy(Object anObject) {
- return new IDEMethodProxy(fProxyFactoryRegistry, (java.lang.reflect.Method) anObject);
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDENumberBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDENumberBeanProxy.java
deleted file mode 100644
index 9c8cc3393..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDENumberBeanProxy.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDENumberBeanProxy.java,v $
- * $Revision: 1.6 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * IDE Implementation of INumberBeanProxy for any Number (i.e. the non-primitives)
- * It can answer all of the primitive number types (int, long, short, byte, double, float).
- * Creation date: (2/6/00 9:02:54 AM)
- * @author: Joe Winchester
- */
-public class IDENumberBeanProxy extends IDEBeanProxy implements INumberBeanProxy {
- private final Number fNumberValue;
- protected IBeanTypeProxy fBeanTypeProxy;
-
-/**
- * It is package protected because they are created
- * in a special way and no one else should create them.
- * @param aBean java.lang.Object
- */
-IDENumberBeanProxy(IDEProxyFactoryRegistry aRegistry, Number aNumber , IBeanTypeProxy aBeanTypeProxy) {
- super(aRegistry,aNumber);
- fNumberValue = aNumber;
- fBeanTypeProxy = aBeanTypeProxy;
-}
-/**
- * equals: Equal if:
- * 1) This proxy == (identity) to the other object
- * 2) Else if other is an IBeanProxy and not a constant one, then if
- * equals on the server.
- * 3) If this is a constant proxy and the other is too or is a constant
- * value (e.g. IStringBeanProxy.equals(String), then true if values are equals.
- */
-public boolean equals(Object anObject) {
- if (this == anObject)
- return true; // Identity
- if (anObject instanceof IDENumberBeanProxy)
- return fNumberValue.equals(((IDENumberBeanProxy) anObject).numberValue());
- if (anObject instanceof Number)
- return fNumberValue.equals(anObject);
- return false;
-}
-/**
- * byteValue method comment.
- */
-public byte byteValue() {
- return fNumberValue.byteValue();
-}
-/**
- * doubleValue method comment.
- */
-public double doubleValue() {
- return fNumberValue.doubleValue();
-}
-/**
- * floatValue method comment.
- */
-public float floatValue() {
- return fNumberValue.floatValue();
-}
-/**
- * Return the int value
- */
-public int intValue() {
- return fNumberValue.intValue();
-}
-/**
- * longValue method comment.
- */
-public long longValue() {
- return fNumberValue.longValue();
-}
-/**
- * numberValue method comment.
- */
-public Number numberValue() {
- return fNumberValue;
-}
-/**
- * shortValue method comment.
- */
-public short shortValue() {
- return fNumberValue.shortValue();
-}
-
-/**
- * The bean's toString.
- */
-public String toBeanString() {
- return fNumberValue.toString();
-}
-public IBeanTypeProxy getTypeProxy(){
- return fBeanTypeProxy;
-}
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDENumberBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDENumberBeanTypeProxy.java
deleted file mode 100644
index ff1c1dde3..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDENumberBeanTypeProxy.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDENumberBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * Number BeanType Proxy.
- */
-public abstract class IDENumberBeanTypeProxy extends IDEBeanTypeProxy {
- protected final IDENumberBeanProxy zeroProxy;
-/**
- * IDENumberBeanTypeProxy constructor comment.
- * @param aRegistry com.ibm.etools.vce.proxy.ProxyFactoryRegistry
- * @param aClass java.lang.Class
- */
-protected IDENumberBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass, Number zeroNumber) {
- super(aRegistry, aClass);
- // Cache a zero proxy of this type (though the number will be Long).
- zeroProxy = new IDENumberBeanProxy(aRegistry, zeroNumber , this);
-}
-/**
- * Helper to create a bean proxy
- * Package protected because everyone should go through the factory API
- * that is defined as part of IBeanProxyFactory
- */
-INumberBeanProxy createNumberBeanProxy(Number aNumber) {
- if (aNumber == null || zeroProxy.fBean.equals(aNumber))
- return zeroProxy;
- return new IDENumberBeanProxy(fProxyFactoryRegistry, aNumber, this);
-}
-/**
- * Specialized from IDEBeanTypeProxy to ensure INumberBeanProxies are created correctly.
- */
-protected IIDEBeanProxy newBeanProxy(Object anObject){
-
- return (IIDEBeanProxy)createNumberBeanProxy((Number) anObject);
-
-}
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEObjectBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEObjectBeanProxy.java
deleted file mode 100644
index 2ff81cb3a..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEObjectBeanProxy.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEObjectBeanProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-public class IDEObjectBeanProxy extends IDEBeanProxy {
-
- protected IBeanTypeProxy fBeanTypeProxy; // Cache the type proxy for speed
-
-protected IDEObjectBeanProxy(IDEProxyFactoryRegistry aRegistry){
- super(aRegistry);
-}
-/**
- * Constructor that lets the bean type be set on creation.
- * This saves the overhead of it being looked up the first time it is asked for.
- *
- * This is protected because the only person
- * who should use it is the IDEBeanTypeProxy or a subclass. Making it package protected stops people from
- * writing bogus code and doing casts and slamming new beans in without going through the proper API
- * that is based around any kind of VM artifact being proxied to support target VMs and pluggable JDK
- * levels
- */
-protected IDEObjectBeanProxy(IDEProxyFactoryRegistry aRegistry, Object aBean, IBeanTypeProxy aBeanTypeProxy){
-
- this(aRegistry, aBean);
- fBeanTypeProxy = aBeanTypeProxy;
-
-}
-/**
- * Set the bean we are proxying. We are a proxy for a bean running on the same IDE
- * so we hold the bean directly and can return it.
- */
-protected IDEObjectBeanProxy(IDEProxyFactoryRegistry aRegistry, Object aBean){
- this(aRegistry);
-
- fBean = aBean;
-
-}
-/**
- * The type proxy is got from our class name
- * If we have the type return it, otherwise go the factory for it
- * Don't new it up because the factory must be responsible for creating type proxies as it
- * has to perform instance management on them
- */
-public IBeanTypeProxy getTypeProxy() {
-
- if ( fBeanTypeProxy == null ) {
- fBeanTypeProxy = fProxyFactoryRegistry.getBeanTypeProxyFactory().getBeanTypeProxy( fBean.getClass().getName() );
- }
- return fBeanTypeProxy;
-}
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEPrimitiveBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEPrimitiveBeanTypeProxy.java
deleted file mode 100644
index 72ea50a8b..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEPrimitiveBeanTypeProxy.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEPrimitiveBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-
-public abstract class IDEPrimitiveBeanTypeProxy extends IDEBeanTypeProxy {
-
- static final int BOOLEAN = 1;
- static final int BYTE = 2;
- static final int CHAR = 3;
- static final int DOUBLE = 4;
- static final int FLOAT = 5;
- static final int INTEGER = 6;
- static final int LONG = 7;
- static final int SHORT = 8;
-
-public IDEPrimitiveBeanTypeProxy(IDEProxyFactoryRegistry aRegistry,Class aClass){
- super(aRegistry,aClass);
-}
-public boolean isPrimitive() {
- return true;
-}
-abstract int getPrimitiveType();
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEProxyFactoryRegistry.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEProxyFactoryRegistry.java
deleted file mode 100644
index 80493d548..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEProxyFactoryRegistry.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEProxyFactoryRegistry.java,v $
- * $Revision: 1.12 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.*;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Platform;
-import org.osgi.framework.Bundle;
-
-import org.eclipse.jem.internal.proxy.common.IVMServer;
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * This implementation runs the Beans inside the Eclipse IDE
- * It should only be used by plugins that can guarantee their their beans do
- * not change during the lifetime of the IDE and can run at the same JDK level
- * that the Eclipse IDE is running
- */
-
-public class IDEProxyFactoryRegistry extends BaseProxyFactoryRegistry implements IVMServer {
-
- public static final String IDE_REGISTRY_TYPE_ID = "org.eclipse.jem.IDE"; //$NON-NLS-1$
- protected String fName;
- protected ClassLoader fClassLoader;
- protected IDECallbackRegistry fCallbackRegistry;
-
- /*
- * Special classloader that firsts tries to load from bundle then tries from url paths so
- * that bundle is treated as being at the head of the url paths.
- *
- * @since 1.0.0
- */
- private static class IDESpecialClassLoader extends URLClassLoader {
-
- private Bundle bundle;
- // This is the bundle that contains the IDE Eclipse code.
- // This must be checked first because there are IDE specific stuff that is used on the "remote vm" too and
- // so must be common.
- private Bundle ideBundle;
-
- public IDESpecialClassLoader(URL[] urls, Bundle bundle) {
- super(urls, null);
- ideBundle = ProxyPlugin.getPlugin().getBundle();
- this.bundle = bundle;
- }
-
- public IDESpecialClassLoader(URL[] urls) {
- this(urls, null);
- }
-
- /* (non-Javadoc)
- * @see java.lang.ClassLoader#findClass(java.lang.String)
- */
- protected Class findClass(String name) throws ClassNotFoundException {
- try {
- return ideBundle.loadClass(name);
- } catch (ClassNotFoundException e) {
- if (bundle != null) {
- try {
- return bundle.loadClass(name);
- } catch (ClassNotFoundException e1) {
- }
- }
- return super.findClass(name);
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.ClassLoader#findResource(java.lang.String)
- */
- public URL findResource(String name) {
- URL r = ideBundle.getResource(name);
- if (r == null && bundle != null)
- r = bundle.getResource(name);
- return r != null ? r : super.findResource(name);
- }
-}
-
-/**
- * Create a special loader that has the plugin classloader of the passed in plugin
- * as the parent loader, plus all of the urls, plus the remotevm.jar file that is
- * needed by IDE Proxy to work.
- */
-public static ClassLoader createSpecialLoader(String pluginName, URL[] otherURLs) {
- Bundle bundle = pluginName != null ? Platform.getBundle(pluginName) : null;
-
- URL[] mustHaveUrls = ProxyPlugin.getPlugin().urlLocalizeAllFromBundleAndFragments(ProxyPlugin.getPlugin().getBundle(), "vm/remotevm.jar"); //$NON-NLS-1$
-
- URL[] urls = null;
- if (otherURLs != null) {
- urls = new URL[otherURLs.length+mustHaveUrls.length];
- System.arraycopy(mustHaveUrls, 0, urls, 0, mustHaveUrls.length);
- System.arraycopy(otherURLs, 0, urls, mustHaveUrls.length, otherURLs.length);
- } else
- urls = mustHaveUrls;
-
- return bundle != null ? new IDESpecialClassLoader(urls, bundle) : new IDESpecialClassLoader(urls);
-}
-
-public IDEProxyFactoryRegistry(String aName, ClassLoader loader) {
- super(IDE_REGISTRY_TYPE_ID);
- fName = aName;
- fClassLoader = loader;
-}
-
-ClassLoader getPluginClassLoader(){
- return fClassLoader;
-}
-
-protected void registryTerminated(boolean wait){
- List runnables = null;
- synchronized (this) {
- runnables = shutdownRunnables;
- shutdownRunnables = null;
- }
- if (runnables != null) {
- for (Iterator itr = runnables.iterator(); itr.hasNext();) {
- try {
- ((Runnable) itr.next()).run();
- } catch (RuntimeException e) {
- e.printStackTrace();
- }
- }
- }
-}
-
-Class loadClass(String aClassName) throws ClassNotFoundException, ExceptionInInitializerError, LinkageError {
- return fClassLoader.loadClass(aClassName);
-}
-
-public ICallbackRegistry getCallbackRegistry(){
- if ( fCallbackRegistry == null ){
- fCallbackRegistry = new IDECallbackRegistry(this);
- }
- return fCallbackRegistry;
-}
-
-
-/**
- * Get a bean proxy from the bean of the correct type.
- *
- * @param returnType
- * @param bean
- * @return
- *
- * @since 1.0.0
- */
-IBeanProxy getBeanProxy(Class returnType, Object bean) {
- IDEStandardBeanTypeProxyFactory proxyFactory = (IDEStandardBeanTypeProxyFactory) this.getBeanTypeProxyFactory();
- if (!returnType.isPrimitive()) {
- return IDEStandardBeanProxyFactory.createBeanProxy(this, bean);
- } else if (returnType == Integer.TYPE) {
- return proxyFactory.intType.newBeanProxy(bean);
- } else if (returnType == Boolean.TYPE) {
- return proxyFactory.booleanType.newBeanProxy(bean);
- } else if (returnType == Float.TYPE) {
- return proxyFactory.floatType.newBeanProxy(bean);
- } else if (returnType == Long.TYPE) {
- return proxyFactory.longType.newBeanProxy(bean);
- } else if (returnType == Short.TYPE) {
- return proxyFactory.shortType.newBeanProxy(bean);
- } else if (returnType == Double.TYPE) {
- return proxyFactory.doubleType.newBeanProxy(bean);
- } else if (returnType == Byte.TYPE) {
- return proxyFactory.byteType.newBeanProxy(bean);
- } else if (returnType == Character.TYPE) {
- return proxyFactory.charType.newBeanProxy(bean);
- } else {
- throw new RuntimeException("Unknown primitive type " + returnType.getName()); //$NON-NLS-1$
- }
-}
-
-List shutdownRunnables;
-
-public synchronized void addShutdownListener(Runnable runnable) {
- if (shutdownRunnables == null) {
- shutdownRunnables = new ArrayList();
- } else if (shutdownRunnables.contains(runnable))
- return;
- shutdownRunnables.add(runnable);
-}
-
-public synchronized void removeShutdownListener(Runnable runnable) {
- if (shutdownRunnables != null)
- shutdownRunnables.remove(runnable);
-}
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDERegistration.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDERegistration.java
deleted file mode 100644
index 14529e2f2..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDERegistration.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.proxy.ide;
-/*
- * $RCSfile: IDERegistration.java,v $
- * $Revision: 1.13 $ $Date: 2006/05/17 20:13:05 $
- */
-
-import java.net.URL;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.launching.JavaRuntime;
-
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.ide.awt.IDERegisterAWT;
-import org.eclipse.jem.internal.proxy.remote.LocalFileConfigurationContributorController;
-/**
- * This is the registration class for starting an IDERemote VM.
- */
-
-public class IDERegistration {
-
- public static ProxyFactoryRegistry startAnImplementation(
- IConfigurationContributor[] contributors,
- boolean attachAWT,
- IProject project,
- String vmName,
- String pluginName,
- IProgressMonitor pm) throws CoreException {
- IDERegistration idereg = new IDERegistration(pluginName);
- return idereg.startImplementation(contributors, attachAWT, project, vmName, pm);
- }
-
- public IDERegistration() {
- }
-
- private IDERegistration(String pluginName) {
- this.pluginName = pluginName;
- }
- private String pluginName;
-
- /**
- * This will create a remote VM and return an initialized REMProxyFactoryRegistry.
- * Passed in are:
- * project: The project this is being started on. Must not be null and must be a JavaProject. (Currently ignored for IDE).
- * attachAWT: Should AWT be attached to this implementation.
- * contributors: Contributors to the configuration. Can be null.
- * pm: ProgressMonitor to use. Must not be null.
- * vmName: Name for the vm. Can be null.
- */
- public ProxyFactoryRegistry startImplementation(
- IConfigurationContributor[] contributors,
- boolean attachAWT,
- IProject project,
- String vmName,
- IProgressMonitor pm)
- throws CoreException {
-
- URL[] classPaths = null;
- IJavaProject javaProject = null;
- if (project != null) {
- javaProject = JavaCore.create(project);
- // Add in the paths for the project
- classPaths = ProxyLaunchSupport.convertStringPathsToURL(JavaRuntime.computeDefaultRuntimeClassPath(javaProject));
- } else
- classPaths = new URL[0];
-
- final IJavaProject jp = javaProject;
-
- final ProxyLaunchSupport.LaunchInfo launchInfo = new ProxyLaunchSupport.LaunchInfo();
- contributors = ProxyLaunchSupport.fillInLaunchInfo(contributors == null ? ProxyLaunchSupport.EMPTY_CONFIG_CONTRIBUTORS : contributors, launchInfo, jp != null ? jp.getElementName() : null);
- final LocalFileConfigurationContributorController controller = new LocalFileConfigurationContributorController(classPaths, new URL[3][], launchInfo);
- final IConfigurationContributor[] contribs = contributors;
- for (int i = 0; i < contributors.length; i++) {
- final int ii = i;
- // Run in safe mode so that anything happens we don't go away.
- SafeRunner.run(new ISafeRunnable() {
- public void handleException(Throwable exception) {
- // Don't need to do anything. Platform.run logs it for me.
- }
-
- public void run() throws Exception {
- contribs[ii].initialize(launchInfo.getConfigInfo());
- }
- });
- }
- for (int i = 0; i < contributors.length; i++) {
- final int ii = i;
- // Run in safe mode so that anything happens we don't go away.
- SafeRunner.run(new ISafeRunnable() {
- public void handleException(Throwable exception) {
- // Don't need to do anything. Platform.run logs it for me.
- }
-
- public void run() throws Exception {
- contribs[ii].contributeClasspaths(controller);
- }
- });
- }
- classPaths = controller.getFinalClasspath();
-
- final BaseProxyFactoryRegistry registry = (BaseProxyFactoryRegistry) createIDEProxyFactoryRegistry(vmName, pluginName, classPaths);
- ProxyLaunchSupport.performExtensionRegistrations(registry, launchInfo);
- for (int i = 0; i < contribs.length; i++) {
- final int ii = i;
- // Run in safe mode so that anything happens we don't go away.
- SafeRunner.run(new ISafeRunnable() {
- public void handleException(Throwable exception) {
- // Don't need to do anything. Platform.run logs it for me.
- }
-
- public void run() throws Exception {
- contribs[ii].contributeToRegistry(registry);
- }
- });
- }
-
- return registry;
- }
-
- public static ProxyFactoryRegistry createIDEProxyFactoryRegistry(String aName, String aPluginName, URL[] otherURLs) {
- // Create the registry.
- IDEProxyFactoryRegistry registry =
- new IDEProxyFactoryRegistry(aName, IDEProxyFactoryRegistry.createSpecialLoader(aPluginName, otherURLs));
- initRegistry(registry);
- return registry;
- }
-
- public static ProxyFactoryRegistry createIDEProxyFactoryRegistry(String aName, ClassLoader loader) {
- // Create the registry.
- IDEProxyFactoryRegistry registry = new IDEProxyFactoryRegistry(aName, loader);
- initRegistry(registry);
- return registry;
- }
-
- private static void initRegistry(IDEProxyFactoryRegistry registry) {
- new IDEStandardBeanTypeProxyFactory(registry);
- new IDEStandardBeanProxyFactory(registry);
- new IDEMethodProxyFactory(registry);
- // Always support AWT for now
- IDERegisterAWT.registerAWT(registry);
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEShortClassBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEShortClassBeanTypeProxy.java
deleted file mode 100644
index 46042c575..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEShortClassBeanTypeProxy.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEShortClassBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * Short BeanType Proxy.
- */
-final class IDEShortClassBeanTypeProxy extends IDENumberBeanTypeProxy {
-protected IDEShortClassBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass, new Short((short)0));
-}
-INumberBeanProxy createShortBeanProxy(Short aShort){
- return new IDENumberBeanProxy(fProxyFactoryRegistry,aShort,this);
-}
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEShortTypeBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEShortTypeBeanTypeProxy.java
deleted file mode 100644
index 5bf42abb7..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEShortTypeBeanTypeProxy.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEShortTypeBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-/**
- * Short BeanType Proxy.
- */
-final class IDEShortTypeBeanTypeProxy extends IDEPrimitiveBeanTypeProxy {
-protected IDEShortTypeBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass);
-}
-INumberBeanProxy createShortBeanProxy(short aShort){
- return new IDENumberBeanProxy(fProxyFactoryRegistry,new Short(aShort),this);
-}
-int getPrimitiveType(){
- return SHORT;
-}
-protected IIDEBeanProxy newBeanProxy(Object anObject){
- Number n = anObject instanceof Character ? new Short((short) ((Character) anObject).charValue()) : (Number) anObject;
- return new IDENumberBeanProxy(fProxyFactoryRegistry, n, this);
-}
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStandardBeanProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStandardBeanProxyFactory.java
deleted file mode 100644
index 85a852b28..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStandardBeanProxyFactory.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEStandardBeanProxyFactory.java,v $ $Revision: 1.11 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-import org.eclipse.jem.internal.proxy.common.IVMServer;
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.initParser.InitializationStringParser;
-
-public class IDEStandardBeanProxyFactory implements IStandardBeanProxyFactory {
-
-
- protected IDEProxyFactoryRegistry fRegistry;
- protected IDEStandardBeanTypeProxyFactory fBeanTypeProxyFactory;
- private IBeanProxy ivmServerProxy;
-
- /*
- * Return a bean proxy for the argument. To do this create through the correct BeanTypeProxy
- * Which ensures that special subclasses of IDEBeanProxy are created. This is just a local
- * helper method.
- */
- static IIDEBeanProxy createBeanProxy(ProxyFactoryRegistry aRegistry, Object anObject) {
-
- return ((IDEStandardBeanProxyFactory) aRegistry.getBeanProxyFactory()).createIDEBeanProxyWith(anObject);
- }
-
- IDEStandardBeanProxyFactory(IDEProxyFactoryRegistry aRegistry) {
- fRegistry = aRegistry;
- fRegistry.registerBeanProxyFactory(this);
- fBeanTypeProxyFactory = (IDEStandardBeanTypeProxyFactory) aRegistry.getBeanTypeProxyFactory();
- ivmServerProxy = fRegistry.getBeanProxy(IVMServer.class, fRegistry);
- }
-
- public IStringBeanProxy createBeanProxyWith(String aString) {
- return fBeanTypeProxyFactory.stringClass.createStringBeanProxy(aString);
- }
-
- public INumberBeanProxy createBeanProxyWith(float aFloat) {
- return fBeanTypeProxyFactory.floatType.createFloatBeanProxy(aFloat);
- }
-
- public INumberBeanProxy createBeanProxyWith(short aShort) {
- return fBeanTypeProxyFactory.shortType.createShortBeanProxy(aShort);
- }
-
- public ICharacterBeanProxy createBeanProxyWith(char aChar) {
- return fBeanTypeProxyFactory.charType.createCharBeanProxy(aChar);
- }
-
- public ICharacterBeanProxy createBeanProxyWith(Character aCharacter) {
- return fBeanTypeProxyFactory.charClass.createCharacterBeanProxy(aCharacter);
- }
-
- public IIntegerBeanProxy createBeanProxyWith(int anInt) {
- return fBeanTypeProxyFactory.intType.createIntegerBeanProxy(anInt);
- }
-
- public IIntegerBeanProxy createBeanProxyWith(Integer anInteger) {
- return fBeanTypeProxyFactory.integerClass.createIntegerBeanProxy(anInteger);
- }
-
- public INumberBeanProxy createBeanProxyWith(long aLong) {
- return fBeanTypeProxyFactory.longType.createLongBeanProxy(aLong);
- }
-
- public INumberBeanProxy createBeanProxyWith(Number aNumber) {
- IDENumberBeanTypeProxy numberTypeProxy = (IDENumberBeanTypeProxy) fBeanTypeProxyFactory.getBeanTypeProxy(aNumber.getClass());
- return numberTypeProxy.createNumberBeanProxy(aNumber);
- }
-
- public IBooleanBeanProxy createBeanProxyWith(boolean aBoolean) {
- return fBeanTypeProxyFactory.booleanType.createBooleanBeanProxy(aBoolean);
- }
-
- public IBooleanBeanProxy createBeanProxyWith(Boolean aBoolean) {
- return fBeanTypeProxyFactory.booleanClass.createBooleanBeanProxy(aBoolean);
- }
-
- public INumberBeanProxy createBeanProxyWith(byte aByte) {
- return fBeanTypeProxyFactory.byteType.createByteBeanProxy(aByte);
- }
-
- public INumberBeanProxy createBeanProxyWith(double aDouble) {
- return fBeanTypeProxyFactory.doubleType.createDoubleBeanProxy(aDouble);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanProxyFactory#convertToPrimitiveBeanProxy(org.eclipse.jem.internal.proxy.core.IBeanProxy)
- */
- public IBeanProxy convertToPrimitiveBeanProxy(IBeanProxy nonPrimitiveProxy) {
- if (nonPrimitiveProxy == null)
- return null;
- if (!nonPrimitiveProxy.isValid())
- return nonPrimitiveProxy;
- IDEBeanTypeProxy type = (IDEBeanTypeProxy) nonPrimitiveProxy.getTypeProxy();
- if (type.getClass() == Boolean.class)
- return this.createBeanProxyWith(((IBooleanBeanProxy) nonPrimitiveProxy).booleanValue());
- else if (type.getClass() == Byte.class)
- return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).byteValue());
- else if (type.getClass() == Character.class)
- return this.createBeanProxyWith(((ICharacterBeanProxy) nonPrimitiveProxy).charValue());
- else if (type.getClass() == Double.class)
- return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).doubleValue());
- else if (type.getClass() == Float.class)
- return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).floatValue());
- else if (type.getClass() == Integer.class)
- return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).intValue());
- else if (type.getClass() == Long.class)
- return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).longValue());
- else if (type.getClass() == Short.class)
- return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).shortValue());
- else
- return nonPrimitiveProxy;
- }
-
- /**
- * Create a one-dimensional array. The result will be the same as calling
- * createBeanProxyWith(IBeanTypeProxy type, new int[1] {x}) where 'x' is the value passed in as
- * the dimension.
- */
- public IArrayBeanProxy createBeanProxyWith(IBeanTypeProxy type, int dimension) throws ThrowableProxy {
- return createBeanProxyWith(type, new int[] { dimension });
- }
-
- /**
- * Create an array bean proxy.
- * - (int, new int[2] {3, 4}) will create: int [3] [4]
- * - (int[], new int[1] {1}) int [1]
- * - (int[], new int[2] {2,3}) int [2] [3]
- *
- * - (int[], null) or (int[], new int[0]) or (int, null) or (int, new int[0]) int [0]... or
- * (int[][]..., null) or (int[][]..., new int[0]) int[0][]... This is because an array instance
- * with no specified dimensions is not valid.
- * - (int[][], new int[1] {3}) int[3][]
- */
- public IArrayBeanProxy createBeanProxyWith(IBeanTypeProxy type, int[] dimensions) throws ThrowableProxy {
- if (type.isArray())
- return ((IDEArrayBeanTypeProxy) type).createBeanProxyWith(dimensions); // Already an
- // array type,
- // just pass it
- // on.
- else {
- // It is not an array type, so we need to get an array of this type and dimensions.
- IDEArrayBeanTypeProxy arrayType =
- (IDEArrayBeanTypeProxy) fBeanTypeProxyFactory.getBeanTypeProxy(type.getTypeName(), dimensions.length);
- return arrayType.createBeanProxyWith(dimensions);
- }
- }
-
- public void releaseProxy(IBeanProxy aProxy) {
- // Do nothing. This is more for remote proxies
- }
-
- /**
- * createIDEBeanProxyWith method comment. This is not part of the IStandardBeanProxyFactory
- * interface. It is available only from IDEBeanProxyFactory so that IDE registered extensions
- * can wrapper a bean. They will need to get current and explicitly cast to
- * IDEBeanProxyFactory, so they should only be IDE types themselves.
- */
- public IIDEBeanProxy createIDEBeanProxyWith(Object anObject) {
- if (anObject == null)
- return null;
- return ((IDEBeanTypeProxy) fBeanTypeProxyFactory.getBeanTypeProxy(anObject.getClass())).newBeanProxy(anObject);
- }
-
- /**
- * For the IDE Factory we will create an IDEBeanProxy using the initializationString. If the
- * format of the string is not one we understand, pass it onto the evaluator. The
- * initStringParser is passed to allow shortcut evaluation. Package protected so only
- * IDEBeanTypeProxies can create instances.
- */
- IBeanProxy createBeanProxy(IDEBeanTypeProxy aTypeProxy, String initializationString) {
- if (initializationString.equals("null")) //$NON-NLS-1$
- return null; // Value is initialized as null.
- // We have to evaluate the result of the initializationString
- try {
- ClassLoader pluginClassLoader = fRegistry.getPluginClassLoader();
- Object newValue = InitializationStringParser.evaluate(initializationString, pluginClassLoader);
- return newValue != null ? aTypeProxy.newBeanProxy(newValue) : null;
- } catch (Exception exc) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", exc)); //$NON-NLS-1$
- return null;
- }
- }
-
- /**
- * For the IDE Factory we will create an IDEBeanProxy using the null constructor Package
- * protected so only IDEBeanTypeProxies can create instances.
- */
- IBeanProxy createBeanProxy(IDEBeanTypeProxy aTypeProxy) {
-
- Class beanType = aTypeProxy.fClass;
-
- // If the beanType is a primitive, the creation will fail because you can't
- // create a primitive without a value.
- try {
- return aTypeProxy.newBeanProxy(!(aTypeProxy.isPrimitive()) ? beanType.newInstance() : null);
- } catch (Exception exc) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", exc)); //$NON-NLS-1$
- return null;
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxyFactory#terminateFactory(boolean)
- */
- public void terminateFactory(boolean wait) {
- // Nothing really to do here - more applicable to remote proxy factories
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanProxyFactory#createExpression()
- */
- public IExpression createExpression() {
- return new IDEExpression(this.fRegistry);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanProxyFactory#createBeanProxyFrom(java.lang.String)
- */
- public IBeanProxy createBeanProxyFrom(String initializationString) throws ThrowableProxy {
- if (initializationString.equals("null")) //$NON-NLS-1$
- return null; // Value is initialized as null.
- // We have to evaluate the result of the initializationString
- try {
- ClassLoader pluginClassLoader = fRegistry.getPluginClassLoader();
- InitializationStringParser parser = InitializationStringParser.createParser(initializationString, pluginClassLoader);
- Object newValue = parser.evaluate();
- if (newValue != null) {
- return fRegistry.getBeanProxy(parser.getExpectedType(), newValue);
- } else
- return null;
- } catch (Exception exc) {
- ProxyPlugin.getPlugin().getLogger().log(
- new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", exc)); //$NON-NLS-1$
- return null;
- }
- }
-
- public IBeanProxy getIVMServerProxy() {
- return ivmServerProxy;
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStandardBeanTypeProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStandardBeanTypeProxyFactory.java
deleted file mode 100644
index 2dfd7fbc3..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStandardBeanTypeProxyFactory.java
+++ /dev/null
@@ -1,465 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-
-/*
- * $RCSfile: IDEStandardBeanTypeProxyFactory.java,v $ $Revision: 1.12 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import java.lang.reflect.Array;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.text.MessageFormat;
-import java.util.*;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-import org.eclipse.jem.internal.proxy.common.MapTypes;
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.core.ExpressionProxy.ProxyEvent;
-
-public class IDEStandardBeanTypeProxyFactory implements IStandardBeanTypeProxyFactory {
-
- protected final IDEProxyFactoryRegistry fFactoryRegistry;
-
- // Hashtable to cache proxies for classes so they are found on second and subsequent lookups
- protected Map beanProxies;
-
- public static Map MAP_SHORTSIG_TO_TYPE = new HashMap(8);
-
- public static Map MAP_TYPENAME_TO_SHORTSIG = new HashMap(8);
-
- static {
- MAP_SHORTSIG_TO_TYPE.put("B", Byte.TYPE); //$NON-NLS-1$
- MAP_SHORTSIG_TO_TYPE.put("C", Character.TYPE); //$NON-NLS-1$
- MAP_SHORTSIG_TO_TYPE.put("D", Double.TYPE); //$NON-NLS-1$
- MAP_SHORTSIG_TO_TYPE.put("F", Float.TYPE); //$NON-NLS-1$
- MAP_SHORTSIG_TO_TYPE.put("I", Integer.TYPE); //$NON-NLS-1$
- MAP_SHORTSIG_TO_TYPE.put("J", Long.TYPE); //$NON-NLS-1$
- MAP_SHORTSIG_TO_TYPE.put("S", Short.TYPE); //$NON-NLS-1$
- MAP_SHORTSIG_TO_TYPE.put("Z", Boolean.TYPE); //$NON-NLS-1$
-
- MAP_TYPENAME_TO_SHORTSIG.put("byte", "B"); //$NON-NLS-1$ //$NON-NLS-2$
- MAP_TYPENAME_TO_SHORTSIG.put("char", "C"); //$NON-NLS-1$ //$NON-NLS-2$
- MAP_TYPENAME_TO_SHORTSIG.put("double", "D"); //$NON-NLS-1$ //$NON-NLS-2$
- MAP_TYPENAME_TO_SHORTSIG.put("float", "F"); //$NON-NLS-1$ //$NON-NLS-2$
- MAP_TYPENAME_TO_SHORTSIG.put("int", "I"); //$NON-NLS-1$ //$NON-NLS-2$
- MAP_TYPENAME_TO_SHORTSIG.put("long", "J"); //$NON-NLS-1$ //$NON-NLS-2$
- MAP_TYPENAME_TO_SHORTSIG.put("short", "S"); //$NON-NLS-1$ //$NON-NLS-2$
- MAP_TYPENAME_TO_SHORTSIG.put("boolean", "Z"); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- // Cached copy of a few typical bean type proxies.
- IDEBeanTypeProxy objectClass;
-
- IDEBooleanTypeBeanTypeProxy booleanType;
-
- IDEBooleanClassBeanTypeProxy booleanClass;
-
- IDEIntegerTypeBeanTypeProxy intType;
-
- IDEIntegerClassBeanTypeProxy integerClass;
-
- IDEFloatTypeBeanTypeProxy floatType;
-
- IDEFloatClassBeanTypeProxy floatClass;
-
- IDELongTypeBeanTypeProxy longType;
-
- IDELongClassBeanTypeProxy longClass;
-
- IDEShortTypeBeanTypeProxy shortType;
-
- IDEShortClassBeanTypeProxy shortClass;
-
- IDEByteTypeBeanTypeProxy byteType;
-
- IDEByteClassBeanTypeProxy byteClass;
-
- IDECharTypeBeanTypeProxy charType;
-
- IDECharacterClassBeanTypeProxy charClass;
-
- IDEDoubleTypeBeanTypeProxy doubleType;
-
- IDEDoubleClassBeanTypeProxy doubleClass;
-
- IDEStringBeanTypeProxy stringClass;
-
- IDEClassBeanTypeProxy classClass;
-
- IDEBeanTypeProxy voidType;
-
- public IDEStandardBeanTypeProxyFactory(IDEProxyFactoryRegistry aRegistry) {
- fFactoryRegistry = aRegistry;
- aRegistry.registerBeanTypeProxyFactory(this);
-
- // Now initialize the cache.
- objectClass = new IDEBeanTypeProxy(fFactoryRegistry, Object.class);
- booleanType = new IDEBooleanTypeBeanTypeProxy(fFactoryRegistry, Boolean.TYPE);
- booleanClass = new IDEBooleanClassBeanTypeProxy(fFactoryRegistry, Boolean.class);
- intType = new IDEIntegerTypeBeanTypeProxy(fFactoryRegistry, Integer.TYPE);
- integerClass = new IDEIntegerClassBeanTypeProxy(fFactoryRegistry, Integer.class);
- floatType = new IDEFloatTypeBeanTypeProxy(fFactoryRegistry, Float.TYPE);
- floatClass = new IDEFloatClassBeanTypeProxy(fFactoryRegistry, Float.class);
- longType = new IDELongTypeBeanTypeProxy(fFactoryRegistry, Long.TYPE);
- longClass = new IDELongClassBeanTypeProxy(fFactoryRegistry, Long.class);
- shortType = new IDEShortTypeBeanTypeProxy(fFactoryRegistry, Short.TYPE);
- shortClass = new IDEShortClassBeanTypeProxy(fFactoryRegistry, Short.class);
- byteType = new IDEByteTypeBeanTypeProxy(fFactoryRegistry, Byte.TYPE);
- byteClass = new IDEByteClassBeanTypeProxy(fFactoryRegistry, Byte.class);
- charType = new IDECharTypeBeanTypeProxy(fFactoryRegistry, Character.TYPE);
- charClass = new IDECharacterClassBeanTypeProxy(fFactoryRegistry, Character.class);
- doubleType = new IDEDoubleTypeBeanTypeProxy(fFactoryRegistry, Double.TYPE);
- doubleClass = new IDEDoubleClassBeanTypeProxy(fFactoryRegistry, Double.class);
- stringClass = new IDEStringBeanTypeProxy(fFactoryRegistry, String.class);
- classClass = new IDEClassBeanTypeProxy(fFactoryRegistry, java.lang.Class.class);
- voidType = new IDEBeanTypeProxy(fFactoryRegistry, Void.TYPE);
-
- // Initialize the hashtable with the primitives, their lang equivalents, and also common classes like String
- beanProxies = new HashMap(20);
-
- // Primitives
- beanProxies.put(intType.getTypeName(), intType);
- beanProxies.put(booleanType.getTypeName(), booleanType);
- beanProxies.put(charType.getTypeName(), charType);
- beanProxies.put(byteType.getTypeName(), byteType);
- beanProxies.put(shortType.getTypeName(), shortType);
- beanProxies.put(longType.getTypeName(), longType);
- beanProxies.put(floatType.getTypeName(), floatType);
- beanProxies.put(doubleType.getTypeName(), doubleType);
-
- // java.lang primitive peers
- // Note that special classes are used for some of these which allow the IDE to get the
- // lang objects from the objects that are holding proxies
- beanProxies.put(integerClass.getTypeName(), integerClass);
- beanProxies.put(booleanClass.getTypeName(), booleanClass);
- beanProxies.put(charClass.getTypeName(), charClass);
- beanProxies.put(byteClass.getTypeName(), byteClass);
- beanProxies.put(shortClass.getTypeName(), shortClass);
- beanProxies.put(longClass.getTypeName(), longClass);
- beanProxies.put(floatClass.getTypeName(), floatClass);
- beanProxies.put(doubleClass.getTypeName(), doubleClass);
- beanProxies.put(BigDecimal.class.getName(), new IDEBigDecimalBeanTypeProxy(fFactoryRegistry, BigDecimal.class));//$NON-NLS-1$
- beanProxies.put(BigInteger.class.getName(), new IDEBigIntegerBeanTypeProxy(fFactoryRegistry, BigInteger.class));//$NON-NLS-1$
- beanProxies.put(stringClass.getTypeName(), stringClass);
-
- beanProxies.put(classClass.getTypeName(), classClass);
- beanProxies.put(voidType.getTypeName(), voidType);
- }
-
- /**
- * We are an IDE proxy and know that the type is in the same VM as the IDE. the IDEBeanTypeProxy object NOTE This is package protected because the
- * only person who can call it are priveledged classes that are also creating things in an IDEProxy environment. If anyone needs to make this
- * method public they are doing the wrong thing as they should use the public method getBeanTypeProxy(String) that is on the interface. The only
- * other object that can guarantee that they have the class for the argument are those that are part of the idevm package
- */
- IBeanTypeProxy getBeanTypeProxy(Class anIDEClass) {
- return getBeanTypeProxy(anIDEClass.getName());
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#getBeanTypeProxy(java.lang.String)
- */
- public synchronized IBeanTypeProxy getBeanTypeProxy(String typeName) {
- typeName = MapTypes.getJNIFormatName(typeName);
-
- // See whether we already have the proxy for the argument name
- IProxyBeanType beanTypeProxy = (IProxyBeanType) beanProxies.get(typeName);
- // See if there and resolved, if so, return it. If not resolved, that means we need it NOW
- // so we must go for it. When finally resolved the original ExpressionProxy will be deregistered and
- // the resolved beantypeproxy will be in its place.
- if (beanTypeProxy != null && beanTypeProxy.isBeanProxy()) {
- return (IBeanTypeProxy) beanTypeProxy;
- }
-
- // If not an array, then see if the package extension mechanism can find it.
- // Do this here so that if it is found in the package extension we won't necessarily create an
- // extra connection when not needed.
- if (typeName.charAt(0) != '[') {
- // It is not an array
- // First check with the factory for the package of the class.
- // Inner classes have to use the dollar notation since if they didn't we couldn't tell where
- // the package ended and the class started.
- int packageIndex = typeName.lastIndexOf('.');
- if (packageIndex != -1) {
- String packageName = typeName.substring(0, packageIndex);
- IDEExtensionBeanTypeProxyFactory packageFactory = (IDEExtensionBeanTypeProxyFactory) fFactoryRegistry
- .getBeanTypeProxyFactoryExtension(packageName);
- if (packageFactory != null) {
- beanTypeProxy = packageFactory.getExtensionBeanTypeProxy(typeName);
- if (beanTypeProxy != null) {
- registerBeanTypeProxy((IBeanTypeProxy) beanTypeProxy, false);
- return (IBeanTypeProxy) beanTypeProxy;
- }
- }
- }
- // There was not a registered factory that dealt with the class. Load it using the factory
- // registry which has the plugin's class loader
- try {
- Class ideClass = fFactoryRegistry.loadClass(typeName);
- IDEBeanTypeProxy superTypeProxy = null;
- if (ideClass.getSuperclass() != null) {
- // Get the beantype proxy of the superclass.
- superTypeProxy = (IDEBeanTypeProxy) getBeanTypeProxy(ideClass.getSuperclass());
- }
-
- // Ask the supertype
- // to create a beantype proxy of the same beantype proxy class.
- // This is so that any subclasses will get the same beantype proxy class
- // for it if it is special.
- if (superTypeProxy != null)
- beanTypeProxy = superTypeProxy.newBeanTypeForClass(ideClass);
-
- if (beanTypeProxy == null)
- beanTypeProxy = new IDEBeanTypeProxy(fFactoryRegistry, ideClass);
- } catch (ClassNotFoundException e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.INFO, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- String msg = MessageFormat.format("{0}({1})", new Object[] { e.getClass(), e.getMessage()}); //$NON-NLS-1$
- beanTypeProxy = new IDEInitErrorBeanTypeProxy(fFactoryRegistry, typeName, msg, e);
- } catch (ExceptionInInitializerError e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- String msg = MessageFormat.format("{0}({1})", new Object[] { e.getClass(), e.getMessage()}); //$NON-NLS-1$
- beanTypeProxy = new IDEInitErrorBeanTypeProxy(fFactoryRegistry, typeName, msg, e.getCause());
- } catch (LinkageError e) {
- ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$
- String msg = MessageFormat.format("{0}({1})", new Object[] { e.getClass(), e.getMessage()}); //$NON-NLS-1$
- beanTypeProxy = new IDEInitErrorBeanTypeProxy(fFactoryRegistry, typeName, msg, e);
- }
-
- // Cache the instance so we can re-use it again
- beanProxies.put(typeName, beanTypeProxy);
- return (IBeanTypeProxy) beanTypeProxy;
- } else {
- // need to create a array of this many dimensions so that we can get the appropriate class for it.
- int dims = typeName.lastIndexOf('[') + 1;
- Class finalComponentType = null;
- if (typeName.charAt(dims) == 'L') {
- // It is a class.
- // Strip off up to the 'L', and the trailing ';'. That is the class name.
- IDEBeanTypeProxy finalType = (IDEBeanTypeProxy) getBeanTypeProxy(typeName.substring(dims + 1, typeName.length() - 1));
- if (finalType != null)
- finalComponentType = finalType.fClass;
- } else {
- // It is a type. Need to map it.
- finalComponentType = (Class) IDEStandardBeanTypeProxyFactory.MAP_SHORTSIG_TO_TYPE.get(typeName.substring(dims, dims + 1));
- }
-
- if (finalComponentType != null) {
- Object dummyArray = Array.newInstance(finalComponentType, new int[dims]);
- beanTypeProxy = new IDEArrayBeanTypeProxy(fFactoryRegistry, typeName, dummyArray.getClass());
- beanProxies.put(typeName, beanTypeProxy);
- }
- return (IBeanTypeProxy) beanTypeProxy;
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#getBeanTypeProxy(org.eclipse.jem.internal.proxy.core.IExpression,
- * java.lang.String)
- */
- public synchronized IProxyBeanType getBeanTypeProxy(IExpression expression, String typeName) {
- typeName = MapTypes.getJNIFormatName(typeName);
-
- // See whether we already have the proxy for the argument name
- IProxyBeanType beanTypeProxy = (IProxyBeanType) beanProxies.get(typeName);
- if (beanTypeProxy != null) { return beanTypeProxy; }
-
- // Now see if an expression proxy cached.
- beanTypeProxy = ((IDEExpression) expression).getBeanType(typeName);
- if (beanTypeProxy != null)
- return beanTypeProxy;
-
-
- // If not an array, then see if the package extension mechanism can find it.
- // Do this here so that if it is found in the package extension we won't necessarily create an
- // extra connection when not needed.
- if (typeName.charAt(0) != '[') {
- // It is not an array
- // First check with the factory for the package of the class.
- // Inner classes have to use the dollar notation since if they didn't we couldn't tell where
- // the package ended and the class started.
- int packageIndex = typeName.lastIndexOf('.');
- if (packageIndex != -1) {
- String packageName = typeName.substring(0, packageIndex);
- IDEExtensionBeanTypeProxyFactory packageFactory = (IDEExtensionBeanTypeProxyFactory) fFactoryRegistry
- .getBeanTypeProxyFactoryExtension(packageName);
- if (packageFactory != null) {
- beanTypeProxy = packageFactory.getExtensionBeanTypeProxy(typeName, expression);
- if (beanTypeProxy != null) {
- registerBeanTypeProxy(beanTypeProxy, false);
- return beanTypeProxy;
- }
- }
- }
- }
-
- // There was not a registered factory that dealt with the class. So create the expression proxy.
- beanTypeProxy = ((Expression) expression).createBeanTypeExpressionProxy(typeName);
- registerBeanTypeProxy(beanTypeProxy, false);
- return beanTypeProxy;
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#getBeanTypeProxy(java.lang.String, int)
- */
- public IBeanTypeProxy getBeanTypeProxy(String componentClassName, int dimensions) {
- return getBeanTypeProxy(getArrayClassname(componentClassName, dimensions));
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#getBeanTypeProxy(org.eclipse.jem.internal.proxy.core.IExpression,
- * java.lang.String, int)
- */
- public IProxyBeanType getBeanTypeProxy(IExpression expression, String componentClassName, int dimensions) {
- return getBeanTypeProxy(expression, getArrayClassname(componentClassName, dimensions));
- }
-
- /**
- * @param componentClassName
- * @param dimensions
- * @return
- *
- * @since 1.1.0
- */
- protected String getArrayClassname(String componentClassName, int dimensions) {
- String jniComponentTypeName = MapTypes.getJNIFormatName(componentClassName);
- String compType = jniComponentTypeName;
- if (jniComponentTypeName.charAt(0) != '[') {
- // We're not already an array, so create correct template.
- compType = (String) MAP_TYPENAME_TO_SHORTSIG.get(componentClassName);
- if (compType == null) {
- // It is a class, and not a type.
- compType = "L" + jniComponentTypeName + ";"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- // Now create it with the appropriate number of '[' in front.
- StringBuffer buffer = new StringBuffer(dimensions + compType.length());
- for (int i = 0; i < dimensions; i++)
- buffer.append('[');
- buffer.append(compType);
- return buffer.toString();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxyFactory#terminateFactory(boolean)
- */
- public void terminateFactory(boolean wait) {
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#registerBeanTypeProxy(org.eclipse.jem.internal.proxy.core.IBeanTypeProxy,
- * boolean)
- */
- public synchronized void registerBeanTypeProxy(IBeanTypeProxy aBeanTypeProxy, boolean permanent) {
- beanProxies.put(aBeanTypeProxy.getTypeName(), aBeanTypeProxy);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#registerBeanTypeProxy(org.eclipse.jem.internal.proxy.core.IProxyBeanType,
- * boolean)
- */
- public void registerBeanTypeProxy(IProxyBeanType aProxyBeanType, boolean permanent) {
- if (aProxyBeanType.isBeanProxy())
- registerBeanTypeProxy((IBeanTypeProxy) aProxyBeanType, permanent); // A regular kind, do regular registration.
- else {
- ExpressionProxy beanExpressionProxy = ((ExpressionProxy) aProxyBeanType);
- final String typeName = aProxyBeanType.getTypeName();
- ((IDEExpression) beanExpressionProxy.getExpression()).addBeanType(typeName, aProxyBeanType);
- beanExpressionProxy.addProxyListener(new ExpressionProxy.ProxyAdapter() {
-
- public void proxyResolved(ProxyEvent event) {
- String typeName = ((IProxyBeanType) event.getSource()).getTypeName();
- synchronized (IDEStandardBeanTypeProxyFactory.this) {
- if (!beanProxies.containsKey(typeName)) {
- // It hasn't been resolved through some other means. So this is good. Actually this should never
- // occur because upon resolution we've already registered the bean type proxy through the
- // normal mechanisms. But to be safe, we'll do it here.
- beanProxies.put(typeName, event.getProxy());
- }
- }
- }
-
- public void proxyNotResolved(ExpressionProxy.ProxyEvent event) {
- ((IDEExpression) ((ExpressionProxy) event.getSource()).getExpression()).removeBeanType(typeName);
- }
- });
- }
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#isBeanTypeRegistered(String)
- */
- public synchronized boolean isBeanTypeRegistered(String className) {
- return beanProxies.containsKey(MapTypes.getJNIFormatName(className));
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#registeredTypes()
- */
- public Set registeredTypes() {
- return beanProxies.keySet();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#isBeanTypeNotFound(String)
- */
- public boolean isBeanTypeNotFound(String className) {
- // Do nothing. No need for it in IDE system because there will always be a proxy, even when not found.
- // In that case an IDEInitErrorBeanTypeProxy will be created.
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#isMaintainNotFoundTypes()
- */
- public boolean isMaintainNotFoundTypes() {
- // Do nothing. No need for it in IDE system because there will always be a proxy, even when not found.
- // In that case an IDEInitErrorBeanTypeProxy will be created.
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jem.internal.proxy.core.IStandardBeanTypeProxyFactory#setMaintainNotFoundTypes(boolean)
- */
- public void setMaintainNotFoundTypes(boolean maintain) {
- // Do nothing. No need for it in IDE system because there will always be a proxy, even when not found.
- // In that case an IDEInitErrorBeanTypeProxy will be created.
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStringBeanProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStringBeanProxy.java
deleted file mode 100644
index e2d3fff4e..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStringBeanProxy.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEStringBeanProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-/**
- * IDE Implementation of IStringBeanProxy
- * Creation date: (2/6/00 9:02:42 AM)
- * @author: Joe Winchester
- */
-final class IDEStringBeanProxy extends IDEObjectBeanProxy implements IStringBeanProxy {
- protected String fString;
-/**
- * Store the bean in the string field to save re-casting each time it is asked for.
- * It is package protected because they are created
- * in a special way and no one else should create them.
- */
-IDEStringBeanProxy(IDEProxyFactoryRegistry aRegistry, Object aBean, IBeanTypeProxy aBeanTypeProxy) {
- super(aRegistry, aBean,aBeanTypeProxy);
- fString = (String)aBean;
-}
-/**
- * Return the cache'd string that is a java.lang.String that the IDE can use
- */
-public String stringValue() {
- return fString;
-}
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStringBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStringBeanTypeProxy.java
deleted file mode 100644
index 9dd1630e1..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStringBeanTypeProxy.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEStringBeanTypeProxy.java,v $
- * $Revision: 1.5 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.IStringBeanProxy;
-/**
- * IDE Implementation of the BeanType proxy for java.lang.String
- */
-final class IDEStringBeanTypeProxy extends IDEBeanTypeProxy {
- // Cache a proxy to an empty string for speed
- protected final IDEStringBeanProxy emptyStringProxy;
-
-IDEStringBeanTypeProxy(IDEProxyFactoryRegistry aRegistry, Class aClass) {
- super(aRegistry, aClass);
- // Cache a proxy to an empty string for speed
- emptyStringProxy = new IDEStringBeanProxy(aRegistry, "",this); //$NON-NLS-1$
-}
-/**
- * Helper to create string beans
- * Package protected because no-one else outside the package should use this, they
- * must go through the API where you look up a factory first.
- */
-IStringBeanProxy createStringBeanProxy(String aString){
- if ( aString.equals("") ) {//$NON-NLS-1$
- return emptyStringProxy;
- } else {
- return new IDEStringBeanProxy(fProxyFactoryRegistry,aString,this);
- }
-}
-/* Specialized from IDEBeanTypeProxy to ensure IStringBeanProxies are created correctly
- */
-protected IIDEBeanProxy newBeanProxy(Object anObject){
-
- return (IIDEBeanProxy)createStringBeanProxy( (String)anObject );
-
-}
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEThrowableProxy.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEThrowableProxy.java
deleted file mode 100644
index 5830d1bdf..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEThrowableProxy.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEThrowableProxy.java,v $
- * $Revision: 1.7 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import org.eclipse.jem.internal.proxy.core.*;
-
-public class IDEThrowableProxy extends ThrowableProxy implements IIDEBeanProxy {
-
- /**
- * Comment for serialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = 7162757961175978338L;
- protected IBeanTypeProxy fBeanTypeProxy;
-
- protected IDEThrowableProxy(Throwable exc, IBeanTypeProxy aBeanTypeProxy) {
- super(exc);
- fBeanTypeProxy = aBeanTypeProxy;
- }
-
- public boolean equals(Object obj) {
- if (super.equals(obj))
- return true;
- if (obj instanceof IIDEBeanProxy) {
- return getCause().equals(((IIDEBeanProxy) obj).getBean());
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#sameAs(org.eclipse.jem.internal.proxy.core.IBeanProxy)
- */
- public boolean sameAs(IBeanProxy aBeanProxy) {
- if (this == aBeanProxy)
- return true;
- if (aBeanProxy instanceof IIDEBeanProxy)
- return getCause() == ((IIDEBeanProxy) aBeanProxy).getBean();
- return false;
- }
-
- public String getProxyLocalizedMessage() {
- return getCause().getLocalizedMessage();
- }
- public String getProxyMessage() {
- return getCause().getMessage();
- }
- public void printProxyStackTrace(java.io.PrintWriter writer) {
- getCause().printStackTrace(writer);
- }
- public void printProxyStackTrace(java.io.PrintStream stream) {
- getCause().printStackTrace(stream);
- }
- public void printProxyStackTrace() {
- getCause().printStackTrace();
- }
- public IBeanTypeProxy getTypeProxy() {
- return fBeanTypeProxy;
- }
- public ProxyFactoryRegistry getProxyFactoryRegistry() {
- return fBeanTypeProxy.getProxyFactoryRegistry();
- }
- public String toBeanString() {
- return getCause().toString();
- }
- public boolean isValid() {
- return true;
- }
- /**
- * Return the exception which is the live bean
- */
- public Object getBean() {
- return getCause();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxy#isBeanProxy()
- */
- public final boolean isBeanProxy() {
- return true;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.core.IProxy#isExpressionProxy()
- */
- public final boolean isExpressionProxy() {
- return false;
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEVMServer.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEVMServer.java
deleted file mode 100644
index afc29a468..000000000
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEVMServer.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.ide;
-/*
- * $RCSfile: IDEVMServer.java,v $
- * $Revision: 1.6 $ $Date: 2005/08/24 20:39:06 $
- */
-
-import java.io.OutputStream;
-
-import org.eclipse.jem.internal.proxy.common.*;
-
-public class IDEVMServer implements IVMCallbackServer {
-
- IDECallbackRegistry fCallbackRegistry;
- IDEStandardBeanProxyFactory fBeanProxyFactory;
-
-IDEVMServer(IDECallbackRegistry aCallbackRegistry){
- fCallbackRegistry = aCallbackRegistry;
- fBeanProxyFactory = (IDEStandardBeanProxyFactory)fCallbackRegistry.fProxyFactoryRegistry.getBeanProxyFactory();
-
-}
-public Object doCallback(ICallbackRunnable aRunnable){
- try {
- return aRunnable.run(new ICallbackHandler(){
- public Object callbackWithParms(int callbackID, int msgID, Object[] parms){
- // We are running in the same IDE so just call the registry directly
- // although we must convert the parms to bean proxies
- Object[] proxyParms = null;
- // If we have any parms then convert them to bean proxies
- if ( parms != null ) {
- proxyParms = new Object[parms.length];
- for ( int i=0;itrue
if attach worked or false
if it failed.
-
- // These are more regular commands. They were historically added after the master server thread commands, so
- // they are shown here after them and with numbers greater than them.
- EXPRESSION_TREE_COMMAND = 19, // An expression tree subcommand has come in.
- INVOKE_WITH_METHOD_PASSED = 20, // Invoke where the description of the method is passed in with the command.
- GET_ARRAY_CONTENTS = 21; // Get the first dimension contents as an array of ids and send them back.
-
-
- // Callback commands
- public final static byte
- CALLBACK = (byte) 255, // A callback has come in.
- CALLBACK_DONE = (byte) 254, // A callback done command, sent to the remote vm upon callback completion.
- CALLBACK_STREAM = (byte) 253, // A callback for a byte stream has come in.
- // This is a special callback. When this comes in a special
- // input stream will be created that will take over control of
- // the connection until the stream is terminated on the remote
- // side. At this time the connection will be returned.
- CALLBACK_STREAM_TERMINATE = (byte) 252; // A callback stream is asked to terminate early.
-
- // The error values from the command on the server.
- public final static int
- NO_ERROR = 0, // No error status.
- UNKNOWN_COMMAND_SENT = 1, // An unknown command was sent to the server. Value is void.
- GET_CLASS_NOT_FOUND = 2, // The class was not found in GetClass. Value is void.
- CANNOT_EVALUATE_STRING = 3, // Evaluator couldn't evaluate the init string. Too complicated. Value is a throwable of the wrappered Init string error.
- CLASS_CAST_EXCEPTION = 4, // The result is not assignable to the expected type. Value is void.
- GET_METHOD_NOT_FOUND = 5, // Method requested wasn't found. Value is void.
- THROWABLE_SENT = 6, // A Throwable is being sent back as the error, not as just data for the error. Value is the Throwable.
- CALLBACK_RUNTIME_EXCEPTION = 7, // A runtime exception occurred during a callback. The data is the message.
- CALLBACK_NOT_REGISTERED = 8,
- MAX_ERROR_CODE = CALLBACK_NOT_REGISTERED; // This is just the max code. Not actually sent. Used as a flag.
-
- // Predefined standard id's for standard classes/objects. Both sides will assume these id's have been assigned
- // to these classes/types/objects
- public final static int
- NOT_AN_ID = -1, // This value means it is not an id. It is never a valid id.
- VOID_TYPE = 0,
- BOOLEAN_TYPE = 1,
- BOOLEAN_CLASS = 2,
- INTEGER_TYPE = 3,
- INTEGER_CLASS = 4,
- BYTE_TYPE = 5,
- BYTE_CLASS = 6,
- CHARACTER_TYPE = 7,
- CHARACTER_CLASS = 8,
- DOUBLE_TYPE = 9,
- DOUBLE_CLASS = 10,
- FLOAT_TYPE = 11,
- FLOAT_CLASS = 12,
- SHORT_TYPE = 13,
- SHORT_CLASS = 14,
- LONG_TYPE = 15,
- LONG_CLASS = 16,
- STRING_CLASS = 17,
- BIG_DECIMAL_CLASS = 18,
- BIG_INTEGER_CLASS = 19,
- NUMBER_CLASS = 20,
- THROWABLE_CLASS = 21,
- CLASS_CLASS = 22,
- OBJECT_CLASS = 23,
- ACCESSIBLEOBJECT_CLASS = 24,
- METHOD_CLASS = 25,
- FIELD_CLASS = 26,
- CONSTRUCTOR_CLASS = 27,
- GET_METHOD_ID = 28, // Class.getMethod(...) predefined id.
- IVMSERVER_CLASS = 29, // IVMServer.class
- ICALLBACK_CLASS = 30, // ICallback.class
- REMOTESERVER_ID = 31, // id of RemoteVMServerThread instance.
- REMOTEVMSERVER_CLASS = 32, // RemoteVMServer.class
- INITIALIZECALLBACK_METHOD_ID = 33, // ICallback.initializeCallback method.
- THREAD_CLASS = 34,
- EXPRESSIONPROCESSERCONTROLLER_CLASS = 35,
- FIRST_FREE_ID = 36;
-
- // The type flags written in writeByte format
- public final static byte
- VOID = VOID_TYPE, // null - nothing follows
- BYTE = BYTE_TYPE, // byte - writeByte
- L_BYTE = BYTE_CLASS, // java.lang.Byte - writeByte
- CHAR = CHARACTER_TYPE, // char - writeChar
- L_CHAR = CHARACTER_CLASS, // java.lang.Character - writeChar
- DOUBLE = DOUBLE_TYPE, // double - writeDouble
- L_DOUBLE = DOUBLE_CLASS, // java.lang.Double - writeDouble
- FLOAT = FLOAT_TYPE, // float - writeFloat
- L_FLOAT = FLOAT_CLASS, // java.lang.Float - writeFloat
- INT = INTEGER_TYPE, // int - writeInt
- L_INT = INTEGER_CLASS, // java.lang.Integer - writeInt
- LONG = LONG_TYPE, // long - writeLong
- L_LONG = LONG_CLASS, // java.lang.Long - writeLong
- SHORT = SHORT_TYPE, // short - writeShort
- L_SHORT = SHORT_CLASS, // java.lang.Short - writeShort
- BOOL = BOOLEAN_TYPE, // boolean - writeBoolean
- L_BOOL = BOOLEAN_CLASS, // java.lang.Boolean - writeBoolean
- STRING = STRING_CLASS, // java.lang.String - writeUTF
- OBJECT = OBJECT_CLASS, // Object - special, see below (Object can be used to return an array (except if the array contains any object_ids, that has a special type)
- OBJECT_ID = 50, // Object identity key - writeInt
- NEW_OBJECT_ID = 51, // New Object identity (this is a new object that didn't exist before)
- THROW = 52, // An exception occured. The value is a throwable, it is of the same format as NEW_OBJECT_ID.
- ARRAY_IDS = 53, // An array of values, where there are at least one ID in the array. If there were no
- // ID's (i.e. all just values), then use OBJECT type intead and have it written as
- // writeObject.
- FLAG = 54; // The value is a flag int. If this is allowed on a read, the anInt field will contain the flag value.
-
-
-
- // Unless specified below, the commands are one byte long.
- // Also, unless specified below, the commands do not return a confirmation response.
- //
- // NOTE: VERY IMPORTANT, after every command, flush() should be used so that the
- // the data is immediately sent to the server.
- //
- // n means int (e.g. 1)
- // nb means byte (e.g. 1b)
- // 'x' means Unicode char (i.e. writeChar())
- // "xxx" means UTF8 string (i.e. writeUTF)
- // bool means a one byte boolean value
- //
- // The commas aren't actually written, they are used as separaters in the comments below
- //
- // GET_CLASS: 1b, "classname"
- // Will return on the output stream GET_CLASS_RETURN command:
- // 8b, n1, bool1, bool2, "superclassname"
- // The "n1" is the class id.
- // The bool1 is whether this class is an interface (true if it is).
- // The bool2 is whether this class is abstract (true if it is).
- // The "superclassname" is the class name of the super class (0 length if no superclass)
- // If the class is not found, then it will return an error with a value for the error.
- //
- // GET_CLASS_FROM_ID: 12b, n
- // Where "n" is the class id.
- // Will return on the output stream GET_CLASS_ID_RETURN command:
- // 13b, "classname", bool1, bool2, "superclassname"
- // The bool1 is whether this class is an interface (true if it is).
- // The bool2 is whether this class is abstract (true if it is).
- //
- // VALUE: 2b, tb, value
- // Where tb is the type in byte, and value is the appropriate value shown in
- // table above.
- // OBJECT_ID: 50b, n
- // Where "n" is the object id.
- // NEW_OBJECT_ID: 51b, n1, n2
- // Where "n1" is class ObjectID of the object that the object_id ("n2") is made of.
- // OBJECT: 19b, n, writeObject
- // Where "n" is the classObjectID of the class of the type of the object.
- // NOTE: Object should be used only very rarely. Identity is lost, i.e.
- // a copy is made each time and it can't be referenced back on the remote
- // VM.
- // ARRAY_IDS: 52b, id, n, [tb, value, ...]
- // This is a very special array. It contains at least one ID. Therefor all of the
- // First level entries are value objects.
- // "id" is the id of the component type of the array(e.g. id for Object, or if multi-dimensional String[] (this will produce String[][]).
- // "n" is the number of entries in the array. Followed by the values, one of the
- // values could be an ARRAY_IDS too. The reading/writing of these are special because
- // there is a callback mechanism to process the individual entries. This is so that
- // temp arrays of ValueObjects won't need to be created to handle this, so it can
- // go directly from the array to/from the stream.
- //
- // RELEASE_OBJECT: 7b, n
- // Where the n is the object id to release. There is no confirmation to read back.
- //
- // ERROR: 6b, n, tb, ...
- // n is the error code for this error.
- // tb is a type flag, followed by the value. The value is dependent upon
- // the command that this is error is from. If a THROW, then the THROW is ALWAYS a new
- // ID, it can never be an existing id.
- //
- //
- // TO_BEAN_STRING: 9b, n
- // Where n is the object id to produce the bean string for.
- // It will return a VALUE command where the type is String.
- //
- // NEW_INSTANCE: 10b, n
- // Where n is the class object id of the class to create a new instance of using the default ctor.
- // It will return either a VALUE command containing the new value (of type OBJECT_ID/NEW_OBJECT_ID if not
- // one of the constant types with the true classID in it) or an ERROR command. (The ERROR could
- // be a THROW type). If the object created is not assignable to the type passed in, then
- // an ERROR is returned with CLASS_CAST_EXCEPTION flag.
- //
- // NEW_INIT_STRING: 11b, n, "initstring"
- // Where n is the class object id of the class this initstring is supposed to create for.
- // It will return either a VALUE command containing the new value (of type OBJECT_ID/NEW_OBJECT_ID if not
- // one of the constant types with the true classID in it) or an ERROR command. (The ERROR could
- // be a THROW type). The error could also be CANNOT_EVALUATE_STRING. This means that the string was too
- // complicated for the evaluator and needs to be compiled and tried again. (TBD)
- // If the object created is not assignable to the type passed in, then
- // an ERROR is returned with CLASS_CAST_EXCEPTION flag.
- //
- // GET_OBJECT_DATA: 14b, n
- // Where n is the id of the object being requested. It will return a NEW_OBJECT_ID value with the info.
- //
- // GET_METHOD: 9b, classId, "methodName", n1, [n2]...
- // Where classID is the id of the class the method should be found in.
- // Where n1 is the number of parm types following, and n2 is replicated that many times,
- // each entry is the id of class for the parm type. (0 is valid which means there are no parms).
- // The return will be a VALUE command containing the OBJECT_ID of the method.
- //
- // GET_CTOR: 10b, classId, n1, [n2]...
- // Where classID is the id of the class the method should be found in.
- // Where n1 is the number of parm types following, and n2 is replicated that many times,
- // each entry is the id of class for the parm type. (0 is valid which means there are no parms).
- // The return will be a VALUE command containing the OBJECT_ID of the method.
- //
- // GET_FIELD:
- //
- // GET_CTOR:
- //
- // INVOKE: 15b, n1, tb, value1, value2
- // Where "n1" is the id of the method to invoke.
- // tb, value1 is the value of who to invoke against (it is usually an OBJECT_ID for tb)
- // value2 is an ARRAY_IDS type or an OBJECT array of values if all constants.
- // What is returned is a VALUE command containing the return value, (the value will be null (VOID) if
- // there is no return type (i.e. the method was void). So null can be returned either if the value
- // was null or if the return type was void.
- //
- // EXPRESSION_TREE_COMMAND: 20b, n, b
- // Receiving an expression tree subcommand. Where "n" is a unique id number of the
- // expression being processed. Where "b" is byte code, defined in ExpressionCommands, that
- // determines the type of expression tree commands.
- // There can be more data following, but it is read by the
- // ExpressionProcesserController, not by the connection. See the controller for the subcommands.
- //
- // The id number is the id of the expression being processed. This allows more than one expression
- // to be processed at a time from this connection.
- //
- // @see ExpressionCommands
- // @see ExpressionProcessController
- //
- // INVOKE_WITH_METHOD_PASSED: 20b, classId, "methodName", value0, tb, value1, value2
- // Where classID is the id of the class the method should be found in.
- // value0 is an ARRAY_IDS type for the type of the parms, or null type for no parms.
- // tb, value1 is the value of who to invoke against (it is usually an OBJECT_ID for tb)
- // value2 is an ARRAY_IDS type or an OBJECT array of values if all constants.
- // What is returned is a VALUE command containing the return value, (the value will be null (VOID) if
- // there is no return type (i.e. the method was void). So null can be returned either if the value
- // was null or if the return type was void.
- //
- // GET_ARRAY_CONTENTS: 21b, arrayId
- // Where arrayID is the id of the array to get the contents of. What is returned is a value command
- // containing an array of ids of the first dimension contents.
- //
- // Callback commands:
- //
- // CALLBACK: 255b, n1, n2, value1
- // Where
- // "n1" is the id of callback type (these are registered with the callback server)
- // "n2" is the msgId for the callback (These are entirely callback dependent and are maintained by the callback developer)
- // value1 is an ARRAY_IDS type or an OBJECT array of values if all constants. These are
- // parms to send to the callback msg.
- // It will return a CALLBACK_DONE.
- //
- // CALLBACK_DONE: 254b, value command.
- // What comes back is a value command (i.e. Commands.VALUE followed by value). This allows
- // ERRORS to be sent back too.
- //
- // CALLBACK_STREAM: 253b, n1, n2
- // Where
- // "n1" is the id of callback type (these are registered with the callback server)
- // "n2" is the msgId for the callback (These are entirely callback dependent and are maintained by the callback developer)
- // It will create a CallbackInputStream and notify the registered callback that the
- // stream is available. It will send a callback_done when it has accepted the request
- // but before it notifies the registered callback with the stream. This lets the remote
- // vm know that it can start sending data.
-
-
- // To the MasterServer socket:
- // The MasterServer socket will expect input in DataInputStream format, and DataOutputStream for return.
- // The socket will be short-lived. It will be for one transaction only. Each request will return a new socket.
- //
- // ALIVE: 16b, n1
- // Where
- // "n1" is the id of the registry this is asking to test for aliveness
- // Will return bool, where false if registry is not alive, true if it is alive.
- // REMOTE_STARTED: 17b, n1, n2
- // Where
- // "n1" is the id of the registry this is telling that it is started
- // "n2" is the serversocket port number of the server socket in this remote vm.
- // Will return bool, where false if registry is not alive, true if it is alive. If false, then terminate the server because nothing to talk to.
- // GET_CALLBACK_PORT: 18b, n1
- // Where
- // "n1" is the id of the registry this is asking for the callback server port.
- // Will return int, where the value is the callback server port number. -1 if there is no callback server port.
-
- /**
- * This class is the return from a read value. It contains the
- * type of the value and the value itself. Since primitives can be
- * returned also, there is a slot for each one and the type should
- * be checked to see which one is set.
- *
- * Also, if the type is OBJECT, then the anObject has the object in it, AND
- * the classID field has the object_id of the class of the object so that the
- * appropriate beantypeproxy can be found to use that object. Also, only
- * IREMConstantBeanTypeProxies can be of type OBJECT. That is because those
- * are the only ones that know how to take the value object and interpret it.
- *
- * If the type is OBJECT_ID or NEW_OBJECT_ID, then the objectID field will be set with
- * the id.
- * If the type is NEW_OBJECT_ID, then the classID field will
- * have the class objectID of the class of the object for which object_id proxies.
- *
- * THROW is treated like NEW_OBJECT_ID in what fields are set since it is a new object.
- *
- * Note: so as not to create unnecessary objects, if the Object type of the primitive is being
- * sent, then the primitive field will be set instead, though the type
- * will still be the Object type (i.e. if type = L_BYTE, the aByte will
- * have the value in it).
- *
- * Note: Also flags can be send back. The type will be FLAG and the anInt field will be the
- * flag value. This is used to indicate special things that aren't values. Most useful in
- * arrays where one of the entries is not a value. This can only be used if readValue
- * is passed a flag indicating flags are valid, otherwise it will be treated as not valie.
- */
- public static class ValueObject implements Cloneable {
- public byte type; // Same as the types above
- public byte aByte;
- public char aChar;
- public double aDouble;
- public float aFloat;
- public int anInt;
- public short aShort;
- public long aLong;
- public boolean aBool;
- public int objectID; // The object id for either OBJECT_ID or NEW_OBJECT_ID.
- public int classID; // The class object id of the value in Object if the type is Object
- public Object anObject; // String also will be in here
-
- public ValueObject() {
- type = VOID;
- }
-
- public Object clone() {
- try {
- return super.clone();
- } catch (CloneNotSupportedException e) {
- return null;
- }
- }
-
- /**
- * Return whether the value stored here is a primitive.
- *
- * @return true
if value is a primitive type.
- *
- * @since 1.0.0
- */
- public boolean isPrimitive() {
- return getPrimitiveType().isPrimitive();
- }
-
- /**
- * Get the primitive type of the value.
- * @return The primitive type, or if not primitive, it returns simply Object.class
.
- *
- * @since 1.0.0
- */
- public Class getPrimitiveType() {
- switch (type) {
- case BYTE:
- return Byte.TYPE;
- case CHAR:
- return Character.TYPE;
- case DOUBLE:
- return Double.TYPE;
- case FLOAT:
- return Float.TYPE;
- case INT:
- return Integer.TYPE;
- case SHORT:
- return Short.TYPE;
- case LONG:
- return Long.TYPE;
- case BOOL:
- return Boolean.TYPE;
- default:
- return Object.class;
- }
-
- }
-
- /**
- * Get the type as one of the valid Commands.Types. VOID, BYTE, L_BYTE, etc.
- * @return
- *
- * @since 1.1.0
- */
- public int getType() {
- return type;
- }
-
- /**
- * Special getter to get the type as an Object, this is used by invoke for example.
- */
- public Object getAsObject() {
- switch (type) {
- case VOID:
- return null;
- case BYTE:
- case L_BYTE:
- return new Byte(aByte);
- case CHAR:
- case L_CHAR:
- return new Character(aChar);
- case DOUBLE:
- case L_DOUBLE:
- return new Double(aDouble);
- case FLOAT:
- case L_FLOAT:
- return new Float(aFloat);
- case INT:
- case L_INT:
- return new Integer(anInt);
- case SHORT:
- case L_SHORT:
- return new Short(aShort);
- case LONG:
- case L_LONG:
- return new Long(aLong);
- case BOOL:
- case L_BOOL:
- return aBool ? Boolean.TRUE : Boolean.FALSE;
- case STRING:
- return anObject;
- case OBJECT:
- return anObject;
-
- default:
- return null; // Can't handle others. Those need to be checked before calling.
- }
- }
-
- /**
- * Special setter to set the value depending upon the type.
- */
- public void setAsObject(Object value, int valueClassID) {
- switch (valueClassID) {
- case VOID:
- set();
- break;
- case BYTE_CLASS:
- set((Byte) value);
- break;
- case CHARACTER_CLASS:
- set((Character) value);
- break;
- case DOUBLE_CLASS:
- set((Double) value);
- break;
- case FLOAT_CLASS:
- set((Float) value);
- break;
- case INTEGER_CLASS:
- set((Integer) value);
- break;
- case SHORT_CLASS:
- set((Short) value);
- break;
- case LONG_CLASS:
- set((Long) value);
- break;
- case BOOLEAN_CLASS:
- set((Boolean) value);
- break;
- case STRING_CLASS:
- set((String) value);
- break;
- default:
- set(value, valueClassID);
- break;
- }
- }
-
- public void set() {
- type = VOID;
- anObject = null;
- }
-
- public void setFlag(int flag) {
- type = FLAG;
- anInt = flag;
- }
-
- public void set(byte value) {
- type = BYTE;
- aByte = value;
- anObject = null;
- }
- public void set(Byte value) {
- if (value != null) {
- type = L_BYTE;
- aByte = value.byteValue();
- anObject = null;
- } else
- set();
- }
- public void set(char value) {
- type = CHAR;
- aChar = value;
- anObject = null;
- }
- public void set(Character value) {
- if (value != null) {
- type = L_CHAR;
- aChar = value.charValue();
- anObject = null;
- } else
- set();
- }
- public void set(double value) {
- type = DOUBLE;
- aDouble = value;
- anObject = null;
- }
- public void set(Double value) {
- if (value != null) {
- type = L_DOUBLE;
- aDouble = value.doubleValue();
- anObject = null;
- } else
- set();
- }
- public void set(float value) {
- type = FLOAT;
- aFloat = value;
- anObject = null;
- }
- public void set(Float value) {
- if (value != null) {
- type = L_FLOAT;
- aFloat = value.floatValue();
- anObject = null;
- } else
- set();
- }
- public void set(int value) {
- type = INT;
- anInt = value;
- anObject = null;
- }
- public void set(Integer value) {
- if (value != null) {
- type = L_INT;
- anInt = value.intValue();
- anObject = null;
- } else
- set();
- }
- public void set(short value) {
- type = SHORT;
- aShort = value;
- anObject = null;
- }
- public void set(Short value) {
- if (value != null) {
- type = L_SHORT;
- aShort = value.shortValue();
- anObject = null;
- } else
- set();
- }
- public void set(long value) {
- type = LONG;
- aLong = value;
- anObject = null;
- }
- public void set(Long value) {
- type = L_LONG;
- aLong = value.longValue();
- anObject = null;
- }
- public void set(boolean value) {
- type = BOOL;
- aBool = value;
- anObject = null;
- }
- public void set(Boolean value) {
- if (value != null) {
- type = L_BOOL;
- aBool = value.booleanValue();
- anObject = null;
- } else
- set();
- }
- public void set(String value) {
- if (value != null) {
- type = STRING;
- anObject = value;
- } else
- set();
- }
- public void set(Object value, int classObjectID) {
- if (value != null) {
- type = OBJECT;
- classID = classObjectID;
- anObject = value;
- } else
- set();
- }
- public void setObjectID(int value) {
- type = OBJECT_ID;
- objectID = value;
- anObject = null;
- }
-
- // Use this if the object is an array containing IDs. The retriever
- // will be used to get the next value to write to the stream.
- public void setArrayIDS(ValueRetrieve retriever, int arraySize, int componentType) {
- type = ARRAY_IDS;
- classID = componentType;
- anInt = arraySize;
- anObject = retriever;
- }
-
-
- // Use this if this is a new object so that we can get the correct class type.
- public void setObjectID(int value, int classObjectID) {
- type = NEW_OBJECT_ID;
- objectID = value;
- classID = classObjectID;
- anObject = null;
- }
-
- // Use this to indicate an exception occured.
- public void setException(int throwID, int throwClassID) {
- type = THROW;
- objectID = throwID;
- classID = throwClassID;
- anObject = null;
- }
- }
-
- /************************
- * Helpful commands.
- * - If a command throws any exception except CommandErrorException, or
- * UnexpectedCommandException with recoverable true, then the connection is in a bad state
- * and needs to be closed.
- ************************/
-
- /**
- * Use this to read a value (inputstream should be pointing to the type byte as the next byte to read).
- * The primitive fields of "value" will not be changed if they are not the
- * type of the value being read. However, anObject will be set to null.
- */
-
- /**
- * Error flags for UnexpectedCommandExceptions that can be thrown.
- */
- public static final Object UNKNOWN_READ_TYPE = "UNKNOWN_READ_TYPE"; // The read type byte was not a valid type //$NON-NLS-1$
- public static final Object UNKNOWN_WRITE_TYPE = "UNKNOWN_WRITE_TYPE"; // The write type byte was not a valid type //$NON-NLS-1$
- public static final Object TYPE_INVALID_FOR_COMMAND = "TYPE_INVALID_FOR_COMMAND"; // The data type read is not valid for this command //$NON-NLS-1$
- public static final Object UNKNOWN_COMMAND = "UNKNOWN_COMMAND"; // The command flag is unknown //$NON-NLS-1$
- public static final Object SOME_UNEXPECTED_EXCEPTION = "SOME_UNEXPECTED_EXCEPTION"; // There was some kind of exception that wasn't expected. The data will be the exception. //$NON-NLS-1$
- public static final Object TOO_MANY_BYTES = "TOO_MANY_BYTES"; // Too many bytes were sent on a writeBytes. It was //$NON-NLS-1$
- // more than could be read into the buffer. The data will be the size sent.
-
- /**
- * Read a value from the stream into the value object. It will not allow values of type FLAG.
- *
- * @param is
- * @param value
- * @param allowFlag
- * @return the value object sent in. This allows value = Commands.readValue(is, new Commands.ValueObject());
- * @throws CommandException
- *
- *
- * @since 1.0.0
- */
- public static ValueObject readValue(DataInputStream is, ValueObject value) throws CommandException {
- readValue(is, value, false);
- return value;
- }
-
- /**
- * Read a value from the stream into the value object. It will allow values of type FLAG if allowFlag is true.
- * @param is
- * @param value
- * @param allowFlag true
if values of type flag are allow.
- * @throws CommandException
- *
- * @since 1.1.0
- */
- public static void readValue(DataInputStream is, ValueObject value, boolean allowFlag) throws CommandException {
- try {
- value.anObject = null;
- value.type = is.readByte();
- switch (value.type) {
- case BYTE:
- case L_BYTE:
- value.aByte = is.readByte();
- break;
- case CHAR:
- case L_CHAR:
- value.aChar = is.readChar();
- break;
- case DOUBLE:
- case L_DOUBLE:
- value.aDouble = is.readDouble();
- break;
- case FLOAT:
- case L_FLOAT:
- value.aFloat = is.readFloat();
- break;
- case INT:
- case L_INT:
- value.anInt = is.readInt();
- break;
- case OBJECT_ID:
- value.objectID = is.readInt();
- break;
- case NEW_OBJECT_ID:
- value.classID = is.readInt();
- value.objectID = is.readInt();
- break;
- case THROW:
- value.classID = is.readInt();
- value.objectID = is.readInt();
- break;
- case SHORT:
- case L_SHORT:
- value.aShort = is.readShort();
- break;
- case LONG:
- case L_LONG:
- value.aLong = is.readLong();
- break;
- case BOOL:
- case L_BOOL:
- value.aBool = is.readBoolean();
- break;
- case STRING:
- value.anObject = readStringData(is);
- break;
- case OBJECT:
- value.classID = is.readInt(); // Read the class id
- ObjectInputStream oi = new ObjectInputStream(is);
- value.anObject = oi.readObject(); // Read the object itself
- oi = null; // Don't close it, that would close the stream itself.
- break;
- case ARRAY_IDS:
- // The header for an array of ids.
- value.classID = is.readInt(); // The component type of the array
- value.anInt = is.readInt(); // The size of the array.
- // At this point, it is the responsibility of the caller to use readArray to read in the array.
- break;
- case VOID:
- break;
- case FLAG:
- if (allowFlag) {
- value.anInt = is.readInt();
- break;
- }
- // Flags not allowed, so drop into default.
- default:
- throw new UnexpectedCommandException(UNKNOWN_READ_TYPE, false, new Byte(value.type));
- }
- } catch (CommandException e) {
- // rethrow this exception since we want these to go on out.
- throw e;
- } catch (Exception e) {
- // Wrapper this one.
- throw new UnexpectedExceptionCommandException(false, e);
- }
- }
-
- /**
- * Special interface used to read back arrays. It will be called when
- */
- public static interface ValueSender {
- /**
- * This is called for each entry from the array. It is assumed that the ValueSender has
- * the array that is being built.
- * @param value
- *
- * @since 1.1.0
- */
- public void sendValue(ValueObject value);
-
- /**
- * This is called when an ARRAY_IDS is found within the reading of the array (i.e. nested arrays)
- * It is asking for a new ValueSender to use while this nested array. The arrayValue contains
- * the valueobject for the array header (i.e. the class id of the array and the number of elements).
- * It is the responsibility of the ValueSender to store this array in the array that is being built.
- * @param arrayValue
- * @return
- *
- * @since 1.1.0
- */
- public ValueSender nestedArray(ValueObject arrayValue);
-
- /**
- * Called to initialize the sender with the given array header. This is not always called, each usage
- * knows whether it can be called or not. For example the implementation of nestedArray may not need to call initialize.
- * @param arrayHeader
- *
- * @since 1.1.0
- */
- public void initialize(ValueObject arrayHeader);
-
- }
-
- /*
- * NOTE: It is important that on the IDE side that this is called within a transaction.
- * If not, there could be some corruption if proxy cleanup occurs in the middle.
- */
- public static void readArray(DataInputStream is, int arraySize, ValueSender valueSender, ValueObject value, boolean allowFlag) throws CommandException {
- // Anything exception other than a CommandException, we will try to flush the input so that
- // it can continue with the next command and not close the connection.
- RuntimeException exception = null;
- for (int i=0; ireadStringData
to read such data in.
- * @param os
- * @param string
- * @throws IOException
- *
- * @since 1.0.0
- */
- public static void sendStringData(DataOutputStream os, String string) throws IOException {
- // UTF-8 can take up to three bytes for each char. To be on safe side we will
- // not send a string larger than 65K/3 as one chunk.
- if (string.length() <= CHUNK_SIZE) {
- // Less than the limit, send byte to indicate not chunked.
- os.writeByte(STRING_NOT_CHUNKED);
- os.writeUTF(string);
- } else {
- // Over limit, need to chunk it.
- // send byte to indicate chunked, then send true length so that other side knows how big to create.
- os.writeByte(STRING_CHUNKED);
- os.writeInt(string.length());
- // Now send first chunk
- for(int i=0; inull
, then this is the list of expression proxy ids that need to be returned as rendered.
- * @param sender sender used to process the resolved proxy ids, or null
if no proxy ids.
- * @throws CommandException
- *
- * @since 1.0.0
- */
- public static void sendPullValueCommand(int expressionID, DataOutputStream os, DataInputStream is, Commands.ValueObject proxyids, Commands.ValueSender sender) throws CommandException {
- try {
- os.writeByte(Commands.EXPRESSION_TREE_COMMAND);
- os.writeInt(expressionID);
- os.writeByte(PULL_VALUE_REQUEST);
- sendProxyIDs(os, proxyids);
- os.flush();
- if (proxyids != null) {
- Commands.readBackValue(is, proxyids, Commands.ARRAY_IDS); // Read the array header.
- sender.initialize(proxyids);
- Commands.readArray(is, proxyids.anInt, sender, proxyids, true); // Read the array.
- }
- } catch (CommandException e) {
- // rethrow this exception since we want these to go on out.
- throw e;
- } catch (IOException e) {
- // Wrapper this one.
- throw new UnexpectedExceptionCommandException(false, e);
- }
- }
-
- /**
- * Send a sync command. This does a synchronize with the remote expression processor. It makes sure that the
- * stream is caught and doesn't return until everything on the stream has been processed. Should then call
- * getFinalValue() to verify the expression is valid.
- * @param expressionID
- * @param os
- * @param is
- * @param proxyids if not null
, then this is the list of expression proxy ids that need to be returned as rendered.
- * @param sender the sender used for reading back the proxyid resolutions, or null
if no proxy ids.
- *
- * @throws CommandException
- *
- * @since 1.0.0
- */
- public static void sendSyncCommand(int expressionID, DataOutputStream os, DataInputStream is, Commands.ValueObject proxyids, Commands.ValueSender sender) throws CommandException {
- try {
- os.writeByte(Commands.EXPRESSION_TREE_COMMAND);
- os.writeInt(expressionID);
- os.writeByte(SYNC_REQUEST);
- sendProxyIDs(os, proxyids);
- os.flush();
- if (proxyids != null) {
- Commands.readBackValue(is, proxyids, Commands.ARRAY_IDS); // Read the array header.
- sender.initialize(proxyids);
- Commands.readArray(is, proxyids.anInt, sender, proxyids, true); // Read the array.
- }
- } catch (CommandException e) {
- // rethrow this exception since we want these to go on out.
- throw e;
- } catch (Exception e) {
- // Wrapper this one.
- throw new UnexpectedExceptionCommandException(false, e);
- }
- }
-
- /**
- * Send the proxyids (if not null) as part of a command. Used by sync and pullValue.
- * @param os
- * @param proxyids null
if not requesting proxy ids.
- * @throws IOException
- * @throws CommandException
- *
- * @since 1.1.0
- */
- private static void sendProxyIDs(DataOutputStream os, Commands.ValueObject proxyids) throws IOException, CommandException {
- if (proxyids != null) {
- os.writeBoolean(true); // Indicates proxy ids being sent.
- Commands.writeValue(os, proxyids, false, false);
- } else
- os.writeBoolean(false); // No proxyids being sent.
- }
-
- /**
- * Send the transfer expression command and receive back the expression processor controller.
- *
- * @param expressionID
- * @param os
- * @param is
- * @param expressionProcesserController
- * @throws CommandException
- *
- * @since 1.1.0
- */
- public static void sendTransferExpressionCommand(int expressionID, DataOutputStream os, DataInputStream is, Commands.ValueObject expressionProcesserController) throws CommandException {
- try {
- os.writeByte(Commands.EXPRESSION_TREE_COMMAND);
- os.writeInt(expressionID);
- os.writeByte(TRANSFER_EXPRESSION_REQUEST);
- os.flush();
- Commands.readBackValue(is, expressionProcesserController, Commands.NO_TYPE_CHECK); // Read the expression processor controller
- } catch (CommandException e) {
- throw e;
- } catch (Exception e) {
- // Wrapper this one.
- throw new UnexpectedExceptionCommandException(false, e);
- }
- }
-
- /**
- * Send the resume expression command with given expression processor controller.
- *
- * @param expressionID
- * @param os
- * @param expressionProcessorController
- * @throws CommandException
- *
- * @since 1.1.0
- */
- public static void sendResumeExpressionCommand(int expressionID, DataOutputStream os, Commands.ValueObject expressionProcessorController) throws CommandException {
- try {
- os.writeByte(Commands.EXPRESSION_TREE_COMMAND);
- os.writeInt(expressionID);
- os.writeByte(RESUME_EXPRESSION_REQUEST);
- Commands.writeValue(os, expressionProcessorController, false, false);
- } catch (CommandException e) {
- throw e;
- } catch (Exception e) {
- // Wrapper this one.
- throw new UnexpectedExceptionCommandException(false, e);
- }
- }
-
- private ExpressionCommands() {
- // Never intended to be instantiated.
- }
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/IOCommandException.java b/plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/IOCommandException.java
deleted file mode 100644
index 947dceffc..000000000
--- a/plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/IOCommandException.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.common.remote;
-/*
- * $RCSfile: IOCommandException.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:08 $
- */
-
-import java.io.IOException;
-import org.eclipse.jem.internal.proxy.common.CommandException;
-
-/**
- * A command exception occured while processing an io request
- * in a callback stream. This exception wrappers the command exception.
- */
-
-public class IOCommandException extends IOException {
- /**
- * Comment for serialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = -2308947195164382779L;
- protected CommandException fException;
-
- public IOCommandException(CommandException e) {
- fException = e;
- }
-
- public CommandException getException() {
- return fException;
- }
-
- public String getMessage() {
- return fException.getMessage();
- }
-
- public void printStackTrace() {
- fException.printStackTrace();
- }
-
- public void printStackTrace(java.io.PrintStream p) {
- fException.printStackTrace(p);
- }
-
- public void printStackTrace(java.io.PrintWriter p) {
- fException.printStackTrace(p);
- }
-
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/TransmitableArray.java b/plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/TransmitableArray.java
deleted file mode 100644
index 60b078f86..000000000
--- a/plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/TransmitableArray.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.common.remote;
-/*
- * $RCSfile: TransmitableArray.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:08 $
- */
-
-
-/**
- * A value can be a TransmitableArray. This means this value is an array that
- * needs to have a ValueRetriever created for it. This is used if the array has ID's in
- * it and is not an existing array on the server or all constant values.
- *
- * NOTE: It is assumed that all IBeanTypeProxies of the parms have already been retrieved.
- * It should still work, but it could be asking for them in the middle of the request
- * if they are not first gotton. And this could throw a non-recoverable exception if not found.
- */
-public final class TransmitableArray {
- public int componentTypeID; // The id of the type of the component type of the array.
- public Object[] array; // The array it self.
- public TransmitableArray(int typeID, Object[] anArray) {
- componentTypeID = typeID;
- array = anArray;
- }
-}
-
-
diff --git a/plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/UnexpectedCommandException.java b/plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/UnexpectedCommandException.java
deleted file mode 100644
index d9e137a99..000000000
--- a/plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/UnexpectedCommandException.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.common.remote;
-/*
- * $RCSfile: UnexpectedCommandException.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:08 $
- */
-
-import org.eclipse.jem.internal.proxy.common.CommandException;
-/**
- * This is an exception that is thrown when the processing
- * of data was invalid for the command.
- * There will be a flag indicting error type, and a flag
- * indicating whether the connection is recoverable or not.
- * If not recoverable, then the connection needs to be closed.
- *
- */
-public class UnexpectedCommandException extends CommandException {
- /**
- * Comment for serialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = 7097693384453243113L;
- private final Object fErrorType;
- private final boolean fRecoverable;
-
- public UnexpectedCommandException(Object errorType, boolean recoverable) {
- fErrorType = errorType;
- fRecoverable = recoverable;
- }
-
- public UnexpectedCommandException(Object errorType, boolean recoverable, Object data) {
- super(data);
- fErrorType = errorType;
- fRecoverable = recoverable;
- }
-
- public UnexpectedCommandException(Object errorType, boolean recoverable, String msg, Object data) {
- super(msg, data);
- fErrorType = errorType;
- fRecoverable = recoverable;
- }
-
- public Object getErrorType() {
- return fErrorType;
- }
-
- public boolean isRecoverable() {
- return fRecoverable;
- }
-
- public String getMessage() {
- String m = super.getMessage();
- if (fErrorType != null) {
- String dataMsg = getExceptionData() != null ? " Errordata="+getExceptionData().toString() : ""; //$NON-NLS-1$ //$NON-NLS-2$
- if (m == null)
- return "Errortype="+fErrorType.toString() + dataMsg; //$NON-NLS-1$
- else
- return m + ':' + "Errortype="+fErrorType.toString() + dataMsg; //$NON-NLS-1$
- } else
- return m;
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/UnexpectedExceptionCommandException.java b/plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/UnexpectedExceptionCommandException.java
deleted file mode 100644
index 8467fee31..000000000
--- a/plugins/org.eclipse.jem.proxy/remoteCommon/org/eclipse/jem/internal/proxy/common/remote/UnexpectedExceptionCommandException.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.common.remote;
-/*
- * $RCSfile: UnexpectedExceptionCommandException.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 20:39:08 $
- */
-
-/**
- * Wrapper an unexpected exception in a Command Exception.
- */
-public class UnexpectedExceptionCommandException extends UnexpectedCommandException {
-
- /**
- * Comment for serialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = -1654134370115650969L;
-
- public UnexpectedExceptionCommandException(boolean recoverable, Throwable data) {
- super(Commands.SOME_UNEXPECTED_EXCEPTION, recoverable, data);
- }
-
- public UnexpectedExceptionCommandException(boolean recoverable, String msg, Throwable data) {
- super(Commands.SOME_UNEXPECTED_EXCEPTION, recoverable, msg, data);
- }
-
- public Throwable getException() {
- return (Throwable) getExceptionData();
- }
-
- public String getMessage() {
- String localMsg = super.getMessage();
- if (getException() != null)
- if (localMsg == null || localMsg.length() == 0)
- return getException().getLocalizedMessage();
- else
- return localMsg + ": " + getException().getLocalizedMessage(); //$NON-NLS-1$
- return
- localMsg;
- }
-
- public void printExceptionStackTrace() {
- getException().printStackTrace();
- }
-
- public void printStackTrace() {
- printExceptionStackTrace();
- }
-
- public void printStackTrace(java.io.PrintStream p) {
- getException().printStackTrace(p);
- }
-
- public void printStackTrace(java.io.PrintWriter p) {
- getException().printStackTrace(p);
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/schema/contributors.exsd b/plugins/org.eclipse.jem.proxy/schema/contributors.exsd
deleted file mode 100644
index 672a5520a..000000000
--- a/plugins/org.eclipse.jem.proxy/schema/contributors.exsd
+++ /dev/null
@@ -1,149 +0,0 @@
-
-
-close
- * is that it closes the output stream. A closed stream cannot perform
- * output operations and cannot be reopened.
- * null
, then
- * Class.forName
will be used.
- *
- * @param classLoader
- *
- * @since 1.0.0
- */
- public void setClassLoader(ClassLoader classLoader) {
- this.classLoader = classLoader;
- }
-
- /*
- * Array of primitive type names. Used to look up primtive types in primitive types array.
- *
- * @since 1.0.0
- */
- private static final List PRIMITIVE_NAMES = Arrays.asList(new String[] {"byte", "char", "short", "int", "long", "float", "double"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
- private static final Class[] PRIMITIVE_TYPES = new Class[] {Byte.TYPE, Character.TYPE, Short.TYPE, Integer.TYPE, Long.TYPE, Float.TYPE, Double.TYPE};
- /**
- * Load the class given the name. If not found, return null.
- *
- * @param className
- * @return
- *
- * @since 1.0.0
- */
- protected Class loadClass(String className) throws ClassNotFoundException {
- if (className == null)
- return null;
- else if (className.endsWith("[]")) { //$NON-NLS-1$
- // We have an array request instead. This is trickier.
- return loadClass(MapTypes.getJNIFormatName(className));
- } else {
- int primIndex = PRIMITIVE_NAMES.indexOf(className);
- if (primIndex >= 0)
- return PRIMITIVE_TYPES[primIndex];
- else if (classLoader == null) {
- return Class.forName(className);
- } else {
- return classLoader.loadClass(className);
- }
- }
- }
-
- /**
- * Now process the input stream. If either throws occurs, this is a hard error and we must terminate
- * the entire connection. The input stream is in an unknown state.
- *
- * @param in The input stream to get the data for the current sub-command.
- *
- * @throws CommandException
- * @throws IOException
- * @since 1.0.0
- */
- public void process(DataInputStream in) throws CommandException, IOException {
- // In the following subcommand processing, we always read the entire subcommand from the stream.
- // This is so that any errors during processing will not mess up the stream with unread data.
- //
- // Then we check if an error has occurred in the past. If it has, we simply break. This is because
- // once an error occurred we don't want to continue wasting time evaluating, however we need to make
- // sure that the stream is read completely so that we don't have a corrupted input stream. That way
- // when all is done we can return the error and still have a valid connection socket.
- byte subcommand = in.readByte();
- try {
- switch (subcommand) {
- case InternalExpressionTypes.PUSH_TO_PROXY_EXPRESSION_VALUE:
- // Getting a proxy push. The value is sent as valueObject, so use that to read it in.
- Commands.readValue(in, workerValue);
- Object value = connHandler.getInvokableObject(workerValue);
- if (value == null)
- exp.pushExpression(null, MethodHelper.NULL_TYPE);
- else if (workerValue.isPrimitive())
- exp.pushExpression(value, workerValue.getPrimitiveType());
- else
- exp.pushExpression(value, value.getClass());
- break;
-
- case InternalExpressionTypes.CAST_EXPRESSION_VALUE:
- // Get a cast request. The type is sent as valueObject.
- Commands.readValue(in, workerValue);
- try {
- Class classValue = getBeanTypeValue(workerValue);
- exp.pushCast(classValue);
- } catch (FailedProxyException e) {
- exp.processException(e.getCause()); // Let the processor know we have a stopping error.
- }
- break;
-
- case InternalExpressionTypes.INSTANCEOF_EXPRESSION_VALUE:
- // Get a instanceof request. The type is sent as valueObject.
- Commands.readValue(in, workerValue);
- try {
- Class classValue = getBeanTypeValue(workerValue);
- exp.pushInstanceof(classValue);
- } catch (FailedProxyException e) {
- exp.processException(e.getCause()); // Let the processor know we have a stopping error.
- }
- break;
-
- case InternalExpressionTypes.INFIX_EXPRESSION_VALUE:
- // Get an infix request. The operator and operand type are sent as bytes.
- byte infix_operator = in.readByte();
- byte infix_operandType = in.readByte();
- exp.pushInfix(InfixOperator.get(infix_operator), InternalInfixOperandType.get(infix_operandType));
- break;
-
- case InternalExpressionTypes.PREFIX_EXPRESSION_VALUE:
- // Get a prefix request. The operator is sent as byte.
- byte prefix_operandType = in.readByte();
- exp.pushPrefix(PrefixOperator.get(prefix_operandType));
- break;
-
- case InternalExpressionTypes.ARRAY_ACCESS_EXPRESSION_VALUE:
- // Get an array access request. The index cound is sent as int.
- int arrayAccess_Indexcount = in.readInt();
- exp.pushArrayAccess(arrayAccess_Indexcount);
- break;
-
- case InternalExpressionTypes.ARRAY_CREATION_EXPRESSION_VALUE:
- // Get an array creation request. The type is sent as valueObject, followed by int dimension count.
- Commands.readValue(in, workerValue);
- int arrayCreation_dimCount = in.readInt();
- try {
- Class classValue = getBeanTypeValue(workerValue);
- exp.pushArrayCreation(classValue, arrayCreation_dimCount);
- } catch (FailedProxyException e) {
- exp.processException(e.getCause()); // Let the processor know we have a stopping error.
- }
- break;
-
- case InternalExpressionTypes.ARRAY_INITIALIZER_EXPRESSION_VALUE:
- // Get an array initializer request. The type is sent as valueObject, followed by int expression count.
- Commands.readValue(in, workerValue);
- int stripCount = in.readInt();
- int arrayInitializer_expressionCount = in.readInt();
- try {
- Class classValue = getBeanTypeValue(workerValue);
- exp.pushArrayInitializer(classValue, stripCount, arrayInitializer_expressionCount);
- } catch (FailedProxyException e) {
- exp.processException(e.getCause()); // Let the processor know we have a stopping error.
- }
- break;
-
- case InternalExpressionTypes.CLASS_INSTANCE_CREATION_EXPRESSION_VALUE:
- // Get a class instance creation request. The type is sent as valueObject, followed by int argument count.
- Commands.readValue(in, workerValue);
- int newInstance_argCount = in.readInt();
- try {
- Class classValue = getBeanTypeValue(workerValue);
- exp.pushClassInstanceCreation(classValue, newInstance_argCount);
- } catch (FailedProxyException e) {
- exp.processException(e.getCause()); // Let the processor know we have a stopping error.
- }
- break;
-
- case InternalExpressionTypes.TYPERECEIVER_EXPRESSION_VALUE:
- // Get a type receiver request. The type is sent as valueObject.
- Commands.readValue(in, workerValue);
- try {
- Class classValue = getBeanTypeValue(workerValue);
- exp.pushExpression(classValue, classValue);
- } catch (FailedProxyException e) {
- exp.processException(e.getCause()); // Let the processor know we have a stopping error.
- }
- break;
-
- case InternalExpressionTypes.FIELD_ACCESS_EXPRESSION_VALUE:
- // Get a field access request. Command.ValueObject, followed by hasReceiver as boolean.
- Commands.readValue(in, workerValue);
- boolean has_fieldAccess_receiver = in.readBoolean();
- try {
- Object fieldAccess = getFieldValue(workerValue);
- exp.pushFieldAccess(fieldAccess, workerValue.getType() == Commands.STRING, has_fieldAccess_receiver);
- } catch (ClassCastException e) {
- exp.processException(e); // Let the processor know we have a stopping error.
- } catch (FailedProxyException e) {
- exp.processException(e.getCause()); // Let the processor know we have a stopping error.
- }
- break;
-
- case InternalExpressionTypes.METHOD_EXPRESSION_VALUE:
- // Get a method invocation request. Sent as Commands.ValueObject, followed by hasReceiver as boolean., and argCount as int.
- Commands.readValue(in, workerValue);
- boolean has_method_receiver = in.readBoolean();
- int method_argCount = in.readInt();
- try {
- Object method = getMethodValue(workerValue);
- exp.pushMethodInvocation(method, workerValue.getType() == Commands.STRING, has_method_receiver, method_argCount);
- } catch (FailedProxyException e) {
- exp.processException(e.getCause()); // Let the processor know we have a stopping error.
- }
- break;
-
- case InternalExpressionTypes.CONDITIONAL_EXPRESSION_VALUE:
- // Get a conditional expression request. The expression type (ie. condition/true/false) is sent as a byte
- exp.pushConditional(InternalConditionalOperandType.get(in.readByte()));
- break;
-
- case InternalExpressionTypes.ASSIGNMENT_PROXY_EXPRESSION_VALUE:
- // Get an assignment expression request. The proxy id is sent as an int.
- int proxyid = in.readInt();
- exp.pushAssignment(new RemoteExpressionProxy(proxyid));
- break;
-
- case InternalExpressionTypes.ASSIGNMENT_EXPRESSION_VALUE:
- // Get an assignment expression request. Nothing else to read from stream.
- exp.pushAssignment();
- break;
-
- case InternalExpressionTypes.PUSH_TO_EXPRESSION_PROXY_EXPRESSION_VALUE:
- // Get a push expression proxy expression. The proxy id is sent as an int.
- // First test if a possible FailedExpressionProxy because we could of been pushing
- // a failed reflection proxy.
- proxyid = in.readInt();
- try {
- exp.getExpressionProxy(proxyid, new Object[] {null, null});
- } catch (NoExpressionValueException e1) {
- if (e1.getProxy() != null) {
- FailedRemoteExpressionProxy failure = (FailedRemoteExpressionProxy) e1.getProxy();
- exp.processException((Throwable) failure.getValue());
- break; // Don't go on, we processed it. A standard no expression value should be passed on and let following code handle it.
- }
- }
- exp.pushExpressionProxy(proxyid);
- break;
-
- case InternalExpressionTypes.BLOCK_BEGIN_EXPRESSION_VALUE:
- // Get a begin block proxy expression. The block id is sent as an int.
- exp.pushBlockBegin(in.readInt());
- break;
-
- case InternalExpressionTypes.BLOCK_BREAK_EXPRESSION_VALUE:
- // Get a break block proxy expression. The block id is sent as an int.
- exp.pushBlockBreak(in.readInt());
- break;
-
- case InternalExpressionTypes.BLOCK_END_EXPRESSION_VALUE:
- // Get a end block proxy expression. The block id is sent as an int.
- exp.pushBlockEnd(in.readInt());
- break;
-
- case InternalExpressionTypes.TRY_BEGIN_EXPRESSION_VALUE:
- // Get a try begin proxy expression. The try id is sent as an int.
- exp.pushTryBegin(in.readInt());
- break;
-
- case InternalExpressionTypes.TRY_CATCH_EXPRESSION_VALUE:
- int tryNumber = in.readInt();
- Commands.readValue(in, workerValue);
- proxyid = in.readInt();
- try {
- Class classValue = getBeanTypeValue(workerValue);
- exp.pushTryCatchClause(tryNumber, classValue, proxyid != -1 ? new RemoteExpressionProxy(proxyid) : null);
- } catch (FailedProxyException e) {
- exp.processException(e.getCause()); // Let the processor know we have a stopping error.
- }
- break;
-
- case InternalExpressionTypes.TRY_FINALLY_EXPRESSION_VALUE:
- // Get a try finally proxy expression. The try id is sent as an int.
- exp.pushTryFinallyClause(in.readInt());
- break;
-
- case InternalExpressionTypes.TRY_END_EXPRESSION_VALUE:
- // Get a try end proxy expression. The try id is sent as an int.
- exp.pushTryEnd(in.readInt());
- break;
-
- case InternalExpressionTypes.THROW_EXPRESSION_VALUE:
- exp.pushThrowException();
- break;
-
- case InternalExpressionTypes.RETHROW_EXPRESSION_VALUE:
- // Get a rethrow proxy expression. The try id is sent as an int.
- exp.pushTryRethrow(in.readInt());
- break;
-
- case InternalExpressionTypes.PUSH_BEANTYPE_EXPRESSIONPROXY_EXPRESSION_VALUE:
- // Get the beantype expression proxy and resolve it.
- proxyid = in.readInt();
- String typeName = Commands.readStringData(in);
- try {
- Class classValue = loadClass(typeName);
- RemoteExpressionProxy rep = new RemoteExpressionProxy(proxyid);
- rep.setProxy(classValue, Class.class);
- exp.allocateExpressionProxy(rep);
- } catch (ClassNotFoundException e) {
- FailedRemoteExpressionProxy rep = new FailedRemoteExpressionProxy(proxyid);
- rep.setProxy(e, e.getClass());
- exp.allocateExpressionProxy(rep);
- } catch (LinkageError e) {
- FailedRemoteExpressionProxy rep = new FailedRemoteExpressionProxy(proxyid);
- rep.setProxy(e, e.getClass());
- exp.allocateExpressionProxy(rep);
- }
- break;
-
- case InternalExpressionTypes.PUSH_METHOD_EXPRESSIONPROXY_EXPRESSION_VALUE:
- // Get the Method expression proxy and resolve it.
- // Comes over as:
- // int for proxy id for the method
- // beanTypeValue for declaring class (either beantype or expression proxy)
- // string for method name
- // int for arg count
- // beanTypeValue(s) for arg types (as many as arg count).
- proxyid = in.readInt();
- Commands.ValueObject decClassValue = Commands.readValue(in, new Commands.ValueObject());
- String methodName = Commands.readStringData(in);
- int argCount = in.readInt();
- Commands.ValueObject[] args = null;
- if (argCount > 0) {
- args = new Commands.ValueObject[argCount];
- for (int i = 0; i < argCount; i++) {
- args[i] = Commands.readValue(in, new Commands.ValueObject());
- }
- }
- Class decClass = null;
- Class[] argClasses = null;
- try {
- decClass = getBeanTypeValue(decClassValue);
- argClasses = null;
- if (argCount>0) {
- argClasses = new Class[argCount];
- for (int i = 0; i < argCount; i++) {
- argClasses[i] = getBeanTypeValue(args[i]);
- }
- }
- // Now get the method itself.
- Method m = decClass.getMethod(methodName, argClasses);
- RemoteExpressionProxy rep = new RemoteExpressionProxy(proxyid);
- rep.setProxy(m, Method.class);
- exp.allocateExpressionProxy(rep);
- } catch (FailedProxyException e) {
- FailedRemoteExpressionProxy rep = new FailedRemoteExpressionProxy(proxyid);
- rep.setProxy(e.getCause(), e.getCause().getClass());
- exp.allocateExpressionProxy(rep);
- } catch (NoSuchMethodException e) {
- // The default trace doesn't show what method was being searched for, so recreate with that.
- StringBuffer s = new StringBuffer();
- s.append(decClass.getName());
- s.append('.');
- s.append(methodName);
- s.append('(');
- if (argClasses != null) {
- for (int i = 0; i < argClasses.length; i++) {
- if (i > 0)
- s.append(',');
- s.append(argClasses[i].getName());
- }
- }
- s.append(')');
- NoSuchMethodException ne = new NoSuchMethodException(s.toString());
- ne.setStackTrace(e.getStackTrace());
- FailedRemoteExpressionProxy rep = new FailedRemoteExpressionProxy(proxyid);
- rep.setProxy(ne, ne.getClass());
- exp.allocateExpressionProxy(rep);
- }
- break;
-
- case InternalExpressionTypes.PUSH_FIELD_EXPRESSIONPROXY_EXPRESSION_VALUE:
- // Get the Filed expression proxy and resolve it.
- // Comes over as:
- // int for proxy id for the field
- // beanTypeValue for declaring class (either beantype or expression proxy)
- // string for field name
- proxyid = in.readInt();
- decClassValue = Commands.readValue(in, new Commands.ValueObject());
- String fieldName = Commands.readStringData(in);
- try {
- decClass = getBeanTypeValue(decClassValue);
- // Now get the field itself.
- Field f = decClass.getField(fieldName);
- RemoteExpressionProxy rep = new RemoteExpressionProxy(proxyid);
- rep.setProxy(f, Method.class);
- exp.allocateExpressionProxy(rep);
- } catch (FailedProxyException e) {
- FailedRemoteExpressionProxy rep = new FailedRemoteExpressionProxy(proxyid);
- rep.setProxy(e.getCause(), e.getCause().getClass());
- exp.allocateExpressionProxy(rep);
- } catch (NoSuchFieldException e) {
- FailedRemoteExpressionProxy rep = new FailedRemoteExpressionProxy(proxyid);
- rep.setProxy(e, e.getClass());
- exp.allocateExpressionProxy(rep);
- }
- break;
-
- case InternalExpressionTypes.IF_TEST_EXPRESSION_VALUE:
- // Get a if test expression request.
- exp.pushIfElse();
- break;
-
- case InternalExpressionTypes.IF_ELSE_EXPRESSION_VALUE:
- // Get a if/else expression clause request. The clause type (ie. true/false) is sent as a byte
- exp.pushIfElse(InternalIfElseOperandType.get(in.readByte()));
- break;
-
- case InternalExpressionTypes.NEW_INSTANCE_VALUE:
- // Get a new instance from string.
- String initString = Commands.readStringData(in);
- workerValue = Commands.readValue(in, new Commands.ValueObject());
- try {
- Class classValue = getBeanTypeValue(workerValue);
- exp.pushNewInstanceFromString(initString, classValue, classLoader);
- } catch (FailedProxyException e) {
- exp.processException(e.getCause()); // Let the processor know we have a stopping error.
- }
- break;
-
- case InternalExpressionTypes.MARK_VALUE:
- // Do a mark.
- int markID = in.readInt();
- exp.pushMark(markID);
- break;
-
- case InternalExpressionTypes.ENDMARK_VALUE:
- // Do an end mark.
- markID = in.readInt();
- boolean restore = in.readBoolean();
- exp.pushEndmark(markID, restore);
- break;
-
- case InternalExpressionTypes.SUBEXPRESSION_BEGIN_EXPRESSION_VALUE:
- // Get a begin subexpression proxy expression. The subexpression id is sent as an int.
- exp.pushSubexpressionBegin(in.readInt());
- break;
-
- case InternalExpressionTypes.SUBEXPRESSION_END_EXPRESSION_VALUE:
- // Get a end subexpression proxy expression. The subexpression id is sent as an int.
- exp.pushSubexpressionEnd(in.readInt());
- break;
-
- }
-
- } catch (RuntimeException e) {
- exp.processException(e);
- }
-
- workerValue.set(); // Clear it out so nothing being held onto.
- }
-
- /**
- * This is an exception that is thrown from the getBeanType, field, method (reflect type stuff)
- * that wrappers the real throwable that occurred during the previous reflection. This is
- * because reflection is done out of sequence with the use of the reflect value. So we need
- * to store the reflection exception in this exception and then store this exception in
- * a {@link FailedRemoteExpressionProxy}. This will then be picked up when trying to be
- * used and it will get the true exception out of the {@link Throwable#getCause()}.
- *
- * @since 1.1.0
- */
- private static class FailedProxyException extends Exception {
- /**
- * Comment for serialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = 2872325672166348923L;
-
- public FailedProxyException(Throwable realThrowable) {
- super(realThrowable);
- }
- }
-
- /**
- * Get the beantype (class) out of the value object sent in. It can handle the beantype sent or
- * as an expression proxy to a beantype expression proxy.
- *
- * @param value
- * @return
- * @throws FailedProxyException Wrappers the real throwable that caused the bean type to not be found.
- *
- * @since 1.1.0
- */
- protected Class getBeanTypeValue(Commands.ValueObject value) throws FailedProxyException {
- Object beantype = connHandler.getInvokableObject(value);
- // It is either a type directly or is an expression proxy.
- if (value.type == Commands.INT) {
- // It is an expression proxy request.
- Object[] expvalue = new Object[2];
- try {
- exp.getExpressionProxy(((Integer) beantype).intValue(), expvalue);
- beantype = expvalue[0];
- } catch (NoExpressionValueException e) {
- // See if there is a failed proxy.
- if (e.getProxy() != null) {
- FailedRemoteExpressionProxy failure = (FailedRemoteExpressionProxy) e.getProxy();
- throw new FailedProxyException((Throwable) failure.getValue());
- } else
- throw new FailedProxyException(new ClassNotFoundException()); // This shouldn't of occurred.
- }
- }
- return (Class) beantype;
- }
-
- /**
- * Get the method out of the value object sent in. It can handle the method sent or
- * as an expression proxy to a method expression proxy.
- * @param value
- * @return method if a method or string if a string or get the method if an expression proxy.
- * @throws FailedProxyException Wrappers the real Throwable that caused the method to not be found.
- *
- * @since 1.1.0
- */
- protected Object getMethodValue(Commands.ValueObject value) throws FailedProxyException {
- Object method = connHandler.getInvokableObject(value);
- // It is either a method directly or is an expression proxy.
- if (value.type == Commands.INT) {
- // It is an expression proxy request.
- Object[] expvalue = new Object[2];
- try {
- exp.getExpressionProxy(((Integer) method).intValue(), expvalue);
- method = expvalue[0];
- } catch (NoExpressionValueException e) {
- // See if there is a failed proxy.
- if (e.getProxy() != null) {
- FailedRemoteExpressionProxy failure = (FailedRemoteExpressionProxy) e.getProxy();
- throw new FailedProxyException((Throwable) failure.getValue());
- } else
- throw new FailedProxyException(new NoSuchMethodException()); // This shouldn't of occurred.
- }
- }
- return method;
- }
-
- /**
- * Get the field out of the value object sent in. It can handle the field sent or
- * as an expression proxy to a field expression proxy.
- * @param value
- * @return field if a field or string if a string or get the field if an expression proxy.
- * @throws FailedProxyException Wrappers the real throwable that caused the field to not be found.
- *
- * @since 1.1.0
- */
- protected Object getFieldValue(Commands.ValueObject value) throws FailedProxyException {
- Object field = connHandler.getInvokableObject(value);
- // It is either a field directly or is an expression proxy.
- if (value.type == Commands.INT) {
- // It is an expression proxy request.
- Object[] expvalue = new Object[2];
- try {
- exp.getExpressionProxy(((Integer) field).intValue(), expvalue);
- field = expvalue[0];
- } catch (NoExpressionValueException e) {
- // See if there is a failed proxy.
- if (e.getProxy() != null) {
- FailedRemoteExpressionProxy failure = (FailedRemoteExpressionProxy) e.getProxy();
- throw new FailedProxyException((Throwable) failure.getValue());
- } else
- throw new FailedProxyException(new NoSuchFieldException()); // This shouldn't of occurred.
-
- }
- }
- return field;
- }
-
- /**
- * Pull the Expression Proxy value into the result object.
- * @param proxyID
- * @param result
- * @return true
if value could be returned, false
if it was no expression value assigned.
- *
- * @since 1.1.0
- */
- public boolean pullExpressionProxyValue(int proxyID, Object[] result) {
- try {
- exp.pullExpressionProxyValue(proxyID, result);
- return true;
- } catch (NoExpressionValueException e) {
- }
- return false;
- }
-
- private static class RemoteExpressionProxy implements InternalExpressionProxy {
-
-
- private final int proxyID;
- private Object value;
- private Class type;
- private boolean set;
-
- public RemoteExpressionProxy(int proxyID) {
- this.proxyID = proxyID;
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.initParser.tree.InternalExpressionProxy#getProxyID()
- */
- public int getProxyID() {
- return proxyID;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.initParser.tree.InternalExpressionProxy#getType()
- */
- public Class getType() {
- return type;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.initParser.tree.InternalExpressionProxy#getValue()
- */
- public Object getValue() {
- return value;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.initParser.tree.InternalExpressionProxy#isSet()
- */
- public boolean isSet() {
- return set;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.proxy.initParser.tree.InternalExpressionProxy#setProxy(java.lang.Object, java.lang.Class)
- */
- public void setProxy(Object value, Class type) {
- this.value = value;
- this.type = type;
- set = true;
- }
-
- public boolean isFailedExpression() {
- return false;
- }
- }
-
- /**
- * Used for the java.lang.reflect things (class, field, method) to indicate
- * why they aren't found.
- * serialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = -6817274833221383683L;
-
- /**
- * Key that returns true on equals() only
- * if the item it is wrappering is '=='
- * not equals()
- */
- static class IdentityKey {
-
- public static IdentityKey createKey(Object obj) {
- return obj != null ? new IdentityKey(obj) : null;
- }
-
- final Object o;
-
- public IdentityKey(Object obj) {
- o = obj;
- }
-
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (!(obj instanceof IdentityKey)) return false;
- if (this.o == (((IdentityKey) obj).o)) return true;
- return false;
- }
-
- public int hashCode() {
- return o.hashCode();
- }
- }
-
- public IdentityMap() {
- }
-
- public IdentityMap(int capacity) {
- super(capacity);
- }
-
- public IdentityMap(int capacity, float loadFactor) {
- super(capacity, loadFactor);
- }
-
- public boolean containsKey(Object key) {
- return super.containsKey(IdentityKey.createKey(key));
- }
-
- public Object get(Object key) {
- return super.get(IdentityKey.createKey(key));
- }
-
- public Object put(Object key, Object value) {
- return super.put(IdentityKey.createKey(key), value);
- }
-
- public Object remove(Object key) {
- return super.remove(IdentityKey.createKey(key));
- }
-
- /**
- * NOTE: Didn't bother implementing entrySet(). If that becomes
- * needed, then it will be implemented.
- */
- public Set entrySet() {
- throw new UnsupportedOperationException();
- }
-}
diff --git a/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/RemoteVMApplication.java b/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/RemoteVMApplication.java
deleted file mode 100644
index 570d66305..000000000
--- a/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/RemoteVMApplication.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.vm.remote;
-/*
- * $RCSfile: RemoteVMApplication.java,v $
- * $Revision: 1.3 $ $Date: 2005/08/24 20:39:08 $
- */
-
-
-/**
- * The application to run to kick off the remote VM server side.
- *
- *
- * All this does is start the Server Thread and waits for it to finish.
- * This allows other mains to have a server thread, and some other
- * threads if they wished. They could start the server thread too
- * and some other thread, and then wait for both to finish.
- */
-
-public class RemoteVMApplication {
-
-public static void main(java.lang.String[] args) {
- String serverName = "Server Thread"; //$NON-NLS-1$
- if (System.getProperty("proxyvm.servername") != null) //$NON-NLS-1$
- serverName = serverName + "-" + System.getProperty("proxyvm.servername"); //$NON-NLS-1$ //$NON-NLS-2$
- Thread t = new RemoteVMServerThread(serverName);
- t.start();
- try {
- t.join();
- } catch (Exception e) {
- }
- System.exit(0);
-}
-
-
-
-}
diff --git a/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/RemoteVMServerThread.java b/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/RemoteVMServerThread.java
deleted file mode 100644
index 242093458..000000000
--- a/plugins/org.eclipse.jem.proxy/vm_remotevm/org/eclipse/jem/internal/proxy/vm/remote/RemoteVMServerThread.java
+++ /dev/null
@@ -1,717 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.proxy.vm.remote;
-/*
- * $RCSfile: RemoteVMServerThread.java,v $
- * $Revision: 1.13 $ $Date: 2005/12/14 21:23:46 $
- */
-
-
-import java.util.*;
-import java.io.*;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.net.*;
-import org.eclipse.jem.internal.proxy.common.remote.*;
-import org.eclipse.jem.internal.proxy.common.*;
-/**
- * RemoteVM Server Thread. This thread is the one
- * that waits for connections and spins off
- * server connection threads. It manages the
- * connection threads and handles shutting them
- * down.
- *
- * System Properties:
- * proxyvm.port - Port number to use for the ServerSocket (default is 8888)
- * proxyvm.bufsize - Buffer size to use for TCP/IP buffers (default is system default)
- */
-
-public class RemoteVMServerThread extends Thread implements IVMServer, IVMCallbackServer {
- protected List threads = Collections.synchronizedList(new LinkedList()); // List of active threads.
- protected ServerSocket server; // Server Socket for this application
- private int highestIdentityID = 0; // Identity codes to identify objects between server and client.
- private Map objectToIDMap;
- private HashMap idToObjectMap = new HashMap(100); // Map from identity id to object
-
- protected Stack fCallbackHandlerPool = new Stack(); // Stack of free callback handlers
- protected static int NUMBER_FREE_CALLBACKS = 5; // Number of free callback handlers to keep open.
-
- public static int ID_NOT_FOUND = Commands.NOT_AN_ID; // The id was not found in the table.
-
- protected int masterIDESocketPort = -1; // Port of master server socket on IDE. Used for special global requests.
- protected int registryKey = -1; // Key of registry on the IDE.
-
- // Kludge: Bug in Linux 1.3.xxx of JVM. Closing a socket while the socket is being read/accept will not interrupt the
- // wait. Need to timeout to the socket read/accept before the socket close will be noticed. This has been fixed
- // in Linux 1.4. So on Linux 1.3 need to put timeouts in on those sockets that can be separately closed while reading/accepting.
- static boolean LINUX_1_3 = "linux".equalsIgnoreCase(System.getProperty("os.name")) && System.getProperty("java.version","").startsWith("1.3"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-
- // If version 1.3.x, we need to use our IdentidyMap, if 1.4 or greater then we can use Java's IdentidyHashMap, which is more efficient than ours.
- static Constructor IDENTIDYMAP_CLASS_CTOR;
- static {
- Class idClass;
- try {
- idClass = Class.forName("java.util.IdentityHashMap"); //$NON-NLS-1$
- } catch (ClassNotFoundException e) {
- idClass = IdentityMap.class;
- }
- try {
- IDENTIDYMAP_CLASS_CTOR = idClass.getConstructor(new Class[] {Integer.TYPE});
- } catch (SecurityException e) {
- e.printStackTrace();
- } catch (NoSuchMethodException e) {
- e.printStackTrace();
- }
- }
-
- public RemoteVMServerThread(String name) {
- super(name);
- try {
- objectToIDMap = (Map) IDENTIDYMAP_CLASS_CTOR.newInstance(new Object[] {new Integer(100)});
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- } catch (InstantiationException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- }
- }
-
- // The purpose of this thread is to wait 5 minutes, then see if the IDE is still
- // up. If it isn't it will go down. This is safety mechanism
- // in case the client went down without cleaning up and telling the server to go down.
- // That way it won't hang around forever.
- private boolean goingDown = false;
- private Thread safeClean = new Thread(new Runnable() {
- public void run() {
- while (!goingDown) {
- if (Thread.interrupted())
- continue; // Get to clean uninterrupted state.
- try {
- Thread.sleep(5 * 60 * 1000); // Sleep five minutes
- // Test if IDE still up.
- if (!isAlive()) {
- System.err.println("No registry available to connect with after five minutes. Shutting down."); //$NON-NLS-1$
- requestShutdown();
- break;
- }
- } catch (InterruptedException e) {
- }
- }
- }
-
- /*
- * See if still alive
- */
- private boolean isAlive() {
- Socket socket = getSocket();
- if (socket != null) {
- try {
- DataOutputStream out = new DataOutputStream(socket.getOutputStream());
- DataInputStream in = new DataInputStream(socket.getInputStream());
-
- try {
- out.writeByte(Commands.ALIVE);
- out.writeInt(registryKey);
- out.flush();
- return in.readBoolean();
- // Now get the result.
- } finally {
- try {
- in.close();
- } catch (IOException e) {
- }
- try {
- out.close();
- } catch (IOException e) {
- }
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- socket.close();
- } catch (IOException e) {
- e.printStackTrace(); // They should be closing. If they aren't, then they accumulate and master server will start rejecting new ones.
- }
- }
- }
-
- return false;
- }
-
- }, "Timeout Termination Thread"); //$NON-NLS-1$
-
-
- public void run() {
-
- // Initialize the mapping table with certain pre-defined ids.
- synchronized(objectToIDMap) {
- objectToIDMap.put(Void.TYPE, new Integer(Commands.VOID_TYPE));
- idToObjectMap.put(new Integer(Commands.VOID_TYPE), Void.TYPE);
-
- objectToIDMap.put(Boolean.TYPE, new Integer(Commands.BOOLEAN_TYPE));
- idToObjectMap.put(new Integer(Commands.BOOLEAN_TYPE), Boolean.TYPE);
- objectToIDMap.put(Boolean.class, new Integer(Commands.BOOLEAN_CLASS));
- idToObjectMap.put(new Integer(Commands.BOOLEAN_CLASS), Boolean.class);
-
- objectToIDMap.put(Integer.TYPE, new Integer(Commands.INTEGER_TYPE));
- idToObjectMap.put(new Integer(Commands.INTEGER_TYPE), Integer.TYPE);
- objectToIDMap.put(Integer.class, new Integer(Commands.INTEGER_CLASS));
- idToObjectMap.put(new Integer(Commands.INTEGER_CLASS), Integer.class);
-
- objectToIDMap.put(Byte.TYPE, new Integer(Commands.BYTE_TYPE));
- idToObjectMap.put(new Integer(Commands.BYTE_TYPE), Byte.TYPE);
- objectToIDMap.put(Byte.class, new Integer(Commands.BYTE_CLASS));
- idToObjectMap.put(new Integer(Commands.BYTE_CLASS), Byte.class);
-
- objectToIDMap.put(Short.TYPE, new Integer(Commands.SHORT_TYPE));
- idToObjectMap.put(new Integer(Commands.SHORT_TYPE), Short.TYPE);
- objectToIDMap.put(Short.class, new Integer(Commands.SHORT_CLASS));
- idToObjectMap.put(new Integer(Commands.SHORT_CLASS), Short.class);
-
- objectToIDMap.put(Long.TYPE, new Integer(Commands.LONG_TYPE));
- idToObjectMap.put(new Integer(Commands.LONG_TYPE), Long.TYPE);
- objectToIDMap.put(Long.class, new Integer(Commands.LONG_CLASS));
- idToObjectMap.put(new Integer(Commands.LONG_CLASS), Long.class);
-
- objectToIDMap.put(Character.TYPE, new Integer(Commands.CHARACTER_TYPE));
- idToObjectMap.put(new Integer(Commands.CHARACTER_TYPE), Character.TYPE);
- objectToIDMap.put(Character.class, new Integer(Commands.CHARACTER_CLASS));
- idToObjectMap.put(new Integer(Commands.CHARACTER_CLASS), Character.class);
-
- objectToIDMap.put(Double.TYPE, new Integer(Commands.DOUBLE_TYPE));
- idToObjectMap.put(new Integer(Commands.DOUBLE_TYPE), Double.TYPE);
- objectToIDMap.put(Double.class, new Integer(Commands.DOUBLE_CLASS));
- idToObjectMap.put(new Integer(Commands.DOUBLE_CLASS), Double.class);
-
- objectToIDMap.put(Float.TYPE, new Integer(Commands.FLOAT_TYPE));
- idToObjectMap.put(new Integer(Commands.FLOAT_TYPE), Float.TYPE);
- objectToIDMap.put(Float.class, new Integer(Commands.FLOAT_CLASS));
- idToObjectMap.put(new Integer(Commands.FLOAT_CLASS), Float.class);
-
- objectToIDMap.put(String.class, new Integer(Commands.STRING_CLASS));
- idToObjectMap.put(new Integer(Commands.STRING_CLASS), String.class);
-
- objectToIDMap.put(java.math.BigDecimal.class, new Integer(Commands.BIG_DECIMAL_CLASS));
- idToObjectMap.put(new Integer(Commands.BIG_DECIMAL_CLASS), java.math.BigDecimal.class);
-
- objectToIDMap.put(java.math.BigInteger.class, new Integer(Commands.BIG_INTEGER_CLASS));
- idToObjectMap.put(new Integer(Commands.BIG_INTEGER_CLASS), java.math.BigInteger.class);
-
- objectToIDMap.put(Number.class, new Integer(Commands.NUMBER_CLASS));
- idToObjectMap.put(new Integer(Commands.NUMBER_CLASS), Number.class);
-
- objectToIDMap.put(Throwable.class, new Integer(Commands.THROWABLE_CLASS));
- idToObjectMap.put(new Integer(Commands.THROWABLE_CLASS), Throwable.class);
-
-
- objectToIDMap.put(Object.class, new Integer(Commands.OBJECT_CLASS));
- idToObjectMap.put(new Integer(Commands.OBJECT_CLASS), Object.class);
-
- objectToIDMap.put(Class.class, new Integer(Commands.CLASS_CLASS));
- idToObjectMap.put(new Integer(Commands.CLASS_CLASS), Class.class);
-
- objectToIDMap.put(java.lang.reflect.AccessibleObject.class, new Integer(Commands.ACCESSIBLEOBJECT_CLASS));
- idToObjectMap.put(new Integer(Commands.ACCESSIBLEOBJECT_CLASS), java.lang.reflect.AccessibleObject.class);
-
- objectToIDMap.put(java.lang.reflect.Method.class, new Integer(Commands.METHOD_CLASS));
- idToObjectMap.put(new Integer(Commands.METHOD_CLASS), java.lang.reflect.Method.class);
-
- objectToIDMap.put(java.lang.reflect.Constructor.class, new Integer(Commands.CONSTRUCTOR_CLASS));
- idToObjectMap.put(new Integer(Commands.CONSTRUCTOR_CLASS), java.lang.reflect.Constructor.class);
-
- objectToIDMap.put(java.lang.reflect.Field.class, new Integer(Commands.FIELD_CLASS));
- idToObjectMap.put(new Integer(Commands.FIELD_CLASS), java.lang.reflect.Field.class);
-
- objectToIDMap.put(IVMServer.class, new Integer(Commands.IVMSERVER_CLASS));
- idToObjectMap.put(new Integer(Commands.IVMSERVER_CLASS), IVMServer.class);
-
- objectToIDMap.put(ICallback.class, new Integer(Commands.ICALLBACK_CLASS));
- idToObjectMap.put(new Integer(Commands.ICALLBACK_CLASS), ICallback.class);
-
- objectToIDMap.put(this, new Integer(Commands.REMOTESERVER_ID));
- idToObjectMap.put(new Integer(Commands.REMOTESERVER_ID), this);
-
- objectToIDMap.put(RemoteVMServerThread.class, new Integer(Commands.REMOTEVMSERVER_CLASS));
- idToObjectMap.put(new Integer(Commands.REMOTEVMSERVER_CLASS), RemoteVMServerThread.class);
-
- objectToIDMap.put(Thread.class, new Integer(Commands.THREAD_CLASS));
- idToObjectMap.put(new Integer(Commands.THREAD_CLASS), Thread.class);
-
- objectToIDMap.put(ExpressionProcesserController.class, new Integer(Commands.EXPRESSIONPROCESSERCONTROLLER_CLASS));
- idToObjectMap.put(new Integer(Commands.EXPRESSIONPROCESSERCONTROLLER_CLASS), ExpressionProcesserController.class);
-
- try {
- java.lang.reflect.Method getMethod = Class.class.getMethod("getMethod", new Class[] {String.class, (new Class[0]).getClass()}); //$NON-NLS-1$
- objectToIDMap.put(getMethod, new Integer(Commands.GET_METHOD_ID));
- idToObjectMap.put(new Integer(Commands.GET_METHOD_ID), getMethod);
-
- java.lang.reflect.Method initMethod = ICallback.class.getMethod("initializeCallback", new Class[] {IVMCallbackServer.class, Integer.TYPE}); //$NON-NLS-1$
- objectToIDMap.put(initMethod, new Integer(Commands.INITIALIZECALLBACK_METHOD_ID));
- idToObjectMap.put(new Integer(Commands.INITIALIZECALLBACK_METHOD_ID), initMethod);
-
- } catch (NoSuchMethodException e) {
- // Shouldn't really ever occur.
- }
-
- highestIdentityID = Commands.FIRST_FREE_ID;
- }
-
- masterIDESocketPort = Integer.getInteger("proxyvm.masterPort", -1).intValue(); //$NON-NLS-1$
- if (masterIDESocketPort == -1) {
- // No ports specified, need to just shutdown.
- shutdown();
- return;
- }
-
- registryKey = Integer.getInteger("proxyvm.registryKey", -1).intValue(); //$NON-NLS-1$
- if (registryKey == -1) {
- // No registry specified, need to just shutdown.
- shutdown();
- return;
- }
-
- safeClean.setPriority(Thread.MIN_PRIORITY);
- safeClean.start();
- boolean trying = true;
- try {
- server = new ServerSocket(0, 50 , InetAddress.getByName("localhost")); //$NON-NLS-1$
- trying = false;
- if (LINUX_1_3)
- server.setSoTimeout(1000); // Linux 1.3 bug, see comment on LINUX_1_3
- if (registerServer(server.getLocalPort())) {
- while(server != null) {
- Socket incoming = null;
- try {
- incoming = server.accept();
- } catch (InterruptedIOException e) {
- continue; // Timeout, try again
- } catch (NullPointerException e) {
- continue; // Server could of gone null after test in while, means shutting down. This probably would only happen Linux 1.3.
- }
- Thread st = new ConnectionThread(incoming, this, "Connection Thread"); //$NON-NLS-1$
- threads.add(st);
- safeClean.interrupt(); // Let safeClean know there is a change
- st.start();
- // Null out locals so they can be GC'd since this is a long running loop.
- st = null;
- incoming = null;
- }
- }
- } catch (SocketException e) {
- if (trying || server != null)
- e.printStackTrace(); // Exception and not shutdown request, so print stack trace.
- } catch (Throwable e) {
- e.printStackTrace();
- }
-
- // We've had an exception, either something really bad, or we were closed,
- // so go through shutdowns.
- shutdown();
- }
-
-
- /**
- * Get an identityID, return -1 if not found.
- */
- public int getIdentityID(Object anObject) {
- synchronized(objectToIDMap) {
- Integer id = (Integer) objectToIDMap.get(anObject);
- return id != null ? id.intValue() : ID_NOT_FOUND;
- }
- }
-
- /**
- * Get an identityID and add it if not found. Place the id in the
- * ValueObject passed in and return whether it was added (true) or was already in table (false)
- */
- public boolean getIdentityID(Object anObject, Commands.ValueObject intoValue ) {
- boolean added = false;
- synchronized(objectToIDMap) {
- Integer id = (Integer) objectToIDMap.get(anObject);
- if (id == null) {
- do {
- if (++highestIdentityID == Commands.NOT_AN_ID)
- ++highestIdentityID; // Don't let -1 be a valid id.
- id = new Integer(highestIdentityID);
- } while (idToObjectMap.containsKey(id)); // Make sure not in use, really shouldn't ever happen because we have over 4 billion before it wraps back
- objectToIDMap.put(anObject, id);
- idToObjectMap.put(id, anObject);
- added = true;
- }
- intoValue.setObjectID(id.intValue());
- }
- return added;
- }
-
- /**
- * Remove an identity object from the mapping.
- */
- public void removeObject(Object anObject) {
- synchronized(objectToIDMap) {
- Integer id = (Integer) objectToIDMap.remove(anObject);
- idToObjectMap.remove(id);
- }
- }
-
- /**
- * Remove an identity object from the mapping, given the id.
- */
- public void removeObject(int id) {
- synchronized(objectToIDMap) {
- Object o = idToObjectMap.remove(new Integer(id));
- objectToIDMap.remove(o);
- }
- }
-
- /**
- * Get the object for an identity id
- */
- public Object getObject(int id) {
- synchronized(objectToIDMap) {
- return idToObjectMap.get(new Integer(id));
- }
- }
-
- /**
- * Remove a thread from the list.
- */
- public void removeConnectionThread(Thread thread) {
- threads.remove(thread);
- safeClean.interrupt(); // Let safe clean know there is a change.
- }
-
- /**
- * Use this to request a shutdown. If the server hasn't even been
- * created yet, this will return false.
- */
- public boolean requestShutdown() {
- if (server == null)
- return false;
- // Closing the server socket should cause a break.
- try {
- ServerSocket srv = server;
- server = null; // So that server knows it is being shutdown and not print exception msg.
- srv.close();
- } catch (Exception e) {
- }
- return true;
- }
-
- /**
- * Request a callback stream to write to.
- * When done, the stream should be closed to release the connection.
- */
- public OutputStream requestStream(int callbackID, int msgID) throws CommandException {
- CallbackHandler h = (CallbackHandler) getFreeCallbackHandler();
- if (h == null)
- throw new CommandException("No callback handler retrieved.", null); //$NON-NLS-1$
- h.initiateCallbackStream(callbackID, msgID);
- return new CallbackOutputStream(h, this);
- }
-
- protected void shutdown() {
- goingDown = true;
- safeClean.interrupt(); // Let safeClean know to come down.
-
- if (server != null)
- try {
- server.close(); // Close it so that no more requests can be made.
- } catch (Exception e) {
- }
-
- // Go through each thread and ask it to close. Make a copy of the list so that we
- // won't get into deadlocks.
- ConnectionThread[] threadsArray = (ConnectionThread[]) threads.toArray(new ConnectionThread[0]);
- for (int i=0; iAbout This Content
-
-License
-
-true
, the validator
- * allows multiple selection.
- */
- public TypedElementSelectionValidator(Class[] acceptedTypes, boolean allowMultipleSelection) {
- this(acceptedTypes, allowMultipleSelection, null);
- }
-
- /**
- * @param acceptedTypes The types accepted by the validator
- * @param allowMultipleSelection If set to true
, the validator
- * allows multiple selection.
- * @param rejectedElements A list of elements that are not accepted
- */
- public TypedElementSelectionValidator(Class[] acceptedTypes, boolean allowMultipleSelection, Collection rejectedElements) {
- Assert.isNotNull(acceptedTypes);
- fAcceptedTypes= acceptedTypes;
- fAllowMultipleSelection= allowMultipleSelection;
- fRejectedElements= rejectedElements;
- }
-
- /*
- * @see org.eclipse.ui.dialogs.ISelectionValidator#isValid(java.lang.Object)
- */
- public IStatus validate(Object[] elements) {
- if (isValid(elements)) {
- return fgOKStatus;
- }
- return fgErrorStatus;
- }
-
- private boolean isOfAcceptedType(Object o) {
- for (int i= 0; i < fAcceptedTypes.length; i++) {
- if (fAcceptedTypes[i].isInstance(o)) {
- return true;
- }
- }
- return false;
- }
-
- private boolean isRejectedElement(Object elem) {
- return (fRejectedElements != null) && fRejectedElements.contains(elem);
- }
-
- protected boolean isSelectedValid(Object elem) {
- return true;
- }
-
- private boolean isValid(Object[] selection) {
- if (selection.length == 0) {
- return false;
- }
-
- if (!fAllowMultipleSelection && selection.length != 1) {
- return false;
- }
-
- for (int i= 0; i < selection.length; i++) {
- Object o= selection[i];
- if (!isOfAcceptedType(o) || isRejectedElement(o) || !isSelectedValid(o)) {
- return false;
- }
- }
- return true;
- }
-}
diff --git a/plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/TypedViewerFilter.java b/plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/TypedViewerFilter.java
deleted file mode 100644
index d14f6d026..000000000
--- a/plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/TypedViewerFilter.java
+++ /dev/null
@@ -1,45 +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: TypedViewerFilter.java,v $
- * $Revision: 1.1 $ $Date: 2005/10/03 23:06:42 $
- */
-package org.eclipse.jem.internal.beaninfo.ui;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-
-
-public class TypedViewerFilter extends ViewerFilter {
- private Class[] acceptedClasses;
- private Object[] rejectedFragments;
-
- public TypedViewerFilter(Class[] acceptedClasses, Object[] rejectedFragments) {
- this.acceptedClasses = acceptedClasses;
- this.rejectedFragments = rejectedFragments;
- }
-
- public boolean select(Viewer viewer, Object parentElement, Object element) {
- if (rejectedFragments != null) {
- for (int i= 0; i < rejectedFragments.length; i++) {
- if (element.equals(rejectedFragments[i])) {
- return false;
- }
- }
- }
- for (int i= 0; i < acceptedClasses.length; i++) {
- if (acceptedClasses[i].isInstance(element)) {
- return true;
- }
- }
- return false;
- }
-}
diff --git a/plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/VariableSelectionBlock.java b/plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/VariableSelectionBlock.java
deleted file mode 100644
index 24a66fef1..000000000
--- a/plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/VariableSelectionBlock.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.ui;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.ui.wizards.BuildPathDialogAccess;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.PlatformUI;
-/*
- * $RCSfile: VariableSelectionBlock.java,v $
- * $Revision: 1.8 $ $Date: 2005/12/14 21:24:10 $
- */
-
-public class VariableSelectionBlock {
-
-
- private List fExistingPaths;
-
- private Label variableFieldLabel;
- private Text variableFieldText;
- private Button variableFieldButton;
- private String variableFieldTextContent;
-
- private Label extensionFieldLabel;
- private Text extensionFieldText;
- private Button extensionFieldButton;
- private String extensionFieldTextContent;
-
- private CLabel fFullPath;
-
- private IStatus fVariableStatus;
- private IStatus fExistsStatus;
- private IStatus fExtensionStatus;
-
- private String fVariable;
- private IStatusChangeListener fContext;
-
- private boolean fIsEmptyAllowed;
-
- /**
- * Constructor for VariableSelectionBlock
- */
- public VariableSelectionBlock(IStatusChangeListener context, List existingPaths, IPath varPath, String lastVarSelection, boolean emptyAllowed) {
- fContext= context;
- fExistingPaths= existingPaths;
- fIsEmptyAllowed= emptyAllowed;
- fExistsStatus= StatusHelper.OK_STATUS;
-
- //VariableSelectionAdapter adapter= new VariableSelectionAdapter();
-
- if (varPath != null) {
- variableFieldTextContent = varPath.segment(0);
- extensionFieldTextContent = varPath.removeFirstSegments(1).toString();
- } else {
- variableFieldTextContent = ""; //$NON-NLS-1$
- extensionFieldTextContent = ""; //$NON-NLS-1$
- }
- updateFullTextField();
- fVariableStatus= variableUpdated();
- fExtensionStatus=extensionUpdated();
- }
-
- public IPath getVariablePath() {
- if (fVariable != null) {
- return new Path(fVariable).append(extensionFieldTextContent);
- }
- return null;
- }
-
- public IPath getResolvedPath() {
- if (fVariable != null) {
- IPath entryPath= JavaCore.getClasspathVariable(fVariable);
- if (entryPath != null) {
- return entryPath.append(extensionFieldTextContent);
- }
- }
- return null;
- }
-
- public void setFocus(Display display) {
- display.asyncExec(new Runnable(){
- public void run() {
- variableFieldText.setFocus();
- }
- });
- }
-
-
- public Control createControl(Composite parent) {
- Composite inner= new Composite(parent, SWT.NONE);
- inner.setLayout(new GridLayout(3, false));
- GridData gd = new GridData(GridData.FILL_BOTH);
- inner.setLayoutData(gd);
-
- variableFieldLabel = new Label(inner, SWT.NONE);
- variableFieldLabel.setText(BeanInfoUIMessages.VariableSelectionBlock_variable_label);
- variableFieldLabel.setLayoutData(new GridData());
- variableFieldText = new Text(inner, SWT.BORDER|SWT.SINGLE);
- variableFieldText.setText(variableFieldTextContent);
- gd = new GridData(GridData.FILL_HORIZONTAL);
- gd.widthHint = 200;
- variableFieldText.setLayoutData(gd);
- variableFieldText.addModifyListener(new ModifyListener(){
- public void modifyText(ModifyEvent e) {
- variableFieldTextContent = variableFieldText.getText();
- fVariableStatus = variableUpdated();
- fExistsStatus= getExistsStatus();
- updateFullTextField();
- fContext.statusChanged(StatusHelper.getMostSevere(new IStatus[] { fVariableStatus, fExtensionStatus, fExistsStatus }));
- }
- });
- variableFieldButton = new Button(inner, SWT.PUSH);
- variableFieldButton.setText(BeanInfoUIMessages.VariableSelectionBlock_variable_button);
- variableFieldButton.setLayoutData(new GridData());
- variableFieldButton.addSelectionListener(new SelectionAdapter(){
- public void widgetSelected(SelectionEvent e) {
- String variable= chooseVariable();
- if (variable != null) {
- variableFieldText.setText(variable);
- }
- }
- });
-
- extensionFieldLabel = new Label(inner, SWT.NONE);
- extensionFieldLabel.setText(BeanInfoUIMessages.VariableSelectionBlock_extension_label);
- extensionFieldLabel.setLayoutData(new GridData());
- extensionFieldText = new Text(inner, SWT.BORDER|SWT.SINGLE);
- extensionFieldText.setText(variableFieldTextContent);
- extensionFieldText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- extensionFieldText.addModifyListener(new ModifyListener(){
- public void modifyText(ModifyEvent e) {
- extensionFieldTextContent = extensionFieldText.getText();
- fExtensionStatus= extensionUpdated();
- fExistsStatus= getExistsStatus();
- updateFullTextField();
- fContext.statusChanged(StatusHelper.getMostSevere(new IStatus[] { fVariableStatus, fExtensionStatus, fExistsStatus }));
- }
- });
- extensionFieldButton = new Button(inner, SWT.PUSH);
- extensionFieldButton.setText(BeanInfoUIMessages.VariableSelectionBlock_extension_button);
- extensionFieldButton.setLayoutData(new GridData());
- extensionFieldButton.setEnabled(fVariable!=null);
- extensionFieldButton.addSelectionListener(new SelectionAdapter(){
- public void widgetSelected(SelectionEvent e) {
- IPath filePath= chooseExtJar();
- if (filePath != null) {
- extensionFieldText.setText(filePath.toString());
- }
- }
- });
-
- Label label= new Label(inner, SWT.LEFT);
- label.setLayoutData(new GridData());
- label.setText(BeanInfoUIMessages.VariableSelectionBlock_fullpath_label);
-
- fFullPath= new CLabel(inner, SWT.NONE);
- gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- gd.horizontalSpan=2;
- fFullPath.setLayoutData(gd);
-
- updateFullTextField();
-
- setFocus(parent.getDisplay());
-
- return inner;
- }
-
- private IStatus variableUpdated() {
- fVariable= null;
-
- IStatus status= StatusHelper.OK_STATUS;
-
- String name = variableFieldTextContent;
- if (name.length() == 0) {
- if (!fIsEmptyAllowed) {
- status = StatusHelper.createStatus(IStatus.ERROR, BeanInfoUIMessages.VariableSelectionBlock_error_entername_ERROR_);
- } else {
- fVariable= ""; //$NON-NLS-1$
- }
- } else if (JavaCore.getClasspathVariable(name) == null) {
- status = StatusHelper.createStatus(IStatus.ERROR, BeanInfoUIMessages.VariableSelectionBlock_error_namenotexists_ERROR_);
- } else {
- fVariable= name;
- }
- if(extensionFieldButton!=null)
- extensionFieldButton.setEnabled(fVariable != null);
- return status;
- }
-
- private IStatus extensionUpdated() {
- IStatus status= StatusHelper.OK_STATUS;
- String extension = extensionFieldTextContent;
- if (extension.length() > 0 && !Path.ROOT.isValidPath(extension)) {
- status = StatusHelper.createStatus(IStatus.ERROR, BeanInfoUIMessages.VariableSelectionBlock_error_invalidextension_ERROR_);
- }
- return status;
- }
-
- private IStatus getExistsStatus() {
- IStatus status = StatusHelper.OK_STATUS;
- IPath path= getResolvedPath();
- if (path != null) {
- if (findPath(path)) {
- status = StatusHelper.createStatus(IStatus.ERROR, BeanInfoUIMessages.VariableSelectionBlock_error_pathexists_ERROR_);
- } else if (!path.toFile().isFile()) {
- status = StatusHelper.createStatus(IStatus.WARNING, BeanInfoUIMessages.VariableSelectionBlock_warning_pathnotexists_WARN_);
- }
- } else {
- status = StatusHelper.createStatus(IStatus.WARNING, BeanInfoUIMessages.VariableSelectionBlock_warning_pathnotexists_WARN_);
- }
- return status;
- }
-
- private boolean findPath(IPath path) {
- for (int i= fExistingPaths.size() -1; i >=0; i--) {
- IPath curr= (IPath) fExistingPaths.get(i);
- if (curr.equals(path)) {
- return true;
- }
- }
- return false;
- }
-
- private void updateFullTextField() {
- if (fFullPath != null && !fFullPath.isDisposed()) {
- IPath resolvedPath= getResolvedPath();
- if (resolvedPath != null) {
- fFullPath.setText(resolvedPath.toOSString());
- } else {
- fFullPath.setText(""); //$NON-NLS-1$
- }
- }
- }
-
- private Shell getShell() {
- if (fFullPath != null) {
- return fFullPath.getShell();
- }
- return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- }
-
- public static boolean isArchivePath(IPath path){
- final String[] archiveExtensions = {"jar", "zip"}; //$NON-NLS-1$ //$NON-NLS-2$
- String ext= path.getFileExtension();
- if (ext != null && ext.length() != 0) {
- for (int i= 0; i < archiveExtensions.length; i++) {
- if (ext.equalsIgnoreCase(archiveExtensions[i])) {
- return true;
- }
- }
- }
- return false;
- }
-
- private IPath chooseExtJar() {
- String lastUsedPath= ""; //$NON-NLS-1$
- IPath entryPath= getResolvedPath();
- if (entryPath != null) {
- if (isArchivePath(entryPath)) {
- lastUsedPath= entryPath.removeLastSegments(1).toOSString();
- } else {
- lastUsedPath= entryPath.toOSString();
- }
- }
-
- FileDialog dialog= new FileDialog(getShell(), SWT.SINGLE);
- dialog.setFilterExtensions(new String[] {"*.jar;*.zip"}); //$NON-NLS-1$
- dialog.setFilterPath(lastUsedPath);
- dialog.setText(BeanInfoUIMessages.VariableSelectionBlock_ExtJarDialog_title);
- String res= dialog.open();
- if (res == null) {
- return null;
- }
- IPath resPath= new Path(res).makeAbsolute();
- IPath varPath= JavaCore.getClasspathVariable(fVariable);
-
- if (!varPath.isPrefixOf(resPath)) {
- return new Path(resPath.lastSegment());
- } else {
- return resPath.removeFirstSegments(varPath.segmentCount()).setDevice(null);
- }
- }
-
- private String chooseVariable() {
- IPath[] varPaths = BuildPathDialogAccess.chooseVariableEntries(variableFieldButton.getShell(), new IPath[0]);
- String variable = null;
- if(varPaths!=null && varPaths.length>0){
- variable = varPaths[0].toString();
- }
- return variable;
- }
-
-
-}
diff --git a/plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/messages.properties b/plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/messages.properties
deleted file mode 100644
index b5ae17de4..000000000
--- a/plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/messages.properties
+++ /dev/null
@@ -1,109 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 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
-###############################################################################
-#
-# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/plugins/org.eclipse.jem.ui/beaninfoui/org/eclipse/jem/internal/beaninfo/ui/Attic/messages.properties,v $
-# $Revision: 1.6 $ $Date: 2005/12/14 19:06:13 $
-#
-
-
-SearchPathDialog_ChoosePackages = &Choose Packages
-SearchPathDialog_Remove = &Remove
-SearchPathDialog_Desc_Label = &Modify search path of packages within this BeanInfo classes JAR/folder
-SearchPathDialog_ModifySearchPaths = Modify Search Paths - {0}
-SearchPathDialog_NotEditable_INFO_ = IWAV0075I Plugin type BeanInfo classes locations are not editable
-SearchPathDialog_PackagePresent_INFO_ = IWAV0076I Package already in the search path
-SearchPathDialog_InputDialog_Title = Package
-SearchPathDialog_InputDialog_Message = &Enter a package:
-BeanInfoPathsBlock_ExportAll = E&xport all
-BeanInfoPathsBlock_UnexportAll = U&nexport all
-BeanInfoPathsBlock_Page_Tab_Packages = &Packages
-BeanInfoPathsBlock_Page_Tab_Classes = &BeanInfo classes
-BeanInfosWorkbookPage_AddFolders = &Add Folders
-BeanInfosWorkbookPage_AddJARs = Add &JARs
-BeanInfosWorkbookPage_AddExternalJAR = Add E&xternal JARs
-BeanInfosWorkbookPage_AddVariable = Add &Variable
-BeanInfosWorkbookPage_AddProjects = Add Projec&ts
-BeanInfosWorkbookPage_ModifyPaths = &Modify Paths
-BeanInfosWorkbookPage_Remove = &Remove
-BeanInfosWorkbookPage_List_Text = &Choose locations of BeanInfo classes (BeanInfo classes locations not in current project)
-BeanInfosWorkbookPage_SelectionDialog_Classes_Title = BeanInfo Class Folders Selection
-BeanInfosWorkbookPage_SelectionDialog_JARs_Title = JAR Selection
-BeanInfosWorkbookPage_SelectionDialog_JARs_Message = &Choose JARs to be added as BeanInfo classes JARs
-BeanInfosWorkbookPage_SelectionDialog_ExtJARs_Text = JAR Selection
-BeanInfosWorkbookPage_SelectionDialog_Projects_Title = BeanInfo Projects Selection
-BeanInfosWorkbookPage_SelectionDialog_Classes_Prompt = &Choose folders to be added as BeanInfo classes folders.
-BeanInfosWorkbookPage_SelectionDialog_Projects_Prompt = &Choose projects to be added as BeanInfo projects.
-PackagesWorkbook_ChoosePackages = &Choose packages
-PackagesWorkbook_ChooseDefinedPaths = Choose &defined paths
-PackagesWorkbook_Remove = &Remove
-PackagesWorkbook_LabelText = Choose BeanInfo &packages from the class path
-PackagesWorkbook_SelectionDialog_DefinedPaths_Title = Choose Defined Paths
-PackagesWorkbook_SelectionDialog_DefinedPaths_Message = Choose the pre-defined paths to add to the search path
-LabelProvider_Library_Folder = {0} (class folder)
-LabelProvider_Library__PathLastSegment_PathRelative_ = {0} - {1}
-LabelProvider_Library__PathLastSegment_PathExceptLast_ = {0} - {1}
-LabelProvider_Variable__name_PathOSString_ = {0} - {1}
-LabelProvider__packageName_Path_ = {0}: {1}
-
-VariableSelectionBlock_variable_label = &Variable Name:
-VariableSelectionBlock_variable_button = &Browse...
-VariableSelectionBlock_extension_label = Path E&xtension:
-VariableSelectionBlock_extension_button = Bro&wse...
-VariableSelectionBlock_fullpath_label = Resolved Path:
-
-VariableSelectionBlock_error_entername_ERROR_ = IWAV0077E Variable name must be entered.
-VariableSelectionBlock_error_namenotexists_ERROR_ = IWAV0078E Variable does not exist.
-VariableSelectionBlock_error_pathexists_ERROR_ = IWAV0079E Class path entry already exists.
-VariableSelectionBlock_error_invalidextension_ERROR_ = IWAV0080E Extension is not a valid path.
-
-VariableSelectionBlock_warning_pathnotexists_WARN_ = IWAV0081W Resolved path is not an existing JAR file.
-
-VariableSelectionBlock_ExtJarDialog_title = JAR Selection
-
-
-
-
-#
-# Properties for the com.ibm.etools.beaninfo.ui plugin
-#
-
-# This shows up as the title of a message dialog
-Beaninfo_UI__errortitle = Error
-
-Beaninfo_UI__error = Error while setting BeanInfo configuration.
-
-BeaninfoPropertiesPage_INFO__nojavaproject = IWAV0019I BeanInfo is only applicable to Java projects.
-BeaninfoPropertiesPage_INFO__closedproject = IWAV0020I BeanInfo is not available for a closed project.
-
-# This is a checkbox on a preference page. The label is to indicate whether introspection is enabled to run or not.
-BeaninfoPathsBlock_UI__enablebeaninfo = &Enable BeanInfo Introspection on this Project
-
-# This is a header line for a page of preferences.
-BeaninfoPathsBlock_UI__searchpath_label = Build BeanInfo &search path order and exported entries:\n(Exported entries are contributed to dependent projects)
-BeaninfoPathsBlock_UI__searchpath_up_button = &Up
-BeaninfoPathsBlock_UI__searchpath_down_button = &Down
-BeaninfoPathsBlock_UI__searchpath_remove_button = &Remove
-BeaninfoPathsBlock_UI__serachpath_tab_order = &Order and Export
-
-BeaninfoPathsBlock_UI__warning_EntryMissing = Project class path entries, or BeanInfo class files are missing.
-
-# {0} will be the package name, e.g. java.lang
-BeaninfoPathsBlock_WARN__searchpath_missing_path_format = IWAV0021W {0} - Package path not found.
-
-# This is a message on a progress dialog.
-BeaninfoPathsBlock_UI__searchpath_operationdescription = Setting BeanInfo search paths...
-
-BeaninfoPathsBlock_UI__addsearchpath_title = Select Packages
-BeaninfoPathsBlock_UI__addsearchpath_description = &Select packages to add to search path:
-
-BeaninfoPathsBlock_UI__warning_EntryMissing = Project class path entries, or BeanInfo class files are missing.
-BeaninfoPathsBlock_UI__searchpath_add_button = Add Package...
-ExceptionHandler_errordialog_msg_seelog=See error log for more details.
diff --git a/plugins/org.eclipse.jem.ui/build.properties b/plugins/org.eclipse.jem.ui/build.properties
deleted file mode 100644
index b96ba1e0d..000000000
--- a/plugins/org.eclipse.jem.ui/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 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
-###############################################################################
-bin.includes = plugin.xml,\
- plugin.properties,\
- icons/,\
- about.html,\
- .options,\
- META-INF/,\
- .
-src.includes = about.html
-output.. = bin/
-source.. = ui/,\
- beaninfoui/
-jars.compile.order = .
diff --git a/plugins/org.eclipse.jem.ui/icons/blank.gif b/plugins/org.eclipse.jem.ui/icons/blank.gif
deleted file mode 100644
index 21f9d0244..000000000
Binary files a/plugins/org.eclipse.jem.ui/icons/blank.gif and /dev/null differ
diff --git a/plugins/org.eclipse.jem.ui/icons/cp_order_obj.gif b/plugins/org.eclipse.jem.ui/icons/cp_order_obj.gif
deleted file mode 100644
index b2fa4cefc..000000000
Binary files a/plugins/org.eclipse.jem.ui/icons/cp_order_obj.gif and /dev/null differ
diff --git a/plugins/org.eclipse.jem.ui/icons/full/ctool16/run_exc.gif b/plugins/org.eclipse.jem.ui/icons/full/ctool16/run_exc.gif
deleted file mode 100644
index 57f410224..000000000
Binary files a/plugins/org.eclipse.jem.ui/icons/full/ctool16/run_exc.gif and /dev/null differ
diff --git a/plugins/org.eclipse.jem.ui/icons/full/obj16/file_obj.gif b/plugins/org.eclipse.jem.ui/icons/full/obj16/file_obj.gif
deleted file mode 100644
index 061161ae1..000000000
Binary files a/plugins/org.eclipse.jem.ui/icons/full/obj16/file_obj.gif and /dev/null differ
diff --git a/plugins/org.eclipse.jem.ui/icons/full/wizban/run_wiz.gif b/plugins/org.eclipse.jem.ui/icons/full/wizban/run_wiz.gif
deleted file mode 100644
index e3bd462df..000000000
Binary files a/plugins/org.eclipse.jem.ui/icons/full/wizban/run_wiz.gif and /dev/null differ
diff --git a/plugins/org.eclipse.jem.ui/icons/javabean.gif b/plugins/org.eclipse.jem.ui/icons/javabean.gif
deleted file mode 100644
index 18852612e..000000000
Binary files a/plugins/org.eclipse.jem.ui/icons/javabean.gif and /dev/null differ
diff --git a/plugins/org.eclipse.jem.ui/icons/package_obj_missing.gif b/plugins/org.eclipse.jem.ui/icons/package_obj_missing.gif
deleted file mode 100644
index 78d7e2080..000000000
Binary files a/plugins/org.eclipse.jem.ui/icons/package_obj_missing.gif and /dev/null differ
diff --git a/plugins/org.eclipse.jem.ui/icons/plugin_obj.gif b/plugins/org.eclipse.jem.ui/icons/plugin_obj.gif
deleted file mode 100644
index 8493df40d..000000000
Binary files a/plugins/org.eclipse.jem.ui/icons/plugin_obj.gif and /dev/null differ
diff --git a/plugins/org.eclipse.jem.ui/plugin.properties b/plugins/org.eclipse.jem.ui/plugin.properties
deleted file mode 100644
index 415fb5e1b..000000000
--- a/plugins/org.eclipse.jem.ui/plugin.properties
+++ /dev/null
@@ -1,33 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 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
-###############################################################################
-#
-# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/plugins/org.eclipse.jem.ui/Attic/plugin.properties,v $
-# $Revision: 1.4 $ $Date: 2005/08/24 21:07:12 $
-#
-
-
-pluginName=Java EMF Model UI
-providerName = Eclipse.org
-
-proxyLaunchGroup.label=Proxy
-
-ActionSet.proxyTools=Proxy Tools
-ActionSet.proxyTools.Description=Actions for working with Proxy and Proxy Launchers.
-Action.proxyLaunch=Proxy...
-Action.proxyLaunchTip=Proxy Launch Manager
-Action.selectDefault=Select Default Proxy Configuration...
-Action.selectDefaultTip=Select default for {0}.
-Menu.run=&Run
-
-Editors.OverrideEditor = Override Editor
-
-# This is the title of the Properties page for setting properties of BeanInfo paths.
-BeaninfoPath_Title_UI_ = BeanInfo Path
diff --git a/plugins/org.eclipse.jem.ui/plugin.xml b/plugins/org.eclipse.jem.ui/plugin.xml
deleted file mode 100644
index 114588854..000000000
--- a/plugins/org.eclipse.jem.ui/plugin.xml
+++ /dev/null
@@ -1,134 +0,0 @@
-
-
-About This Content
-
-License
-
-super.processJavaElementChanged(ICompilationUnit, IJavaElementDelta)
.
- *
- * @param element
- * @param delta
- *
- * @since 1.2.0
- */
- protected void processJavaElementChanged(ICompilationUnit element, IJavaElementDelta delta) {
- processChildren(element, delta);
- }
-
- /**
- * Process the java model changed event. The default is to process the children of the delta. Subclasses may override to perform their own
- * functions. If they wish to walk the children they should then also call
- * super.processJavaElementChanged(IJavaModel, IJavaElementDelta)
.
- *
- * @param element
- * @param delta
- *
- * @since 1.2.0
- */
- protected void processJavaElementChanged(IJavaModel element, IJavaElementDelta delta) {
- processChildren(element, delta);
- }
-
- /**
- * Process the java project changed event. The default is to process the children of the delta. Subclasses may override to perform their own
- * functions. If they wish to walk the children they should then also call
- * super.processJavaElementChanged(IJavaProject, IJavaElementDelta)
.
- *
- * @param element
- * @param delta
- *
- * @since 1.2.0
- */
- protected void processJavaElementChanged(IJavaProject element, IJavaElementDelta delta) {
- processChildren(element, delta);
- }
-
- /**
- * Process the package fragment changed event. The default is to process the children of the delta. Subclasses may override to perform their own
- * functions. If they wish to walk the children they should then also call
- * super.processJavaElementChanged(IPackageFragment, IJavaElementDelta)
.
- *
- * @param element
- * @param delta
- *
- * @since 1.2.0
- */
- protected void processJavaElementChanged(IPackageFragment element, IJavaElementDelta delta) {
- processChildren(element, delta);
- }
-
- /**
- * Process the package fragment root changed event. The default is to process the children of the delta. Subclasses may override to perform their
- * own functions. If they wish to walk the children they should then also call
- * super.processJavaElementChanged(IPackageFragmentRoot, IJavaElementDelta)
.
- *
- * @param element
- * @param delta
- *
- * @since 1.2.0
- */
- protected void processJavaElementChanged(IPackageFragmentRoot element, IJavaElementDelta delta) {
- processChildren(element, delta);
- }
-
- /**
- * Process the IType changed event. The default is to do nothing. It will not walk any children of the delta either. Subclasses may override to
- * perform their own functions.
- *
- * @param element
- * @param delta
- *
- * @since 1.2.0
- */
- protected void processJavaElementChanged(IType element, IJavaElementDelta delta) {
- }
-
- /**
- * Answers whether this element delta is a classpath change. I.e. something added/removed/moved around for the classpath. This should only be
- * called for a delta that is for an {@link IPackageFragmentRoot}. Should be called from an override of
- * {@link #processJavaElementChanged(IPackageFragmentRoot, IJavaElementDelta)}
- *
- * @param delta
- * @return true
if it is classpath change or false
if not.
- *
- * @since 1.2.0
- */
- protected boolean isClassPathChange(IJavaElementDelta delta) {
- int flags = delta.getFlags();
- return (delta.getKind() == IJavaElementDelta.CHANGED && ((flags & IJavaElementDelta.F_ADDED_TO_CLASSPATH) != 0)
- || ((flags & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) != 0) || ((flags & IJavaElementDelta.F_REORDER) != 0));
- }
-
- /**
- * Answer whether the change is this is a raw classpath change, or if a file that is in the root of the project was changed that also can mean a
- * raw classpath change. This must only be called for a delta that is for an {@link IJavaProject}.
- * false
.
- * Subclasses may override.
- *
- * @param path
- * @return true
if this file being changed would result in a classpath change, false
if not.
- *
- * @since 1.2.0
- */
- protected boolean isAlsoClasspathChange(IPath path) {
- return false;
- }
-
- /**
- * Answers whether the given java project is in the classpath (including recursive). This currently will not walk through containers (such as the
- * PDE container). Only through the direct and recursive project references. The java project is determined by subclasses, see
- * {@link #getJavaProject()}.
- *
- * @param javaProject
- * @return true
if project is in classpath or false
if not.
- *
- * @since 1.2.0
- */
- protected boolean isInClasspath(IJavaProject javaProject) {
- IJavaProject listenerJavaProject = getJavaProject();
- if (javaProject.equals(listenerJavaProject))
- return true;
- return isInClasspath(javaProject, listenerJavaProject, true, new HashSet());
- }
-
- /**
- * The java project for this listener. Subclasses must provide a java project.
- *
- * @return the java project. null
is not valid.
- *
- * @since 1.2.0
- */
- protected abstract IJavaProject getJavaProject();
-
- /*
- * test to see if the testProject is in the classpath (including from any referenced projects) of the target project. Keep track of those already
- * visited so as not to visit again. Too late to make private. But it should not be overridden.
- */
- protected boolean isInClasspath(IJavaProject testProject, IJavaProject targetProject, boolean isFirstLevel, Set visited) {
- if (visited.contains(targetProject))
- return false;
- visited.add(targetProject);
- IClasspathEntry[] entries = null;
- try {
- entries = targetProject.getRawClasspath();
- } catch (JavaModelException e) {
- return false;
- }
- List projects = null;
- for (int i = 0; i < entries.length; i++) {
- IClasspathEntry entry;
- entry = entries[i];
- switch (entry.getEntryKind()) {
- case IClasspathEntry.CPE_PROJECT:
- IJavaProject entryProject = getVisibleJavaProject(entry, isFirstLevel);
- if (entryProject != null) {
- if (entryProject.equals(testProject)) {
- return true;
- } else {
- if (projects == null) {
- projects = new ArrayList();
- }
- projects.add(entryProject);
- }
- }
- break;
- //A container may contain references to projects.
- case IClasspathEntry.CPE_CONTAINER :
- IClasspathContainer container = null;
- try {
- container = JavaCore.getClasspathContainer(entry.getPath(), targetProject);
- } catch (JavaModelException e) {
- JEMPlugin.getPlugin().getLogger().logError(e);
- }
- if (container == null || container.getKind() != IClasspathContainer.K_APPLICATION)
- break;
- IClasspathEntry[] containerEntries = container.getClasspathEntries();
- for (int j = 0; j < containerEntries.length; j++) {
- if (containerEntries[j].getEntryKind() == IClasspathEntry.CPE_PROJECT) {
- IJavaProject conEntryProject = getVisibleJavaProject(containerEntries[j], isFirstLevel);
- if (conEntryProject != null) {
- if (conEntryProject.equals(testProject)) {
- return true;
- } else {
- if (projects == null) {
- projects = new ArrayList();
- }
- projects.add(conEntryProject);
- }
- }
- }
- }
- break;
- }
- }
- return isInClasspath(testProject, projects, false, visited);
- }
-
- /*
- * This method is used to return an IJavaProject that is resolved from the entry
- * if it is currently visible to downstream projects.
- */
- private IJavaProject getVisibleJavaProject(IClasspathEntry entry, boolean isFirstLevel) {
- if (isFirstLevel || entry.isExported()) {
- IClasspathEntry resEntry = JavaCore.getResolvedClasspathEntry(entry);
- return getJavaProject(resEntry);
- }
- return null;
- }
-
- /*
- * See if the testProject is in the classpath of any of the list of projects or in any project that an entry in the list may of visited. Too late
- * to make private. But it should not be overridden.
- */
- protected boolean isInClasspath(IJavaProject testProject, List someJavaProjects, boolean isFirstLevel, Set visited) {
- if (someJavaProjects == null)
- return false;
- int size = someJavaProjects.size();
- IJavaProject javaProj = null;
- for (int i = 0; i < size; i++) {
- javaProj = (IJavaProject) someJavaProjects.get(i);
- return isInClasspath(testProject, javaProj, isFirstLevel, visited);
- }
- return false;
- }
-
- /**
- * Get the java project that classpath entry is for. This should only be called on classpath entries of type {@link IClasspathEntry#CPE_PROJECT}
- *
- * @param entry
- * classpath entry of type {@link IClasspathEntry#CPE_PROJECT}.
- * @return the java project for this entry. The project might not actually exist. That is not verified.
- *
- * @since 1.2.0
- */
- protected IJavaProject getJavaProject(IClasspathEntry entry) {
- IProject proj = getWorkspaceRoot().getProject(entry.getPath().segment(0));
- if (proj != null)
- return JavaCore.create(proj);
- return null;
- }
-
- /**
- * Get the workspace root. A utility method.
- * @return the workspace root.
- *
- * @since 1.2.0
- */
- protected IWorkspaceRoot getWorkspaceRoot() {
- return ResourcesPlugin.getWorkspace().getRoot();
- }
-}
diff --git a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/JemProjectUtilities.java b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/JemProjectUtilities.java
deleted file mode 100644
index 4fdb59a2e..000000000
--- a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/JemProjectUtilities.java
+++ /dev/null
@@ -1,746 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.workbench.utility;
-/*
- * $RCSfile: JemProjectUtilities.java,v $ $Revision: 1.10 $ $Date: 2005/09/14 23:30:27 $
- */
-
-import java.net.URL;
-import java.util.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jdt.core.*;
-
-import org.eclipse.jem.internal.plugin.JavaEMFNature;
-import org.eclipse.jem.java.JavaClass;
-import org.eclipse.jem.java.JavaRefFactory;
-import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
-import org.eclipse.jem.util.emf.workbench.WorkbenchResourceHelperBase;
-import org.eclipse.jem.util.emf.workbench.nature.EMFNature;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
-
-/**
- * Project Utilities for JEM and Java.
- *
- * @since 1.1.0
- */
-public class JemProjectUtilities extends ProjectUtilities {
-
- private JemProjectUtilities(){
- }
-
- /**
- * The nature id for JEM Nature.
- *
- * @since 1.1.0
- */
- public static final String JEM_EMF_NatureID = IJavaEMFNature.NATURE_ID;
-
- /**
- * Get the EMF nature for JEM for the project.
- * @param project
- * @param addNature true
if add the nature to the project if not set. false
if don't add nature if not already on project.
- * @return the EMFNature or null
if not found and addNature was false
or it was not a java project.
- * @throws CoreException
- *
- * @since 1.1.0
- */
- public static EMFNature getJEM_EMF_Nature(IProject project, boolean addNature) throws CoreException {
- return addNature ? JavaEMFNature.createRuntime(project) : JavaEMFNature.getRuntime(project);
- }
-
- /**
- * Get the JavaClass from an IFile.
- * @param aFile
- * @return
- *
- * @since 1.1.0
- */
- public static JavaClass getJavaClass(IFile aFile) {
- if (aFile == null)
- return null;
- IProject project = aFile.getProject();
- List folders = getSourceContainers(project);
- folders.addAll(getLibraryContainers(project));
- IContainer folder = null;
- IPath folderPath, filePath, javaPath;
- filePath = aFile.getProjectRelativePath();
- if (folders != null) {
- for (int i = 0; i < folders.size(); i++) {
- folder = (IContainer) folders.get(i);
- folderPath = folder.getProjectRelativePath();
- int segments = filePath.matchingFirstSegments(folderPath);
- if (segments > 0) {
- javaPath = filePath.removeFirstSegments(segments);
- javaPath = javaPath.removeFileExtension();
- String qualifiedName = javaPath.toString().replace('/', '.');
- return (JavaClass) JavaRefFactory.eINSTANCE.reflectType(qualifiedName, WorkbenchResourceHelperBase.getResourceSet(project));
- }
- }
- }
- return null;
- }
-
- /**
- * Get source containers for the project.
- *
- * @param p
- * project
- * @return list of source containers.
- *
- * @since 1.0.0
- */
- public static List getSourceContainers(IProject p) {
- try {
- List sourceContainers = new ArrayList();
- List sourcePaths = getSourcePaths(p);
- if (sourcePaths != null && !sourcePaths.isEmpty()) {
- for (int i = 0; i < sourcePaths.size(); i++) {
- IPath path = (IPath) sourcePaths.get(i);
- if (path.isEmpty())
- sourceContainers.add(p);
- else
- sourceContainers.add(p.getFolder(path));
- }
- }
- return sourceContainers;
- } catch (IllegalArgumentException ex) {
- return Collections.EMPTY_LIST;
- }
- }
-
- protected static List getSourcePaths(IProject p) {
- IJavaProject javaProj = getJavaProject(p);
- if (javaProj == null)
- return null;
- IClasspathEntry[] cp = null;
- try {
- cp = javaProj.getRawClasspath();
- } catch (JavaModelException ex) {
- JEMUtilPlugin.getLogger().logError(ex);
- return null;
- }
- List sourcePaths = new ArrayList();
- for (int i = 0; i < cp.length; i++) {
- if (cp[i].getEntryKind() == IClasspathEntry.CPE_SOURCE) {
- sourcePaths.add(cp[i].getPath().removeFirstSegments(1));
- }
- }
- return sourcePaths;
- }
-
- /**
- * Return list of IContainers that are Libraries in the classpath.
- *
- * @param p
- * project
- * @return list of library IContainers.
- *
- * @since 1.0.0
- */
- public static List getLibraryContainers(IProject p) {
- try {
- List libraryContainers = new ArrayList();
- List libraryPaths = getlibraryPaths(p);
- if (libraryPaths != null && !libraryPaths.isEmpty()) {
- for (int i = 0; i < libraryPaths.size(); i++) {
- IPath path = (IPath) libraryPaths.get(i);
- if (path.isEmpty())
- libraryContainers.add(p);
- else
- libraryContainers.add(p.getFolder(path));
- }
- }
- return libraryContainers;
- } catch (IllegalArgumentException ex) {
- return Collections.EMPTY_LIST;
- }
- }
-
-
- protected static List getlibraryPaths(IProject p) {
- IJavaProject javaProj = getJavaProject(p);
- if (javaProj == null)
- return null;
- IClasspathEntry[] cp = null;
- try {
- cp = javaProj.getRawClasspath();
- } catch (JavaModelException ex) {
- JEMUtilPlugin.getLogger().logError(ex);
- return null;
- }
- List libraryPaths = new ArrayList();
- for (int i = 0; i < cp.length; i++) {
- if (cp[i].getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
- libraryPaths.add(cp[i].getPath().removeFirstSegments(1));
- }
- }
- return libraryPaths;
- }
-
- /**
- * Get the java project nature for the given project.
- *
- * @param p
- * project
- * @return the java project nature for the project or null
if not a java project.
- *
- * @since 1.0.0
- */
- public static IJavaProject getJavaProject(IProject p) {
- try {
- return (IJavaProject) p.getNature(JavaCore.NATURE_ID);
- } catch (CoreException ignore) {
- return null;
- }
- }
-
- /**
- * Touch classpath. It simply takes the classpath and sets it back in.
- *
- * @param javaProject
- * @throws JavaModelException
- *
- * @since 1.0.0
- */
- public static void updateClasspath(IJavaProject javaProject) throws JavaModelException {
- if (javaProject != null)
- javaProject.setRawClasspath(javaProject.getRawClasspath(), new NullProgressMonitor());
- }
-
- /**
- * Return the location of the binary output files for the JavaProject.
- *
- * @param p
- * project
- * @return path to binary output folder or null
if not java project or other problem.
- *
- * @since 1.0.0
- */
- public static IPath getJavaProjectOutputLocation(IProject p) {
- try {
- IJavaProject javaProj = getJavaProject(p);
- if (javaProj == null)
- return null;
- if (!javaProj.isOpen())
- javaProj.open(null);
- return javaProj.getOutputLocation();
- } catch (JavaModelException e) {
- return null;
- }
- }
-
- /**
- * Get the project's binary output container.
- *
- * @param p
- * project
- * @return project's output container or null
if not java project or some other error.
- *
- * @since 1.0.0
- */
- public static IContainer getJavaProjectOutputContainer(IProject p) {
- IPath path = getJavaProjectOutputLocation(p);
- if (path == null)
- return null;
- if (path.segmentCount() == 1)
- return p;
- return p.getFolder(path.removeFirstSegments(1));
- }
-
- /**
- * Get the binary output absolute (local file system) path.
- *
- * @param p
- * project
- * @return project's output path or null
if not java project or some other error.
- *
- * @since 1.0.0
- */
- public static IPath getJavaProjectOutputAbsoluteLocation(IProject p) {
- IContainer container = getJavaProjectOutputContainer(p);
- if (container != null)
- return container.getLocation();
- return null;
- }
-
- /**
- * Get the JDT JavaModel.
- *
- * @return JDT's JavaModel
- *
- * @since 1.0.0
- */
- public static IJavaModel getJavaModel() {
- return JavaCore.create(ResourcesPlugin.getWorkspace().getRoot());
- }
-
- /**
- * Get all source package fragment roots.
- *
- * @param javaProj
- * @return source package fragment roots
- * @throws JavaModelException
- *
- * @since 1.0.0
- */
- public static List getSourcePackageFragmentRoots(IJavaProject javaProj) throws JavaModelException {
- List result = new ArrayList();
- IPackageFragmentRoot[] roots = javaProj.getPackageFragmentRoots();
- for (int i = 0; i < roots.length; i++) {
- IPackageFragmentRoot root = roots[i];
- if (root.getKind() == IPackageFragmentRoot.K_SOURCE)
- result.add(result);
- }
- return result;
- }
-
- /**
- * Remove the resource from the classpath
- *
- * @param p
- * project
- * @param res
- * resource
- * @throws JavaModelException
- *
- * @since 1.0.0
- */
- public static void removeFromJavaClassPath(IProject p, IResource res) throws JavaModelException {
- IClasspathEntry entry = JavaCore.newLibraryEntry(res.getFullPath(), null, null);
- removeFromJavaClassPath(p, entry);
- }
-
- /**
- * Remove the path from the classpath
- *
- * @param p
- * project
- * @param path
- * path to remove
- * @throws JavaModelException
- *
- * @since 1.0.0
- */
- public static void removeFromJavaClassPath(IProject p, IPath path) throws JavaModelException {
- org.eclipse.core.resources.IFile f = p.getFile(path);
- removeFromJavaClassPath(p, f);
- }
-
- /**
- * Remove the classpath entry from the project's classpath.
- *
- * @param p
- * @param entry
- * @throws JavaModelException
- *
- * @since 1.0.0
- */
- public static void removeFromJavaClassPath(IProject p, IClasspathEntry entry) throws JavaModelException {
- IJavaProject javaProject = null;
- try {
- javaProject = (IJavaProject) p.getNature(JavaCore.NATURE_ID);
- } catch (CoreException ignore) {
- }
- if (javaProject != null) {
- IClasspathEntry[] classpath = javaProject.getRawClasspath();
- javaProject.setRawClasspath(primRemoveFromJavaClassPath(classpath, entry), new NullProgressMonitor());
- }
- }
-
- /**
- * Remove the list of entries from the classpath of the project.
- *
- * @param p
- * project
- * @param entries
- * list of IClassPathEntry's
- * @throws JavaModelException
- *
- * @since 1.0.0
- */
- public static void removeFromJavaClassPath(IProject p, List entries) throws JavaModelException {
- IJavaProject javaProject = null;
- try {
- javaProject = (IJavaProject) p.getNature(JavaCore.NATURE_ID);
- } catch (CoreException ignore) {
- }
- if (javaProject != null) {
- IClasspathEntry[] classpath = javaProject.getRawClasspath();
- javaProject.setRawClasspath(primRemoveFromJavaClassPath(classpath, entries), new NullProgressMonitor());
- }
- }
-
- protected static IClasspathEntry[] primRemoveFromJavaClassPath(IClasspathEntry[] classpath, IClasspathEntry entry) throws JavaModelException {
- List result = new ArrayList();
- boolean didRemove = false;
- for (int i = 0; i < classpath.length; i++) {
- IClasspathEntry cpEntry = classpath[i];
- if (!entry.getPath().equals(classpath[i].getPath()))
- result.add(cpEntry);
- else
- didRemove = true;
- }
- if (!didRemove)
- return classpath;
- return (IClasspathEntry[]) result.toArray(new IClasspathEntry[result.size()]);
- }
-
- protected static IClasspathEntry[] primRemoveFromJavaClassPath(IClasspathEntry[] classpath, List entries) throws JavaModelException {
- List arrayList = Arrays.asList(classpath);
- List removeable = new ArrayList(arrayList);
- IClasspathEntry entry;
- boolean didRemove = false;
- int size = entries.size();
- for (int i = 0; i < size; i++) {
- entry = (IClasspathEntry) entries.get(i);
- for (int j = 0; j < classpath.length; j++) {
- IClasspathEntry cpEntry = classpath[j];
- if (entry.getPath().equals(classpath[j].getPath())) {
- if (removeable.remove(cpEntry))
- didRemove = true;
- }
- }
- }
- if (!didRemove)
- return classpath;
- return (IClasspathEntry[]) removeable.toArray(new IClasspathEntry[removeable.size()]);
- }
-
- /**
- * Get the classpath as an array or URL's.
- *
- * @param javaProject
- * @return array of URL's or null
if javaProject was null
.
- *
- * @since 1.0.0
- */
- public static URL[] getClasspathAsURLArray(IJavaProject javaProject) {
- if (javaProject == null)
- return null;
- Set visited = new HashSet();
- List urls = new ArrayList(20);
- collectClasspathURLs(javaProject, urls, visited, true);
- URL[] result = new URL[urls.size()];
- urls.toArray(result);
- return result;
- }
-
- private static void collectClasspathURLs(IJavaProject javaProject, List urls, Set visited, boolean isFirstProject) {
- if (visited.contains(javaProject))
- return;
- visited.add(javaProject);
- IPath outPath = getJavaProjectOutputAbsoluteLocation(javaProject.getProject());
- outPath = outPath.addTrailingSeparator();
- URL out = ProjectUtilities.createFileURL(outPath);
- urls.add(out);
- IClasspathEntry[] entries = null;
- try {
- entries = javaProject.getResolvedClasspath(true);
- } catch (JavaModelException e) {
- return;
- }
- IClasspathEntry entry;
- for (int i = 0; i < entries.length; i++) {
- entry = entries[i];
- switch (entry.getEntryKind()) {
- case IClasspathEntry.CPE_LIBRARY:
- case IClasspathEntry.CPE_CONTAINER:
- case IClasspathEntry.CPE_VARIABLE:
- collectClasspathEntryURL(entry, urls);
- break;
- case IClasspathEntry.CPE_PROJECT: {
- if (isFirstProject || entry.isExported())
- collectClasspathURLs(getJavaProject(entry), urls, visited, false);
- break;
- }
- }
- }
- }
-
- private static void collectClasspathEntryURL(IClasspathEntry entry, List urls) {
- IPath path = entry.getPath();
- if (null == path.getDevice()) {
- IFile jarFile = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
- if (jarFile.exists()) {
- path = jarFile.getLocation();
- }
- }
-
- URL url = ProjectUtilities.createFileURL(path);
- if (url != null)
- urls.add(url);
- }
-
-
- private static IJavaProject getJavaProject(IClasspathEntry entry) {
- IProject proj = ResourcesPlugin.getWorkspace().getRoot().getProject(entry.getPath().segment(0));
- if (proj != null)
- return getJavaProject(proj);
- return null;
- }
-
- /**
- * Is this project a binary project.
- * true
if project is a binary project.
- */
- public static boolean isBinaryProject(IProject aProject) {
-
- IJavaProject javaProj = getJavaProject(aProject);
- if (javaProj == null)
- return false;
- IClasspathEntry[] entries = null;
- try {
- entries = javaProj.getRawClasspath();
- } catch (JavaModelException jme) {
- return false;
- }
- for (int i = 0; i < entries.length; i++) {
- IClasspathEntry entry = entries[i];
- if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE)
- return false;
- }
- return true;
- }
-
- /**
- * Append to java class path.
- * null
the first folder
- * @return path searched for or null
if not java project or some other problem.
- *
- * @since 1.0.0
- */
- public static IPath getSourcePathOrFirst(IProject p, String defaultSourceName) {
- IJavaProject javaProj = getJavaProject(p);
- if (javaProj == null)
- return null;
- IClasspathEntry[] cp = null;
- try {
- cp = javaProj.getRawClasspath();
- } catch (JavaModelException ex) {
- JEMUtilPlugin.getLogger().logError(ex);
- return null;
- }
- IClasspathEntry firstSource = null;
- IPath defaultSourcePath = null;
- if (defaultSourceName != null)
- defaultSourcePath = ProjectUtilities.createPath(p, defaultSourceName);
- for (int i = 0; i < cp.length; i++) {
- if (cp[i].getEntryKind() == IClasspathEntry.CPE_SOURCE) {
- if (firstSource == null) {
- firstSource = cp[i];
- if (defaultSourcePath == null)
- break;
- }
- if (cp[i].getPath().equals(defaultSourcePath))
- return defaultSourcePath.removeFirstSegments(1);
- }
- }
- if (firstSource == null)
- return null;
- if (firstSource.getPath().segment(0).equals(p.getName()))
- return firstSource.getPath().removeFirstSegments(1);
- return null;
- }
-
- /**
- * Hack to force a reload of the .classpath file
- *
- * @param project
- * project to reload
- * @since 1.0.0
- */
- public static void forceClasspathReload(IProject project) throws JavaModelException {
- IJavaProject javaProj = getJavaProject(project);
- if (javaProj != null) {
- IClasspathEntry[] entries = javaProj.readRawClasspath();
- if (entries != null) {
- IPath output = javaProj.readOutputLocation();
- if (output != null)
- javaProj.setRawClasspath(entries, output, null);
- }
- }
- }
-
- /**
- * Get the paths of all of the local jars in the classpath for the project. It does not recurse into referenced projects.
- *
- * @param proj
- * project to search (should be a java project).
- * @return A list of IPath, where each entry is a project relative path to a JAR contained in the project.
- */
- public static List getLocalJARPathsFromClasspath(IProject proj) {
- IJavaProject javaProj = getJavaProject(proj);
- if (javaProj == null)
- return null;
- IPath projectPath = proj.getFullPath();
- List result = new ArrayList();
- try {
- IClasspathEntry[] entries = javaProj.getRawClasspath();
- for (int i = 0; i < entries.length; i++) {
- IClasspathEntry entry = entries[i];
- if (entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
- IPath path = entry.getPath();
- int segments = path.matchingFirstSegments(projectPath);
- if (segments > 0)
- result.add(path.removeFirstSegments(segments));
- }
- }
- } catch (JavaModelException e) {
- JEMUtilPlugin.getLogger().logError(e);
- }
- return result;
- }
-
-
- /**
- * Return the source folder matching the parameter; if the parameter is null, or if the source folder is not on the classpath, return the first
- * source folder on the classpath
- *
- * @param p
- * project
- * @param defaultSourceName
- * source folder to find if on classpath, or if null
the first folder
- * @return container searched for or null
if not java project or some other problem.
- *
- * @since 1.0.0
- */
- public static IContainer getSourceFolderOrFirst(IProject p, String defaultSourceName) {
- try {
- IPath sourcePath = getSourcePathOrFirst(p, defaultSourceName);
- if (sourcePath == null)
- return null;
- else if (sourcePath.isEmpty())
- return p;
- else
- return p.getFolder(sourcePath);
- } catch (IllegalArgumentException ex) {
- return null;
- }
- }
-
- /**
- * Returns a list of IFolder that represents each source folder in a java project
- *
- * @deprecated Use {@link #getSourceContainers(IProject)}because the project itself might be a source container
- *
- * @param p
- * project
- * @return
- *
- * @since 1.0.0
- */
- public static List getSourceFolders(IProject p) {
- try {
- List sourceFolders = new ArrayList();
- List sourcePaths = getSourcePaths(p);
- if (sourcePaths != null && !sourcePaths.isEmpty()) {
- for (int i = 0; i < sourcePaths.size(); i++) {
- IPath path = (IPath) sourcePaths.get(i);
- if (!path.isEmpty())
- sourceFolders.add(p.getFolder(path));
- }
- }
- return sourceFolders;
- } catch (IllegalArgumentException ex) {
- return Collections.EMPTY_LIST;
- }
- }
-}
diff --git a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/NoASTResolver.java b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/NoASTResolver.java
deleted file mode 100644
index 5c9e1e9b5..000000000
--- a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/NoASTResolver.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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: NoASTResolver.java,v $
- * $Revision: 1.4 $ $Date: 2005/08/24 21:13:53 $
- */
-package org.eclipse.jem.workbench.utility;
-
-import org.eclipse.jdt.core.dom.Name;
-import org.eclipse.jdt.core.dom.Type;
-
-import org.eclipse.jem.internal.instantiation.InstantiationFactory;
-import org.eclipse.jem.internal.instantiation.PTExpression;
-import org.eclipse.jem.workbench.utility.ParseTreeCreationFromAST.InvalidExpressionException;
-
-
-/**
- * This is used for AST Resolution, but it simply turns Name into PTName. Useful when
- * just creating a parse tree where we know the names are ok and just types.
- * @since 1.0.0
- */
-public class NoASTResolver extends ASTBoundResolver {
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.workbench.utility.ParseTreeCreationFromAST.Resolver#resolveName(org.eclipse.jdt.core.dom.Name)
- */
- public PTExpression resolveName(Name name) throws InvalidExpressionException {
- return InstantiationFactory.eINSTANCE.createPTName(name.toString());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.workbench.utility.ParseTreeCreationFromAST.Resolver#resolveType(org.eclipse.jdt.core.dom.Type)
- */
- public String resolveType(Type type) {
- return type.toString();
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.workbench.utility.ParseTreeCreationFromAST.Resolver#resolveType(org.eclipse.jdt.core.dom.Name)
- */
- public String resolveType(Name name) throws InvalidExpressionException {
- return name.toString();
- }
-}
diff --git a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ParseTreeCreationFromAST.java b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ParseTreeCreationFromAST.java
deleted file mode 100644
index 9b668ba62..000000000
--- a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ParseTreeCreationFromAST.java
+++ /dev/null
@@ -1,587 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 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: ParseTreeCreationFromAST.java,v $
- * $Revision: 1.19 $ $Date: 2006/05/17 20:13:58 $
- */
-package org.eclipse.jem.workbench.utility;
-
-import java.text.MessageFormat;
-import java.util.HashMap;
-import java.util.List;
-
-import org.eclipse.jdt.core.dom.*;
-
-import org.eclipse.jem.internal.instantiation.*;
-
-/**
- * Create a parse tree from an AST node.
- * @since 1.0.0
- */
-public class ParseTreeCreationFromAST extends ASTVisitor {
- protected final Resolver resolver;
- protected PTExpression expression; // Each visit (or endvisit) will put into expression the result of the visit if it produced an expression.
-
- /**
- * This is the abstract base class used by ParseTreeCreationFromAST to resolve the types to the appropriate
- * types (e.g. "String" to "java.lang.String").
- *
- * @see org.eclipse.jem.workbench.utility.ParseTreeCreationFromAST
- * @since 1.0.0
- */
- public static abstract class Resolver {
-
- /**
- * Resolve the Name. It can return either a PTName if it is just a classname,
- * or a PTFieldAccess if it resolves to a PTFieldAccess. The PTFieldAccess should
- * be complete. e.g we have class like:
- *
- * package xyz;
- * public class AClass {
- * public java.awt.Rectangle rect;
- * }
- *
- * Then a Name like AClass.rect.x
should resolve to:
- *
- * PTFieldAccess:
- * receiver:
- * PTFieldAccess
- * receiver: xyz.AClass
- * field: "rect"
- * field: "x"
- *
- * Actually it can return any valid expression that has a value (i.e. it cannot be a method invocation with a void
return type).
- *
- * @param name
- * @return Either a fully-qualified name (as a PTName) or a PTFieldAccess, any other type of expression.
- *
- * @since 1.0.0
- */
- public abstract PTExpression resolveName(Name name) throws InvalidExpressionException;
-
- /**
- * Resolve the type. If it is an array type return it in format "type[][]".
- *
- * @param type
- * @return The type name, including brackets if array type.
- *
- * @since 1.0.0
- */
- public abstract String resolveType(Type type) throws InvalidExpressionException;
-
- /**
- * This is for resolving "this" literal. It should either return a PTThisLiteral, if it
- * can't do resolve, or some PTExpression that can resolve to "this" for evaluation.
- *
- * @return If resolvable, a PTExpression, else a PTThisLiteral if not resolvable.
- * @throws InvalidExpressionException
- *
- * @since 1.0.0
- */
- public abstract PTExpression resolveThis() throws InvalidExpressionException;
-
- /**
- * Resolve the type specified as a Name. It may be a simple name or it may be
- * a qualified name. This is used when we have Name that we know must be a
- * type. This is so that there is no confusion with it possibly being a field or variable
- * that has the same case and spelling as a type name.
- * @param name
- * @return the type name.
- * @throws InvalidExpressionException
- *
- * @since 1.0.0
- */
- public abstract String resolveType(Name name) throws InvalidExpressionException;
-
- /**
- * This is used by the resolver if it can't resolve for some reason. This will throw
- * an invalid expression exception which will be handled by the ParseTreeCreationFromAST.
- *
- * @param msg Message to be put into the exception.
- * @throws InvalidExpressionException
- *
- * @since 1.0.0
- */
- protected final void throwInvalidExpressionException(String msg) throws InvalidExpressionException {
- throw new InvalidExpressionException(msg);
- }
- }
-
- /*
- * When an invalid expression has been found this exception should be thrown. It will
- * be caught at the top and converted into an InvalidExpression and the rest of the parse tree will be
- * thrown away.
- *
- * The message will be a message as to why it is invalid.
- *
- * @since 1.0.0
- */
- protected static class InvalidExpressionException extends IllegalArgumentException {
-
- /**
- * Comment for serialVersionUID
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = 2429845631915206678L;
-
- /**
- * @param s The message to be used in the final invalid expression.
- *
- * @since 1.0.0
- */
- public InvalidExpressionException(String s) {
- super(s);
- }
- }
-
- /**
- * Construct with the given resolver.
- *
- * @param resolver
- *
- * @since 1.0.0
- */
- public ParseTreeCreationFromAST(Resolver resolver) {
- this.resolver = resolver;
- }
-
- /**
- * Process the AST Expression and return a PTExpression. If any part was invalid, then
- * only an PTInvalidExpression will be returned.
- *
- * @param astExpression
- * @return The PTExpression.
- *
- * @since 1.0.0
- */
- public final PTExpression createExpression(Expression astExpression) {
- try {
- return perform(astExpression);
- } catch (InvalidExpressionException e) {
- // Create a msg that is formed of the exception message and the full init string.
- String msg = MessageFormat.format(WorkbenchUtilityMessages.ParseTreeCreationFromAST_0, new Object[] {e.getLocalizedMessage(), astExpression.toString()});
- PTInvalidExpression exp = InstantiationFactory.eINSTANCE.createPTInvalidExpression();
- exp.setMessage(msg);
- return exp;
- }
- }
-
- /*
- * Visit the AST expression and get the ParseTree Expression.
- * This is used by the individual visits when parsing a tree.
- * It passes to the top method (createExpression), which can
- * handle the InvalidExpressionException.
- *
- * If any visit doesn't return an expression, then an invalid
- * expression exception will be thrown to indicate this. If the
- * incoming expression is null
, then return of null
is ok because
- * this would be for an optional expression which didn't exist.
- *
- * @return The new ParseTree Expression or null
if incoming expression was null.
- *
- * @see createExpression(org.eclipse.jdt.core.dom.Expression)
- * @exception InvalidExpressionException
- * @since 1.0.0
- */
- protected final PTExpression perform(Expression astExpression) {
- if (astExpression != null) {
- expression = null;
- astExpression.accept(this);
- if (expression == null)
- throw new InvalidExpressionException(MessageFormat.format(WorkbenchUtilityMessages.ParseTreeCreationFromAST_ExpressionTooComplicated_EXC_, new Object[] {astExpression.toString()}));
- return expression;
- } else
- return null; // This is ok. It means an optional expression was being processed and the expression didn't exist.
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.ArrayAccess)
- */
- public boolean visit(ArrayAccess node) {
- PTArrayAccess aa = InstantiationFactory.eINSTANCE.createPTArrayAccess();
- List indexes = aa.getIndexes();
- Expression arrayExp = node;
- while (arrayExp.getNodeType() == ASTNode.ARRAY_ACCESS) {
- // Visit the index to get the index expression.
- ArrayAccess array = (ArrayAccess) arrayExp;
- indexes.add(0, perform(array.getIndex())); // We're trying to create the final expression from inside out, the indexes are created in reverse order.
- arrayExp = array.getArray();
- }
- aa.setArray(perform(arrayExp)); // Final arrayExp is the true expression.
- expression = aa; // Set the return expression for this visit.
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.ArrayCreation)
- */
- public boolean visit(ArrayCreation node) {
- PTArrayCreation ac = InstantiationFactory.eINSTANCE.createPTArrayCreation();
- ac.setType(resolver.resolveType(node.getType()));
- List acDims = ac.getDimensions();
- List nDims = node.dimensions();
- int nsize = nDims.size();
- for (int i = 0; i < nsize; i++) {
- acDims.add(perform((Expression) nDims.get(i)));
- }
- ac.setInitializer((PTArrayInitializer) perform(node.getInitializer()));
- expression = ac;
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.ArrayInitializer)
- */
- public boolean visit(ArrayInitializer node) {
- PTArrayInitializer ai = InstantiationFactory.eINSTANCE.createPTArrayInitializer();
- List exps = node.expressions();
- List aiexps = ai.getExpressions();
- int nexp = exps.size();
- for (int i = 0; i < nexp; i++) {
- aiexps.add(perform((Expression) exps.get(i)));
- }
- expression = ai;
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.Assignment)
- */
- public boolean visit(Assignment node) {
- return false; // We can't handle assignment.
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.BooleanLiteral)
- */
- public boolean visit(BooleanLiteral node) {
- PTBooleanLiteral bl = InstantiationFactory.eINSTANCE.createPTBooleanLiteral();
- bl.setBooleanValue(node.booleanValue());
- expression = bl;
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.CastExpression)
- */
- public boolean visit(CastExpression node) {
- PTCastExpression ct = InstantiationFactory.eINSTANCE.createPTCastExpression();
- ct.setType(resolver.resolveType(node.getType()));
- ct.setExpression(perform(node.getExpression()));
- expression = ct;
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.CharacterLiteral)
- */
- public boolean visit(CharacterLiteral node) {
- PTCharacterLiteral cl = InstantiationFactory.eINSTANCE.createPTCharacterLiteral();
- cl.setEscapedValue(node.getEscapedValue());
- cl.setCharValue(node.charValue());
- expression = cl;
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.ClassInstanceCreation)
- */
- public boolean visit(ClassInstanceCreation node) {
- if (node.getAnonymousClassDeclaration() != null) {
- PTAnonymousClassDeclaration adecl = InstantiationFactory.eINSTANCE.createPTAnonymousClassDeclaration();
- adecl.setDeclaration(node.toString());
- expression = adecl;
- } else {
- PTClassInstanceCreation cic = InstantiationFactory.eINSTANCE.createPTClassInstanceCreation();
- // If ast level = 2, then you must use getName, but the name needs to be turned into a type
- // so that it can be resolved. If ast level > 2, then it will return a type to be resolved.
- // Note: can't just use resolve name on the name because if a field and a class were spelled
- // the same then the codegen resolver would return an instance ref to the field instead.
- String type = node.getAST().apiLevel() == AST.JLS2 ? resolver.resolveType(node.getName()) : resolver.resolveType(node.getType());
- if (type == null) {
- type = node.getAST().apiLevel() == AST.JLS2 ? node.getName().getFullyQualifiedName() : node.getType().toString();
- }
- cic.setType(type);
- List args = cic.getArguments();
- List nargs = node.arguments();
- int nsize = nargs.size();
- for (int i = 0; i < nsize; i++) {
- args.add(perform((Expression) nargs.get(i)));
- }
- expression = cic;
- }
- return false;
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.ConditionalExpression)
- */
- public boolean visit(ConditionalExpression node) {
- PTConditionalExpression ce = InstantiationFactory.eINSTANCE.createPTConditionalExpression();
- ce.setCondition(perform(node.getExpression()));
- ce.setTrue(perform(node.getThenExpression()));
- ce.setFalse(perform(node.getElseExpression()));
- expression = ce;
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.FieldAccess)
- */
- public boolean visit(FieldAccess node) {
- expression = createFieldAccess(node.getName().getIdentifier(), perform(node.getExpression()));
- return false;
- }
-
- protected PTExpression createFieldAccess(String name, PTExpression receiver) {
- PTFieldAccess fa = InstantiationFactory.eINSTANCE.createPTFieldAccess();
- fa.setReceiver(receiver);
- fa.setField(name);
- return fa;
- }
-
- private static HashMap infixOperToParseOper;
- private final PTInfixOperator getParseInfix(InfixExpression.Operator operator) {
- if (prefixOperToParseOper == null) {
- infixOperToParseOper = new HashMap(5);
- infixOperToParseOper.put(InfixExpression.Operator.AND, PTInfixOperator.AND_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.CONDITIONAL_AND, PTInfixOperator.CONDITIONAL_AND_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.CONDITIONAL_OR, PTInfixOperator.CONDITIONAL_OR_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.DIVIDE, PTInfixOperator.DIVIDE_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.EQUALS, PTInfixOperator.EQUALS_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.GREATER_EQUALS, PTInfixOperator.GREATER_EQUALS_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.GREATER, PTInfixOperator.GREATER_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.LEFT_SHIFT, PTInfixOperator.LEFT_SHIFT_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.LESS_EQUALS, PTInfixOperator.LESS_EQUALS_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.LESS, PTInfixOperator.LESS_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.MINUS, PTInfixOperator.MINUS_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.NOT_EQUALS, PTInfixOperator.NOT_EQUALS_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.OR, PTInfixOperator.OR_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.PLUS, PTInfixOperator.PLUS_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.REMAINDER, PTInfixOperator.REMAINDER_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.RIGHT_SHIFT_SIGNED, PTInfixOperator.RIGHT_SHIFT_SIGNED_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.RIGHT_SHIFT_UNSIGNED, PTInfixOperator.RIGHT_SHIFT_UNSIGNED_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.TIMES, PTInfixOperator.TIMES_LITERAL);
- infixOperToParseOper.put(InfixExpression.Operator.XOR, PTInfixOperator.XOR_LITERAL);
- }
- return (PTInfixOperator) infixOperToParseOper.get(operator);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.InfixExpression)
- */
- public boolean visit(InfixExpression node) {
- PTInfixExpression inf = InstantiationFactory.eINSTANCE.createPTInfixExpression();
- inf.setLeftOperand(perform(node.getLeftOperand()));
- PTInfixOperator inoper = getParseInfix(node.getOperator());
- if (inoper == null) {
- // It is not one we can handle.
- throw new InvalidExpressionException(
- MessageFormat.format(WorkbenchUtilityMessages.ParseTreeCreationFromAST_OperatorTooComplicatedToHandle_EXC_, new Object[] { node.getOperator().toString() }));
- }
- inf.setOperator(inoper);
- inf.setRightOperand(perform(node.getRightOperand()));
- List eops = inf.getExtendedOperands();
- List neops = node.extendedOperands();
- int nsize = neops.size();
- for (int i = 0; i < nsize; i++) {
- eops.add(perform((Expression) neops.get(i)));
- }
- expression = inf;
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.InstanceofExpression)
- */
- public boolean visit(InstanceofExpression node) {
- PTInstanceof inof = InstantiationFactory.eINSTANCE.createPTInstanceof();
- inof.setOperand(perform(node.getLeftOperand()));
- inof.setType(resolver.resolveType(node.getRightOperand()));
- expression = inof;
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.PostfixExpression)
- */
- public boolean visit(PostfixExpression node) {
- return false; // We can't handle post fix.
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.MethodInvocation)
- */
- public boolean visit(MethodInvocation node) {
- expression = createMethodInvocation(node.getName().getIdentifier(), perform(node.getExpression()), node.arguments());
- return false;
- }
-
- /**
- * Create a method invocation using the giving receiver, name, args.
- * @param node
- * @return
- *
- * @since 1.2.0
- */
- protected PTMethodInvocation createMethodInvocation(String name, PTExpression receiver, List argExpressions) {
- PTMethodInvocation mi = InstantiationFactory.eINSTANCE.createPTMethodInvocation();
- mi.setReceiver(receiver);
- mi.setName(name);
- List args = mi.getArguments();
- int nsize = argExpressions.size();
- for (int i = 0; i < nsize; i++) {
- args.add(perform((Expression) argExpressions.get(i)));
- }
- return mi;
- }
-
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.NullLiteral)
- */
- public boolean visit(NullLiteral node) {
- expression = InstantiationFactory.eINSTANCE.createPTNullLiteral();
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.NumberLiteral)
- */
- public boolean visit(NumberLiteral node) {
- PTNumberLiteral nl = InstantiationFactory.eINSTANCE.createPTNumberLiteral();
- nl.setToken(node.getToken());
- expression = nl;
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.ParenthesizedExpression)
- */
- public boolean visit(ParenthesizedExpression node) {
- PTParenthesizedExpression pe = InstantiationFactory.eINSTANCE.createPTParenthesizedExpression();
- pe.setExpression(perform(node.getExpression()));
- expression = pe;
- return false;
- }
-
- private static HashMap prefixOperToParseOper;
- private final PTPrefixOperator getParsePrefix(PrefixExpression.Operator operator) {
- if (prefixOperToParseOper == null) {
- prefixOperToParseOper = new HashMap(5);
- prefixOperToParseOper.put(PrefixExpression.Operator.COMPLEMENT, PTPrefixOperator.COMPLEMENT_LITERAL);
- prefixOperToParseOper.put(PrefixExpression.Operator.MINUS, PTPrefixOperator.MINUS_LITERAL);
- prefixOperToParseOper.put(PrefixExpression.Operator.NOT, PTPrefixOperator.NOT_LITERAL);
- prefixOperToParseOper.put(PrefixExpression.Operator.PLUS, PTPrefixOperator.PLUS_LITERAL);
- }
- return (PTPrefixOperator) prefixOperToParseOper.get(operator);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.PrefixExpression)
- */
- public boolean visit(PrefixExpression node) {
- if (node.getOperand().getNodeType() == ASTNode.NUMBER_LITERAL) {
- // For number literals we see if it is a "+" or "-" prefix, and if it is, we simply
- // create a PTNumberLiteral with the operator already in it. It is a simplification.
- // Any other operator we've left alone since those won't be decoded simply by the
- // Number decoder.
- // If not a number literal, then leave alone since needs to be handled as a prefix
- // operation.
- PrefixExpression.Operator operator = node.getOperator();
- if (operator == PrefixExpression.Operator.PLUS || operator == PrefixExpression.Operator.MINUS) {
- PTNumberLiteral nm = InstantiationFactory.eINSTANCE.createPTNumberLiteral();
- nm.setToken(operator.toString() + ((NumberLiteral) node.getOperand()).getToken());
- expression = nm;
- return false;
- }
- }
-
- PTPrefixExpression pe = InstantiationFactory.eINSTANCE.createPTPrefixExpression();
- PTPrefixOperator ptoper = getParsePrefix(node.getOperator());
- if (ptoper == null) {
- // It is not one we can handle.
- throw new InvalidExpressionException(
- MessageFormat.format(WorkbenchUtilityMessages.ParseTreeCreationFromAST_OperatorTooComplicatedToHandle_EXC_, new Object[] { node.getOperator().toString() }));
- }
- pe.setOperator(ptoper);
- pe.setExpression(perform(node.getOperand()));
- expression = pe;
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.QualifiedName)
- */
- public boolean visit(QualifiedName node) {
- expression = resolver.resolveName(node);
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.SimpleName)
- */
- public boolean visit(SimpleName node) {
- expression = resolver.resolveName(node);
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.StringLiteral)
- */
- public boolean visit(StringLiteral node) {
- PTStringLiteral sl = InstantiationFactory.eINSTANCE.createPTStringLiteral();
- sl.setEscapedValue(node.getEscapedValue());
- sl.setLiteralValue(node.getLiteralValue());
- expression = sl;
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.SuperFieldAccess)
- */
- public boolean visit(SuperFieldAccess node) {
- expression = createFieldAccess(node.getName().getIdentifier(), resolver.resolveThis());
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.SuperMethodInvocation)
- */
- public boolean visit(SuperMethodInvocation node) {
- expression = createMethodInvocation(node.getName().getIdentifier(), resolver.resolveThis(), node.arguments());
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.ThisExpression)
- */
- public boolean visit(ThisExpression node) {
- expression = resolver.resolveThis();
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.TypeLiteral)
- */
- public boolean visit(TypeLiteral node) {
- PTTypeLiteral ptl = InstantiationFactory.eINSTANCE.createPTTypeLiteral();
- ptl.setType(resolver.resolveType(node.getType()));
- expression = ptl;
- return false;
- }
-
-}
diff --git a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/WorkbenchUtilityMessages.java b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/WorkbenchUtilityMessages.java
deleted file mode 100644
index 13f09e2a5..000000000
--- a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/WorkbenchUtilityMessages.java
+++ /dev/null
@@ -1,32 +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.workbench.utility;
-
-import org.eclipse.osgi.util.NLS;
-
-public final class WorkbenchUtilityMessages extends NLS {
-
- private static final String BUNDLE_NAME = "org.eclipse.jem.workbench.utility.messages";//$NON-NLS-1$
-
- private WorkbenchUtilityMessages() {
- // Do not instantiate
- }
-
- public static String ParseTreeCreationFromAST_0;
- public static String ParseTreeCreationFromAST_ExpressionTooComplicated_EXC_;
- public static String ParseTreeCreationFromAST_OperatorTooComplicatedToHandle_EXC_;
- public static String ASTBoundResolver_CannotHandleLocalField_EXC_;
- public static String ASTBoundResolver_CannotHandleLocalVariable_EXC_;
-
- static {
- NLS.initializeMessages(BUNDLE_NAME, WorkbenchUtilityMessages.class);
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/messages.properties b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/messages.properties
deleted file mode 100644
index 9917f346f..000000000
--- a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/messages.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 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
-###############################################################################
-ParseTreeCreationFromAST_0 = {0} - {1}
-ParseTreeCreationFromAST_ExpressionTooComplicated_EXC_ = IWAV0177E Expression "{0}" is too complicated.
-ParseTreeCreationFromAST_OperatorTooComplicatedToHandle_EXC_ = IWAV0179E Operator "{0}" is too complicated to handle.
-ASTBoundResolver_CannotHandleLocalField_EXC_=Cannot handle local field access of "{0}"
-ASTBoundResolver_CannotHandleLocalVariable_EXC_=Cannot handle local variable access of "{0}"
diff --git a/plugins/org.eclipse.jem/.classpath b/plugins/org.eclipse.jem/.classpath
deleted file mode 100644
index 34cd7a659..000000000
--- a/plugins/org.eclipse.jem/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-
-null
if the input does
- * not encode an editor input, or if there is no remembered working copy for this
- * compilation unit
- */
- public org.eclipse.jdt.core.ICompilationUnit getExistingWorkingCopy(org.eclipse.jdt.core.ICompilationUnit cu) throws org.eclipse.core.runtime.CoreException {
- return getWorkingCopyManager().getExistingWorkingCopy(cu);
- }
-
- /**
- * Returns the working copy remembered for the compilation unit.
- *
- * @param input
- * ICompilationUnit
- * @return the working copy of the compilation unit, or null
if there is no
- * remembered working copy for this compilation unit
- */
- public org.eclipse.jdt.core.ICompilationUnit getWorkingCopy(ICompilationUnit cu, boolean forNewCU) throws CoreException {
- return getWorkingCopyManager().getWorkingCopy(cu, forNewCU);
- }
-
- /**
- * Save the new compilation units only.
- */
- protected void handleSaveIfNecessaryDidNotSave(IProgressMonitor monitor) {
- getWorkingCopyManager().saveOnlyNewCompilationUnits(monitor);
- }
-
- /**
- * @see org.eclipse.jst.j2ee.internal.internal.workbench.J2EEEditModel#isDirty()
- */
- public boolean isDirty() {
- boolean dirtyBool = super.isDirty();
- if (!dirtyBool && getWorkingCopyManager() != null)
- dirtyBool = getWorkingCopyManager().hasWorkingCopies();
- return dirtyBool;
- }
-
- /**
- * This will force all of the referenced Resources to be saved.
- */
- public void primSave(IProgressMonitor monitor) {
- saveCompilationUnits(monitor);
- if (monitor == null || !monitor.isCanceled())
- super.primSave(monitor);
- }
- protected void runSaveOperation(IWorkspaceRunnable runnable, IProgressMonitor monitor) throws SaveFailedException {
- try {
- ResourcesPlugin.getWorkspace().run(runnable, null,IWorkspace.AVOID_UPDATE,monitor);
- } catch (CoreException e) {
- throw new SaveFailedException(e);
- }
- }
-
- /**
- * Insert the method's description here. Creation date: (4/11/2001 4:14:26 PM)
- *
- * @return java.util.Set
- */
- public void processResource(Resource aResource) {
- if (aResource != null && !getResources().contains(aResource)) {
- if (aResource instanceof ReferencedResource) {
- access((ReferencedResource) aResource);
- //We need a better way to pass this through the save options instead.
- //We also need to make this dynamic based on the project target
- ((ReferencedResource) aResource).setFormat(CompatibilityXMIResource.FORMAT_MOF5);
- } else if (!isReadOnly())
- aResource.setTrackingModification(true);
- addResource(aResource);
- }
- }
-
- /**
- * Release each of the referenced resources.
- */
- protected void release(Resource aResource) {
-
- removeResource(aResource);
- if (aResource != null) {
- boolean isRefRes = aResource instanceof ReferencedResource;
- if (isRefRes)
- release((ReferencedResource) aResource);
- if (!isDisposing())
- resetWorkingCopyManager();
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.j2ee.internal.internal.workbench.J2EEEditModel#resourceIsLoadedChanged(org.eclipse.emf.ecore.resource.Resource,
- * boolean, boolean)
- */
- protected void resourceIsLoadedChanged(Resource aResource, boolean oldValue, boolean newValue) {
- if (!isReverting && !disposing && !isReadOnly() && oldValue && !newValue && aResource instanceof TranslatorResource)
- resetWorkingCopyManager();
- super.resourceIsLoadedChanged(aResource, oldValue, newValue);
- }
-
- protected void reverted(ReferencedResource revertedResource) {
- if (getWorkingCopyManager() != null)
- getWorkingCopyManager().revert();
- revertAllResources();
- }
-
- /**
- * This will save all of the referenced CompilationUnits to be saved.
- */
- public void saveCompilationUnits(IProgressMonitor monitor) {
- getWorkingCopyManager().saveCompilationUnits(monitor);
- }
-
- public WorkingCopyManager getWorkingCopyManager() {
- if (workingCopyManager == null)
- workingCopyManager = WorkingCopyManagerFactory.newRegisteredInstance();
- return workingCopyManager;
- }
-
- /**
- * Reset the working copy manager because the ejb-jar.xml was removed without disposing.
- */
- protected void resetWorkingCopyManager() {
- if (workingCopyManager != null) {
- workingCopyManager.dispose();
- workingCopyManager = null;
- }
- }
-
-
-}
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaProjectFacetCreationDataModelProvider.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaProjectFacetCreationDataModelProvider.java
deleted file mode 100644
index 5d24448fa..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaProjectFacetCreationDataModelProvider.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.jst.common.project.facet;
-
-import org.eclipse.wst.common.componentcore.datamodel.FacetProjectCreationDataModelProvider;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-public class JavaProjectFacetCreationDataModelProvider extends FacetProjectCreationDataModelProvider {
-
- public JavaProjectFacetCreationDataModelProvider() {
- super();
- }
-
- public void init() {
- super.init();
- FacetDataModelMap map = (FacetDataModelMap) getProperty(FACET_DM_MAP);
- IDataModel simpleWebFacet = DataModelFactory.createDataModel(new JavaFacetInstallDataModelProvider());
- map.add(simpleWebFacet);
- }
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.j2ee.core/META-INF/MANIFEST.MF
deleted file mode 100644
index eab14f748..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,81 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: J2EE Core Component
-Bundle-SymbolicName: org.eclipse.jst.j2ee.core; singleton:=true
-Bundle-Version: 1.1.0.qualifier
-Bundle-Activator: org.eclipse.jst.j2ee.core.internal.plugin.J2EECorePlugin
-Bundle-Vendor: Eclipse.org
-Bundle-Localization: plugin
-Export-Package: org.eclipse.jst.j2ee.application,
- org.eclipse.jst.j2ee.application.internal.impl;x-internal:=true,
- org.eclipse.jst.j2ee.application.internal.util;x-internal:=true,
- org.eclipse.jst.j2ee.client,
- org.eclipse.jst.j2ee.client.internal.impl;x-internal:=true,
- org.eclipse.jst.j2ee.client.internal.util;x-internal:=true,
- org.eclipse.jst.j2ee.common,
- org.eclipse.jst.j2ee.common.internal.impl;x-internal:=true,
- org.eclipse.jst.j2ee.common.internal.util;x-internal:=true,
- org.eclipse.jst.j2ee.commonarchivecore.internal;x-internal:=true,
- org.eclipse.jst.j2ee.commonarchivecore.internal.exception;x-internal:=true,
- org.eclipse.jst.j2ee.commonarchivecore.internal.helpers;x-internal:=true,
- org.eclipse.jst.j2ee.commonarchivecore.internal.impl;x-internal:=true,
- org.eclipse.jst.j2ee.commonarchivecore.internal.strategy;x-internal:=true,
- org.eclipse.jst.j2ee.commonarchivecore.internal.util;x-internal:=true,
- org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal;x-internal:=true,
- org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl;x-internal:=true,
- org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.util;x-internal:=true,
- org.eclipse.jst.j2ee.core.internal.bindings,
- org.eclipse.jst.j2ee.core.internal.plugin;x-internal:=true,
- org.eclipse.jst.j2ee.ejb,
- org.eclipse.jst.j2ee.ejb.internal.impl;x-internal:=true,
- org.eclipse.jst.j2ee.ejb.internal.util;x-internal:=true,
- org.eclipse.jst.j2ee.internal;x-internal:=true,
- org.eclipse.jst.j2ee.internal.common;x-internal:=true,
- org.eclipse.jst.j2ee.internal.model.translator.application;x-internal:=true,
- org.eclipse.jst.j2ee.internal.model.translator.client;x-internal:=true,
- org.eclipse.jst.j2ee.internal.model.translator.common;x-internal:=true,
- org.eclipse.jst.j2ee.internal.model.translator.connector;x-internal:=true,
- org.eclipse.jst.j2ee.internal.model.translator.ejb;x-internal:=true,
- org.eclipse.jst.j2ee.internal.model.translator.webapplication;x-internal:=true,
- org.eclipse.jst.j2ee.internal.model.translator.webservices;x-internal:=true,
- org.eclipse.jst.j2ee.internal.xml;x-internal:=true,
- org.eclipse.jst.j2ee.jca,
- org.eclipse.jst.j2ee.jca.internal.impl;x-internal:=true,
- org.eclipse.jst.j2ee.jca.internal.util;x-internal:=true,
- org.eclipse.jst.j2ee.jsp,
- org.eclipse.jst.j2ee.jsp.internal.impl;x-internal:=true,
- org.eclipse.jst.j2ee.jsp.internal.util;x-internal:=true,
- org.eclipse.jst.j2ee.model.internal.validation;x-internal:=true,
- org.eclipse.jst.j2ee.taglib.internal;x-internal:=true,
- org.eclipse.jst.j2ee.taglib.internal.impl;x-internal:=true,
- org.eclipse.jst.j2ee.taglib.internal.util;x-internal:=true,
- org.eclipse.jst.j2ee.webapplication,
- org.eclipse.jst.j2ee.webapplication.internal.impl;x-internal:=true,
- org.eclipse.jst.j2ee.webapplication.internal.util;x-internal:=true,
- org.eclipse.jst.j2ee.webservice.internal;x-internal:=true,
- org.eclipse.jst.j2ee.webservice.internal.util;x-internal:=true,
- org.eclipse.jst.j2ee.webservice.internal.wsdd;x-internal:=true,
- org.eclipse.jst.j2ee.webservice.jaxrpcmap,
- org.eclipse.jst.j2ee.webservice.jaxrpcmap.internal.impl;x-internal:=true,
- org.eclipse.jst.j2ee.webservice.jaxrpcmap.internal.util;x-internal:=true,
- org.eclipse.jst.j2ee.webservice.wsclient,
- org.eclipse.jst.j2ee.webservice.wsclient.internal.impl;x-internal:=true,
- org.eclipse.jst.j2ee.webservice.wsclient.internal.util;x-internal:=true,
- org.eclipse.jst.j2ee.webservice.wscommon,
- org.eclipse.jst.j2ee.webservice.wscommon.internal.impl;x-internal:=true,
- org.eclipse.jst.j2ee.webservice.wscommon.internal.util;x-internal:=true,
- org.eclipse.jst.j2ee.webservice.wsdd,
- org.eclipse.jst.j2ee.webservice.wsdd.internal.impl;x-internal:=true,
- org.eclipse.jst.j2ee.webservice.wsdd.internal.util;x-internal:=true
-Require-Bundle: org.eclipse.jem;bundle-version="[1.2.0,1.3.0)",
- org.eclipse.emf.common;bundle-version="[2.2.0,2.3.0)",
- org.eclipse.wst.common.frameworks;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.3.0)",
- org.eclipse.wst.common.emf;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.wst.validation;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.jem.util;bundle-version="[1.2.0,1.3.0)",
- com.ibm.icu;bundle-version="[3.4.4,3.5.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.wst.xml.core;bundle-version="[1.1.0,1.2.0)"
-Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/AbstractEJBValidator.java b/plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/AbstractEJBValidator.java
deleted file mode 100644
index 3b6f105ad..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/AbstractEJBValidator.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *******************************************************************************/
-/*
- * Created on Nov 24, 2003
- *
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-package org.eclipse.jst.j2ee.model.internal.validation;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.Vector;
-import java.util.logging.Level;
-
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.wst.validation.internal.core.ValidationException;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
-/**
- * @author vijayb
- *
- * To change the template for this generated type comment go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-public abstract class AbstractEJBValidator extends J2EEValidator {
- protected Map _validated = null;
- /**
- *
- */
- public AbstractEJBValidator() {
- super();
- _validated = new HashMap();
- }
-
- protected void logMissingRule(IEJBValidationContext vc, Object ruleId) {
- Logger logger = vc.getMsgLogger();
- if (logger != null && logger.isLoggingLevel(Level.SEVERE)) {
- logger.write(Level.SEVERE, ruleId + " = null"); //$NON-NLS-1$
- }
- addInternalErrorMessage(vc);
- }
- protected void addInternalErrorMessage(IEJBValidationContext vc) {
- addInternalErrorMessage(vc, null);
- }
-
- protected void addInternalErrorMessage(IEJBValidationContext vc, Throwable exc) {
- IMessage mssg = vc.getMessage();
- mssg.setId(internalErrorMessage());
- vc.addMessage(mssg);
- if(exc != null) {
- Logger logger = vc.getMsgLogger();
- if (logger != null && logger.isLoggingLevel(Level.SEVERE)) {
- logger.write(Level.SEVERE, exc);
- }
- }
- }
-
- protected Map removeOldMessages(IEJBValidationContext vc,Map targets) throws ValidationException {
- if(vc.getURIs() == null) {
- // Full validation
- vc.removeAllMessages(); // Remove messages from the EJBJar.
- vc.loadModel(removeOldMessagesString(), new Object[]{vc.getReporter(), null}); // Remove messages from any EJB client JAR files or Java Utility JAR files.
- return null;
- }
- preRemoveOldMessages(vc,targets); // Get the list of targets to be validated, and remove messages from all of them.
-
- // Remove the messages from all of the changed files and their dependents.
- vc.loadModel(removeOldMessagesString(), new Object[]{vc.getReporter(), targets});
- return targets;
- }
- /**
- * @param vc
- * @param delta
- * @param targets
- */
- protected void preRemoveOldMessages(IEJBValidationContext vc,Map targets) throws ValidationException {
- //Default
- }
- /**
- * @return
- */
- protected String removeOldMessagesString() {
- return null;
- }
- /**
- * @return
- */
- private String internalErrorMessage() {
- return null;
- }
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.wst.validation.internal.core.core.IValidator#validate(org.eclipse.wst.validation.internal.core.core.IHelper,
- * org.eclipse.wst.validation.internal.core.core.IReporter,
- * org.eclipse.wst.validation.internal.core.core.IFileDelta[])
- */
- public void validate(IValidationContext helper, IReporter reporter) throws ValidationException {
- //Default
- super.validate(helper, reporter);
- }
-
- public void run(IValidationRule rule, Object targetParent, Object target) throws ValidationException {
- if(isValidated(rule.getId(), targetParent, target)) {
- // Whether or not this is a full or incremental run, don't revalidate this target
- // if it has already been validated. (e.g. if a class is used by more than one bean,
- // and say one bean is stateless and one is stateful, and everything else about the
- // beans are identical, don't validate that class again.)
- return;
- }
-
- try {
- rule.preValidate(getValidationContext(), targetParent, target);
- rule.validate(getValidationContext(), targetParent, target);
- rule.postValidate(getValidationContext(), targetParent, target);
- }
- catch(ValidationCancelledException exc) {
- // Clean up the messages which are on the task list? Or is it nicer to leave them behind?
- }
- catch(ValidationException e) {
- throw e;
- }
- catch(Throwable exc) {
- addInternalErrorMessage(getValidationContext(), exc);
- }
- finally {
- setValidated(rule.getId(), targetParent, target);
- releaseRules(rule);
- }
- }
-
- /**
- * @param rule
- */
- protected abstract void releaseRules(IValidationRule rule);
-
- private IEJBValidationContext _vc = null;
-
- protected IEJBValidationContext getValidationContext() {
- return _vc;
- }
- protected void setValidationContext(IEJBValidationContext vc) {
- _vc = vc;
- }
-
- /**
- * This class is public only for the EJBHelper.
- */
- public class TargetObject {
- private Object _parent = null;
- private Object _target = null;
-
- public TargetObject() {
- //Default
- }
-
- public Object getTargetParent() {
- return _parent;
- }
-
- public Object getTarget() {
- return _target;
- }
-
- public void setTargetParent(Object tp) {
- _parent = tp;
- }
-
- public void setTarget(Object t) {
- _target = t;
- }
-
- public int hashCode() {
- int parent = (getTargetParent() == null) ? 0 : getTargetParent().hashCode();
- int target = (getTarget() == null) ? 0 : getTarget().hashCode();
- return parent + target;
- }
-
- public boolean equals(Object o) {
- if(o == null) {
- return false;
- }
-
- if(this == o) {
- return true;
- }
-
- if(!(o instanceof TargetObject)) {
- return false;
- }
-
- Object thisParent = this.getTargetParent();
- Object oParent = ((TargetObject)o).getTargetParent();
- Object thisTarget = this.getTarget();
- Object oTarget = ((TargetObject)o).getTarget();
-
- if((thisParent == null) && (oParent == null)) {
- // check target
- }
- else if((thisParent != null) && (oParent != null)) {
- if(thisParent.equals(oParent)) {
- // check target
- }
- else {
- return false;
- }
- }
- else {
- return false;
- }
-
- if((thisTarget == null) && (oTarget == null)) {
- return true;
- }
- else if((thisTarget != null) && (oTarget != null)) {
- return (thisTarget.equals(oTarget));
- }
- else {
- return false;
- }
- }
- }
-
-
- public void setValidated(Object key, Object targetParent, Object target) {
- Set done = null;
- if(_validated.containsKey(key)) {
- done = (Set)_validated.get(key);
- }
- else {
- done = new HashSet();
- }
-
- done.add(getTargetObjectPool().getTargetObject(targetParent, target));
- _validated.put(key, done);
- }
-
-
- protected class TargetObjectPool {
- private int _growSize = 0;
- private Vector _pool = null;
-
- public TargetObjectPool(int initialSize) {
- _growSize = initialSize;
- _pool = new Vector(initialSize, _growSize);
- grow();
- }
-
- private void grow() {
- for(int i=0; i<_growSize; i++) {
- _pool.add(new TargetObject());
- }
- }
-
- public TargetObject getTargetObject(Object targetParent, Object target) {
- if(_pool.size() <= 0) {
- grow();
- }
- TargetObject obj = (TargetObject)_pool.remove(0);
- obj.setTargetParent(targetParent);
- obj.setTarget(target);
- return obj;
- }
-
- public void release(TargetObject obj) {
- obj.setTargetParent(null);
- obj.setTarget(null);
- _pool.add(obj);
- }
- }
-
- protected abstract TargetObjectPool getTargetObjectPool();
-
- public boolean isValidated(Object key, Object targetParent, Object target) {
- if(!_validated.containsKey(key)) {
- return false;
- }
-
-
- Set done = (Set)_validated.get(key);
- TargetObject temp = getTargetObjectPool().getTargetObject(targetParent, target);
- try {
- if(done.contains(temp)) {
- return true;
- }
-
- return false;
- }
- finally {
- getTargetObjectPool().release(temp);
- }
- }
- public void cleanup(IReporter reporter) {
- Iterator iterator = _validated.keySet().iterator();
- while(iterator.hasNext()) {
- Set done = (Set)_validated.get(iterator.next());
- Iterator toIterator = done.iterator();
- while(toIterator.hasNext()) {
- TargetObject to = (TargetObject)toIterator.next();
- getTargetObjectPool().release(to);
- }
- done.clear();
- }
- _validated.clear();
- setValidationContext(null);
- }
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/ApplicationClientValidator.java b/plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/ApplicationClientValidator.java
deleted file mode 100644
index d6a4f44e9..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/ApplicationClientValidator.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.model.internal.validation;
-
-
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.emf.common.command.Command;
-import org.eclipse.jst.j2ee.client.ApplicationClient;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ApplicationClientFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ValidateXmlCommand;
-import org.eclipse.wst.validation.internal.core.Message;
-import org.eclipse.wst.validation.internal.core.ValidationException;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
-
-
-
-/**
- * Validates the applicatin-client.xml
- */
-public class ApplicationClientValidator extends J2EEValidator implements ApplicationClientMessageConstants {
- protected ApplicationClientFile appClientFile;
- protected ApplicationClient appClientDD;
-
- /**
- * ApplicationClientValidator constructor comment.
- */
- public ApplicationClientValidator() {
- super();
- }// ApplicationClientValidator
-
- /**
- * addError
is for messages which require no arguments.
- * addError
is for messages which require no arguments.
- * addError
is for messages which require no arguments.
- * addError
is for messages which require one or more arguments.
- * addError
is for messages which require one or more arguments.
- * addError
is for messages which require no arguments.
- * addError
is for messages which require no arguments.
- * addError
is for messages which require no arguments.
- * addError
is for messages which require one or more arguments.
- * addError
is for messages which require one or more arguments.
- * addError
is for messages which require no arguments.
- * addError
is for messages which require no arguments.
- * addError
is for messages which require no arguments.
- * addError
is for messages which require one or more arguments.
- * addError
is for messages which require one or more arguments.
- *
- * "{0} is validating {1}.",
- *
- *
- *
- * {0} is the string that this method returns,
- *
- *
- *
- * {1} is the name of the current resource.
- *
- *
- * @param locale
- * The locale from which to retrieve the name text.
- */
-
- public String getName(Locale locale) {
- return getMessage(getBaseName(), VALIDATOR_NAME, locale);
- }
-
- /**
- * Returns the name of the Validator, as it should be displayed in the UI. The ValidationBuilder
- * uses this string as input to the IProgressMonitor. i.e., At some point during the validation
- * process, the Validation Builder will output this string: "{0} is validating {1}.", where {0}
- * is the string that this method returns, and {1} is the name of the current resource.
- */
- public String[] getParam1(String string1) {
- String[] parms = new String[1];
- parms[0] = string1;
- return parms;
- }
-
- protected void initialize() {
- // Default
- }
-
- /**
- * This is the method which performs the validation on the MOF model.
- *
- * helper
and reporter
may not be null. changedFiles
- * may be null, if a full build is desired.
- *
- * helper
loads a EObject. The EObject is the root of the MOF model about to be
- * validated. When this object is traversed, you can reach every element in the MOF model which
- * needs to be validated.
- *
- * reporter
is an instance of an IReporter interface, which is used for
- * interaction with the user.
- *
- * changedFiles
is an array of file names which have changed since the last
- * validation. If changedFiles
is null, or if it is an empty array, then a full
- * build is performed. Otherwise, validation on just the files listed in the Vector is
- * performed.
- */
-
- public void validate(IValidationContext inHelper, IReporter inReporter) throws ValidationException {
- _helper = inHelper;
- _reporter = inReporter;
- if ((inHelper == null) || (inReporter == null)) {
- return;
- }
- }
-
- public IStatus validateInJob(IValidationContext inHelper, IReporter inReporter) throws ValidationException {
-
- _helper = inHelper;
- _reporter = inReporter;
- status = OK_STATUS;
- return status;
- }
-
- /**
- * Validate EJB references.
- */
- protected void validateEJBRefManadatoryElements(EjbRef eref, String ownerName) {
- String[] parms = new String[2];
- parms[0] = eref.getName();
- parms[1] = ownerName;
-
- if ((eref.getName() == null) || (eref.getName().trim().length() == 0))
- addWarning(EREF_CATEGORY, ERROR_EAR_MISSING_EREFNAME, parms, eref);
- if (eref.isSetType()) {
- if (eref.getType() == null)
- addWarning(EREF_CATEGORY, ERROR_EAR_INVALID_EREFTYPE, parms);
- } else
- addWarning(EREF_CATEGORY, ERROR_EAR_MISSING_EREFTYPE, parms);
-
- String refHome = eref.getHome();
- if ((refHome == null) || (refHome.trim().length() == 0))
- addWarning(EREF_CATEGORY, ERROR_EAR_MISSING_EREFHOME, parms, eref);
-
- if ((eref.getRemote() == null) || (eref.getRemote().trim().length() == 0))
- addWarning(EREF_CATEGORY, ERROR_EAR_MISSING_EREFREMOTE, parms, eref);
- }
-
- /**
- * Validate for duplicates in EAR Roles.
- */
- protected void validateResourceRefs(List resourceRefs) {
-
- int numRefs = resourceRefs.size();
- Set refSet = new HashSet(numRefs);
-
- for (int refNo = 0; refNo < numRefs; refNo++) {
- String refName = ((ResourceRefImpl) (resourceRefs.get(refNo))).getName();
- String[] parms = new String[1];
- parms[0] = refName;
- if (!(refSet.add(refName)))
- addError(EREF_CATEGORY, ERROR_EAR_DUPLICATE_RESREF, parms, resourceRefs.get(refNo));
- }
- }
-
- /**
- * Validate the existance of Web Roles within the EAR Roles and duplicates in Web Roles.
- */
- protected void validateWEBRolesWithEARRoles(EList earRoleList, EList warRoles) {
- int numRoles = warRoles.size();
-
- // TFB This implementation requires a 'small' list of warRoles.
- // If 'warRoles' gets too big then another implementation
- // will be necessary.
-
- for (int roleNo = 0; roleNo < numRoles; roleNo++) {
- if( _reporter.isCancelled() ){
- String msg = ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_STATUS_VALIDATOR_TERMINATED);
- status = WTPCommonPlugin.createErrorStatus(msg);
- }
-
- SecurityRoleImpl nextRole = (SecurityRoleImpl) (warRoles.get(roleNo));
- String[] parms = new String[1];
- parms[0] = nextRole.getRoleName();
- if (!(earRoleList.contains(nextRole)))
- addWarning(WAR_CATEGORY, ERROR_EAR_MISSING_EJB_ROLE, parms, nextRole);
- }
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/WarValidator.java b/plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/WarValidator.java
deleted file mode 100644
index 87c5025f4..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/WarValidator.java
+++ /dev/null
@@ -1,1420 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.model.internal.validation;
-
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.jem.java.JavaClass;
-import org.eclipse.jem.java.JavaRefFactory;
-import org.eclipse.jst.j2ee.common.EnvEntry;
-import org.eclipse.jst.j2ee.common.SecurityRole;
-import org.eclipse.jst.j2ee.common.SecurityRoleRef;
-import org.eclipse.jst.j2ee.common.internal.impl.EJBLocalRefImpl;
-import org.eclipse.jst.j2ee.common.internal.impl.EjbRefImpl;
-import org.eclipse.jst.j2ee.common.internal.impl.ResourceRefImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.WARFile;
-import org.eclipse.jst.j2ee.ejb.EnterpriseBean;
-import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
-import org.eclipse.jst.j2ee.webapplication.AuthConstraint;
-import org.eclipse.jst.j2ee.webapplication.ContextParam;
-import org.eclipse.jst.j2ee.webapplication.ErrorCodeErrorPage;
-import org.eclipse.jst.j2ee.webapplication.ErrorPage;
-import org.eclipse.jst.j2ee.webapplication.ExceptionTypeErrorPage;
-import org.eclipse.jst.j2ee.webapplication.Filter;
-import org.eclipse.jst.j2ee.webapplication.FilterMapping;
-import org.eclipse.jst.j2ee.webapplication.FormLoginConfig;
-import org.eclipse.jst.j2ee.webapplication.HTTPMethodType;
-import org.eclipse.jst.j2ee.webapplication.InitParam;
-import org.eclipse.jst.j2ee.webapplication.JSPType;
-import org.eclipse.jst.j2ee.webapplication.LoginConfig;
-import org.eclipse.jst.j2ee.webapplication.MimeMapping;
-import org.eclipse.jst.j2ee.webapplication.SecurityConstraint;
-import org.eclipse.jst.j2ee.webapplication.Servlet;
-import org.eclipse.jst.j2ee.webapplication.ServletMapping;
-import org.eclipse.jst.j2ee.webapplication.SessionConfig;
-import org.eclipse.jst.j2ee.webapplication.TagLibRef;
-import org.eclipse.jst.j2ee.webapplication.TransportGuaranteeType;
-import org.eclipse.jst.j2ee.webapplication.UserDataConstraint;
-import org.eclipse.jst.j2ee.webapplication.WebApp;
-import org.eclipse.jst.j2ee.webapplication.WebResourceCollection;
-import org.eclipse.jst.j2ee.webapplication.WelcomeFile;
-import org.eclipse.jst.j2ee.webapplication.WelcomeFileList;
-import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
-import org.eclipse.wst.validation.internal.ResourceConstants;
-import org.eclipse.wst.validation.internal.ResourceHandler;
-import org.eclipse.wst.validation.internal.core.Message;
-import org.eclipse.wst.validation.internal.core.ValidationException;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
-
-// import org.eclipse.jst.j2ee.internal.plugin.nls.ResourceHandler;
-
-public class WarValidator extends J2EEValidator implements WARMessageConstants {
- protected WARFile warFile;
- protected WebApp webDD;
- private Hashtable httpMethods = null;
-
- // Optional child validators
- // protected WebExtValidator webExtValidator;
- // protected WebBndValidator webBndValidator;
-
-
- /**
- * RelationshipMapValidator constructor comment.
- */
- public WarValidator() {
- super();
- }
-
- /**
- * Will construct a HashTable of roles, and check for duplicates and null entries
- *
- * @return java.util.Hashtable
- * @param roles
- * org.eclipse.emf.common.util.EList
- */
- public Hashtable getAndValidateSecurityRoles(EList roles) {
-
- Hashtable secRoles = new Hashtable();
- if (roles.isEmpty())
- return (secRoles);
-
- Iterator sRoles = roles.iterator();
-
- while (sRoles.hasNext()) {
-
- if( _reporter.isCancelled() ){
- String msg = ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_STATUS_VALIDATOR_TERMINATED);
- status = WTPCommonPlugin.createCancelStatus(msg);
- }
-
- SecurityRole role = (SecurityRole) sRoles.next();
-
-
- String name = role.getRoleName();
- if (name != null)
- name = name.trim();
- if (name == null || name.equals("")) { //$NON-NLS-1$
- String[] parms = new String[1];
- parms[0] = WARValidationResourceHandler.of_Type_Security_Role_Name_6;
- addError(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_EMPTY_ENTRY, parms, role);
- continue;
- }
- if (secRoles.get(name) != null) { // Check for dups
-
- String[] parms = new String[1];
- parms[0] = name;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_DUPLICATE_ENTRY, parms, role);
- continue;
- }
- secRoles.put(name, "Yea"); //$NON-NLS-1$
- }
-
-
- return secRoles;
- }
-
- /**
- *
- *
- * helper
and reporter
may not be null. changedFiles
- * may be null, if a full build is desired.
- *
- * helper
loads a EObject. The EObject is the root of the MOF model about to be
- * validated. When this object is traversed, you can reach every element in the MOF model which
- * needs to be validated.
- *
- * reporter
is an instance of an IReporter interface, which is used for
- * interaction with the user.
- *
- * changedFiles
is an array of file names which have changed since the last
- * validation. If changedFiles
is null, or if it is an empty array, then a full
- * build is performed. Otherwise, validation on just the files listed in the Vector is
- * performed.
- */
- public void validate(IValidationContext inHelper, IReporter inReporter) throws ValidationException {
- validateInJob(inHelper, inReporter);
- }
-
-
- public IStatus validateInJob(IValidationContext inHelper, IReporter inReporter) throws ValidationException {
- status = super.validateInJob(inHelper, inReporter);
-
-
- // First remove all previous msg. for this project
- _reporter.removeAllMessages(this, null); // Note the WarHelper will return web.xml with a
- // null object as well
-
- if( !_reporter.isCancelled()){
-
- warFile = (WARFile) _helper.loadModel(WAR_MODEL_NAME);
-
- try {
- if (warFile != null) {
- webDD = warFile.getDeploymentDescriptor();
- validate();
- } else {
- IMessage errorMsg = new Message(getBaseName(), IMessage.HIGH_SEVERITY, ERROR_INVALID_WAR_FILE);
- status = WTPCommonPlugin.createErrorStatus( errorMsg.getText( getClass().getClassLoader() ));
- throw new ValidationException(errorMsg);
- }
-
- } catch (ValidationException ex) {
- throw ex;
- } catch (Exception e) {
- String[] parms = new String[1];
- parms[0] = e.toString();
- IMessage errorMsg = new Message(getBaseName(), IMessage.HIGH_SEVERITY, ERROR_WAR_VALIDATION_FAILED, parms);
- status = WTPCommonPlugin.createErrorStatus(errorMsg.getText( getClass().getClassLoader() ));
- throw new ValidationException(errorMsg, e);
- }
- }else{
- String msg = ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_STATUS_VALIDATOR_TERMINATED);
- status = WTPCommonPlugin.createCancelStatus(msg);
- }
- return status;
- }
-
- /**
- * This validator can be used for validation when the reporter and helper have been supplied via
- * the constructor.
- */
- public void validate(Object aWarFile) throws ValidationException {
-
- try {
- warFile = (WARFile) aWarFile;
- webDD = warFile.getDeploymentDescriptor();
-
- validate();
-
- } catch (Exception e) {
- e.printStackTrace();
- String[] parms = new String[1];
- parms[0] = e.toString();
- IMessage errorMsg = new Message(getBaseName(), IMessage.HIGH_SEVERITY, ERROR_WAR_VALIDATION_FAILED, parms);
- throw new ValidationException(errorMsg);
- }
- }
-
- /**
- * The auth-constraint element indicates the user roles that should be permitted access to this
- * resource collection. The role used here must appear in a security-role-ref element. The role-name element contains the name of a
- * security role. Creation date: (7/6/2001 3:39:34 PM)
- *
- * @param authConstraint
- * org.eclipse.jst.j2ee.internal.webapplication.AuthConstraint
- */
- public void validateAuthConstraint(AuthConstraint authConstraint, Hashtable secRoles) {
-
- EList roleList = authConstraint.getRoles();
-
- if (roleList != null && !roleList.isEmpty()) {
- Iterator authRoles = roleList.iterator();
- Hashtable remember = new Hashtable();
- while (authRoles.hasNext()) {
- String role = (String) authRoles.next();
- if (role == null || role.trim().equals("")) { //$NON-NLS-1$
- String[] parms = new String[1];
- parms[0] = WARValidationResourceHandler.of_Type_Role_Name_19;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_EMPTY_ENTRY, parms, authConstraint);
- continue;
- }
- if (remember.get(role.trim()) != null) {
- String[] parms = new String[1];
- parms[0] = role;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_DUPLICATE_ENTRY, parms, authConstraint);
- continue;
- }
- remember.put(role.trim(), "Yea"); //$NON-NLS-1$
- validateAuthSecRole("", role, secRoles, authConstraint); //$NON-NLS-1$
- }
- }
- }
-
- /**
- * Insert the method's description here. Creation date: (7/5/2001 2:20:02 PM)
- */
- public void validateContextParameters() {
-
- // we must verify that every param-name is unique;
- // param-name appears in context parameters, filter
- // and servlets. We must check each.
- Hashtable remember = new Hashtable();
-
- // check context parameters - each param-name should be unique within the web application
- Iterator cparams = webDD.getContexts().iterator();
- while (cparams.hasNext()) {
-
- if( _reporter.isCancelled() ){
- String msg = ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_STATUS_VALIDATOR_TERMINATED);
- status = WTPCommonPlugin.createCancelStatus(msg);
- }
-
- ContextParam context = (ContextParam) cparams.next();
-
- String name = context.getParamName();
- if (name != null)
- name = name.trim();
-
- if (name == null || name.equals("")) { //$NON-NLS-1$
- String[] parms = new String[1];
- parms[0] = WARValidationResourceHandler.of_Type_Parameter_Name_25;
-
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_EMPTY_ENTRY, parms, context);
- continue;
- }
- // if (remember.get(name + value) != null) { // Check for dups
- if (remember.get(name) != null) { // Check for dups
- String[] parms = new String[1];
- parms[0] = WARValidationResourceHandler.of_Type_Parameter_Name_25 + ": " + name; //$NON-NLS-1$
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_DUPLICATE_ENTRY, parms, context);
- continue;
- }
- // remember.put(name + value, "Yea");
- remember.put(name, "Yea"); //$NON-NLS-1$
- }
-
-
- // check servlet init-param - each param-name should be unique within a servlet
- Iterator servlets = webDD.getServlets().iterator();
- while (servlets.hasNext()) {
- Servlet nextServlet = (Servlet) servlets.next();
- Iterator params = nextServlet.getParams().iterator();
- remember.clear();
- while (params.hasNext()) {
- InitParam initParam = (InitParam) params.next();
- String name = initParam.getParamName();
-
- if (name != null)
- name = name.trim();
-
- if (name == null || name.equals("")) { //$NON-NLS-1$
- String[] parms = new String[1];
- parms[0] = WARValidationResourceHandler.of_Type_Parameter_Name_32;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_EMPTY_ENTRY, parms, initParam);
- continue;
- }
- if (remember.get(name) != null) { // Check for dups
-
- String[] parms = new String[1];
- parms[0] = WARValidationResourceHandler.of_Type_Parameter_Name_25 + ": " + name; //$NON-NLS-1$
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_DUPLICATE_ENTRY, parms, initParam);
- continue;
- }
- remember.put(name, "Yea"); //$NON-NLS-1$
- }
- }
-
- // check filter init-param - each param-name should be unique within a filter
- Iterator filters = webDD.getFilters().iterator();
- while (filters.hasNext()) {
- Filter nextFilter = (Filter) filters.next();
- Iterator params = nextFilter.getInitParams().iterator();
- remember.clear();
- while (params.hasNext()) {
- InitParam initParam = (InitParam) params.next();
- String name = initParam.getParamName();
-
- if (name != null)
- name = name.trim();
-
- if (name == null || name.equals("")) { //$NON-NLS-1$
- String[] parms = new String[1];
- parms[0] = WARValidationResourceHandler.of_Type_Parameter_Name_39;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_EMPTY_ENTRY, parms, initParam);
- continue;
- }
- if (remember.get(name) != null) { // Check for dups
- String[] parms = new String[1];
- parms[0] = WARValidationResourceHandler.of_Type_Parameter_Name_25 + ": " + name;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_DUPLICATE_ENTRY, parms, initParam);
- continue;
- }
- remember.put(name, "Yea"); //$NON-NLS-1$
- }
- }
-
- }
-
- /**
- * Validate EJB references.
- */
-
- public void validateEJBRefs(EjbRefImpl eref) {
- // try {
-
- EARFile earFile = warFile.getEARFile();
- EnterpriseBean eb = null;
-
- if (earFile != null)
- eb = earFile.getEnterpiseBeanFromRef(eref, warFile.getURI());
-
- if (!(eb == null)) {
- List ejbRefs = eb.getEjbRefs();
-
- int numRefs = ejbRefs.size();
-
- Set refSet = new HashSet(numRefs);
-
- for (int refNo = 0; refNo < numRefs; refNo++) {
- String nextName = ((EjbRefImpl) (ejbRefs.get(refNo))).getName();
-
- String[] parms = new String[1];
- parms[0] = eb.getName();
- if (!(refSet.add(nextName))) {
- addWarning(WAR_CATEGORY, ERROR_EAR_DUPLICATE_ROLES, parms, ejbRefs.get(refNo));
- }
- }
- }
-
- // } catch (UncontainedModuleFileException ue) {
- // String[] parms = new String[1];
- // parms[0] = warFile.getName();
- // addError(EREF_CATEGORY, ERROR_EAR_UNCONTAINED_MODULE_FILE_EXCEPTION, parms);
- // }
- }
-
- /**
- * validate for duplicates in EAR Roles
- */
-
- public void validateEJBRefs(List ejbRefs) {
- int numRefs = ejbRefs.size();
- Hashtable remember = new Hashtable();
- for (int refNo = 0; refNo < numRefs; refNo++) {
- EjbRefImpl eref = (EjbRefImpl) ejbRefs.get(refNo);
- if (eref.isSetType()) {
- String type = eref.getType().getName();
- if (type == null) {
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_INVALID_EJB_REF_TYPE, null, eref); // Type
- // must
- // be
- // of
- // ENTITY
- // or
- // FOO
- }
- }
- if (eref.getName() != null) {
- String name = eref.getName();
- name = name.trim();
-
- if (name.equals("")) { //$NON-NLS-1$
- String[] parms = new String[1];
- parms[0] = WARValidationResourceHandler.of_Type_ejb_ref_name_44;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_EMPTY_ENTRY, parms, eref);
- continue;
- }
- if (remember.get(name) != null) { // check for duplicates
- String[] parms = new String[1];
- parms[0] = name;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_DUPLICATE_EJB_REF, parms, eref);
- continue;
- }
- remember.put(name, "Yea"); //$NON-NLS-1$
- } else {
- String[] parms = new String[1];
- parms[0] = WARValidationResourceHandler.of_Type_ejb_ref_name_44;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_EMPTY_ENTRY, parms, eref);
- continue;
- }
-
-
- validateEJBRefs(eref);
- validateEJBRefManadatoryElements(eref, webDD.getDisplayName());
- }
- }
-
-
- /**
- * validate for duplicates in EAR Roles
- */
-
- public void validateEJBLocalRefs(List ejbRefs) {
- int numRefs = ejbRefs.size();
- Hashtable remember = new Hashtable();
- for (int refNo = 0; refNo < numRefs; refNo++) {
- EJBLocalRefImpl eref = (EJBLocalRefImpl) ejbRefs.get(refNo);
- if (eref.isSetType()) {
- String type = eref.getType().getName();
- if (type == null) {
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_INVALID_EJB_REF_TYPE, null, eref); // Type
- // must
- // be
- // of
- // ENTITY
- // or
- // FOO
- }
- }
- if (eref.getName() != null) {
- String name = eref.getName();
- name = name.trim();
-
- if (name.equals("")) { //$NON-NLS-1$
- String[] parms = new String[1];
- parms[0] = WARValidationResourceHandler.of_Type_ejb_ref_name_44;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_EMPTY_ENTRY, parms, eref);
- continue;
- }
- if (remember.get(name) != null) { // check for duplicates
- String[] parms = new String[1];
- parms[0] = name;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_DUPLICATE_EJB_REF, parms, eref);
- continue;
- }
- remember.put(name, "Yea"); //$NON-NLS-1$
- } else {
- String[] parms = new String[1];
- parms[0] = WARValidationResourceHandler.of_Type_ejb_ref_name_44;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_EMPTY_ENTRY, parms, eref);
- continue;
- }
-
-
- // validateEJBRefs(eref);
- // validateEJBRefManadatoryElements(eref, webDD.getDisplayName());
- }
- }
-
- /**
- * Link build should verify location of exception class
- */
-
- public void validateErrorPages(EList errorPageList) {
- Iterator errorPages = errorPageList.iterator();
-
- if (errorPageList == null || errorPageList.isEmpty())
- return;
-
- while (errorPages.hasNext()) {
-
- if( _reporter.isCancelled() ){
- String msg = ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_STATUS_VALIDATOR_TERMINATED);
- status = WTPCommonPlugin.createCancelStatus(msg);
- }
-
- ErrorPage nextPage = (ErrorPage) errorPages.next();
- String location = nextPage.getLocation();
- if (location == null || location.equals("")) { //$NON-NLS-1$
- String[] parms = new String[1];
- parms[0] = WARValidationResourceHandler.of_Type_Error_Location_47;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_EMPTY_ENTRY, parms, nextPage);
- }
- if (!location.startsWith("/")) { //$NON-NLS-1$
- String[] parms = new String[1];
- parms[0] = WARValidationResourceHandler.of_Type_Error_Location_49;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_INVALID_ERROR_PAGE, parms, nextPage);
- }
-
-
- // check for valid HTTP error code - must be an Integer, 3 digits, and the starting
- // digit must be a 1,2,3,4, or 5.
- if (nextPage.isErrorCode()) {
- ErrorCodeErrorPage ecep = (ErrorCodeErrorPage) nextPage;
- String errorCode = ecep.getErrorCode();
-
- boolean valid = false;
- if (errorCode.length() == 3) {
- try {
- Integer tempInt = new Integer(errorCode);
- // ok, it's a valid 3-digit integer
- int code = tempInt.intValue();
- if (code >= 100 && code < 600) {
- // valid HTTP status code - starting digit must be between 1-5
- valid = true;
- }
- } catch (NumberFormatException exc) {
- // Ignore
- }
- }
- if (!valid) {
- String[] parms = new String[1];
- parms[0] = errorCode;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_INVALID_ERROR_CODE, parms, ecep);
- }
-
- }
-
- // If exception-type... the specified class must be or inherit from java.lang.Throwable
- else if (nextPage.isExceptionType()) {
- ExceptionTypeErrorPage etep = (ExceptionTypeErrorPage) nextPage;
- JavaClass javaType = etep.getExceptionType();
- String exceptionType = "java.lang.Throwable";//$NON-NLS-1$
- String specifiedClassName = etep.getExceptionTypeName();
- if (javaType != null) {
- ResourceSet lookupSet = javaType.eResource().getResourceSet();
- if (lookupSet != null) {
- if (!javaType.inheritsFrom(JavaRefFactory.eINSTANCE.reflectType(exceptionType, lookupSet).getWrapper())) {
- String[] parms = new String[1];
- parms[0] = specifiedClassName;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_INVALID_EXCEPTION_TYPE, parms, etep);
- }
- }
- } else {
- String[] parms = new String[1];
- parms[0] = "";//$NON-NLS-1$
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_INVALID_EXCEPTION_TYPE, parms, etep);
- }
- // TBD
- } else { // Error Code
- // TBD
- }
-
- // TBD remember location/code/exception dups
- }
-
- }
-
- /**
- * Validate the loginConfig section is correct
- */
- public void validateLoginConfig(LoginConfig loginConfig) {
- // com.ibm.etools.validate.ValidatorManager.setResourceUtilClass(com.ibm.etools.validate.ui.UIResourceUtil.class);
-
- if (loginConfig != null) {
- String auth = loginConfig.getAuthMethod().getName();
-
- if (auth == null) {
- String[] parms = new String[0];
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_INVALID_AUTH_METHOD, parms, loginConfig);
- }
- // Give a warning if form elements are supplied but FORM auth method is not used
- else if (!auth.equals("FORM")) { //$NON-NLS-1$
- FormLoginConfig cfg = loginConfig.getFormLoginConfig();
- if (cfg != null) {
- String[] parms = new String[1];
- parms[0] = auth;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_IGNORE_FORM_LOGIN, parms, loginConfig);
- }
- }
- }
- }
-
- /**
- * Validate the loginConfig section is correct
- */
- public void validateEnvironmentEntries(EList envEntries) {
- if (envEntries.isEmpty())
- return;
-
- // boolean isVersion22 = warFile.getDeploymentDescriptor().isVersion2_2Descriptor();
- Iterator entries = envEntries.iterator();
- Hashtable remember = new Hashtable();
-
- while (entries.hasNext()) {
- EnvEntry entry = (EnvEntry) entries.next();
- if (entry.getType().getName() == null) {
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_INVALID_ENV_ENTRY, null, entry);
- }
-
- // check for duplicate env-entry-name's
- String name = entry.getName();
- if (name != null) {
- if (remember.get(name) != null) { // Check for dups
- String[] parms = new String[1];
- parms[0] = WARValidationResourceHandler.of_Type_Env_Entry_Name___88 + ": " + name;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_DUPLICATE_ENTRY, parms, entry);
- } else {
- remember.put(name, "Yea"); //$NON-NLS-1$
- }
- }
- }
-
- }
-
-
- /**
- * Insert the method's description here. Creation date: (7/5/2001 12:11:23 PM)
- */
- public void validateMimeMapping() {
-
- if (webDD.getMimeMappings().isEmpty())
- return;
-
- Iterator mimes = webDD.getMimeMappings().iterator();
- Hashtable remember = new Hashtable();
-
- while (mimes.hasNext()) {
-
- if( _reporter.isCancelled()){
- String msg = ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_STATUS_VALIDATOR_TERMINATED);
- status = WTPCommonPlugin.createCancelStatus(msg);
- }
- MimeMapping mimeMap = (MimeMapping) mimes.next();
-
- String ext = mimeMap.getExtension();
- String mtype = mimeMap.getMimeType();
- if (ext != null)
- ext = ext.trim();
- if (mtype != null)
- mtype = mtype.trim();
-
- if (ext == null || ext.equals("") || mtype == null || mtype.equals("")) { //$NON-NLS-1$ //$NON-NLS-2$
- String[] parms = new String[1];
- if (ext == null || ext.trim().equals("")) //$NON-NLS-1$
- parms[0] = WARValidationResourceHandler.of_Type_Mime_Extension_54;
- else
- parms[0] = WARValidationResourceHandler.of_Type_Mime_Type_55;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_EMPTY_ENTRY, parms, mimeMap);
- continue;
- }
- if (remember.get(ext) != null) { // Check for dups
-
- String[] parms = new String[1];
- parms[0] = WARValidationResourceHandler.of_Type_Mime_Extension___56 + ": " + ext;
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_DUPLICATE_ENTRY, parms, mimeMap);
- continue;
- }
- remember.put(ext, "Yea"); //$NON-NLS-1$
- }
- }
-
- /**
- * Insert the method's description here. Creation date: (7/5/2001 11:46:58 AM)
- */
- public void validateOther() {
-
- SessionConfig sessionCfg = webDD.getSessionConfig();
- if (sessionCfg != null) {
- int timeout = sessionCfg.getSessionTimeout();
- if (timeout == 0) {
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_SESSION_TIMEOUT, null, sessionCfg);
- }
- }
-
-
-
- }
-
- /**
- * validateRefs(WebApp) - validate EJB and resource references - details tbd
- */
-
- public void validateRefs() {
- EList ejbRefs = webDD.getEjbRefs();
-
- if (!ejbRefs.isEmpty())
- validateEJBRefs(ejbRefs);
-
-
- EList ejblocalRefs = webDD.getEjbLocalRefs();
-
- if (!ejblocalRefs.isEmpty())
- validateEJBLocalRefs(ejblocalRefs);
-
-
- EList resourceRefs = webDD.getResourceRefs();
-
- if (!resourceRefs.isEmpty()) {
- // validateResourceRefs(resourceRefs); // we want to do additional checks here
-
- int numRefs = resourceRefs.size();
- Set refSet = new HashSet(numRefs);
- boolean isVersion22 = warFile.getDeploymentDescriptor().getVersionID() <= J2EEVersionConstants.WEB_2_2_ID;
-
- for (int refNo = 0; refNo < numRefs; refNo++) {
-
- if( _reporter.isCancelled() ){
- String msg = ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_STATUS_VALIDATOR_TERMINATED);
- status = WTPCommonPlugin.createCancelStatus(msg);
- }
-
- ResourceRefImpl ref = (ResourceRefImpl) (resourceRefs.get(refNo));
- String auth = ref.getAuth().getName();
-
- // Check: a res-auth element containing Container or Application must be supplied
- if (auth == null || !ref.isSetAuth()) {
- String[] parms = new String[1];
- parms[0] = ref.getName();
- String msgId = isVersion22 ? MESSAGE_WAR_VALIDATION_RES_AUTH_REQUIRED_22 : MESSAGE_WAR_VALIDATION_RES_AUTH_REQUIRED_23;
- addError(WAR_CATEGORY, msgId, parms, ref);
-
- } else if (isVersion22 && auth.equals("Application")) { //$NON-NLS-1$
- String[] parms = new String[1];
- parms[0] = ref.getName();
- addError(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_RES_AUTH_INVALID_22, parms, ref);
- } else if (!isVersion22 && auth.equals("SERVLET")) { //$NON-NLS-1$
- String[] parms = new String[1];
- parms[0] = ref.getName();
- addError(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_RES_AUTH_INVALID_23, parms, ref);
- }
-
- // validate res-sharing-scope is allowable value
- String sharingScope = ref.getResSharingScope().getName();
- if (!isVersion22) {
- if (sharingScope == null || !ref.isSetResSharingScope()) {
- String[] parms = new String[0];
- addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_INVALID_RES_SHARING_SCOPE, parms, ref);
- }
- }
-
- String refName = ref.getName();
- String[] parms = new String[1];
- parms[0] = refName;
- if (!(refSet.add(refName))){
- addError(EREF_CATEGORY, ERROR_EAR_DUPLICATE_RESREF, parms, ref);
- }
- }
- }
-
- }
-
-
- /**
- * Insert the method's description here. Creation date: (7/6/2001 4:11:09 PM)
- *
- * @return boolean
- * @param role
- * java.lang.String
- * @param defineRoles
- * java.util.Hashtable
- *
- * The auth-constraint only needs to have role-name specified. Composite
that is to be used as the parent of this group's
- * collection of visual components
- * @see org.eclipse.swt.widgets.Composite
- */
- protected void createExportComponentGroup(Composite parent) {
- //Project label
- Label projectLabel = new Label(parent, SWT.NONE);
- projectLabel.setText(getComponentLabel());
- //Project combo
- resourceNameCombo = new Combo(parent, SWT.SINGLE | SWT.BORDER);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.widthHint = SIZING_TEXT_FIELD_WIDTH;
- resourceNameCombo.setLayoutData(data);
- synchHelper.synchCombo(resourceNameCombo, IJ2EEComponentExportDataModelProperties.PROJECT_NAME, null);
- new Label(parent, SWT.NONE);//Pad label
- }
-
- /**
- * @return
- */
- protected abstract String getComponentLabel();
-
- protected void createDestinationGroup(org.eclipse.swt.widgets.Composite parent) {
-
- //Destination label
- Label destinationLabel = new Label(parent, SWT.NONE);
- destinationLabel.setText(LABEL_DESTINATION);
- // destination name combo field
- destinationNameCombo = new Combo(parent, SWT.SINGLE | SWT.BORDER);
- destinationNameCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- synchHelper.synchCombo(destinationNameCombo, IJ2EEComponentExportDataModelProperties.ARCHIVE_DESTINATION, null);
-
- // destination browse button
- destinationBrowseButton = new Button(parent, SWT.PUSH);
- destinationBrowseButton.setText(defBrowseButtonLabel); //$NON-NLS-1$
- destinationBrowseButton.setLayoutData((new GridData(GridData.FILL_HORIZONTAL)));
- destinationBrowseButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- handleDestinationBrowseButtonPressed();
- }
- });
- destinationBrowseButton.setEnabled(true);
-
- }
-
- /**
- * Create the export options specification widgets.
- *
- * @param parent
- * org.eclipse.swt.widgets.Composite
- */
- protected void createOptionsGroup(Composite parent) {
-
- // options group
- Composite optionsGroup = new Composite(parent, SWT.NULL);
- GridLayout layout = new GridLayout(1, false);
- optionsGroup.setLayout(layout);
-
-
- // source files... checkbox
- createSourceFilesCheckbox(optionsGroup);
-
- // overwrite... checkbox
- createOverwriteExistingFilesCheckbox(optionsGroup);
-
- // advanced button
- if (shouldShowProjectFilesCheckbox()) {
- createProjectFilesCheckbox(optionsGroup);
- }
- }
-
- protected void createOverwriteExistingFilesCheckbox(Composite optionsGroup) {
- //Overwrite checkbox
- overwriteExistingFilesCheckbox = new Button(optionsGroup, SWT.CHECK | SWT.LEFT);
- overwriteExistingFilesCheckbox.setText(J2EEUIMessages.getResourceString(J2EEUIMessages.J2EE_EXPORT_OVERWRITE_CHECKBOX)); //$NON-NLS-1$ = "Overwrite existing files without warning"
- overwriteExistingFilesCheckbox.setEnabled(true);
- synchHelper.synchCheckbox(overwriteExistingFilesCheckbox, IJ2EEComponentExportDataModelProperties.OVERWRITE_EXISTING, null);
- }
-
- protected void createSourceFilesCheckbox(Composite optionsGroup) {
- sourceFilesCheckbox = new Button(optionsGroup, SWT.CHECK | SWT.LEFT);
- sourceFilesCheckbox.setText(J2EEUIMessages.getResourceString(J2EEUIMessages.J2EE_EXPORT_SOURCE_CHECKBOX)); //$NON-NLS-1$
- synchHelper.synchCheckbox(sourceFilesCheckbox, IJ2EEComponentExportDataModelProperties.EXPORT_SOURCE_FILES, null);
- }
-
- /**
- * @return
- */
- protected boolean shouldShowProjectFilesCheckbox() {
- return false;
- }
-
- protected void createProjectFilesCheckbox(Composite composite) {
- //do nothing
- }
-
- /**
- * Populates the resource name field based upon the currently-selected resources.
- */
- protected void setupBasedOnInitialSelections() {
-
- if (currentResourceSelection.isEmpty() || setupBasedOnRefObjectSelection())
- return; // no setup needed
-
- java.util.List selections = new ArrayList();
- Iterator aenum = currentResourceSelection.iterator();
- while (aenum.hasNext()) {
- IResource currentResource = (IResource) aenum.next();
- // do not add inaccessible elements
- if (currentResource.isAccessible())
- selections.add(currentResource);
- }
- if (selections.isEmpty())
- return; // setup not needed anymore
-
-// int selectedResourceCount = selections.size();
-//TODO: find a way to select an existing component
-// if (selectedResourceCount == 1) {
-// IResource resource = (IResource) selections.get(0);
-// if ((resource instanceof IProject) && checkForNature((IProject) resource)) {
-// resourceNameCombo.setText(resource.getName().toString());
-// }
-// }
- }
-
- /**
- * @return
- */
- protected String getProjectImportLabel() {
- return null;
- }
-
- /**
- *
- */
- protected void handleDestinationBrowseButtonPressed() {
-
- FileDialog dialog = new FileDialog(destinationNameCombo.getShell(), SWT.SAVE);
- String fileName = getDataModel().getStringProperty(IJ2EEComponentExportDataModelProperties.PROJECT_NAME);
- String[] filters = getFilterExpression();
- if (!isWindows) {
- if (filters.length != 0 && filters[0] != null && filters[0].indexOf('.') != -1) {
- fileName += filters[0].substring(filters[0].indexOf('.'));
- }
- }
- dialog.setFileName(fileName);
- if (isWindows) {
- dialog.setFilterExtensions(filters);
- }
- String filename = dialog.open();
- if (filename != null)
- destinationNameCombo.setText(filename);
- }
-
- protected void restoreWidgetValues() {
-
- IDialogSettings settings = getDialogSettings();
- if (settings != null) {
- String[] sourceNames = settings.getArray(STORE_LABEL + getFileNamesStoreID());
- if (sourceNames == null)
- return; // ie.- no settings stored
- for (int i = 0; i < sourceNames.length; i++) {
- if (sourceNames[i] == null)
- sourceNames[i] = ""; //$NON-NLS-1$
- }
- destinationNameCombo.setItems(sourceNames);
- boolean overwrite = settings.getBoolean(STORE_LABEL + OVERWRITE_LABEL);
- model.setBooleanProperty(IJ2EEComponentExportDataModelProperties.OVERWRITE_EXISTING, overwrite);
- boolean includeSource = settings.getBoolean(STORE_LABEL + SOURCE_LABEL);
- model.setBooleanProperty(IJ2EEComponentExportDataModelProperties.EXPORT_SOURCE_FILES, includeSource);
- }
- }
-
- public void storeDefaultSettings() {
- IDialogSettings settings = getDialogSettings();
- if (settings != null) {
- // update source names history
- String[] sourceNames = settings.getArray(STORE_LABEL + getFileNamesStoreID());
- if (sourceNames == null) {
- sourceNames = new String[0];
- }
-
- String newName = destinationNameCombo.getText();
-
- //rip out any empty filenames and trim length to 5
- ArrayList newNames = new ArrayList();
- for (int i = 0; i < sourceNames.length && i < 5; i++) {
- if (sourceNames[i].trim().length() > 0 && !newName.equals(sourceNames[i])) {
- newNames.add(sourceNames[i]);
- }
- }
- newNames.add(0, destinationNameCombo.getText());
- sourceNames = new String[newNames.size()];
- newNames.toArray(sourceNames);
-
- settings.put(STORE_LABEL + getFileNamesStoreID(), sourceNames);
- settings.put(STORE_LABEL + OVERWRITE_LABEL, model.getBooleanProperty(IJ2EEComponentExportDataModelProperties.OVERWRITE_EXISTING));
- settings.put(STORE_LABEL + SOURCE_LABEL, model.getBooleanProperty(IJ2EEComponentExportDataModelProperties.EXPORT_SOURCE_FILES));
- }
- }
-
- /**
- * @return
- */
- protected String getFileNamesStoreID() {
- return getCompnentID();
- }
- protected abstract String getCompnentID();
-
- /**
- * @return
- */
- protected String[] getFilterExpression() {
- return new String[0];
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.wst.common.frameworks.internal.ui.wizard.WTPWizardPage#enter()
- */
- protected void enter() {
- super.enter();
- restoreWidgetValues();
- }
-
- /**
- * @return
- */
- //protected abstract String getNatureID();
-
- protected abstract boolean isMetaTypeSupported(Object o);
-
- /**
- * Populates the resource name field based upon the currently-selected resources.
- */
- protected boolean setupBasedOnRefObjectSelection() {
-
- if (currentResourceSelection.size() != 1)
- return false;
-
- Object o = currentResourceSelection.getFirstElement();
- if (!isMetaTypeSupported(o))
- return false;
-
- EObject ref = (EObject) o;
- IResource resource = ProjectUtilities.getProject(ref);
- if (resource != null) {
- resourceNameCombo.setText(resource.getName().toString());
- }
- return true;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.wizard.WizardPage#getDialogSettings()
- */
- protected IDialogSettings getDialogSettings() {
- return J2EEUIPlugin.getDefault().getDialogSettings();
- }
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEModuleImportPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEModuleImportPage.java
deleted file mode 100644
index 9e1b18c82..000000000
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEModuleImportPage.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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
- *******************************************************************************/
-/*
- * Created on Dec 4, 2003
- *
- * To change the template for this generated file go to Window>Preferences>Java>Code Generation>Code and Comments
- */
-package org.eclipse.jst.j2ee.internal.wizard;
-
-import org.eclipse.jst.j2ee.datamodel.properties.IJ2EEComponentImportDataModelProperties;
-import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetProjectCreationDataModelProperties;
-import org.eclipse.jst.j2ee.ui.project.facet.EarSelectionPanel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties;
-import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties.FacetDataModelMap;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-
-/**
- * @author cbridgha
- *
- * To change the template for this generated type comment go to Window>Preferences>Java>Code
- * Generation>Code and Comments
- */
-public abstract class J2EEModuleImportPage extends J2EEImportPage {
- /**
- * @param model
- * @param pageName
- */
-
- protected EarSelectionPanel earPanel;
-
- public J2EEModuleImportPage(IDataModel model, String pageName) {
- super(model, pageName);
- }
-
- protected Composite createTopLevelComposite(Composite parent) {
- Composite composite = super.createTopLevelComposite(parent);
- PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, getInfopopID());
- createServerEarAndStandaloneGroup(composite);
- createAnnotationsStandaloneGroup(composite);
- return composite;
- }
-
- /**
- * @param composite
- */
- protected void createAnnotationsStandaloneGroup(Composite composite) {
- }
-
- protected abstract String getModuleFacetID();
- /**
- * @param composite
- */
-
- private void createServerEarAndStandaloneGroup(Composite composite) {
- IDataModel creationDM = getDataModel().getNestedModel(IJ2EEComponentImportDataModelProperties.NESTED_MODEL_J2EE_COMPONENT_CREATION);
- FacetDataModelMap map = (FacetDataModelMap) creationDM.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
- IDataModel facetModel = (IDataModel) map.get(getModuleFacetID());
-
- Composite c = new Composite(composite, SWT.NONE);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 3;
- c.setLayoutData(data);
- final GridLayout layout = new GridLayout(3, false);
- layout.marginWidth = 0;
- layout.marginHeight = 0;
- layout.horizontalSpacing = 0;
- c.setLayout(layout);
- earPanel = new EarSelectionPanel(facetModel, c);
- }
-
-
- protected String[] getValidationPropertyNames() {
- return new String[]{IJ2EEComponentImportDataModelProperties.FILE_NAME,
- IFacetProjectCreationDataModelProperties.FACET_PROJECT_NAME,
- IFacetProjectCreationDataModelProperties.FACET_RUNTIME,
- IJ2EEFacetProjectCreationDataModelProperties.EAR_PROJECT_NAME,
- IJ2EEFacetProjectCreationDataModelProperties.ADD_TO_EAR};
- }
-
- public void dispose() {
- super.dispose();
- if (earPanel != null)
- earPanel.dispose();
- }
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJ2EEComponentSelectionPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJ2EEComponentSelectionPage.java
deleted file mode 100644
index 1d8da973b..000000000
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJ2EEComponentSelectionPage.java
+++ /dev/null
@@ -1,537 +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
- *******************************************************************************/
-/*
- * Created on Mar 23, 2005
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
-package org.eclipse.jst.j2ee.internal.wizard;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jst.j2ee.applicationclient.internal.creation.AppClientFacetProjectCreationDataModelProvider;
-import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
-import org.eclipse.jst.j2ee.internal.actions.IJ2EEUIContextIds;
-import org.eclipse.jst.j2ee.internal.earcreation.IDefaultJ2EEComponentCreationDataModelProperties;
-import org.eclipse.jst.j2ee.internal.moduleextension.EarModuleManager;
-import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin;
-import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages;
-import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
-import org.eclipse.jst.j2ee.project.facet.J2EEModuleFacetInstallDataModelProvider;
-import org.eclipse.jst.j2ee.ui.project.facet.appclient.AppClientProjectWizard;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StackLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.activities.WorkbenchActivityHelper;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.wizards.IWizardDescriptor;
-import org.eclipse.ui.wizards.IWizardRegistry;
-import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties;
-import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties.FacetDataModelMap;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizardPage;
-import org.eclipse.wst.common.frameworks.internal.ui.GenericWizardNode;
-import org.eclipse.wst.web.ui.internal.wizards.NewProjectDataModelFacetWizard;
-
-public class NewJ2EEComponentSelectionPage extends DataModelWizardPage implements IDefaultJ2EEComponentCreationDataModelProperties {
- private Button defaultModulesButton;
-
- private Composite defaultModulesComposite;
-
- private Composite newModulesComposite;
-
- private Button appClientRadioButton;
-
- private Button ejbRadioButton;
-
- private Button webRadioButton;
-
- private Button connectorRadioButton;
-
- private GenericWizardNode appClientNode;
-
- private GenericWizardNode ejbNode;
-
- private GenericWizardNode webNode;
-
- private GenericWizardNode connectorNode;
-
- private GenericWizardNode selectedNode;
-
- private StackLayout stackLayout;
-
- /**
- * @param model
- * @param pageName
- */
- protected NewJ2EEComponentSelectionPage(IDataModel model, String pageName) {
- super(model, pageName);
- setTitle(J2EEUIMessages.getResourceString(J2EEUIMessages.DEFAULT_COMPONENT_PAGE_TITLE));
- setDescription(J2EEUIMessages.getResourceString(J2EEUIMessages.DEFAULT_COMPONENT_PAGE_DESC));
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.wst.common.frameworks.internal.ui.wizard.J2EEWizardPage#getValidationPropertyNames()
- */
- protected String[] getValidationPropertyNames() {
- return new String[] { CREATE_APPCLIENT, APPCLIENT_COMPONENT_NAME, CREATE_CONNECTOR, CONNECTOR_COMPONENT_NAME, CREATE_EJB, EJB_COMPONENT_NAME, CREATE_WEB, WEB_COMPONENT_NAME, MODULE_NAME_COLLISIONS_VALIDATION, ENABLED };
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.wst.common.frameworks.internal.ui.wizard.J2EEWizardPage#createTopLevelComposite(org.eclipse.swt.widgets.Composite)
- */
- protected Composite createTopLevelComposite(Composite parent) {
- Composite composite = new Composite(parent, SWT.NULL);
- GridLayout layout = new GridLayout();
- layout.numColumns = 1;
- composite.setLayout(layout);
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
- setInfopopID(IJ2EEUIContextIds.EAR_NEW_MODULE_PROJECTS_PAGE);
- createDefaultCheckBox(composite);
- Composite forStackComposite = new Composite(composite, SWT.NULL);
- layout = new GridLayout();
- forStackComposite.setLayout(layout);
- forStackComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
- Composite stackComposite = createStackLayoutComposite(forStackComposite);
- createDefaultModulesComposite(stackComposite);
- createModuleSelectionComposite(stackComposite);
- stackLayout.topControl = defaultModulesComposite;
- setButtonEnablement();
- return composite;
- }
-
- protected Composite createStackLayoutComposite(Composite parent) {
- Composite composite = new Composite(parent, SWT.NULL);
- stackLayout = new StackLayout();
- composite.setLayout(stackLayout);
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
- return composite;
- }
-
- private void createDefaultModulesComposite(Composite parent) {
- defaultModulesComposite = new Composite(parent, SWT.NULL);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- layout.marginHeight = 0;
- defaultModulesComposite.setLayout(layout);
- defaultModulesComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- // Default Module Controls creation
- createAppClientDefaultModuleControl();
- if (J2EEPlugin.isEJBSupportAvailable())
- createEJBDefaultModuleControl();
- createWebDefaultModuleControl();
- if (J2EEPlugin.isEJBSupportAvailable())
- createConnectorDefaultModuleControl();
- }
-
- /**
- * @param parent
- */
- private void createModuleSelectionComposite(Composite parent) {
- newModulesComposite = new Composite(parent, SWT.NULL);
- GridLayout layout = new GridLayout();
- layout.numColumns = 1;
- newModulesComposite.setLayout(layout);
- newModulesComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- appClientRadioButton = new Button(newModulesComposite, SWT.RADIO);
-
- appClientRadioButton.setText(J2EEUIMessages.getResourceString("NewModuleSelectionPage.appClient")); //$NON-NLS-1$
- appClientRadioButton.addListener(SWT.Selection, this);
- if (EarModuleManager.getEJBModuleExtension() != null) {
- ejbRadioButton = new Button(newModulesComposite, SWT.RADIO);
- ejbRadioButton.setText(J2EEUIMessages.getResourceString("NewModuleSelectionPage.ejb")); //$NON-NLS-1$
- ejbRadioButton.addListener(SWT.Selection, this);
- }
- if (EarModuleManager.getWebModuleExtension() != null) {
- webRadioButton = new Button(newModulesComposite, SWT.RADIO);
- webRadioButton.setText(J2EEUIMessages.getResourceString("NewModuleSelectionPage.web")); //$NON-NLS-1$
- webRadioButton.addListener(SWT.Selection, this);
- }
- if (EarModuleManager.getJCAModuleExtension() != null) {
- connectorRadioButton = new Button(newModulesComposite, SWT.RADIO);
- connectorRadioButton.setText(J2EEUIMessages.getResourceString("NewModuleSelectionPage.jca")); //$NON-NLS-1$
- connectorRadioButton.addListener(SWT.Selection, this);
- }
- }
-
- /**
- *
- */
- private void createConnectorDefaultModuleControl() {
- if (EarModuleManager.getJCAModuleExtension() != null) {
- String label = J2EEUIMessages.getResourceString(J2EEUIMessages.DEFAULT_COMPONENT_PAGE_JCA_MODULE_LBL);
- createJ2EEComponentControl(label, CREATE_CONNECTOR, CONNECTOR_COMPONENT_NAME);
- }
- }
-
- /**
- *
- */
- private void createWebDefaultModuleControl() {
- if (EarModuleManager.getWebModuleExtension() != null) {
- String label = J2EEUIMessages.getResourceString(J2EEUIMessages.DEFAULT_COMPONENT_PAGE_WEB_MODULE_LBL);
- createJ2EEComponentControl(label, CREATE_WEB, WEB_COMPONENT_NAME);
- }
- }
-
- /**
- *
- */
- private void createEJBDefaultModuleControl() {
- if (EarModuleManager.getEJBModuleExtension() != null) {
- String label = J2EEUIMessages.getResourceString(J2EEUIMessages.DEFAULT_COMPONENT_PAGE_EJB_MODULE_LBL);
- createJ2EEComponentControl(label, CREATE_EJB, EJB_COMPONENT_NAME);
- }
- }
-
- private void createAppClientDefaultModuleControl() {
- String label = J2EEUIMessages.getResourceString(J2EEUIMessages.DEFAULT_COMPONENT_PAGE_APPCLIENT_MODULE_LBL);
- createJ2EEComponentControl(label, CREATE_APPCLIENT, APPCLIENT_COMPONENT_NAME);
- }
-
- private void createJ2EEComponentControl(String label, String createProperty, String projectProperty) {
- final Button checkBox = new Button(defaultModulesComposite, SWT.CHECK);
- checkBox.setSelection(true);
- checkBox.setText(label);
-
- final Text textField = new Text(defaultModulesComposite, SWT.BORDER);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- textField.setLayoutData(data);
- synchHelper.synchCheckbox(checkBox, createProperty, null);
- synchHelper.synchText(textField, projectProperty, null);
- }
-
- private void createDefaultCheckBox(Composite composite) {
- Composite checkBoxComposite = new Composite(composite, SWT.NULL);
- GridLayout layout = new GridLayout();
- checkBoxComposite.setLayout(layout);
- checkBoxComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
- defaultModulesButton = new Button(checkBoxComposite, SWT.CHECK);
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
- data.horizontalIndent = 0;
- defaultModulesButton.setLayoutData(data);
- defaultModulesButton.setText(J2EEUIMessages.getResourceString(J2EEUIMessages.DEFAULT_COMPONENT_PAGE_NEW_MOD_SEL_PG_DEF_BTN));
- defaultModulesButton.setSelection(true);
- defaultModulesButton.addListener(SWT.Selection, this);
- synchHelper.synchCheckbox(defaultModulesButton, ENABLED, null);
- createControlsSeparatorLine(checkBoxComposite);
- }
-
- protected void createControlsSeparatorLine(Composite parent) {
- // add a horizontal line
- Label separator = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
- GridData data = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);
- separator.setLayoutData(data);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
- */
- public void handleEvent(Event evt) {
- if (evt.widget == defaultModulesButton)
- handleDefaultModulesButtonPressed();
- else if (!defaultModulesButton.getSelection()) {
- if (evt.widget == appClientRadioButton && appClientRadioButton.getSelection())
- setSelectedNode(getAppClientNode());
- else if (evt.widget == ejbRadioButton && ejbRadioButton.getSelection())
- setSelectedNode(getEjbNode());
- else if (evt.widget == webRadioButton && webRadioButton.getSelection())
- setSelectedNode(getWebNode());
- else if (evt.widget == connectorRadioButton && connectorRadioButton.getSelection())
- setSelectedNode(getConnectorNode());
- validatePage();
- }
- super.handleEvent(evt);
- }
-
- /**
- *
- */
- private void handleDefaultModulesButtonPressed() {
- if (defaultModulesButton.getSelection()) {
- setSelectedNode(null);
- showDefaultModulesComposite();
- setDefaultModulesSelection(true);
- } else {
- setDefaultModulesSelection(false);
- showNewModulesCompsite();
- }
- setButtonEnablement();
- validatePage();
- }
-
- private void setDefaultModulesSelection(boolean selection) {
- getDataModel().setBooleanProperty(CREATE_APPCLIENT, selection);
- getDataModel().setBooleanProperty(CREATE_CONNECTOR, selection);
- getDataModel().setBooleanProperty(CREATE_EJB, selection);
- getDataModel().setBooleanProperty(CREATE_WEB, selection);
- }
-
- private void showDefaultModulesComposite() {
- defaultModulesComposite.setVisible(true);
- newModulesComposite.setVisible(false);
- stackLayout.topControl = defaultModulesComposite;
- }
-
- /**
- * This is done based on the J2EE version. We need to disable Connectors if
- * not j2ee 1.3 or higher.
- */
- private void setButtonEnablement() {
- if (!defaultModulesButton.getSelection() && connectorRadioButton != null) {
- int version = getDataModel().getIntProperty(J2EE_VERSION);
- connectorRadioButton.setEnabled(version > J2EEVersionConstants.J2EE_1_2_ID);
- }
- }
-
- /**
- *
- */
- private void showNewModulesCompsite() {
- defaultModulesComposite.setVisible(false);
- newModulesComposite.setVisible(true);
- if (!isAnyModuleRadioSelected())
- appClientRadioButton.setSelection(true);
- setSelectedNode(getWizardNodeFromSelection());
- stackLayout.topControl = newModulesComposite;
- }
-
- /**
- * @return
- */
- private GenericWizardNode getWizardNodeFromSelection() {
- if (appClientRadioButton.getSelection())
- return getAppClientNode();
- if (connectorRadioButton != null && connectorRadioButton.getSelection())
- return getConnectorNode();
- if (ejbRadioButton != null && ejbRadioButton.getSelection())
- return getEjbNode();
- if (webRadioButton != null && webRadioButton.getSelection())
- return getWebNode();
- return null;
- }
-
- /**
- * @return
- */
- private boolean isAnyModuleRadioSelected() {
- return appClientRadioButton.getSelection() || (connectorRadioButton != null && connectorRadioButton.getSelection()) || (ejbRadioButton != null && ejbRadioButton.getSelection()) || (webRadioButton != null && webRadioButton.getSelection());
- }
-
- /**
- * @return Returns the appClientNode.
- */
- private GenericWizardNode getAppClientNode() {
- if (appClientNode == null) {
- appClientNode = new GenericWizardNode() {
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.wst.common.frameworks.internal.ui.wizard.GenericWizardNode#createWizard()
- */
- protected IWizard createWizard() {
- IDataModel dm = DataModelFactory.createDataModel(new AppClientFacetProjectCreationDataModelProvider());
- FacetDataModelMap map = (FacetDataModelMap) dm.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
- map.getFacetDataModel(J2EEProjectUtilities.APPLICATION_CLIENT).setBooleanProperty(J2EEModuleFacetInstallDataModelProvider.PROHIBIT_ADD_TO_EAR, true);
- return new AppClientProjectWizard(dm);
- }
- };
- }
- return appClientNode;
- }
-
- /**
- * @return Returns the connectorNode.
- */
- private GenericWizardNode getConnectorNode() {
- if (connectorNode == null) {
- connectorNode = new GenericWizardNode() {
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.wst.common.frameworks.internal.ui.wizard.GenericWizardNode#createWizard()
- */
- protected IWizard createWizard() {
- NewProjectDataModelFacetWizard result = null;
-
- IWizardRegistry newWizardRegistry = WorkbenchPlugin.getDefault().getNewWizardRegistry();
- IWizardDescriptor descriptor = newWizardRegistry.findWizard("org.eclipse.jst.j2ee.jca.ui.internal.wizard.ConnectorProjectWizard"); //$NON-NLS-1$
- try {
- result = (NewProjectDataModelFacetWizard)descriptor.createWizard();
- IDataModel dm = result.getDataModel();
- FacetDataModelMap map = (FacetDataModelMap) dm.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
- map.getFacetDataModel(J2EEProjectUtilities.JCA).setBooleanProperty(J2EEModuleFacetInstallDataModelProvider.PROHIBIT_ADD_TO_EAR, true);
- } catch (CoreException ce) {
- Logger.getLogger().log(ce);
- }
- return result;
- }
- };
- }
- return connectorNode;
- }
-
- /**
- * @return Returns the ejbNode.
- */
- private GenericWizardNode getEjbNode() {
- if (ejbNode == null) {
- ejbNode = new GenericWizardNode() {
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.wst.common.frameworks.internal.ui.wizard.GenericWizardNode#createWizard()
- */
- protected IWizard createWizard() {
- NewProjectDataModelFacetWizard result = null;
-
- IWizardRegistry newWizardRegistry = WorkbenchPlugin.getDefault().getNewWizardRegistry();
- IWizardDescriptor descriptor = newWizardRegistry.findWizard("org.eclipse.jst.ejb.ui.project.facet.EjbProjectWizard"); //$NON-NLS-1$
- try {
- result = (NewProjectDataModelFacetWizard)descriptor.createWizard();
- IDataModel dm = result.getDataModel();
- FacetDataModelMap map = (FacetDataModelMap) dm.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
- map.getFacetDataModel(J2EEProjectUtilities.EJB).setBooleanProperty(J2EEModuleFacetInstallDataModelProvider.PROHIBIT_ADD_TO_EAR, true);
- } catch (CoreException ce) {
- Logger.getLogger().log(ce);
- }
- return result;
- }
- };
- }
- return ejbNode;
- }
-
- /**
- * @return Returns the webNode.
- */
- private GenericWizardNode getWebNode() {
- if (webNode == null) {
- webNode = new GenericWizardNode() {
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.wst.common.frameworks.internal.ui.wizard.GenericWizardNode#createWizard()
- */
- protected IWizard createWizard() {
- NewProjectDataModelFacetWizard result = null;
- IWizardRegistry newWizardRegistry = WorkbenchPlugin.getDefault().getNewWizardRegistry();
- IWizardDescriptor servletWizardDescriptor = newWizardRegistry.findWizard("org.eclipse.jst.servlet.ui.project.facet.WebProjectWizard"); //$NON-NLS-1$
- try {
- result = (NewProjectDataModelFacetWizard)servletWizardDescriptor.createWizard();
- IDataModel dm = result.getDataModel();
- FacetDataModelMap map = (FacetDataModelMap) dm.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
- map.getFacetDataModel(J2EEProjectUtilities.DYNAMIC_WEB).setBooleanProperty(J2EEModuleFacetInstallDataModelProvider.PROHIBIT_ADD_TO_EAR, true);
-
- } catch (CoreException ce) {
- Logger.getLogger().log(ce);
- }
- return result;
- }
- };
- }
- return webNode;
- }
-
- /**
- * @param selectedNode
- * The selectedNode to set.
- */
- private void setSelectedNode(GenericWizardNode selectedNode) {
- this.selectedNode = selectedNode;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.wizard.WizardPage#canFlipToNextPage()
- */
- public boolean canFlipToNextPage() {
- if (!defaultModulesButton.getSelection())
- return selectedNode != null;
- return false;
- }
-
- /**
- * The WizardSelectionPage
implementation of this
- * IWizardPage
method returns the first page of the currently
- * selected wizard if there is one.
- */
- public IWizardPage getNextPage() {
- if (selectedNode == null)
- return null;
- IPluginContribution pluginContribution = new IPluginContribution() {
- public String getLocalId() {
- String id = null;
- if (selectedNode == appClientNode) {
- id = "org.eclipse.jst.j2ee.internal.internal.internal.appclientProjectWizard"; //$NON-NLS-1$
- } else if (selectedNode == ejbNode) {
- id = "org.eclipse.jst.j2ee.internal.internal.internal.ejb.ui.util.ejbProjectWizard"; //$NON-NLS-1$
- } else if (selectedNode == connectorNode) {
- id = "org.eclipse.jst.j2ee.internal.internal.internal.jcaProjectWizard"; //$NON-NLS-1$
- } else if (selectedNode == webNode) {
- id = "org.eclipse.jst.j2ee.internal.internal.internal.webProjectWizard"; //$NON-NLS-1$
- }
- return id;
- }
-
- public String getPluginId() {
- return "org.eclipse.jst.j2ee.internal.internal.internal.ui"; //$NON-NLS-1$
- }
- };
-
- if (!WorkbenchActivityHelper.allowUseOf(null,pluginContribution)) {
- return null;
- }
-
- boolean isCreated = selectedNode.isContentCreated();
- IWizard wizard = selectedNode.getWizard();
- if (wizard == null) {
- setSelectedNode(null);
- return null;
- }
- if (!isCreated) // Allow the wizard to create its pages
- wizard.addPages();
-
- return wizard.getStartingPage();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.wst.common.frameworks.internal.ui.wizard.J2EEWizardPage#validatePage()
- */
- protected void validatePage() {
- if (!defaultModulesButton.getSelection()) {
- setPageComplete(false);
- setErrorMessage(null);
- } else
- super.validatePage();
- }
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/EarProjectFirstPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/EarProjectFirstPage.java
deleted file mode 100644
index e66694fea..000000000
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/EarProjectFirstPage.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.jst.j2ee.ui.project.facet;
-
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jst.j2ee.internal.actions.IJ2EEUIContextIds;
-import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages;
-import org.eclipse.jst.j2ee.internal.plugin.J2EEUIPlugin;
-import org.eclipse.jst.j2ee.internal.plugin.J2EEUIPluginIcons;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.web.ui.internal.wizards.DataModelFacetCreationWizardPage;
-
-public class EarProjectFirstPage extends DataModelFacetCreationWizardPage {
-
- public EarProjectFirstPage(IDataModel dataModel, String pageName) {
- super(dataModel, pageName);
- setTitle(J2EEUIMessages.getResourceString(J2EEUIMessages.EAR_COMPONENT_MAIN_PG_TITLE));
- setDescription(J2EEUIMessages.getResourceString(J2EEUIMessages.EAR_COMPONENT_MAIN_PG_DESC));
- setImageDescriptor(J2EEUIPlugin.getDefault().getImageDescriptor(J2EEUIPluginIcons.EAR_WIZ_BANNER));
- setInfopopID(IJ2EEUIContextIds.NEW_EAR_WIZARD_P1);
- }
-
- protected IDialogSettings getDialogSettings() {
- return J2EEUIPlugin.getDefault().getDialogSettings();
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/RuntimeMismatchMarkerResolutions.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/RuntimeMismatchMarkerResolutions.java
deleted file mode 100644
index 80b94a2aa..000000000
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/RuntimeMismatchMarkerResolutions.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- * Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jst.j2ee.ui.project.facet;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.IMarkerResolution;
-import org.eclipse.ui.IMarkerResolutionGenerator;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.RuntimeManager;
-
-/**
- * @author Konstantin Komissarchik
- */
-
-public final class RuntimeMismatchMarkerResolutions
-
- implements IMarkerResolutionGenerator
-
-{
- public IMarkerResolution[] getResolutions( final IMarker marker )
- {
- return new IMarkerResolution[]
- {
- new Resolution( marker, marker.getAttribute( "runtime1", null ) ),
- new Resolution( marker, marker.getAttribute( "runtime2", null ) )
- };
- }
-
- private static final class Resolution
-
- implements IMarkerResolution
-
- {
- private final IMarker marker;
- private final String runtimeName;
-
- public Resolution( final IMarker marker,
- final String runtimeName )
- {
- this.marker = marker;
- this.runtimeName = runtimeName;
- }
-
- public String getLabel()
- {
- return NLS.bind( Resources.useSameRuntime, this.runtimeName );
- }
-
- public void run( final IMarker marker )
- {
- final IRuntime runtime
- = RuntimeManager.getRuntime( this.runtimeName );
-
- try
- {
- setRuntime( this.marker.getResource().getProject(), runtime );
-
- final String pjname
- = this.marker.getAttribute( "moduleProject", null );
-
- final IWorkspace ws = ResourcesPlugin.getWorkspace();
- final IProject pj = ws.getRoot().getProject( pjname );
-
- setRuntime( pj, runtime );
- }
- catch( CoreException e )
- {
- ErrorDialog.openError( null, Resources.errorDialogTitle,
- Resources.errorDialogMessage,
- e.getStatus() );
- }
- }
-
- private void setRuntime( final IProject proj,
- final IRuntime runtime )
-
- throws CoreException
-
- {
- final IFacetedProject fproj = ProjectFacetsManager.create( proj );
-
- if( ! fproj.getRuntime().equals( runtime ) )
- {
- fproj.setRuntime( runtime, null );
- }
- }
- }
-
- private static final class Resources
-
- extends NLS
-
- {
- public static String useSameRuntime;
- public static String errorDialogTitle;
- public static String errorDialogMessage;
-
- static
- {
- initializeMessages( RuntimeMismatchMarkerResolutions.class.getName(),
- Resources.class );
- }
- }
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/UtilityProjectWizard.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/UtilityProjectWizard.java
deleted file mode 100644
index 3fe7ad815..000000000
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/UtilityProjectWizard.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- * Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jst.j2ee.ui.project.facet;
-
-import java.net.URL;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages;
-import org.eclipse.jst.j2ee.project.facet.UtilityProjectCreationDataModelProvider;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectTemplate;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.project.facet.IProductConstants;
-import org.eclipse.wst.project.facet.ProductManager;
-import org.eclipse.wst.web.ui.internal.wizards.NewProjectDataModelFacetWizard;
-import org.osgi.framework.Bundle;
-
-/**
- * @author Konstantin Komissarchik
- */
-
-public final class UtilityProjectWizard extends NewProjectDataModelFacetWizard {
-
- public UtilityProjectWizard(IDataModel model) {
- super(model);
- setWindowTitle(J2EEUIMessages.getResourceString(J2EEUIMessages.JAVAUTIL_COMPONENT_WIZ_TITLE));
- }
-
- public UtilityProjectWizard(){
- super();
- setWindowTitle(J2EEUIMessages.getResourceString(J2EEUIMessages.JAVAUTIL_COMPONENT_WIZ_TITLE));
- }
-
- protected IDataModel createDataModel() {
- return DataModelFactory.createDataModel(new UtilityProjectCreationDataModelProvider());
- }
-
- protected ImageDescriptor getDefaultPageImageDescriptor() {
- final Bundle bundle = Platform.getBundle("org.eclipse.jst.j2ee.ui");
- final URL url = bundle.getEntry("icons/util-wiz-banner.gif");
- return ImageDescriptor.createFromURL(url);
- }
-
- protected IFacetedProjectTemplate getTemplate() {
- return ProjectFacetsManager.getTemplate("template.jst.utility");
- }
-
- protected IWizardPage createFirstPage() {
- return new UtilityProjectFirstPage(model, "first.page"); //$NON-NLS-1$
- }
-
- protected String getFinalPerspectiveID() {
- return ProductManager.getProperty(IProductConstants.FINAL_PERSPECTIVE_UTILITY);
- }
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.ui/plugin.properties b/plugins/org.eclipse.jst.j2ee.ui/plugin.properties
deleted file mode 100644
index 7fab0b8e7..000000000
--- a/plugins/org.eclipse.jst.j2ee.ui/plugin.properties
+++ /dev/null
@@ -1,53 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 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
-###############################################################################
-j2ee=J2EE
-client.jar.file_ui_=App Client JAR file
-client.import.description_ui_=Import an external Application Client JAR file into an Application Client project
-client.export.description_ui_=Export an Application Client project into an Application Client JAR file
-ear.file_ui_=EAR file
-ear.import.description_ui_=Import an external EAR file into an Enterprise Application project
-
-ear.export.description_ui_=Export an Enterprise Application project into an EAR file
-ear.export.action.description_ui_=Export EAR File...
-j2ee.category_ui_=J2EE
-client.project_ui_=Application Client Project
-ear.project_ui_=Enterprise Application Project
-j2ee.actions.description_ui_=Actions for J2EE Development
-create.enterprise.application_ui_=Create an Enterprise Application
-create.client.module_ui_=Create an Application Client project
-client.export.action.label_ui_=Export Application Client JAR...
-jar.dependencies.props_ui_=EAR Dependencies
-ejb.export.action.description_ui_=Export EJB JAR File...
-ejb.client.jar.creation.action.description_ui_=Create EJB Client Jar
-emptyEJBGroupFilter.name=Empty EJB groups
-ejb.export.action.description_ui_=Export EJB JAR File...
-utility_jar_import_wizard=J2EE Utility Jar
-deploy_ui_=Deploy
-Import_Classes=Import Class Files...
-flexible.project_ui_=Flexible Java Project
-new.flexible.project.description_ui_=Create a flexible Java project
-ear_component_ui_=Enterprise Application Project
-new.ear.component.description_ui_=Create a J2EE EAR project
-appclient_component_ui_=Application Client Project
-new.appclient.component.description_ui_=Create a J2EE application client project
-Java_Component=Java Component
-Java_Component.description=Create a Java Component
-addmodulestoear.props_ui_=EAR modules
-J2EEDependenciesPage.name = J2EE Module Dependencies
-weblib.dependencies.props_ui_=Web Libraries
-J2EE_Rename_Participant=J2EE Rename Participant
-new-projects-wizard-category-name = Web Tools (New)
-util-project-wizard-name = Utility Project
-util-project-wizard-description = Create a Utility project
-utility.import.description_ui_=Import one or more external *.jar files as J2EE Utility Projects or *.jars.
-ear-project-wizard-name = EAR Project
-ear-project-wizard-description = Create an EAR project
-Web_Project_Settings=Web Project Settings
diff --git a/plugins/org.eclipse.jst.j2ee.ui/plugin.xml b/plugins/org.eclipse.jst.j2ee.ui/plugin.xml
deleted file mode 100644
index 6ea5f5443..000000000
--- a/plugins/org.eclipse.jst.j2ee.ui/plugin.xml
+++ /dev/null
@@ -1,707 +0,0 @@
-
-
-ProjectRefactorOperation
that contains deletion-specific logic.
- */
-public class ProjectDeleteOperation extends ProjectRefactorOperation {
-
- public ProjectDeleteOperation(final IDataModel model) {
- super(model);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jst.j2ee.internal.refactor.operations.ProjectRefactorOperation#updateProject(org.eclipse.jst.j2ee.internal.refactor.operations.ProjectRefactorMetadata)
- */
- protected void updateProject(final ProjectRefactorMetadata refactoredMetadata)
- throws ExecutionException {
- }
-
- /**
- * Updates the metadata for dependent projects
- * @throws ExecutionException
- */
- protected void updateDependentProjects(final ProjectRefactorMetadata refactoredMetadata,
- final IProgressMonitor monitor) throws ExecutionException {
- // If this is not an EAR, update metadata for dependent projects
- // (not performing any refactoring for projects that depend on EAR's right now)
- if (!refactoredMetadata.isEAR()) {
- super.updateDependentProjects(refactoredMetadata, monitor);
- }
- // update any server instance refs to the refactored project
- super.updateServerRefs(refactoredMetadata, null);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jst.j2ee.internal.refactor.operations.ProjectRefactorOperation#updateDependentEARProject(org.eclipse.jst.j2ee.internal.refactor.operations.ProjectRefactorMetadata, org.eclipse.jst.j2ee.internal.refactor.operations.ProjectRefactorMetadata)
- */
- protected void updateDependentEARProject(final ProjectRefactorMetadata dependentMetadata,
- final ProjectRefactorMetadata refactoredMetadata) throws ExecutionException {
- final IDataModel dataModel = createDataModel(dependentMetadata, refactoredMetadata,
- new UpdateDependentEARonDeleteProvider());
- dataModel.getDefaultOperation().execute(null, null);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jst.j2ee.internal.refactor.operations.ProjectRefactorOperation#updateDependentModuleProject(org.eclipse.jst.j2ee.internal.refactor.operations.ProjectRefactorMetadata, org.eclipse.jst.j2ee.internal.refactor.operations.ProjectRefactorMetadata)
- */
- protected void updateDependentModuleProject(final ProjectRefactorMetadata dependentMetadata,
- final ProjectRefactorMetadata refactoredMetadata) throws ExecutionException {
- final IDataModel dataModel = createDataModel(dependentMetadata, refactoredMetadata,
- new UpdateDependentModuleonDeleteProvider());
- dataModel.getDefaultOperation().execute(null, null);
- }
-
- private IDataModel createDataModel(final ProjectRefactorMetadata dependentMetadata,
- final ProjectRefactorMetadata refactoredMetadata,
- final AbstractDataModelProvider provider) {
- final IDataModel dataModel = DataModelFactory.createDataModel(provider);
- dataModel.setProperty(PROJECT_METADATA, refactoredMetadata);
- dataModel.setProperty(DEPENDENT_PROJECT_METADATA, dependentMetadata);
- return dataModel;
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee/refactor/org/eclipse/jst/j2ee/refactor/operations/ProjectRefactorMetadata.java b/plugins/org.eclipse.jst.j2ee/refactor/org/eclipse/jst/j2ee/refactor/operations/ProjectRefactorMetadata.java
deleted file mode 100644
index 87ce8a60f..000000000
--- a/plugins/org.eclipse.jst.j2ee/refactor/org/eclipse/jst/j2ee/refactor/operations/ProjectRefactorMetadata.java
+++ /dev/null
@@ -1,369 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- * rfrost@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jst.j2ee.refactor.operations;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jst.j2ee.componentcore.util.EARArtifactEdit;
-import org.eclipse.wst.common.componentcore.ComponentCore;
-import org.eclipse.wst.common.componentcore.ModuleCoreNature;
-import org.eclipse.wst.common.componentcore.internal.resources.VirtualComponent;
-import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
-import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
-import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
-import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.ServerUtil;
-
-/**
- * IDataModel object property stored under the property name
- * {@link ProjectRefactoringDataModelProvider#PROJECT_METADATA}.
- *
- * Note: this class is not multi-thread safe.
- */
-public class ProjectRefactorMetadata {
-
- public static int NON_CACHING = 0;
- public static int REF_CACHING = 1;
- public static int REFERER_CACHING = 2;
-
- private int _virtualCompCaching = NON_CACHING;
- private final IProject _project;
- private IServer[] servers;
- private IVirtualComponent virtualComp = null;
- private final List dependentMetadata = new ArrayList();
- private boolean javaNature;
- private boolean moduleCoreNature;
- private IModule module;
- private Set facets = new HashSet();
- private final Map earToModuleURI = new HashMap();
-
- public ProjectRefactorMetadata(final IProject project) {
- _project = project;
- }
-
- public ProjectRefactorMetadata(final IProject project, final int virtualCompCaching) {
- this(project);
- _virtualCompCaching = virtualCompCaching;
- }
-
- public void computeMetadata() {
- computeMetadata(_project);
- }
- public void computeMetadata(final IProject oldProject) {
- try {
- javaNature = _project.hasNature("org.eclipse.jdt.core.javanature"); //$NON-NLS-1$
- moduleCoreNature = ModuleCoreNature.getModuleCoreNature(_project) != null;
- if (moduleCoreNature) {
- if (_virtualCompCaching == REF_CACHING) {
- virtualComp = new RefCachingVirtualComponent(ComponentCore.createComponent(_project));
- } else if (_virtualCompCaching == REFERER_CACHING) {
- virtualComp = new RefererCachingVirtualComponent(ComponentCore.createComponent(_project));
- } else {
- virtualComp = ComponentCore.createComponent(_project);
- }
- final IFacetedProject facetedProject = ProjectFacetsManager.create(_project);
- module = ServerUtil.getModule(_project);
- // XXX Due to resource change listener order uncertainty, the project associated with the
- // module may be either the new (correct) project or the old project so need to try both
- if (module == null && !_project.equals(oldProject)) {
- module = ServerUtil.getModule(oldProject);
- }
- facets = facetedProject.getProjectFacets();
- }
- } catch (CoreException ce) {
- Logger.getLogger().logError(ce);
- }
- }
-
- public void computeServers() {
- servers = ServerUtil.getServersByModule(module, null);
- }
-
- public IServer[] getServers() {
- return servers;
- }
-
- public void computeDependentMetadata(final int virtualComponentCaching, final IProject[] dependentProjects) {
- // get all referencing projects and execute the appropriate update operation for each one
- ProjectRefactorMetadata metadata;
- for (int i = 0; i < dependentProjects.length; i++) {
- final IProject dependentProject = dependentProjects[i];
- if (dependentProject.exists() && dependentProject.isOpen()) {
- metadata = new ProjectRefactorMetadata(dependentProjects[i], virtualComponentCaching);
- metadata.computeMetadata();
- dependentMetadata.add(metadata);
- if (metadata.isEAR()) {
- final String uri = getModuleURI(dependentProject, virtualComp);
- if (uri != null) {
- earToModuleURI.put(dependentProject.getName(), uri);
- }
- }
- }
- }
- }
-
- /**
- * If this project is associated with the specified EAR project, retrieves the module URI for the dependency or null if
- * it could not be retrieved.
- * @param earName Name of the EAR project.
- * @return Module URI for the project in the context of that EAR.
- */
- public String getModuleURI(final String earName) {
- return (String) earToModuleURI.get(earName);
- }
-
- private String getModuleURI(final IProject earProject, final IVirtualComponent comp) {
- EARArtifactEdit earEdit = null;
- try {
- earEdit = EARArtifactEdit.getEARArtifactEditForRead(earProject);
- if (earEdit != null) {
- return earEdit.getModuleURI(comp);
- }
- } catch (Exception e) {
- Logger.getLogger().logError(e);
- } finally {
- if (earEdit != null) {
- earEdit.dispose();
- }
- }
- return null;
- }
-
- /**
- * Retrieves the IProject that represents the referenced project.
- */
- public IProject getProject() {
- return _project;
- }
-
- /**
- * Retrieves the IModule for the project, or null if no IModule representation
- * exists.
- */
- public IModule getModule() {
- return module;
- }
-
- /**
- * Retrieves the project name.
- */
- public String getProjectName() {
- return _project.getName();
- }
-
- /**
- * Retrieves all ProjectRefactorMetadata for dependent projects.
- * Will be empty if not computed.
- */
- public ProjectRefactorMetadata[] getDependentMetadata() {
- return (ProjectRefactorMetadata[]) dependentMetadata.toArray(new ProjectRefactorMetadata[dependentMetadata.size()]);
- }
-
- /**
- * Returns the IVirtualComponent for the project.
- */
- public IVirtualComponent getVirtualComponent() {
- return virtualComp;
- }
-
- public boolean hasJavaNature() {
- return javaNature;
- }
-
- public boolean hasModuleCoreNature() {
- return moduleCoreNature;
- }
-
- public Set getProjectFacets() {
- return facets;
- }
-
- public boolean hasFacet(final IProjectFacet facet) {
- for(Iterator itr = facets.iterator(); itr.hasNext();) {
- final IProjectFacetVersion fv = (IProjectFacetVersion) itr.next();
-
- if(fv.getProjectFacet() == facet) {
- return true;
- }
- }
-
- return false;
- }
-
- public boolean isEAR() {
- return hasFacet(ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_EAR_MODULE));
- }
-
- public boolean isEJB() {
- return hasFacet(ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_EJB_MODULE));
- }
-
- public boolean isWeb() {
- return hasFacet(ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_WEB_MODULE));
- }
-
- public boolean isAppClient() {
- return hasFacet(ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_APPCLIENT_MODULE));
- }
-
- public boolean isConnector() {
- return hasFacet(ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_CONNECTOR_MODULE));
- }
-
- public boolean isUtility() {
- return hasFacet(ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_UTILITY_MODULE));
- }
-
- public class CachingVirtualComponent implements IVirtualComponent {
- protected final IVirtualComponent _comp;
- protected boolean _caching = true;
- public CachingVirtualComponent(final IVirtualComponent comp) {
- _comp = comp;
- }
- public void addReferences(IVirtualReference[] references) {
- _comp.addReferences(references);
- }
- public void create(int updateFlags, IProgressMonitor aMonitor) throws CoreException {
- _comp.create(updateFlags, aMonitor);
- }
- public boolean exists() {
- return _comp.exists();
- }
- public IVirtualComponent getComponent() {
- return _comp.getComponent();
- }
- public Properties getMetaProperties() {
- return _comp.getMetaProperties();
- }
- public IPath[] getMetaResources() {
- return _comp.getMetaResources();
- }
- public String getName() {
- return _comp.getName();
- }
- public String getDeployedName() {
- return _comp.getDeployedName();
- }
- public IProject getProject() {
- return _comp.getProject();
- }
- public IVirtualReference getReference(String aComponentName) {
- return _comp.getReference(aComponentName);
- }
- public IVirtualReference[] getReferences() {
- return _comp.getReferences();
- }
- public void setCaching(boolean caching) {
- _caching = caching;
- }
- public IVirtualComponent[] getReferencingComponents() {
- return _comp.getReferencingComponents();
- }
- public IVirtualFolder getRootFolder() {
- return _comp.getRootFolder();
- }
- public boolean isBinary() {
- return _comp.isBinary();
- }
- public void setMetaProperties(Properties properties) {
- _comp.setMetaProperties(properties);
- }
- public void setMetaProperty(String name, String value) {
- _comp.setMetaProperty(name, value);
- }
- public void setMetaResources(IPath[] theMetaResourcePaths) {
- _comp.setMetaResources(theMetaResourcePaths);
- }
- public void setReferences(IVirtualReference[] theReferences) {
- _comp.setReferences(theReferences);
- }
- public Object getAdapter(Class adapter) {
- return _comp.getAdapter(adapter);
- }
-
- public boolean equals(Object o) {
- return _comp.equals(o);
- }
-
- public int hashCode() {
- return _comp.hashCode();
- }
-
- public String toString() {
- return _comp.toString();
- }
-
- public void removeReference(IVirtualReference aReference) {
- ((VirtualComponent)_comp).removeReference(aReference);
- }
- }
-
- public class RefCachingVirtualComponent extends CachingVirtualComponent {
- private IVirtualReference[] cachedRefs;
- public RefCachingVirtualComponent(final IVirtualComponent comp) {
- super(comp);
- cachedRefs = ((VirtualComponent)comp).getAllReferences();
- }
-
- public IVirtualReference getReference(String aComponentName) {
- IVirtualReference[] refs = getReferences();
- for (int i = 0; i < refs.length; i++) {
- IVirtualReference reference = refs[i];
- if (reference == null || reference.getReferencedComponent() == null) {
- return null;
- }
- if (reference.getReferencedComponent().getName().equals(aComponentName))
- return reference;
- }
- return null;
- }
- public IVirtualReference[] getReferences() {
- if (_caching) {
- return cachedRefs;
- }
- return super.getReferences();
- }
- }
-
- public class RefererCachingVirtualComponent extends CachingVirtualComponent {
- private IVirtualComponent[] cachedReferers;
- public RefererCachingVirtualComponent(final IVirtualComponent comp) {
- super(comp);
- cachedReferers = comp.getReferencingComponents();
- }
-
- public IVirtualComponent[] getReferencingComponents() {
- if (_caching) {
- return cachedReferers;
- }
- return _comp.getReferencingComponents();
- }
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee/refactor/org/eclipse/jst/j2ee/refactor/operations/ProjectRenameOperation.java b/plugins/org.eclipse.jst.j2ee/refactor/org/eclipse/jst/j2ee/refactor/operations/ProjectRenameOperation.java
deleted file mode 100644
index 4b5db9b7e..000000000
--- a/plugins/org.eclipse.jst.j2ee/refactor/org/eclipse/jst/j2ee/refactor/operations/ProjectRenameOperation.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- * rfrost@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jst.j2ee.refactor.operations;
-
-import java.util.List;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.componentcore.internal.ComponentcoreFactory;
-import org.eclipse.wst.common.componentcore.internal.Property;
-import org.eclipse.wst.common.componentcore.internal.StructureEdit;
-import org.eclipse.wst.common.componentcore.internal.WorkbenchComponent;
-import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelProvider;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.server.core.util.ProjectModuleFactoryDelegate;
-
-public class ProjectRenameOperation extends ProjectRefactorOperation {
-
- public ProjectRenameOperation(final IDataModel model) {
- super(model);
- }
-
- /**
- * Override to return the pre-rename metadata.
- */
- protected ProjectRefactorMetadata getProjectMetadata() {
- return (ProjectRefactorMetadata) model.getProperty(ProjectRenameDataModelProvider.ORIGINAL_PROJECT_METADATA);
- }
-
- /**
- * Updates the project's own metadata.
- */
- protected void updateProject(final ProjectRefactorMetadata originalMetadata)
- throws ExecutionException {
-
- // Update the project's .component file
- final ProjectRefactorMetadata refactoredMetadata = super.getProjectMetadata();
- StructureEdit core = null;
- try {
- core = StructureEdit.getStructureEditForWrite(refactoredMetadata.getProject());
- WorkbenchComponent component = core.getComponent();
- // if the deploy-name had been set to the old project name, update it to
- // the new project name
- if (component.getName().equals(originalMetadata.getProjectName())) {
- component.setName(refactoredMetadata.getProjectName());
- }
- // if there is a context-root property that had been set to the old project name, update it to
- // the new project name
- List propList = component.getProperties();
- for (int i = 0; i < propList.size(); i++) {
- final Property prop = (Property) propList.get(i);
- if (prop.getName().equals("context-root") && prop.getValue().equals(originalMetadata.getProjectName())) {
- propList.remove(i);
- final Property newProp = ComponentcoreFactory.eINSTANCE.createProperty();
- newProp.setName("context-root");
- newProp.setValue(refactoredMetadata.getProjectName());
- propList.add(newProp);
- break;
- }
- }
- } finally {
- if(core != null) {
- core.saveIfNecessary(null);
- core.dispose();
- }
- }
- }
-
- /**
- * Updates the metadata for dependent projects
- * @throws ExecutionException
- */
- protected void updateDependentProjects(final ProjectRefactorMetadata originalMetadata,
- final IProgressMonitor monitor) throws ExecutionException {
- // If this is not an EAR, update metadata for dependent projects
- // (not performing any refactoring for projects that depend on EAR's right now)
- if (!originalMetadata.isEAR()) {
- super.updateDependentProjects(originalMetadata, monitor);
- }
- // update any server instance refs to the refactored project
- final ProjectRefactorMetadata refactoredMetadata = super.getProjectMetadata();
- ProjectModuleFactoryDelegate.handleGlobalProjectChange(refactoredMetadata.getProject(),
- (IResourceDelta) model.getProperty(ProjectRenameDataModelProvider.RESOURCE_DELTA));
- super.updateServerRefs(originalMetadata, refactoredMetadata);
- }
-
- /**
- * Updates the dependent EAR project to account for the renaming of the referenced project.
- */
- protected void updateDependentEARProject(final ProjectRefactorMetadata dependentMetadata,
- final ProjectRefactorMetadata originalMetadata) throws ExecutionException {
- final IDataModel dataModel = createDataModel(dependentMetadata, originalMetadata,
- new UpdateDependentEARonRenameProvider());
- dataModel.getDefaultOperation().execute(null, null);
- }
-
- /**
- * Updates the dependent module project to account for the renaming of the referenced project.
- */
- protected void updateDependentModuleProject(final ProjectRefactorMetadata dependentMetadata,
- final ProjectRefactorMetadata originalMetadata) throws ExecutionException {
- final IDataModel dataModel = createDataModel(dependentMetadata, originalMetadata,
- new UpdateDependentModuleonRenameProvider());
- dataModel.getDefaultOperation().execute(null, null);
- }
-
- private IDataModel createDataModel(final ProjectRefactorMetadata dependentMetadata,
- final ProjectRefactorMetadata originalMetadata,
- final AbstractDataModelProvider provider) {
- final ProjectRefactorMetadata refactoredMetadata = super.getProjectMetadata();
- final IDataModel dataModel = DataModelFactory.createDataModel(provider);
- dataModel.setProperty(PROJECT_METADATA, refactoredMetadata);
- dataModel.setProperty(DEPENDENT_PROJECT_METADATA, dependentMetadata);
- dataModel.setProperty(ORIGINAL_PROJECT_METADATA, originalMetadata);
- return dataModel;
- }
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee/refactor/org/eclipse/jst/j2ee/refactor/operations/UpdateDependentModuleonDeleteOp.java b/plugins/org.eclipse.jst.j2ee/refactor/org/eclipse/jst/j2ee/refactor/operations/UpdateDependentModuleonDeleteOp.java
deleted file mode 100644
index 4b56a41be..000000000
--- a/plugins/org.eclipse.jst.j2ee/refactor/org/eclipse/jst/j2ee/refactor/operations/UpdateDependentModuleonDeleteOp.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- * rfrost@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jst.j2ee.refactor.operations;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.jar.Manifest;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jst.j2ee.application.internal.operations.UpdateManifestDataModelProperties;
-import org.eclipse.jst.j2ee.application.internal.operations.UpdateManifestDataModelProvider;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveManifest;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveManifestImpl;
-import org.eclipse.jst.j2ee.internal.J2EEConstants;
-import org.eclipse.jst.j2ee.refactor.RefactorResourceHandler;
-import org.eclipse.wst.common.componentcore.datamodel.properties.ICreateReferenceComponentsDataModelProperties;
-import org.eclipse.wst.common.componentcore.internal.operation.RemoveReferenceComponentsDataModelProvider;
-import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
-import org.eclipse.wst.common.componentcore.resources.IVirtualFile;
-import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-/**
- * Subclass of UpdateDependentProjectOp
that updates a dependent
- * module project when one of the referenced projects has been deleted.
- */
-public class UpdateDependentModuleonDeleteOp extends UpdateDependentProjectOp {
-
- /**
- * Creates a new refactoring operation for the specified data model.
- * @param model The data model.
- */
- public UpdateDependentModuleonDeleteOp(final IDataModel model) {
- super(model);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.IUndoableOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
- public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
- final ProjectRefactorMetadata dependentMetadata = (ProjectRefactorMetadata) model.getProperty(DEPENDENT_PROJECT_METADATA);
- final ProjectRefactorMetadata refactoredMetadata = (ProjectRefactorMetadata) model.getProperty(PROJECT_METADATA);
- removeModuleDependency(dependentMetadata, refactoredMetadata);
- return Status.OK_STATUS;
- }
-
- /**
- * Updates the dependent module project to account for the deletion of the referenced project.
- */
- protected static void removeModuleDependency(final ProjectRefactorMetadata dependentMetadata,
- final ProjectRefactorMetadata refactoredMetadata) throws ExecutionException {
-
- // create IVirtualComponents for the dependent and the refactored project
- final IVirtualComponent dependentComp = dependentMetadata.getVirtualComponent();
- final IVirtualComponent refactoredComp = refactoredMetadata.getVirtualComponent();
- final IProgressMonitor monitor = new NullProgressMonitor();
-
- // Does the dependent project have a .component reference on the refactored project?
- final IVirtualReference ref = hadReference(dependentMetadata, refactoredMetadata);
- final boolean webLibDep = hasWebLibDependency(ref);
-
- // remove the component reference on the deleted project
- if (refactoredComp != null) {
- final IDataModel model = DataModelFactory.createDataModel(new RemoveReferenceComponentsDataModelProvider());
- model.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT, dependentComp);
- final List modHandlesList = (List) model.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
- modHandlesList.add(refactoredComp);
- model.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, modHandlesList);
- if (webLibDep) {
- model.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH,"/WEB-INF/lib"); //$NON-NLS-1$
- }
- model.getDefaultOperation().execute(monitor, null);
- }
-
- // update the manifest
- if (!webLibDep) {
- updateManifestDependency(refactoredMetadata, dependentMetadata, true);
- }
- }
-
- protected static void updateManifestDependency(final ProjectRefactorMetadata refactoredMetadata,
- final ProjectRefactorMetadata dependentMetadata, final boolean remove) throws ExecutionException {
- final IVirtualComponent dependentComp = dependentMetadata.getVirtualComponent();
- final String dependentProjName = dependentMetadata.getProjectName();
- final String refactoredProjName = refactoredMetadata.getProjectName();
- final IVirtualFile vf = dependentComp.getRootFolder().getFile(new Path(J2EEConstants.MANIFEST_URI) );
- final IFile manifestmf = vf.getUnderlyingFile();
- final IProgressMonitor monitor = new NullProgressMonitor();
- final IDataModel updateManifestDataModel = DataModelFactory.createDataModel(new UpdateManifestDataModelProvider());
- updateManifestDataModel.setProperty(UpdateManifestDataModelProperties.PROJECT_NAME, dependentProjName);
- updateManifestDataModel.setBooleanProperty(UpdateManifestDataModelProperties.MERGE, false);
- updateManifestDataModel.setProperty(UpdateManifestDataModelProperties.MANIFEST_FILE, manifestmf);
- final ArchiveManifest manifest = getArchiveManifest(manifestmf);
- String[] cp = manifest.getClassPathTokenized();
- List cpList = new ArrayList();
- String newCp = refactoredProjName + ".jar";//$NON-NLS-1$
- for (int i = 0; i < cp.length; i++) {
- if (!cp[i].equals(newCp)) {
- cpList.add(cp[i]);
- }
- }
- if (!remove) {
- cpList.add(newCp);
- }
- updateManifestDataModel.setProperty(UpdateManifestDataModelProperties.JAR_LIST, cpList);
- updateManifestDataModel.getDefaultOperation().execute(monitor, null );
- }
-
- private static ArchiveManifest getArchiveManifest(final IFile manifestFile) throws ExecutionException {
- InputStream in = null;
- try {
- in = manifestFile.getContents();
- ArchiveManifest mf = new ArchiveManifestImpl(new Manifest(in));
- return mf;
- } catch (CoreException ce) {
- throw new ExecutionException(RefactorResourceHandler.getString("error_reading_manifest"), ce);
- } catch (IOException io) {
- throw new ExecutionException(RefactorResourceHandler.getString("error_reading_manifest"), io);
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException weTried) {
- //Ignore
- }
- }
- }
- }
-
-}
diff --git a/plugins/org.eclipse.jst.servlet.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.servlet.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 63e04ab7e..000000000
--- a/plugins/org.eclipse.jst.servlet.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,43 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jst.servlet.ui; singleton:=true
-Bundle-Version: 1.1.0.qualifier
-Bundle-Activator: org.eclipse.jst.servlet.ui.internal.plugin.ServletUIPlugin
-Bundle-Vendor: %pluginVendor
-Bundle-Localization: plugin
-Export-Package: org.eclipse.jst.servlet.ui,
- org.eclipse.jst.servlet.ui.internal.actions;x-internal:=true,
- org.eclipse.jst.servlet.ui.internal.deployables;x-internal:=true,
- org.eclipse.jst.servlet.ui.internal.plugin;x-internal:=true,
- org.eclipse.jst.servlet.ui.internal.wizard;x-internal:=true,
- org.eclipse.jst.servlet.ui.project.facet
-Require-Bundle: org.eclipse.core.resources;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui.workbench;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.jface;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.jst.j2ee.ui;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.common.frameworks.ui;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.common.frameworks;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.jst.j2ee;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.jst.j2ee.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.jst.j2ee.web;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.web;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.jdt.core;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.jdt.ui;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.wst.common.modulecore;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.jem.util;bundle-version="[1.2.0,1.3.0)",
- org.eclipse.jem;bundle-version="[1.2.0,1.3.0)",
- org.eclipse.emf.ecore;bundle-version="[2.2.0,2.3.0)",
- org.eclipse.jst.common.frameworks;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.debug.ui;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.wst.server.core;bundle-version="[1.0.102,1.1.0)",
- org.eclipse.jst.server.core;bundle-version="[1.0.102,1.1.0)",
- org.eclipse.wst.common.project.facet.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.common.project.facet.ui;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.web.ui;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.ui.navigator.resources;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui.navigator;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui.ide;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.emf.edit;bundle-version="[2.2.0,2.3.0)"
-Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/actions/ConvertToWebModuleTypeAction.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/actions/ConvertToWebModuleTypeAction.java
deleted file mode 100644
index 6c98c38e2..000000000
--- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/actions/ConvertToWebModuleTypeAction.java
+++ /dev/null
@@ -1,129 +0,0 @@
-package org.eclipse.jst.servlet.ui.internal.actions;
-
-/*******************************************************************************
- * 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
- *******************************************************************************/
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jst.common.project.facet.JavaFacetUtils;
-import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
-import org.eclipse.jst.servlet.ui.internal.wizard.ConvertToWebModuleTypeDialog;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.web.ui.internal.Logger;
-/**
- * Convert a simple static web project to a J2EE Dynamic Web Project
- */
-public class ConvertToWebModuleTypeAction extends Action implements IWorkbenchWindowActionDelegate {
-
- IStructuredSelection fSelection = null;
- IProject project = null;
- IWorkbenchWindow fWindow;
-
- /**
- * ConvertLinksDialog constructor comment.
- */
- public ConvertToWebModuleTypeAction() {
- super();
- }
-
- /**
- * make sure a web project is selected.
- */
- protected boolean isValidProject(IProject aProject) {
- return J2EEProjectUtilities.isStaticWebProject(aProject);
- }
-
- /**
- * selectionChanged method comment.
- */
- public void selectionChanged(IAction action, ISelection selection) {
- boolean bEnable = false;
- if (selection instanceof IStructuredSelection) {
- fSelection = (IStructuredSelection) selection;
- bEnable = validateSelected(fSelection);
- }
- ((Action) action).setEnabled(bEnable);
- }
-
- /**
- * selectionChanged method comment.
- */
- protected boolean validateSelected(ISelection selection) {
- if (!(selection instanceof IStructuredSelection))
- return false;
-
- fSelection = (IStructuredSelection) selection;
-
- Object selectedProject = fSelection.getFirstElement();
- if (!(selectedProject instanceof IProject))
- return false;
-
- project = (IProject) selectedProject;
- return isValidProject(project);
- }
-
- public void dispose() {
- // Default
- }
-
- public void init(IWorkbenchWindow window) {
- // Default
- }
-
- public void run(IAction action) {
- try {
- IWorkbenchWindow window = PlatformUI.getWorkbench().getWorkbenchWindows()[0];
- ConvertToWebModuleTypeDialog dialog = new ConvertToWebModuleTypeDialog(window.getShell());
- dialog.open();
- if (dialog.getReturnCode() == Window.CANCEL)
- return;
-
- doConvert(dialog.getSelectedVersion());
-
- } catch (Exception e) {
- Logger.logException(e);
- }
- }
-
- protected void doConvert(String selectedVersion) throws Exception {
- IFacetedProject facetedProject = ProjectFacetsManager.create(project);
- Set fixedFacets = new HashSet();
- fixedFacets.addAll(facetedProject.getFixedProjectFacets());
- IProjectFacet webFacet = ProjectFacetsManager.getProjectFacet(IModuleConstants.WST_WEB_MODULE);
- fixedFacets.remove(webFacet);
- facetedProject.setFixedProjectFacets(fixedFacets);
- IProjectFacetVersion webFv = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_WEB_MODULE).getVersion(selectedVersion);
- IProjectFacetVersion javaFv = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_JAVA).getVersion(JavaFacetUtils.getCompilerLevel(project));
- IFacetedProject.Action uninstall = new IFacetedProject.Action(IFacetedProject.Action.Type.UNINSTALL, facetedProject.getInstalledVersion(webFacet), null);
- IFacetedProject.Action install = new IFacetedProject.Action(IFacetedProject.Action.Type.INSTALL,webFv,null);
- IFacetedProject.Action javaInstall = new IFacetedProject.Action(IFacetedProject.Action.Type.INSTALL, javaFv, null);
- Set set = new HashSet();
- set.add(uninstall);
- set.add(install);
- set.add(javaInstall);
- facetedProject.modify(set, new NullProgressMonitor());
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/CompressedJavaProject.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/CompressedJavaProject.java
deleted file mode 100644
index 2dc5d92bf..000000000
--- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/CompressedJavaProject.java
+++ /dev/null
@@ -1,119 +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
- **************************************************************************************************/
-package org.eclipse.jst.servlet.ui.internal.navigator;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.ui.ISharedImages;
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jst.servlet.ui.internal.plugin.ServletUIPlugin;
-import org.eclipse.jst.servlet.ui.internal.plugin.WEBUIMessages;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.graphics.Image;
-
-public class CompressedJavaProject implements ICompressedNode, IAdaptable {
-
- private IJavaProject project;
- private CompressedJavaLibraries compressedLibraries;
- private Image image;
-
- public CompressedJavaProject(StructuredViewer viewer, IJavaProject project) {
- this.project = project;
-
- }
-
- public Image getImage() {
- if(image == null)
- image = JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_PACKFRAG_ROOT);
- return image;
- }
-
- public String getLabel() {
- return determineLabel();
-
- }
-
- public boolean isFlatteningSourceFolder() {
- return getNonExternalSourceFolders().size() == 1;
- }
-
- private String determineLabel() {
- List nonextSourceFolders = getNonExternalSourceFolders();
- IPackageFragmentRoot singleRoot = null;
- if (nonextSourceFolders.size() == 1) {
- singleRoot = (IPackageFragmentRoot) nonextSourceFolders.get(0);
- }
- return NLS.bind(WEBUIMessages.Compressed_JavaResources, ((singleRoot != null) ? ": " + singleRoot.getElementName() : "")); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public IJavaProject getProject() {
- return project;
- }
-
- public Object[] getChildren(ITreeContentProvider delegateContentProvider) {
-
- List nonExternalSourceFolders = getNonExternalSourceFolders();
- if (nonExternalSourceFolders.size() == 1) {
- Object[] sourceFolderChildren = delegateContentProvider.getChildren(nonExternalSourceFolders.get(0));
- nonExternalSourceFolders.clear();
- nonExternalSourceFolders.addAll(Arrays.asList(sourceFolderChildren));
- }
- nonExternalSourceFolders.add(getCompressedJavaLibraries());
- return nonExternalSourceFolders.toArray();
- }
-
- public List getNonExternalSourceFolders() {
- List nonExternalSourceFolders = null;
- IPackageFragmentRoot[] sourceFolders;
- try {
- sourceFolders = project.getPackageFragmentRoots();
- nonExternalSourceFolders = new ArrayList(Arrays.asList(sourceFolders));
- for (Iterator iter = nonExternalSourceFolders.iterator(); iter.hasNext();) {
- IPackageFragmentRoot root = (IPackageFragmentRoot) iter.next();
- if (root.isExternal() || root.isArchive())
- iter.remove();
- }
- } catch (JavaModelException e) {
- ServletUIPlugin.log(e);
- }
- return nonExternalSourceFolders != null ? nonExternalSourceFolders : Collections.EMPTY_LIST;
- }
-
- public CompressedJavaLibraries getCompressedJavaLibraries() {
- if(compressedLibraries == null)
- compressedLibraries = new CompressedJavaLibraries(this);
- return compressedLibraries;
-
- }
-
- public Object getAdapter(Class adapter) {
- return Platform.getAdapterManager().getAdapter(this, adapter);
- }
-
- public IJavaElement getJavaElement() {
- List nonExternalSourceFolders = getNonExternalSourceFolders();
- if (nonExternalSourceFolders.size() == 1) {
- return (IJavaElement) nonExternalSourceFolders.get(0);
- }
- return getProject();
- }
-
-}
diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/WebJavaContentProvider.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/WebJavaContentProvider.java
deleted file mode 100644
index 75dbfd3fc..000000000
--- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/WebJavaContentProvider.java
+++ /dev/null
@@ -1,233 +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
- **************************************************************************************************/
-package org.eclipse.jst.servlet.ui.internal.navigator;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.ICommonContentExtensionSite;
-import org.eclipse.ui.navigator.INavigatorContentExtension;
-import org.eclipse.ui.navigator.INavigatorContentService;
-import org.eclipse.ui.navigator.IPipelinedTreeContentProvider;
-import org.eclipse.ui.navigator.PipelinedShapeModification;
-import org.eclipse.ui.navigator.PipelinedViewerUpdate;
-
-public class WebJavaContentProvider implements IPipelinedTreeContentProvider {
-
- private static final Object[] NO_CHILDREN = new Object[0];
- private static final String JAVA_EXTENSION_ID = "org.eclipse.jdt.java.ui.javaContent"; //$NON-NLS-1$
-
- /*
- * JDT likes to make it interesting so just one of their viewer types is made internal To avoid
- * the dependency, we use some reflection here to filter the type.
- */
-
- private static Class INTERNAL_CONTAINER_CLASS;
- static {
- try {
- INTERNAL_CONTAINER_CLASS = Class.forName("org.eclipse.jdt.internal.ui.packageview.ClassPathContainer"); //$NON-NLS-1$
- } catch (Throwable t) {
- // ignore if the class has been removed or renamed.
- INTERNAL_CONTAINER_CLASS = null;
- }
- }
-
-
- private CommonViewer commonViewer;
- private ITreeContentProvider delegateContentProvider;
- private final Map compressedNodes = new HashMap();
-
- public void getPipelinedChildren(Object aParent, Set theCurrentChildren) {
- if (aParent instanceof IJavaProject) {
- cleanJavaContribution(theCurrentChildren);
- theCurrentChildren.add(getCompressedNode((IJavaProject) aParent));
- }
- }
-
- private void cleanJavaContribution(Set theCurrentChildren) {
- IJavaElement element = null;
- for (Iterator iter = theCurrentChildren.iterator(); iter.hasNext();) {
- Object child = (Object) iter.next();
- if (child instanceof IResource && ((element = JavaCore.create((IResource) child)) != null) && element.exists())
- iter.remove();
- else if (child instanceof IJavaElement)
- iter.remove();
- else if (INTERNAL_CONTAINER_CLASS != null && INTERNAL_CONTAINER_CLASS.isInstance(child))
- iter.remove();
- }
- }
-
- private CompressedJavaProject getCompressedNode(IJavaProject project) {
- CompressedJavaProject result = (CompressedJavaProject) compressedNodes.get(project);
- if (result == null) {
- compressedNodes.put(project, result = new CompressedJavaProject(commonViewer, project));
- }
- return result;
- }
-
- public void getPipelinedElements(Object anInput, Set theCurrentElements) {
-
- }
-
- public Object getPipelinedParent(Object anObject, Object aSuggestedParent) {
-
- if (anObject instanceof IPackageFragmentRoot) {
- IPackageFragmentRoot root = (IPackageFragmentRoot) anObject;
- if (!root.isExternal() && aSuggestedParent instanceof IJavaProject) {
- return getCompressedNode((IJavaProject) aSuggestedParent);
- }
- } else if(INTERNAL_CONTAINER_CLASS.isInstance(anObject) && aSuggestedParent instanceof IJavaProject) {
- return getCompressedNode( (IJavaProject) aSuggestedParent ).getCompressedJavaLibraries();
- }
-
- return null;
- }
-
- public PipelinedShapeModification interceptAdd(PipelinedShapeModification anAddModification) {
- Object parent = anAddModification.getParent();
-
- if (parent instanceof IPackageFragmentRoot) {
- IPackageFragmentRoot sourceFolder = (IPackageFragmentRoot) parent;
- CompressedJavaProject compressedNode = getCompressedNode(sourceFolder.getJavaProject());
- if(compressedNode.isFlatteningSourceFolder()) {
- anAddModification.setParent(compressedNode);
- }
-
- }
-
- return anAddModification;
- }
-
-
- public PipelinedShapeModification interceptRemove(PipelinedShapeModification aRemoveModification) {
-
- Object parent = aRemoveModification.getParent();
-
- if (parent instanceof IPackageFragmentRoot) {
- IPackageFragmentRoot sourceFolder = (IPackageFragmentRoot) parent;
- CompressedJavaProject compressedNode = getCompressedNode(sourceFolder.getJavaProject());
- if(compressedNode.isFlatteningSourceFolder()) {
- aRemoveModification.setParent(compressedNode);
- }
-
- }
-
- return aRemoveModification;
- }
-
- public boolean interceptRefresh(PipelinedViewerUpdate aRefreshSynchronization) {
-
- Set refreshTargets = aRefreshSynchronization.getRefreshTargets();
- for (Iterator iter = refreshTargets.iterator(); iter.hasNext();) {
- Object refreshTarget = (Object) iter.next();
- if (refreshTarget instanceof IPackageFragmentRoot) {
- IPackageFragmentRoot sourceFolder = (IPackageFragmentRoot) refreshTarget;
- CompressedJavaProject compressedNode = getCompressedNode(sourceFolder.getJavaProject());
- if(compressedNode.isFlatteningSourceFolder()) {
- iter.remove(); // voids the iter but is okay because we're done with it
- refreshTargets.add(compressedNode);
- return true;
- }
-
- }
- }
-
- return false;
- }
-
-
- public boolean interceptUpdate(PipelinedViewerUpdate anUpdateSynchronization) {
- Set refreshTargets = anUpdateSynchronization.getRefreshTargets();
- for (Iterator iter = refreshTargets.iterator(); iter.hasNext();) {
- Object refreshTarget = (Object) iter.next();
- if (refreshTarget instanceof IPackageFragmentRoot) {
- IPackageFragmentRoot sourceFolder = (IPackageFragmentRoot) refreshTarget;
- CompressedJavaProject compressedNode = getCompressedNode(sourceFolder.getJavaProject());
- if(compressedNode.isFlatteningSourceFolder()) {
- iter.remove(); // voids the iterator; but is okay because we're done with it
- refreshTargets.add(compressedNode);
- return true;
- }
-
- }
- }
-
- return false;
- }
-
- public void init(ICommonContentExtensionSite aSite) {
- }
-
- public Object[] getChildren(Object parentElement) {
- if (delegateContentProvider != null) {
- if (parentElement instanceof CompressedJavaProject) {
- return ((CompressedJavaProject)parentElement).getChildren(delegateContentProvider);
- } else if (parentElement instanceof CompressedJavaLibraries) {
- return ((CompressedJavaLibraries)parentElement).getChildren(delegateContentProvider);
- }
- }
- return NO_CHILDREN;
- }
-
- public Object getParent(Object element) {
- if (element instanceof CompressedJavaProject)
- return ((CompressedJavaProject) element).getProject();
- if (element instanceof CompressedJavaLibraries)
- return ((CompressedJavaLibraries) element).getCompressedProject();
- return null;
- }
-
- public boolean hasChildren(Object element) {
- return (element instanceof CompressedJavaProject || element instanceof CompressedJavaLibraries);
- }
-
- public Object[] getElements(Object inputElement) {
- return NO_CHILDREN;
- }
-
- public void dispose() {
- compressedNodes.clear();
- }
-
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- if (viewer instanceof CommonViewer) {
- commonViewer = (CommonViewer) viewer;
- INavigatorContentService service = commonViewer.getNavigatorContentService();
- INavigatorContentExtension javaext = service.getContentExtensionById(JAVA_EXTENSION_ID);
- if (javaext != null)
- delegateContentProvider = javaext.getContentProvider();
- compressedNodes.clear();
- }
-
- }
-
- public void restoreState(IMemento aMemento) {
-
- }
-
- public void saveState(IMemento aMemento) {
-
- }
-
- public boolean isClasspathContainer(Object o) {
- return INTERNAL_CONTAINER_CLASS != null && INTERNAL_CONTAINER_CLASS.isInstance(o);
- }
-
-}
diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/MultiSelectFilteredFileSelectionDialog.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/MultiSelectFilteredFileSelectionDialog.java
deleted file mode 100644
index 949ec1108..000000000
--- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/MultiSelectFilteredFileSelectionDialog.java
+++ /dev/null
@@ -1,663 +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
- *******************************************************************************/
-package org.eclipse.jst.servlet.ui.internal.wizard;
-
-/**
- *
- */
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.ITypeHierarchy;
-import org.eclipse.jdt.internal.ui.JavaPluginImages;
-import org.eclipse.jdt.internal.ui.dialogs.StatusInfo;
-import org.eclipse.jdt.internal.ui.util.StringMatcher;
-import org.eclipse.jdt.internal.ui.wizards.TypedElementSelectionValidator;
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jst.j2ee.internal.dialogs.FilteredFileSelectionDialog;
-import org.eclipse.jst.j2ee.internal.dialogs.TwoArrayQuickSorter;
-import org.eclipse.jst.j2ee.internal.dialogs.TypedFileViewerFilter;
-import org.eclipse.jst.j2ee.internal.plugin.J2EEUIPlugin;
-import org.eclipse.jst.j2ee.internal.web.providers.WebAppEditResourceHandler;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.ISelectionStatusValidator;
-import org.eclipse.ui.part.PageBook;
-
-/**
- * Insert the type's description here.
- * Creation date: (7/30/2001 11:16:36 AM)
- * @author: Administrator
- */
-public class MultiSelectFilteredFileSelectionDialog extends FilteredFileSelectionDialog implements SelectionListener {
-
-
- private static class PackageRenderer extends LabelProvider {
- private final Image PACKAGE_ICON = JavaPluginImages.get(JavaPluginImages.IMG_OBJS_PACKAGE);
-
- public String getText(Object element) {
- IType type = (IType) element;
- String p = type.getPackageFragment().getElementName();
- if ("".equals(p)) //$NON-NLS-1$
- p = IWebWizardConstants.DEFAULT_PACKAGE;
- return (p + " - " + type.getPackageFragment().getParent().getPath().toString()); //$NON-NLS-1$
- }
- public Image getImage(Object element) {
- return PACKAGE_ICON;
- }
- }
-
- private static class TypeRenderer extends LabelProvider {
- private final Image CLASS_ICON = JavaPluginImages.get(JavaPluginImages.IMG_OBJS_CLASS);
-
- public String getText(Object element) {
- IType e = ((IType) element);
- return e.getElementName();
- }
-
- public Image getImage(Object element) {
- return CLASS_ICON;
- }
-
- }
- public final static int JSP = 0;
- public final static int SERVLET = 1;
- protected Button fServletButton;
- protected Button fJSPButton;
- protected int fSelection = -1;
- protected PageBook fPageBook = null;
- protected Control fJspControl = null;
- protected Control fServletControl = null;
- protected Composite fChild = null;
- // construction parameters
- protected IRunnableContext fRunnableContext;
- protected ILabelProvider fElementRenderer;
- protected ILabelProvider fQualifierRenderer;
- private Object[] fElements;
- private boolean fIgnoreCase = true;
- private String fUpperListLabel;
- private String fLowerListLabel;
- // SWT widgets
- private Table fUpperList;
- private Table fLowerList;
- protected Text fText;
- private IType[] fIT;
- private String[] fRenderedStrings;
- private int[] fElementMap;
- private Integer[] fQualifierMap;
-
- private ISelectionStatusValidator fLocalValidator = null;
- /**
- * MultiSelectFilteredFileSelectionDialog constructor comment.
- * @param parent Shell
- * @param title String
- * @param message String
- * @parent extensions String[]
- * @param allowMultiple boolean
- */
- public MultiSelectFilteredFileSelectionDialog(Shell parent, String title, String message, String[] extensions, boolean allowMultiple, IProject project) {
- super(parent, title, message, extensions, allowMultiple);
- setShellStyle(SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL | SWT.RESIZE);
-
- if (title == null)
- setTitle(WebAppEditResourceHandler.getString("File_Selection_UI_")); //$NON-NLS-1$
- if (message == null)
- message = WebAppEditResourceHandler.getString("Select_a_file__UI_"); //$NON-NLS-1$
- setMessage(message);
- setExtensions(extensions);
- addFilter(new TypedFileViewerFilter(extensions));
- fLocalValidator = new TypedElementSelectionValidator(new Class[] { IFile.class }, allowMultiple);
- setValidator(fLocalValidator);
- StatusInfo currStatus = new StatusInfo();
- currStatus.setOK();
- updateStatus(currStatus);
- fElementRenderer = new TypeRenderer();
- fQualifierRenderer = new PackageRenderer();
- fRunnableContext = J2EEUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow();
- try {
- IJavaElement jelem = null;
- IProject proj = null;
- jelem = (IJavaElement) project.getAdapter(IJavaElement.class);
- if (jelem == null) {
- IResource resource = (IResource) project.getAdapter(IResource.class);
- if (resource != null) {
- proj = resource.getProject();
- if (proj != null) {
- jelem = org.eclipse.jdt.core.JavaCore.create(proj);
- }
- }
- }
- IJavaProject jp = jelem.getJavaProject();
-
- IType servletType = jp.findType("javax.servlet.Servlet"); //$NON-NLS-1$
- // next 3 lines fix defect 177686
- if (servletType == null) {
- return;
- }
-
- ArrayList servletClasses = new ArrayList();
- ITypeHierarchy tH = servletType.newTypeHierarchy(jp, null);
- IType[] types = tH.getAllSubtypes(servletType);
- for (int i = 0; i < types.length; i++) {
- if (types[i].isClass() && !servletClasses.contains(types[i]))
- servletClasses.add(types[i]);
- }
- fIT = (IType[]) servletClasses.toArray(new IType[servletClasses.size()]);
- servletClasses = null;
-
- } catch (Exception exc) {
- Logger.getLogger().logError(exc);
- }
- }
-
- /**
- * @private
- */
- protected void computeResult() {
- if (fSelection == JSP) {
- super.computeResult();
- } else {
- IType type = (IType) getWidgetSelection();
- if (type != null) {
- if (type == null) {
- String title = WebAppEditResourceHandler.getString("Select_Class_UI_"); //$NON-NLS-1$ = "Select Class"
- String message = WebAppEditResourceHandler.getString("Could_not_uniquely_map_the_ERROR_"); //$NON-NLS-1$ = "Could not uniquely map the class name to a class."
- MessageDialog.openError(getShell(), title, message);
- setResult(null);
- } else {
- java.util.List result = new ArrayList(1);
- result.add(type);
- setResult(result);
- }
- }
- }
- }
-
- public void create() {
- super.create();
- fText.setFocus();
- rematch(""); //$NON-NLS-1$
- updateOkState();
- }
-
- /**
- * Creates and returns the contents of this dialog's
- * button bar.
- * Dialog
implementation of this framework method
- * lays out a button bar and calls the createButtonsForButtonBar
- * framework method to populate it. Subclasses may override.
- * null
if all found.
- *
- * @since 1.0.0
- */
- private static Object getNewObject(Object[] oldObjects, Object[] newObjects) {
- if (oldObjects != null && newObjects != null && oldObjects.length < newObjects.length) {
- for (int i = 0; i < newObjects.length; i++) {
- boolean found = false;
- Object object = newObjects[i];
- for (int j = 0; j < oldObjects.length; j++) {
- if (oldObjects[j] == object) {
- found = true;
- break;
- }
- }
- if (!found)
- return object;
- }
- }
- if (oldObjects == null && newObjects != null && newObjects.length == 1)
- return newObjects[0];
- return null;
- }
-}
diff --git a/plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/NewProjectDataModelFacetWizard.java b/plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/NewProjectDataModelFacetWizard.java
deleted file mode 100644
index 17e3b723c..000000000
--- a/plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/NewProjectDataModelFacetWizard.java
+++ /dev/null
@@ -1,498 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2006 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.wst.web.ui.internal.wizards;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard;
-import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
-import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties;
-import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties;
-import org.eclipse.wst.common.componentcore.internal.operation.FacetProjectCreationOperation;
-import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
-import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelProvider;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelEvent;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModelListener;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
-import org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperationImpl;
-import org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizardPage;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectTemplate;
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action.Type;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.ui.AddRemoveFacetsWizard;
-import org.eclipse.wst.common.project.facet.ui.internal.AbstractDataModel;
-import org.eclipse.wst.common.project.facet.ui.internal.ChangeTargetedRuntimesDataModel;
-import org.eclipse.wst.web.internal.DelegateConfigurationElement;
-import org.eclipse.wst.web.ui.internal.Logger;
-import org.eclipse.wst.web.ui.internal.WSTWebUIPlugin;
-
-public abstract class NewProjectDataModelFacetWizard extends AddRemoveFacetsWizard implements INewWizard, IFacetProjectCreationDataModelProperties {
-
- protected IDataModel model = null;
- private final IFacetedProjectTemplate template;
- private IWizardPage[] beginingPages;
- private IConfigurationElement configurationElement;
-
- public NewProjectDataModelFacetWizard(IDataModel model) {
- super(null);
- this.model = model;
- template = getTemplate();
- this.setDefaultPageImageDescriptor(getDefaultPageImageDescriptor());
- }
-
- public NewProjectDataModelFacetWizard() {
- super(null);
- model = createDataModel();
- template = getTemplate();
- this.setDefaultPageImageDescriptor(getDefaultPageImageDescriptor());
- }
-
- public IDataModel getDataModel() {
- return model;
- }
-
- protected abstract IDataModel createDataModel();
-
- protected abstract ImageDescriptor getDefaultPageImageDescriptor();
-
- protected abstract IFacetedProjectTemplate getTemplate();
-
- /**
- * Returns the first page that shows up before the facets page. If multiple pages are required,
- * also override {@link #createBeginingPages()}.
- *
- * @return
- */
- protected abstract IWizardPage createFirstPage();
-
- /**
- * Subclasses should override to add more than one page before the facets page. If only one page
- * is required, then use {@link #createFirstPage()}. The default implementation will return the
- * result of {@link #createFirstPage()}.
- *
- * @return
- */
- protected IWizardPage[] createBeginingPages() {
- return new IWizardPage[]{createFirstPage()};
- }
-
- public void addPages() {
- beginingPages = createBeginingPages();
- for (int i = 0; i < beginingPages.length; i++) {
- addPage(beginingPages[i]);
- }
-
- super.addPages();
-
- final Set fixed = this.template.getFixedProjectFacets();
-
- this.facetsSelectionPage.setFixedProjectFacets(fixed);
-
- this.facetsSelectionPage.addSelectedFacetsChangedListener(new Listener() {
- public void handleEvent(Event event) {
- facetSelectionChangedEvent(event);
- }
- });
- }
-
- public void createPageControls(Composite container) {
- super.createPageControls(container);
-
- final IPreset preset = this.template.getInitialPreset();
- final IRuntime runtime = (IRuntime) model.getProperty( FACET_RUNTIME );
-
- if( preset == null )
- {
- // If no preset is specified, select the runtime and it's default
- // facets.
-
- setRuntimeAndDefaultFacets( runtime );
- }
- else
- {
- // If preset is specified, select the runtime only if supports all
- // of the facets included in the preset.
-
- this.facetsSelectionPage.panel.selectPreset( preset );
-
- boolean supports = false;
-
- if( runtime != null )
- {
- supports = true;
-
- for( Iterator itr = preset.getProjectFacets().iterator(); itr.hasNext(); )
- {
- final IProjectFacetVersion fv = (IProjectFacetVersion) itr.next();
-
- if( ! runtime.supports( fv ) )
- {
- supports = false;
- break;
- }
- }
- }
-
- final ChangeTargetedRuntimesDataModel rdm
- = getModel().getTargetedRuntimesDataModel();
-
- if( supports )
- {
- rdm.setTargetedRuntimes( Collections.singleton( runtime ) );
- }
- else
- {
- model.setProperty( FACET_RUNTIME, null );
- }
- }
-
- synchRuntimes();
-
- facetsSelectionPage.setInitialSelection(getFacetsFromDataModel());
-
- }
-
- protected Set getFacetsFromDataModel() {
- Set facetVersions = new HashSet();
- FacetDataModelMap map = (FacetDataModelMap) model.getProperty(FACET_DM_MAP);
- for (Iterator iterator = map.values().iterator(); iterator.hasNext();) {
- IDataModel facetModel = (IDataModel) iterator.next();
- if(facetModel.getBooleanProperty(IFacetDataModelProperties.SHOULD_EXECUTE)){
- facetVersions.add(facetModel.getProperty(IFacetDataModelProperties.FACET_VERSION));
- }
- }
-
- FacetActionMap mapAction = (FacetActionMap) model.getProperty(FACET_ACTION_MAP);
- for (Iterator iterator = mapAction.values().iterator(); iterator.hasNext();) {
- IFacetedProject.Action action = (IFacetedProject.Action) iterator.next();
- facetVersions.add(action.getProjectFacetVersion());
- }
- return facetVersions;
- }
-
-
- public IWizardPage[] getPages() {
- final IWizardPage[] base = super.getPages();
- final IWizardPage[] pages = new IWizardPage[base.length + beginingPages.length];
-
- for (int i = 0; i < beginingPages.length; i++) {
- pages[i] = beginingPages[i];
- }
-
- System.arraycopy(base, 0, pages, beginingPages.length, base.length);
-
- return pages;
- }
-
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- }
-
- protected void synchRuntimes()
- {
- final ChangeTargetedRuntimesDataModel rdm
- = getModel().getTargetedRuntimesDataModel();
-
- final Boolean[] suppressBackEvents = { Boolean.FALSE };
-
- model.addListener(new IDataModelListener() {
- public void propertyChanged(DataModelEvent event) {
- if (IDataModel.VALUE_CHG == event.getFlag() || IDataModel.DEFAULT_CHG == event.getFlag()) {
- if (FACET_RUNTIME.equals(event.getPropertyName())) {
- if( ! suppressBackEvents[ 0 ].booleanValue() ) {
- IRuntime runtime = (IRuntime) event.getProperty();
- setRuntimeAndDefaultFacets( runtime );
- }
- }
- }
- }
- });
-
- rdm.addListener
- (
- ChangeTargetedRuntimesDataModel.EVENT_PRIMARY_RUNTIME_CHANGED,
- new AbstractDataModel.IDataModelListener()
- {
- public void handleEvent()
- {
- suppressBackEvents[ 0 ] = Boolean.TRUE;
- model.setProperty(FACET_RUNTIME, rdm.getPrimaryRuntime());
- suppressBackEvents[ 0 ] = Boolean.FALSE;
- }
- }
- );
- }
-
- protected void setRuntimeAndDefaultFacets( final IRuntime runtime )
- {
- final ChangeTargetedRuntimesDataModel rdm
- = getModel().getTargetedRuntimesDataModel();
-
- rdm.setTargetedRuntimes( Collections.EMPTY_SET );
- this.facetsSelectionPage.setDefaultFacetsForRuntime( runtime );
-
- if( runtime != null )
- {
- rdm.setTargetedRuntimes( Collections.singleton( runtime ) );
- }
- }
-
- public String getProjectName() {
- return model.getStringProperty(IFacetProjectCreationDataModelProperties.FACET_PROJECT_NAME);
- }
-
- protected void performFinish(final IProgressMonitor monitor)
-
- throws CoreException
-
- {
- monitor.beginTask("", 10); //$NON-NLS-1$
- storeDefaultSettings();
- try {
- FacetProjectCreationOperation operation = new FacetProjectCreationOperation(model);
- this.fproj = operation.createProject(new SubProgressMonitor(monitor, 2));
-
- super.performFinish(new SubProgressMonitor(monitor, 8));
-
- final Set fixed = this.template.getFixedProjectFacets();
- this.fproj.setFixedProjectFacets(fixed);
- } finally {
- monitor.done();
- }
- }
-
- public boolean performFinish() {
- if (super.performFinish() == false) {
- return false;
- }
-
- try {
- postPerformFinish();
- } catch (InvocationTargetException e) {
- Logger.logException(e);
- }
-
- return true;
- }
-
- /**
- * IProduct.getProperty(String)
. The status of
- * this interface and the facilities offered is highly provisional.
- * Productization support will be reviewed and possibly modified in future
- * releases.
- *
- * @see org.eclipse.core.runtime.IProduct#getProperty(String)
- */
-
-public interface IProductConstants {
-
- public static final String APPLICATION_CONTENT_FOLDER = "earContent"; //$NON-NLS-1$
- public static final String WEB_CONTENT_FOLDER = "webContent"; //$NON-NLS-1$
- public static final String ADD_TO_EAR_BY_DEFAULT = "addToEarByDefault"; //$NON-NLS-1$
- public static final String OUTPUT_FOLDER = "outputFolder"; //$NON-NLS-1$
-
- /**
- * Alters the final perspective used by the following new project wizards
- */
- public static final String FINAL_PERSPECTIVE_WEB = "finalPerspectiveWeb"; //$NON-NLS-1$
- public static final String FINAL_PERSPECTIVE_EJB = "finalPerspectiveEjb"; //$NON-NLS-1$
- public static final String FINAL_PERSPECTIVE_EAR = "finalPerspectiveEar"; //$NON-NLS-1$
- public static final String FINAL_PERSPECTIVE_APPCLIENT = "finalPerspectiveAppClient"; //$NON-NLS-1$
- public static final String FINAL_PERSPECTIVE_JCA = "finalPerspectiveJca"; //$NON-NLS-1$
- public static final String FINAL_PERSPECTIVE_UTILITY = "finalPerspectiveUtility"; //$NON-NLS-1$
- public static final String FINAL_PERSPECTIVE_STATICWEB = "finalPerspectiveStaticWeb"; //$NON-NLS-1$
-
-}
diff --git a/plugins/org.eclipse.wst.web/static_web_project/org/eclipse/wst/project/facet/ProductManager.java b/plugins/org.eclipse.wst.web/static_web_project/org/eclipse/wst/project/facet/ProductManager.java
deleted file mode 100644
index 044a708bd..000000000
--- a/plugins/org.eclipse.wst.web/static_web_project/org/eclipse/wst/project/facet/ProductManager.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.eclipse.wst.project.facet;
-
-import org.eclipse.core.runtime.Platform;
-
-public class ProductManager {
-
- /**
- * Default values for WTP level product
- */
- private static final String APPLICATION_CONTENT_FOLDER = "EarContent"; //$NON-NLS-1$
- private static final String WEB_CONTENT_FOLDER = "WebContent"; //$NON-NLS-1$
- private static final String ADD_TO_EAR_BY_DEFAULT = "false"; //$NON-NLS-1$
- private static final String OUTPUT_FOLDER = "build/classes"; //$NON-NLS-1$
- private static final String FINAL_PERSPECTIVE = "org.eclipse.jst.j2ee.J2EEPerspective"; //$NON-NLS-1$
-
- /**
- * Return the value for the associated key from the Platform Product registry or return the
- * WTP default for the J2EE cases.
- *
- * @param key
- * @return String value of product's property
- */
- public static String getProperty(String key) {
- if (key == null)
- return null;
- String value = null;
- if (Platform.getProduct()!=null)
- value = Platform.getProduct().getProperty(key);
- if (value == null) {
- if (key.equals(IProductConstants.APPLICATION_CONTENT_FOLDER))
- return APPLICATION_CONTENT_FOLDER;
- else if (key.equals(IProductConstants.WEB_CONTENT_FOLDER))
- return WEB_CONTENT_FOLDER;
- else if (key.equals(IProductConstants.ADD_TO_EAR_BY_DEFAULT))
- return ADD_TO_EAR_BY_DEFAULT;
- else if (key.equals(IProductConstants.OUTPUT_FOLDER))
- return OUTPUT_FOLDER;
- else if (key.equals(IProductConstants.FINAL_PERSPECTIVE_APPCLIENT))
- return FINAL_PERSPECTIVE;
- else if (key.equals(IProductConstants.FINAL_PERSPECTIVE_EAR))
- return FINAL_PERSPECTIVE;
- else if (key.equals(IProductConstants.FINAL_PERSPECTIVE_EJB))
- return FINAL_PERSPECTIVE;
- else if (key.equals(IProductConstants.FINAL_PERSPECTIVE_JCA))
- return FINAL_PERSPECTIVE;
- else if (key.equals(IProductConstants.FINAL_PERSPECTIVE_STATICWEB))
- return null;
- else if (key.equals(IProductConstants.FINAL_PERSPECTIVE_UTILITY))
- return FINAL_PERSPECTIVE;
- else if (key.equals(IProductConstants.FINAL_PERSPECTIVE_WEB))
- return FINAL_PERSPECTIVE;
- }
- return value;
- }
-
- public static boolean shouldAddToEARByDefault() {
- String value = getProperty(IProductConstants.ADD_TO_EAR_BY_DEFAULT);
- return Boolean.valueOf(value).booleanValue();
- }
-
-
-}
diff --git a/plugins/org.eclipse.wst.web/static_web_project/org/eclipse/wst/project/facet/SimpleWebFacetProjectCreationDataModelProvider.java b/plugins/org.eclipse.wst.web/static_web_project/org/eclipse/wst/project/facet/SimpleWebFacetProjectCreationDataModelProvider.java
deleted file mode 100644
index e561581d9..000000000
--- a/plugins/org.eclipse.wst.web/static_web_project/org/eclipse/wst/project/facet/SimpleWebFacetProjectCreationDataModelProvider.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.eclipse.wst.project.facet;
-
-import org.eclipse.wst.common.componentcore.datamodel.FacetProjectCreationDataModelProvider;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-public class SimpleWebFacetProjectCreationDataModelProvider extends FacetProjectCreationDataModelProvider {
-
- public SimpleWebFacetProjectCreationDataModelProvider() {
- super();
- }
-
- public void init() {
- super.init();
- FacetDataModelMap map = (FacetDataModelMap) getProperty(FACET_DM_MAP);
- IDataModel simpleWebFacet = DataModelFactory.createDataModel(new SimpleWebFacetInstallDataModelProvider());
- map.add(simpleWebFacet);
- }
-
-}
diff --git a/plugins/org.eclipse.wst.web/static_web_project/org/eclipse/wst/web/internal/deployables/ComponentDeployable.java b/plugins/org.eclipse.wst.web/static_web_project/org/eclipse/wst/web/internal/deployables/ComponentDeployable.java
deleted file mode 100644
index 6cb2304bd..000000000
--- a/plugins/org.eclipse.wst.web/static_web_project/org/eclipse/wst/web/internal/deployables/ComponentDeployable.java
+++ /dev/null
@@ -1,377 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.wst.web.internal.deployables;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.common.componentcore.ComponentCore;
-import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent;
-import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
-import org.eclipse.wst.common.componentcore.resources.IVirtualContainer;
-import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
-import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
-import org.eclipse.wst.common.componentcore.resources.IVirtualResource;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.ServerUtil;
-import org.eclipse.wst.server.core.internal.ModuleFile;
-import org.eclipse.wst.server.core.internal.ModuleFolder;
-import org.eclipse.wst.server.core.model.IModuleFolder;
-import org.eclipse.wst.server.core.model.IModuleResource;
-import org.eclipse.wst.server.core.util.ProjectModule;
-
-public abstract class ComponentDeployable extends ProjectModule {
-
- protected IVirtualComponent component = null;
- protected List members = new ArrayList();
-
- public ComponentDeployable(IProject project) {
- this(project,ComponentCore.createComponent(project));
- }
-
- public ComponentDeployable(IProject project, IVirtualComponent aComponent) {
- super(project);
- this.component = aComponent;
- }
-
- /**
- * @see org.eclipse.jst.server.core.IJ2EEModule#isBinary()
- */
- public boolean isBinary() {
- return false;
- }
-
- private void addMembersToModuleFolder(ModuleFolder mf, IModuleResource[] mr) {
- if (mf == null) return;
- Set membersJoin = new HashSet();
- if (mf.members() != null)
- membersJoin.addAll(Arrays.asList(mf.members()));
- if (mr != null && mr.length > 0)
- membersJoin.addAll(Arrays.asList(mr));
- mf.setMembers((IModuleResource[]) membersJoin.toArray(new IModuleResource[membersJoin.size()]));
- }
-
- /**
- * Returns the child modules of this module.
- *
- * @return org.eclipse.wst.server.core.model.IModule[]
- */
- public IModule[] getChildModules() {
- return getModules();
- }
-
- public IModule[] getModules() {
- List modules = new ArrayList();
- if (component != null) {
- IVirtualReference[] components = component.getReferences();
- for (int i = 0; i < components.length; i++) {
- IVirtualReference reference = components[i];
- if (reference != null && reference.getDependencyType()==IVirtualReference.DEPENDENCY_TYPE_USES) {
- IVirtualComponent virtualComp = reference.getReferencedComponent();
- IModule module = gatherModuleReference(component, virtualComp);
- if (module != null && !modules.contains(module))
- modules.add(module);
- }
- }
- }
- return (IModule[]) modules.toArray(new IModule[modules.size()]);
- }
-
- protected IModule gatherModuleReference(IVirtualComponent component, IVirtualComponent targetComponent ) {
- // Handle workspace project module components
- if (targetComponent != null && targetComponent.getProject()!=component.getProject())
- return ServerUtil.getModule(targetComponent.getProject());
- return null;
- }
-
- /**
- * Find the module resources for a given container and path. Inserts in the java containers
- * at a given path if not null.
- *
- * @param cont a container
- * @param path the current module relative path
- * @param javaPath the path where Java resources fit in the root
- * @param javaCont
- * @return a possibly-empty array of module resources
- * @throws CoreException
- */
- protected IModuleResource[] getMembers(IContainer cont, IPath path, IPath javaPath, IContainer[] javaCont) throws CoreException {
- IResource[] res = cont.members();
- int size2 = res.length;
- List list = new ArrayList(size2);
- for (int j = 0; j < size2; j++) {
- if (res[j] instanceof IContainer) {
- IContainer cc = (IContainer) res[j];
-
- IPath newPath = path.append(cc.getName()).makeRelative();
- // Retrieve already existing module folder if applicable
- ModuleFolder mf = (ModuleFolder) getExistingModuleResource(members,newPath);
- if (mf == null) {
- mf = new ModuleFolder(cc, cc.getName(), path);
- ModuleFolder parent = (ModuleFolder) getExistingModuleResource(members, path);
- if (path.isEmpty())
- members.add(mf);
- else {
- if (parent == null)
- parent = ensureParentExists(path, cc);
- addMembersToModuleFolder(parent, new IModuleResource[] {mf});
- }
- }
- IModuleResource[] mr = getMembers(cc, newPath, javaPath, javaCont);
-
- if (javaPath != null && newPath.isPrefixOf(javaPath))
- mr = handleJavaPath(path, javaPath, newPath, javaCont, mr, cc);
-
- addMembersToModuleFolder(mf, mr);
-
- } else {
- IFile f = (IFile) res[j];
- // Handle the default package case
- if (path.equals(javaPath)) {
- ModuleFolder mFolder = (ModuleFolder) getExistingModuleResource(members,javaPath);
- ModuleFile mFile = new ModuleFile(f, f.getName(), javaPath, f.getModificationStamp() + f.getLocalTimeStamp());
- if (mFolder != null)
- addMembersToModuleFolder(mFolder,new IModuleResource[]{mFile});
- else
- list.add(mFile);
- } else {
- ModuleFile mf = new ModuleFile(f, f.getName(), path, f.getModificationStamp() + f.getLocalTimeStamp());
- list.add(mf);
- }
- }
- }
- IModuleResource[] mr = new IModuleResource[list.size()];
- list.toArray(mr);
- return mr;
- }
-
- protected IModuleResource[] getMembers(IVirtualContainer cont, IPath path) throws CoreException {
- IVirtualResource[] res = cont.members();
- int size2 = res.length;
- List list = new ArrayList(size2);
- for (int j = 0; j < size2; j++) {
- if (res[j] instanceof IVirtualContainer) {
- IVirtualContainer cc = (IVirtualContainer) res[j];
- // Retrieve already existing module folder if applicable
- ModuleFolder mf = (ModuleFolder) getExistingModuleResource(members,path.append(new Path(cc.getName()).makeRelative()));
- if (mf == null) {
- mf = new ModuleFolder((IContainer)cc.getUnderlyingResource(), cc.getName(), path);
- ModuleFolder parent = (ModuleFolder) getExistingModuleResource(members, path);
- if (path.isEmpty())
- members.add(mf);
- else {
- if (parent == null)
- parent = ensureParentExists(path, (IContainer)cc.getUnderlyingResource());
- addMembersToModuleFolder(parent, new IModuleResource[] {mf});
- }
- }
- IModuleResource[] mr = getMembers(cc, path.append(cc.getName()));
- addMembersToModuleFolder(mf, mr);
- } else {
- IFile f = (IFile) res[j].getUnderlyingResource();
- if (!isFileInSourceContainer(f)) {
- ModuleFile mf = new ModuleFile(f, f.getName(), path, f.getModificationStamp() + f.getLocalTimeStamp());
- list.add(mf);
- }
- }
- }
- IModuleResource[] mr = new IModuleResource[list.size()];
- list.toArray(mr);
- return mr;
- }
-
- protected ModuleFolder ensureParentExists(IPath path, IContainer cc) {
- ModuleFolder parent = (ModuleFolder) getExistingModuleResource(members, path);
- if (parent == null) {
- String folderName = path.lastSegment();
- IPath folderPath = Path.EMPTY;
- if (path.segmentCount()>1)
- folderPath = path.removeLastSegments(1);
- parent = new ModuleFolder(cc, folderName, folderPath);
- if (path.segmentCount()>1)
- addMembersToModuleFolder(ensureParentExists(path.removeLastSegments(1),cc), new IModuleResource[] {parent});
- else
- members.add(parent);
- }
- return parent;
- }
- protected boolean isFileInSourceContainer(IFile file) {
- return false;
- }
-
- /**
- * Check the current cache to see if we already have an existing module resource for
- * the given path.
- * @param aList
- * @param path
- * @return an existing moduleResource from the cached result
- */
-
- protected IModuleResource getExistingModuleResource(List aList, IPath path) {
- // If the list is empty, return null
- if (aList==null || aList.isEmpty() || path == null)
- return null;
- // Otherwise recursively check to see if given resource matches current resource or if it is a child
- String[] pathSegments = path.segments();
- IModuleResource moduleResource = null;
-
- if(pathSegments.length == 0)
- return null;
- for (Iterator iter = aList.iterator(); iter.hasNext();) {
- moduleResource = (IModuleResource) iter.next();
- String[] moduleSegments = moduleResource.getModuleRelativePath().segments();
- // If the last segment in passed in path equals the module resource name
- // and segment count is the same and the path segments start with the module path segments
- // then we have a match and we return the existing moduleResource
- if (pathSegments[pathSegments.length - 1].equals(moduleResource.getName()) &&
- (moduleSegments.length + 1) == pathSegments.length &&
- startsWith(moduleSegments, pathSegments))
- return moduleResource;
-
- // Otherwise, if it is a folder, check its children for the existing resource path
- // but only check if the beginning segments are a match
- if(moduleResource instanceof IModuleFolder &&
- startsWith(moduleSegments, pathSegments) && pathSegments.length > moduleSegments.length &&
- moduleResource.getName().equals(pathSegments[moduleSegments.length > 0 ? moduleSegments.length : 0]))
- if (((IModuleFolder)moduleResource).members()!=null)
- return getExistingModuleResource(Arrays.asList(((IModuleFolder)moduleResource).members()),path);
- }
- return null;
- }
-
- /**
- *
- * @param beginningSegments
- * @param testSegments
- * @return True if beginningSegments[i] == testSegments[i] for all 0<=itrue
if this module has a simple structure based on a
+ * single root folder, and false
otherwise.
+ * true
if this module has a single root structure, and
+ * false
otherwise
+ */
+ public boolean isSingleRootStructure() {
+ StructureEdit edit = null;
+ try {
+ edit = StructureEdit.getStructureEditForRead(getProject());
+ if (edit == null || edit.getComponent() == null)
+ return false;
+ WorkbenchComponent wbComp = edit.getComponent();
+ List resourceMaps = wbComp.getResources();
+
+ if (J2EEProjectUtilities.isEARProject(getProject())) {
+ // Ensure there is only one component resource mapping, for the root content folder
+ return isRootResourceMapping(resourceMaps,true);
+ } else if (J2EEProjectUtilities.isDynamicWebProject(getProject())) {
+ // If there are any web lib jar references, this is not a standard project
+ IVirtualReference[] references = ((J2EEModuleVirtualComponent)component).getNonManifestReferences();
+ for (int i=0; ifindClass
.defineClass
.true
if the given package fragment root is referenced. This means it
- * is own by a different project but is referenced by the root's parent. Returns
- * false
if the given root doesn't have an underlying resource.
- */
- public static boolean isReferenced(IPackageFragmentRoot root) {
- IResource resource = root.getResource();
- if (resource != null) {
- IProject jarProject = resource.getProject();
- IProject container = root.getJavaProject().getProject();
- return !container.equals(jarProject);
- }
- return false;
+
+ /**
+ * Finds a type by its qualified type name (dot separated).
+ * @param jproject The java project to search in
+ * @param fullyQualifiedName The fully qualified name (type name with enclosing type names and package (all separated by dots))
+ * @param owner the working copy owner
+ * @return The type found, or null if not existing
+ */
+ public static IType findType(IJavaProject jproject, String fullyQualifiedName, WorkingCopyOwner owner) throws JavaModelException {
+ //workaround for bug 22883
+ IType type= jproject.findType(fullyQualifiedName, owner);
+ if (type != null)
+ return type;
+ IPackageFragmentRoot[] roots= jproject.getPackageFragmentRoots();
+ for (int i= 0; i < roots.length; i++) {
+ IPackageFragmentRoot root= roots[i];
+ type= findType(root, fullyQualifiedName);
+ if (type != null && type.exists())
+ return type;
+ }
+ return null;
}
+
- private static IType findType(IPackageFragmentRoot root, String fullyQualifiedName) throws JavaModelException {
- IJavaElement[] children = root.getChildren();
- for (int i = 0; i < children.length; i++) {
- IJavaElement element = children[i];
- if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
- IPackageFragment pack = (IPackageFragment) element;
- if (!fullyQualifiedName.startsWith(pack.getElementName()))
+
+ private static IType findType(IPackageFragmentRoot root, String fullyQualifiedName) throws JavaModelException{
+ IJavaElement[] children= root.getChildren();
+ for (int i= 0; i < children.length; i++) {
+ IJavaElement element= children[i];
+ if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT){
+ IPackageFragment pack= (IPackageFragment)element;
+ if (! fullyQualifiedName.startsWith(pack.getElementName()))
continue;
- IType type = findType(pack, fullyQualifiedName);
+ IType type= findType(pack, fullyQualifiedName);
if (type != null && type.exists())
return type;
}
- }
+ }
return null;
}
-
- private static IType findType(IPackageFragment pack, String fullyQualifiedName) throws JavaModelException {
- ICompilationUnit[] cus = pack.getCompilationUnits();
- for (int i = 0; i < cus.length; i++) {
- ICompilationUnit unit = cus[i];
- IType type = findType(unit, fullyQualifiedName);
+
+ private static IType findType(IPackageFragment pack, String fullyQualifiedName) throws JavaModelException{
+ ICompilationUnit[] cus= pack.getCompilationUnits();
+ for (int i= 0; i < cus.length; i++) {
+ ICompilationUnit unit= cus[i];
+ IType type= findType(unit, fullyQualifiedName);
if (type != null && type.exists())
return type;
}
return null;
}
-
- private static IType findType(ICompilationUnit cu, String fullyQualifiedName) throws JavaModelException {
- IType[] types = cu.getAllTypes();
- for (int i = 0; i < types.length; i++) {
- IType type = types[i];
+
+ private static IType findType(ICompilationUnit cu, String fullyQualifiedName) throws JavaModelException{
+ IType[] types= cu.getAllTypes();
+ for (int i= 0; i < types.length; i++) {
+ IType type= types[i];
if (getFullyQualifiedName(type).equals(fullyQualifiedName))
return type;
}
return null;
}
-
- /**
- * Finds a type by package and type name.
- *
- * @param jproject
- * the java project to search in
- * @param pack
- * The package name
- * @param typeQualifiedName
- * the type qualified name (type name with enclosing type names (separated by dots))
- * @return the type found, or null if not existing
- * @deprecated Use IJavaProject.findType(String, String) instead
- */
- public static IType findType(IJavaProject jproject, String pack, String typeQualifiedName) throws JavaModelException {
- return jproject.findType(pack, typeQualifiedName);
- }
-
+
/**
- * Finds a type container by container name. The returned element will be of type
- * IType
or a IPackageFragment
.null
is returned
- * if the type container could not be found.
- *
- * @param jproject
- * The Java project defining the context to search
- * @param typeContainerName
- * A dot separarted name of the type container
+ * Finds a type container by container name.
+ * The returned element will be of type IType
or a IPackageFragment
.
+ * null
is returned if the type container could not be found.
+ * @param jproject The Java project defining the context to search
+ * @param typeContainerName A dot separated name of the type container
* @see #getTypeContainerName(IType)
*/
public static IJavaElement findTypeContainer(IJavaProject jproject, String typeContainerName) throws JavaModelException {
// try to find it as type
- IJavaElement result = jproject.findType(typeContainerName);
+ IJavaElement result= jproject.findType(typeContainerName);
if (result == null) {
// find it as package
- IPath path = new Path(typeContainerName.replace('.', '/'));
- result = jproject.findElement(path);
+ IPath path= new Path(typeContainerName.replace('.', '/'));
+ result= jproject.findElement(path);
if (!(result instanceof IPackageFragment)) {
- result = null;
+ result= null;
}
-
+
}
return result;
- }
-
- /**
- * Finds a type in a compilation unit. Typical usage is to find the corresponding type in a
- * working copy.
- *
- * @param cu
- * the compilation unit to search in
- * @param typeQualifiedName
- * the type qualified name (type name with enclosing type names (separated by dots))
+ }
+
+ /**
+ * Finds a type in a compilation unit. Typical usage is to find the corresponding
+ * type in a working copy.
+ * @param cu the compilation unit to search in
+ * @param typeQualifiedName the type qualified name (type name with enclosing type names (separated by dots))
* @return the type found, or null if not existing
- */
+ */
public static IType findTypeInCompilationUnit(ICompilationUnit cu, String typeQualifiedName) throws JavaModelException {
- IType[] types = cu.getAllTypes();
- for (int i = 0; i < types.length; i++) {
- String currName = getTypeQualifiedName(types[i]);
+ IType[] types= cu.getAllTypes();
+ for (int i= 0; i < types.length; i++) {
+ String currName= getTypeQualifiedName(types[i]);
if (typeQualifiedName.equals(currName)) {
return types[i];
}
}
return null;
}
-
- /**
- * Finds a a member in a compilation unit. Typical usage is to find the corresponding member in
- * a working copy.
- *
- * @param cu
- * the compilation unit (eg. working copy) to search in
- * @param member
- * the member (eg. from the original)
- * @return the member found, or null if not existing
- */
- public static IMember findMemberInCompilationUnit(ICompilationUnit cu, IMember member) {
- IJavaElement[] elements = cu.findElements(member);
- if (elements != null && elements.length > 0) {
- return (IMember) elements[0];
- }
- return null;
- }
-
-
- /**
- * Returns the element of the given compilation unit which is "equal" to the given element. Note
- * that the given element usually has a parent different from the given compilation unit.
+
+ /**
+ * Returns the element of the given compilation unit which is "equal" to the
+ * given element. Note that the given element usually has a parent different
+ * from the given compilation unit.
*
- * @param cu
- * the cu to search in
- * @param element
- * the element to look for
+ * @param cu the cu to search in
+ * @param element the element to look for
* @return an element of the given cu "equal" to the given element
- */
+ */
public static IJavaElement findInCompilationUnit(ICompilationUnit cu, IJavaElement element) {
- IJavaElement[] elements = cu.findElements(element);
+ IJavaElement[] elements= cu.findElements(element);
if (elements != null && elements.length > 0) {
return elements[0];
}
return null;
}
-
+
/**
- * Returns the qualified type name of the given type using '.' as separators. This is a replace
- * for IType.getTypeQualifiedName() which uses '$' as separators. As '$' is also a valid
- * character in an id this is ambiguous. JavaCore PR: 1GCFUNT
+ * Returns the qualified type name of the given type using '.' as separators.
+ * This is a replace for IType.getTypeQualifiedName()
+ * which uses '$' as separators. As '$' is also a valid character in an id
+ * this is ambiguous. JavaCore PR: 1GCFUNT
*/
public static String getTypeQualifiedName(IType type) {
+ try {
+ if (type.isBinary() && !type.isAnonymous()) {
+ IType declaringType= type.getDeclaringType();
+ if (declaringType != null) {
+ return getTypeQualifiedName(declaringType) + '.' + type.getElementName();
+ }
+ }
+ } catch (JavaModelException e) {
+ // ignore
+ }
return type.getTypeQualifiedName('.');
}
-
+
/**
- * Returns the fully qualified name of the given type using '.' as separators. This is a replace
- * for IType.getFullyQualifiedTypeName which uses '$' as separators. As '$' is also a valid
- * character in an id this is ambiguous. JavaCore PR: 1GCFUNT
+ * Returns the fully qualified name of the given type using '.' as separators.
+ * This is a replace for IType.getFullyQualifiedTypeName
+ * which uses '$' as separators. As '$' is also a valid character in an id
+ * this is ambiguous. JavaCore PR: 1GCFUNT
*/
public static String getFullyQualifiedName(IType type) {
+ try {
+ if (type.isBinary() && !type.isAnonymous()) {
+ IType declaringType= type.getDeclaringType();
+ if (declaringType != null) {
+ return getFullyQualifiedName(declaringType) + '.' + type.getElementName();
+ }
+ }
+ } catch (JavaModelException e) {
+ // ignore
+ }
return type.getFullyQualifiedName('.');
}
-
+
/**
* Returns the fully qualified name of a type's container. (package name or enclosing type name)
*/
public static String getTypeContainerName(IType type) {
- IType outerType = type.getDeclaringType();
+ IType outerType= type.getDeclaringType();
if (outerType != null) {
- return outerType.getFullyQualifiedName('.');
+ return getFullyQualifiedName(outerType);
+ } else {
+ return type.getPackageFragment().getElementName();
}
- return type.getPackageFragment().getElementName();
}
-
-
+
+
/**
- * Concatenates two names. Uses a dot for separation. Both strings can be empty or
- * null
.
+ * Concatenates two names. Uses a dot for separation.
+ * Both strings can be empty or null
.
*/
public static String concatenateName(String name1, String name2) {
- StringBuffer buf = new StringBuffer();
+ StringBuffer buf= new StringBuffer();
if (name1 != null && name1.length() > 0) {
buf.append(name1);
}
@@ -277,16 +290,16 @@ public class JavaModelUtil {
buf.append('.');
}
buf.append(name2);
- }
+ }
return buf.toString();
}
-
+
/**
- * Concatenates two names. Uses a dot for separation. Both strings can be empty or
- * null
.
+ * Concatenates two names. Uses a dot for separation.
+ * Both strings can be empty or null
.
*/
public static String concatenateName(char[] name1, char[] name2) {
- StringBuffer buf = new StringBuffer();
+ StringBuffer buf= new StringBuffer();
if (name1 != null && name1.length > 0) {
buf.append(name1);
}
@@ -295,214 +308,152 @@ public class JavaModelUtil {
buf.append('.');
}
buf.append(name2);
- }
+ }
return buf.toString();
- }
-
+ }
+
/**
- * Evaluates if a member (possible from another package) is visible from elements in a package.
- *
- * @param member
- * The member to test the visibility for
- * @param pack
- * The package in focus
+ * Evaluates if a member (possible from another package) is visible from
+ * elements in a package.
+ * @param member The member to test the visibility for
+ * @param pack The package in focus
*/
public static boolean isVisible(IMember member, IPackageFragment pack) throws JavaModelException {
-
- int type = member.getElementType();
- if (type == IJavaElement.INITIALIZER || (type == IJavaElement.METHOD && member.getElementName().startsWith("<"))) { //$NON-NLS-1$
+
+ int type= member.getElementType();
+ if (type == IJavaElement.INITIALIZER || (type == IJavaElement.METHOD && member.getElementName().startsWith("<"))) { //$NON-NLS-1$
return false;
}
-
- int otherflags = member.getFlags();
- IType declaringType = member.getDeclaringType();
- if (Flags.isPublic(otherflags) || (declaringType != null && declaringType.isInterface())) {
+
+ int otherflags= member.getFlags();
+ IType declaringType= member.getDeclaringType();
+ if (Flags.isPublic(otherflags) || (declaringType != null && isInterfaceOrAnnotation(declaringType))) {
return true;
} else if (Flags.isPrivate(otherflags)) {
return false;
- }
-
- IPackageFragment otherpack = (IPackageFragment) findParentOfKind(member, IJavaElement.PACKAGE_FRAGMENT);
+ }
+
+ IPackageFragment otherpack= (IPackageFragment) member.getAncestor(IJavaElement.PACKAGE_FRAGMENT);
return (pack != null && otherpack != null && isSamePackage(pack, otherpack));
}
-
+
/**
- * Evaluates if a member in the focus' element hierarchy is visible from elements in a package.
- *
- * @param member
- * The member to test the visibility for
- * @param pack
- * The package of the focus element focus
+ * Evaluates if a member in the focus' element hierarchy is visible from
+ * elements in a package.
+ * @param member The member to test the visibility for
+ * @param pack The package of the focus element focus
*/
public static boolean isVisibleInHierarchy(IMember member, IPackageFragment pack) throws JavaModelException {
- int type = member.getElementType();
- if (type == IJavaElement.INITIALIZER || (type == IJavaElement.METHOD && member.getElementName().startsWith("<"))) { //$NON-NLS-1$
+ int type= member.getElementType();
+ if (type == IJavaElement.INITIALIZER || (type == IJavaElement.METHOD && member.getElementName().startsWith("<"))) { //$NON-NLS-1$
return false;
}
-
- int otherflags = member.getFlags();
-
- IType declaringType = member.getDeclaringType();
- if (Flags.isPublic(otherflags) || Flags.isProtected(otherflags) || (declaringType != null && declaringType.isInterface())) {
+
+ int otherflags= member.getFlags();
+
+ IType declaringType= member.getDeclaringType();
+ if (Flags.isPublic(otherflags) || Flags.isProtected(otherflags) || (declaringType != null && isInterfaceOrAnnotation(declaringType))) {
return true;
} else if (Flags.isPrivate(otherflags)) {
return false;
- }
-
- IPackageFragment otherpack = (IPackageFragment) findParentOfKind(member, IJavaElement.PACKAGE_FRAGMENT);
+ }
+
+ IPackageFragment otherpack= (IPackageFragment) member.getAncestor(IJavaElement.PACKAGE_FRAGMENT);
return (pack != null && pack.equals(otherpack));
}
-
-
+
+
/**
- * Returns the package fragment root of IJavaElement
. If the given element is
- * already a package fragment root, the element itself is returned.
+ * Returns the package fragment root of IJavaElement
. If the given
+ * element is already a package fragment root, the element itself is returned.
*/
public static IPackageFragmentRoot getPackageFragmentRoot(IJavaElement element) {
return (IPackageFragmentRoot) element.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
}
-
- /**
- * Returns the parent of the supplied java element that conforms to the given parent type or
- * null
, if such a parent doesn't exit.
- *
- * @deprecated Use element.getParent().getAncestor(kind);
- */
- public static IJavaElement findParentOfKind(IJavaElement element, int kind) {
- if (element != null && element.getParent() != null) {
- return element.getParent().getAncestor(kind);
- }
- return null;
- }
-
+
/**
- * Finds a method in a type. This searches for a method with the same name and signature.
- * Parameter types are only compared by the simple name, no resolving for the fully qualified
- * type name is done. Constructors are only compared by parameters, not the name.
- *
- * @param name
- * The name of the method to find
- * @param paramTypes
- * The type signatures of the parameters e.g. {"QString;","I"}
- * @param isConstructor
- * If the method is a constructor
+ * Finds a method in a type.
+ * This searches for a method with the same name and signature. Parameter types are only
+ * compared by the simple name, no resolving for the fully qualified type name is done.
+ * Constructors are only compared by parameters, not the name.
+ * @param name The name of the method to find
+ * @param paramTypes The type signatures of the parameters e.g. {"QString;","I"}
+ * @param isConstructor If the method is a constructor
* @return The first found method or null
, if nothing found
*/
public static IMethod findMethod(String name, String[] paramTypes, boolean isConstructor, IType type) throws JavaModelException {
- return findMethod(name, paramTypes, isConstructor, type.getMethods());
- }
-
- /**
- * Finds a method by name. This searches for a method with a name and signature. Parameter types
- * are only compared by the simple name, no resolving for the fully qualified type name is done.
- * Constructors are only compared by parameters, not the name.
- *
- * @param name
- * The name of the method to find
- * @param paramTypes
- * The type signatures of the parameters e.g. {"QString;","I"}
- * @param isConstructor
- * If the method is a constructor
- * @param methods
- * The methods to search in
- * @return The found method or null
, if nothing found
- */
- public static IMethod findMethod(String name, String[] paramTypes, boolean isConstructor, IMethod[] methods) throws JavaModelException {
- for (int i = methods.length - 1; i >= 0; i--) {
+ IMethod[] methods= type.getMethods();
+ for (int i= 0; i < methods.length; i++) {
if (isSameMethodSignature(name, paramTypes, isConstructor, methods[i])) {
return methods[i];
}
}
return null;
}
-
-
+
/**
- * Finds a method declararion in a type's hierarchy. The search is top down, so this returns the
- * first declaration of the method in the hierarchy. This searches for a method with a name and
- * signature. Parameter types are only compared by the simple name, no resolving for the fully
- * qualified type name is done. Constructors are only compared by parameters, not the name.
- *
- * @param type
- * Searches in this type's supertypes.
- * @param name
- * The name of the method to find
- * @param paramTypes
- * The type signatures of the parameters e.g. {"QString;","I"}
- * @param isConstructor
- * If the method is a constructor
- * @return The first method found or null, if nothing found
- */
- public static IMethod findMethodDeclarationInHierarchy(ITypeHierarchy hierarchy, IType type, String name, String[] paramTypes, boolean isConstructor) throws JavaModelException {
- IType[] superTypes = hierarchy.getAllSupertypes(type);
- for (int i = superTypes.length - 1; i >= 0; i--) {
- IMethod first = findMethod(name, paramTypes, isConstructor, superTypes[i]);
- if (first != null && !Flags.isPrivate(first.getFlags())) {
- // the order getAllSupertypes does make assumptions of the order of inner elements
- // -> search recursivly
- IMethod res = findMethodDeclarationInHierarchy(hierarchy, first.getDeclaringType(), name, paramTypes, isConstructor);
- if (res != null) {
- return res;
- }
- return first;
- }
- }
- return null;
+ * @deprecated use {@link #findMethodInHierarchy(ITypeHierarchy, IType, String, String[], boolean)}
+ */
+ public static IMethod findMethodImplementationInHierarchy(ITypeHierarchy hierarchy, IType type, String name, String[] paramTypes, boolean isConstructor) throws JavaModelException {
+ return findMethodInHierarchy(hierarchy, type, name, paramTypes, isConstructor);
}
-
+
/**
- * Finds a method implementation in a type's classhierarchy. The search is bottom-up, so this
- * returns the nearest overridden method. Does not find methods in interfaces or abstract
- * methods. This searches for a method with a name and signature. Parameter types are only
+ * Finds a method in a type and all its super types. The super class hierarchy is searched first, then the super interfaces.
+ * This searches for a method with the same name and signature. Parameter types are only
* compared by the simple name, no resolving for the fully qualified type name is done.
* Constructors are only compared by parameters, not the name.
- *
- * @param type
- * Type to search the superclasses
- * @param name
- * The name of the method to find
- * @param paramTypes
- * The type signatures of the parameters e.g. {"QString;","I"}
- * @param isConstructor
- * If the method is a constructor
- * @return The first method found or null, if nothing found
+ * NOTE: For finding overridden methods or for finding the declaring method, use {@link MethodOverrideTester}
+ * @param hierarchy The hierarchy containing the type
+ * @param type The type to start the search from
+ * @param name The name of the method to find
+ * @param paramTypes The type signatures of the parameters e.g. {"QString;","I"}
+ * @param isConstructor If the method is a constructor
+ * @return The first found method or null
, if nothing found
*/
- public static IMethod findMethodImplementationInHierarchy(ITypeHierarchy hierarchy, IType type, String name, String[] paramTypes, boolean isConstructor) throws JavaModelException {
- IType[] superTypes = hierarchy.getAllSuperclasses(type);
- for (int i = 0; i < superTypes.length; i++) {
- IMethod found = findMethod(name, paramTypes, isConstructor, superTypes[i]);
- if (found != null) {
- if (Flags.isAbstract(found.getFlags())) {
- return null;
+ public static IMethod findMethodInHierarchy(ITypeHierarchy hierarchy, IType type, String name, String[] paramTypes, boolean isConstructor) throws JavaModelException {
+ IMethod method= findMethod(name, paramTypes, isConstructor, type);
+ if (method != null) {
+ return method;
+ }
+ IType superClass= hierarchy.getSuperclass(type);
+ if (superClass != null) {
+ IMethod res= findMethodInHierarchy(hierarchy, superClass, name, paramTypes, isConstructor);
+ if (res != null) {
+ return res;
+ }
+ }
+ if (!isConstructor) {
+ IType[] superInterfaces= hierarchy.getSuperInterfaces(type);
+ for (int i= 0; i < superInterfaces.length; i++) {
+ IMethod res= findMethodInHierarchy(hierarchy, superInterfaces[i], name, paramTypes, false);
+ if (res != null) {
+ return res;
}
- return found;
}
}
- return null;
+ return method;
}
-
+
+
/**
- * Tests if a method equals to the given signature. Parameter types are only compared by the
- * simple name, no resolving for the fully qualified type name is done. Constructors are only
- * compared by parameters, not the name.
- *
- * @param name
- * Name of the method
- * @param paramTypes
- * The type signatures of the parameters e.g. {"QString;","I"}
- * @param isConstructor
- * Specifies if the method is a constructor
- * @return Returns true
if the method has the given name and parameter types and
- * constructor state.
+ * Tests if a method equals to the given signature.
+ * Parameter types are only compared by the simple name, no resolving for
+ * the fully qualified type name is done. Constructors are only compared by
+ * parameters, not the name.
+ * @param name Name of the method
+ * @param paramTypes The type signatures of the parameters e.g. {"QString;","I"}
+ * @param isConstructor Specifies if the method is a constructor
+ * @return Returns true
if the method has the given name and parameter types and constructor state.
*/
public static boolean isSameMethodSignature(String name, String[] paramTypes, boolean isConstructor, IMethod curr) throws JavaModelException {
if (isConstructor || name.equals(curr.getElementName())) {
if (isConstructor == curr.isConstructor()) {
- String[] currParamTypes = curr.getParameterTypes();
+ String[] currParamTypes= curr.getParameterTypes();
if (paramTypes.length == currParamTypes.length) {
- for (int i = 0; i < paramTypes.length; i++) {
- String t1 = Signature.getSimpleName(Signature.toString(paramTypes[i]));
- String t2 = Signature.getSimpleName(Signature.toString(currParamTypes[i]));
+ for (int i= 0; i < paramTypes.length; i++) {
+ String t1= Signature.getSimpleName(Signature.toString(paramTypes[i]));
+ String t2= Signature.getSimpleName(Signature.toString(currParamTypes[i]));
if (!t1.equals(t2)) {
return false;
}
@@ -514,165 +465,129 @@ public class JavaModelUtil {
return false;
}
-
/**
- * Tests if two IPackageFragment
s represent the same logical java package.
- *
+ * Tests if two IPackageFragment
s represent the same logical java package.
* @return true
if the package fragments' names are equal.
*/
public static boolean isSamePackage(IPackageFragment pack1, IPackageFragment pack2) {
return pack1.getElementName().equals(pack2.getElementName());
}
-
+
/**
* Checks whether the given type has a valid main method or not.
*/
public static boolean hasMainMethod(IType type) throws JavaModelException {
- IMethod[] methods = type.getMethods();
- for (int i = 0; i < methods.length; i++) {
+ IMethod[] methods= type.getMethods();
+ for (int i= 0; i < methods.length; i++) {
if (methods[i].isMainMethod()) {
return true;
}
}
return false;
}
-
+
/**
* Checks if the field is boolean.
*/
- public static boolean isBoolean(IField field) throws JavaModelException {
+ public static boolean isBoolean(IField field) throws JavaModelException{
return field.getTypeSignature().equals(Signature.SIG_BOOLEAN);
}
-
+
/**
- * Returns true if the element is on the build path of the given project
- *
- * @deprecated Use jproject.isOnClasspath(element);
+ * @return true
iff the type is an interface or an annotation
*/
- public static boolean isOnBuildPath(IJavaProject jproject, IJavaElement element) {
- return jproject.isOnClasspath(element);
+ public static boolean isInterfaceOrAnnotation(IType type) throws JavaModelException {
+ return type.isInterface();
}
-
- /**
- * Tests if the given element is on the class path of its containing project. Handles the case
- * that the containing project isn't a Java project.
- */
- public static boolean isOnClasspath(IJavaElement element) {
- IJavaProject project = element.getJavaProject();
- if (!project.exists())
- return false;
- return project.isOnClasspath(element);
- }
-
+
/**
* Resolves a type name in the context of the declaring type.
*
- * @param refTypeSig
- * the type name in signature notation (for example 'QVector') this can also be an
- * array type, but dimensions will be ignored.
- * @param declaringType
- * the context for resolving (type where the reference was made in)
- * @return returns the fully qualified type name or build-in-type name. if a unresoved type
- * couldn't be resolved null is returned
+ * @param refTypeSig the type name in signature notation (for example 'QVector') this can also be an array type, but dimensions will be ignored.
+ * @param declaringType the context for resolving (type where the reference was made in)
+ * @return returns the fully qualified type name or build-in-type name. if a unresolved type couldn't be resolved null is returned
*/
public static String getResolvedTypeName(String refTypeSig, IType declaringType) throws JavaModelException {
- int arrayCount = Signature.getArrayCount(refTypeSig);
- char type = refTypeSig.charAt(arrayCount);
+ int arrayCount= Signature.getArrayCount(refTypeSig);
+ char type= refTypeSig.charAt(arrayCount);
if (type == Signature.C_UNRESOLVED) {
- int semi = refTypeSig.indexOf(Signature.C_SEMICOLON, arrayCount + 1);
- if (semi == -1) {
- throw new IllegalArgumentException();
+ String name= ""; //$NON-NLS-1$
+ int bracket= refTypeSig.indexOf(Signature.C_GENERIC_START, arrayCount + 1);
+ if (bracket > 0)
+ name= refTypeSig.substring(arrayCount + 1, bracket);
+ else {
+ int semi= refTypeSig.indexOf(Signature.C_SEMICOLON, arrayCount + 1);
+ if (semi == -1) {
+ throw new IllegalArgumentException();
+ }
+ name= refTypeSig.substring(arrayCount + 1, semi);
}
- String name = refTypeSig.substring(arrayCount + 1, semi);
-
- String[][] resolvedNames = declaringType.resolveType(name);
+ String[][] resolvedNames= declaringType.resolveType(name);
if (resolvedNames != null && resolvedNames.length > 0) {
- return concatenateName(resolvedNames[0][0], resolvedNames[0][1]);
+ return JavaModelUtil.concatenateName(resolvedNames[0][0], resolvedNames[0][1]);
}
return null;
+ } else {
+ return Signature.toString(refTypeSig.substring(arrayCount));
}
- return Signature.toString(refTypeSig.substring(arrayCount));
}
-
+
/**
* Returns if a CU can be edited.
*/
- public static boolean isEditable(ICompilationUnit cu) {
- IResource resource = toOriginal(cu).getResource();
+ public static boolean isEditable(ICompilationUnit cu) {
+ Assert.isNotNull(cu);
+ IResource resource= cu.getPrimary().getResource();
return (resource.exists() && !resource.getResourceAttributes().isReadOnly());
}
/**
- * Finds a qualified import for a type name.
- */
- public static IImportDeclaration findImport(ICompilationUnit cu, String simpleName) throws JavaModelException {
- IImportDeclaration[] existing = cu.getImports();
- for (int i = 0; i < existing.length; i++) {
- String curr = existing[i].getElementName();
- if (curr.endsWith(simpleName)) {
- int dotPos = curr.length() - simpleName.length() - 1;
- if ((dotPos == -1) || (dotPos > 0 && curr.charAt(dotPos) == '.')) {
- return existing[i];
- }
- }
- }
- return null;
- }
-
- //private static boolean PRIMARY_ONLY = false;
-
-
-
- /**
- * Returns the original element if the given element is a working copy. If the cu is already an
- * original the input element is returned. The returned element might not exist
- */
- public static IJavaElement toOriginal(IJavaElement element) {
- return element.getPrimaryElement();
- }
-
- /**
- * @deprecated Inline this method.
- */
- public static IMember toWorkingCopy(IMember member) {
- return member;
- }
-
- /**
- * @deprecated Inline this method.
- */
- public static IPackageDeclaration toWorkingCopy(IPackageDeclaration declaration) {
- return declaration;
- }
-
- /**
- * @deprecated Inline this method.
+ * Returns the original if the given member. If the member is already
+ * an original the input is returned. The returned member might not exist
+ *
+ * @deprecated Replace by IMember#getPrimaryElement() if member
is not part
+ * of a shared working copy owner. Also have a look at http://bugs.eclipse.org/bugs/show_bug.cgi?id=18568
*/
- public static IJavaElement toWorkingCopy(IJavaElement elem) {
- return elem;
- }
+ public static IMember toOriginal(IMember member) {
+ if (member instanceof IMethod)
+ return toOriginalMethod((IMethod)member);
- /**
- * @deprecated Inline this method.
- */
- public static IImportContainer toWorkingCopy(IImportContainer container) {
- return container;
+ // TODO: remove toOriginalMethod(IMethod)
+ return (IMember) member.getPrimaryElement();
+ /*ICompilationUnit cu= member.getCompilationUnit();
+ if (cu != null && cu.isWorkingCopy())
+ return (IMember)cu.getOriginal(member);
+ return member;*/
}
-
- /**
- * @deprecated Inline this method.
- */
- public static IImportDeclaration toWorkingCopy(IImportDeclaration importDeclaration) {
- return importDeclaration;
- }
-
-
- /**
- * @deprecated Inline this method.
- */
- public static ICompilationUnit toWorkingCopy(ICompilationUnit cu) {
- return cu;
+
+ /*
+ * TODO remove if toOriginal(IMember) can be removed
+ * XXX workaround for bug 18568
+ * http://bugs.eclipse.org/bugs/show_bug.cgi?id=18568
+ * to be removed once the bug is fixed
+ */
+ private static IMethod toOriginalMethod(IMethod method) {
+ ICompilationUnit cu= method.getCompilationUnit();
+ if (cu == null || isPrimary(cu)) {
+ return method;
+ }
+ try{
+ //use the workaround only if needed
+ if (! method.getElementName().equals(method.getDeclaringType().getElementName()))
+ return (IMethod) method.getPrimaryElement();
+
+ IType originalType = (IType) toOriginal(method.getDeclaringType());
+ IMethod[] methods = originalType.findMethods(method);
+ boolean isConstructor = method.isConstructor();
+ for (int i=0; i < methods.length; i++) {
+ if (methods[i].isConstructor() == isConstructor)
+ return methods[i];
+ }
+ return null;
+ } catch (JavaModelException e){
+ return null;
+ }
}
/**
@@ -682,92 +597,301 @@ public class JavaModelUtil {
return cu.getOwner() == null;
}
-
/*
* http://bugs.eclipse.org/bugs/show_bug.cgi?id=19253
*
- * Reconciling happens in a separate thread. This can cause a situation where the Java element
- * gets disposed after an exists test has been done. So we should not log not present exceptions
- * when they happen in working copies.
+ * Reconciling happens in a separate thread. This can cause a situation where the
+ * Java element gets disposed after an exists test has been done. So we should not
+ * log not present exceptions when they happen in working copies.
*/
- public static boolean filterNotPresentException(CoreException exception) {
+ public static boolean isExceptionToBeLogged(CoreException exception) {
if (!(exception instanceof JavaModelException))
return true;
- JavaModelException je = (JavaModelException) exception;
+ JavaModelException je= (JavaModelException)exception;
if (!je.isDoesNotExist())
return true;
- IJavaElement[] elements = je.getJavaModelStatus().getElements();
- for (int i = 0; i < elements.length; i++) {
- IJavaElement element = elements[i];
- ICompilationUnit unit = (ICompilationUnit) element.getAncestor(IJavaElement.COMPILATION_UNIT);
+ IJavaElement[] elements= je.getJavaModelStatus().getElements();
+ for (int i= 0; i < elements.length; i++) {
+ IJavaElement element= elements[i];
+ // if the element is already a compilation unit don't log
+ // does not exist exceptions. See bug
+ // https://bugs.eclipse.org/bugs/show_bug.cgi?id=75894
+ // for more details
+ if (element.getElementType() == IJavaElement.COMPILATION_UNIT)
+ continue;
+ ICompilationUnit unit= (ICompilationUnit)element.getAncestor(IJavaElement.COMPILATION_UNIT);
if (unit == null)
return true;
if (!unit.isWorkingCopy())
return true;
}
- return false;
+ return false;
}
- public static IType[] getAllSuperTypes(IType type, IProgressMonitor pm) throws JavaModelException {
- //workaround for 23656
- Set types = new HashSet(Arrays.asList(type.newSupertypeHierarchy(pm).getAllSupertypes(type)));
- IType objekt = type.getJavaProject().findType("java.lang.Object");//$NON-NLS-1$
- if (objekt != null)
- types.add(objekt);
- return (IType[]) types.toArray(new IType[types.size()]);
+ public static boolean isSuperType(ITypeHierarchy hierarchy, IType possibleSuperType, IType type) {
+ // filed bug 112635 to add this method to ITypeHierarchy
+ IType superClass= hierarchy.getSuperclass(type);
+ if (superClass != null && (possibleSuperType.equals(superClass) || isSuperType(hierarchy, possibleSuperType, superClass))) {
+ return true;
+ }
+ if (Flags.isInterface(hierarchy.getCachedFlags(possibleSuperType))) {
+ IType[] superInterfaces= hierarchy.getSuperInterfaces(type);
+ for (int i= 0; i < superInterfaces.length; i++) {
+ IType curr= superInterfaces[i];
+ if (possibleSuperType.equals(curr) || isSuperType(hierarchy, possibleSuperType, curr)) {
+ return true;
+ }
+ }
+ }
+ return false;
}
-
+
public static boolean isExcludedPath(IPath resourcePath, IPath[] exclusionPatterns) {
char[] path = resourcePath.toString().toCharArray();
for (int i = 0, length = exclusionPatterns.length; i < length; i++) {
- char[] pattern = exclusionPatterns[i].toString().toCharArray();
+ char[] pattern= exclusionPatterns[i].toString().toCharArray();
if (CharOperation.pathMatch(pattern, path, true, '/')) {
return true;
}
}
- return false;
+ return false;
}
/*
- * Returns whether the given resource path matches one of the exclusion patterns.
+ * Returns whether the given resource path matches one of the exclusion
+ * patterns.
*
* @see IClasspathEntry#getExclusionPatterns
*/
public final static boolean isExcluded(IPath resourcePath, char[][] exclusionPatterns) {
- if (exclusionPatterns == null)
- return false;
+ if (exclusionPatterns == null) return false;
char[] path = resourcePath.toString().toCharArray();
for (int i = 0, length = exclusionPatterns.length; i < length; i++)
if (CharOperation.pathMatch(exclusionPatterns[i], path, true, '/'))
return true;
return false;
- }
-
+ }
+
/**
* Force a reconcile of a compilation unit.
- *
* @param unit
*/
public static void reconcile(ICompilationUnit unit) throws JavaModelException {
- synchronized (unit) {
- unit.reconcile();
+ unit.reconcile(
+ ICompilationUnit.NO_AST,
+ false /* don't force problem detection */,
+ null /* use primary owner */,
+ null /* no progress monitor */);
+ }
+
+ /**
+ * Helper method that tests if an classpath entry can be found in a
+ * container. null
is returned if the entry can not be found
+ * or if the container does not allows the configuration of source
+ * attachments
+ * @param jproject The container's parent project
+ * @param containerPath The path of the container
+ * @param libPath The path of the library to be found
+ * @return IClasspathEntry A classpath entry from the container of
+ * null
if the container can not be modified.
+ */
+ public static IClasspathEntry getClasspathEntryToEdit(IJavaProject jproject, IPath containerPath, IPath libPath) throws JavaModelException {
+ IClasspathContainer container= JavaCore.getClasspathContainer(containerPath, jproject);
+ ClasspathContainerInitializer initializer= JavaCore.getClasspathContainerInitializer(containerPath.segment(0));
+ if (container != null && initializer != null && initializer.canUpdateClasspathContainer(containerPath, jproject)) {
+ IClasspathEntry[] entries= container.getClasspathEntries();
+ for (int i= 0; i < entries.length; i++) {
+ IClasspathEntry curr= entries[i];
+ IClasspathEntry resolved= JavaCore.getResolvedClasspathEntry(curr);
+ if (resolved != null && libPath.equals(resolved.getPath())) {
+ return curr; // return the real entry
+ }
+ }
}
+ return null; // attachment not possible
}
-
- private static Boolean fgIsJDTCore_1_5 = null;
-
+
/**
- * Return true if JRE 1.5 in enabled.
+ * Get all compilation units of a selection.
+ * @param javaElements the selected java elements
+ * @return all compilation units containing and contained in elements from javaElements
+ * @throws JavaModelException
*/
- public static boolean isJDTCore_1_5() {
- if (fgIsJDTCore_1_5 == null) {
- fgIsJDTCore_1_5 = new Boolean(JavaCore.getDefaultOptions().containsKey("org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation")); //$NON-NLS-1$
+ public static ICompilationUnit[] getAllCompilationUnits(IJavaElement[] javaElements) throws JavaModelException {
+ HashSet result= new HashSet();
+ for (int i= 0; i < javaElements.length; i++) {
+ addAllCus(result, javaElements[i]);
+ }
+ return (ICompilationUnit[]) result.toArray(new ICompilationUnit[result.size()]);
+ }
+
+ private static void addAllCus(HashSet/*true
, then element can safely be cast to any of
+ * {@link IParent}, {@link IOpenable}, {@link ISourceReference}, or {@link ICodeAssist}.
+ * @param element
+ * @return true
iff element is an {@link ICompilationUnit} or an {@link IClassFile}
+ */
+ public static boolean isTypeContainerUnit(IJavaElement element) {
+ // workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=125504
+ return element instanceof ICompilationUnit || element instanceof IClassFile;
+ }
+
+ public static IJavaElement getTypeContainerUnit(IMember member) {
+ ICompilationUnit cu= member.getCompilationUnit();
+ if (cu != null)
+ return cu;
+ else
+ return member.getClassFile();
+ }
}
diff --git a/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/operations/NewJavaClassOperation.java b/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/operations/NewJavaClassOperation.java
index d89671487..210ccfcd4 100644
--- a/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/operations/NewJavaClassOperation.java
+++ b/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/operations/NewJavaClassOperation.java
@@ -342,7 +342,9 @@ public class NewJavaClassOperation extends ArtifactEditProviderOperation {
int size = interfaces.size();
for (int i = 0; i < size; i++) {
String interfaceName = (String) interfaces.get(i);
- importStatements.add(interfaceName);
+ if(!interfaceName.equals(JAVA_LANG_OBJECT) && !isSamePackage(pack, interfaceName)){
+ importStatements.add(interfaceName);
+ }
}
}
}
@@ -450,7 +452,7 @@ public class NewJavaClassOperation extends ArtifactEditProviderOperation {
if (superClassType != null) {
IMethod[] methods = superClassType.getMethods();
for (int j = 0; j < methods.length; j++) {
- if (methods[j].isConstructor() && !Flags.isPrivate(methods[j].getFlags())) {
+ if (methods[j].isConstructor() && !Flags.isPrivate(methods[j].getFlags()) && !hasGenericParams(methods[j])) {
String methodStub = getMethodStub(methods[j], superclassName, className);
sb.append(methodStub);
}
@@ -479,6 +481,27 @@ public class NewJavaClassOperation extends ArtifactEditProviderOperation {
return sb.toString();
}
+ private boolean hasGenericParams(IMethod method) {
+ try {
+ IType parentType = method.getDeclaringType();
+ String[] paramTypes = method.getParameterTypes();
+
+ int nP = paramTypes.length;
+ for (int i = 0; i < nP; i++) {
+ String type = paramTypes[i];
+ if (!isPrimitiveType(type)) {
+ type = JavaModelUtil.getResolvedTypeName(type, parentType);
+ if(type.indexOf(Signature.C_GENERIC_START, 0) != -1){
+ return true;
+ }
+ }
+ }
+ } catch (JavaModelException e) {
+ Logger.getLogger().log(e);
+ }
+ return false;
+ }
+
/**
* This method is intended for internal use only. This will retrieve method stubs for
* unimplemented methods in the superclass that will need to be created in the new class.
@@ -571,12 +594,28 @@ public class NewJavaClassOperation extends ArtifactEditProviderOperation {
* @throws JavaModelException
*/
private String resolveAndAdd(String refTypeSig, IType declaringType) throws JavaModelException {
- String resolvedTypeName = JavaModelUtil.getResolvedTypeName(refTypeSig, declaringType);
- // Could type not be resolved and is import statement missing?
+ if(refTypeSig.indexOf(Signature.C_GENERIC_START, 0) != -1){
+ getImportStatements(refTypeSig, declaringType);
+ } else {
+ String resolvedTypeName = JavaModelUtil.getResolvedTypeName(refTypeSig, declaringType);
+ // Could type not be resolved and is import statement missing?
+ if (resolvedTypeName != null && !importStatements.contains(resolvedTypeName) && !resolvedTypeName.startsWith("java.lang")) { //$NON-NLS-1$
+ importStatements.add(resolvedTypeName);
+ }
+ }
+ return Signature.toString(refTypeSig);
+ }
+
+ private void getImportStatements(String signature, IType declaringType) throws JavaModelException{
+ String erasure = Signature.getTypeErasure(signature);
+ String resolvedTypeName = JavaModelUtil.getResolvedTypeName(erasure, declaringType);
if (resolvedTypeName != null && !importStatements.contains(resolvedTypeName) && !resolvedTypeName.startsWith("java.lang")) { //$NON-NLS-1$
importStatements.add(resolvedTypeName);
}
- return Signature.toString(refTypeSig);
+ String [] params = Signature.getTypeArguments(signature);
+ for(int i=0;itrue>
then empty directories will be included in {@link #getFiles()}.
+ *
+ * @see #setIncludeEmptyDirectories(boolean)
+ */
+ public boolean isIncludeEmptyDirectories() {
+ return includeEmptyDirectories;
+ }
+
+ /**
+ * If this value has not been set, the default is defined by {@link #ArchiveUtil.INCLUDE_EMPTY_DIRECTORIES}.
+ *
+ * @see #isIncludeEmptyDirectories()
+ */
+ public void setIncludeEmptyDirectories(boolean includeEmptyDirectories) {
+ this.includeEmptyDirectories = includeEmptyDirectories;
+ }
}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ArchiveUtil.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ArchiveUtil.java
index dabc96014..c5d3eca76 100644
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ArchiveUtil.java
+++ b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ArchiveUtil.java
@@ -43,6 +43,7 @@ import org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleRef;
import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveException;
import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.EmptyResourceException;
import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveURIConverterImpl;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.ZipFileLoadStrategyImpl;
import org.eclipse.jst.j2ee.internal.J2EEConstants;
import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
import org.eclipse.jst.j2ee.internal.common.XMLResource;
@@ -85,6 +86,14 @@ public class ArchiveUtil {
protected static String tempDirectoryName;
protected static java.io.File tempDirectory;
+
+ /**
+ * Flag to indicate whether empty directories should be included during import; defaults to true.
+ *
+ * @see ZipFileLoadStrategyImpl#isIncludeEmptyDirectories()
+ */
+ public static boolean INCLUDE_EMPTY_DIRECTORIES = true;
+
public static String classNameToJavaUri(String className) {
return className.replace('.', '/').concat(DOT_JAVA);
--
cgit v1.2.3
From 41014692d07eb8debabc14ad5dcca16aceef8e26 Mon Sep 17 00:00:00 2001
From: cbridgha
Date: Wed, 24 Jan 2007 16:23:54 +0000
Subject: [170535] web facet install
---
.../web/project/facet/WebFacetInstallDelegate.java | 52 +++++++++++++++++++---
1 file changed, 45 insertions(+), 7 deletions(-)
diff --git a/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDelegate.java b/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDelegate.java
index 4faaba772..cf5ccedae 100644
--- a/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDelegate.java
+++ b/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDelegate.java
@@ -12,6 +12,8 @@
package org.eclipse.jst.j2ee.web.project.facet;
import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.List;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.resources.IFile;
@@ -26,6 +28,7 @@ import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jem.util.logger.proxy.Logger;
import org.eclipse.jst.common.project.facet.WtpUtils;
import org.eclipse.jst.common.project.facet.core.ClasspathHelper;
@@ -153,6 +156,48 @@ public final class WebFacetInstallDelegate extends J2EEFacetInstallDelegate impl
}
private void setJavaOutputPropertyIfNeeded(IDataModel model, final IVirtualComponent c) {
+
+ // Make sure output folder is set properly for web projects, and the product setting for single root structure is maintained.
+ // We may need to change the existing setup
+
+ if (ProductManager.shouldUseSingleRootStructure()) {
+ String outputFolder = model.getStringProperty(IJ2EEModuleFacetInstallDataModelProperties.CONFIG_FOLDER)+"/"+J2EEConstants.WEB_INF_CLASSES;
+
+ IJavaProject jproj = JavaCore.create(c.getProject());
+ IClasspathEntry[] current = null;
+ boolean webinf = false;
+ IPath pjpath = c.getProject().getFullPath();
+ try {
+ current = jproj.getRawClasspath();
+ List updatedList = new ArrayList();
+ IPath sourcePath = null;
+ boolean changeNeeded = false;
+ for (int i = 0; i < current.length; i++) {
+ IClasspathEntry entry = current[i];
+ if ((entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) && (entry.getOutputLocation() != null && entry.getOutputLocation().toString().indexOf(J2EEConstants.WEB_INF_CLASSES) == -1)) {
+ //output different than J2EEConstants.WEB_INF_CLASSES
+ sourcePath = entry.getPath();
+ updatedList.add(JavaCore.newSourceEntry(sourcePath));
+ changeNeeded = true;
+ }
+ else
+ updatedList.add(entry);
+ }
+ IPath currentDefaultOutput = null;
+ currentDefaultOutput = jproj.getOutputLocation();
+ if (currentDefaultOutput.toString().indexOf(J2EEConstants.WEB_INF_CLASSES) == -1)
+ changeNeeded = true;
+ if (changeNeeded) {
+ IClasspathEntry[] updated = (IClasspathEntry[])updatedList.toArray(new IClasspathEntry[updatedList.size()]);
+ IPath outdir = pjpath.append(outputFolder);
+ jproj.setRawClasspath(updated,outdir ,null);
+ jproj.save(null, true);
+ }
+ } catch (JavaModelException e) {
+ Logger.getLogger().logError(e);
+ }
+ }
+ // Now just set the property
String existing = c.getMetaProperties().getProperty("java-output-path"); //$NON-NLS-1$
if (existing == null)
setOutputFolder(model, c);
@@ -183,13 +228,6 @@ public final class WebFacetInstallDelegate extends J2EEFacetInstallDelegate impl
c.setMetaProperty("context-root", contextRoot); //$NON-NLS-1$
}
-// private IPath setSourcePropertyIfNeeded(final IDataModel model, final IPath pjpath, IProject project) {
-// IVirtualComponent c = ComponentCore.createComponent(project);
-// if (c.exists()) {
-// return J2EEProjectUtilities.getSourcePathOrFirst(project, null).makeAbsolute();
-// }
-// return pjpath.append(model.getStringProperty(IWebFacetInstallDataModelProperties.SOURCE_FOLDER));
-// }
private IPath setContentPropertyIfNeeded(final IDataModel model, final IPath pjpath, IProject project) {
IVirtualComponent c = ComponentCore.createComponent(project);
--
cgit v1.2.3
From 6180a93a835d39ec3e339ff5f1c03e7cd4548eab Mon Sep 17 00:00:00 2001
From: cbridgha
Date: Wed, 24 Jan 2007 17:55:19 +0000
Subject: [171469] jar dep ordering issue
---
.../org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java
index 6a5606fc3..7b55443e1 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java
@@ -335,7 +335,9 @@ public class JARDependencyPropertiesPage implements IJ2EEDependenciesControl, IC
table.setLayout(tableLayout);
table.setHeaderVisible(true);
table.setLinesVisible(true);
- availableJARsViewer.setSorter(new ViewerSorter());
+
+ // do not create sorter otherwise order will go wrong
+ //availableJARsViewer.setSorter(new ViewerSorter());
// table columns
TableColumn fileNameColumn = new TableColumn(table, SWT.NONE, 0);
--
cgit v1.2.3
From 134c24b373b5905c57f78f31690c4b7dd20caf2f Mon Sep 17 00:00:00 2001
From: cbridgha
Date: Thu, 25 Jan 2007 03:39:56 +0000
Subject: [171469] jar dep ordering issue
---
.../org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java | 1 -
1 file changed, 1 deletion(-)
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java
index 7b55443e1..5363015ac 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java
@@ -40,7 +40,6 @@ import org.eclipse.jface.preference.IPreferencePage;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.jst.j2ee.application.internal.operations.ClassPathSelection;
import org.eclipse.jst.j2ee.application.internal.operations.ClasspathElement;
import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveManifest;
--
cgit v1.2.3
From 991976d020a28dd9ab376d2c4bece08c11958893 Mon Sep 17 00:00:00 2001
From: jsholl
Date: Thu, 25 Jan 2007 17:20:07 +0000
Subject: [162897] Handle multiple selection
---
.../wizard/StringArrayTableWizardSection.java | 24 ++++++++++++++++------
1 file changed, 18 insertions(+), 6 deletions(-)
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/StringArrayTableWizardSection.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/StringArrayTableWizardSection.java
index b75ed2175..a6e346446 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/StringArrayTableWizardSection.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/StringArrayTableWizardSection.java
@@ -11,6 +11,7 @@
package org.eclipse.jst.j2ee.internal.wizard;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import org.eclipse.jface.dialogs.Dialog;
@@ -251,7 +252,8 @@ public class StringArrayTableWizardSection extends Composite {
public void selectionChanged(SelectionChangedEvent event) {
ISelection selection = event.getSelection();
if (editButton != null) {
- editButton.setEnabled(!selection.isEmpty());
+ boolean enabled = ((IStructuredSelection) selection).size() == 1;
+ editButton.setEnabled(enabled);
}
removeButton.setEnabled(!selection.isEmpty());
}
@@ -274,10 +276,14 @@ public class StringArrayTableWizardSection extends Composite {
}
private void handleEditButtonSelected() {
- ISelection selection = viewer.getSelection();
- if (selection.isEmpty() || !(selection instanceof IStructuredSelection))
+ ISelection s = viewer.getSelection();
+ if (!(s instanceof IStructuredSelection))
return;
- Object selectedObj = ((IStructuredSelection) selection).getFirstElement();
+ IStructuredSelection selection = (IStructuredSelection) s;
+ if (selection.size() != 1)
+ return;
+
+ Object selectedObj = selection.getFirstElement();
String[] valuesForText = (String[]) selectedObj;
EditStringArrayDialog dialog = new EditStringArrayDialog(getShell(), title, labelsForText, valuesForText);
@@ -290,8 +296,8 @@ public class StringArrayTableWizardSection extends Composite {
ISelection selection = viewer.getSelection();
if (selection.isEmpty() || !(selection instanceof IStructuredSelection))
return;
- Object selectedObj = ((IStructuredSelection) selection).getFirstElement();
- removeStringArray(selectedObj);
+ List selectedObj = ((IStructuredSelection) selection).toList();
+ removeStringArrays(selectedObj);
}
public void addStringArray(String[] stringArray) {
@@ -327,6 +333,12 @@ public class StringArrayTableWizardSection extends Composite {
valueList.remove(selectedStringArray);
setInput(valueList);
}
+
+ public void removeStringArrays(Collection selectedStringArrays) {
+ List valueList = (List) viewer.getInput();
+ valueList.removeAll(selectedStringArrays);
+ setInput(valueList);
+ }
public void setInput(List input) {
viewer.setInput(input);
--
cgit v1.2.3
From b3e90952a6da7492d98a56c8bc6dcd4ab3759792 Mon Sep 17 00:00:00 2001
From: jsholl
Date: Thu, 25 Jan 2007 17:24:43 +0000
Subject: backing out last change
---
.../wizard/StringArrayTableWizardSection.java | 28 +++++++---------------
1 file changed, 9 insertions(+), 19 deletions(-)
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/StringArrayTableWizardSection.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/StringArrayTableWizardSection.java
index a6e346446..0cd33cb46 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/StringArrayTableWizardSection.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/StringArrayTableWizardSection.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
+ * Copyright (c) 2003, 2006 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
@@ -7,11 +7,11 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ * David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
*******************************************************************************/
package org.eclipse.jst.j2ee.internal.wizard;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
import org.eclipse.jface.dialogs.Dialog;
@@ -119,6 +119,7 @@ public class StringArrayTableWizardSection extends Composite {
// set focus
texts[0].setFocus();
+ Dialog.applyDialogFont(parent);
return composite;
}
@@ -252,8 +253,7 @@ public class StringArrayTableWizardSection extends Composite {
public void selectionChanged(SelectionChangedEvent event) {
ISelection selection = event.getSelection();
if (editButton != null) {
- boolean enabled = ((IStructuredSelection) selection).size() == 1;
- editButton.setEnabled(enabled);
+ editButton.setEnabled(!selection.isEmpty());
}
removeButton.setEnabled(!selection.isEmpty());
}
@@ -276,14 +276,10 @@ public class StringArrayTableWizardSection extends Composite {
}
private void handleEditButtonSelected() {
- ISelection s = viewer.getSelection();
- if (!(s instanceof IStructuredSelection))
- return;
- IStructuredSelection selection = (IStructuredSelection) s;
- if (selection.size() != 1)
+ ISelection selection = viewer.getSelection();
+ if (selection.isEmpty() || !(selection instanceof IStructuredSelection))
return;
-
- Object selectedObj = selection.getFirstElement();
+ Object selectedObj = ((IStructuredSelection) selection).getFirstElement();
String[] valuesForText = (String[]) selectedObj;
EditStringArrayDialog dialog = new EditStringArrayDialog(getShell(), title, labelsForText, valuesForText);
@@ -296,8 +292,8 @@ public class StringArrayTableWizardSection extends Composite {
ISelection selection = viewer.getSelection();
if (selection.isEmpty() || !(selection instanceof IStructuredSelection))
return;
- List selectedObj = ((IStructuredSelection) selection).toList();
- removeStringArrays(selectedObj);
+ Object selectedObj = ((IStructuredSelection) selection).getFirstElement();
+ removeStringArray(selectedObj);
}
public void addStringArray(String[] stringArray) {
@@ -333,12 +329,6 @@ public class StringArrayTableWizardSection extends Composite {
valueList.remove(selectedStringArray);
setInput(valueList);
}
-
- public void removeStringArrays(Collection selectedStringArrays) {
- List valueList = (List) viewer.getInput();
- valueList.removeAll(selectedStringArrays);
- setInput(valueList);
- }
public void setInput(List input) {
viewer.setInput(input);
--
cgit v1.2.3
From f0c2ad3ebf982bbe3231f3cb51414a6b373992f7 Mon Sep 17 00:00:00 2001
From: david_williams
Date: Fri, 26 Jan 2007 00:16:23 +0000
Subject: move to version 1.5.3
---
.../sourceTemplateFeature/feature.xml | 2 +-
features/org.eclipse.jst.enterprise_sdk.feature/feature.xml | 2 +-
features/org.eclipse.jst.enterprise_ui.feature/feature.xml | 2 +-
.../sourceTemplateFeature/feature.xml | 2 +-
features/org.eclipse.jst.enterprise_userdoc.feature/feature.xml | 2 +-
.../org.eclipse.jst.web_core.feature/sourceTemplateFeature/feature.xml | 2 +-
features/org.eclipse.jst.web_sdk.feature/feature.xml | 2 +-
features/org.eclipse.jst.web_ui.feature/feature.xml | 2 +-
.../org.eclipse.jst.web_ui.feature/sourceTemplateFeature/feature.xml | 2 +-
features/org.eclipse.jst.web_userdoc.feature/feature.xml | 2 +-
10 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/features/org.eclipse.jst.enterprise_core.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.jst.enterprise_core.feature/sourceTemplateFeature/feature.xml
index 6db92df6e..7ac5851ee 100644
--- a/features/org.eclipse.jst.enterprise_core.feature/sourceTemplateFeature/feature.xml
+++ b/features/org.eclipse.jst.enterprise_core.feature/sourceTemplateFeature/feature.xml
@@ -2,7 +2,7 @@
About This Content
-
-License
-
-Index
-A
-B
-C
-E
-J
-P
-R
-V
-
-A
-
-
-B
-
-
-
-
-
-
-C
-
-
-
-
-E
-
-
-
-
-
-
-J
-
-
-
-
-P
-
-
-
-
-R
-
-V
-
-
-
-
-
diff --git a/docs/org.eclipse.jst.j2ee.doc.user/org.eclipse.jst.j2ee.doc.userindex.xml b/docs/org.eclipse.jst.j2ee.doc.user/org.eclipse.jst.j2ee.doc.userindex.xml
deleted file mode 100644
index 03dfd7555..000000000
--- a/docs/org.eclipse.jst.j2ee.doc.user/org.eclipse.jst.j2ee.doc.userindex.xml
+++ /dev/null
@@ -1,225 +0,0 @@
-
-
-
-
-
-Project facets
-
-
-
-
-
-
-
-Application client projects
-
-
-
-
-
-
-
-
-
-
-J2EE architecture
-
-
-
-
-
-
-Cyclical dependencies between J2EE modules
-
-
-
-Enterprise application projects
-
-
-
-
-
-
-
-J2EE perspective
-
-
-
-
-
-
-
-
-Project Explorer view in the J2EE perspective
-
-
-
-
-
-
-
-Filters in the Project Explorer view
-
-
-
-
-
-Importing and exporting projects and files
-
-
-
-
-You can export an application client project as a JAR file.
-Enterprise applications are deployed in the form of an EAR file.
-Use the Export wizard to export an enterprise application project into an
-EAR file for deployment.
-You can export a connector project to a RAR file in preparation
-for deploying it to a server.
-Enterprise application projects are deployed into EAR files. You
-can import an enterprise application project by importing it from a deployed
-EAR file.
-Application client projects are deployed as JAR files. You can
-import an application client project that has been deployed into a JAR file
-by using the Import wizard.
-Connector projects are deployed into RAR files. You can import
-a connector project by importing a deployed RAR file.
-
-You can resolve cyclical dependencies after an EAR is imported.J2EE Applications
-
-
-
-The Java 2 Platform, Enterprise Edition (J2EE) provides
-a standard for developing multitier, enterprise services.
-The J2EE perspective includes workbench views that you can use
-when developing resources for enterprise applications, EJB modules, Web modules,
-application client modules, and connector projects or modules.
-While developing J2EE applications in the J2EE perspective, the
-Project Explorer view is your main view of your J2EE projects and resources.
-The workbench can work with many different types of projects. The
-following topics cover creating and managing some of the types of projects
-related to J2EE development.
-
-The following reference material on J2EE is available:Working with projects
-
-
-
-
-An enterprise application project contains the hierarchy of resources
-that are required to deploy a J2EE enterprise application, often referred
-to as an EAR file.
-
-When you develop J2EE applications, the workbench requires that
-you specify the server runtime environments for your J2EE projects. The target
-server is specified during project creation and import, and it can be changed
-in the project properties. The target server setting is the default mechanism
-for setting the class path for J2EE projects.
-These topics cover how to import files and projects into the workbench
-and export files and projects to disk.Reference
-
-
-
-
-This table lists the validators that are available for the different
-project types and gives a brief description of each validator.
-You may encounter these common error messages when you validate
-your projects.
-This topic outlines current known limitations and restrictions
-for J2EE tooling.Limitations of J2EE development tools
-
-
-
-Spaces
-not supported in JAR URIs within an enterprise application
Enterprise application
-project names should not contain DBCS characters
Javaâ„¢ build
-path updates when removing the dependency on a Utility JAR file
When
-removing the dependency on a Utility JAR, the corresponding Java project
-will be removed from the Java build path only if the dependent JAR
-is still referenced by the EAR project. For example, suppose you create a
-J2EE 1.3 Web project and EAR along with the JUnit Java Example project. Next, add the JUnit
-project as a Utility JAR in the EAR, then add JUnit as a Java JAR
-Dependency of the Web project. If you then wanted to remove the dependency
-between JUnit and the Web project, remove the Java JAR Dependency from the Web project
-first, then remove the Utility JAR from the EAR. Follow this order to ensure
-that this works correctly.Java JAR Dependencies page fails to update Java build
-path
The Java JAR Dependencies page is not synchronized with
-the Java build
-path page in the project properties dialog. Therefore, a change applied in
-one may not be reflected in the other within the same dialog session. There
-are also some instances where flipping back and forth between the pages will
-cause the update from one to cancel out the update from another when the OK button
-is clicked or if the Apply button is clicked prior
-to the OK button. Typically this will appear as if
-a JAR dependency was added, but the project did not get added to the Java build
-path. The workaround is to reopen the properties dialogs, switch to the JAR
-dependency page, clear and re-select the dependent JAR files, then click OK.'Invalid project description'
-error when using a non-default project location for a new J2EE project
When
-you create a new J2EE project (including Java, enterprise application, Dynamic Web,
-EJB, application client, and connector projects), you cannot use a project
-location that is already used by another project in the workbench. If you
-choose a project location that is used by another project, the wizard displays
-an "Invalid project description" error dialog or message. If after you receive
-this message you then select a valid project location by clicking the Browse
-button, the project creation will still not finish. The workaround is to click
-Cancel and reopen the project creation wizard.
-
-
-
-
-
-
-
-
-
-
-
Common validation errors and solutions
-
-
-
-
-
-
-
-
-
-
-
-
-
-Message prefix
-
-Message
-
-Explanation
-
-
-
-
-Application Client validator
-
-
-
-
-CHKJ1000
-
-Validation failed because the application client file
-is not valid. Ensure that the deployment descriptor is valid.
-
-The application-client.xml file cannot be loaded. The
-project metadata cannot be initialized from the application-client.xml file.
-
-
-
-
-
-
-
-
-
-EAR validator
-
-
-
-
-CHKJ1001
-
-The EAR project {0} is invalid.
-
-The application.xml file cannot be loaded. The project
-metadata cannot be initialized from the application.xml file.
-
-
-
-
-
-
-
-
-EJB validator
-
-
-
-
-CHKJ2019
-
-The {0} key class must be serializable at runtime.
-
-The EJB is compliant with the EJB specification. This
-message is a warning that problems may occur. The warning appears when a type
-needs to be serializable at runtime and when serializability cannot be verified
-at compile-time. A type is serializable if, at runtime, it is a primitive
-type, a primitive array, a remote object, or if it implements java.io.Serializable.
-This message flags java.lang.Object and it cannot be disabled. You can either
-make the object serializable at compile-time or ignore the warning.
-
-
-
-
-CHKJ2412
-
-The return type must be serializable at runtime.
-
-
-
-
-CHKJ2413
-
-Argument {1} of {0} must be serializable at runtime.
-
-
-
-
-CHKJ2102
-
-Either a finder descriptor, or a matching custom finder method on the
-{0} class, must be defined.
-
-A finder descriptor must exist for every finder method.
-
-
-
-
-CHKJ2873
-
-Migrate this bean's datasource binding to a CMP Connection Factory
-binding.
-
-
-
-
-
-
-CHKJ2874
-
-Migrate this EJB module's default datasource binding to a default CMP
-Connection Factory binding.
-
-
-
-
-
-
-CHKJ2875E
-
-<ejb-client-jar> {0} must exist in every EAR file
-that contains this EJB module.
-
-If <ejb-client-jar> is specified
-in ejb-jar.xml, a corresponding EJB client project must
-contain the home and remote interfaces and any other types that a client will
-need. If these types are all contained in a single EJB project, delete the <ejb-client-jar> line
-in the deployment descriptor. Otherwise, ensure that the EJB client project
-exists, is open, and is a project utility JAR in every EAR that uses this
-EJB project as a module.
-
-
-
-
-CHKJ2905
-
-The EJB validator did not run because ejb-jar.xml could not be loaded.
-Run the XML validator for more information.
-
-CHKJ2905 means that the project's metadata could not be initialized
-from ejb-jar.xml.
-
-
-
-
-
-
-
-
-JSP validator
-
-
-
-
-IWAW0482
-
-No valid JspTranslator
-
-There is a path problem with the project; the JSP Validator
-needs access to the WAS runtime code. If IWAW0482E appears on all web projects,
-check the Variable or JRE path:
-
-
-
-
-
-
-WAR validator
-
-
-
-
-CHKJ3008
-
-Missing or invalid WAR file.
-
-The web.xml file cannot be loaded. The project metadata
-cannot be initialized from the web.xml file.
-
-
-
-
-
-
-
-
-XML validator
-
-
-
-
-
-
-
-
-The content of element type "ejb-jar" is incomplete, it must match
-"(description?,display-name?,small-icon?,large-icon?,enterprise-beans,assembly-descriptor?,ejb-client-jar?)".
-
-The EJB 1.1 and 2.0 specifications mandate that at least one enterprise
-bean must exist in an EJB .jar file. This error message is normal during development
-of EJB .jar files and can be ignored until you perform a production action,
-such as exporting or deploying code. Define at least one enterprise bean in
-the project.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
The validator also includes an extension point to allow other validators
-to be plugged into the WSDL validation to provide additional verification
-of the WSDL file. Through this mechanism, interoperability is checked by validating
-a WSDL file against WS-I Profiles. J2EE Validators
-
-
-
-
-
-
-
-
-
-
-
-
-
-Validator name
-
-Description
-
-
-
-
-Application Client Validator
-
-The Application Client Validator validates
-the following Application Client project resources:
-
-
-
-
-
-
-Connector Validator
-
-The Connector validator checks for invalid J2EE specification
-levels in connector projects.
-
-
-
-
-DTD Validator
-
-The DTD validator determines whether the
-current state of a DTD is semantically valid. XML files are validated according
-to the XML specification Extensible Markup Language (XML) 1.0 from
-the W3C Web site. As well, the DTD validator checks for errors such as references
-to entities and elements that do not exist.
-
-
-
-
-EAR Validator
-
-The EAR Validator validates the following:
-
-
-
-
-
-
-
-EJB Validator
-
-The EJB Validator verifies that enterprise
-beans contained in an EJB project comply with the Sun Enterprise JavaBeansâ„¢ Specifications
-(1.1, 2.0, and 2.1), depending on the level of the bean. Code validation for
-the EJB 1.0 specification is not supported.
-
-
-
-
-
-
-EL Syntax Validator
-
-
-
-
-
-
-HTML Syntax Validator
-
-The HTML Syntax Validator validates HTML
-basic syntax and HTML DTD compliance in the following Web project resources:
-
-
-
-
-
-
-
-JSP Syntax Validator
-
-The JSP Syntax Validator validates JSP files
-in a project by translating them into the corresponding Java code
-and then checking the Java code for compile errors.
-
-
-
-
-War Validator
-
-The War Validator validates the following
-web project resources:
-
-
-
-
-
-
-WSDL Validator
-
-The WSDL validator checks the following in WSDL files:
-
-
-
-The validator also includes an extension point to allow other validators
-to be plugged into the WSDL validation to provide additional verification
-of the WSDL file. Through this mechanism, interoperability is checked by validating
-a WSDL file against WS-I Profiles.
-
-
-WS-I Message Validator
-
-WS-I Message validator checks SOAP messages against
-WS-I Profiles. A user can capture and verify SOAP messages using the TCP/IP
-Monitor. The validator checks a message log that is saved as a project resource
-(.wsimsg). The log conforms to a format as specified by WS-I.
-
-
-
-
-XML Schema Validator
-
-The XML schema validator determines whether
-the current state of an XML schema file is semantically valid. XML schemas
-are validated according to the XML Schema specification XML Schema Part 1: Structures from the W3C Web site.
-
-
-
-
-XML Validator
-
-The XML validator ensures that an XML file
-is well-formed. It also verifies if an XML file is valid - that is, it follows
-the constraints established in the DTD or XML schema the XML file is associated
-with.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
You can find out more about the requirements and limitations for each
-facet by right-clicking the facet name and then clicking Adding a facet to a J2EE project
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Changing the version of a facet
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Changing the Java compiler version for a J2EE
-project
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Creating an application client project
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Correcting cyclical dependencies after an EAR
-is imported
-
-
-
-
-
-
-
-
-
-
-Creating an enterprise application project
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Exporting an application client project
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Exporting an enterprise application into an
-EAR file
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Exporting connector projects to RAR files
-
-
-
-
-
-
-
-
-
-
Importing an application client JAR file
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Importing an enterprise application EAR file
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Importing a connector project RAR file
-
-
-
-
-
-
-
-
-
-
-
Creating a connector project
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Specifying target servers for J2EE projects
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Validating code in enterprise applications
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Disabling validation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Overriding global validation preferences
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Manually validating code
-
-
-
-
-
-
-
-
-
-
-
-
-Selecting code validators
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-About This Content
-
-License
-
-About This Content
-
-License
-
-About This Content
-
-License
-
-
-b) in the case of each subsequent Contributor:Eclipse Foundation Software User Agreement
-Usage Of Content
-Applicable Licenses
-
-
-
-
-Cryptography
-
-b) in the case of each subsequent Contributor:Eclipse Foundation Software User Agreement
-Usage Of Content
-Applicable Licenses
-
-
-
-
-Cryptography
-
-b) in the case of each subsequent Contributor:Eclipse Foundation Software User Agreement
-Usage Of Content
-
-Applicable Licenses
-
-
-
-
-
-
-
-
-
-
-Cryptography
-
-About This Content
-
-License
-
-Source Code
-
-b) in the case of each subsequent Contributor:Eclipse Foundation Software User Agreement
-Usage Of Content
-Applicable Licenses
-
-
-
-
-Cryptography
-
-b) in the case of each subsequent Contributor:Eclipse Foundation Software User Agreement
-Usage Of Content
-Applicable Licenses
-
-
-
-
-Cryptography
-
-b) in the case of each subsequent Contributor:Eclipse Foundation Software User Agreement
-Usage Of Content
-
-Applicable Licenses
-
-
-
-
-
-
-
-
-
-
-Cryptography
-
-About This Content
-
-License
-
-Source Code
-
-b) in the case of each subsequent Contributor:Eclipse Foundation Software User Agreement
-Usage Of Content
-Applicable Licenses
-
-
-
-
-Cryptography
-
-b) in the case of each subsequent Contributor:Eclipse Foundation Software User Agreement
-Usage Of Content
-Applicable Licenses
-
-
-
-
-Cryptography
-
-b) in the case of each subsequent Contributor:Eclipse Foundation Software User Agreement
-Usage Of Content
-
-Applicable Licenses
-
-
-
-
-
-
-
-
-
-
-Cryptography
-
-About This Content
-
-License
-
-Source Code
-
-b) in the case of each subsequent Contributor:Eclipse Foundation Software User Agreement
-Usage Of Content
-Applicable Licenses
-
-
-
-
-Cryptography
-
-b) in the case of each subsequent Contributor:Eclipse Foundation Software User Agreement
-Usage Of Content
-Applicable Licenses
-
-
-
-
-Cryptography
-
-b) in the case of each subsequent Contributor:Eclipse Foundation Software User Agreement
-Usage Of Content
-
-Applicable Licenses
-
-
-
-
-
-
-
-
-
-
-Cryptography
-
-About This Content
-
-License
-
-Source Code
-
-b) in the case of each subsequent Contributor:Eclipse Foundation Software User Agreement
-Usage Of Content
-Applicable Licenses
-
-
-
-
-Cryptography
-About This Content
-
-License
-
-project
has annotation support enabled on it.
- *
- * @return
- */
- public boolean hasAnnotationSupport(IProject project) {
- return AnnotationsControllerManager.INSTANCE.hasAnnotationsBuilder(project);
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.annotations.controller/controller/org/eclipse/jst/common/internal/annotations/controller/AnnotationsControllerManager.java b/plugins/org.eclipse.jst.common.annotations.controller/controller/org/eclipse/jst/common/internal/annotations/controller/AnnotationsControllerManager.java
deleted file mode 100644
index 59a6f3d05..000000000
--- a/plugins/org.eclipse.jst.common.annotations.controller/controller/org/eclipse/jst/common/internal/annotations/controller/AnnotationsControllerManager.java
+++ /dev/null
@@ -1,220 +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
- *******************************************************************************/
-/*
- * Created on Mar 25, 2004
- */
-package org.eclipse.jst.common.internal.annotations.controller;
-
-import java.util.Iterator;
-import java.util.Map;
-import java.util.SortedSet;
-import java.util.TreeSet;
-import java.util.WeakHashMap;
-
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jem.util.RegistryReader;
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jst.common.internal.annotations.registry.AnnotationsControllerResources;
-import org.eclipse.wst.common.frameworks.internal.enablement.EnablementIdentifier;
-import org.eclipse.wst.common.frameworks.internal.enablement.EnablementIdentifierEvent;
-import org.eclipse.wst.common.frameworks.internal.enablement.EnablementManager;
-import org.eclipse.wst.common.frameworks.internal.enablement.IEnablementIdentifier;
-import org.eclipse.wst.common.frameworks.internal.enablement.IEnablementIdentifierListener;
-import org.eclipse.wst.common.frameworks.internal.enablement.Identifiable;
-import org.eclipse.wst.common.frameworks.internal.enablement.IdentifiableComparator;
-import org.eclipse.wst.common.internal.emf.utilities.Assert;
-
-
-/**
- * AnnotationsControllerRegistry for reading annotations controller extensions
- */
-public class AnnotationsControllerManager extends RegistryReader implements IEnablementIdentifierListener {
-
- public static final AnnotationsControllerManager INSTANCE = new AnnotationsControllerManager();
-
- static {
- INSTANCE.readRegistry();
- }
-
- private SortedSet descriptors;
-
- private Map annotationsControllers;
-
- public static class Descriptor implements Identifiable {
-
- public static final String ANNOTATIONS_CONTROLLER = "annotationsController"; //$NON-NLS-1$
-
- public static final String ATT_ID = "id"; //$NON-NLS-1$
-
- public static final String CLASS = "class"; //$NON-NLS-1$
-
- public static final String BUILDER_ID = "builderID"; //$NON-NLS-1$
-
- private final IConfigurationElement configElement;
- private final String ID;
- private String builderID;
- private final int loadOrder;
- private static int loadOrderCounter = 0;
-
- public Descriptor(IConfigurationElement aConfigElement) {
- super();
- Assert.isLegal(ANNOTATIONS_CONTROLLER.equals(aConfigElement.getName()), AnnotationsControllerResources.AnnotationsControllerManager_ERROR_0);
- configElement = aConfigElement;
- ID = configElement.getAttribute(ATT_ID);
- builderID = configElement.getAttribute(BUILDER_ID);
- loadOrder = loadOrderCounter++;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.wst.common.frameworks.internal.enablement.Identifiable#getID()
- */
- public String getID() {
- return ID;
- }
-
- public String getBuilderID() {
- return builderID;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.wst.common.frameworks.internal.enablement.Identifiable#getLoadOrder()
- */
- public int getLoadOrder() {
- return loadOrder;
- }
-
- public AnnotationsController createInstance() {
- AnnotationsController instance = null;
- try {
- instance = (AnnotationsController) configElement.createExecutableExtension(CLASS);
- } catch (CoreException e) {
- Logger.getLogger().logError(e);
- }
- return instance;
- }
- }
-
- /**
- * Default constructor
- */
- public AnnotationsControllerManager() {
- super("org.eclipse.jst.common.annotations.controller", "annotationsController"); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * read extension element
- */
- public boolean readElement(IConfigurationElement element) {
- if (!element.getName().equals(Descriptor.ANNOTATIONS_CONTROLLER))
- return false;
- addAnnotationController(new Descriptor(element));
- return true;
- }
-
- /**
- * @param descriptor
- */
- protected void addAnnotationController(Descriptor descriptor) {
- EnablementManager.INSTANCE.getIdentifier(descriptor.getID(), null).addIdentifierListener(this);
- getDescriptors().add(descriptor);
- }
-
- /**
- * @return Returns the annotationControllers.
- */
- protected SortedSet getDescriptors() {
- if (descriptors == null)
- descriptors = new TreeSet(IdentifiableComparator.getInstance());
- return descriptors;
- }
-
- public Descriptor getDescriptor(IProject project) {
- for (Iterator iter = getDescriptors().iterator(); iter.hasNext();) {
- Descriptor descriptor = (Descriptor) iter.next();
- IEnablementIdentifier identifier = EnablementManager.INSTANCE.getIdentifier(descriptor.getID(), project);
- if (identifier.isEnabled())
- return descriptor;
- }
- return null;
- }
-
- /**
- * Determine if any annotations are supported
- */
- public boolean isAnyAnnotationsSupported() {
- return getDescriptors().size() > 0;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.wst.common.frameworks.internal.enablement.IEnablementIdentifierListener#identifierChanged(org.eclipse.wst.common.frameworks.internal.enablement.EnablementIdentifierEvent)
- */
- public void identifierChanged(EnablementIdentifierEvent identifierEvent) {
- IProject project = ((EnablementIdentifier) identifierEvent.getIdentifier()).getProject();
- getAnnotationsControllers().remove(project);
- }
-
- /**
- * Return the annotations controller for the specified project
- */
- public AnnotationsController getAnnotationsController(IProject project) {
- AnnotationsController controller = (AnnotationsController) getAnnotationsControllers().get(project);
- if (controller == null) {
- if (!hasAnnotationsBuilder(project))
- return null;
- Descriptor descriptor = getDescriptor(project);
- if (descriptor != null)
- getAnnotationsControllers().put(project, (controller = descriptor.createInstance()));
- }
-
- return controller;
- }
-
- /**
- * @return Returns the annotationControllers.
- */
- public Map getAnnotationsControllers() {
- if (annotationsControllers == null)
- annotationsControllers = new WeakHashMap();
- return annotationsControllers;
- }
-
- public boolean hasAnnotationsBuilder(IProject project) {
- Descriptor annotationsDescriptor = getDescriptor(project);
- if (annotationsDescriptor==null)
- return false;
- return hasBuilder(project, annotationsDescriptor.getBuilderID());
- }
-
- public boolean hasBuilder(IProject project, String builderName) {
- try {
- ICommand[] builders = project.getDescription().getBuildSpec();
- for (int i = 0; i < builders.length; i++) {
- ICommand builder = builders[i];
- if (builder != null) {
- if (builder.getBuilderName().equals(builderName))
- return true;
- }
- }
- } catch (Exception e) {
- // Do nothing
- }
- return false;
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.annotations.controller/controller/org/eclipse/jst/common/internal/annotations/registry/AnnotationTagDynamicInitializer.java b/plugins/org.eclipse.jst.common.annotations.controller/controller/org/eclipse/jst/common/internal/annotations/registry/AnnotationTagDynamicInitializer.java
deleted file mode 100644
index 122209c56..000000000
--- a/plugins/org.eclipse.jst.common.annotations.controller/controller/org/eclipse/jst/common/internal/annotations/registry/AnnotationTagDynamicInitializer.java
+++ /dev/null
@@ -1,23 +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
- *******************************************************************************/
-package org.eclipse.jst.common.internal.annotations.registry;
-
-/**
- * This method will be called by the AnnotationTagRegistry
- * when it is time to register the tags for a given
- * TagSet. An AnnotationTagDynamicInitializer defined
- * using the annotationTagDynamicInitializer.
- *
- * @see com.ibm.wtp.annotations.registry.AnnotationTagRegistry
- */
-public interface AnnotationTagDynamicInitializer {
- void registerTags();
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.annotations.controller/controller/org/eclipse/jst/common/internal/annotations/registry/AnnotationTagRegistry.java b/plugins/org.eclipse.jst.common.annotations.controller/controller/org/eclipse/jst/common/internal/annotations/registry/AnnotationTagRegistry.java
deleted file mode 100644
index 249d7d6d3..000000000
--- a/plugins/org.eclipse.jst.common.annotations.controller/controller/org/eclipse/jst/common/internal/annotations/registry/AnnotationTagRegistry.java
+++ /dev/null
@@ -1,512 +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
- *******************************************************************************/
-/*
- * Created on Aug 22, 2003
- *
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-package org.eclipse.jst.common.internal.annotations.registry;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.Bundle;
-
-/**
- * @author kelleyp
- *
- * Singleton that parses the annotation tag information from the annotation-taghandler extension
- * point, and provides an interface for accessing it for other classes. Largely taken from the
- * AnnotationProcessor builder.
- */
-
-public class AnnotationTagRegistry {
-
- /**
- * Set to true once we've read in the annotation tag information from the plugin registry.
- */
- private static boolean initialized = false;
- private static final String ANNOTATION_TAG_INFO = "org.eclipse.jst.common.annotations.controller.AnnotationTagInfo"; //$NON-NLS-1$
-
- /**
- * List of tag specs for all of the tags.
- */
- private static ArrayList allTagSpecs = new ArrayList() {
- final private static long serialVersionUID = 8683452581122892190L;
-
- private void scopeAll(Collection c, boolean forAdd) {
- Iterator iter = c.iterator();
- while (iter.hasNext()) {
- TagSpec ts = (TagSpec) iter.next();
- if (forAdd)
- addScope(ts);
- else
- removeScope(ts);
- }
- }
-
- private void addScope(TagSpec ts) {
- if (ts == null)
- return;
- switch (ts.getScope()) {
- case TagSpec.FIELD :
- fieldTags.put(ts.getTagName(), ts);
- break;
- case TagSpec.METHOD :
- methodTags.put(ts.getTagName(), ts);
- break;
- case TagSpec.TYPE :
- typeTags.put(ts.getTagName(), ts);
- break;
- }
- }
-
- private void removeScope(TagSpec ts) {
- if (ts == null)
- return;
- switch (ts.getScope()) {
- case TagSpec.FIELD :
- fieldTags.remove(ts.getTagName());
- break;
- case TagSpec.METHOD :
- methodTags.remove(ts.getTagName());
- break;
- case TagSpec.TYPE :
- typeTags.remove(ts.getTagName());
- break;
- }
- }
-
- public void add(int index, Object element) {
- super.add(index, element);
- addScope((TagSpec)element);
- }
-
- public boolean add(Object o) {
- TagSpec newTagSpec = (TagSpec)o;
- // search for already existing tag spec with same name and same tag set name
- for (int i=0; iname
as the attribute name.
- *
- * @param name
- * Name for the attribute. Must not be null.
- * @throws IllegalArgumentException
- * if name is null.
- */
- public TagAttribSpec(String name) throws IllegalArgumentException {
- this(name, null);
- }
-
- public TagAttribSpec(String name, String hlpKey) {
- setAttribName(name);
- setHelpKey(hlpKey);
- }
-
- /**
- * Sets the type of this attribute.
- *
- * @param t
- * TEXT | BOOLEAN
- */
- public void setType(int t) {
- type = t;
- }
-
- /**
- * Sets the type of this attribute.
- *
- * @param typename
- * String representation, should be text or boolean.
- */
- public void setType(String typename) {
- type = typeNameToType(typename);
- }
-
- public int getType() {
- return type;
- }
-
- public boolean valueIsJavaType() {
- return type == Type.JAVATYPE;
- }
-
- public boolean valueIsText() {
- return type == Type.TEXT;
- }
-
- public boolean valueIsBool() {
- return type == Type.BOOLEAN;
- }
-
- /**
- * @return Name of the attribute.
- */
- public String getAttribName() {
- return attribName;
- }
-
- /**
- * Sets the attribute name. This can not be null.
- *
- * @param name
- * New name for the attribute.
- * @throws IllegalArgumentException
- * if the name is null.
- */
- public void setAttribName(String name) throws IllegalArgumentException {
- if (name == null) {
- throw new IllegalArgumentException(AnnotationsCoreResources.TagAttribSpec_6);
- }
- attribName = name;
- }
-
- /**
- *
- * @return true if this is a required attribute.
- */
- public boolean isRequired() {
- return (flags & FLG_REQUIRED) != 0;
- }
-
- /**
- * Sets the required flag for this attribute.
- */
- public void setRequired() {
- flags |= FLG_REQUIRED;
- }
-
- /**
- * Clears the required flag for this attribute.
- *
- */
- public void clearRequired() {
- flags &= (~FLG_REQUIRED);
- }
-
- /**
- *
- * @return The help key for this tag attribute. Should never return null.
- */
- public String getTextKey(int aType) {
- if (aType != TagSpec.HELP_TEXT) {
- return null;
- }
-
- if (helpKey == null) {
- helpKey = defaultHelpKey();
- }
- return helpKey;
- }
-
- /**
- * Formats the help text so it includes type and use information.
- */
- public String transformLocalizedText(String txt) {
- if (txt == null)
- return txt;
- StringBuffer buf = new StringBuffer(txt.length() + 50);
-
- buf.append("Type: "); //$NON-NLS-1$
- buf.append(typeToTypeName(type));
- buf.append(", Use: "); //$NON-NLS-1$
- if (this.isRequired()) {
- buf.append("required"); //$NON-NLS-1$
- } else {
- buf.append("optional"); //$NON-NLS-1$
- }
- if (this.isUnique()) {
- buf.append(", unique:scope: "); //$NON-NLS-1$
- buf.append(TagAttribSpec.uniqueScopeToString(this.getUnique().getScope()));
- }
- buf.append("attName
. Case insensitive.
- *
- * @param attName
- * Name to look for
- * @return A TagAttribSpec, or null if none was found.
- */
- public TagAttribSpec attributeNamed(String attName) {
- Iterator i = getAttributes().iterator();
-
- while (i.hasNext()) {
- TagAttribSpec tas = (TagAttribSpec) i.next();
-
- if (attName.equalsIgnoreCase(tas.getAttribName())) {
- return tas;
- }
- }
- return null;
-
- }
-
- /**
- * @return Returns the declaringPlugin.
- */
- public Bundle getBundle() {
- return bundle;
- }
-
- /**
- * @param declaringPlugin
- * The declaringPlugin to set.
- */
- protected void setBundle(Bundle bundle) {
- this.bundle = bundle;
- }
-
- /**
- * @return Returns the resourceBundle.
- */
- public ResourceBundle getResourceBundle() {
- if (resourceBundle == null && !attemptedToFindResourceBundle) {
- attemptedToFindResourceBundle = true;
- Bundle aBundle = getBundle();
- if (aBundle != null)
- resourceBundle = Platform.getResourceBundle(bundle);
- }
- return resourceBundle;
- }
-
- /**
- * @param resourceBundle
- * The resourceBundle to set.
- */
- public void setResourceBundle(ResourceBundle resourceBundle) {
- attemptedToFindResourceBundle = false;
- this.resourceBundle = resourceBundle;
- }
-
- /**
- * @return Returns the validValuesHelper.
- */
- public AttributeValuesHelper getValidValuesHelper() {
- if (validValuesHelper == null && getTagSetDescriptor() != null)
- setValidValuesHelper(getTagSetDescriptor().getValidValuesHelper());
- return validValuesHelper;
- }
-
- /**
- * @param validValuesHelper
- * The validValuesHelper to set.
- */
- public void setValidValuesHelper(AttributeValuesHelper validValuesHelper) {
- this.validValuesHelper = validValuesHelper;
- }
-
- public String getHelpKey() {
- if (helpKey == null)
- helpKey = computeHelpKey();
- return helpKey;
- }
-
- /**
- * @return
- */
- protected String computeHelpKey() {
- return "tagh." + getTagName(); //$NON-NLS-1$
- }
-
- public void setHelpKey(String helpKey) {
- this.helpKey = helpKey;
- }
-
- public String lookupTagHelp() throws MissingResourceException {
- ResourceBundle b = getResourceBundle();
- if (b == null)
- return null;
- String key = getHelpKey();
- String val = b.getString(getHelpKey());
- if (val == key)
- val = null;
- return val;
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.annotations.controller/controller/org/eclipse/jst/common/internal/annotations/registry/TagsetDescriptor.java b/plugins/org.eclipse.jst.common.annotations.controller/controller/org/eclipse/jst/common/internal/annotations/registry/TagsetDescriptor.java
deleted file mode 100644
index 8e4c4da60..000000000
--- a/plugins/org.eclipse.jst.common.annotations.controller/controller/org/eclipse/jst/common/internal/annotations/registry/TagsetDescriptor.java
+++ /dev/null
@@ -1,146 +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
- *******************************************************************************/
-/*
- * Created on Apr 7, 2004
- *
- * To change the template for this generated file go to
- * Window - Preferences - Java - Code Generation - Code and Comments
- */
-package org.eclipse.jst.common.internal.annotations.registry;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-
-
-/**
- * @author mdelder
- *
- * To change the template for this generated type comment go to Window - Preferences - Java - Code
- * Generation - Code and Comments
- */
-public class TagsetDescriptor {
-
- public static final String TAGSET = "AnnotationTagSet"; //$NON-NLS-1$
- public static final String ATT_NAME = "name"; //$NON-NLS-1$
- public static final String ATT_DISPLAY_NAME = "displayName"; //$NON-NLS-1$
- public static final String ATT_DESCRIPTION = "description"; //$NON-NLS-1$
- public static final String ATT_PARENT_TAGSET = "parentTagset"; //$NON-NLS-1$
- public static final String ATT_VALID_VALUES_HELPER = "validValuesHelper"; //$NON-NLS-1$
-
- private final IConfigurationElement element;
-
- protected String name;
- protected String displayName;
- protected String description;
- protected String parentTagset;
- protected AttributeValuesHelper validValuesHelper;
-
- protected TagsetDescriptor() {
- element = null;
- }
-
- public TagsetDescriptor(IConfigurationElement element) {
- this.element = element;
- init();
- }
-
- /**
- *
- */
- private void init() {
- this.name = this.element.getAttribute(ATT_NAME);
- this.displayName = this.element.getAttribute(ATT_DISPLAY_NAME);
- this.description = this.element.getAttribute(ATT_DESCRIPTION);
- this.parentTagset = this.element.getAttribute(ATT_PARENT_TAGSET);
- // set the valid values helper if there is one
- try {
- String validValuesHelperName = this.element.getAttribute(ATT_VALID_VALUES_HELPER);
- if (validValuesHelperName != null) {
- Class loaded = Class.forName(validValuesHelperName);
- this.validValuesHelper = (AttributeValuesHelper) loaded.newInstance();
- }
- } catch (Exception e) {
- // Do nothing
- }
- }
-
- /**
- * @return Returns the description.
- */
- public String getDescription() {
- return description;
- }
-
- /**
- * @return Returns the displayName.
- */
- public String getDisplayName() {
- return displayName;
- }
-
- /**
- * @return Returns the element.
- */
- public IConfigurationElement getElement() {
- return element;
- }
-
- /**
- * @return Returns the name.
- */
- public String getName() {
- return name;
- }
-
- /**
- * @return Returns the parentTagset.
- */
- public String getParentTagset() {
- return parentTagset;
- }
-
- public TagsetDescriptor[] getDirectDependents() {
-
- if (getName() == null || getName().equals("")) //$NON-NLS-1$
- return new TagsetDescriptor[0];
-
- List dependents = new ArrayList();
-
- TagsetDescriptor descriptor = null;
- for (Iterator itr = AnnotationTagsetRegistry.INSTANCE.getDescriptors().iterator(); itr.hasNext();) {
- descriptor = (TagsetDescriptor) itr.next();
- if (getName().equals(descriptor.getParentTagset()))
- dependents.add(descriptor);
- }
-
- TagsetDescriptor[] descriptors = new TagsetDescriptor[dependents.size()];
- dependents.toArray(descriptors);
- return descriptors;
- }
-
- /**
- * @return Returns the validValuesHelper.
- */
- public AttributeValuesHelper getValidValuesHelper() {
- return validValuesHelper;
- }
-
- /**
- * @param validValuesHelper
- * The validValuesHelper to set.
- */
- public void setValidValuesHelper(AttributeValuesHelper validValuesHelper) {
- this.validValuesHelper = validValuesHelper;
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.annotations.controller/plugin.properties b/plugins/org.eclipse.jst.common.annotations.controller/plugin.properties
deleted file mode 100644
index 475ed7eb5..000000000
--- a/plugins/org.eclipse.jst.common.annotations.controller/plugin.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-Annotations_Controller=Annotations Controller
-annotation_tag_info=annotation tag info
-annotation_tagset=annotation tagset
-annotationTagDynamicInitializer=annotationTagDynamicInitializer
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.annotations.controller/plugin.xml b/plugins/org.eclipse.jst.common.annotations.controller/plugin.xml
deleted file mode 100644
index 990fda021..000000000
--- a/plugins/org.eclipse.jst.common.annotations.controller/plugin.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-About This Content
-
-License
-
-parse()
method, event methods are called for interesting features in
- * the parse. ( like a SAX ContentHandler )
- *
- * @author Pat Kelley
- */
-public interface TagParseEventHandler {
-
- /**
- * Called when the annotation tag is encountered. This will always be the first piece of content
- * encountered. Followed by a endOfTag( ) call when the end of the tag is reached.
- */
- public void annotationTag(Token tag);
-
- /**
- * Called when the entire annotation for a single tag has been parsed.
- *
- * @param pos
- * Position in the stream of the end of the annotation.
- */
- public void endOfTag(int pos);
-
- /**
- * Called for every attribute setting encountered for an annotation tag.
- *
- * @param name
- * Name of the attribute.
- * @param equalsPosition
- * Source position of the equals sign, or -1 if no equals sign was found.
- * @param value
- * Value of the attribute, with any quotes stripped off. Will be zero length token if
- * no attribute was found.
- */
- public void attribute(Token name, int equalsPosition, Token value);
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.annotations.core/src/org/eclipse/jst/common/internal/annotations/core/Token.java b/plugins/org.eclipse.jst.common.annotations.core/src/org/eclipse/jst/common/internal/annotations/core/Token.java
deleted file mode 100644
index 9d0310236..000000000
--- a/plugins/org.eclipse.jst.common.annotations.core/src/org/eclipse/jst/common/internal/annotations/core/Token.java
+++ /dev/null
@@ -1,103 +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
- *******************************************************************************/
-/*
- * Created on Nov 11, 2003
- *
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-package org.eclipse.jst.common.internal.annotations.core;
-
-/**
- * A string, and the range it was taken from in the source file. The range is inclusive. (ie, with
- * source "ABCD", the beginning and end for the Token "BC" would be (1,2) )
- *
- * @author Pat Kelley
- *
- * To change the template for this generated type comment go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-public class Token {
- private String text;
- private int beginning;
- private int end;
-
-
-
- /**
- * @return Position in original source of the first character of this token.
- */
- public int getBeginning() {
- return beginning;
- }
-
- /**
- * @return Position in the original source of the last character of this token.
- */
- public int getEnd() {
- return end;
- }
-
- /**
- * @return The token string.
- */
- public String getText() {
- return text;
- }
-
- /**
- * @param i
- * A source position
- */
- public void setBeginning(int i) {
- beginning = i;
- }
-
- /**
- * @param i
- * A source position.
- */
- public void setEnd(int i) {
- end = i;
- }
-
- /**
- * @param string
- */
- public void setText(String string) {
- text = string;
- }
-
- public int length() {
- return text.length();
- }
-
- /**
- * Tests whether srcPos
comes immediately after the last character in this token.
- *
- * @param srcPos
- * A position in the original source the token came from.
- * @return true if srcPos comes immediately after this token.
- */
- public boolean immediatelyPrecedes(int srcPos) {
- return end + 1 == srcPos;
- }
-
- /**
- * Tests whether srcPos is within the original source range range of the token.
- *
- * @param srcPos
- * @return
- */
- public boolean contains(int srcPos) {
- return srcPos >= beginning && srcPos <= end;
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.annotations.ui/.classpath b/plugins/org.eclipse.jst.common.annotations.ui/.classpath
deleted file mode 100644
index ccf4d764f..000000000
--- a/plugins/org.eclipse.jst.common.annotations.ui/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-
-About This Content
-
-License
-
-null
- */
-// public void setProposalInfo(ProposalInfo proposalInfo) {
-// fProposalInfo= proposalInfo;
-// }
-
- /**
- * Returns the additional proposal info, or null
if none exists.
- *
- * @return the additional proposal info, or null
if none exists
- */
-// protected ProposalInfo getProposalInfo() {
-// return fProposalInfo;
-// }
-
- /**
- * Sets the cursor position relative to the insertion offset. By default this is the length of
- * the completion string (Cursor positioned after the completion)
- *
- * @param cursorPosition The cursorPosition to set
- */
- public void setCursorPosition(int cursorPosition) {
- Assert.isTrue(cursorPosition >= 0);
- fCursorPosition= cursorPosition;
- }
-
- protected int getCursorPosition() {
- return fCursorPosition;
- }
-
- /*
- * @see ICompletionProposal#apply
- */
- public final void apply(IDocument document) {
- // not used any longer
- apply(document, (char) 0, getReplacementOffset() + getReplacementLength());
- }
-
- /*
- * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension#apply(org.eclipse.jface.text.IDocument, char, int)
- */
- public void apply(IDocument document, char trigger, int offset) {
- try {
- // patch replacement length
- int delta= offset - (getReplacementOffset() + getReplacementLength());
- if (delta > 0)
- setReplacementLength(getReplacementLength() + delta);
-
- boolean isSmartTrigger= isSmartTrigger(trigger);
-
- String replacement;
- if (isSmartTrigger || trigger == (char) 0) {
- replacement= getReplacementString();
- } else {
- StringBuffer buffer= new StringBuffer(getReplacementString());
-
- // fix for PR #5533. Assumes that no eating takes place.
- if ((getCursorPosition() > 0 && getCursorPosition() <= buffer.length() && buffer.charAt(getCursorPosition() - 1) != trigger)) {
- buffer.insert(getCursorPosition(), trigger);
- setCursorPosition(getCursorPosition() + 1);
- }
-
- replacement= buffer.toString();
- setReplacementString(replacement);
- }
-
- // reference position just at the end of the document change.
- int referenceOffset= getReplacementOffset() + getReplacementLength();
- final ReferenceTracker referenceTracker= new ReferenceTracker();
- referenceTracker.preReplace(document, referenceOffset);
-
- replace(document, getReplacementOffset(), getReplacementLength(), replacement);
-
- referenceOffset= referenceTracker.postReplace(document);
- setReplacementOffset(referenceOffset - (replacement == null ? 0 : replacement.length()));
-
- // PR 47097
- if (isSmartTrigger)
- handleSmartTrigger(document, trigger, referenceOffset);
-
- } catch (BadLocationException x) {
- // ignore
- }
- }
-
- private boolean isSmartTrigger(char trigger) {
- return trigger == ';' && getBooleanPreference(PreferenceConstants.EDITOR_SMART_SEMICOLON)
- || trigger == '{' && getBooleanPreference(PreferenceConstants.EDITOR_SMART_OPENING_BRACE);
- }
-
- private boolean getBooleanPreference(String preferenceKey) {
- String value = PreferenceConstants.getPreference(preferenceKey, getProject());
- if (value != null)
- return Boolean.valueOf(value).booleanValue();
- return false;
- }
-
- private void handleSmartTrigger(IDocument document, char trigger, int referenceOffset) throws BadLocationException {
- DocumentCommand cmd= new DocumentCommand() {
- };
-
- cmd.offset= referenceOffset;
- cmd.length= 0;
- cmd.text= Character.toString(trigger);
- cmd.doit= true;
- cmd.shiftsCaret= true;
- cmd.caretOffset= getReplacementOffset() + getCursorPosition();
-
-// SmartSemicolonAutoEditStrategy strategy= new SmartSemicolonAutoEditStrategy(IJavaPartitions.JAVA_PARTITIONING);
-// strategy.customizeDocumentCommand(document, cmd);
-
- replace(document, cmd.offset, cmd.length, cmd.text);
- setCursorPosition(cmd.caretOffset - getReplacementOffset() + cmd.text.length());
- }
-
- protected final void replace(IDocument document, int offset, int length, String string) throws BadLocationException {
- if (!document.get(offset, length).equals(string))
- document.replace(offset, length, string);
- }
-
- /*
- * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension1#apply(org.eclipse.jface.text.ITextViewer, char, int, int)
- */
- public void apply(ITextViewer viewer, char trigger, int stateMask, int offset) {
-
- IDocument document= viewer.getDocument();
- if (fTextViewer == null)
- fTextViewer= viewer;
-
- // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=96059
- // don't apply the proposal if for some reason we're not valid any longer
- if (!isInJavadoc() && !validate(document, offset, null)) {
- setCursorPosition(offset - getReplacementOffset());
- if (trigger != '\0') {
- try {
- document.replace(offset, 0, String.valueOf(trigger));
- setCursorPosition(getCursorPosition() + 1);
- if (trigger == '(' && autocloseBrackets()) {
- document.replace(getReplacementOffset() + getCursorPosition(), 0, ")"); //$NON-NLS-1$
- setUpLinkedMode(document, ')');
- }
- } catch (BadLocationException x) {
- // ignore
- }
- }
- return;
- }
-
- // don't eat if not in preferences, XOR with modifier key 1 (Ctrl)
- // but: if there is a selection, replace it!
- Point selection= viewer.getSelectedRange();
- fToggleEating= (stateMask & SWT.MOD1) != 0;
- int newLength= selection.x + selection.y - getReplacementOffset();
- if ((insertCompletion() ^ fToggleEating) && newLength >= 0)
- setReplacementLength(newLength);
-
- apply(document, trigger, offset);
- fToggleEating= false;
- }
-
- /**
- * Returns true
if the proposal is within javadoc, false
- * otherwise.
- *
- * @return true
if the proposal is within javadoc, false
otherwise
- */
- protected boolean isInJavadoc(){
- return fIsInJavadoc;
- }
-
- /**
- * Sets the javadoc attribute.
- *
- * @param isInJavadoc true
if the proposal is within javadoc
- */
- protected void setInJavadoc(boolean isInJavadoc) {
- fIsInJavadoc= isInJavadoc;
- }
-
- /*
- * @see ICompletionProposal#getSelection
- */
- public Point getSelection(IDocument document) {
- return new Point(getReplacementOffset() + getCursorPosition(), 0);
- }
-
- /*
- * @see ICompletionProposal#getContextInformation()
- */
- public IContextInformation getContextInformation() {
- return fContextInformation;
- }
-
- /**
- * Sets the context information.
- * @param contextInformation The context information associated with this proposal
- */
- public void setContextInformation(IContextInformation contextInformation) {
- fContextInformation= contextInformation;
- }
-
- /*
- * @see ICompletionProposal#getDisplayString()
- */
- public String getDisplayString() {
- return fDisplayString;
- }
-
- /*
- * @see ICompletionProposal#getAdditionalProposalInfo()
- */
- public String getAdditionalProposalInfo() {
-// if (getProposalInfo() != null) {
-// String info= getProposalInfo().getInfo(null);
-// if (info != null && info.length() > 0) {
-// StringBuffer buffer= new StringBuffer();
-// HTMLPrinter.insertPageProlog(buffer, 0, getStyleSheetURL());
-// buffer.append(info);
-// HTMLPrinter.addPageEpilog(buffer);
-// info= buffer.toString();
-// }
-// return info;
-// }
- return null;
- }
-
- /*
- * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension5#getAdditionalProposalInfo(org.eclipse.core.runtime.IProgressMonitor)
- */
- public Object getAdditionalProposalInfo(IProgressMonitor monitor) {
-// if (getProposalInfo() != null) {
-// String info= getProposalInfo().getInfo(monitor);
-// if (info != null && info.length() > 0) {
-// StringBuffer buffer= new StringBuffer();
-// HTMLPrinter.insertPageProlog(buffer, 0, getStyleSheetURL());
-// buffer.append(info);
-// HTMLPrinter.addPageEpilog(buffer);
-// info= buffer.toString();
-// }
-// return info;
-// }
- return null;
- }
-
- /**
- * Returns the style sheet URL.
- *
- * @since 3.1
- */
- protected URL getStyleSheetURL() {
- if (fStyleSheetURL == null) {
-
- Bundle bundle= Platform.getBundle(JavaUI.ID_PLUGIN);
- fStyleSheetURL= bundle.getEntry("/JavadocHoverStyleSheet.css"); //$NON-NLS-1$
- if (fStyleSheetURL != null) {
- try {
- fStyleSheetURL= FileLocator.toFileURL(fStyleSheetURL);
- } catch (IOException ex) {
- ex.printStackTrace();
- }
- }
- }
- return fStyleSheetURL;
- }
-
- /*
- * @see ICompletionProposalExtension#getContextInformationPosition()
- */
- public int getContextInformationPosition() {
- if (getContextInformation() == null)
- return getReplacementOffset() - 1;
- return getReplacementOffset() + getCursorPosition();
- }
-
- /**
- * Gets the replacement offset.
- * @return Returns a int
- */
- public int getReplacementOffset() {
- return fReplacementOffset;
- }
-
- /**
- * Sets the replacement offset.
- * @param replacementOffset The replacement offset to set
- */
- public void setReplacementOffset(int replacementOffset) {
- Assert.isTrue(replacementOffset >= 0);
- fReplacementOffset= replacementOffset;
- }
-
- /*
- * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension3#getCompletionOffset()
- */
- public int getPrefixCompletionStart(IDocument document, int completionOffset) {
- return getReplacementOffset();
- }
-
- /**
- * Gets the replacement length.
- * @return Returns a int
- */
- public int getReplacementLength() {
- return fReplacementLength;
- }
-
- /**
- * Sets the replacement length.
- * @param replacementLength The replacementLength to set
- */
- public void setReplacementLength(int replacementLength) {
- Assert.isTrue(replacementLength >= 0);
- fReplacementLength= replacementLength;
- }
-
- /**
- * Gets the replacement string.
- * @return Returns a String
- */
- public String getReplacementString() {
- return fReplacementString;
- }
-
- /**
- * Sets the replacement string.
- * @param replacementString The replacement string to set
- */
- public void setReplacementString(String replacementString) {
- Assert.isNotNull(replacementString);
- fReplacementString= replacementString;
- }
-
- /*
- * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension3#getReplacementText()
- */
- public CharSequence getPrefixCompletionText(IDocument document, int completionOffset) {
- if (!isCamelCaseMatching())
- return getReplacementString();
-
- String prefix= getPrefix(document, completionOffset);
- return getCamelCaseCompound(prefix, getReplacementString());
- }
-
- /*
- * @see ICompletionProposal#getImage()
- */
- public Image getImage() {
- return fImage;
- }
-
- /**
- * Sets the image.
- * @param image The image to set
- */
- public void setImage(Image image) {
- fImage= image;
- }
-
- /*
- * @see ICompletionProposalExtension#isValidFor(IDocument, int)
- */
- public boolean isValidFor(IDocument document, int offset) {
- return validate(document, offset, null);
- }
-
- /*
- * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#validate(org.eclipse.jface.text.IDocument, int, org.eclipse.jface.text.DocumentEvent)
- */
- public boolean validate(IDocument document, int offset, DocumentEvent event) {
-
- if (offset < getReplacementOffset())
- return false;
-
- boolean validated= isValidPrefix(getPrefix(document, offset));
-
- if (validated && event != null) {
- // adapt replacement range to document change
- int delta= (event.fText == null ? 0 : event.fText.length()) - event.fLength;
- final int newLength= Math.max(getReplacementLength() + delta, 0);
- setReplacementLength(newLength);
- }
-
- return validated;
- }
-
- /**
- * Checks whether prefix
is a valid prefix for this proposal. Usually, while code
- * completion is in progress, the user types and edits the prefix in the document in order to
- * filter the proposal list. From {@link #validate(IDocument, int, DocumentEvent) }, the
- * current prefix in the document is extracted and this method is called to find out whether the
- * proposal is still valid.
- * prefix
is a prefix of the proposal's
- * {@link #getDisplayString() display string} using the {@link #isPrefix(String, String) }
- * method.
- * true
if prefix
is a valid prefix of this proposal
- */
- protected boolean isValidPrefix(String prefix) {
- /*
- * See http://dev.eclipse.org/bugs/show_bug.cgi?id=17667
- * why we do not use the replacement string.
- * String word= fReplacementString;
- */
- return isPrefix(prefix, getDisplayString());
- }
-
- /**
- * Gets the proposal's relevance.
- * @return Returns a int
- */
- public int getRelevance() {
- return fRelevance;
- }
-
- /**
- * Sets the proposal's relevance.
- * @param relevance The relevance to set
- */
- public void setRelevance(int relevance) {
- fRelevance= relevance;
- }
-
- /**
- * Returns the text in document
from {@link #getReplacementOffset()} to
- * offset
. Returns the empty string if offset
is before the
- * replacement offset or if an exception occurs when accessing the document.
- *
- * @since 3.2
- */
- protected String getPrefix(IDocument document, int offset) {
- try {
- int length= offset - getReplacementOffset();
- if (length > 0)
- return document.get(getReplacementOffset(), length);
- } catch (BadLocationException x) {
- }
- return ""; //$NON-NLS-1$
- }
-
- /**
- * Case insensitive comparison of prefix
with the start of string
.
- * Returns false
if prefix
is longer than string
- *
- * @since 3.2
- */
- protected boolean isPrefix(String prefix, String string) {
- if (prefix == null || string ==null || prefix.length() > string.length())
- return false;
- String start= string.substring(0, prefix.length());
- return start.equalsIgnoreCase(prefix) || isCamelCaseMatching() && CharOperation.camelCaseMatch(prefix.toCharArray(), string.toCharArray());
- }
-
- /**
- * Matches prefix
against string
and replaces the matched region
- * by prefix. Case is preserved as much as possible. This method returns string
if camel case completion
- * is disabled. Examples when camel case completion is enabled:
- *
- *
- *
- * @param prefix the prefix to match against
- * @param string the string to match
- * @return a compound of prefix and any postfix taken from string
- * @since 3.2
- */
- protected final String getCamelCaseCompound(String prefix, String string) {
- if (prefix.length() > string.length())
- return string;
-
- // a normal prefix - no camel case logic at all
- String start= string.substring(0, prefix.length());
- if (start.equalsIgnoreCase(prefix))
- return string;
-
- final char[] patternChars= prefix.toCharArray();
- final char[] stringChars= string.toCharArray();
-
- for (int i= 1; i <= stringChars.length; i++)
- if (CharOperation.camelCaseMatch(patternChars, 0, patternChars.length, stringChars, 0, i))
- return prefix + string.substring(i);
-
- // Not a camel case match at all.
- // This should not happen -> stay with the default behavior
- return string;
- }
-
- /**
- * Returns true if camel case matching is enabled.
- *
- * @since 3.2
- */
- protected boolean isCamelCaseMatching() {
- IJavaProject project= getProject();
- String value;
- if (project == null)
- value= JavaCore.getOption(JavaCore.CODEASSIST_CAMEL_CASE_MATCH);
- else
- value= project.getOption(JavaCore.CODEASSIST_CAMEL_CASE_MATCH, true);
-
- return JavaCore.ENABLED.equals(value);
- }
-
- private IJavaProject getProject() {
- // TODO Auto-generated method stub
- return null;
- }
-
-
- private static boolean insertCompletion() {
- IPreferenceStore preference= PreferenceConstants.getPreferenceStore();
- return preference.getBoolean(PreferenceConstants.CODEASSIST_INSERT_COMPLETION);
- }
-
- private static Color getForegroundColor(StyledText text) {
-
- IPreferenceStore preference= PreferenceConstants.getPreferenceStore();
- RGB rgb= PreferenceConverter.getColor(preference, PreferenceConstants.CODEASSIST_REPLACEMENT_FOREGROUND);
- return JavaUI.getColorManager().getColor(rgb);
- }
-
- private static Color getBackgroundColor(StyledText text) {
-
- IPreferenceStore preference= PreferenceConstants.getPreferenceStore();
- RGB rgb= PreferenceConverter.getColor(preference, PreferenceConstants.CODEASSIST_REPLACEMENT_BACKGROUND);
- return JavaUI.getColorManager().getColor(rgb);
- }
-
- private void repairPresentation(ITextViewer viewer) {
- if (fRememberedStyleRange != null) {
- if (viewer instanceof ITextViewerExtension2) {
- // attempts to reduce the redraw area
- ITextViewerExtension2 viewer2= (ITextViewerExtension2) viewer;
-
- if (viewer instanceof ITextViewerExtension5) {
-
- ITextViewerExtension5 extension= (ITextViewerExtension5) viewer;
- IRegion modelRange= extension.widgetRange2ModelRange(new Region(fRememberedStyleRange.start, fRememberedStyleRange.length));
- if (modelRange != null)
- viewer2.invalidateTextPresentation(modelRange.getOffset(), modelRange.getLength());
-
- } else {
- viewer2.invalidateTextPresentation(fRememberedStyleRange.start + viewer.getVisibleRegion().getOffset(), fRememberedStyleRange.length);
- }
-
- } else
- viewer.invalidateTextPresentation();
- }
- }
-
- private void updateStyle(ITextViewer viewer) {
-
- StyledText text= viewer.getTextWidget();
- if (text == null || text.isDisposed())
- return;
-
- int widgetCaret= text.getCaretOffset();
-
- int modelCaret= 0;
- if (viewer instanceof ITextViewerExtension5) {
- ITextViewerExtension5 extension= (ITextViewerExtension5) viewer;
- modelCaret= extension.widgetOffset2ModelOffset(widgetCaret);
- } else {
- IRegion visibleRegion= viewer.getVisibleRegion();
- modelCaret= widgetCaret + visibleRegion.getOffset();
- }
-
- if (modelCaret >= getReplacementOffset() + getReplacementLength()) {
- repairPresentation(viewer);
- return;
- }
-
- int offset= widgetCaret;
- int length= getReplacementOffset() + getReplacementLength() - modelCaret;
-
- Color foreground= getForegroundColor(text);
- Color background= getBackgroundColor(text);
-
- StyleRange range= text.getStyleRangeAtOffset(offset);
- int fontStyle= range != null ? range.fontStyle : SWT.NORMAL;
-
- repairPresentation(viewer);
- fRememberedStyleRange= new StyleRange(offset, length, foreground, background, fontStyle);
- if (range != null) {
- fRememberedStyleRange.strikeout= range.strikeout;
- fRememberedStyleRange.underline= range.underline;
- }
-
- // http://dev.eclipse.org/bugs/show_bug.cgi?id=34754
- try {
- text.setStyleRange(fRememberedStyleRange);
- } catch (IllegalArgumentException x) {
- // catching exception as offset + length might be outside of the text widget
- fRememberedStyleRange= null;
- }
- }
-
- /*
- * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#selected(ITextViewer, boolean)
- */
- public void selected(ITextViewer viewer, boolean smartToggle) {
- if (!insertCompletion() ^ smartToggle)
- updateStyle(viewer);
- else {
- repairPresentation(viewer);
- fRememberedStyleRange= null;
- }
- }
-
- /*
- * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#unselected(ITextViewer)
- */
- public void unselected(ITextViewer viewer) {
- repairPresentation(viewer);
- fRememberedStyleRange= null;
- }
-
- /*
- * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension3#getInformationControlCreator()
- */
- public IInformationControlCreator getInformationControlCreator() {
-// if (!BrowserInformationControl.isAvailable(null))
-// return null;
-//
-// if (fCreator == null) {
-// fCreator= new AbstractReusableInformationControlCreator() {
-//
-// /*
-// * @see org.eclipse.jdt.internal.ui.text.java.hover.AbstractReusableInformationControlCreator#doCreateInformationControl(org.eclipse.swt.widgets.Shell)
-// */
-// public IInformationControl doCreateInformationControl(Shell parent) {
-// return new BrowserInformationControl(parent, SWT.NO_TRIM | SWT.TOOL, SWT.NONE, null);
-// }
-// };
-// }
-// return fCreator;
- return null;
- }
-
- public String getSortString() {
- return fSortString;
- }
-
- protected void setSortString(String string) {
- fSortString= string;
- }
-
- protected ITextViewer getTextViewer() {
- return fTextViewer;
- }
-
- protected boolean isToggleEating() {
- return fToggleEating;
- }
-
- /**
- * Sets up a simple linked mode at {@link #getCursorPosition()} and an exit policy that will
- * exit the mode when closingCharacter
is typed and an exit position at
- * getCursorPosition() + 1
.
- *
- * @param document the document
- * @param closingCharacter the exit character
- */
- protected void setUpLinkedMode(IDocument document, char closingCharacter) {
- if (getTextViewer() != null && autocloseBrackets()) {
- int offset= getReplacementOffset() + getCursorPosition();
- int exit= getReplacementOffset() + getReplacementString().length();
- try {
- LinkedPositionGroup group= new LinkedPositionGroup();
- group.addPosition(new LinkedPosition(document, offset, 0, LinkedPositionGroup.NO_STOP));
-
- LinkedModeModel model= new LinkedModeModel();
- model.addGroup(group);
- model.forceInstall();
-
- LinkedModeUI ui= new EditorLinkedModeUI(model, getTextViewer());
- ui.setSimpleMode(true);
- ui.setExitPolicy(new ExitPolicy(closingCharacter, document));
- ui.setExitPosition(getTextViewer(), exit, 0, Integer.MAX_VALUE);
- ui.setCyclingMode(LinkedModeUI.CYCLE_NEVER);
- ui.enter();
- } catch (BadLocationException x) {
- x.printStackTrace();
- }
- }
- }
-
- protected boolean autocloseBrackets() {
- IPreferenceStore preferenceStore= PreferenceConstants.getPreferenceStore();
- return preferenceStore.getBoolean(PreferenceConstants.EDITOR_CLOSE_BRACKETS);
- }
-
- protected void setDisplayString(String string) {
- fDisplayString= string;
- }
-
- /*
- * @see java.lang.Object#toString()
- */
- public String toString() {
- return getDisplayString();
- }
-
- /**
- * Returns the java element proposed by the receiver, possibly null
.
- *
- * @return the java element proposed by the receiver, possibly null
- */
- public IJavaElement getJavaElement() {
-// if (getProposalInfo() != null)
-// try {
-// return getProposalInfo().getJavaElement();
-// } catch (JavaModelException x) {
-// JavaPlugin.log(x);
-// }
- return null;
- }
-}
diff --git a/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/AnnotationTagCompletionProc.java b/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/AnnotationTagCompletionProc.java
deleted file mode 100644
index 43bd2a4ae..000000000
--- a/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/AnnotationTagCompletionProc.java
+++ /dev/null
@@ -1,728 +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
- *******************************************************************************/
-/*
- * Created on Mar 9, 2004
- *
- * To change the template for this generated file go to
- * Window - Preferences - Java - Code Generation - Code and Comments
- */
-package org.eclipse.jst.common.internal.annotations.ui;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.MissingResourceException;
-import java.util.Set;
-import java.util.TreeSet;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IField;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jdt.ui.text.java.IJavaCompletionProposal;
-import org.eclipse.jdt.ui.text.java.IJavadocCompletionProcessor;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jst.common.internal.annotations.core.AnnotationTagParser;
-import org.eclipse.jst.common.internal.annotations.core.TagParseEventHandler;
-import org.eclipse.jst.common.internal.annotations.core.Token;
-import org.eclipse.jst.common.internal.annotations.registry.AnnotationTagRegistry;
-import org.eclipse.jst.common.internal.annotations.registry.AttributeValueProposalHelper;
-import org.eclipse.jst.common.internal.annotations.registry.AttributeValuesHelper;
-import org.eclipse.jst.common.internal.annotations.registry.TagAttribSpec;
-import org.eclipse.jst.common.internal.annotations.registry.TagSpec;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.part.FileEditorInput;
-
-
-/**
- * @author Pat Kelley
- *
- * To change the template for this generated type comment go to Window - Preferences - Java - Code
- * Generation - Code and Comments
- */
-public class AnnotationTagCompletionProc implements IJavadocCompletionProcessor, TagParseEventHandler {
- private static final String[] BOOLEAN_VALID_VALUES = new String[]{"false", "true"}; //$NON-NLS-1$ //$NON-NLS-2$
- ICompilationUnit m_icu;
-
- IDocument m_doc;
-
- List m_tags;
-
- // Instance variables active when maybeCompleteAttribute is live.
- Token m_tagName;
-
- /**
- * Set of all attributes names encountered. Only live when maybeCompleteAttribute is live.
- */
- Set m_attSet = new TreeSet();
-
- /**
- * List of Attribute. Only live when maybeCompleAttribute is live.
- */
- List m_attributes = new ArrayList();
-
- AnnotationTagParser m_parser = new AnnotationTagParser(this);
-
- /**
- * Scope of the tag. TagSpec.TYPE | TagSpec.METHOD | TagSpec.FIELD. Not valid until
- * getAnnotationArea has been called for a completions request, and only then if
- * getAnnotationArea() did not return null.
- */
- int m_tagScope;
-
- public AnnotationTagCompletionProc() {
- initTagInfo();
- }
-
- private void initTagInfo() {
- if (m_tags == null)
- m_tags = AnnotationTagRegistry.getAllTagSpecs();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.ui.text.java.IJavadocCompletionProcessor#computeContextInformation(org.eclipse.jdt.core.ICompilationUnit,
- * int)
- */
- public IContextInformation[] computeContextInformation(ICompilationUnit cu, int offset) {
- // TODO Auto-generated method stub
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.ui.text.java.IJavadocCompletionProcessor#computeCompletionProposals(org.eclipse.jdt.core.ICompilationUnit,
- * int, int, int)
- */
- public IJavaCompletionProposal[] computeCompletionProposals(ICompilationUnit cu, int offset, int length, int flags) {
- IEditorInput editorInput = new FileEditorInput((IFile) cu.getResource());
-
- // Set up completion processor state.
- m_doc = JavaUI.getDocumentProvider().getDocument(editorInput);
- m_icu = cu;
-
- try {
- AnnotationArea area = getAnnotationArea(offset);
-
- if (area == null) {
- return null;
- }
-
- // Check for tag completion first. ( the easier case )
- String tsf = getTagSoFarIfNotCompleted(area.beginOffset, offset);
-
- if (tsf != null) {
- return getTagCompletionsFor(tsf, area, length);
- }
-
- // Ach, have to try the harder case now, where we parse the
- // annotation
- return maybeCompleteAttribute(area, offset);
-
- } catch (JavaModelException e) {
- // Silently fail.
- return null;
- } catch (BadLocationException ex) {
- return null;
- }
- }
-
- private IJavaCompletionProposal[] maybeCompleteAttribute(AnnotationArea area, int cursorPos) throws BadLocationException {
- m_attSet.clear();
- m_attributes.clear();
-
- m_parser.setParserInput(m_doc.get(area.beginOffset, area.length()));
- m_parser.parse();
-
- TagSpec ts = null;
- if (m_tagName!=null)
- ts = getTagSpecForTagName(m_tagName.getText());
-
- // Do we even recognize this tag?
- if (ts == null) {
- return null;
- }
-
- // Loop through and determine whether the cursor is within a attribute
- // assignment, or between assignements.
- Attribute target = null;
- Attribute last = null;
- Attribute before = null;
- Attribute a = null;
- boolean between = false;
- int rCurPos = area.relativeCursorPos(cursorPos);
- Iterator i = m_attributes.iterator();
- while (i.hasNext()) {
- a = (Attribute) i.next();
-
- if (a.contains(rCurPos)) {
- target = a;
- break;
- } else if (last != null) {
- // See if the cursor is between, but not directly adjacent to
- // the last two attributes.
- if (rCurPos > last.maxExtent() + 1 && rCurPos < a.minExtent() - 1) {
- between = true;
- break;
- } else if (a.immediatelyPrecedes(rCurPos)) {
- before = a;
- break;
- }
- }
- last = a;
- }
-
- if (target == null) {
- if (between) {
- // If we're between attributes, suggest all possible attributes.
- return attributeCompletionsFor(ts, cursorPos, 0, "", true); //$NON-NLS-1$
- } else if (before != null) {
- // We're right after the attribute named in 'before', so set the
- // target to it, and fall
- // through to the target handling code.
- target = before;
- } else {
- // not between and not immediately after an attribute. We are
- // past the end of the parsed annotation.
- // Only offer suggestions if it looks like the last annotation
- // attribute is valid.
- if (a == null) {
- // No annotations attributes, suggest everything.
- return attributeCompletionsFor(ts, cursorPos, 0, "", true); //$NON-NLS-1$
- } else if (rCurPos > a.maxExtent()) {
- if (a.hasAssignment() && a.hasValue()) {
- // Last annotation was good, and we're past it, so do
- // completions for anything
- return attributeCompletionsFor(ts, cursorPos, 0, "", true); //$NON-NLS-1$
- } else if (a.hasAssignment())
- return attributeValidValuesFor(ts, a, area, cursorPos);
- else
- return attributeCompletionsFor(ts, cursorPos - a.name.length(), 0, a.name.getText(), true);
- } else {
- // Didn't match anything, not past the end - we're probably
- // the first attribute
- // being added to the tag.
- return attributeCompletionsFor(ts, cursorPos, 0, "", true); //$NON-NLS-1$
- }
- }
- }
-
- // Completion for a partial attribute name?
- if (target.name.immediatelyPrecedes(rCurPos)) {
- return attributeCompletionsFor(ts, area.relativeToAbs(target.name.getBeginning()), target.name.length(), target.name.getText(), !target.hasAssignment());
- }
-
- // Are we in the middle of a name?
- if (target.name.contains(rCurPos)) {
- // We've opted to replace the entire name for this case, which seems
- // to make the most sense.
- return attributeCompletionsFor(ts, area.relativeToAbs(target.name.getBeginning()), target.name.length(), target.name.getText().substring(0, rCurPos - target.name.getBeginning()), !target.hasAssignment());
- }
-
- // If we got this far, we're either in a value, or really confused.
- // try and return valid values or bail?
- if (a.value != null && (a.value.contains(rCurPos) || (target.hasAssignment() && area.relativeCursorPos(cursorPos) > a.name.getBeginning())))
- return attributeValidValuesFor(ts, a, area, cursorPos);
- return attributeCompletionsFor(ts, cursorPos, 0, "", true); //$NON-NLS-1$
- }
-
- /**
- * @return valid values for the attribute
- */
- private IJavaCompletionProposal[] attributeValidValuesFor(TagSpec ts, Attribute a, AnnotationArea area, int cursorPos) {
- TagAttribSpec tas = ts.attributeNamed(a.name.getText());
- if (tas == null)
- return null;
- String[] validValues = getValidValues(tas, a, area);
- String partialValue = calculatePartialValue(a, area, cursorPos);
- int valueOffset = calculateValueOffset(a, area, cursorPos);
- if (validValues == null || validValues.length == 0)
- return createCustomAttributeCompletionProposals(ts, tas, partialValue, valueOffset, a.value.getText(), area.javaElement);
- return createAttributeCompletionProposals(partialValue, valueOffset, validValues);
- }
-
- /**
- * @param ts
- * @param tas
- * @param partialValue
- * @param valueOffset
- * @param value
- * @param javaElement
- * @return
- */
- private IJavaCompletionProposal[] createCustomAttributeCompletionProposals(TagSpec ts, TagAttribSpec tas, String partialValue, int valueOffset, String value, IJavaElement javaElement) {
- AttributeValuesHelper helper = ts.getValidValuesHelper();
- if (helper == null)
- return null;
- AttributeValueProposalHelper[] proposalHelpers = helper.getAttributeValueProposalHelpers(tas, partialValue, valueOffset, javaElement);
- if (proposalHelpers == null || proposalHelpers.length == 0)
- return null;
- IJavaCompletionProposal[] proposals = new IJavaCompletionProposal[proposalHelpers.length];
- AnnotationTagProposal proposal;
- for (int i = 0; i < proposalHelpers.length; i++) {
- proposal = new AnnotationTagProposal(proposalHelpers[i]);
- //proposal.setPartialValueString(partialValue);
- proposals[i] = proposal;
- }
- return proposals;
- }
-
- private IJavaCompletionProposal[] createAttributeCompletionProposals(String partialValue, int valueOffset, String[] validValues) {
- List resultingValues = new ArrayList();
- for (int i = 0; i < validValues.length; i++) {
- String rplString = validValues[i];
- if (partialValue != null && !rplString.startsWith(partialValue))
- continue;
- AnnotationTagProposal prop = new AnnotationTagProposal(rplString, valueOffset, 0, null, rplString, 90);
- prop.setEnsureQuoted(true);
- //prop.setPartialValueString(partialValue);
- resultingValues.add(prop);
- }
- if (resultingValues.isEmpty())
- return null;
- return (IJavaCompletionProposal[]) resultingValues.toArray(new IJavaCompletionProposal[resultingValues.size()]);
- }
-
- private String[] getValidValues(TagAttribSpec tas, Attribute a, AnnotationArea area) {
- String[] validValues = tas.getValidValues();
- if (validValues == null || validValues.length == 0) {
- AttributeValuesHelper helper = tas.getTagSpec().getValidValuesHelper();
- if (helper == null)
- return null;
- validValues = helper.getValidValues(tas, area.javaElement);
- if ((validValues == null || validValues.length == 0) && tas.valueIsBool())
- validValues = BOOLEAN_VALID_VALUES;
- }
- return validValues;
- }
-
- /**
- * @param a
- * @param area
- * @param cursorPos
- * @return
- */
- private int calculateValueOffset(Attribute a, AnnotationArea area, int cursorPos) {
- if (a.value == null)
- return cursorPos;
- int nameEnd = a.name.getEnd();
- int valBeg = a.value.getBeginning();
- if (valBeg > nameEnd + 2)
- return area.relativeToAbs(nameEnd + 2); //Value too far away to be correct.
- return area.relativeToAbs(valBeg);
- }
-
- /**
- * @param a
- * @param area
- * @param cursorPos
- * @return
- */
- private String calculatePartialValue(Attribute a, AnnotationArea area, int cursorPos) {
- if (a.value == null)
- return null;
- int nameEnd = a.name.getEnd();
- int valueBeg = a.value.getBeginning();
- if (valueBeg > nameEnd + 2)
- return null; //Value is too far away so it must not be part of this attribute.
- int relativePos = area.relativeCursorPos(cursorPos);
- if (a.value.contains(relativePos)) {
- boolean hasBeginQuote = valueBeg - nameEnd == 2;
- String value = a.value.getText();
- int end = relativePos - valueBeg;
- if (hasBeginQuote)
- end--;
- if (end > -1) {
- int length = value.length();
- if (end < length)
- return value.substring(0, end);
- else if (end == length)
- return value;
- }
- }
- return null;
- }
-
- /**
- * @param tagName
- * @return
- */
- private TagSpec getTagSpecForTagName(String tagName) {
- String simpleName = tagName;
- if (tagName != null && tagName.length() > 0 && tagName.charAt(0) == '@')
- simpleName = tagName.length() == 2 ? "" : tagName.substring(1); //$NON-NLS-1$
- switch (m_tagScope) {
- case TagSpec.TYPE :
- return AnnotationTagRegistry.getTypeTag(simpleName);
- case TagSpec.METHOD :
- return AnnotationTagRegistry.getMethodTag(simpleName);
- case TagSpec.FIELD :
- return AnnotationTagRegistry.getFieldTag(simpleName);
- }
- return null;
- }
-
- private IJavaCompletionProposal[] attributeCompletionsFor(TagSpec ts, int replaceOffset, int replaceLength, String partialAttributeName, boolean appendEquals) {
- Iterator i = ts.getAttributes().iterator();
- List props = new ArrayList();
- while (i.hasNext()) {
- TagAttribSpec tas = (TagAttribSpec) i.next();
- String aname = tas.getAttribName();
-
- // Don't suggest attributes that have already been specified.
- if (!m_attSet.contains(aname)) {
- if (aname.startsWith(partialAttributeName)) {
- String rtxt = appendEquals ? aname + '=' : aname;
- AnnotationTagProposal prop = new AnnotationTagProposal(rtxt, replaceOffset, replaceLength, null, aname, 90);
- prop.setHelpText(lookupAttHelp(tas));
- props.add(prop);
- }
- }
- }
- if (props.isEmpty()) {
- return null;
- }
- return (IJavaCompletionProposal[]) props.toArray(new IJavaCompletionProposal[props.size()]);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.ibm.ws.rd.annotations.TagParseEventHandler#annotationTag(com.ibm.ws.rd.annotations.Token)
- */
- public void annotationTag(Token tag) {
- m_tagName = tag;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.ibm.ws.rd.annotations.TagParseEventHandler#endOfTag(int)
- */
- public void endOfTag(int pos) {
- // Do nothing
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.ibm.ws.rd.annotations.TagParseEventHandler#attribute(com.ibm.ws.rd.annotations.Token,
- * int, com.ibm.ws.rd.annotations.Token)
- */
- public void attribute(Token name, int equalsPosition, Token value) {
- m_attributes.add(new Attribute(name, equalsPosition, value));
- m_attSet.add(name.getText());
- }
-
- private String getReplacementForTag(TagSpec ts, int beginIndex) {
- StringBuffer bud = new StringBuffer(32);
-
- bud.append('@');
- bud.append(ts.getTagName());
-
- String prefix = getArrayPrefixForMultipleAttribs(beginIndex);
- List attributes = ts.getAttributes();
-
- for (int i = 0; i < attributes.size(); i++) {
- TagAttribSpec tas = (TagAttribSpec) attributes.get(i);
-
- if (tas.isRequired()) {
- bud.append(prefix);
- bud.append(tas.getAttribName());
- bud.append('=');
- }
- }
- return bud.toString();
- }
-
- private String getArrayPrefixForMultipleAttribs(int beginIndex) {
- String result = null;
- String source = null;
- // Get source from compilation unit
- try {
- source = m_icu.getSource();
- if (source == null || beginIndex < 0)
- return result;
- // trim off everything after our begin index
- source = source.substring(0, beginIndex + 1);
- int newLineIndex = source.lastIndexOf('\n');
- //if we are on first line...
- if (newLineIndex == -1)
- newLineIndex = 0;
- // Get the current line
- String currentLine = source.substring(newLineIndex, beginIndex + 1);
- // Currently we have to have the '@' sign to show our menu
- int annotationIndex = currentLine.lastIndexOf('@');
- result = currentLine.substring(0, annotationIndex);
- result = result + " "; //$NON-NLS-1$
- } catch (Exception e) {
- // Do nothing
- }
-
- return result;
- }
-
- private IJavaCompletionProposal[] getTagCompletionsFor(String partialTagName, AnnotationArea area, int selectLength) {
- List found = new ArrayList();
-
- for (int i = 0; i < m_tags.size(); i++) {
- TagSpec ts = (TagSpec) m_tags.get(i);
- String tname = ts.getTagName();
-
- if (ts.getScope() == m_tagScope && tname.startsWith(partialTagName)) {
- String rtxt = getReplacementForTag(ts, area.beginOffset);
- String labl = '@' + tname;
- AnnotationTagProposal prop = new AnnotationTagProposal(rtxt, area.beginOffset, Math.max(selectLength, rtxt.length()), null, labl, 90);
- prop.setHelpText(lookupTagHelp(ts));
- found.add(prop);
- }
- }
-
- if (!found.isEmpty()) {
- return (IJavaCompletionProposal[]) found.toArray(new IJavaCompletionProposal[found.size()]);
- }
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.ui.text.java.IJavadocCompletionProcessor#getErrorMessage()
- */
- public String getErrorMessage() {
- // TODO Auto-generated method stub
- return null;
- }
-
- private static boolean isWS1(char c) {
- return c == ' ' || c == '\t' || c == '*' || c == '\r' || c == '\n';
- }
-
- private String getTagSoFarIfNotCompleted(int startingAt, int cursorAt) throws BadLocationException {
- if (m_doc.getChar(startingAt) != '@') {
- return null;
- }
-
- int firstChar = startingAt + 1;
-
- if (firstChar == cursorAt) {
- return ""; //$NON-NLS-1$
- }
-
- for (int i = firstChar; i < cursorAt; i++) {
- char c = m_doc.getChar(i);
-
- if (isWS1(c)) {
- return null;
- }
- }
-
- return m_doc.get(firstChar, cursorAt - firstChar);
- }
-
- /**
- * Calculates the the area of the annotation we're trying to complete. Also initializes
- * m_tagScope.
- *
- * @param fromOffset
- * @return
- * @throws JavaModelException
- */
- private AnnotationArea getAnnotationArea(int fromOffset) throws JavaModelException {
- // First, roughly calculate the end of the comment.
- IJavaElement el = m_icu.getElementAt(fromOffset);
- int absmax, absmin;
- if (el == null)
- return null;
- int ty = el.getElementType();
-
- switch (ty) {
- case IJavaElement.FIELD :
- IField f = (IField) el;
- absmax = f.getNameRange().getOffset();
- absmin = f.getSourceRange().getOffset();
- m_tagScope = TagSpec.FIELD;
- break;
-
- case IJavaElement.TYPE :
- IType t = (IType) el;
- absmax = t.getNameRange().getOffset();
- absmin = t.getSourceRange().getOffset();
- m_tagScope = TagSpec.TYPE;
- break;
-
- case IJavaElement.METHOD :
- IMethod m = (IMethod) el;
- absmax = m.getNameRange().getOffset();
- absmin = m.getSourceRange().getOffset();
- m_tagScope = TagSpec.METHOD;
- break;
-
- default :
- m_tagScope = -1;
- return null;
- }
-
- // Make sure we're not after the name for the member.
- if (absmax < fromOffset) {
- return null;
- }
-
- int min = 0, max = 0;
- try {
- // Search backwards for the starting '@'.
- boolean found = false;
- for (min = fromOffset; min >= absmin; min--) {
- if (m_doc.getChar(min) == '@') {
- found = true;
- break;
- }
- }
- if (!found) {
- return null;
- }
-
- // Search forwards for the next '@', or the end of the comment.
- for (max = fromOffset + 1; max < absmax; max++) {
- if (m_doc.getChar(max) == '@') {
- break;
- }
- }
- } catch (BadLocationException e) {
- return null;
- }
-
- return new AnnotationArea(el, min, Math.min(absmax, max));
- }
-
- private String lookupTagHelp(TagSpec ts) {
- if (ts != null)
- try {
- return ts.lookupTagHelp();
- } catch (MissingResourceException e) {
- // Do nothing, return null
- }
- return null;
- }
-
- private String lookupAttHelp(TagAttribSpec tas) {
- if (tas != null)
- try {
- return tas.lookupTagHelp();
- } catch (MissingResourceException e) {
- // Do nothing, return null
- }
- return null;
- }
-
- /**
- * A range that goes from the beginning position up to, but not including, the end position.
- */
- private static class AnnotationArea {
- /**
- * Document offset of the beginning of the javadoc annotation.
- */
- int beginOffset;
-
- /**
- * Document offset of the end of the area that could contain an annotation.
- */
- int endOffset;
- /**
- * The Java element that this annotation is assigned.
- *
- * @param beg
- * @param end
- */
- IJavaElement javaElement;
-
- public AnnotationArea(IJavaElement javaElement, int beg, int end) {
- this.javaElement = javaElement;
- beginOffset = beg;
- endOffset = end;
- }
-
- public boolean contains(int offset) {
- return offset >= beginOffset && offset < endOffset;
- }
-
- public int length() {
- return endOffset - beginOffset;
- }
-
- /**
- * Returns the cursor position relative to the area. Only valid if
- * this.contains( absCursorPos )
- *
- * @param absCursorPos
- * @return
- */
- public int relativeCursorPos(int absCursorPos) {
- return absCursorPos - beginOffset;
- }
-
- public int relativeToAbs(int relPos) {
- return beginOffset + relPos;
- }
- }
-
- private static class Attribute {
- Token name;
-
- Token value;
-
- int equalsPos;
-
- Attribute(Token n, int ep, Token v) {
- name = n;
- value = v;
- equalsPos = ep;
- }
-
- public boolean hasAssignment() {
- return equalsPos != -1;
- }
-
- public boolean hasValue() {
- return value.length() != 0;
- }
-
- public boolean contains(int srcPos) {
- return srcPos >= minExtent() && srcPos <= maxExtent();
- }
-
- public int minExtent() {
- return name.getBeginning();
- }
-
- public int maxExtent() {
- if (hasAssignment()) {
- if (hasValue())
- return value.getEnd();
- return equalsPos;
- }
- return name.getEnd();
- }
-
- public boolean immediatelyPrecedes(int pos) {
- return maxExtent() + 1 == pos;
- }
- }
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/AnnotationTagProposal.java b/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/AnnotationTagProposal.java
deleted file mode 100644
index b83347343..000000000
--- a/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/AnnotationTagProposal.java
+++ /dev/null
@@ -1,207 +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
- *******************************************************************************/
-/*
- * Created on Sep 4, 2003
- *
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-package org.eclipse.jst.common.internal.annotations.ui;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jdt.ui.text.java.IJavaCompletionProposal;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.contentassist.ICompletionProposalExtension;
-import org.eclipse.jface.text.contentassist.ICompletionProposalExtension2;
-import org.eclipse.jst.common.internal.annotations.registry.AttributeValueProposalHelper;
-import org.eclipse.swt.graphics.Image;
-
-
-/**
- * @author kelleyp
- *
- * A completion proposal especially for Annotation tag completions. This problem this class was
- * created to solve was the problem of attaching help text to a proposal. The mechanism inside of
- * JavaCompletionProposal was useless to us, since it was tied to the idea that the proposal would
- * be for an actual java element, that has javadoc attached to it, etc... So here we subclass
- * JavaCompletionProposal and override getAdditionalProposalInfo
for a more suitable
- * way of associating help text with a proposal.
- */
-public class AnnotationTagProposal extends AbstractAnnotationTagProposal implements IJavaCompletionProposal, ICompletionProposalExtension, ICompletionProposalExtension2 {
- private static final char QUOTE = '"';
- private boolean ensureBeginQuote = false;
- private boolean ensureEndQuote = false;
- private String localString;
- //String used to validate the prefix.
- private String fValidationString;
-
- /**
- * Localized help text.
- */
- private String locText;
-
- /**
- *
- * @param replacementString
- * @param replacementOffset
- * @param replacementLength
- * @param image
- * @param displayString
- * @param relevance
- */
- public AnnotationTagProposal(String replacementString, int replacementOffset, int replacementLength, Image image, String displayString, int relevance) {
- Assert.isNotNull(replacementString);
- Assert.isTrue(replacementOffset >= 0);
- Assert.isTrue(replacementLength >= 0);
-
- setReplacementString(replacementString);
- setReplacementOffset(replacementOffset);
- setReplacementLength(replacementLength);
- setImage(image);
- setDisplayString(displayString == null ? replacementString : displayString);
- setRelevance(relevance);
- setCursorPosition(replacementString.length());
- setSortString(displayString == null ? replacementString : displayString);
- this.localString = replacementString;
- }
-
- /**
- * @see org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposal#JavaCompletionProposal(java.lang.String, int, int,
- * org.eclipse.swt.graphics.Image, java.lang.String, int,
- * org.eclipse.jface.text.ITextViewer)
- * @param replacementString
- * @param replacementOffset
- * @param replacementLength
- * @param image
- * @param displayString
- * @param relevance
- */
-
- public AnnotationTagProposal(AttributeValueProposalHelper proposalHelper) {
- this(proposalHelper.getReplacementString(), proposalHelper.getValueOffset(), proposalHelper.getReplacementLength(), null, proposalHelper.getValueDisplayString(), 90);
- if (proposalHelper instanceof UIAttributeValueProposalHelper)
- setImage(((UIAttributeValueProposalHelper) proposalHelper).getImage());
- setEnsureBeginQuote(proposalHelper.ensureBeginQuote());
- setEnsureEndQuote(proposalHelper.ensureEndQuote());
- }
-
- public AnnotationTagProposal(UIAttributeValueProposalHelper proposalHelper) {
- this(proposalHelper.getReplacementString(), proposalHelper.getValueOffset(), proposalHelper.getReplacementLength(), proposalHelper.getImage(), proposalHelper.getValueDisplayString(), 90);
- setEnsureBeginQuote(proposalHelper.ensureBeginQuote());
- setEnsureEndQuote(proposalHelper.ensureEndQuote());
- }
-
- /**
- * Our override that uses textHolder
to provide the help text.
- */
- public String getAdditionalProposalInfo() {
- return locText;
- }
-
- /**
- * Sets the holder of the help text that can be displayed with this proposal.
- *
- * @param hld
- * an LocalizedTextContainer
- */
- public void setHelpText(String s) {
- locText = s;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposal#apply(org.eclipse.jface.text.IDocument,
- * char, int)
- */
- public void apply(IDocument document, char trigger, int offset) {
- ensureQuotedIfNecessary(document, offset);
- super.apply(document, trigger, offset);
- }
-
- /**
- * @param document
- * @param offset
- */
- private void ensureQuotedIfNecessary(IDocument document, int offset) {
- if (ensureBeginQuote || ensureEndQuote) {
- try {
- char begin = document.getChar(getReplacementOffset() - 1);
- char end = document.getChar(offset);
- if (ensureBeginQuote && ensureEndQuote && begin != QUOTE && end != QUOTE) {
- StringBuffer b = new StringBuffer();
- b.append(QUOTE).append(localString).append(QUOTE);
- localString = b.toString();
- } else if (ensureBeginQuote && begin != QUOTE)
- localString = QUOTE + localString;
- else if (ensureEndQuote && end != QUOTE)
- localString = localString + QUOTE;
- setReplacementString(localString);
- setCursorPosition(localString.length());
- } catch (BadLocationException e) {
- // Do nothing
- }
- }
- }
-
- public void setEnsureQuoted(boolean ensureQuoted) {
- setEnsureBeginQuote(ensureQuoted);
- setEnsureEndQuote(ensureQuoted);
- }
-
- //public void setPartialValueString(String partialValueString) {
- // this.partialValueString = partialValueString;
- //}
- public void setEnsureBeginQuote(boolean ensureBeginQuote) {
- this.ensureBeginQuote = ensureBeginQuote;
- }
-
- public void setEnsureEndQuote(boolean ensureEndQuote) {
- this.ensureEndQuote = ensureEndQuote;
- }
-
- protected boolean isValidPrefix(String prefix) {
- if (getReplacementString().startsWith(getDisplayString())) {
- return super.isValidPrefix(prefix);
- }
- return super.isPrefix(trim(prefix), getValidationString());
- }
-
- private String getValidationString() {
- if (fValidationString == null) {
- fValidationString = trim(getReplacementString());
- }
- return fValidationString;
- }
-
-
- /*
- * It is possible that the replacement string is complex and larger than the prefix.
- * In this case we want to trim the prefix to the last whitespace character. This
- * will provide us with a prefix to use when matching the display string.
- */
- private String trim(String aString) {
- if (aString == null || aString.length() == 0)
- return aString;
- StringBuffer buffer = new StringBuffer();
- char[] chars = aString.toCharArray();
- for (int i = chars.length - 1; i > -1; i--) {
- if (Character.isWhitespace(chars[i])) {
- break;
- } else {
- buffer.append(chars[i]);
- }
- }
- buffer = buffer.reverse();
- return buffer.toString();
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/IWRDResources.java b/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/IWRDResources.java
deleted file mode 100644
index 6ef86fa68..000000000
--- a/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/IWRDResources.java
+++ /dev/null
@@ -1,29 +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.jst.common.internal.annotations.ui;
-
-import org.eclipse.osgi.util.NLS;
-
-public final class IWRDResources extends NLS {
-
- private static final String BUNDLE_NAME = "org.eclipse.jst.common.internal.annotations.ui.taghandlerui";//$NON-NLS-1$
-
- private IWRDResources() {
- // Do not instantiate
- }
-
- public static String J2EEAnnotationsCompletionProcessor_3;
- public static String J2EEAnnotationsCompletionProcessor_4;
-
- static {
- NLS.initializeMessages(BUNDLE_NAME, IWRDResources.class);
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/UIAttributeValueProposalHelper.java b/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/UIAttributeValueProposalHelper.java
deleted file mode 100644
index d59538458..000000000
--- a/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/UIAttributeValueProposalHelper.java
+++ /dev/null
@@ -1,41 +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
- *******************************************************************************/
-package org.eclipse.jst.common.internal.annotations.ui;
-
-import org.eclipse.jst.common.internal.annotations.registry.AttributeValueProposalHelper;
-import org.eclipse.swt.graphics.Image;
-
-
-/**
- * @author DABERG
- *
- */
-public class UIAttributeValueProposalHelper extends AttributeValueProposalHelper {
- private Image image;
-
- /**
- * @param replacementString
- * @param valueOffset
- * @param replacementLength
- * @param valueDisplayString
- */
- public UIAttributeValueProposalHelper(String replacementString, int valueOffset, int replacementLength, String valueDisplayString) {
- super(replacementString, valueOffset, replacementLength, valueDisplayString);
- }
-
- public Image getImage() {
- return image;
- }
-
- public void setImage(Image image) {
- this.image = image;
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/UiPlugin.java b/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/UiPlugin.java
deleted file mode 100644
index 6e96f4cb3..000000000
--- a/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/UiPlugin.java
+++ /dev/null
@@ -1,65 +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
- *******************************************************************************/
-package org.eclipse.jst.common.internal.annotations.ui;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class UiPlugin extends AbstractUIPlugin {
- //The shared instance.
- private static UiPlugin plugin;
- //Resource bundle.
- private ResourceBundle resourceBundle;
-
- /**
- * The constructor.
- */
- public UiPlugin() {
- super();
- plugin = this;
- try {
- resourceBundle = ResourceBundle.getBundle("org.eclipse.wst.common.internal.annotations.ui.UiPluginResources"); //$NON-NLS-1$
- } catch (MissingResourceException x) {
- resourceBundle = null;
- }
- }
-
- /**
- * Returns the shared instance.
- */
- public static UiPlugin getDefault() {
- return plugin;
- }
-
- /**
- * Returns the string from the plugin's resource bundle, or 'key' if not found.
- */
- public static String getResourceString(String key) {
- ResourceBundle bundle = UiPlugin.getDefault().getResourceBundle();
- try {
- return (bundle != null) ? bundle.getString(key) : key;
- } catch (MissingResourceException e) {
- return key;
- }
- }
-
- /**
- * Returns the plugin's resource bundle,
- */
- public ResourceBundle getResourceBundle() {
- return resourceBundle;
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.frameworks/.classpath b/plugins/org.eclipse.jst.common.frameworks/.classpath
deleted file mode 100644
index 751c8f2e5..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-About This Content
-
-License
-
-null
if the input does
- * not encode an editor input, or if there is no remembered working copy for this
- * compilation unit
- */
- public org.eclipse.jdt.core.ICompilationUnit getExistingWorkingCopy(org.eclipse.jdt.core.ICompilationUnit cu) throws org.eclipse.core.runtime.CoreException {
- return getWorkingCopyManager().getExistingWorkingCopy(cu);
- }
-
- /**
- * Returns the working copy remembered for the compilation unit.
- *
- * @param input
- * ICompilationUnit
- * @return the working copy of the compilation unit, or null
if there is no
- * remembered working copy for this compilation unit
- */
- public org.eclipse.jdt.core.ICompilationUnit getWorkingCopy(ICompilationUnit cu, boolean forNewCU) throws CoreException {
- return getWorkingCopyManager().getWorkingCopy(cu, forNewCU);
- }
-
- /**
- * Save the new compilation units only.
- */
- protected void handleSaveIfNecessaryDidNotSave(IProgressMonitor monitor) {
- getWorkingCopyManager().saveOnlyNewCompilationUnits(monitor);
- }
-
- /**
- * @see org.eclipse.jst.j2ee.internal.internal.workbench.J2EEEditModel#isDirty()
- */
- public boolean isDirty() {
- boolean dirtyBool = super.isDirty();
- if (!dirtyBool && getWorkingCopyManager() != null)
- dirtyBool = getWorkingCopyManager().hasWorkingCopies();
- return dirtyBool;
- }
-
- /**
- * This will force all of the referenced Resources to be saved.
- */
- public void primSave(IProgressMonitor monitor) {
- saveCompilationUnits(monitor);
- if (monitor == null || !monitor.isCanceled())
- super.primSave(monitor);
- }
- protected void runSaveOperation(IWorkspaceRunnable runnable, IProgressMonitor monitor) throws SaveFailedException {
- try {
- ResourcesPlugin.getWorkspace().run(runnable, null,IWorkspace.AVOID_UPDATE,monitor);
- } catch (CoreException e) {
- throw new SaveFailedException(e);
- }
- }
-
- /**
- * Insert the method's description here. Creation date: (4/11/2001 4:14:26 PM)
- *
- * @return java.util.Set
- */
- public void processResource(Resource aResource) {
- if (aResource != null && !getResources().contains(aResource)) {
- if (aResource instanceof ReferencedResource) {
- access((ReferencedResource) aResource);
- //We need a better way to pass this through the save options instead.
- //We also need to make this dynamic based on the project target
- ((ReferencedResource) aResource).setFormat(CompatibilityXMIResource.FORMAT_MOF5);
- } else if (!isReadOnly())
- aResource.setTrackingModification(true);
- addResource(aResource);
- }
- }
-
- /**
- * Release each of the referenced resources.
- */
- protected void release(Resource aResource) {
-
- removeResource(aResource);
- if (aResource != null) {
- boolean isRefRes = aResource instanceof ReferencedResource;
- if (isRefRes)
- release((ReferencedResource) aResource);
- if (!isDisposing())
- resetWorkingCopyManager();
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.j2ee.internal.internal.workbench.J2EEEditModel#resourceIsLoadedChanged(org.eclipse.emf.ecore.resource.Resource,
- * boolean, boolean)
- */
- protected void resourceIsLoadedChanged(Resource aResource, boolean oldValue, boolean newValue) {
- if (!isReverting && !disposing && !isReadOnly() && oldValue && !newValue && aResource instanceof TranslatorResource)
- resetWorkingCopyManager();
- super.resourceIsLoadedChanged(aResource, oldValue, newValue);
- }
-
- protected void reverted(ReferencedResource revertedResource) {
- if (getWorkingCopyManager() != null)
- getWorkingCopyManager().revert();
- revertAllResources();
- }
-
- /**
- * This will save all of the referenced CompilationUnits to be saved.
- */
- public void saveCompilationUnits(IProgressMonitor monitor) {
- getWorkingCopyManager().saveCompilationUnits(monitor);
- }
-
- public WorkingCopyManager getWorkingCopyManager() {
- if (workingCopyManager == null)
- workingCopyManager = WorkingCopyManagerFactory.newRegisteredInstance();
- return workingCopyManager;
- }
-
- /**
- * Reset the working copy manager because the ejb-jar.xml was removed without disposing.
- */
- protected void resetWorkingCopyManager() {
- if (workingCopyManager != null) {
- workingCopyManager.dispose();
- workingCopyManager = null;
- }
- }
-
-
-}
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/integration/JavaArtifactEditModelFactory.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/integration/JavaArtifactEditModelFactory.java
deleted file mode 100644
index 892b2ab56..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/integration/JavaArtifactEditModelFactory.java
+++ /dev/null
@@ -1,63 +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
- *******************************************************************************/
-package org.eclipse.jst.common.jdt.internal.integration;
-
-import java.util.Map;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.wst.common.internal.emfworkbench.EMFWorkbenchContext;
-import org.eclipse.wst.common.internal.emfworkbench.integration.EditModel;
-import org.eclipse.wst.common.internal.emfworkbench.integration.EditModelFactory;
-
-/**
- * null
if the input does
- * not encode an editor input, or if there is no remembered working copy for this
- * compilation unit
- */
- public org.eclipse.jdt.core.ICompilationUnit getExistingWorkingCopy(ICompilationUnit cu) throws CoreException {
- ICompilationUnit newCU = getNewCompilationUnitWorkingCopy(cu);
- if (newCU != null)
- return newCU;
- return null;
- }
-
- /**
- * Insert the method's description here. Creation date: (7/19/2001 11:00:19 AM)
- *
- * @return java.util.List
- */
- protected java.util.List getNeedsSavingCompilationUnits() {
- if (needsSavingCompilationUnits == null)
- needsSavingCompilationUnits = new ArrayList();
- return needsSavingCompilationUnits;
- }
-
- /**
- * Insert the method's description here. Creation date: (4/26/2001 3:49:05 PM)
- *
- * @return java.util.List
- */
- protected java.util.List getNewCompilationUnits() {
- if (newCompilationUnits == null)
- newCompilationUnits = new ArrayList();
- return newCompilationUnits;
- }
-
- /**
- * It is possible that we have already created this CompilationUnit and its working copy. If
- * this is the case, return our new working copy and do not create a new one.
- */
- protected ICompilationUnit getNewCompilationUnitWorkingCopy(ICompilationUnit cu) {
- if (hasNewCompilationUnit(cu)) {
- List list = getNeedsSavingCompilationUnits();
- ICompilationUnit copy;
- for (int i = 0; i < list.size(); i++) {
- copy = (ICompilationUnit) list.get(i);
- if (cu.equals(copy.getPrimary()))
- return copy;
- }
- }
- return null;
- }
-
- /**
- * Insert the method's description here. Creation date: (4/26/2001 3:49:05 PM)
- *
- * @return java.util.List
- */
- protected java.util.List getOriginalNewCompilationUnits() {
- if (originalNewCompilationUnits == null)
- originalNewCompilationUnits = new ArrayList();
- return originalNewCompilationUnits;
- }
-
- /**
- * Return the IPackageFragment for the given ICompilationUnit.
- */
- protected IPackageFragment getPackageFragment(ICompilationUnit cu) {
- if (cu == null)
- return null;
- IJavaElement parent = cu;
- int elementType = cu.getElementType();
- while (parent != null && elementType != IJavaElement.PACKAGE_FRAGMENT) {
- parent = parent.getParent();
- if (parent != null)
- elementType = parent.getElementType();
- else
- elementType = -1;
- }
- return (IPackageFragment) parent;
- }
-
- protected ISaveHandler getSaveHandler() {
- return SaveHandlerRegister.getSaveHandler();
- }
-
- /**
- * Returns the working copy remembered for the compilation unit.
- *
- * @param input
- * ICompilationUnit
- * @return the working copy of the compilation unit, or null
if there is no
- * remembered working copy for this compilation unit
- */
- public ICompilationUnit getWorkingCopy(ICompilationUnit cu, boolean forNewCU) throws org.eclipse.core.runtime.CoreException {
- if (cu == null || cu.isWorkingCopy())
- return cu;
- ICompilationUnit newCU = getNewCompilationUnitWorkingCopy(cu);
- if (newCU != null)
- return newCU;
- ICompilationUnit workingCopy = cu.getWorkingCopy(null);
- addNewCompilationUnit(cu, workingCopy);
- return workingCopy;
- }
-
- /**
- * Has a new compilation unit already been created.
- */
- protected boolean hasNewCompilationUnit(ICompilationUnit cu) {
- return getNewCompilationUnits().contains(cu);
- }
-
- protected boolean isFailedWriteFileFailure(Exception ex) {
- return SaveHandlerHeadless.isFailedWriteFileFailure(ex);
- }
-
- protected void primAddDeletedCompilationUnit(ICompilationUnit cu) {
- if (cu == null)
- return;
- Object[] info = new Object[2];
- info[0] = getPackageFragment(cu);
- try {
- info[1] = cu.getSource();
- } catch (JavaModelException e) {
- info[1] = null;
- }
- getDeletedCompilationUnits().put(cu, info);
- }
-
- // This is an internal delete call.
- protected void primDelete(ICompilationUnit cu) {
- try {
- if (cu.exists())
- cu.delete(true, new org.eclipse.core.runtime.NullProgressMonitor());
- } catch (JavaModelException e) {
- org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError(e);
- //What to do here?
- }
- }
-
- protected void primDispose() {
- discardOriginalNewCompilationUnits();
- reviveDeletedCompilationUnits();
- newCompilationUnits = null;
- needsSavingCompilationUnits = null;
- originalNewCompilationUnits = null;
- deletedCompilationUnits = null;
- }
-
- protected void primRevert() {
- discardOriginalNewCompilationUnits();
- reviveDeletedCompilationUnits();
- newCompilationUnits = null;
- needsSavingCompilationUnits = null;
- originalNewCompilationUnits = null;
- deletedCompilationUnits = null;
- }
-
- /**
- * Returns the working copy remembered for the compilation unit encoded in the given editor
- * input.
- *
- * @param input
- * ICompilationUnit
- * @return the working copy of the compilation unit, or null
if the input does
- * not encode an editor input, or if there is no remembered working copy for this
- * compilation unit
- */
- protected ICompilationUnit primGetWorkingCopy(ICompilationUnit cu) throws CoreException {
- return null;
- }
-
- /**
- * This will save all of the referenced CompilationUnits to be saved.
- */
- protected void primSaveCompilationUnits(org.eclipse.core.runtime.IProgressMonitor monitor) {
- saveNewCompilationUnits(monitor);
- getDeletedCompilationUnits().clear();
- }
-
- /**
- * This will save all of the new CompilationUnits to be saved.
- */
- protected void primSaveOnlyNewCompilationUnits(org.eclipse.core.runtime.IProgressMonitor monitor) {
- List cus = getNeedsSavingCompilationUnits();
- ICompilationUnit wc;
- for (int i = 0; i < cus.size(); i++) {
- wc = (ICompilationUnit) cus.get(i);
- commitWorkingCopy(wc, monitor);
- }
- cus.clear();
- }
-
- protected void removeDeletedCompilationUnit(ICompilationUnit cu) {
- if (getDeletedCompilationUnits().remove(cu) != null) {
- if (cu.isWorkingCopy()) {
- ICompilationUnit original, nextCU, testCU;
- original = cu.getPrimary();
- Set cus = getDeletedCompilationUnits().keySet();
- Iterator it = cus.iterator();
- while (it.hasNext()) {
- nextCU = (ICompilationUnit) it.next();
- testCU = nextCU.isWorkingCopy() ? (ICompilationUnit) nextCU.getPrimary() : nextCU;
- if (testCU.equals(original)) {
- cus.remove(nextCU);
- return;
- }
- }
- }
- }
- }
-
- protected void reviveDeletedCompilationUnit(ICompilationUnit cu, Object[] info, IProgressMonitor pm) {
- if (info[0] != null && info[1] != null) {
- String typeName = cu.getElementName();
- IPackageFragment pack = (IPackageFragment) info[0];
- String source = (String) info[1];
- try {
- ICompilationUnit existingCU = pack.getCompilationUnit(typeName);
- if (existingCU.exists() && getNewCompilationUnits().contains(existingCU))
- existingCU.delete(false, pm);
- pack.createCompilationUnit(typeName, source, false, pm);
- } catch (JavaModelException e) {
- org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError(e);
- }
- }
- }
-
- protected void reviveDeletedCompilationUnits() {
- if (getDeletedCompilationUnits().isEmpty())
- return;
- IProgressMonitor pm = new org.eclipse.core.runtime.NullProgressMonitor();
- Iterator it = getDeletedCompilationUnits().entrySet().iterator();
- Map.Entry entry;
- ICompilationUnit cu;
- Object[] info;
- while (it.hasNext()) {
- entry = (Map.Entry) it.next();
- cu = (ICompilationUnit) entry.getKey();
- info = (Object[]) entry.getValue();
- reviveDeletedCompilationUnit(cu, info, pm);
- }
-
- }
-
- protected void runOperation(IWorkspaceRunnable aRunnable, IProgressMonitor monitor, boolean validate) {
- primRunOperation(aRunnable, monitor);
-
- // TODO Break the validator depedency
- // if (validate)
- // primRunOperation(aRunnable, monitor);
- // else {
- // IProject proj = getValidationProject();
- //
- // ValidatorManager mgr = ValidatorManager.getManager();
- // boolean disableValidators = proj != null;
- // boolean wasSuspended = false;
- // if (disableValidators) {
- // wasSuspended = mgr.isSuspended(proj);
- // if (!wasSuspended)
- // mgr.suspendValidation(proj, true);
- // }
- // try {
- // primRunOperation(aRunnable, monitor);
- // } finally {
- // if (disableValidators && !wasSuspended)
- // mgr.suspendValidation(proj, false);
- // }
- // }
- }
-
- protected void primRunOperation(IWorkspaceRunnable aRunnable, IProgressMonitor monitor) {
-
- if (aRunnable != null) {
- //if (workspace.isTreeLocked())
- //Logger.getLogger().logTrace(ResourceHandler.getString("Cannot_run_J2EEUIWorkingCo_ERROR_"));
- // //$NON-NLS-1$ = "Cannot run J2EEUIWorkingCopyManager operation because the Workspace
- // tree is locked."
- //else {
- if (!WTPCommonPlugin.getWorkspace().isTreeLocked()) {
- try {
- WTPCommonPlugin.getWorkspace().run(aRunnable, monitor);
- } catch (CoreException e) {
- throw new SaveFailedException(e);
- }
- }
- }
- }
-
- /**
- * This will save all of the referenced CompilationUnits to be saved.
- */
- public void saveCompilationUnits(org.eclipse.core.runtime.IProgressMonitor monitor) {
- getSaveHandler().access();
- try {
- IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
- public void run(IProgressMonitor aMonitor) {
- primSaveCompilationUnits(aMonitor);
- }
- };
- runOperation(runnable, monitor, true);
- } catch (SaveFailedException ex) {
- getSaveHandler().handleSaveFailed(ex, monitor);
- } finally {
- getSaveHandler().release();
- }
- }
-
- /**
- * This will save all of the referenced CompilationUnits to be saved.
- */
- protected void saveNewCompilationUnits(IProgressMonitor monitor) {
- primSaveOnlyNewCompilationUnits(monitor);
- getOriginalNewCompilationUnits().clear();
- getNewCompilationUnits().clear();
- }
-
- /**
- * This will save all of the new CompilationUnits to be saved.
- */
- public void saveOnlyNewCompilationUnits(org.eclipse.core.runtime.IProgressMonitor monitor) {
- getSaveHandler().access();
- try {
- IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
- public void run(IProgressMonitor aMonitor) {
- primSaveOnlyNewCompilationUnits(aMonitor);
- }
- };
- runOperation(runnable, monitor, false);
- } catch (SaveFailedException ex) {
- getSaveHandler().handleSaveFailed(ex, monitor);
- } finally {
- getSaveHandler().release();
- }
- }
-
- protected boolean shouldSaveReadOnly(ICompilationUnit wc) {
- IResource resource = null;
-
- resource = (IResource) wc.getPrimary().getAdapter(IRESOURCE_CLASS);
-
- if (resource == null || resource.getType() != IResource.FILE || !resource.getResourceAttributes().isReadOnly())
- return false;
-
- return getSaveHandler().shouldContinueAndMakeFileEditable((IFile) resource);
- }
-
- /**
- * @see com.ibm.etools.j2ee.workbench.IJ2EEWorkingCopyManager#hasWorkingCopies()
- */
- public boolean hasWorkingCopies() {
- return (deletedCompilationUnits != null && !deletedCompilationUnits.isEmpty()) || (needsSavingCompilationUnits != null && !needsSavingCompilationUnits.isEmpty()) || (newCompilationUnits != null && !newCompilationUnits.isEmpty());
- }
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/integration/WorkingCopyManager.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/integration/WorkingCopyManager.java
deleted file mode 100644
index 35ccc89fb..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/integration/WorkingCopyManager.java
+++ /dev/null
@@ -1,49 +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
- *******************************************************************************/
-package org.eclipse.jst.common.jdt.internal.integration;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-
-/**
- * @author Administrator
- *
- *
- */
-public interface WorkingCopyManager extends WorkingCopyProvider {
-
- void dispose();
-
- java.util.Set getAffectedFiles();
-
- /**
- * This will save all of the referenced CompilationUnits to be saved.
- */
- void saveCompilationUnits(IProgressMonitor monitor);
-
- /**
- * This will save all of the new CompilationUnits to be saved.
- */
- void saveOnlyNewCompilationUnits(IProgressMonitor monitor);
-
- /**
- * Method hasWorkingCopies.
- *
- * @return boolean
- */
- boolean hasWorkingCopies();
-
- /**
- * Revert all working copies.
- */
- void revert();
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/integration/WorkingCopyManagerFactory.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/integration/WorkingCopyManagerFactory.java
deleted file mode 100644
index 3e98f8a88..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/integration/WorkingCopyManagerFactory.java
+++ /dev/null
@@ -1,57 +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
- *******************************************************************************/
-package org.eclipse.jst.common.jdt.internal.integration;
-
-import org.eclipse.jem.util.UIContextDetermination;
-
-
-/**
- * @author mdelder
- *
- *
- */
-public class WorkingCopyManagerFactory {
-
- // protected static Class workingCopyManagerClass;
-
- public static WorkingCopyManager newRegisteredInstance() {
- return (WorkingCopyManager) UIContextDetermination.createInstance("workingCopyManager"); //$NON-NLS-1$
- }
-
- // public static IWorkingCopyManager createWorkingCopyManager() {
- // if (getWorkingCopyManagerClass() != null)
- // try {
- // return (IWorkingCopyManager) getWorkingCopyManagerClass().newInstance();
- // } catch (InstantiationException e1) {
- // } catch (IllegalAccessException e2) {
- // }
- // return null;
- // }
- //
- // /**
- // * Insert the method's description here.
- // * Creation date: (4/26/2001 7:53:15 AM)
- // * @return java.lang.Class
- // */
- // public static java.lang.Class getWorkingCopyManagerClass() {
- // return workingCopyManagerClass;
- // }
- //
- // /**
- // * Insert the method's description here.
- // * Creation date: (4/26/2001 7:53:15 AM)
- // * @param newWorkingCopyManagerClass java.lang.Class
- // */
- // public static void setWorkingCopyManagerClass(java.lang.Class newWorkingCopyManagerClass) {
- // workingCopyManagerClass = newWorkingCopyManagerClass;
- // }
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/integration/WorkingCopyProvider.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/integration/WorkingCopyProvider.java
deleted file mode 100644
index 2696f5c54..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/integration/WorkingCopyProvider.java
+++ /dev/null
@@ -1,60 +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
- *******************************************************************************/
-package org.eclipse.jst.common.jdt.internal.integration;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.ICompilationUnit;
-
-
-/**
- * The user of the Java code generation framework must supply an implementation of this interface.
- * The framework will obtain compilation working copies from this interface. The supplier of the
- * implementation is responsible for committing the working copies when appropriate for the user's
- * edit model.
- */
-public interface WorkingCopyProvider {
-
- /**
- * This will delete compilation unit from the workbench and fix the internal references for this
- * working copy manager.
- *
- * @param cu
- * the compilation unit to delete
- * @param monitor
- * the progress monitor to use for the delete
- */
- void delete(ICompilationUnit cu, IProgressMonitor monitor);
-
- /**
- * Returns the working copy remembered for the compilation unit. That is, the manager already
- * has a working copy for this unit, it does not create a new working copy. Does not connect the
- * edit model to the working copy.
- *
- * @param input
- * the compilation unit
- * @return the working copy of the compilation unit, or null
it there is no
- * remembered working copy for this compilation unit
- */
- ICompilationUnit getExistingWorkingCopy(ICompilationUnit cu) throws CoreException;
-
- /**
- * Returns the working copy remembered for the compilation unit or creates a new working copy
- * for the compilation unit and returns it. If a working copy is passed in, it is returned.
- *
- * @param input
- * the compilation unit
- * @return the working copy of the compilation unit
- * @exception CoreException
- * if the working copy can not be created
- */
- ICompilationUnit getWorkingCopy(ICompilationUnit cu, boolean forNewCU) throws CoreException;
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/IJavaFacetInstallDataModelProperties.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/IJavaFacetInstallDataModelProperties.java
deleted file mode 100644
index 755e31c41..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/IJavaFacetInstallDataModelProperties.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.jst.common.project.facet;
-
-public interface IJavaFacetInstallDataModelProperties {
-
- public static final String SOURCE_FOLDER_NAME = "IJavaFacetInstallDataModelProperties.SOURCE_FOLDER_NAME"; //$NON-NLS-1$
- public static final String DEFAULT_OUTPUT_FOLDER_NAME = "IJavaFacetInstallDataModelProperties.DEFAULT_OUTPUT_FOLDER_NAME"; //$NON-NLS-1$
-}
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetDefaultVersionProvider.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetDefaultVersionProvider.java
deleted file mode 100644
index 4dd8501d6..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetDefaultVersionProvider.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2006 BEA Systems, Inc.
- * 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:
- * Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet;
-
-import org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * Defaults the java facet version to align with workspace java compiler
- * level settings.
- *
- * @author Konstantin Komissarchik
- */
-
-public final class JavaFacetDefaultVersionProvider
-
- implements IDefaultVersionProvider
-
-{
- public IProjectFacetVersion getDefaultVersion()
- {
- final String compilerLevel = JavaFacetUtils.getCompilerLevel();
- return JavaFacetUtils.compilerLevelToFacet( compilerLevel );
- }
-}
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetInstallDataModelProvider.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetInstallDataModelProvider.java
deleted file mode 100644
index 7ae6f53ea..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetInstallDataModelProvider.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.jst.common.project.facet;
-
-import java.util.Hashtable;
-import java.util.Set;
-
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.wst.common.componentcore.datamodel.FacetInstallDataModelProvider;
-import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
-import org.eclipse.wst.project.facet.IProductConstants;
-import org.eclipse.wst.project.facet.ProductManager;
-
-public class JavaFacetInstallDataModelProvider extends FacetInstallDataModelProvider implements IJavaFacetInstallDataModelProperties {
-
- public JavaFacetInstallDataModelProvider() {
- super();
- }
-
- public Set getPropertyNames() {
- Set propertyNames = super.getPropertyNames();
- propertyNames.add(SOURCE_FOLDER_NAME);
- propertyNames.add(DEFAULT_OUTPUT_FOLDER_NAME);
- return propertyNames;
- }
-
- public Object getDefaultProperty(String propertyName) {
- if (FACET_ID.equals(propertyName)) {
- return IModuleConstants.JST_JAVA;
- } else if (FACET_VERSION.equals(propertyName)) {
- Hashtable javaOptions = JavaCore.getOptions();
- String jdtVersion = (String)javaOptions.get(JavaCore.COMPILER_COMPLIANCE);
- if(jdtVersion == null){
- jdtVersion = (String)JavaCore.getDefaultOptions().get(JavaCore.COMPILER_COMPLIANCE);
- }
- if (jdtVersion.startsWith("1.3")) { //$NON-NLS-1$
- return JavaFacetUtils.JAVA_13;
- } else if (jdtVersion.startsWith("1.4")) { //$NON-NLS-1$
- return JavaFacetUtils.JAVA_14;
- }
- return JavaFacetUtils.JAVA_50;
-
- } else if (SOURCE_FOLDER_NAME.equals(propertyName)) {
- return ProductManager.getProperty(IProductConstants.DEFAULT_SOURCE_FOLDER);
- } else if (DEFAULT_OUTPUT_FOLDER_NAME.equals(propertyName)) {
- return ProductManager.getProperty(IProductConstants.OUTPUT_FOLDER);
- }
-
- return super.getDefaultProperty(propertyName);
- }
-
-}
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetInstallDelegate.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetInstallDelegate.java
deleted file mode 100644
index e66fa5936..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetInstallDelegate.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- * Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author Konstantin Komissarchik
- */
-
-public final class JavaFacetInstallDelegate implements IDelegate {
-
- public void execute(final IProject project, final IProjectFacetVersion fv, final Object cfg, final IProgressMonitor monitor) throws CoreException {
- if (monitor != null) {
- monitor.beginTask("", 1); //$NON-NLS-1$
- }
-
- try {
- IDataModel model = (IDataModel) cfg;
-
- // Create the source and the output directories.
-
- final IWorkspace ws = ResourcesPlugin.getWorkspace();
-
- final IPath pjpath = project.getFullPath();
- IJavaProject jproject = null;
- if( project.exists()){
- jproject = JavaCore.create(project);
- }
-
- if( !jproject.exists()){
- String srcFolderName = model.getStringProperty(IJavaFacetInstallDataModelProperties.SOURCE_FOLDER_NAME);
- final IPath srcdir = pjpath.append(srcFolderName);
-
- if( ! srcdir.equals( pjpath ) )
- {
- ws.getRoot().getFolder(srcdir).getLocation().toFile().mkdirs();
- }
-
- String outputFolderName = model.getStringProperty(IJavaFacetInstallDataModelProperties.DEFAULT_OUTPUT_FOLDER_NAME);
- final IPath outdir = pjpath.append(outputFolderName);
-
- if( ! outdir.equals( pjpath ) )
- {
- ws.getRoot().getFolder(outdir).getLocation().toFile().mkdirs();
- }
-
- project.refreshLocal(IResource.DEPTH_INFINITE, null);
-
- // Add the java nature. This will automatically add the builder.
-
- final IProjectDescription desc = project.getDescription();
- final String[] current = desc.getNatureIds();
- final String[] replacement = new String[current.length + 1];
- System.arraycopy(current, 0, replacement, 0, current.length);
- replacement[current.length] = JavaCore.NATURE_ID;
- desc.setNatureIds(replacement);
- project.setDescription(desc, null);
-
- // Set up the sourcepath and the output directory.
-
- final IJavaProject jproj = JavaCore.create(project);
- final IClasspathEntry[] cp = {JavaCore.newSourceEntry(srcdir)};
-
- jproj.setRawClasspath(cp, outdir, null);
- jproj.save(null, true);
-
- // Setup the classpath.
-
- JavaFacetUtils.resetClasspath( project, null, fv );
- }
-
- // Set the compiler comliance level for the project. Ignore whether
- // this might already be set so at the workspace level in case
- // workspace settings change later or the project is included in a
- // different workspace.
-
- JavaFacetUtils.setCompilerLevel(project, fv);
-
- if (monitor != null) {
- monitor.worked(1);
- }
- } finally {
- if (monitor != null) {
- monitor.done();
- }
- }
- }
-
-}
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetRuntimeChangedDelegate.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetRuntimeChangedDelegate.java
deleted file mode 100644
index 216c3a3f1..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetRuntimeChangedDelegate.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- * Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author Konstantin Komissarchik
- */
-
-public final class JavaFacetRuntimeChangedDelegate
-
- implements IDelegate
-
-{
- public void execute( final IProject project,
- final IProjectFacetVersion fv,
- final Object cfg,
- final IProgressMonitor monitor )
-
- throws CoreException
-
- {
- if( monitor != null )
- {
- monitor.beginTask( "", 1 ); //$NON-NLS-1$
- }
-
- try
- {
- JavaFacetUtils.resetClasspath( project, fv, fv );
-
- if( monitor != null )
- {
- monitor.worked( 1 );
- }
- }
- finally
- {
- if( monitor != null )
- {
- monitor.done();
- }
- }
- }
-
-}
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetUtils.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetUtils.java
deleted file mode 100644
index 78e24f239..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetUtils.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- * Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet;
-
-import java.util.Collections;
-import java.util.Hashtable;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ProjectScope;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.launching.IVMInstall;
-import org.eclipse.jdt.launching.JavaRuntime;
-import org.eclipse.jst.common.project.facet.core.ClasspathHelper;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.osgi.service.prefs.BackingStoreException;
-
-/**
- * @author Konstantin Komissarchik
- */
-
-public final class JavaFacetUtils
-{
- public static final IProjectFacet JAVA_FACET
- = ProjectFacetsManager.getProjectFacet( IModuleConstants.JST_JAVA );
-
- public static final IProjectFacetVersion JAVA_13
- = JAVA_FACET.getVersion( "1.3" ); //$NON-NLS-1$
-
- public static final IProjectFacetVersion JAVA_14
- = JAVA_FACET.getVersion( "1.4" ); //$NON-NLS-1$
-
- public static final IProjectFacetVersion JAVA_50
- = JAVA_FACET.getVersion( "5.0" ); //$NON-NLS-1$
-
- public static final IProjectFacetVersion JAVA_60
- = JAVA_FACET.getVersion( "6.0" ); //$NON-NLS-1$
-
- public static String getCompilerLevel()
- {
- final IScopeContext context = new InstanceScope();
- final IEclipsePreferences prefs = context.getNode( JavaCore.PLUGIN_ID );
- String level = prefs.get( JavaCore.COMPILER_COMPLIANCE, null );
-
- if( level == null )
- {
- final Hashtable defaults = JavaCore.getDefaultOptions();
- level = (String) defaults.get( JavaCore.COMPILER_COMPLIANCE );
- }
-
- return level;
- }
-
- public static String getCompilerLevel( final IProject project )
- {
- final IScopeContext context = new ProjectScope( project );
- final IEclipsePreferences prefs = context.getNode( JavaCore.PLUGIN_ID );
- String level = prefs.get( JavaCore.COMPILER_COMPLIANCE, null );
-
- if( level == null )
- {
- level = getCompilerLevel();
- }
-
- return level;
- }
-
- public static void setCompilerLevel( final IProject project,
- final IProjectFacetVersion fv )
-
- throws CoreException
-
- {
- setCompilerLevel( project, facetToCompilerLevel( fv ) );
- }
-
- public static void setCompilerLevel( final IProject project,
- final String level )
-
- throws CoreException
-
- {
- final IScopeContext context = new ProjectScope( project );
-
- final IEclipsePreferences prefs
- = context.getNode( JavaCore.PLUGIN_ID );
-
- if( level.equals( JavaCore.VERSION_1_3 ) )
- {
- prefs.put( JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_1_3 );
- prefs.put( JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_1_1 );
- prefs.put( JavaCore.COMPILER_SOURCE, JavaCore.VERSION_1_3 );
- prefs.put( JavaCore.COMPILER_PB_ASSERT_IDENTIFIER, JavaCore.IGNORE );
- prefs.put( JavaCore.COMPILER_PB_ENUM_IDENTIFIER, JavaCore.IGNORE );
- }
- else if( level.equals( JavaCore.VERSION_1_4 ) )
- {
- prefs.put( JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_1_4 );
- prefs.put( JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_1_2 );
- prefs.put( JavaCore.COMPILER_SOURCE, JavaCore.VERSION_1_3 );
- prefs.put( JavaCore.COMPILER_PB_ASSERT_IDENTIFIER, JavaCore.WARNING );
- prefs.put( JavaCore.COMPILER_PB_ENUM_IDENTIFIER, JavaCore.WARNING );
- }
- else if( level.equals( JavaCore.VERSION_1_5 ) )
- {
- prefs.put( JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_1_5 );
- prefs.put( JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_1_5 );
- prefs.put( JavaCore.COMPILER_SOURCE, JavaCore.VERSION_1_5 );
- prefs.put( JavaCore.COMPILER_PB_ASSERT_IDENTIFIER, JavaCore.ERROR );
- prefs.put( JavaCore.COMPILER_PB_ENUM_IDENTIFIER, JavaCore.ERROR );
- }
- else if( level.equals( JavaCore.VERSION_1_6 ) )
- {
- prefs.put( JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_1_6 );
- prefs.put( JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_1_6 );
- prefs.put( JavaCore.COMPILER_SOURCE, JavaCore.VERSION_1_6 );
- prefs.put( JavaCore.COMPILER_PB_ASSERT_IDENTIFIER, JavaCore.ERROR );
- prefs.put( JavaCore.COMPILER_PB_ENUM_IDENTIFIER, JavaCore.ERROR );
- }
- else
- {
- throw new IllegalStateException();
- }
-
- try
- {
- prefs.flush();
- }
- catch( BackingStoreException e )
- {
- // TODO: Handle this.
- }
- }
-
- public static void scheduleFullBuild( final IProject project )
- {
- // This code is modeled after the code in
- // org.eclipse.jdt.internal.ui.util.CoreUtility.getBuildJob() method.
-
- final IWorkspace ws = ResourcesPlugin.getWorkspace();
-
- final String msg
- = NLS.bind( Resources.buildingMsg, project.getName() );
-
- final Job buildJob = new Job( msg )
- {
- public IStatus run( final IProgressMonitor monitor )
- {
- monitor.beginTask( msg, 2 );
-
- try
- {
- project.build( IncrementalProjectBuilder.FULL_BUILD,
- new SubProgressMonitor( monitor, 1 ) );
-
- ws.build( IncrementalProjectBuilder.INCREMENTAL_BUILD,
- new SubProgressMonitor( monitor, 1 ) );
-
- }
- catch( CoreException e )
- {
- return e.getStatus();
- }
- finally
- {
- monitor.done();
- }
-
- return Status.OK_STATUS;
- }
-
- public boolean belongsTo( final Object family )
- {
- return family == ResourcesPlugin.FAMILY_MANUAL_BUILD;
- }
- };
-
- buildJob.setRule( ws.getRuleFactory().buildRule() );
- buildJob.schedule();
- }
-
- public static void resetClasspath( final IProject project,
- final IProjectFacetVersion oldver,
- final IProjectFacetVersion newver )
-
- throws CoreException
-
- {
- if( oldver != null )
- {
- ClasspathHelper.removeClasspathEntries( project, oldver );
- }
-
- // If this was a java project before it became a faceted project or
- // the JRE container has been added manually, the above method will not
- // delete the old JRE container. Do it manually.
-
- removeJreContainer( project );
-
- if( ! ClasspathHelper.addClasspathEntries( project, newver ) )
- {
- final IVMInstall vm = JavaRuntime.getDefaultVMInstall();
-
- if( vm != null )
- {
- IPath path = new Path( JavaRuntime.JRE_CONTAINER );
- path = path.append( vm.getVMInstallType().getId() );
- path = path.append( vm.getName() );
-
- final IClasspathEntry cpe
- = JavaCore.newContainerEntry( path );
-
- final List entries = Collections.singletonList( cpe );
-
- ClasspathHelper.addClasspathEntries( project, newver, entries );
- }
- }
- }
-
- private static void removeJreContainer( final IProject proj )
-
- throws CoreException
-
- {
- final IJavaProject jproj = JavaCore.create( proj );
- final IClasspathEntry[] cp = jproj.getRawClasspath();
-
- int pos = -1;
-
- for( int i = 0; i < cp.length; i++ )
- {
- final IClasspathEntry cpe = cp[ i ];
-
- if( cpe.getEntryKind() == IClasspathEntry.CPE_CONTAINER &&
- cpe.getPath().segment( 0 ).equals( JavaRuntime.JRE_CONTAINER ) )
- {
- pos = i;
- break;
- }
- }
-
- if( pos == -1 )
- {
- return;
- }
-
- final IClasspathEntry[] newcp
- = new IClasspathEntry[ cp.length - 1 ];
-
- System.arraycopy( cp, 0, newcp, 0, pos );
- System.arraycopy( cp, pos + 1, newcp, pos, newcp.length - pos );
-
- jproj.setRawClasspath( newcp, null );
- }
-
- public static IProjectFacetVersion compilerLevelToFacet( final String ver )
- {
- if( ver.equals( "1.5" ) ) //$NON-NLS-1$
- {
- return JavaFacetUtils.JAVA_50;
- }
- else if( ver.equals( "1.6" ) ) //$NON-NLS-1$
- {
- return JavaFacetUtils.JAVA_60;
- }
- else
- {
- return JavaFacetUtils.JAVA_FACET.getVersion( ver );
- }
- }
-
- public static String facetToCompilerLevel( final IProjectFacetVersion fv )
- {
- if( fv == JAVA_50 )
- {
- return JavaCore.VERSION_1_5;
- }
- else if( fv == JAVA_60 )
- {
- return JavaCore.VERSION_1_6;
- }
- else
- {
- return fv.getVersionString();
- }
- }
-
- private static final class Resources
-
- extends NLS
-
- {
- public static String buildingMsg;
-
- static
- {
- initializeMessages( JavaFacetUtils.class.getName(),
- Resources.class );
- }
- }
-
-}
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetUtils.properties b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetUtils.properties
deleted file mode 100644
index 9f14d1c09..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetUtils.properties
+++ /dev/null
@@ -1 +0,0 @@
-buildingMsg = Building Project {0}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetValidator.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetValidator.java
deleted file mode 100644
index b675b77e2..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetValidator.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- * Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectValidator;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author Konstantin Komissarchik
- */
-
-public final class JavaFacetValidator
-
- implements IFacetedProjectValidator
-
-{
- public static final String MARKER_ID
- = "org.eclipse.jst.common.frameworks.javaVersionMismatch"; //$NON-NLS-1$
-
- public static final String ATTR_FACET_VERSION = "facetVersion"; //$NON-NLS-1$
- public static final String ATTR_COMPILER_LEVEL = "compilerLevel"; //$NON-NLS-1$
-
- public void validate( final IFacetedProject fproj )
-
- throws CoreException
-
- {
- final String level
- = JavaFacetUtils.getCompilerLevel( fproj.getProject() );
-
- final IProjectFacetVersion fv
- = fproj.getInstalledVersion( JavaFacetUtils.JAVA_FACET );
-
- if( JavaFacetUtils.compilerLevelToFacet( level ) != fv )
- {
- final IMarker marker
- = fproj.createErrorMarker( MARKER_ID, Resources.versionsDontMatch );
-
- marker.setAttribute( ATTR_FACET_VERSION, fv.getVersionString() );
- marker.setAttribute( ATTR_COMPILER_LEVEL, level );
- }
- }
-
- private static final class Resources
-
- extends NLS
-
- {
- public static String versionsDontMatch;
-
- static
- {
- initializeMessages( JavaFacetValidator.class.getName(),
- Resources.class );
- }
- }
-
-}
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetValidator.properties b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetValidator.properties
deleted file mode 100644
index bcd233c51..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetValidator.properties
+++ /dev/null
@@ -1 +0,0 @@
-versionsDontMatch = Java compiler level does not match the version of the installed Java project facet.
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetVersionChangeDelegate.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetVersionChangeDelegate.java
deleted file mode 100644
index 27fba51b6..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaFacetVersionChangeDelegate.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- * Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * @author Konstantin Komissarchik
- */
-
-public final class JavaFacetVersionChangeDelegate
-
- implements IDelegate
-
-{
- public void execute( final IProject project,
- final IProjectFacetVersion fv,
- final Object cfg,
- final IProgressMonitor monitor )
-
- throws CoreException
-
- {
- if( monitor != null )
- {
- monitor.beginTask( "", 1 ); //$NON-NLS-1$
- }
-
- try
- {
- // Find the version that's currently installed.
-
- final IFacetedProject fproj
- = ProjectFacetsManager.create( project );
-
- final IProjectFacetVersion oldver
- = fproj.getInstalledVersion( fv.getProjectFacet() );
-
- // Reset the classpath.
-
- JavaFacetUtils.resetClasspath( project, oldver, fv );
-
- // Reset the compiler level.
-
- JavaFacetUtils.setCompilerLevel( project, fv );
-
- // Schedule a full build of the project.
-
- JavaFacetUtils.scheduleFullBuild( project );
-
- if( monitor != null )
- {
- monitor.worked( 1 );
- }
- }
- finally
- {
- if( monitor != null )
- {
- monitor.done();
- }
- }
- }
-
-}
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaProjectFacetCreationDataModelProvider.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaProjectFacetCreationDataModelProvider.java
deleted file mode 100644
index 3b92413ea..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/JavaProjectFacetCreationDataModelProvider.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.jst.common.project.facet;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.wst.common.componentcore.datamodel.FacetProjectCreationDataModelProvider;
-import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-public class JavaProjectFacetCreationDataModelProvider extends FacetProjectCreationDataModelProvider {
-
- public JavaProjectFacetCreationDataModelProvider() {
- super();
- }
-
- public void init() {
- super.init();
- FacetDataModelMap map = (FacetDataModelMap) getProperty(FACET_DM_MAP);
- IDataModel javaFacet = DataModelFactory.createDataModel(new JavaFacetInstallDataModelProvider());
- map.add(javaFacet);
-
- Collection requiredFacets = new ArrayList();
- requiredFacets.add(ProjectFacetsManager.getProjectFacet(javaFacet.getStringProperty(IFacetDataModelProperties.FACET_ID)));
- setProperty(REQUIRED_FACETS_COLLECTION, requiredFacets);
- }
-
-}
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/WtpUtils.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/WtpUtils.java
deleted file mode 100644
index 0d05c4b26..000000000
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/project/facet/WtpUtils.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- * Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
-
-/**
- * @author Konstantin Komissarchik
- */
-
-public final class WtpUtils
-{
- private WtpUtils() {}
-
- private static final String WTP_NATURE
- = "org.eclipse.wst.common.modulecore.ModuleCoreNature"; //$NON-NLS-1$
-
- private static final String JEM_NATURE
- = "org.eclipse.jem.workbench.JavaEMFNature"; //$NON-NLS-1$
-
- public static void addNatures( final IProject project )
-
- throws CoreException
-
- {
- final IProjectDescription desc = project.getDescription();
- final String[] current = desc.getNatureIds();
- final String[] replacement = new String[ current.length + 2 ];
- System.arraycopy( current, 0, replacement, 0, current.length );
- replacement[ current.length ] = WTP_NATURE;
- replacement[ current.length + 1 ] = JEM_NATURE;
- desc.setNatureIds( replacement );
- project.setDescription( desc, null );
- }
-
- public static void addNaturestoEAR( final IProject project )
-
- throws CoreException
-
- {
- final IProjectDescription desc = project.getDescription();
- final String[] current = desc.getNatureIds();
- final String[] replacement = new String[ current.length + 1 ];
- System.arraycopy( current, 0, replacement, 0, current.length );
- replacement[ current.length ] = WTP_NATURE;
- desc.setNatureIds( replacement );
- project.setDescription( desc, null );
- }
-
- public static void removeNatures( final IProject project )
-
- throws CoreException
-
- {
- ProjectUtilities.removeNatureFromProject( project, WTP_NATURE );
- ProjectUtilities.removeNatureFromProject( project, JEM_NATURE );
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/.classpath b/plugins/org.eclipse.jst.j2ee.core/.classpath
deleted file mode 100644
index dcc933ecb..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-
-About This Content
-
-License
-
-anEarFile.saveAsDirectory(anEarFile.EXPAND_WAR_FILES | anEarFile.EXPAND_EJBJARFILES)
;
- *
- * If this archive was loaded from the same uri as it is being extracted to, the orignal will be
- * deleted and replaced with the directory
- *
- * @throws SaveFailureException
- * if an exception occurs while saving
- *
- * @throws ReopenException
- * if an exception occurs while re-syncing the archive to the newly saved
- * destination
- */
- public void extract(int expansionFlags) throws SaveFailureException, ReopenException;
-
- /**
- * For performance, save the archive without reopening; Further operations on this instance
- * without first calling {@link #reopen}will yield unexpected results.
- *
- * @see #extract(int)
- */
- public void extractNoReopen(int expansionFlags) throws SaveFailureException;
-
- /**
- * Save this archive as a directory using the specified uri
- *
- * The archive will not be renamed
- *
- * @throws SaveFailureException
- * if an exception occurs while saving
- *
- * @see #extract(int)
- */
- public void extractTo(String uri, int expansionFlags) throws SaveFailureException;
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @return java.lang.ClassLoader
- */
- public java.lang.ClassLoader getArchiveClassLoader();
-
- /**
- * Return a list of files in the ARchive that start with the prefix
- */
- public java.util.List filterFilesByPrefix(String prefix);
-
- /**
- * Return a list of files in the Archive excluding any file that starts with one of the prefixes
- */
- public java.util.List filterFilesWithoutPrefix(String[] prefixes);
-
- /**
- * Returns a filtered list of archive files; adds will not be reflected; use
- *
- * @link Archive#add(File)
- */
- public List getArchiveFiles();
-
- public ResourceSet getResourceSet();
-
- /**
- * Return a list of all root level (non-nested) opened archives containing files that have this
- * archive as its loading container; the set will be empty if no such opened archive exists.
- * This method supports the following scenario: open jar A. create jar B. Copy files from A to
- * B. Attempt to close jar A before saving jar B. Then attempt to save B, and the save fails
- * because A is closed. This method allows client code to test for dependent open archives
- * before saving the source archive. If the return value is not empty, the solution is to either
- * close or save B before closing A.
- */
- public Set getDependentOpenArchives();
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @return java.lang.String
- */
- public java.lang.String getExtraClasspath();
-
- /**
- * Used internally by the framework, specifically as an optimization when saving/exploding
- * archives with nested archives
- */
- public FileIterator getFilesForSave() throws IOException;
-
- public Collection getLoadedMofResources();
-
- public ArchiveManifest getManifest();
-
- public Resource getMofResource(String uri) throws FileNotFoundException, ResourceLoadException;
-
- public org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveOptions getOptions();
-
- /**
- * @see LoadStrategy#getResourceInputStream(String)
- */
- public InputStream getResourceInputStream(String uri) throws IOException;
-
- /**
- * Used for websphere runtime where archives are on disk (not nested in jars)
- *
- * @return list of absolute paths that represents this archive only, and in the case of
- * WARFiles, the nested loadable contents.
- */
- public RuntimeClasspathEntry[] getLocalRuntimeClassPath();
-
- /**
- * Used for websphere runtime where archives are on disk (not nested in jars) to get the
- * recursive behavior, the Archive must belong to an EAR file
- *
- * @return list of absolute paths that represents this archive, all it's prereqs, recursive.
- */
- public RuntimeClasspathEntry[] getFullRuntimeClassPath();
-
- /**
- * Used for websphere runtime where archives are on disk (not nested in jars) to get the
- * recursive behavior, the Archive must belong to an EAR file
- *
- * @return list of absolute paths that represents the dependencies of this Archive, all it's
- * prereqs, recursive.
- */
- public RuntimeClasspathEntry[] getDependencyClassPath();
-
- /**
- * Return the absolute path of the root from which meta resources get loaded
- */
- public String getResourcesPath() throws FileNotFoundException;
-
- /**
- * Return the absolute path of the root from which classes and properties are loaded
- */
- public String getBinariesPath() throws FileNotFoundException;
-
- /**
- * Optional filter for saving a subset of files; filter will be applied for all save and extract
- * invokations
- */
- public SaveFilter getSaveFilter();
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @return com.ibm.etools.archive.SaveStrategy
- */
- public org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.SaveStrategy getSaveStrategy();
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @return java.lang.String
- */
- public java.lang.String getXmlEncoding();
-
- /**
- * Return whether this Archive has
- *
- * @other on it's classpath, either directly or transitively
- * @param Archive
- * other - another archive in the same EAR file
- */
- public boolean hasClasspathVisibilityTo(Archive other);
-
- /**
- * Internal API; Used for implementation of {@link #hasClasspathVisibilityTo(Archive)}
- *
- * @param Archive
- * other - another archive in the same EAR file
- * @param Set
- * visited - the set of archives already visited
- */
- public boolean hasClasspathVisibilityTo(Archive other, Set visited, EARFile ear);
-
- /**
- * Perform any necessary initialization after the archive has been opened.
- */
- public void initializeAfterOpen();
-
- /**
- * Used internally by the load strategy
- */
- public void initializeClassLoader();
-
- /**
- * An item is considered a duplicate if the archive contains a file or loaded mof resource with
- * the uri, or if the uri is equal to the manifest uri
- */
- public boolean isDuplicate(String uri);
-
- /**
- * Used as an optimization at copy time
- */
- public boolean isManifestSet();
-
- public boolean isMofResourceLoaded(String uri);
-
- /**
- * Used internally for dispatch between the archive and the load strategy when building the file
- * list; clients should not need to call this method.
- */
- public boolean isNestedArchive(String uri);
-
- /**
- * Indicates whether the archive is still opened for read; if not, IOExceptions could be thrown
- * on attempts to get input streams on file entries. reopen() will cause this archive and its
- * nested archives to rebuild their load strategies
- */
- public boolean isOpen();
-
- /**
- * Create a new mof resource and add it to the resource set of the context of this archive; all
- * resources in memory are saved when the archive is saved
- *
- * @throws DuplicateObjectException
- * if a resource already exists in this archive having the uri
- */
- public Resource makeMofResource(String uri) throws DuplicateObjectException;
-
- /**
- * Create a new mof resource and add it to the resource set of the context of this archive; all
- * resources in memory are saved when the archive is saved
- *
- * @throws DuplicateObjectException
- * if a resource already exists in this archive having the uri
- */
- public Resource makeMofResource(String uri, EList extent) throws DuplicateObjectException;
-
- /**
- * Used internally for dispatch between the archive and the load strategy when building the file
- * list; clients should not need to call this method.
- */
- public Archive openNestedArchive(String uri) throws OpenFailureException;
-
- /**
- * Used internally for dispatch between the archive and the load strategy when building the file
- * list; clients should not need to call this method.
- */
- public Archive openNestedArchive(LooseArchive loose) throws OpenFailureException;
-
- /**
- * Set the value of the extra class path with no refresh of the class loader
- */
- public void primSetExtraClasspath(java.lang.String newExtraClasspath);
-
- public void remove(File aFile);
-
- /**
- * Used internally for "re-syncing" an archive after save; clients normally should not need this
- * method
- */
- public void reopen() throws ReopenException;
-
- /**
- * Used internally for reopening nested archives; clients normally should not need this method
- */
- public void reopen(Archive parent) throws ReopenException;
-
- /**
- * Save this archive as a jar file with the uri of the archive;
- *
- * @throws SaveFailureException
- * if an exception occurs while saving
- *
- * @throws ReopenException
- * if an exception occurs while re-syncing the archive to the newly saved
- * destination
- */
- public void save() throws SaveFailureException, ReopenException;
-
- /**
- * Save this archive using the save strategy specified
- *
- * @throws SaveFailureException
- * if an exception occurs while saving
- */
- public void save(SaveStrategy aStrategy) throws SaveFailureException;
-
- /**
- * Save this archive as a jar file using uri provided; If the uri is different than the URI of
- * this archive, the uri of this archive will change to the new uri (for reopen)
- *
- * @throws SaveFailureException
- * if an exception occurs while saving
- *
- * @throws ReopenException
- * if an exception occurs while re-syncing the archive to the newly saved
- * destination
- */
- public void saveAs(String uri) throws SaveFailureException, ReopenException;
-
- /**
- * For performance, save the archive without reopening; Further operations on this instance
- * without first calling {@link #reopen}will yield unexpected results.
- *
- * @see #saveAs(String)
- */
- public void saveAsNoReopen(String uri) throws SaveFailureException;
-
- /**
- * For performance, save the archive without reopening; Further operations on this instance
- * without first calling {@link #reopen}will yield unexpected results.
- *
- * @see #save()
- */
- public void saveNoReopen() throws SaveFailureException;
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @param newArchiveClassLoader
- * java.lang.ClassLoader
- */
- public void setArchiveClassLoader(java.lang.ClassLoader newArchiveClassLoader);
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @param newExtraClasspath
- * java.lang.String
- */
- public void setExtraClasspath(java.lang.String newExtraClasspath);
-
- public void setManifest(ArchiveManifest newManifest);
-
- public void setManifest(java.util.jar.Manifest aManifest);
-
- /**
- * Sets the Class-path manifest entry, rebuilds the class loader, and refreshes any reflected
- * java classes
- */
- public void setManifestClassPathAndRefresh(String classpath);
-
- public void setOptions(org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveOptions newOptions);
-
- /**
- * Optional filter for saving a subset of files; filter will be applied for all save and extract
- * invokations
- */
- public void setSaveFilter(SaveFilter aFilter);
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @param newSaveStrategy
- * com.ibm.etools.archive.SaveStrategy
- */
- public void setSaveStrategy(org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.SaveStrategy newSaveStrategy);
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @param newXmlEncoding
- * java.lang.String
- */
- public void setXmlEncoding(java.lang.String newXmlEncoding);
-
- /**
- * Determine whether java reflection should be set up for this archive
- */
- public boolean shouldUseJavaReflection();
-
- /**
- * Returns the value of the 'Types' attribute list.
- * The list contents are of type {@link java.lang.String}.
- *
- *
- * Runtime.getRuntime().addShutdownHook(new Thread() {
- public void run() {
- ((CommonarchivePackage)EPackage.Registry.INSTANCE.getEPackage(CommonarchivePackage.eNS_URI)).getCommonarchiveFactory().closeOpenArchives();
- }
- });
- */
- public void closeOpenArchives();
-
- public Archive copy(Archive anArchive);
-
- public ModuleFile copy(ModuleFile aModuleFile);
-
- /**
- * Creates a new archive for editing, and initializes it appropriately (adds an empty deployment
- * descriptor)
- */
- public ApplicationClientFile createApplicationClientFileInitialized(String uri);
-
- /**
- * Creates a new archive for editing, and initializes it appropriately
- */
- public Archive createArchiveInitialized(String uri);
-
- /**
- * Used internally; clients usually should not need this method
- */
- public LoadStrategy createChildLoadStrategy(String uri, LoadStrategy parent) throws java.io.IOException, java.io.FileNotFoundException;
-
- /**
- * Creates a new archive for editing, and initializes it appropriately (adds an empty deployment
- * descriptor)
- */
- public EARFile createEARFileInitialized(String uri);
-
- /**
- * Creates a new archive for editing, and initializes it appropriately (adds an empty deployment
- * descriptor)
- */
- public EJBJarFile createEJBJarFileInitialized(String uri);
-
- /**
- * Create an initialized archive based on the given URI and options
- */
- public Archive createArchiveInitialized(ArchiveOptions options, java.lang.String uri);
-
- /**
- * Create an initialized EAR based on the given URI and options
- */
- public EARFile createEARFileInitialized(ArchiveOptions options, java.lang.String uri);
-
- /**
- * Create an initialized EJB based on the given URI and options
- */
- public EJBJarFile createEJBJarFileInitialized(ArchiveOptions options, java.lang.String uri);
-
- /**
- * Initialize archive based on the options
- */
- public void initializeNewApplicationClientFile(ApplicationClientFile anArchive, String uri, ArchiveOptions options);
-
- /**
- * Initialize archive based on the options
- */
- public void initializeNewArchive(Archive anArchive, String uri, ArchiveOptions options);
-
- /**
- * Initialize archive based on the options
- */
- public void initializeNewEARFile(EARFile anArchive, String uri, ArchiveOptions options);
-
- /**
- * Initialized archive based on the options
- */
- public void initializeNewEJBJarFile(EJBJarFile anArchive, String uri, ArchiveOptions options);
-
- /**
- * Initialized archive based on the options
- */
- public void initializeNewModuleFile(ModuleFile anArchive, String uri, ArchiveOptions options);
-
- /**
- * Initialized archive based on the options
- */
- public void initializeNewRARFile(RARFile anArchive, String uri, ArchiveOptions options);
-
- /**
- * Initialized archive based on the options
- */
- public void initializeNewWARFile(WARFile anArchive, String uri, ArchiveOptions options);
-
- /**
- * Returns a NullLoadStrategyImpl; used for new archives
- */
- LoadStrategy createEmptyLoadStrategy();
-
- /**
- * Helper method to dynamically build a load strategy from the file system. Determines whether
- * the uri points to a jar file or directory and returns the appropriate strategy
- */
- public LoadStrategy createLoadStrategy(String uri) throws FileNotFoundException, IOException;
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public RARFile createRARFileInitialized(java.lang.String uri);
-
- /**
- * Creates a new archive for editing, and initializes it appropriately (adds an empty deployment
- * descriptor)
- */
- public WARFile createWARFileInitialized(String uri);
-
- /**
- * Helper method to introspect an archive and get it's class path entries before fully opening
- * the archive; needed because we may need extra classpath info to be able to open the 1.0 file
- * and deserialize its deployment descriptor
- *
- * @return a tokenized array of class path components
- */
- public String[] getManifestClassPathValues(String uri) throws OpenFailureException;
-
- /**
- * Return a list of all root level (non-nested) opened archives containing files that have the
- * parameter as its loading container; the set will be empty if no such opened archive exists.
- * This method supports the following scenario: open jar A. create jar B. Copy files from A to
- * B. Attempt to close jar A before saving jar B. Then attempt to save B, and the save fails
- * because A is closed. This method allows client code to test for dependent open archives
- * before saving the source archive. If the return value is not empty, the solution is to either
- * close or save B before closing A.
- */
- public Set getOpenArchivesDependingOn(Archive anArchive);
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public ApplicationClientFile openApplicationClientFile(ArchiveOptions options, String uri) throws OpenFailureException;
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public ApplicationClientFile openApplicationClientFile(LoadStrategy aLoadStrategy, String uri) throws OpenFailureException;
-
- public ApplicationClientFile openApplicationClientFile(String uri) throws OpenFailureException;
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public Archive openArchive(ArchiveOptions options, String uri) throws OpenFailureException;
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public Archive openArchive(LoadStrategy aLoadStrategy, String uri) throws OpenFailureException;
-
- /**
- * open the archive by the passed uri
- *
- * @return the appropriate kind of archive
- */
- public Archive openArchive(String uri) throws OpenFailureException;
-
- /**
- * open the archive by the passed uri, and use the extraClassPath for java reflection, in
- * addition to the manifest class-path; mostly used for ejb 1.0 jar files to be converted
- *
- * @return the appropriate kind of archive
- */
- public Archive openArchive(String uri, String extraClassPath) throws OpenFailureException;
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public EARFile openEARFile(ArchiveOptions options, String uri) throws OpenFailureException;
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public EARFile openEARFile(LoadStrategy aLoadStrategy, String uri) throws OpenFailureException;
-
- public EARFile openEARFile(String uri) throws OpenFailureException;
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public EJBJarFile openEJB11JarFile(ArchiveOptions options, String uri) throws OpenFailureException;
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public EJBJarFile openEJB11JarFile(LoadStrategy aLoadStrategy, String uri) throws OpenFailureException;
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public EJBJarFile openEJB11JarFile(String uri) throws OpenFailureException;
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public EJBJarFile openEJBJarFile(ArchiveOptions options, String uri) throws OpenFailureException;
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public EJBJarFile openEJBJarFile(LoadStrategy aLoadStrategy, String uri) throws OpenFailureException;
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public EJBJarFile openEJBJarFile(LoadStrategy aLoadStrategy, String uri, String extraClassPath) throws OpenFailureException;
-
- public EJBJarFile openEJBJarFile(String uri) throws OpenFailureException;
-
- public EJBJarFile openEJBJarFile(String uri, String extraClassPath) throws OpenFailureException;
-
- /**
- * Used internally for openning an Archive in an Archive
- */
- public Archive openNestedArchive(String uri, Archive parent) throws OpenFailureException;
-
- /**
- * Used internally for openning an Archive in an Archive
- */
- public Archive openNestedArchive(LooseArchive loose, Archive parent) throws OpenFailureException;
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public RARFile openRARFile(ArchiveOptions options, java.lang.String uri) throws OpenFailureException;
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public RARFile openRARFile(LoadStrategy aLoadStrategy, String uri) throws OpenFailureException;
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public RARFile openRARFile(String uri) throws OpenFailureException;
-
- public ReadOnlyDirectory openReadOnlyDirectory(String uri) throws java.io.IOException;
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public WARFile openWARFile(ArchiveOptions options, String uri) throws OpenFailureException;
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public WARFile openWARFile(LoadStrategy aLoadStrategy, String uri) throws OpenFailureException;
-
- public WARFile openWARFile(String uri) throws OpenFailureException;
-
- /**
- * Open the archive by the passed parameter, without attempting to determine what kind of
- * archive it is
- *
- * @return an instance of Archive, but not a subclass
- */
- Archive primOpenArchive(String uri) throws OpenFailureException;
-
- Archive primOpenArchive(LoadStrategy aLoadStrategy, String uri) throws OpenFailureException;
-
- Archive primOpenArchive(ArchiveOptions options, String uri) throws OpenFailureException;
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return WARFile value
- */
- WARFile createWARFile();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return EJBJarFile value
- */
- EJBJarFile createEJBJarFile();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return ApplicationClientFile value
- */
- ApplicationClientFile createApplicationClientFile();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return EARFile value
- */
- EARFile createEARFile();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return RARFile value
- */
- RARFile createRARFile();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return Archive value
- */
- Archive createArchive();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return File value
- */
- File createFile();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return ReadOnlyDirectory value
- */
- ReadOnlyDirectory createReadOnlyDirectory();
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- CommonarchivePackage getCommonarchivePackage();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return EJBModuleRef value
- */
- EJBModuleRef createEJBModuleRef();
-
- /**
- * Convienince method for wrapping a standalone EJB JAR file
- */
- EJBModuleRef createEJBModuleRef(EJBJarFile ejbJarFile);
-
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return WebModuleRef value
- */
- WebModuleRef createWebModuleRef();
-
- /**
- * Convienince method for wrapping a standalone WAR file
- */
- WebModuleRef createWebModuleRef(WARFile warFile);
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return ClientModuleRef value
- */
- ClientModuleRef createClientModuleRef();
-
- /**
- * Convienince method for wrapping a standalone Application Client JAR file
- */
- ClientModuleRef createClientModuleRef(ApplicationClientFile clientFile);
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return ConnectorModuleRef value
- */
- ConnectorModuleRef createConnectorModuleRef();
-
- /**
- * Convienince method for wrapping a standalone RAR file
- */
- ConnectorModuleRef createConnectorModuleRef(RARFile rarFile);
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/CommonarchivePackage.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/CommonarchivePackage.java
deleted file mode 100644
index 5861cd110..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/CommonarchivePackage.java
+++ /dev/null
@@ -1,1327 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal;
-
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.jst.j2ee.common.CommonPackage;
-
-/**
- * @lastgen interface CommonarchivePackage extends EPackage {}
- */
-public interface CommonarchivePackage extends EPackage {
- /**
- * The package name.
- *
- * @generated
- */
- String eNAME = "commonarchivecore"; //$NON-NLS-1$
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int CONTAINER = 7;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int WAR_FILE = 3;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int MODULE_FILE = 6;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EAR_FILE = 4;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int MODULE_REF = 10;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EJB_MODULE_REF = 11;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int WEB_MODULE_REF = 12;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int CLIENT_MODULE_REF = 13;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int CONNECTOR_MODULE_REF = 14;
- /**
- * @generated This field/method will be replaced during code generation.
- */
-
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int APPLICATION_CLIENT_FILE = 5;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EJB_JAR_FILE = 2;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int RAR_FILE = 9;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int ARCHIVE = 1;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int FILE = 0;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int FILE__URI = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 0;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int FILE__LAST_MODIFIED = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 1;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int FILE__SIZE = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 2;
- /**
- * The feature id for the 'Directory Entry' attribute.
- *
- * @generated
- * @ordered
- */
- int FILE__DIRECTORY_ENTRY = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 3;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int FILE__ORIGINAL_URI = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 4;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int FILE__LOADING_CONTAINER = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 5;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int FILE__CONTAINER = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 6;
-
- /**
- * The number of structural features of the 'File' class.
- *
- * @generated
- * @ordered
- */
- int FILE_FEATURE_COUNT = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 7;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int CONTAINER__URI = FILE__URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int CONTAINER__LAST_MODIFIED = FILE__LAST_MODIFIED;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int CONTAINER__SIZE = FILE__SIZE;
- /**
- * The feature id for the 'Directory Entry' attribute.
- *
- * @generated
- * @ordered
- */
- int CONTAINER__DIRECTORY_ENTRY = FILE__DIRECTORY_ENTRY;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int CONTAINER__ORIGINAL_URI = FILE__ORIGINAL_URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int CONTAINER__LOADING_CONTAINER = FILE__LOADING_CONTAINER;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int CONTAINER__CONTAINER = FILE__CONTAINER;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int CONTAINER__FILES = FILE_FEATURE_COUNT + 0;
- /**
- * The number of structural features of the the 'Container' class.
- *
- * @generated
- * @ordered
- */
- int CONTAINER_FEATURE_COUNT = FILE_FEATURE_COUNT + 1;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int ARCHIVE__URI = CONTAINER__URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int ARCHIVE__LAST_MODIFIED = CONTAINER__LAST_MODIFIED;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int ARCHIVE__SIZE = CONTAINER__SIZE;
- /**
- * The feature id for the 'Directory Entry' attribute.
- *
- * @generated
- * @ordered
- */
- int ARCHIVE__DIRECTORY_ENTRY = CONTAINER__DIRECTORY_ENTRY;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int ARCHIVE__ORIGINAL_URI = CONTAINER__ORIGINAL_URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int ARCHIVE__LOADING_CONTAINER = CONTAINER__LOADING_CONTAINER;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int ARCHIVE__CONTAINER = CONTAINER__CONTAINER;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int ARCHIVE__FILES = CONTAINER__FILES;
- /**
- * The feature id for the 'Types' attribute list.
- *
- *
- * @generated
- * @ordered
- */
- int ARCHIVE__TYPES = CONTAINER_FEATURE_COUNT + 0;
-
- /**
- * The number of structural features of the the 'Archive' class.
- *
- * @generated
- * @ordered
- */
- int ARCHIVE_FEATURE_COUNT = CONTAINER_FEATURE_COUNT + 1;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int MODULE_FILE__URI = ARCHIVE__URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int MODULE_FILE__LAST_MODIFIED = ARCHIVE__LAST_MODIFIED;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int MODULE_FILE__SIZE = ARCHIVE__SIZE;
- /**
- * The feature id for the 'Directory Entry' attribute.
- *
- * @generated
- * @ordered
- */
- int MODULE_FILE__DIRECTORY_ENTRY = ARCHIVE__DIRECTORY_ENTRY;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int MODULE_FILE__ORIGINAL_URI = ARCHIVE__ORIGINAL_URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int MODULE_FILE__LOADING_CONTAINER = ARCHIVE__LOADING_CONTAINER;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int MODULE_FILE__CONTAINER = ARCHIVE__CONTAINER;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int MODULE_FILE__FILES = ARCHIVE__FILES;
- /**
- * The feature id for the 'Types' attribute list.
- *
- *
- * @generated
- * @ordered
- */
- int MODULE_FILE__TYPES = ARCHIVE__TYPES;
-
- /**
- * The number of structural features of the the 'Module File' class.
- *
- * @generated
- * @ordered
- */
- int MODULE_FILE_FEATURE_COUNT = ARCHIVE_FEATURE_COUNT + 0;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EJB_JAR_FILE__URI = MODULE_FILE__URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EJB_JAR_FILE__LAST_MODIFIED = MODULE_FILE__LAST_MODIFIED;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EJB_JAR_FILE__SIZE = MODULE_FILE__SIZE;
- /**
- * The feature id for the 'Directory Entry' attribute.
- *
- * @generated
- * @ordered
- */
- int EJB_JAR_FILE__DIRECTORY_ENTRY = MODULE_FILE__DIRECTORY_ENTRY;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EJB_JAR_FILE__ORIGINAL_URI = MODULE_FILE__ORIGINAL_URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EJB_JAR_FILE__LOADING_CONTAINER = MODULE_FILE__LOADING_CONTAINER;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EJB_JAR_FILE__CONTAINER = MODULE_FILE__CONTAINER;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EJB_JAR_FILE__FILES = MODULE_FILE__FILES;
- /**
- * The feature id for the 'Types' attribute list.
- *
- *
- * @generated
- * @ordered
- */
- int EJB_JAR_FILE__TYPES = MODULE_FILE__TYPES;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EJB_JAR_FILE__DEPLOYMENT_DESCRIPTOR = MODULE_FILE_FEATURE_COUNT + 0;
- /**
- * The number of structural features of the the 'EJB Jar File' class.
- *
- * @generated
- * @ordered
- */
- int EJB_JAR_FILE_FEATURE_COUNT = MODULE_FILE_FEATURE_COUNT + 1;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int WAR_FILE__URI = MODULE_FILE__URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int WAR_FILE__LAST_MODIFIED = MODULE_FILE__LAST_MODIFIED;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int WAR_FILE__SIZE = MODULE_FILE__SIZE;
- /**
- * The feature id for the 'Directory Entry' attribute.
- *
- * @generated
- * @ordered
- */
- int WAR_FILE__DIRECTORY_ENTRY = MODULE_FILE__DIRECTORY_ENTRY;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int WAR_FILE__ORIGINAL_URI = MODULE_FILE__ORIGINAL_URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int WAR_FILE__LOADING_CONTAINER = MODULE_FILE__LOADING_CONTAINER;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int WAR_FILE__CONTAINER = MODULE_FILE__CONTAINER;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int WAR_FILE__FILES = MODULE_FILE__FILES;
- /**
- * The feature id for the 'Types' attribute list.
- *
- *
- * @generated
- * @ordered
- */
- int WAR_FILE__TYPES = MODULE_FILE__TYPES;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int WAR_FILE__DEPLOYMENT_DESCRIPTOR = MODULE_FILE_FEATURE_COUNT + 0;
- /**
- * The number of structural features of the the 'WAR File' class.
- *
- * @generated
- * @ordered
- */
- int WAR_FILE_FEATURE_COUNT = MODULE_FILE_FEATURE_COUNT + 1;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EAR_FILE__URI = MODULE_FILE__URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EAR_FILE__LAST_MODIFIED = MODULE_FILE__LAST_MODIFIED;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EAR_FILE__SIZE = MODULE_FILE__SIZE;
- /**
- * The feature id for the 'Directory Entry' attribute.
- *
- * @generated
- * @ordered
- */
- int EAR_FILE__DIRECTORY_ENTRY = MODULE_FILE__DIRECTORY_ENTRY;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EAR_FILE__ORIGINAL_URI = MODULE_FILE__ORIGINAL_URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EAR_FILE__LOADING_CONTAINER = MODULE_FILE__LOADING_CONTAINER;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EAR_FILE__CONTAINER = MODULE_FILE__CONTAINER;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EAR_FILE__FILES = MODULE_FILE__FILES;
- /**
- * The feature id for the 'Types' attribute list.
- *
- *
- * @generated
- * @ordered
- */
- int EAR_FILE__TYPES = MODULE_FILE__TYPES;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EAR_FILE__MODULE_REFS = MODULE_FILE_FEATURE_COUNT + 0;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EAR_FILE__DEPLOYMENT_DESCRIPTOR = MODULE_FILE_FEATURE_COUNT + 1;
- /**
- * The number of structural features of the the 'EAR File' class.
- *
- * @generated
- * @ordered
- */
- int EAR_FILE_FEATURE_COUNT = MODULE_FILE_FEATURE_COUNT + 2;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int APPLICATION_CLIENT_FILE__URI = MODULE_FILE__URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int APPLICATION_CLIENT_FILE__LAST_MODIFIED = MODULE_FILE__LAST_MODIFIED;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int APPLICATION_CLIENT_FILE__SIZE = MODULE_FILE__SIZE;
- /**
- * The feature id for the 'Directory Entry' attribute.
- *
- * @generated
- * @ordered
- */
- int APPLICATION_CLIENT_FILE__DIRECTORY_ENTRY = MODULE_FILE__DIRECTORY_ENTRY;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int APPLICATION_CLIENT_FILE__ORIGINAL_URI = MODULE_FILE__ORIGINAL_URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int APPLICATION_CLIENT_FILE__LOADING_CONTAINER = MODULE_FILE__LOADING_CONTAINER;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int APPLICATION_CLIENT_FILE__CONTAINER = MODULE_FILE__CONTAINER;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int APPLICATION_CLIENT_FILE__FILES = MODULE_FILE__FILES;
- /**
- * The feature id for the 'Types' attribute list.
- *
- *
- * @generated
- * @ordered
- */
- int APPLICATION_CLIENT_FILE__TYPES = MODULE_FILE__TYPES;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int APPLICATION_CLIENT_FILE__DEPLOYMENT_DESCRIPTOR = MODULE_FILE_FEATURE_COUNT + 0;
- /**
- * The number of structural features of the 'Application Client File' class.
- *
- * @generated
- * @ordered
- */
- int APPLICATION_CLIENT_FILE_FEATURE_COUNT = MODULE_FILE_FEATURE_COUNT + 1;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int READ_ONLY_DIRECTORY = 8;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int READ_ONLY_DIRECTORY__URI = CONTAINER__URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int READ_ONLY_DIRECTORY__LAST_MODIFIED = CONTAINER__LAST_MODIFIED;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int READ_ONLY_DIRECTORY__SIZE = CONTAINER__SIZE;
- /**
- * The feature id for the 'Directory Entry' attribute.
- *
- * @generated
- * @ordered
- */
- int READ_ONLY_DIRECTORY__DIRECTORY_ENTRY = CONTAINER__DIRECTORY_ENTRY;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int READ_ONLY_DIRECTORY__ORIGINAL_URI = CONTAINER__ORIGINAL_URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int READ_ONLY_DIRECTORY__LOADING_CONTAINER = CONTAINER__LOADING_CONTAINER;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int READ_ONLY_DIRECTORY__CONTAINER = CONTAINER__CONTAINER;
-
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int READ_ONLY_DIRECTORY__FILES = CONTAINER__FILES;
- /**
- * The number of structural features of the the 'Read Only Directory' class.
- *
- * @generated
- * @ordered
- */
- int READ_ONLY_DIRECTORY_FEATURE_COUNT = CONTAINER_FEATURE_COUNT + 0;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int RAR_FILE__URI = MODULE_FILE__URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int RAR_FILE__LAST_MODIFIED = MODULE_FILE__LAST_MODIFIED;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int RAR_FILE__SIZE = MODULE_FILE__SIZE;
- /**
- * The feature id for the 'Directory Entry' attribute.
- *
- * @generated
- * @ordered
- */
- int RAR_FILE__DIRECTORY_ENTRY = MODULE_FILE__DIRECTORY_ENTRY;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int RAR_FILE__ORIGINAL_URI = MODULE_FILE__ORIGINAL_URI;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int RAR_FILE__LOADING_CONTAINER = MODULE_FILE__LOADING_CONTAINER;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int RAR_FILE__CONTAINER = MODULE_FILE__CONTAINER;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int RAR_FILE__FILES = MODULE_FILE__FILES;
- /**
- * The feature id for the 'Types' attribute list.
- *
- *
- * @generated
- * @ordered
- */
- int RAR_FILE__TYPES = MODULE_FILE__TYPES;
-
- /**
- * The feature id for the 'Deployment Descriptor' reference.
- *
- * @generated
- * @ordered
- */
- int RAR_FILE__DEPLOYMENT_DESCRIPTOR = MODULE_FILE_FEATURE_COUNT + 0;
-
- /**
- * The number of structural features of the the 'RAR File' class.
- *
- * @generated
- * @ordered
- */
- int RAR_FILE_FEATURE_COUNT = MODULE_FILE_FEATURE_COUNT + 1;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int MODULE_REF__MODULE_FILE = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 0;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int MODULE_REF__EAR_FILE = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 1;
-
- /**
- * The feature id for the 'Module' reference.
- *
- *
- * @generated
- * @ordered
- */
- int MODULE_REF__MODULE = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 2;
-
- /**
- * The number of structural features of the the 'Module Ref' class.
- *
- * @generated
- * @ordered
- */
- int MODULE_REF_FEATURE_COUNT = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 3;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EJB_MODULE_REF__MODULE_FILE = MODULE_REF__MODULE_FILE;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int EJB_MODULE_REF__EAR_FILE = MODULE_REF__EAR_FILE;
-
- /**
- * The feature id for the 'Module' reference.
- *
- *
- * @generated
- * @ordered
- */
- int EJB_MODULE_REF__MODULE = MODULE_REF__MODULE;
-
- /**
- * The number of structural features of the the 'EJB Module Ref' class.
- *
- * @generated
- * @ordered
- */
- int EJB_MODULE_REF_FEATURE_COUNT = MODULE_REF_FEATURE_COUNT + 0;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int WEB_MODULE_REF__MODULE_FILE = MODULE_REF__MODULE_FILE;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int WEB_MODULE_REF__EAR_FILE = MODULE_REF__EAR_FILE;
-
- /**
- * The feature id for the 'Module' reference.
- *
- *
- * @generated
- * @ordered
- */
- int WEB_MODULE_REF__MODULE = MODULE_REF__MODULE;
-
- /**
- * The number of structural features of the the 'Web Module Ref' class.
- *
- * @generated
- * @ordered
- */
- int WEB_MODULE_REF_FEATURE_COUNT = MODULE_REF_FEATURE_COUNT + 0;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int CLIENT_MODULE_REF__MODULE_FILE = MODULE_REF__MODULE_FILE;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int CLIENT_MODULE_REF__EAR_FILE = MODULE_REF__EAR_FILE;
-
- /**
- * The feature id for the 'Module' reference.
- *
- *
- * @generated
- * @ordered
- */
- int CLIENT_MODULE_REF__MODULE = MODULE_REF__MODULE;
-
- /**
- * The number of structural features of the the 'Client Module Ref' class.
- *
- * @generated
- * @ordered
- */
- int CLIENT_MODULE_REF_FEATURE_COUNT = MODULE_REF_FEATURE_COUNT + 0;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int CONNECTOR_MODULE_REF__MODULE_FILE = MODULE_REF__MODULE_FILE;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- int CONNECTOR_MODULE_REF__EAR_FILE = MODULE_REF__EAR_FILE;
-
- /**
- * The feature id for the 'Module' reference.
- *
- *
- * @generated
- * @ordered
- */
- int CONNECTOR_MODULE_REF__MODULE = MODULE_REF__MODULE;
-
- /**
- * The number of structural features of the the 'Connector Module Ref' class.
- *
- * @generated
- * @ordered
- */
- int CONNECTOR_MODULE_REF_FEATURE_COUNT = MODULE_REF_FEATURE_COUNT + 0;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- String eNS_URI = "commonarchive.xmi"; //$NON-NLS-1$
- /**
- * The package namespace name.
- *
- * @generated
- */
- String eNS_PREFIX = "org.eclipse.jst.j2ee.commonarchivecore"; //$NON-NLS-1$
-
- /**
- * The singleton instance of the package.
- *
- * @generated
- */
- CommonarchivePackage eINSTANCE = org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchivePackageImpl.init();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return Container object
- */
- EClass getContainer();
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- EReference getContainer_Files();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return WARFile object
- */
- EClass getWARFile();
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- EReference getWARFile_DeploymentDescriptor();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return ModuleFile object
- */
- EClass getModuleFile();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return EARFile object
- */
- EClass getEARFile();
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- EReference getEARFile_DeploymentDescriptor();
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- EReference getEARFile_ModuleRefs();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return ModuleRef object
- */
- EClass getModuleRef();
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- EReference getModuleRef_ModuleFile();
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- EReference getModuleRef_EarFile();
-
- /**
- * Returns the meta object for the reference '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleRef#getModule Module}'.
- *
- *
- * @return the meta object for the reference 'Module'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleRef#getModule()
- * @see #getModuleRef()
- * @generated
- */
- EReference getModuleRef_Module();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return EJBModuleRef object
- */
- EClass getEJBModuleRef();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return WebModuleRef object
- */
- EClass getWebModuleRef();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return ClientModuleRef object
- */
- EClass getClientModuleRef();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return ConnectorModuleRef object
- */
- EClass getConnectorModuleRef();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return ApplicationClientFile object
- */
- EClass getApplicationClientFile();
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- EReference getApplicationClientFile_DeploymentDescriptor();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return EJBJarFile object
- */
- EClass getEJBJarFile();
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- EReference getEJBJarFile_DeploymentDescriptor();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return RARFile object
- */
- EClass getRARFile();
-
- /**
- * Returns the meta object for the reference '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.RARFile#getDeploymentDescriptor Deployment Descriptor}'.
- *
- * @return the meta object for the reference 'Deployment Descriptor'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.RARFile#getDeploymentDescriptor()
- * @see #getRARFile()
- * @generated
- */
- EReference getRARFile_DeploymentDescriptor();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return Archive object
- */
- EClass getArchive();
-
- /**
- * Returns the meta object for the attribute list '
- * {@link org.eclipse.jst.j2ee.internal.commonarchivecore.Archive#getTypes Types}'.
- *
- * @return the meta object for the attribute list 'Types'.
- * @see org.eclipse.jst.j2ee.internal.commonarchivecore.Archive#getTypes()
- * @see #getArchive()
- * @generated
- */
- EAttribute getArchive_Types();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return File object
- */
- EClass getFile();
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- EAttribute getFile_URI();
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- EAttribute getFile_LastModified();
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- EAttribute getFile_Size();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.File#isDirectoryEntry Directory Entry}'.
- *
- * @return the meta object for the attribute 'Directory Entry'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.File#isDirectoryEntry()
- * @see #getFile()
- * @generated
- */
- EAttribute getFile_DirectoryEntry();
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- EAttribute getFile_OriginalURI();
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- EReference getFile_LoadingContainer();
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- EReference getFile_Container();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return ReadOnlyDirectory object
- */
- EClass getReadOnlyDirectory();
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- CommonarchiveFactory getCommonarchiveFactory();
-
- /**
- *
- * Defines literals for the meta objects that represent
- *
- *
- *
- * @generated
- */
- interface Literals {
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.impl.FileImpl File}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.FileImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchivePackageImpl#getFile()
- * @generated
- */
- EClass FILE = eINSTANCE.getFile();
-
- /**
- * The meta object literal for the 'URI' attribute feature.
- *
- *
- * @generated
- */
- EAttribute FILE__URI = eINSTANCE.getFile_URI();
-
- /**
- * The meta object literal for the 'Last Modified' attribute feature.
- *
- *
- * @generated
- */
- EAttribute FILE__LAST_MODIFIED = eINSTANCE.getFile_LastModified();
-
- /**
- * The meta object literal for the 'Size' attribute feature.
- *
- *
- * @generated
- */
- EAttribute FILE__SIZE = eINSTANCE.getFile_Size();
-
- /**
- * The meta object literal for the 'Directory Entry' attribute feature.
- *
- *
- * @generated
- */
- EAttribute FILE__DIRECTORY_ENTRY = eINSTANCE.getFile_DirectoryEntry();
-
- /**
- * The meta object literal for the 'Original URI' attribute feature.
- *
- *
- * @generated
- */
- EAttribute FILE__ORIGINAL_URI = eINSTANCE.getFile_OriginalURI();
-
- /**
- * The meta object literal for the 'Loading Container' reference feature.
- *
- *
- * @generated
- */
- EReference FILE__LOADING_CONTAINER = eINSTANCE.getFile_LoadingContainer();
-
- /**
- * The meta object literal for the 'Container' container reference feature.
- *
- *
- * @generated
- */
- EReference FILE__CONTAINER = eINSTANCE.getFile_Container();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ArchiveImpl Archive}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ArchiveImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchivePackageImpl#getArchive()
- * @generated
- */
- EClass ARCHIVE = eINSTANCE.getArchive();
-
- /**
- * The meta object literal for the 'Types' attribute list feature.
- *
- *
- * @generated
- */
- EAttribute ARCHIVE__TYPES = eINSTANCE.getArchive_Types();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.impl.EJBJarFileImpl EJB Jar File}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.EJBJarFileImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchivePackageImpl#getEJBJarFile()
- * @generated
- */
- EClass EJB_JAR_FILE = eINSTANCE.getEJBJarFile();
-
- /**
- * The meta object literal for the 'Deployment Descriptor' reference feature.
- *
- *
- * @generated
- */
- EReference EJB_JAR_FILE__DEPLOYMENT_DESCRIPTOR = eINSTANCE.getEJBJarFile_DeploymentDescriptor();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl WAR File}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchivePackageImpl#getWARFile()
- * @generated
- */
- EClass WAR_FILE = eINSTANCE.getWARFile();
-
- /**
- * The meta object literal for the 'Deployment Descriptor' reference feature.
- *
- *
- * @generated
- */
- EReference WAR_FILE__DEPLOYMENT_DESCRIPTOR = eINSTANCE.getWARFile_DeploymentDescriptor();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.impl.EARFileImpl EAR File}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.EARFileImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchivePackageImpl#getEARFile()
- * @generated
- */
- EClass EAR_FILE = eINSTANCE.getEARFile();
-
- /**
- * The meta object literal for the 'Module Refs' containment reference list feature.
- *
- *
- * @generated
- */
- EReference EAR_FILE__MODULE_REFS = eINSTANCE.getEARFile_ModuleRefs();
-
- /**
- * The meta object literal for the 'Deployment Descriptor' reference feature.
- *
- *
- * @generated
- */
- EReference EAR_FILE__DEPLOYMENT_DESCRIPTOR = eINSTANCE.getEARFile_DeploymentDescriptor();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ApplicationClientFileImpl Application Client File}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ApplicationClientFileImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchivePackageImpl#getApplicationClientFile()
- * @generated
- */
- EClass APPLICATION_CLIENT_FILE = eINSTANCE.getApplicationClientFile();
-
- /**
- * The meta object literal for the 'Deployment Descriptor' reference feature.
- *
- *
- * @generated
- */
- EReference APPLICATION_CLIENT_FILE__DEPLOYMENT_DESCRIPTOR = eINSTANCE.getApplicationClientFile_DeploymentDescriptor();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleFileImpl Module File}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleFileImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchivePackageImpl#getModuleFile()
- * @generated
- */
- EClass MODULE_FILE = eINSTANCE.getModuleFile();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ContainerImpl Container}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ContainerImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchivePackageImpl#getContainer()
- * @generated
- */
- EClass CONTAINER = eINSTANCE.getContainer();
-
- /**
- * The meta object literal for the 'Files' containment reference list feature.
- *
- *
- * @generated
- */
- EReference CONTAINER__FILES = eINSTANCE.getContainer_Files();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ReadOnlyDirectoryImpl Read Only Directory}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ReadOnlyDirectoryImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchivePackageImpl#getReadOnlyDirectory()
- * @generated
- */
- EClass READ_ONLY_DIRECTORY = eINSTANCE.getReadOnlyDirectory();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.impl.RARFileImpl RAR File}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.RARFileImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchivePackageImpl#getRARFile()
- * @generated
- */
- EClass RAR_FILE = eINSTANCE.getRARFile();
-
- /**
- * The meta object literal for the 'Deployment Descriptor' reference feature.
- *
- *
- * @generated
- */
- EReference RAR_FILE__DEPLOYMENT_DESCRIPTOR = eINSTANCE.getRARFile_DeploymentDescriptor();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleRefImpl Module Ref}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleRefImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchivePackageImpl#getModuleRef()
- * @generated
- */
- EClass MODULE_REF = eINSTANCE.getModuleRef();
-
- /**
- * The meta object literal for the 'Module File' reference feature.
- *
- *
- * @generated
- */
- EReference MODULE_REF__MODULE_FILE = eINSTANCE.getModuleRef_ModuleFile();
-
- /**
- * The meta object literal for the 'Ear File' container reference feature.
- *
- *
- * @generated
- */
- EReference MODULE_REF__EAR_FILE = eINSTANCE.getModuleRef_EarFile();
-
- /**
- * The meta object literal for the 'Module' reference feature.
- *
- *
- * @generated
- */
- EReference MODULE_REF__MODULE = eINSTANCE.getModuleRef_Module();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.impl.EJBModuleRefImpl EJB Module Ref}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.EJBModuleRefImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchivePackageImpl#getEJBModuleRef()
- * @generated
- */
- EClass EJB_MODULE_REF = eINSTANCE.getEJBModuleRef();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WebModuleRefImpl Web Module Ref}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WebModuleRefImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchivePackageImpl#getWebModuleRef()
- * @generated
- */
- EClass WEB_MODULE_REF = eINSTANCE.getWebModuleRef();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ClientModuleRefImpl Client Module Ref}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ClientModuleRefImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchivePackageImpl#getClientModuleRef()
- * @generated
- */
- EClass CLIENT_MODULE_REF = eINSTANCE.getClientModuleRef();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ConnectorModuleRefImpl Connector Module Ref}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ConnectorModuleRefImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchivePackageImpl#getConnectorModuleRef()
- * @generated
- */
- EClass CONNECTOR_MODULE_REF = eINSTANCE.getConnectorModuleRef();
-
- }
-
-} //CommonarchivePackage
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/ConnectorModuleRef.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/ConnectorModuleRef.java
deleted file mode 100644
index cdb536bf0..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/ConnectorModuleRef.java
+++ /dev/null
@@ -1,26 +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.jst.j2ee.commonarchivecore.internal;
-
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveWrappedException;
-import org.eclipse.jst.j2ee.jca.Connector;
-
-/**
- * @generated
- */
-public interface ConnectorModuleRef extends ModuleRef {
- Connector getConnector() throws ArchiveWrappedException;
-
-} //ConnectorModuleRef
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/Container.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/Container.java
deleted file mode 100644
index cea334e92..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/Container.java
+++ /dev/null
@@ -1,83 +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.jst.j2ee.commonarchivecore.internal;
-
-
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * @generated
- */
-public interface Container extends File {
-
- /**
- * Indicate whether the archive contains a file having a relative path of the parameter; the uri
- * may or may not have a leading separator
- */
- public boolean containsFile(String uri);
-
- /**
- * Return the absolute path of the file from its load strategy, if it is known. Should be used
- * mainly for read-only runtime purposes, as edit-time modifications may make the result
- * undefined.
- *
- * @throws FileNotFoundException
- * if the archive is "virtual", eg, a nested jar
- */
- public String getAbsolutePath() throws FileNotFoundException;
-
- public File getFile(String uri) throws FileNotFoundException;
-
- public InputStream getInputStream(String uri) throws FileNotFoundException, IOException;
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @return com.ibm.etools.archive.LoadStrategy
- */
- public org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy getLoadStrategy();
-
- /**
- * Indicates whether the archive has ever had its files enumerated; used as an optimization
- */
- public boolean isIndexed();
-
- /**
- * Goes directly to the strategy
- */
- public InputStream primGetInputStream(String uri) throws FileNotFoundException, IOException;
-
- public void rebuildFileIndex();
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @param newLoadStrategy
- * com.ibm.etools.archive.LoadStrategy
- */
- public void setLoadStrategy(org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy newLoadStrategy);
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return The list of Files references
- */
- EList getFiles();
-
- /**
- * Clears the list of files in this Container and drops the index
- */
- public void clearFiles();
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/EARFile.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/EARFile.java
deleted file mode 100644
index 20c7545d5..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/EARFile.java
+++ /dev/null
@@ -1,299 +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.jst.j2ee.commonarchivecore.internal;
-
-
-
-import java.io.FileNotFoundException;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jst.j2ee.application.Application;
-import org.eclipse.jst.j2ee.application.ConnectorModule;
-import org.eclipse.jst.j2ee.application.EjbModule;
-import org.eclipse.jst.j2ee.application.JavaClientModule;
-import org.eclipse.jst.j2ee.application.Module;
-import org.eclipse.jst.j2ee.application.WebModule;
-import org.eclipse.jst.j2ee.client.ApplicationClient;
-import org.eclipse.jst.j2ee.common.EjbRef;
-import org.eclipse.jst.j2ee.common.SecurityRole;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveWrappedException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DuplicateObjectException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.EmptyResourceException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ObjectNotFoundException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ResourceLoadException;
-import org.eclipse.jst.j2ee.ejb.EJBJar;
-import org.eclipse.jst.j2ee.ejb.EnterpriseBean;
-import org.eclipse.jst.j2ee.jca.Connector;
-import org.eclipse.jst.j2ee.webapplication.WebApp;
-
-
-/**
- * @generated
- */
-public interface EARFile extends ModuleFile {
-
- /**
- * Makes a copy of
- *
- * @aModuleFile, using its local deployment descriptor; creates a new Module and adds it to the
- * Application deployment descriptor of this EAR file and adds the copy of the
- * ModuleFile to this EAR.
- *
- * @return The copied module file
- *
- * @exception DuplicateObjectException
- * if this EAR already contains a file with the same uri as
- * @aModuleFile
- */
-
- public ModuleFile addCopy(ModuleFile aModuleFile) throws DuplicateObjectException;
-
-
- /**
- * This is the same as addCopy(ModuleFile) except the return value is the new ModuleRef
- */
- public ModuleRef addCopyRef(ModuleFile aModuleFile) throws DuplicateObjectException;
-
- /**
- * Add a copy of the security role to the dd for the module; if an alt dd is specified, add to
- * that dd; otherwise add to the standard dd of the module; also add a copy of the role to the
- * ear file dd if a role with that name does not already exist
- *
- * @throws DuplicateObjectException
- * if the dd for aModule already contains a role with that name
- */
- public SecurityRole addCopy(SecurityRole aRole, Module aModule) throws DuplicateObjectException;
-
- /**
- * Add a copy of the security role to the ear file's dd, if it does not already contain a role
- * with the same name
- */
- public SecurityRole addCopyIfNotExists(SecurityRole aRole);
-
- EObject getAltDeploymentDescriptor(Module aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException;
-
- /**
- * Returns a filtered list of ApplicationClientFiles; adds will not be reflected; use
- *
- * @link Archive#add(File)
- */
- public List getApplicationClientFiles();
-
- /**
- * Returns a filtered list of ClientModuleRefs
- */
- public List getClientModuleRefs();
-
- /**
- * @throws DeploymentDescriptorLoadException -
- * is a runtime exception, because we can't override the signature of the generated
- * methods
- */
-
-
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return The DeploymentDescriptor reference
- */
- Application getDeploymentDescriptor() throws DeploymentDescriptorLoadException;
-
- Connector getDeploymentDescriptor(ConnectorModule aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException;
-
- EJBJar getDeploymentDescriptor(EjbModule aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException;
-
- ApplicationClient getDeploymentDescriptor(JavaClientModule aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException;
-
- EObject getDeploymentDescriptor(Module aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException;
-
- WebApp getDeploymentDescriptor(WebModule aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException;
-
- /**
- * Returns a filtered list of EJBJarFiles; adds will not be reflected; use
- *
- * @link Archive#add(File)
- */
- public List getEJBJarFiles();
-
- /**
- * Returns a filtered list of EJBModuleRefs
- */
- public List getEJBModuleRefs();
-
-
- /**
- * Return an enterprise bean referenced by the EjbRef, if one exists. The ejb-link value of the
- * ref must equate to a named enterprise bean contained in the jar; otherwise return null.
- * Returns the first hit found; assumption that the ejb names are unique within the scope of the
- * ear file. This will likely be replaced with a better way for dereferencing ejb refs.
- *
- * Can be used with ejb 1.1 references only.
- *
- * @deprecated {@link#getEnterpiseBeanFromRef(EjbRef ref, String moduleUri )
- * @param EjbRef
- * ref - An ejb reference
- * @return EnterpriseBean
- */
- public EnterpriseBean getEnterpiseBeanFromRef(EjbRef ref);
-
- /**
- * Return an enterprise bean referenced by the EjbRef and a module uri, if one exists. The
- * ejb-link value of the ref must equate to a named enterprise bean contained in the jar;
- * otherwise return null. Returns the first hit found; assumption that the ejb names are unique
- * within the scope of the ear file. This will likely be replaced with a better way for
- * dereferencing ejb refs.
- *
- * Can be used with ejb 1.1 & ejb 2.0 references.
- *
- * @param EjbRef
- * ref - An ejb reference
- * @param String
- * moduleUri - The module uri
- * @return EnterpriseBean
- */
- public EnterpriseBean getEnterpiseBeanFromRef(EjbRef ref, String moduleUri);
-
- public Module getModule(String uri, String altDD);
-
- /**
- * @return the module ref which references
- * @moduleDescriptor
- */
- public ModuleRef getModuleRef(Module moduleDescriptor);
-
- /**
- * @return java.util.List of all module refs in this EAR having a reference to
- * @aModuleFile
- */
- public List getModuleRefs(ModuleFile aModuleFile);
-
- /**
- * Returns a filtered list of ModuleFiles; adds will not be reflected; use
- *
- * @link Archive#add(File)
- */
- public List getModuleFiles();
-
- /**
- * Returns a filtered list of RarFiles; adds will not be reflected; use
- *
- * @link Archive#add(File)
- */
- public List getRARFiles();
-
- /**
- * Returns a filtered list of FARFiles; adds will not be reflected; use
- * {@link Archive#add(File)}
- */
- public List getFARFiles();
-
- /**
- * Returns a filtered list of ConnectorModuleRefs
- */
- public List getConnectorModuleRefs();
-
- /**
- * Return all security roles from all existing modules (EjbModule and WebModule)
- */
- public EList getRolesFromAllModules();
-
- /**
- * Return all security roles from an existing module (EjbModule and WebModule)
- */
- public EList getRolesFromModule(Module aModule);
-
- /**
- * Returns a filtered list of WarFiles; adds will not be reflected; use
- *
- * @link Archive#add(File)
- */
- public List getWARFiles();
-
- /**
- * Returns a filtered list of WebModuleRefs
- */
- public List getWebModuleRefs();
-
- /**
- * Copy the role into each ModuleFile in the ear file which does not already contain the role
- * Assumption: a role with the same name as
- *
- * @role exists in the application deployment descriptor
- */
- public void pushDownRole(SecurityRole role);
-
- /**
- * Copy the role into the ModuleFile for the module, if the module does not already contain the
- * role Assumption: a role with the same name as
- *
- * @role exists in the application deployment descriptor
- */
- public void pushDownRole(SecurityRole role, Module aModule);
-
- /**
- * Attempt to remove the module for the parameter from this object's dd, then remove the module
- * file, if it is not referenced from any other ModuleRef, from the list of files
- */
- public void remove(ModuleRef aModuleRef);
-
- /**
- * Rename the security role in the ear file's dd; push this change down to any contained module
- * dd's; if the module specifies an alt-dd, the change will be reflected there; otherwise it
- * will be reflected in the standard dd of the module
- *
- * @throws ObjectNotFoundException
- * if the dd for the ear does not contain a role with the existingRoleName
- *
- * @throws DuplicateObjectException
- * if the dd for the ear file already contains a role with the new name
- */
- public void renameSecurityRole(String existingRoleName, String newRoleName) throws ObjectNotFoundException, DuplicateObjectException;
-
- /**
- * For each security role in the dd for each module, add a copy to the ear file's dd; if an
- * alt-dd is specified for the module, use that dd; otherwise use the standard dd in the module
- * file
- */
- public void rollUpRoles();
-
- /**
- * For each security role in the dd for a module, add a copy to the ear file's dd; if an alt-dd
- * is specified for the module, use that dd; otherwise use the standard dd in the module file
- */
- public void rollUpRoles(Module aModule);
-
- /**
- * @generated This field/method will be replaced during code generation
- * @param l
- * The new value of the DeploymentDescriptor reference
- */
- void setDeploymentDescriptor(Application value);
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return The list of ModuleRefs references
- */
- EList getModuleRefs();
-
- public List getArchivesOfType(String type);
-
- /**
- * Return a Map of Modules as keys and a List of EJB References as the values. This will let you
- * know which Modules the references came from. You can filter the list of EJB References
- * returned on the linked attributed of the reference. This means that you can filter linked
- * references, non-linked references, or neither (i.e., return all references).
- */
- Map getEJBReferences(boolean filterLinkedReferences, boolean filterNonLinkedReferences) throws ArchiveWrappedException;
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/EJBJarFile.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/EJBJarFile.java
deleted file mode 100644
index e7bd0a70a..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/EJBJarFile.java
+++ /dev/null
@@ -1,55 +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.jst.j2ee.commonarchivecore.internal;
-
-
-
-import java.util.List;
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException;
-import org.eclipse.jst.j2ee.ejb.EJBJar;
-import org.eclipse.jst.j2ee.ejb.EnterpriseBean;
-
-
-/**
- * @generated
- */
-public interface EJBJarFile extends ModuleFile {
-
- /**
- * Used for tools performing selective import
- */
- public List getAssociatedFiles(EnterpriseBean ejb);
-
- /**
- * @throws DeploymentDescriptorLoadException -
- * is a runtime exception, because we can't override the signature of the generated
- * methods
- */
-
-
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return The DeploymentDescriptor reference
- */
- EJBJar getDeploymentDescriptor() throws DeploymentDescriptorLoadException;
-
- public boolean isImportedFrom10();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @param l
- * The new value of the DeploymentDescriptor reference
- */
- void setDeploymentDescriptor(EJBJar value);
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/EJBModuleRef.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/EJBModuleRef.java
deleted file mode 100644
index fc37ae0dc..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/EJBModuleRef.java
+++ /dev/null
@@ -1,27 +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.jst.j2ee.commonarchivecore.internal;
-
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveWrappedException;
-import org.eclipse.jst.j2ee.ejb.EJBJar;
-
-/**
- * @generated
- */
-public interface EJBModuleRef extends ModuleRef {
-
- EJBJar getEJBJar() throws ArchiveWrappedException;
-
-} //EJBModuleRef
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/File.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/File.java
deleted file mode 100644
index 2d2aa1897..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/File.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal;
-
-
-
-import java.io.InputStream;
-
-import org.eclipse.jst.j2ee.common.J2EEEObject;
-
-/**
- * @generated
- */
-public interface File extends J2EEEObject {
-
- /**
- * Return the path up to the filename; e.g., from com/ibm/foo/bar.class, com/ibm/foo
- */
- public String getDirectoryURI();
-
- public InputStream getInputStream() throws java.io.FileNotFoundException, java.io.IOException;
-
- /**
- * Return the tail of the file path; e.g., from com/ibm/foo/bar.class, return bar.class
- */
- public String getName();
-
- public boolean isApplicationClientFile();
-
- public boolean isArchive();
-
- public boolean isContainer();
-
- public boolean isEARFile();
-
- public boolean isFARFile();
-
- public boolean isEJBJarFile();
-
- public boolean isModuleFile();
-
- public boolean isRARFile();
-
- public boolean isReadOnlyDirectory();
-
- public boolean isWARFile();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return The value of the URI attribute
- */
- String getURI();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @param value
- * The new value of the URI attribute
- */
- void setURI(String value);
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return The value of the LastModified attribute
- */
- long getLastModified();
-
- /**
- * Sets the value of the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.File#getLastModified Last Modified}' attribute.
- *
- * @param value the new value of the 'Last Modified' attribute.
- * @see #isSetLastModified()
- * @see #unsetLastModified()
- * @see #getLastModified()
- * @generated
- */
- void setLastModified(long value);
-
- /**
- * Unsets the value of the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.File#getLastModified Last Modified}' attribute.
- *
- * @see #isSetLastModified()
- * @see #getLastModified()
- * @see #setLastModified(long)
- * @generated
- */
- void unsetLastModified();
-
- /**
- * Returns whether the value of the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.File#getLastModified Last Modified}' attribute is set.
- *
- * @return whether the value of the 'Last Modified' attribute is set.
- * @see #unsetLastModified()
- * @see #getLastModified()
- * @see #setLastModified(long)
- * @generated
- */
- boolean isSetLastModified();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return The value of the Size attribute
- */
- long getSize();
-
- /**
- * Sets the value of the '
- * {@link org.eclipse.jst.j2ee.internal.commonarchivecore.File#getSize Size}' attribute.
- *
- * @param value
- * the new value of the 'Size' attribute.
- * @see #isSetSize()
- * @see #unsetSize()
- * @see #getSize()
- * @generated
- */
- void setSize(long value);
-
- /**
- * Unsets the value of the '
- * {@link org.eclipse.jst.j2ee.internal.commonarchivecore.File#getSize Size}' attribute.
- *
- * @see #isSetSize()
- * @see #getSize()
- * @see #setSize(long)
- * @generated
- */
- void unsetSize();
-
- /**
- * Returns whether the value of the '{@link org.eclipse.jst.j2ee.commonarchivecore.internal.File#getSize Size}' attribute is set.
- *
- * @return whether the value of the 'Size' attribute is set.
- * @see #unsetSize()
- * @see #getSize()
- * @see #setSize(long)
- * @generated
- */
- boolean isSetSize();
-
- /**
- * Returns the value of the 'Directory Entry' attribute.
- * if (anArchive.containsFile("xxx.xml")
. The result will
- * be stored in the Archive's "types" attribute.
- * @param anArchive
- * @return
- */
- public boolean discriminate(Archive anArchive);
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/ModuleFile.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/ModuleFile.java
deleted file mode 100644
index 5704b827b..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/ModuleFile.java
+++ /dev/null
@@ -1,96 +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.jst.j2ee.commonarchivecore.internal;
-
-
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ResourceLoadException;
-
-/**
- * @generated
- */
-public interface ModuleFile extends Archive {
-
- public Resource getDeploymentDescriptorResource() throws java.io.FileNotFoundException, ResourceLoadException;
-
- public String getDeploymentDescriptorUri();
-
- /**
- * Return the container for this archive casted to EARFile; null if this file is not contained
- * in an EARFile
- */
- public EARFile getEARFile();
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @return com.ibm.etools.archive.ExportStrategy
- */
- public org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ExportStrategy getExportStrategy();
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @return com.ibm.etools.archive.ImportStrategy
- */
- public org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.ImportStrategy getImportStrategy();
-
- /**
- * Returns the specification version of the module file. For example, "2.0"
- *
- * @deprecated, Use getDeploymentDescriptorResource().getModuleVersionID();
- */
- public String getSpecVersion();
-
- /**
- * Return the version ID of the module For example, "20"
- *
- * @return int
- */
- public int getSpecVersionID();
-
- EObject getStandardDeploymentDescriptor() throws DeploymentDescriptorLoadException;
-
- /**
- * Answers whether the deployment descriptor is null; used for copy, to determine whether the
- * import strategy needs to be copied or not
- */
- public boolean isDeploymentDescriptorSet();
-
- public Resource makeDeploymentDescriptorResource();
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @param newExportStrategy
- * com.ibm.etools.archive.ExportStrategy
- */
- public void setExportStrategy(org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ExportStrategy newExportStrategy);
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @param newImportStrategy
- * com.ibm.etools.archive.ImportStrategy
- */
- public void setImportStrategy(org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.ImportStrategy newImportStrategy);
-
- /**
- * Sets the J2EE version for this archive
- *
- * @see org.eclipse.jst.j2ee.internal.J2EEVersionConstants
- */
- public void setJ2EEVersion(int versionID);
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/ModuleRef.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/ModuleRef.java
deleted file mode 100644
index 13f5ea195..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/ModuleRef.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal;
-
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.jst.j2ee.application.Module;
-import org.eclipse.jst.j2ee.common.J2EEEObject;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveWrappedException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DuplicateObjectException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ResourceLoadException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy;
-
-/**
- * @generated
- */
-public interface ModuleRef extends J2EEEObject {
-
- /**
- * Return the parsed local deployment descriptor from the ModuleFile
- */
- EObject getStandardDeploymentDescriptor();
-
- /**
- * Return the parsed alt dd, if it exists, from the EAR file containing this module
- */
- EObject getAltDeploymentDescriptor() throws ArchiveWrappedException;
-
- /**
- * Return an alt dd if it exists, otherwise the local dd
- */
- EObject getDeploymentDescriptor() throws ArchiveWrappedException;
-
-
- /**
- * Gets the uri from the {@link Module}referenced by this ref; if there is no module, (eg. a
- * standalone JAR), gets the uri from the {@link ModuleFile}. Assumption: The uri of the
- * {@link Module}and {@link ModuleFile}should stay in sync
- */
- String getUri();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return The ModuleFile reference
- */
- ModuleFile getModuleFile();
-
- /**
- * Similar to {@link Archive#getMofResource(String)}, except that alt-dd indirection is
- * considered. If this module uses an alt-dd, then the uri will be prepended with the "alt-root"
- * and the resource will be loaded from the owning EAR file. In this case, all hrefs into and
- * out of this resource should be relative to the root of the EAR. The hrefs are taken care of
- * for free when the client uses {@link #makeAltDescriptorsAndResources()}. The alt root is
- * automatically generated when it does not exist.
- *
- * @see ModuleExtension#getAltRoot()
- */
- Resource getMofResource(String uri) throws FileNotFoundException, ResourceLoadException;
-
- public InputStream getAltResourceInputStream(String uri) throws IOException;
-
- public InputStream getLocalResourceInputStream(String uri) throws IOException;
-
- /**
- * Return an input stream from the resources path of either the ModuleFile, if the module does
- * not use alt-dd, or from the altRoot of the module, found in the resources path of the EAR
- *
- * @see LoadStrategy#getResourceInputStream(String)
- */
- public InputStream getResourceInputStream(String uri) throws IOException;
-
-
- /**
- * Retrieve a resource from the ModuleFile
- *
- * @see Archive#getMofResource(String)
- */
- Resource getLocalMofResource(String uri) throws FileNotFoundException, ResourceLoadException;
-
- /**
- * The uri will be prepended with the "alt-root" and the resource will be loaded from the owning
- * EAR file.
- */
- Resource getAltMofResource(String uri) throws FileNotFoundException, ResourceLoadException;
-
- /**
- * Create a new mof resource and add it to the resource set of the context of either the module
- * file if this ModuleRef is not an alt, or to the EAR file if it is an alt. If this module is
- * uses an alt-dd, then the uri will be prepended with the "alt-root" The alt root is
- * automatically generated when it does not exist.
- *
- * @throws DuplicateObjectException
- * if a resource already exists in this archive having the uri
- */
- Resource makeMofResource(String uri) throws DuplicateObjectException;
-
- Resource makeLocalMofResource(String uri) throws DuplicateObjectException;
-
- Resource makeAltMofResource(String uri) throws DuplicateObjectException;
-
-
- /**
- * @generated This field/method will be replaced during code generation
- * @param l
- * The new value of the ModuleFile reference
- */
- void setModuleFile(ModuleFile value);
-
- /**
- * Rename this module; both its ModuleFile and Module element from the Application deployment
- * descriptor.
- */
- public void setURI(String uri);
-
- boolean isEJB();
-
- boolean isWeb();
-
- boolean isClient();
-
- boolean isConnector();
-
- boolean usesAltDD();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return The EarFile reference
- */
- EARFile getEarFile();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @param l
- * The new value of the EarFile reference
- */
- void setEarFile(EARFile value);
-
- /**
- * Returns the value of the 'Module' reference.
- *
- *
((CommonArchivePackage)EPackage.Registry.INSTANCE.getEPackage(CommonArchivePackage.eNS_URI)).getCommonArchiveFactory().open(aString)
, and get back
- * the correct kind of archive instance. A discriminator contains children, which is an ordered list of discriminators, each of which
- * can have its turn to determine if it can open an archive. The first one to succeed wins. Once a discriminator determines that it
- * can open an archive, it gives each of its children the opportuntity to do something more specific, and so on. In the base
- * implementation, discriminators are defined as single instances of an inner class for each import strategy. The following code shows
- * how to register a discriminator for a specialized EJBJarFile:
- *
EjbJar11ImportStrategyImpl.getDiscriminator().addChild(aDiscriminator);
- * This would be done as an initialization at startup time. If the child discriminator is ever invoked, the parent will have already
- * determined that the archive is an EJBJarFile and will have converted it to that type.
- */
-public interface ArchiveTypeDiscriminator {
- public void addChild(ArchiveTypeDiscriminator child);
-
- /**
- * @throws java.util.NoSuchElementException
- * if the predecessor is not included in the list of children
- */
- public void addChildAfter(ArchiveTypeDiscriminator child, ArchiveTypeDiscriminator predecessor) throws java.util.NoSuchElementException;
-
- /**
- * @throws java.util.NoSuchElementException
- * if the successor is not included in the list of children
- */
- public void addChildBefore(ArchiveTypeDiscriminator child, ArchiveTypeDiscriminator successor) throws java.util.NoSuchElementException;
-
- /**
- * Performs tests on the archive to determine if it is the kind this discriminator is interested
- * in
- */
- public boolean canImport(Archive anArchive);
-
- /**
- * Factory method to create the import strategy for a converted archive
- */
- public ImportStrategy createImportStrategy(Archive old, Archive newArchive);
-
- /**
- * Return a string to be presented either through an exception or error message when a specific
- * kind of archive is expected and this discriminator can't open it.
- */
- public String getUnableToOpenMessage();
-
- public boolean hasChild(ArchiveTypeDiscriminator disc);
-
- public boolean hasChildren();
-
- /**
- * Point of entry for attempting to open an archive
- *
- * @return a converted archive or null if this discriminator can't convert it
- */
- public Archive openArchive(Archive anArchive) throws OpenFailureException;
-
- public void removeChild(ArchiveTypeDiscriminator child);
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ArchiveTypeDiscriminatorImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ArchiveTypeDiscriminatorImpl.java
deleted file mode 100644
index 9046b3c7b..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ArchiveTypeDiscriminatorImpl.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.helpers;
-
-
-
-import java.util.List;
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonArchiveResourceHandler;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.ImportStrategy;
-
-
-/**
- * @see ArchiveTypeDiscriminator
- */
-public abstract class ArchiveTypeDiscriminatorImpl implements ArchiveTypeDiscriminator {
- protected List children;
-
- public ArchiveTypeDiscriminatorImpl() {
- super();
- }
-
- /**
- * @see com.ibm.etools.archive.ArchiveTypeDiscriminator
- */
- public void addChild(ArchiveTypeDiscriminator child) {
- if (hasChild(child))
- return;
- getChildren().add(child);
- }
-
- /**
- * @see com.ibm.etools.archive.ArchiveTypeDiscriminator
- */
- public void addChildAfter(org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveTypeDiscriminator child, org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveTypeDiscriminator predecessor) throws java.util.NoSuchElementException {
- if (hasChild(child))
- return;
- int index = getChildren().indexOf(predecessor);
- if (index >= 0) {
- index++;
- getChildren().add(index, child);
- } else {
- throw new java.util.NoSuchElementException(predecessor.toString());
- }
- }
-
- /**
- * @see com.ibm.etools.archive.ArchiveTypeDiscriminator
- */
- public void addChildBefore(ArchiveTypeDiscriminator child, ArchiveTypeDiscriminator successor) throws java.util.NoSuchElementException {
- if (hasChild(child))
- return;
- int index = getChildren().indexOf(successor);
- if (index >= 0) {
- getChildren().add(index, child);
- } else {
- throw new java.util.NoSuchElementException(successor.toString());
- }
- }
-
- /**
- * @see com.ibm.etools.archive.ArchiveTypeDiscriminator
- */
- public abstract boolean canImport(Archive anArchive);
-
- /**
- * @see com.ibm.etools.archive.ArchiveTypeDiscriminator
- */
- public Archive convert(Archive anArchive) throws OpenFailureException {
- Archive destination = createConvertedArchive();
-
- //turn of notifications
- destination.eSetDeliver(false);
- destination.eSetDeliver(false);
-
- //Copy the relevant attributes
- destination.setURI(anArchive.getURI());
- destination.setOriginalURI(anArchive.getURI());
- destination.setSize(anArchive.getSize());
- destination.setLastModified(anArchive.getLastModified());
-
- destination.setLoadStrategy(anArchive.getLoadStrategy());
- destination.setOptions(anArchive.getOptions());
- destination.setExtraClasspath(anArchive.getExtraClasspath());
- if (destination.isModuleFile()) {
- ImportStrategy importStrategy = createImportStrategy(anArchive, destination);
- ((ModuleFile) destination).setImportStrategy(importStrategy);
- }
-
-
-
- //turn notifications back on
- destination.eSetDeliver(true);
- destination.eSetDeliver(true);
-
- return destination;
- }
-
- public abstract Archive createConvertedArchive();
-
- /**
- * @see com.ibm.etools.archive.ArchiveTypeDiscriminator
- */
- public abstract ImportStrategy createImportStrategy(Archive old, Archive newArchive);
-
- public java.util.List getChildren() {
- if (children == null)
- children = new java.util.ArrayList();
- return children;
- }
-
- /**
- * Iterate through each child and attempt to convert the archive to the child's type; return the
- * converted archive from the first child that succeeds, or null if no child succeeds or no
- * child exists
- */
- protected Archive getImportableArchiveFromChild(Archive anArchive) throws OpenFailureException {
- if (!hasChildren()) {
- return null;
- }
- List theChildren = getChildren();
- Archive childConvertedArchive = null;
- for (int i = 0; i < theChildren.size(); i++) {
- ArchiveTypeDiscriminator child = (ArchiveTypeDiscriminator) theChildren.get(i);
- childConvertedArchive = child.openArchive(anArchive);
- if (childConvertedArchive != null) {
- return childConvertedArchive;
- }
- }
- return null;
- }
-
- protected String getXmlDDMessage(String archiveType, String ddUri) {
- return CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.invalid_archive_EXC_, (new Object[]{archiveType, ddUri})); // = "Archive is not a valid {0} because the deployment descriptor can not be found (case sensitive): {1}"
- }
-
- public boolean hasChild(ArchiveTypeDiscriminator disc) {
- return hasChildren() && getChildren().contains(disc);
- }
-
- public boolean hasChildren() {
- return children != null && children.size() > 0;
- }
-
- /**
- * @see com.ibm.etools.archive.ArchiveTypeDiscriminator
- */
- public Archive openArchive(Archive anArchive) throws OpenFailureException {
- if (!canImport(anArchive)) {
- return null;
- }
- Archive convertedArchive = convert(anArchive);
- Archive childConvertedArchive = getImportableArchiveFromChild(convertedArchive);
- if (childConvertedArchive != null)
- return childConvertedArchive;
- return convertedArchive;
- }
-
- /**
- * @see com.ibm.etools.archive.ArchiveTypeDiscriminator
- */
- public void removeChild(org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveTypeDiscriminator child) {
- getChildren().remove(child);
- }
-
- public void setChildren(java.util.List newChildren) {
- children = newChildren;
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ArchiveURIConverterImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ArchiveURIConverterImpl.java
deleted file mode 100644
index 6c4982a02..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ArchiveURIConverterImpl.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.helpers;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-import com.ibm.icu.util.StringTokenizer;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.impl.URIConverterImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy;
-
-
-/**
- * Helper class used for loading of mof resources contained within an archive; knows how to retrieve
- * an input stream for a given uri
- */
-public class ArchiveURIConverterImpl extends URIConverterImpl {
- protected static final String fileProtocol = "file"; //$NON-NLS-1$
- protected static final String platformProtocol = "platform"; //$NON-NLS-1$
- private String inFilepath, outFilepath;
-
- public ArchiveURIConverterImpl(org.eclipse.jst.j2ee.commonarchivecore.internal.Archive anArchive, String resourcesPath) {
- setArchive(anArchive);
- this.resourcesPath = resourcesPath;
- setInputFilepath(resourcesPath);
- String outpath = resourcesPath;
- if (outpath == null) {
- LoadStrategy l = anArchive.getLoadStrategy();
- if (l != null && l.isDirectory()) {
- try {
- outpath = l.getAbsolutePath();
- } catch (FileNotFoundException ignore) {
- //Ignore
- }
- }
- }
- setOutputFilepath(outpath);
- }
-
- /** The archive from which resources will be loaded */
- protected org.eclipse.jst.j2ee.commonarchivecore.internal.Archive archive;
- protected String resourcesPath;
-
- public org.eclipse.jst.j2ee.commonarchivecore.internal.Archive getArchive() {
- return archive;
- }
-
- public InputStream createInputStream(URI uri) throws IOException {
- InputStream in = null;
- if (resourcesPath != null)
- in = makeInputStream(uri);
- if (in != null)
- return in;
- return getArchive().getInputStream(uri.toString());
- }
-
- public void setArchive(org.eclipse.jst.j2ee.commonarchivecore.internal.Archive newArchive) {
- archive = newArchive;
- }
-
- /**
- * Gets the resourcesPath.
- *
- * @return Returns a String
- */
- public String getResourcesPath() {
- return resourcesPath;
- }
-
- /**
- * Sets the resourcesPath.
- *
- * @param resourcesPath
- * The resourcesPath to set
- */
- public void setResourcesPath(String resourcesPath) {
- this.resourcesPath = resourcesPath;
- setInputFilepath(resourcesPath);
- setOutputFilepath(resourcesPath);
- }
-
- public URI normalize(URI uri) {
- return getInternalURIMap().getURI(uri);
- }
-
- /**
- * The input file path consists of a string of directories or zip files separated by semi-colons
- * that are searched when an input stream is constructed.
- *
- * @return The file path
- */
- public String getInputFilepath() {
- return inFilepath;
- }
-
- /**
- * @param filepath
- * The file path
- */
- public void setInputFilepath(String filepath) {
- inFilepath = filepath;
- }
-
- /**
- * @return The output file path
- */
- public String getOutputFilepath() {
- return outFilepath;
- }
-
- /**
- * The output file path is the path name of a directory to prepend to relative file path names
- * when an output stream is constructed.
- *
- * @param filepath
- * The output file path
- */
- public void setOutputFilepath(String filepath) {
- outFilepath = filepath;
- }
-
- /**
- * Convert the URI to an input stream.
- *
- * @param uri
- * The uri
- */
- public InputStream makeInputStream(URI uri) throws IOException {
- URI converted = uri;
-
- if ((fileProtocol.equals(converted.scheme()) || converted.scheme() == null) && inFilepath != null) {
- return searchFilePath(converted.toString());
- }
- URL url = createURL(converted.toString());
- URLConnection urlConnection = url.openConnection();
- return urlConnection.getInputStream();
- }
-
- /**
- * Search the file path if the file portion of the URL is not absolute (does not begin with "/";
- * otherwise, attempt to create an input stream for the file.
- */
- protected InputStream searchFilePath(String filename) throws IOException {
- File file = new File(filename);
- if (file.isAbsolute())
- return new FileInputStream(file);
- StringTokenizer st = new StringTokenizer(inFilepath, ";"); //$NON-NLS-1$
- while (st.hasMoreTokens()) {
- String f = st.nextToken();
- ZipFile zf = null;
- try {
- zf = new ZipFile(f);
- } catch (Exception e) {
- //Ignore
- }
- InputStream in = null;
- if (zf != null) {
- in = searchZipFile(zf, filename);
- if (in == null)
- try {
- zf.close();
- } catch (Exception e) {
- //Ignore
- }
- } else {
- in = searchDirectory(f, filename);
- }
- if (in != null)
- return in;
- }
- return null;
- }
-
- /**
- * This method determines whether the file with the relative path name of filename exists in the
- * given directory. If not, it returns null; otherwise, it opens the file up and returns the
- * input source.
- *
- * @param dir
- * java.lang.String
- * @return java.io.InputSource
- */
- protected InputStream searchDirectory(String dir, String filename) throws IOException {
- if (dir.equals(".")) //$NON-NLS-1$
- dir = System.getProperty("user.dir"); //$NON-NLS-1$
- File f = new File(dir + System.getProperty("file.separator") + filename.replace('/', File.separatorChar)); //$NON-NLS-1$
- if (!f.exists())
- return null;
- return new FileInputStream(f);
- }
-
- /**
- * This method determines whether there is a ZipEntry whose name is filename in the given
- * ZipFile. If not, it returns null; otherwise, it returns an input source to read from the
- * ZipEntry.
- *
- * @param zip
- * java.util.zip.ZipFile
- * @return java.io.InputSource
- */
- protected InputStream searchZipFile(ZipFile zip, String filename) throws IOException {
- ZipEntry entry = zip.getEntry(filename);
- if (entry == null)
- return null;
- return zip.getInputStream(entry);
- }
-
- /**
- * Make a URL from the uri; if the attempt fails, attempt to append "file:" to the URI; if the
- * attempt still fails, attempt to replace the protocol with the file protocol.
- *
- * @param uri
- * The string uri
- */
- public URL createURL(String uri) throws MalformedURLException {
- MalformedURLException m = null;
- if (uri == null)
- return null;
- URL url = null;
- try {
- url = new URL(uri);
- } catch (Exception e) {
- m = (MalformedURLException) e;
- }
- if (url != null)
- return url;
- // Either treat the URI as a filepath (if there are no : or
- // a : in position 1) or replace the given protocol with the
- // file protocol.
- int index = uri.indexOf(":"); //$NON-NLS-1$
- if (index == -1 || index == 1)
- uri = fileProtocol + ":" + uri; //$NON-NLS-1$
- else if (index > 0)
- uri = fileProtocol + ":" + uri.substring(index + 1); //$NON-NLS-1$
- try {
- url = new URL(uri);
- } catch (Exception e) {
- //Ignore
- }
- if (url != null)
- return url;
- throw m;
- }
-
- /**
- * Convert the URI to an output stream.
- *
- * @param uri
- * The uri
- */
- public OutputStream createOutputStream(URI uri) throws IOException {
- URI converted = uri;
- if (platformProtocol.equals(converted.scheme())) {
- URL resolvedURL = resolvePlatform(new URL(converted.toString()));
- if (resolvedURL != null) {
- converted = URI.createFileURI(resolvedURL.getFile());
- }
- }
- if (fileProtocol.equals(converted.scheme()) || converted.scheme() == null) {
- return openFileOutputStream(converted);
- }
- URL url = createURL(converted.toString());
- URLConnection urlConnection = url.openConnection();
- urlConnection.setDoOutput(true);
- return urlConnection.getOutputStream();
- }
-
- protected URL resolvePlatform(URL url) throws IOException {
- // let WorkbenchURIConverter implement this one.
- return null;
- }
-
- /**
- * Open a file output stream for the given uri (the uri has file protocol). If an output file
- * path is specified and the file name is relative, prepend the output file path to the file
- * name. Make the directories that contain the file if they do not exist.
- */
- protected OutputStream openFileOutputStream(URI uri) throws IOException {
- File file = new File(uri.toFileString());
- if (!file.isAbsolute() && outFilepath != null) {
- file = new File(outFilepath + File.separator + uri.toFileString());
- }
- String parent = file.getParent();
- if (parent != null) {
- new File(parent).mkdirs();
- }
- OutputStream outputStream = new FileOutputStream(file);
- return outputStream;
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ExportStrategy.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ExportStrategy.java
deleted file mode 100644
index 89b080090..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ExportStrategy.java
+++ /dev/null
@@ -1,38 +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.jst.j2ee.commonarchivecore.internal.helpers;
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.ArchiveStrategy;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.SaveStrategy;
-
-
-
-/**
- * ExportStrategy knows what to do just before a dump of an archive is about to occur, typically
- * adding items such as deployment descriptors and such. This provides a delegation model for
- * archive/version/platform specific rules about which resources etc need to be exported. Clients
- * can implement this interface, and "plug in" to an instance of an archive.
- */
-public interface ExportStrategy extends ArchiveStrategy {
- /**
- * Returns whether this strategy has already saved a file entry having a uri named by the
- * parameter
- */
- public boolean hasSaved(String uri);
-
- /**
- * The archive is saving itself, and giving the export strategy the opportunity to do whatever
- * it needs to do. The export strategy may write entries directly to the SaveStrategy, but if it
- * does, it should remember the names of these entries so the archive does not attempt to
- * duplicate by saving an entry with the same name
- */
- public void preSave(SaveStrategy aSaveStrategy) throws org.eclipse.jst.j2ee.commonarchivecore.internal.exception.SaveFailureException;
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/FileExtensionsFilterImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/FileExtensionsFilterImpl.java
deleted file mode 100644
index 7fb9b7c73..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/FileExtensionsFilterImpl.java
+++ /dev/null
@@ -1,143 +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.jst.j2ee.commonarchivecore.internal.helpers;
-
-
-
-import java.util.Set;
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-
-
-/**
- * Insert the type's description here. Creation date: (02/28/01 1:20:09 PM)
- *
- * @author: Administrator
- */
-public class FileExtensionsFilterImpl extends SaveFilterImpl implements org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.SaveFilter {
- protected Set excludedExtensions;
- protected boolean isCaseSensitive = false;
- protected Set excludedExtensionsAsUppercase;
-
- /**
- * FileExtensionsFilterImpl constructor comment.
- */
- public FileExtensionsFilterImpl(String[] extensionsToExclude, boolean caseSensitive) {
- super();
- Set extensions = new java.util.HashSet();
- for (int i = 0; i < extensionsToExclude.length; i++) {
- extensions.add(extensionsToExclude[i]);
- }
- setExcludedExtensions(extensions);
- setIsCaseSensitive(caseSensitive);
- initialize();
- }
-
- /**
- * FileExtensionsFilterImpl constructor comment.
- */
- public FileExtensionsFilterImpl(String extension, boolean caseSensitive) {
- super();
- Set extensions = new java.util.HashSet(1);
- extensions.add(extension);
- setExcludedExtensions(extensions);
- setIsCaseSensitive(caseSensitive);
- initialize();
- }
-
- /**
- * FileExtensionsFilterImpl constructor comment.
- */
- public FileExtensionsFilterImpl(Set extensionsToExclude, boolean caseSensitive) {
- super();
- setExcludedExtensions(extensionsToExclude);
- setIsCaseSensitive(caseSensitive);
- initialize();
- }
-
- /**
- * Insert the method's description here. Creation date: (02/28/01 1:24:28 PM)
- *
- * @return java.util.Set
- */
- public java.util.Set getExcludedExtensions() {
- return excludedExtensions;
- }
-
- /**
- * Insert the method's description here. Creation date: (02/28/01 2:42:20 PM)
- *
- * @return java.util.Set
- */
- protected java.util.Set getExcludedExtensionsAsUppercase() {
- return excludedExtensionsAsUppercase;
- }
-
- protected void initialize() {
- if (isCaseSensitive())
- return;
-
- java.util.HashSet aSet = new java.util.HashSet();
- java.util.Iterator it = getExcludedExtensions().iterator();
- while (it.hasNext()) {
- aSet.add(((String) it.next()).toUpperCase());
- }
- setExcludedExtensionsAsUppercase(aSet);
- }
-
- public boolean isCaseSensitive() {
- return isCaseSensitive;
- }
-
- /**
- * Insert the method's description here. Creation date: (02/28/01 1:24:28 PM)
- *
- * @param newExcludedExtensions
- * java.util.Set
- */
- protected void setExcludedExtensions(java.util.Set newExcludedExtensions) {
- excludedExtensions = newExcludedExtensions;
- }
-
- /**
- * Insert the method's description here. Creation date: (02/28/01 2:42:20 PM)
- *
- * @param newExcludedExtensionsAsUppercase
- * java.util.Set
- */
- protected void setExcludedExtensionsAsUppercase(java.util.Set newExcludedExtensionsAsUppercase) {
- excludedExtensionsAsUppercase = newExcludedExtensionsAsUppercase;
- }
-
- protected void setIsCaseSensitive(boolean value) {
- isCaseSensitive = value;
- }
-
- /**
- * @see com.ibm.etools.archive.SaveFilter
- */
- public boolean shouldSave(String uri, Archive anArchive) {
- String extension = org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveUtil.getFileNameExtension(uri);
- if (extension.equals(""))//$NON-NLS-1$
- return true;
-
- Set excluded;
- if (isCaseSensitive()) {
- excluded = getExcludedExtensions();
- } else {
- excluded = getExcludedExtensionsAsUppercase();
- extension = extension.toUpperCase();
- }
-
- return !excluded.contains(extension);
-
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/FileIterator.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/FileIterator.java
deleted file mode 100644
index 9502b6165..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/FileIterator.java
+++ /dev/null
@@ -1,31 +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.jst.j2ee.commonarchivecore.internal.helpers;
-
-
-
-import java.io.InputStream;
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.File;
-
-
-/**
- * Insert the type's description here. Creation date: (05/02/01 5:20:00 PM)
- *
- * @author: Administrator
- */
-public interface FileIterator {
- public InputStream getInputStream(File aFile) throws java.io.IOException, java.io.FileNotFoundException;
-
- public boolean hasNext();
-
- public File next();
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/FileIteratorImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/FileIteratorImpl.java
deleted file mode 100644
index b1f4641e5..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/FileIteratorImpl.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.helpers;
-
-
-
-import java.io.InputStream;
-import java.util.List;
-import java.util.NoSuchElementException;
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonArchiveResourceHandler;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.File;
-
-
-public class FileIteratorImpl implements FileIterator {
- protected List files;
- protected int position = 0;
-
- /**
- * Insert the method's description here. Creation date: (05/02/01 6:16:52 PM)
- */
- public FileIteratorImpl() {
- //Default
- }
-
- public FileIteratorImpl(List theFiles) {
- super();
- files = theFiles;
- }
-
- public InputStream getInputStream(File aFile) throws java.io.IOException, java.io.FileNotFoundException {
- return aFile.getInputStream();
- }
-
- public boolean hasNext() {
- return position < files.size();
- }
-
- public File next() {
- if (!hasNext())
- throw new NoSuchElementException(CommonArchiveResourceHandler.End_of_list_reached_EXC_); // = "End of list reached"
- return (File) files.get(position++);
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ManifestPackageEntryImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ManifestPackageEntryImpl.java
deleted file mode 100644
index a3ef827a1..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ManifestPackageEntryImpl.java
+++ /dev/null
@@ -1,110 +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.jst.j2ee.commonarchivecore.internal.helpers;
-
-
-
-
-/**
- * Used for manifest support.
- */
-public class ManifestPackageEntryImpl extends java.util.jar.Attributes {
- static final String NAME = "Name";//$NON-NLS-1$
- static final String SPECIFICATION_TITLE = "Specification-Title";//$NON-NLS-1$
- static final String SPECIFICATION_VERSION = "Specification-Version";//$NON-NLS-1$
- static final String SPECIFICATION_VENDOR = "Specification-Vendor";//$NON-NLS-1$
- static final String IMPLEMENTATION_TITLE = "Implementation-Title";//$NON-NLS-1$
- static final String IMPLEMENTATION_VERSION = "Implementation-Version";//$NON-NLS-1$
- static final String IMPLEMENTATION_VENDOR = "Implementation-Vendor";//$NON-NLS-1$
-
- /**
- * ManifestPackageEntry constructor comment.
- */
- public ManifestPackageEntryImpl() {
- super();
- }
-
- /**
- * ManifestPackageEntry constructor comment.
- *
- * @param size
- * int
- */
- public ManifestPackageEntryImpl(int size) {
- super(size);
- }
-
- /**
- * ManifestPackageEntry constructor comment.
- *
- * @param attr
- * java.util.jar.Attributes
- */
- public ManifestPackageEntryImpl(java.util.jar.Attributes attr) {
- super(attr);
- }
-
- public String getImplementationTitle() {
- return (String) get(IMPLEMENTATION_TITLE);
- }
-
- public String getImplementationVendor() {
- return (String) get(IMPLEMENTATION_VENDOR);
- }
-
- public String getImplementationVersion() {
- return (String) get(IMPLEMENTATION_VERSION);
- }
-
- public String getName() {
- return (String) get(NAME);
- }
-
- public String getSpecificationTitle() {
- return (String) get(SPECIFICATION_TITLE);
- }
-
- public String getSpecificationVendor() {
- return (String) get(SPECIFICATION_VENDOR);
- }
-
- public String getSpecificationVersion() {
- return (String) get(SPECIFICATION_VERSION);
- }
-
- public void setImplementationTitle(String value) {
- put(IMPLEMENTATION_TITLE, value);
- }
-
- public void setImplementationVendor(String value) {
- put(IMPLEMENTATION_VENDOR, value);
- }
-
- public void setImplementationVersion(String value) {
- put(IMPLEMENTATION_VERSION, value);
- }
-
- public void setName(String value) {
- put(NAME, value);
- }
-
- public void setSpecificationTitle(String value) {
- put(SPECIFICATION_TITLE, value);
- }
-
- public void setSpecificationVendor(String value) {
- put(SPECIFICATION_VENDOR, value);
- }
-
- public void setSpecificationVersion(String value) {
- put(SPECIFICATION_VERSION, value);
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/NestedArchiveIterator.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/NestedArchiveIterator.java
deleted file mode 100644
index 622d94034..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/NestedArchiveIterator.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.helpers;
-
-
-
-import java.io.FilterInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.List;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonArchiveResourceHandler;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.File;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveRuntimeException;
-
-
-public class NestedArchiveIterator extends FileIteratorImpl {
- protected ZipInputStream zipInputStream;
- protected ZipEntry currentEntry;
-
- static class WrapperInputStream extends FilterInputStream {
- /**
- * @param in
- */
- public WrapperInputStream(InputStream in) {
- super(in);
- // TODO Auto-generated constructor stub
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.io.FilterInputStream#close()
- */
- public void close() throws IOException {
- //do nothing because we want to prevent the clients from closing the zip
- }
- }
-
- /**
- * NestedArchiveIterator constructor comment.
- */
- public NestedArchiveIterator(List theFiles, ZipInputStream stream) {
- super(theFiles);
- zipInputStream = stream;
- }
-
- public InputStream getInputStream(File aFile) throws java.io.IOException, java.io.FileNotFoundException {
- if (!aFile.getURI().equals(currentEntry.getName()))
- throw new java.io.IOException(CommonArchiveResourceHandler.Internal_Error__Iterator_o_EXC_); // = "Internal Error: Iterator out of sync with zip entries"
- return new WrapperInputStream(zipInputStream);
- }
-
- public File next() {
- File next = super.next();
- try {
- do {
- currentEntry = zipInputStream.getNextEntry();
- } while (currentEntry.isDirectory());
- } catch (java.io.IOException ex) {
- throw new ArchiveRuntimeException(CommonArchiveResourceHandler.Error_iterating_the_archiv_EXC_, ex); // = "Error iterating the archive"
- }
- return next;
- }
-
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ResourceProxyValidator.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ResourceProxyValidator.java
deleted file mode 100644
index a28a3b9c4..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ResourceProxyValidator.java
+++ /dev/null
@@ -1,107 +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
- *******************************************************************************/
-/*
- * Created on Jun 11, 2003
- *
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-package org.eclipse.jst.j2ee.commonarchivecore.internal.helpers;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.xmi.XMLResource;
-
-/**
- * @author cbridgha
- *
- * To change the template for this generated type comment go to Window>Preferences>Java>Code
- * Generation>Code and Comments
- */
-final class ResourceProxyValidator {
- static HashMap resourceURIMap = new HashMap();
-
- private static void resolveContainedProxies(EObject refObject) {
- List contained = refObject.eContents();
- EObject mofObject;
- for (int i = 0; i < contained.size(); i++) {
- mofObject = (EObject) contained.get(i);
- resolveProxies(mofObject);
- }
- }
-
- private static void resolveNonContainedProxies(EObject refObject) {
- List references = refObject.eClass().getEAllReferences();
- EReference reference;
- EObject proxyOrObject;
- for (int i = 0; i < references.size(); i++) {
- reference = (EReference) references.get(i);
- if (!reference.isContainment() && !reference.isTransient()) {
- if (reference.isMany()) {
- Iterator value = ((List) refObject.eGet(reference)).iterator();
- while (value.hasNext()) {
- proxyOrObject = (EObject) value.next();
- if (proxyOrObject.eIsProxy())
- value.remove();
- }
- } else {
- proxyOrObject = (EObject) refObject.eGet(reference, false);
- if (proxyOrObject != null && proxyOrObject.eIsProxy()) {
- URI resourceURI = ((EObjectImpl) proxyOrObject).eProxyURI().trimFragment();
- String protocol = resourceURI.scheme();
- if (protocol == null || !protocol.equals("java")) { //$NON-NLS-1$
- String id = ((EObjectImpl) proxyOrObject).eProxyURI().fragment();
- if (resourceURIMap.get(resourceURI) != null) {
- Resource cachedResource = (Resource) resourceURIMap.get(resourceURI);
- proxyOrObject = (EObject) ((XMLResource) cachedResource).getIDToEObjectMap().get(id);
- } else {
- proxyOrObject = (EObject) refObject.eGet(reference);
- resourceURIMap.put(resourceURI, proxyOrObject.eResource());
- }
- if (proxyOrObject == null || proxyOrObject.eIsProxy())
- refObject.eSet(reference, null);
- }
- }
- }
- }
- }
- }
-
- private static void resolveProxies(EObject refObject) {
- if (refObject != null) {
- resolveNonContainedProxies(refObject);
- resolveContainedProxies(refObject);
- }
- }
-
- /**
- * Force all of the proxies with resource
to be resolved.
- */
- static void checkForUnresolvableProxies(Resource resource) {
- resourceURIMap = new HashMap(); //Reset hashmap on each call
- if (resource != null) {
- List topLevels = resource.getContents();
- EObject mofObject;
- for (int i = 0; i < topLevels.size(); i++) {
- mofObject = (EObject) topLevels.get(i);
- resolveProxies(mofObject);
- }
- }
- }
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/RuntimeClasspathEntry.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/RuntimeClasspathEntry.java
deleted file mode 100644
index 3281c6716..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/RuntimeClasspathEntry.java
+++ /dev/null
@@ -1,54 +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.jst.j2ee.commonarchivecore.internal.helpers;
-
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.WARFile;
-
-public interface RuntimeClasspathEntry {
-
-
- /**
- * The resolved absolute path of the entry
- */
- String getAbsolutePath();
-
- void setAbsolutePath(String absolutePath);
-
- /**
- * A single token from the Class-Path: attrbute
- */
- String getManifestValue();
-
- void setManifestValue(String manifestValue);
-
- /**
- * valid only if this entry is a library in a WARFile, under WEB-INF/lib
- */
- WARFile getWarFile();
-
- void setWarFile(WARFile aWarFile);
-
- /**
- * true if this entry is a library in a WAR file
- */
- boolean isWebLib();
-
- /**
- * The resolved archive inside an EAR that this entry points to; Note that this is NOT the
- * Archive that has the entry in the manifest, but rather the referenced archive/
- */
- Archive getReferencedArchive();
-
- void setReferencedArchive(Archive anArchive);
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/RuntimeClasspathEntryImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/RuntimeClasspathEntryImpl.java
deleted file mode 100644
index caf60cb51..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/RuntimeClasspathEntryImpl.java
+++ /dev/null
@@ -1,135 +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.jst.j2ee.commonarchivecore.internal.helpers;
-
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.WARFile;
-
-public class RuntimeClasspathEntryImpl implements RuntimeClasspathEntry {
-
- /** A single token from the Class-Path: attrbute */
- protected String manifestValue;
- /** The resolved absolute path of the entry */
- protected String absolutePath;
- /** valid only if this entry is a library in a WARFile, under WEB-INF/lib */
- protected WARFile warFile;
-
- protected Archive referencedArchive;
-
- /**
- * Constructor for ManifestClasspathEntryImpl.
- */
- public RuntimeClasspathEntryImpl() {
- super();
- }
-
- /**
- * Gets the absolutePath.
- *
- * @return Returns a String
- */
- public String getAbsolutePath() {
- return absolutePath;
- }
-
- /**
- * Sets the absolutePath.
- *
- * @param absolutePath
- * The absolutePath to set
- */
- public void setAbsolutePath(String absolutePath) {
- this.absolutePath = absolutePath;
- }
-
- /**
- * Gets the manifestValue.
- *
- * @return Returns a String
- */
- public String getManifestValue() {
- return manifestValue;
- }
-
- /**
- * Sets the manifestValue.
- *
- * @param manifestValue
- * The manifestValue to set
- */
- public void setManifestValue(String manifestValue) {
- this.manifestValue = manifestValue;
- }
-
-
-
- /**
- * Gets the warFile.
- *
- * @return Returns a WARFile
- */
- public WARFile getWarFile() {
- return warFile;
- }
-
- /**
- * Sets the warFile.
- *
- * @param warFile
- * The warFile to set
- */
- public void setWarFile(WARFile warFile) {
- this.warFile = warFile;
- }
-
- public String toString() {
- return getAbsolutePath();
- }
-
- public boolean equals(Object o) {
- if (o instanceof RuntimeClasspathEntry)
- return getAbsolutePath().equals(((RuntimeClasspathEntry) o).getAbsolutePath());
- return false;
- }
-
- public int hashCode() {
- return getAbsolutePath().hashCode();
- }
-
-
- /**
- * @see RuntimeClasspathEntry#isWebLib()
- */
- public boolean isWebLib() {
- return warFile != null;
- }
-
- /**
- * Gets the referencedArchive.
- *
- * @return Returns a Archive
- */
- public Archive getReferencedArchive() {
- return referencedArchive;
- }
-
- /**
- * Sets the referencedArchive.
- *
- * @param referencedArchive
- * The referencedArchive to set
- */
- public void setReferencedArchive(Archive referencedArchive) {
- this.referencedArchive = referencedArchive;
- }
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/SaveFilter.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/SaveFilter.java
deleted file mode 100644
index 8ee945038..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/SaveFilter.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.helpers;
-
-
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.SaveStrategy;
-
-/**
- * Object used for saving an archive with only a subset of its files. By default all files are
- * saved. Clients can create a custom filter and set it on a save strategy, and call
- * {@link Archive#save(SaveStrategy)}
- */
-public interface SaveFilter {
- /**
- * Answer whether an element in the archive having the uri should be saved; the uri may be for a
- * file, a nested archive, or a loaded mof resource
- */
- public boolean shouldSave(String uri, Archive anArchive);
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/SaveFilterImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/SaveFilterImpl.java
deleted file mode 100644
index de041ecf4..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/SaveFilterImpl.java
+++ /dev/null
@@ -1,34 +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.jst.j2ee.commonarchivecore.internal.helpers;
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-
-
-
-/**
- * Default filter which allows all elememts to save
- */
-public class SaveFilterImpl implements org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.SaveFilter {
- /**
- * SaveFilterImpl constructor comment.
- */
- public SaveFilterImpl() {
- super();
- }
-
- /**
- * @see com.ibm.etools.archive.SaveFilter
- */
- public boolean shouldSave(java.lang.String uri, Archive anArchive) {
- return true;
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/SelectedFilesFilterImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/SelectedFilesFilterImpl.java
deleted file mode 100644
index 4b81f724d..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/SelectedFilesFilterImpl.java
+++ /dev/null
@@ -1,83 +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.jst.j2ee.commonarchivecore.internal.helpers;
-
-
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.File;
-
-
-/**
- * Insert the type's description here. Creation date: (03/23/01 11:04:52 AM)
- *
- * @author: Administrator
- */
-public class SelectedFilesFilterImpl extends SaveFilterImpl {
- /** Set of file uris to be saved */
- protected Set selectedFileNames;
-
- /**
- * SelectedFilesFilterImpl constructor comment.
- */
- public SelectedFilesFilterImpl() {
- super();
- }
-
- /**
- * Constructor with a preselected subset of the files in the archive to be saved; each element
- * in the list must be an instance of {@link com.ibm.etools.commonarchive.File}
- */
- public SelectedFilesFilterImpl(List archiveFiles) {
- super();
- Set fileNames = new HashSet();
- for (int i = 0; i < archiveFiles.size(); i++) {
- File aFile = (File) archiveFiles.get(i);
- fileNames.add(aFile.getURI());
- }
- setSelectedFileNames(fileNames);
- }
-
- /**
- * Parameter must be a set of valid uris in the archive
- */
- public SelectedFilesFilterImpl(Set fileNames) {
- super();
- setSelectedFileNames(fileNames);
- }
-
- /**
- * Insert the method's description here. Creation date: (03/23/01 11:19:01 AM)
- *
- * @return java.util.Set
- */
- public java.util.Set getSelectedFileNames() {
- return selectedFileNames;
- }
-
- /**
- * Insert the method's description here. Creation date: (03/23/01 11:19:01 AM)
- *
- * @param newSelectedFileNames
- * java.util.Set
- */
- public void setSelectedFileNames(java.util.Set newSelectedFileNames) {
- selectedFileNames = newSelectedFileNames;
- }
-
- public boolean shouldSave(java.lang.String uri, Archive anArchive) {
- return getSelectedFileNames().contains(uri);
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/AltResourceRegister.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/AltResourceRegister.java
deleted file mode 100644
index 253d7a181..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/AltResourceRegister.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.impl;
-
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-public class AltResourceRegister {
- protected static Set registeredURIs = new HashSet();
-
- protected AltResourceRegister() {
- //Default
- }
-
-
- /**
- * Registers an Archive relative path for the resource which can be copied up as an alt in an
- * EAR file. The uri should be in cananonical form and use the forward slash, eg,
- * "META-INF/vendor-extensions.xmi"
- */
- public static void registerURI(String uri) {
- registeredURIs.add(uri);
- }
-
- public static void deRegisterURI(String uri) {
- registeredURIs.remove(uri);
- }
-
- public static boolean isRegistered(String uri) {
- return registeredURIs.contains(uri);
- }
-
- public static Set getRegisteredURIs() {
- return Collections.unmodifiableSet(registeredURIs);
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ApplicationClientFileImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ApplicationClientFileImpl.java
deleted file mode 100644
index ed346712b..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ApplicationClientFileImpl.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.impl;
-
-
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.jst.j2ee.client.ApplicationClient;
-import org.eclipse.jst.j2ee.client.ClientPackage;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ApplicationClientFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchivePackage;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException;
-import org.eclipse.jst.j2ee.internal.J2EEConstants;
-import org.eclipse.jst.j2ee.internal.common.XMLResource;
-
-
-/**
- * @generated
- */
-public class ApplicationClientFileImpl extends ModuleFileImpl implements ApplicationClientFile {
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected ApplicationClient deploymentDescriptor = null;
-
- public ApplicationClientFileImpl() {
- super();
- }
-
- /**
- *
- * @generated
- */
- protected EClass eStaticClass() {
- return CommonarchivePackage.Literals.APPLICATION_CLIENT_FILE;
- }
-
- /**
- * @throws DeploymentDescriptorLoadException -
- * is a runtime exception, because we can't override the signature of the generated
- * methods
- */
- public ApplicationClient getDeploymentDescriptor() throws DeploymentDescriptorLoadException {
- ApplicationClient dd = this.getDeploymentDescriptorGen();
- if (dd == null && canLazyInitialize()) {
- try {
- getImportStrategy().importMetaData();
- } catch (Exception e) {
- throw new DeploymentDescriptorLoadException(getDeploymentDescriptorUri(), e);
- }
- }
-
- return this.getDeploymentDescriptorGen();
- }
-
- /**
- * @see com.ibm.etools.commonarchive.impl.ModuleFileImpl
- */
- public java.lang.String getDeploymentDescriptorUri() {
- return J2EEConstants.APP_CLIENT_DD_URI;
- }
-
- /**
- * Return the DeployementDescriptor.
- */
- public EObject getStandardDeploymentDescriptor() throws DeploymentDescriptorLoadException {
- return getDeploymentDescriptor();
- }
-
- /**
- * @see com.ibm.etools.commonarchive.File
- */
- public boolean isApplicationClientFile() {
- return true;
- }
-
- public boolean isDeploymentDescriptorSet() {
- return deploymentDescriptor != null;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.impl.ModuleFileImpl
- */
- public org.eclipse.emf.ecore.EObject makeDeploymentDescriptor(XMLResource resource) {
- ApplicationClient aClient = ((ClientPackage) EPackage.Registry.INSTANCE.getEPackage(ClientPackage.eNS_URI)).getClientFactory().createApplicationClient();
- resource.setID(aClient, J2EEConstants.APP_CLIENT_ID);
- setDeploymentDescriptorGen(aClient);
- resource.getContents().add(aClient);
- return aClient;
- }
-
- public void setDeploymentDescriptor(ApplicationClient l) {
- this.setDeploymentDescriptorGen(l);
- replaceRoot(getMofResourceMakeIfNecessary(getDeploymentDescriptorUri()), l);
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public ApplicationClient getDeploymentDescriptorGen() {
- if (deploymentDescriptor != null && deploymentDescriptor.eIsProxy()) {
- InternalEObject oldDeploymentDescriptor = (InternalEObject)deploymentDescriptor;
- deploymentDescriptor = (ApplicationClient)eResolveProxy(oldDeploymentDescriptor);
- if (deploymentDescriptor != oldDeploymentDescriptor) {
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.RESOLVE, CommonarchivePackage.APPLICATION_CLIENT_FILE__DEPLOYMENT_DESCRIPTOR, oldDeploymentDescriptor, deploymentDescriptor));
- }
- }
- return deploymentDescriptor;
- }
-
- /**
- *
- * @generated
- */
- public ApplicationClient basicGetDeploymentDescriptor() {
- return deploymentDescriptor;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public void setDeploymentDescriptorGen(ApplicationClient newDeploymentDescriptor) {
- ApplicationClient oldDeploymentDescriptor = deploymentDescriptor;
- deploymentDescriptor = newDeploymentDescriptor;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, CommonarchivePackage.APPLICATION_CLIENT_FILE__DEPLOYMENT_DESCRIPTOR, oldDeploymentDescriptor, deploymentDescriptor));
- }
-
- /**
- *
- *
- * @generated
- */
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case CommonarchivePackage.APPLICATION_CLIENT_FILE__DEPLOYMENT_DESCRIPTOR:
- if (resolve) return getDeploymentDescriptor();
- return basicGetDeploymentDescriptor();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case CommonarchivePackage.APPLICATION_CLIENT_FILE__DEPLOYMENT_DESCRIPTOR:
- setDeploymentDescriptor((ApplicationClient)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eUnset(int featureID) {
- switch (featureID) {
- case CommonarchivePackage.APPLICATION_CLIENT_FILE__DEPLOYMENT_DESCRIPTOR:
- setDeploymentDescriptor((ApplicationClient)null);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- *
- *
- * @generated
- */
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case CommonarchivePackage.APPLICATION_CLIENT_FILE__DEPLOYMENT_DESCRIPTOR:
- return deploymentDescriptor != null;
- }
- return super.eIsSet(featureID);
- }
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ArchiveCopySessionUtility.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ArchiveCopySessionUtility.java
deleted file mode 100644
index c515a3838..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ArchiveCopySessionUtility.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.impl;
-
-
-import java.util.List;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.jem.java.JavaClass;
-import org.eclipse.jst.j2ee.ejb.CMPAttribute;
-import org.eclipse.jst.j2ee.ejb.ContainerManagedEntity;
-import org.eclipse.jst.j2ee.internal.common.XMLResource;
-import org.eclipse.wst.common.internal.emf.utilities.EtoolsCopySession;
-import org.eclipse.wst.common.internal.emf.utilities.EtoolsCopyUtility;
-
-
-/**
- * OverRide class to use the proper copying of XMLResource doctypes. Had to create this class Due to
- * the way it's handled in the copy commands of EtoolsCopyUtility
- *
- * Creation date: (11/18/01 88888888:48 PM)
- *
- * @author: Jared Jurkiewicz
- */
-public class ArchiveCopySessionUtility extends EtoolsCopySession {
- public EObject copy(EObject aRefObject, String idSuffix) {
- EObject copied = super.copy(aRefObject, idSuffix);
- if (copied instanceof ContainerManagedEntity)
- copyPrimKeyInfo((ContainerManagedEntity) aRefObject, (ContainerManagedEntity) copied);
- return copied;
- }
-
- public EObject primCopy(EObject aRefObject, String idSuffix) {
- EObject copied = super.primCopy(aRefObject, idSuffix);
- if (copied instanceof ContainerManagedEntity)
- copyPrimKeyInfo((ContainerManagedEntity) aRefObject, (ContainerManagedEntity) copied);
- return copied;
- }
-
- public ArchiveCopySessionUtility(EtoolsCopyUtility aCopyUtility) {
- super(aCopyUtility);
- }
-
- /**
- * @see com.ibm.etools.emf.ecore.utilities.copy.EtoolsCopySession#newInstance(Resource, String)
- */
- public Resource newInstance(Resource aResource, String newUri) {
- Resource copyResource = super.newInstance(aResource, newUri);
-
- if (aResource instanceof XMLResource)
- ((XMLResource) copyResource).setVersionID(((XMLResource) aResource).getVersionID());
- return copyResource;
- }
-
- public EObject getCopyIfFound(EObject anObject) {
- EObject copiedObject = super.getCopyIfFound(anObject);
- if ((anObject instanceof JavaClass) && (anObject == copiedObject)) {
- copiedObject = newInstance(anObject);
- URI uri = EcoreUtil.getURI(anObject);
- ((InternalEObject) copiedObject).eSetProxyURI(uri);
- }
- return copiedObject;
- }
-
- public EObject copyObject(EObject aRefObject, String idSuffix) {
- EObject copied = super.copyObject(aRefObject, idSuffix);
- if (copied instanceof ContainerManagedEntity)
- copyPrimKeyInfo((ContainerManagedEntity) aRefObject, (ContainerManagedEntity) copied);
- return copied;
- }
-
- public void copyPrimKeyInfo(ContainerManagedEntity source, ContainerManagedEntity copied) {
- CMPAttribute primKeyField = source.getPrimKeyField();
- if (primKeyField != null)
- copied.setPrimKeyField(primKeyField);
- }
-
- /*
- * Super class override to handle unresolvable proxies (JavaClass)
- */
-
- protected void copyReference(EReference aReference, EObject aRefObject, String idSuffix, EObject copyRef) {
- if (aReference.isMany()) {
- List value = (List) aRefObject.eGet(aReference);
- if (value != null)
- copyManyReference(aReference, value, aRefObject, idSuffix, copyRef);
- } else if (aRefObject.eIsSet(aReference)) {
- Object value = aRefObject.eGet(aReference);
- if (value == null)
- value = ((InternalEObject) aRefObject).eGet(aReference, false);
- copySingleReference(aReference, (EObject) value, aRefObject, idSuffix, copyRef);
- }
- }
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ArchiveCopyUtility.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ArchiveCopyUtility.java
deleted file mode 100644
index ab9bc6009..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ArchiveCopyUtility.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.impl;
-
-
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.jst.j2ee.common.internal.util.Defaultable;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonArchiveResourceHandler;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchiveFactory;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchivePackage;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.File;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.WARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveRuntimeException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DuplicateObjectException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveManifest;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveManifestImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveUtil;
-import org.eclipse.jst.j2ee.internal.J2EEConstants;
-import org.eclipse.jst.j2ee.webapplication.FilterMapping;
-import org.eclipse.wst.common.internal.emf.utilities.CopyGroup;
-import org.eclipse.wst.common.internal.emf.utilities.EtoolsCopySession;
-import org.eclipse.wst.common.internal.emf.utilities.EtoolsCopyUtility;
-
-
-
-/**
- * Insert the type's description here. Creation date: (12/18/00 6:26:48 PM)
- *
- * @author: Administrator
- */
-public class ArchiveCopyUtility extends EtoolsCopyUtility {
- /**
- * ModuleFileCopyUtiltity constructor comment.
- */
- public ArchiveCopyUtility() {
- super();
- setCopyAdapters(true);
- }
-
- /*
- * End of code pulled from EtoolsCopyUtility to over-ride the primCopy method.
- */
-
- protected void addDeferredSingleReferenceCopy(EReference reference, EObject aValue, String idSuffix, EObject aCopyContainer) {
- if (((Defaultable) aValue).isDefault())
- return;
- super.addDeferredSingleReferenceCopy(reference, aValue, idSuffix, aCopyContainer);
- }
-
- public ArchiveManifest copy(ArchiveManifest mf) {
- try {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- mf.write(out);
- InputStream in = new ByteArrayInputStream(out.toByteArray());
- return new ArchiveManifestImpl(in);
- } catch (IOException iox) {
- //This should almost never happen, unless there is an issure with memory allocation
- throw new ArchiveRuntimeException(CommonArchiveResourceHandler.IOException_occurred_while_EXC_, iox); // = "IOException occurred while copying manifest"
- }
- }
-
- public Archive copy(Archive anArchive) {
-
- //First create a copy group and copy util; copy the archive and all its resources
- CopyGroup copyGroup = new CopyGroup();
- copyGroup.setPreserveIds(true);
- prepareResourcesForCopy(anArchive, copyGroup);
- copyGroup.add(anArchive);
- this.copy(copyGroup);
-
- Archive copiedArchive = (Archive) getCopy(anArchive);
-
- finishCopy(anArchive, copiedArchive, copyGroup);
- return copiedArchive;
- }
-
- public ModuleFile copy(ModuleFile aModuleFile) {
- /**
- * Timing issue; if the resources containing the bindings, extensions, and dd have not yet
- * be loaded, force that before the copy occurs; otherwise, they will get loaded as the
- * accessors are invoked during copy. Because they will be loaded but not copied into the
- * new archive's context, then changes will not get saved. By forcing the load before the
- * copy commences, the loaded resources will also be copied to the new archive
- */
- aModuleFile.getStandardDeploymentDescriptor();
-
- /*
- * RLS-8/12/2002 Hack to fix botp defect "141640-failed to install .war file with
- * filter-mapping" The problem is that there is a transient field on the filter mapping
- * class for the servlet name the relationship to the servlet is lazily populated the first
- * time it is requested. If we don't trip it, then it won't get copied.
- */
-
- if (aModuleFile.isWARFile()) {
- List filterMappings = ((WARFile) aModuleFile).getDeploymentDescriptor().getFilterMappings();
- for (int i = 0; i < filterMappings.size(); i++) {
- ((FilterMapping) filterMappings.get(i)).getServlet();
- }
- }
- ModuleFile copied = (ModuleFile) copy((Archive) aModuleFile);
-
- return copied;
- }
-
- /*
- * The following methods were pulled out of EtoolsCopyUtility so we can over-ride the
- * EtoolsCopySession object with our own such that doictypes do get preserved with XML
- * Resources.
- */
- public void copy(CopyGroup aGroup) {
- if (aGroup != null) {
- EtoolsCopySession session = new ArchiveCopySessionUtility(this);
- session.setPreserveIds(aGroup.getPreserveIds());
- session.copy(aGroup);
- session.flush();
- }
- }
-
- public EObject copy(EObject aRefObject, String idSuffix) {
- EtoolsCopySession session = new ArchiveCopySessionUtility(this);
- EObject copied = session.copy(aRefObject, idSuffix);
- session.flush();
- return copied;
- }
-
- public Resource copy(Resource aResource, String newUri) {
- EtoolsCopySession session = new ArchiveCopySessionUtility(this);
- Resource copied = session.copy(aResource, newUri);
- session.flush();
- return copied;
- }
-
- protected void copyImportStrategyIfNecessary(ModuleFile aModuleFile, ModuleFile copy) {
- if (!aModuleFile.isDeploymentDescriptorSet())
- copy.setImportStrategy(aModuleFile.getImportStrategy().createImportStrategy(aModuleFile, copy));
- }
-
- public EObject copyObject(EObject aRefObject, String idSuffix) {
- EtoolsCopySession session = new ArchiveCopySessionUtility(this);
- EObject copied = session.copyObject(aRefObject, idSuffix);
- session.flush();
- return copied;
- }
-
- public static void createCopy(CopyGroup aGroup) {
- ArchiveCopyUtility utility = new ArchiveCopyUtility();
- utility.copy(aGroup);
- }
-
- protected void finishCopy(Archive source, Archive copy, CopyGroup group) {
-
- copy.setLoadStrategy(getCommonarchiveFactory().createEmptyLoadStrategy());
- copy.setExtraClasspath(source.getExtraClasspath());
- copy.setXmlEncoding(source.getXmlEncoding());
- if (source.isManifestSet()) {
- copy.setManifest(copy(source.getManifest()));
- } else {
- try {
- File manifestToCopy = source.getFile(J2EEConstants.MANIFEST_URI);
- if (manifestToCopy != null) {
- File copiedManifest = (File) getCopy(manifestToCopy);
- copiedManifest.setLoadingContainer(manifestToCopy.getLoadingContainer());
- copy.addCopy(copiedManifest);
- }
- } catch (FileNotFoundException e) {
- //Ignore
- } catch (DuplicateObjectException e) {
- //Ignore
- }
- }
- retrieveResourcesFromCopy(copy, group);
-
- if (source.isModuleFile())
- copyImportStrategyIfNecessary((ModuleFile) source, (ModuleFile) copy);
-
- List files = source.getFiles();
- for (int i = 0; i < files.size(); i++) {
- File aFile = (File) files.get(i);
- File copiedFile = (File) getCopy(aFile);
- copiedFile.setLoadingContainer(aFile.getLoadingContainer());
- if (aFile.isArchive())
- finishNestedCopy((Archive) aFile, (Archive) copiedFile);
- }
- //Notification was suspended during copy; therefore we need to make sure the files
- //In the archive get indexed
- copy.rebuildFileIndex();
- }
-
- protected void finishNestedCopy(Archive source, Archive copy) {
-
- CopyGroup group = new CopyGroup();
- prepareResourcesForCopy(source, group);
- copy(group);
- finishCopy(source, copy, group);
- }
-
- private CommonarchiveFactory getCommonarchiveFactory() {
- return CommonarchivePackage.eINSTANCE.getCommonarchiveFactory();
- }
-
- protected void prepareResourcesForCopy(Archive anArchive, CopyGroup copyGroup) {
- Iterator iter = anArchive.getLoadedMofResources().iterator();
- while (iter.hasNext()) {
- Resource resource = (Resource) iter.next();
- if (!ArchiveUtil.isJavaResource(resource))
- copyGroup.add(resource);
- }
- }
-
- protected void retrieveResourcesFromCopy(Archive copiedArchive, CopyGroup copyGroup) {
-
- List resources = copyGroup.getCopiedResources();
- for (int i = 0; i < resources.size(); i++) {
- Resource copiedResource = (Resource) resources.get(i);
- copiedArchive.addOrReplaceMofResource(copiedResource);
- }
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ArchiveImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ArchiveImpl.java
deleted file mode 100644
index af0224e65..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ArchiveImpl.java
+++ /dev/null
@@ -1,1452 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.impl;
-
-
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.WrappedException;
-import org.eclipse.emf.ecore.EClass;
-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.EDataTypeUniqueEList;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.jem.internal.java.adapters.ReadAdaptor;
-import org.eclipse.jem.internal.java.adapters.jdk.JavaJDKAdapterFactory;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ArchiveTypeDiscriminatorRegistry;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonArchiveResourceHandler;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchivePackage;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Container;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.File;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ReadOnlyDirectory;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DuplicateObjectException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ManifestException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ReopenException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ResourceLoadException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.SaveFailureException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveManifest;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveManifestImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveOptions;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.RuntimeClasspathEntry;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.RuntimeClasspathEntryImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.SaveFilter;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.DirectorySaveStrategyImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.SaveStrategy;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.ZipStreamSaveStrategyImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveFileDynamicClassLoader;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveUtil;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.util.ClasspathUtil;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive;
-import org.eclipse.jst.j2ee.internal.J2EEConstants;
-import org.eclipse.wst.common.internal.emf.utilities.EtoolsCopyUtility;
-import org.eclipse.wst.common.internal.emf.utilities.ExtendedEcoreUtil;
-
-
-/**
- * @generated
- */
-public class ArchiveImpl extends ContainerImpl implements Archive {
-
- /**
- * The cached value of the '{@link #getTypes() Types}' attribute list.
- *
- * @see #getTypes()
- * @generated
- * @ordered
- */
- protected EList types = null;
-
- /** Our specialized manifest */
- protected ArchiveManifest manifest;
-
- /** Implementer for saving this archive */
- protected SaveStrategy saveStrategy;
-
- /**
- * Optional filter for saving a subset of files; filter will be applied for all save and extract
- * invokations
- */
- protected SaveFilter saveFilter;
-
- /** Encoding to be used for all xmi resources and xml dds; defaults to UTF-8 */
- protected String xmlEncoding = J2EEConstants.DEFAULT_XML_ENCODING;
-
- /** Custom class loader used to load classes from the archive */
- protected ClassLoader archiveClassLoader;
-
- /**
- * path of the standard classpath format where the archive may look for classes not found in the
- * system classpath or in the archive - used for java reflection
- */
- protected String extraClasspath;
-
- protected ArchiveOptions options;
-
- public ArchiveImpl() {
- super();
- getCommonArchiveFactory().archiveOpened(this);
- }
-
- /**
- *
- * @generated
- */
- protected EClass eStaticClass() {
- return CommonarchivePackage.Literals.ARCHIVE;
- }
-
- /**
- *
- * @generated
- */
- public EList getTypes() {
- if (types == null) {
- types = new EDataTypeUniqueEList(String.class, this, CommonarchivePackage.ARCHIVE__TYPES);
- }
- return types;
- }
-
- /**
- *
- *
- * @generated
- */
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case CommonarchivePackage.ARCHIVE__TYPES:
- return getTypes();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case CommonarchivePackage.ARCHIVE__TYPES:
- getTypes().clear();
- getTypes().addAll((Collection)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eUnset(int featureID) {
- switch (featureID) {
- case CommonarchivePackage.ARCHIVE__TYPES:
- getTypes().clear();
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- *
- *
- * @generated
- */
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case CommonarchivePackage.ARCHIVE__TYPES:
- return types != null && !types.isEmpty();
- }
- return super.eIsSet(featureID);
- }
-
- /**
- *
- * @generated
- */
- public String toString() {
- if (eIsProxy()) return super.toString();
-
- StringBuffer result = new StringBuffer(super.toString());
- result.append(" (types: ");
- result.append(types);
- result.append(')');
- return result.toString();
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public Archive addCopy(Archive anArchive) throws org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DuplicateObjectException {
- checkAddValid(anArchive);
- Archive copy = getCommonArchiveFactory().copy(anArchive);
- getFiles().add(copy);
- return copy;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive Adds a copy of the parameter to this archive
- * @throws com.ibm.etools.archive.exception.DuplicateObjectException
- * if the archive already contains a file with the specified uri
- */
- public File addCopy(File aFile) throws DuplicateObjectException {
- if (aFile.isReadOnlyDirectory()) {
- addCopy((ReadOnlyDirectory) aFile);
- return null;
- }
- checkAddValid(aFile);
- File copy = copy(aFile);
- getFiles().add(copy);
- return copy;
- }
-
- /**
- * Get a flattened list from the directory, then addCopy the list
- *
- * @throws com.ibm.etools.archive.exception.DuplicateObjectException
- * if a file with a uri that equals one of the nested files in the directory exists
- *
- * @return java.util.List the copied files that were added to the archive
- */
- public java.util.List addCopy(ReadOnlyDirectory dir) throws org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DuplicateObjectException {
- return addCopyFiles(dir.getFilesRecursive());
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public List addCopyFiles(java.util.List list) throws org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DuplicateObjectException {
- //Optimization - make sure the fileIndex is already built to speed up
- // containsFile
- getFiles();
- List copyList = new ArrayList();
- for (int i = 0; i < list.size(); i++) {
- File aFile = (File) list.get(i);
- checkAddValid(aFile);
- copyList.add(copy(aFile));
- }
- getFiles().addAll(copyList);
- return copyList;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public void addOrReplaceMofResource(org.eclipse.emf.ecore.resource.Resource aResource) {
- getLoadStrategy().addOrReplaceMofResource(aResource);
- }
-
- /**
- * @deprecated Use {@link #getDependentOpenArchives()}
- * @see com.ibm.etools.commonarchive.Archive
- */
- public boolean canClose() {
- return !getCommonArchiveFactory().getOpenArchivesDependingOn(this).isEmpty();
- }
-
- protected void checkAddValid(File aFile) throws DuplicateObjectException {
- checkAddValid(aFile.getURI());
- }
-
- protected void checkAddValid(String aUri) throws DuplicateObjectException {
- try {
- File f = getFile(aUri);
- if (f != null)
- throw new DuplicateObjectException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.duplicate_file_EXC_, (new Object[]{getURI(), aUri})), f); // = "The archive named {0} already contains a file named {1}"
- } catch (FileNotFoundException ok) {
- //Ignore
- }
- }
-
- protected void cleanupAfterTempSave(String aUri, java.io.File original, java.io.File destinationFile) throws SaveFailureException {
-
- checkWriteable(original);
- boolean deleteWorked = false;
- if (original.isDirectory() && !isRenameable(original)) {
- throw new SaveFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.unable_replace_EXC_, (new Object[]{original.getAbsolutePath()}))); // = "Unable to replace original archive "
- }
-
- for (int i = 0; i < 10; i++) {
- if (ArchiveUtil.delete(original)) {
- deleteWorked = true;
- break;
- }
- try {
- // TODO Major hack here; the problem is that a previous call
- // to close the source file may not yet have
- //been reflected in the os/vm; therefore a subsequent call
- // to delete fails. To get around this,
- //wait for a bit and retry; if it continues to fail, then
- // time out and throw an exception
- Thread.sleep(250);
- } catch (InterruptedException e) {
- //Ignore
- }
- }
- if (deleteWorked) {
- for (int i = 0; i < 10; i++) {
- if (destinationFile.renameTo(original))
- return;
- try {
- Thread.sleep(250);
- } catch (InterruptedException e) {
- //Ignore
- }
- }
- }
- throw new SaveFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.unable_replace_EXC_, (new Object[]{original.getAbsolutePath()}))); // = "Unable to replace original archive "
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public void close() {
- getLoadStrategy().close();
- releaseClassLoader();
- getCommonArchiveFactory().archiveClosed(this);
- if (isIndexed()) {
- List archives = getArchiveFiles();
- for (int i = 0; i < archives.size(); i++) {
- ((Archive) archives.get(i)).close();
- }
- }
- }
-
- protected File copy(File aFile) {
- File copy = null;
- if (aFile.isArchive())
- copy = getCommonArchiveFactory().copy((Archive) aFile);
- else
- copy = (File) EtoolsCopyUtility.createCopy(aFile);
- return copy;
- }
-
- protected LoadStrategy createLoadStrategyForReopen(Archive parent) throws IOException {
- LoadStrategy aLoadStrategy = null;
- LooseArchive loose = getLoadStrategy().getLooseArchive();
-
- if (loose != null) {
- aLoadStrategy = getCommonArchiveFactory().createLoadStrategy(loose.getBinariesPath());
- aLoadStrategy.setLooseArchive(loose);
- } else if (parent == null)
- aLoadStrategy = getCommonArchiveFactory().createLoadStrategy(getURI());
- else
- aLoadStrategy = getCommonArchiveFactory().createChildLoadStrategy(getURI(), parent.getLoadStrategy());
-
- return aLoadStrategy;
- }
-
- protected RuntimeClasspathEntry createRuntimeClasspathEntry(String absolutePath) {
- RuntimeClasspathEntry entry = new RuntimeClasspathEntryImpl();
- entry.setAbsolutePath(absolutePath);
- return entry;
- }
-
- /**
- * Convert all the classpath entries to absolute paths
- */
- protected List createRuntimeClasspathEntries(String[] entries, String parentPath) {
-
- List aList = new ArrayList(entries.length);
- for (int i = 0; i < entries.length; i++) {
- String entry = entries[i];
- /*
- * Added for loose module support - if the cananonicalized entry resolves to an archive
- * in the containing ear, then add the absolute path of that archive
- */
- Archive dependentJar = resolveClasspathEntryInEAR(entry);
- if (dependentJar != null) {
- try {
- RuntimeClasspathEntry runEntry = createRuntimeClasspathEntry(dependentJar.getBinariesPath(), entry);
- runEntry.setReferencedArchive(dependentJar);
- aList.add(runEntry);
- continue;
- } catch (FileNotFoundException shouldntHappenInRuntime) {
- //Ignore
- }
- }
- //Otherwise, compute the absolute path of the entry relative to
- // this jar
- java.io.File aFile = new java.io.File(entry);
- String absPath = null;
- if (aFile.isAbsolute())
- absPath = aFile.getAbsolutePath();
- else {
- absPath = ArchiveUtil.getOSUri(parentPath, entry);
- absPath = ClasspathUtil.normalizePath(absPath);
- }
- aList.add(createRuntimeClasspathEntry(absPath, entry));
- }
-
- return aList;
- }
-
- protected RuntimeClasspathEntry createRuntimeClasspathEntry(String absolutePath, String manifestValue) {
- RuntimeClasspathEntry entry = createRuntimeClasspathEntry(absolutePath);
- entry.setManifestValue(manifestValue);
- return entry;
- }
-
- protected SaveStrategy createSaveStrategyForDirectory(java.io.File dir, int expansionFlags) {
- return new DirectorySaveStrategyImpl(dir.getAbsolutePath(), expansionFlags);
- }
-
- protected SaveStrategy createSaveStrategyForDirectory(String aUri, int expansionFlags) {
- return new DirectorySaveStrategyImpl(aUri, expansionFlags);
- }
-
- protected SaveStrategy createSaveStrategyForJar(java.io.File aFile) throws java.io.IOException {
- if (aFile.exists() && aFile.isDirectory())
- throw new IOException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.file_exist_as_dir_EXC_, (new Object[]{aFile.getAbsolutePath()})));// = "A file named {0} exists and is a directory"
- java.io.File parent = aFile.getParentFile();
- if (parent != null)
- parent.mkdirs();
- java.io.OutputStream out = new java.io.FileOutputStream(aFile);
- return new ZipStreamSaveStrategyImpl(out);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public void extract(int expansionFlags) throws SaveFailureException, ReopenException {
- extractNoReopen(expansionFlags);
- reopen();
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public void extractNoReopen(int expansionFlags) throws SaveFailureException {
- String aUri = getURI();
- java.io.File aDir = new java.io.File(aUri);
- boolean inUse = getLoadStrategy().isUsing(aDir);
-
- try {
- java.io.File destinationDir = inUse ? ArchiveUtil.createTempDirectory(aUri, aDir.getCanonicalFile().getParentFile()) : aDir;
- SaveStrategy aSaveStrategy = createSaveStrategyForDirectory(destinationDir, expansionFlags);
- save(aSaveStrategy);
- aSaveStrategy.close();
- close();
- if (inUse) {
- cleanupAfterTempSave(aUri, aDir, destinationDir);
- }
- } catch (java.io.IOException ex) {
- throw new SaveFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.error_saving_EXC_, (new Object[]{uri})), ex); // = "Error saving "
- }
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public void extractTo(java.lang.String aUri, int expansionFlags) throws SaveFailureException {
- java.io.File aDir = new java.io.File(aUri);
- if (getLoadStrategy().isUsing(aDir))
- throw new SaveFailureException(CommonArchiveResourceHandler.Extract_destination_is_the_EXC_); // = "Extract destination is the same path as source file"
-
- try {
- SaveStrategy aSaveStrategy = createSaveStrategyForDirectory(aDir, expansionFlags);
- save(aSaveStrategy);
- aSaveStrategy.close();
- } catch (java.io.IOException ex) {
- throw new SaveFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.error_saving_EXC_, (new Object[]{aUri})), ex); // = "Error saving "
- }
-
- }
-
- public java.util.List filterFilesByPrefix(String prefix) {
- return filterFiles(prefix, null);
- }
-
- public java.util.List filterFiles(String prefix, String[] suffixes) {
- List subset = new ArrayList();
- List theFiles = getFiles();
- for (int i = 0; i < theFiles.size(); i++) {
- File aFile = (File) theFiles.get(i);
- if (!aFile.isDirectoryEntry() && aFile.getURI().startsWith(prefix))
- if (suffixes == null || hasSuffix(aFile.getURI(), suffixes))
- subset.add(aFile);
- }
- return subset;
- }
-
- /**
- * @param uri
- * @param suffixes
- * @return
- */
- private boolean hasSuffix(String aUri, String[] suffixes) {
- for (int i = 0; i < suffixes.length; i++) {
- if (aUri.endsWith(suffixes[i]))
- return true;
- }
- return false;
- }
-
- public java.util.List filterFilesWithoutPrefix(String[] prefixes) {
- List subset = new ArrayList();
- List theFiles = getFiles();
- for (int i = 0; i < theFiles.size(); i++) {
- File aFile = (File) theFiles.get(i);
- if (aFile.isDirectoryEntry())
- continue;
- boolean shouldAdd = true;
- for (int j = 0; j < prefixes.length; j++) {
- if (aFile.getURI().startsWith(prefixes[j])) {
- shouldAdd = false;
- break;
- }
- }
- if (shouldAdd)
- subset.add(aFile);
- }
- return subset;
- }
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @return java.lang.ClassLoader
- */
- public java.lang.ClassLoader getArchiveClassLoader() {
- if (archiveClassLoader == null)
- initializeClassLoader();
- return archiveClassLoader;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.EARFile
- */
- public java.util.List getArchiveFiles() {
- List archives = new ArrayList();
- List fileList = getFiles();
- for (int i = 0; i < fileList.size(); i++) {
- File aFile = (File) fileList.get(i);
- if (aFile.isArchive()) {
- archives.add(aFile);
- }
- }
- return archives;
- }
-
- /**
- * Parse the manifest class path and the extra class path, and instantiate a URL classloader,
- * with a parent of the archiveClassLoader
- */
- protected ClassLoader getClassPathClassLoader(ClassLoader parentCl) {
-
- List classPathComponents = new ArrayList();
- if (getManifest() != null)
- classPathComponents.addAll(Arrays.asList(getManifest().getClassPathTokenized()));
- String extraCp = getExtraClasspath();
- if (extraCp != null)
- classPathComponents.addAll(Arrays.asList(ArchiveUtil.getTokens(extraCp, ";")));//$NON-NLS-1$
-
- java.net.URL[] urlArray = ArchiveUtil.toLocalURLs(classPathComponents, getRootForRelativeDependentJars());
- return new java.net.URLClassLoader(urlArray, parentCl);
- }
-
- public ResourceSet getResourceSet() {
- return getLoadStrategy().getResourceSet();
- }
-
- /**
- * Helper method to determine the parent for the custom class loader used by this archive
- */
- protected ClassLoader getDefaultClassLoader() {
- ClassLoader pluginClassLoader = getClass().getClassLoader();
- return pluginClassLoader == null ? ClassLoader.getSystemClassLoader() : pluginClassLoader;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public java.util.Set getDependentOpenArchives() {
- return getCommonArchiveFactory().getOpenArchivesDependingOn(this);
- }
-
- /**
- * Convert all the classpath entries to absolute paths
- */
- protected List getEntriesAsAbsolutePaths(String[] entries, String parentPath) {
-
- List aList = new ArrayList(entries.length);
- for (int i = 0; i < entries.length; i++) {
- String entry = entries[i];
- /*
- * Added for loose module support - if the cananonicalized entry resolves to an archive
- * in the containing ear, then add the absolute path of that archive
- */
- Archive dependentJar = resolveClasspathEntryInEAR(entry);
- if (dependentJar != null) {
- try {
- aList.add(dependentJar.getAbsolutePath());
- continue;
- } catch (FileNotFoundException shouldntHappenInRuntime) {
- //Ignore
- }
- }
- //Otherwise, compute the absolute path of the entry relative to
- // this jar
- java.io.File aFile = new java.io.File(entry);
- if (aFile.isAbsolute())
- aList.add(aFile.getAbsolutePath());
- else
- aList.add(ArchiveUtil.getOSUri(parentPath, entry));
- }
-
- return aList;
- }
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @return java.lang.String
- */
- public String getExtraClasspath() {
- return extraClasspath;
- }
-
- /**
- * Used internally by the framework, specifically as an optimization when saving/exploding
- * archives with nested archives
- */
- public org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.FileIterator getFilesForSave() throws IOException {
- return getLoadStrategy().getFileIterator();
- }
-
- /**
- * @see com.ibm.etools.commonarchive.File
- */
- public java.io.InputStream getInputStream() throws java.io.FileNotFoundException, java.io.IOException {
- if (getLoadingContainer() != null || getLoadStrategy() == null || getLoadStrategy().isDirectory())
- return super.getInputStream();
-
- //This archive was copied in; this operation is not supported for
- // module files
- if (isModuleFile() || !getOptions().isSaveLibrariesAsFiles())
- throw new IOException("Undefined state of nested archive"); //$NON-NLS-1$
-
- //We have to find the absolute path of the original archive from which
- // this was copied,
- //if it is known
-
- List list = getFiles();
-
- String absolutePath = null;
- for (int i = 0; i < list.size(); i++) {
- File aFile = (File) list.get(i);
- if (aFile.isArchive())
- continue;
- absolutePath = aFile.getLoadingContainer().getAbsolutePath();
- }
-
- return new FileInputStream(absolutePath);
- }
-
- /**
- * @see LoadStrategy#getResourceInputStream(String)
- */
- public InputStream getResourceInputStream(String aUri) throws IOException {
- return getLoadStrategy().getResourceInputStream(aUri);
- }
-
- protected JavaJDKAdapterFactory getJavaAdapterFactory() {
- return (JavaJDKAdapterFactory) EcoreUtil.getAdapterFactory(getLoadStrategy().getResourceSet().getAdapterFactories(), ReadAdaptor.TYPE_KEY);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive returns an immutable collection of the loaded
- * resources in the resource set
- */
- public Collection getLoadedMofResources() {
- return getLoadStrategy().getLoadedMofResources();
- }
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- */
- public ArchiveManifest getManifest() {
- if (manifest == null) {
- InputStream in = null;
- try {
- in = getInputStream(J2EEConstants.MANIFEST_URI);
- makeManifest(in);
- } catch (FileNotFoundException ex) {
- makeManifest();
- } catch (Resource.IOWrappedException ex) {
- WrappedException wrapEx = new WrappedException((ex).getWrappedException());
- if (ExtendedEcoreUtil.getFileNotFoundDetector().isFileNotFound(wrapEx))
- makeManifest();
- else
- throw new ManifestException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.io_ex_manifest_EXC_, (new Object[]{getURI()})), ex); // = "An IOException occurred reading the manifest: "
- } catch (IOException ex) {
- throw new ManifestException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.io_ex_manifest_EXC_, (new Object[]{getURI()})), ex); // = "An IOException occurred reading the manifest: "
- } finally {
- if (in != null)
- try {
- in.close();
- } catch (IOException iox) {
- //Ignore
- }
- }
- }
- //This is a hack because of the fact that the manifest does not
- // serialize correctly if
- //The version is not set. In addition to saves, the serialization is
- // used for copy
- if (manifest.getManifestVersion() == null || manifest.getManifestVersion().equals("")) //$NON-NLS-1$
- manifest.setManifestVersion("1.0");//$NON-NLS-1$
- return manifest;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public org.eclipse.emf.ecore.resource.Resource getMofResource(java.lang.String aUri) throws FileNotFoundException, ResourceLoadException {
- return getLoadStrategy().getMofResource(aUri);
- }
-
- protected Resource getMofResourceMakeIfNecessary(String aUri) {
- if (getLoadStrategy() == null)
- return null;
- Resource resource = null;
- try {
- resource = getMofResource(aUri);
- } catch (java.io.FileNotFoundException ex) {
- try {
- resource = makeMofResource(aUri);
- } catch (DuplicateObjectException dox) {
- //We just checked for this; it won't happen
- }
- }
- return resource;
- }
-
- public org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveOptions getOptions() {
- if (options == null) {
- options = new ArchiveOptions();
- }
- return options;
- }
-
- /**
- * When looking at the class path of this jar (from the manifest), some of the elements may have
- * a relative path, thus we need to determine the install location of this jar. If the absolute
- * path from which the archive was loaded, return the parent directory of that path; otherwise,
- * see if the containing archive has an absolute path; if neither work, default to the current
- * working directory
- */
- public String getRootForRelativeDependentJars() {
- String path = null;
- Container theContainer = this;
- while (theContainer != null && path == null) {
- try {
- path = theContainer.getAbsolutePath();
- } catch (FileNotFoundException ex) {
- //Ignore
- }
- theContainer = theContainer.getLoadingContainer();
- }
- if (path == null) {
- path = System.getProperty("user.dir");//$NON-NLS-1$
- if (path == null)
- //At this point what else can we do?
- return "";//$NON-NLS-1$
- return new java.io.File(path).getAbsolutePath();
- }
- return new java.io.File(path).getParentFile().getAbsolutePath();
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public java.lang.String[] getRuntimeClassPath() {
-
- String absolutePath;
- try {
- absolutePath = getBinariesPath();
- } catch (IOException ex) {
- return new String[0];
- }
-
- List entries = new ArrayList();
- entries.add(absolutePath);
-
- String parentPath = new java.io.File(absolutePath).getParentFile().getAbsolutePath();
- String[] mfEntries = getManifest().getClassPathTokenized();
- entries.addAll(getEntriesAsAbsolutePaths(mfEntries, parentPath));
-
- return (String[]) entries.toArray(new String[entries.size()]);
- }
-
- /**
- * Optional filter for saving a subset of files; filter will be applied for all save and extract
- * invokations
- */
- public org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.SaveFilter getSaveFilter() {
- return saveFilter;
- }
-
- /**
- * Insert the method's description here. Creation date: (12/04/00 3:31:32 PM)
- *
- * @return com.ibm.etools.archive.SaveStrategy
- */
- public org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.SaveStrategy getSaveStrategy() {
- return saveStrategy;
- }
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @return java.lang.String
- */
- public java.lang.String getXmlEncoding() {
- return xmlEncoding;
- }
-
- /**
- * The default is to do nothing; subclasses may override as necessary
- *
- * @see com.ibm.etools.commonarchive.Archive
- */
- public void initializeAfterOpen() {
- //Default
- }
-
- public void initializeClassLoader() {
- //Some load strategies may provide a mof context for which
- //an alternate class loader is not necessary
- if (!shouldUseJavaReflection())
- return;
- ClassLoader extraCl = null;
- ClassLoader defaultCl = getDefaultClassLoader();
- if (getContainer() == null || !getContainer().isEARFile())
- extraCl = getClassPathClassLoader(defaultCl);
- ClassLoader cl = createDynamicClassLoader(defaultCl, extraCl);
- setArchiveClassLoader(cl);
- JavaJDKAdapterFactory factory = getJavaAdapterFactory();
- factory.setContextClassLoader(cl);
- factory.flushAll();
- }
-
- public ClassLoader createDynamicClassLoader(ClassLoader parentCl, ClassLoader extraCl) {
- return new ArchiveFileDynamicClassLoader(this, parentCl, extraCl);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.File
- */
- public boolean isArchive() {
- return true;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public boolean isDuplicate(java.lang.String aUri) {
- return containsFile(aUri) || isMofResourceLoaded(aUri) || J2EEConstants.MANIFEST_URI.equals(aUri);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public boolean isManifestSet() {
- return manifest != null;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public boolean isMofResourceLoaded(java.lang.String aUri) {
- return getLoadStrategy().isMofResourceLoaded(aUri);
- }
-
- /**
- * By default just test the extension of the uri for one of the known archive types; subclasses
- * may which to override.
- *
- * @see com.ibm.etools.commonarchive.Archive
- */
- public boolean isNestedArchive(java.lang.String aUri) {
- //110390.3 Error loading alt-bindings
- /*
- * Don't infer that a folder which ends with .jar is an exploded archive; EAR file will do
- * that IF the folder is declared as a module in the EAR
- */
- if (getLoadStrategy().isDirectory()) {
- try {
- String path = ArchiveUtil.getOSUri(getAbsolutePath(), aUri);
- java.io.File ioFile = new java.io.File(path);
- if (!ioFile.exists() || (ioFile.isDirectory() && aUri.startsWith(J2EEConstants.ALT_INF)))
- return false;
- } catch (IOException ex) {
- return false;
- }
- }
- return ArchiveTypeDiscriminatorRegistry.INSTANCE.isKnownArchiveType(aUri);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public boolean isOpen() {
- return getLoadStrategy() != null && getLoadStrategy().isOpen();
- }
-
- public ArchiveManifest makeManifest() {
- ArchiveManifest mf = new ArchiveManifestImpl();
- setManifest(mf);
- return mf;
- }
-
- public ArchiveManifest makeManifest(InputStream in) throws IOException {
- ArchiveManifest mf = new ArchiveManifestImpl(in);
- setManifest(mf);
- return mf;
- }
-
- public Resource makeMofResource(String aUri) throws DuplicateObjectException {
- return makeMofResource(aUri, null);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive#makeMofResource(String, EList)
- */
- public Resource makeMofResource(String aUri, EList extent) throws DuplicateObjectException {
- if (isDuplicate(aUri))
- throw new DuplicateObjectException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.duplicate_entry_EXC_, (new Object[]{aUri, getURI()}))); // = "A file or resource with uri {0} already exists in the archive named {1}"
- return getLoadStrategy().makeMofResource(aUri, extent);
- }
-
- /**
- * @see Archive
- */
- public Archive openNestedArchive(String aUri) throws OpenFailureException {
- return getCommonArchiveFactory().openNestedArchive(aUri, this);
- }
-
- /**
- * @see Archive
- */
- public Archive openNestedArchive(LooseArchive loose) throws OpenFailureException {
- return getCommonArchiveFactory().openNestedArchive(loose, this);
- }
-
- /**
- * Set the value of the extra class path with no refresh of the class loader
- */
- public void primSetExtraClasspath(java.lang.String newExtraClasspath) {
- extraClasspath = newExtraClasspath;
- }
-
- /**
- * Remove references to the archive class loader to prevent gc problems or problems with temp
- * files not getting deleted
- */
- public void releaseClassLoader() {
- if (archiveClassLoader != null) {
- setArchiveClassLoader(null);
- getJavaAdapterFactory().setContextClassLoader(null);
- }
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public void remove(File aFile) {
- getFiles().remove(aFile);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public void reopen() throws ReopenException {
- reopen(null);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public void reopen(Archive parent) throws ReopenException {
- LoadStrategy aLoadStrategy = null;
- try {
- aLoadStrategy = createLoadStrategyForReopen(parent);
- } catch (IOException ex) {
- throw new ReopenException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.io_ex_reopen_EXC_, (new Object[]{getURI()})), ex); // = "IOException occurred while reopening "
- }
- //PQ54572
- LoadStrategy current = getLoadStrategy();
- if (current != null) {
- aLoadStrategy.setResourceSet(current.primGetResourceSet());
- /*
- * fixing problem with orphaned load strategy listening to the resource set
- */
- current.setResourceSet(null);
- }
-
- setLoadStrategy(aLoadStrategy);
- initializeClassLoader();
- if (!isIndexed())
- return;
- List fileList = getFiles();
- for (int i = 0; i < fileList.size(); i++) {
- File f = (File) fileList.get(i);
- f.setOriginalURI(f.getURI());
- f.setLoadingContainer(this);
- if (f.isArchive())
- ((Archive) f).reopen(this);
- }
- getCommonArchiveFactory().archiveOpened(this);
- }
-
- protected void replaceRoot(Resource aResource, EObject root) {
- if (aResource == null)
- return;
- EList extent = aResource.getContents();
- EObject existingRoot = null;
- if (!extent.isEmpty()) {
- existingRoot = (EObject) extent.get(0);
- if (existingRoot == root)
- return;
- extent.remove(0);
- }
- if (root != null)
- extent.add(0, root);
- }
-
- protected Archive resolveClasspathEntryInEAR(String entry) {
- /*
- * Added to support runtime classpath for loose modules
- */
- Container parent = getContainer();
- if (parent == null || !parent.isEARFile())
- return null;
-
- String aUri = ArchiveUtil.deriveEARRelativeURI(entry, this);
- if (aUri == null)
- return null;
-
- File aFile = null;
- try {
- aFile = parent.getFile(aUri);
- } catch (FileNotFoundException ex) {
- return null;
- }
-
- return aFile.isArchive() ? (Archive) aFile : null;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public void save() throws SaveFailureException, ReopenException {
- saveAs(getURI());
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public void save(org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.SaveStrategy aStrategy) throws SaveFailureException {
- setSaveStrategy(aStrategy);
- SaveFilter existingFilter = aStrategy.getFilter();
- boolean oldDelivery = eDeliver();
- try {
- if (getOptions().isReadOnly())
- eSetDeliver(false);
- aStrategy.setFilter(getSaveFilter());
- aStrategy.save();
- try {
- aStrategy.finish();
- } catch (java.io.IOException iox) {
- throw new SaveFailureException(getURI(), iox);
- }
- } finally {
- //We have to leave the file index if we are a directory because we
- // might have
- //open file handles to archives
- if (getOptions().isReadOnly() && !getLoadStrategy().isDirectory()) {
- files.clear();
- //((BasicEList)files).setListImplementation(new ArrayList(0));
- eSetDeliver(oldDelivery);
- eAdapters().remove(getFileIndexAdapter());
- fileIndexAdapter = null;
- fileIndex = null;
- }
- setSaveStrategy(null);
- aStrategy.setFilter(existingFilter);
- }
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public void saveAs(String aUri) throws SaveFailureException, ReopenException {
- saveAsNoReopen(aUri);
- reopen();
- }
-
- /**
- * If we can rename it then we can delete it
- */
- protected boolean isRenameable(java.io.File orig) {
- java.io.File origCopy1 = null;
- java.io.File origCopy2 = null;
- try {
- origCopy1 = orig.getCanonicalFile();
- origCopy2 = orig.getCanonicalFile();
- } catch (java.io.IOException ex) {
- return false;
- }
- String name = null;
- String baseName = "save.tmp"; //$NON-NLS-1$
- try {
- if (orig.getParent() != null)
- baseName = new java.io.File(orig.getParent(), baseName).getCanonicalPath();
- } catch (java.io.IOException ex) {
- return false;
- }
-
- java.io.File temp = null;
- int index = 0;
- do {
- name = baseName + index;
- temp = new java.io.File(name);
- index++;
- } while (temp.exists());
- return origCopy1.renameTo(temp) && temp.renameTo(origCopy2);
- }
-
- protected void checkWriteable(java.io.File dest) throws SaveFailureException {
- List locked = ArchiveUtil.getWriteProtectedFiles(dest, null);
- if (locked.isEmpty())
- return;
-
- StringBuffer msg = new StringBuffer();
- msg.append("Cannot write to file: "); //$NON-NLS-1$
- msg.append(dest.getAbsolutePath());
- msg.append('\n');
- msg.append("One or more files is write protected or locked:"); //$NON-NLS-1$
- msg.append('\n');
- for (int i = 0; i < locked.size(); i++) {
- java.io.File aFile = (java.io.File) locked.get(i);
- msg.append(aFile.getAbsolutePath());
- msg.append('\n');
- }
- throw new SaveFailureException(msg.toString());
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public void saveAsNoReopen(String aUri) throws SaveFailureException {
- java.io.File aFile = new java.io.File(aUri);
- checkWriteable(aFile);
- boolean fileExisted = aFile.exists();
- //botp 142149
- //boolean inUse = getLoadStrategy().isUsing(aFile);
- SaveStrategy aSaveStrategy = null;
- try {
- try {
- java.io.File destinationFile = fileExisted ? ArchiveUtil.createTempFile(aUri, aFile.getCanonicalFile().getParentFile()) : aFile;
- aSaveStrategy = createSaveStrategyForJar(destinationFile);
- save(aSaveStrategy);
- aSaveStrategy.close();
- this.close();
- if (fileExisted) {
- cleanupAfterTempSave(aUri, aFile, destinationFile);
- }
- } catch (java.io.IOException ex) {
- throw new SaveFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.error_saving_EXC_, (new Object[]{aUri})), ex); // = "Error saving "
- }
- } catch (SaveFailureException failure) {
- try {
- if (aSaveStrategy != null)
- aSaveStrategy.close();
- } catch (IOException weTried) {
- //Ignore
- }
- if (!fileExisted)
- aFile.delete();
- throw failure;
- }
-
- setURI(aUri);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public void saveNoReopen() throws SaveFailureException {
- saveAsNoReopen(getURI());
- }
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @param newArchiveClassLoader
- * java.lang.ClassLoader
- */
- public void setArchiveClassLoader(java.lang.ClassLoader newArchiveClassLoader) {
- archiveClassLoader = newArchiveClassLoader;
- }
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @param newExtraClasspath
- * java.lang.String
- */
- public void setExtraClasspath(java.lang.String newExtraClasspath) {
- primSetExtraClasspath(newExtraClasspath);
- //Optimization - only re init if a cl exists; otherwise it will init on
- // demand
- if (archiveClassLoader != null)
- initializeClassLoader();
- }
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- */
- public void setManifest(ArchiveManifest newManifest) {
- manifest = newManifest;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public void setManifest(java.util.jar.Manifest aManifest) {
- setManifest((ArchiveManifest) new org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveManifestImpl(aManifest));
- }
-
- /**
- * Sets the Class-path manifest entry, rebuilds the class loader, and refreshes any reflected
- * java classes
- */
- public void setManifestClassPathAndRefresh(String classpath) {
- ArchiveManifest mf = getManifest();
- if (manifest == null) {
- makeManifest();
- }
- mf.setClassPath(classpath);
- //Optimization - only re init if a cl exists; otherwise it will init on
- // demand
- if (archiveClassLoader != null)
- initializeClassLoader();
- }
-
- public void setOptions(org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveOptions newOptions) {
- options = newOptions;
- }
-
- /**
- * Optional filter for saving a subset of files; filter will be applied for all save and extract
- * invokations
- */
- public void setSaveFilter(org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.SaveFilter newSaveFilter) {
- saveFilter = newSaveFilter;
- }
-
- /**
- * Insert the method's description here. Creation date: (12/04/00 3:31:32 PM)
- *
- * @param newSaveStrategy
- * com.ibm.etools.archive.SaveStrategy
- */
- public void setSaveStrategy(org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.SaveStrategy newSaveStrategy) {
- saveStrategy = newSaveStrategy;
- if (newSaveStrategy != null) {
- newSaveStrategy.setArchive(this);
- }
- }
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @param newXmlEncoding
- * java.lang.String
- */
- public void setXmlEncoding(java.lang.String newXmlEncoding) {
- xmlEncoding = newXmlEncoding;
- }
-
- /**
- * Determine whether java reflection should be set up for this archive
- */
- public boolean shouldUseJavaReflection() {
- return getOptions().useJavaReflection() && getLoadStrategy().isClassLoaderNeeded();
- }
-
- protected void throwResourceLoadException(String resourceUri, Exception ex) throws ResourceLoadException {
- throw new ResourceLoadException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.load_resource_EXC_, (new Object[]{resourceUri, getURI()})), ex); // = "Could not load resource "{0}" in archive "{1}""
- }
-
- public String getResourcesPath() throws FileNotFoundException {
- return getLoadStrategy().getResourcesPath();
- }
-
- public String getBinariesPath() throws FileNotFoundException {
- return getLoadStrategy().getBinariesPath();
- }
-
- protected RuntimeClasspathEntry[] emptyClasspath() {
- return new RuntimeClasspathEntry[0];
- }
-
- protected String internalGetBinariesPath() {
- try {
- return getBinariesPath();
- } catch (FileNotFoundException ex) {
- return null;
- }
- }
-
- /**
- * By default return just the contents of this archive
- */
- public RuntimeClasspathEntry[] getLocalRuntimeClassPath() {
-
- String absolutePath = internalGetBinariesPath();
- if (absolutePath == null)
- return emptyClasspath();
- return new RuntimeClasspathEntry[]{createRuntimeClasspathEntry(absolutePath)};
- }
-
- protected RuntimeClasspathEntry[] getDependencyClassPathAtThisLevel() {
- String absolutePath = internalGetBinariesPath();
- if (absolutePath == null)
- return emptyClasspath();
- String parentPath = new java.io.File(absolutePath).getParentFile().getAbsolutePath();
- String[] mfEntries = getManifest().getClassPathTokenized();
- if (mfEntries.length == 0)
- return emptyClasspath();
- List entries = new ArrayList();
- entries.addAll(createRuntimeClasspathEntries(mfEntries, parentPath));
-
- return (RuntimeClasspathEntry[]) entries.toArray(new RuntimeClasspathEntry[entries.size()]);
- }
-
- public RuntimeClasspathEntry[] getFullRuntimeClassPath() {
- return concat(getLocalRuntimeClassPath(), getDependencyClassPath());
- }
-
- protected RuntimeClasspathEntry[] concat(RuntimeClasspathEntry[] array1, RuntimeClasspathEntry[] array2) {
- List temp = new ArrayList();
- temp.addAll(Arrays.asList(array1));
- temp.addAll(Arrays.asList(array2));
- return (RuntimeClasspathEntry[]) temp.toArray(new RuntimeClasspathEntry[temp.size()]);
- }
-
- public RuntimeClasspathEntry[] getDependencyClassPath() {
- List entries = new ArrayList();
- Set visited = new HashSet();
- Set processedEntries = new HashSet();
- visited.add(this);
- getDependencyClassPath(visited, entries, processedEntries, this);
- return (RuntimeClasspathEntry[]) entries.toArray(new RuntimeClasspathEntry[entries.size()]);
- }
-
- protected void getDependencyClassPath(Set visitedArchives, List entries, Set processedEntries, Archive current) {
-
- RuntimeClasspathEntry[] local = ((ArchiveImpl) current).getDependencyClassPathAtThisLevel();
- for (int i = 0; i < local.length; i++) {
- RuntimeClasspathEntry entry = local[i];
- if (!processedEntries.contains(entry)) {
- entries.add(entry);
- processedEntries.add(entry);
- }
- Archive resolved = entry.getReferencedArchive();
- if (resolved == null)
- ClasspathUtil.processManifest(entry.getAbsolutePath(), entries, processedEntries);
- else if (!visitedArchives.contains(resolved)) {
- visitedArchives.add(resolved);
- getDependencyClassPath(visitedArchives, entries, processedEntries, resolved);
- }
-
- }
- }
-
- protected EARFile getEARFile() {
- Container parent = getContainer();
- if (parent == null || !(parent instanceof EARFile))
- return null;
- return (EARFile) parent;
- }
-
- protected Archive getResolvedArchive(String mfValue, EARFile ear) {
- String aUri = ArchiveUtil.deriveEARRelativeURI(mfValue, this);
- if (aUri == null)
- return null;
- try {
- return (Archive) ear.getFile(aUri);
- } catch (FileNotFoundException ex) {
- return null;
- } catch (ClassCastException ex2) {
- return null;
- }
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive#hasClasspathVisibilityTo(Archive)
- */
- public boolean hasClasspathVisibilityTo(Archive other) {
- if (other == null)
- return false;
- EARFile ear = getEARFile();
- if (ear == null)
- return false;
- Set visited = new HashSet();
- return hasClasspathVisibilityTo(other, visited, ear);
- }
-
- public boolean hasClasspathVisibilityTo(Archive other, Set visited, EARFile ear) {
- if (this == other)
- return true;
- if (visited.contains(this))
- return false;
- visited.add(this);
- String[] mfEntries = getManifest().getClassPathTokenized();
- for (int i = 0; i < mfEntries.length; i++) {
- Archive anArchive = getResolvedArchive(mfEntries[i], ear);
- if (anArchive != null && anArchive.hasClasspathVisibilityTo(other, visited, ear))
- return true;
- }
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.j2ee.internal.commonarchivecore.Archive#isType(java.lang.String)
- */
- public boolean isType(String type) {
-
- return (types != null && getTypes().contains(type));
- }
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ClientModuleRefImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ClientModuleRefImpl.java
deleted file mode 100644
index 71f5bcd72..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ClientModuleRefImpl.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.impl;
-
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.jst.j2ee.client.ApplicationClient;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ClientModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchivePackage;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveWrappedException;
-
-/**
- * @generated
- */
-public class ClientModuleRefImpl extends ModuleRefImpl implements ClientModuleRef {
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected ClientModuleRefImpl() {
- super();
- }
-
- /**
- *
- * @generated
- */
- protected EClass eStaticClass() {
- return CommonarchivePackage.Literals.CLIENT_MODULE_REF;
- }
-
- public ApplicationClient getApplicationClient() throws ArchiveWrappedException {
- return (ApplicationClient) getDeploymentDescriptor();
- }
-
-
- /*
- * @see ModuleRef#isClient()
- */
- public boolean isClient() {
- return true;
- }
-
-} //ClientModuleRefImpl
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/CommonarchiveFactoryImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/CommonarchiveFactoryImpl.java
deleted file mode 100644
index 8a8b3efc4..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/CommonarchiveFactoryImpl.java
+++ /dev/null
@@ -1,1083 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.impl;
-
-
-
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.WeakHashMap;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.impl.EFactoryImpl;
-import org.eclipse.emf.ecore.plugin.EcorePlugin;
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ApplicationClientFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ArchiveTypeDiscriminatorRegistry;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ClientModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonArchiveFactoryRegistry;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonArchiveResourceHandler;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchiveFactory;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchivePackage;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ConnectorModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Container;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EJBJarFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EJBModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.File;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.RARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ReadOnlyDirectory;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.WARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.WebModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveOptions;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveTypeDiscriminator;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.AppClient12ImportStrategyImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.DirectoryArchiveLoadStrategy;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.DirectoryArchiveLoadStrategyImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.Ear12ImportStrategyImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.EjbJar11ImportStrategyImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.NestedArchiveLoadStrategyImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.NullLoadStrategyImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.RarImportStrategyImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.ReadOnlyDirectoryLoadStrategyImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.TempZipFileLoadStrategyImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.War22ImportStrategyImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveUtil;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.util.DeleteOnExitUtility;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive;
-
-
-/**
- * @generated
- */
-public class CommonarchiveFactoryImpl extends EFactoryImpl implements CommonarchiveFactory {
-
-
- /**
- * Creates the default factory implementation.
- *
- *
- * @generated
- */
- public static CommonarchiveFactory init() {
- try {
- CommonarchiveFactory theCommonarchiveFactory = (CommonarchiveFactory)EPackage.Registry.INSTANCE.getEFactory("commonarchive.xmi");
- if (theCommonarchiveFactory != null) {
- return theCommonarchiveFactory;
- }
- }
- catch (Exception exception) {
- EcorePlugin.INSTANCE.log(exception);
- }
- return new CommonarchiveFactoryImpl();
- }
-
- protected Map openArchives;
- private static boolean delegateNeedsInit = true;
- private CommonarchiveFactory delegate = null;
-
- static {
- initPrereqs();
- }
-
- /**
- *
- */
- public CommonarchiveFactoryImpl() {
- super();
- initDelegate();
- }
-
- /**
- *
- */
- private void initDelegate() {
- if (delegateNeedsInit) {
- delegateNeedsInit = false;
- delegate = new CommonarchiveFactoryImpl() {
-
- public ApplicationClientFile createApplicationClientFile() {
- return createApplicationClientFileGen();
- }
-
-
- public ClientModuleRef createClientModuleRef() {
- return createClientModuleRefGen();
- }
-
- public ConnectorModuleRef createConnectorModuleRef() {
- return createConnectorModuleRefGen();
- }
-
- public EARFile createEARFile() {
- return createEARFileGen();
- }
-
- public EJBJarFile createEJBJarFile() {
- return createEJBJarFileGen();
- }
-
- public EJBModuleRef createEJBModuleRef() {
- return createEJBModuleRefGen();
- }
-
- public RARFile createRARFile() {
- return createRARFileGen();
- }
-
- public WARFile createWARFile() {
- return createWARFileGen();
- }
-
- public WebModuleRef createWebModuleRef() {
- return createWebModuleRefGen();
- }
- };
- }
-
- }
-
- /**
- *
- * @generated
- */
- public EObject create(EClass eClass) {
- switch (eClass.getClassifierID()) {
- case CommonarchivePackage.FILE: return createFile();
- case CommonarchivePackage.ARCHIVE: return createArchive();
- case CommonarchivePackage.EJB_JAR_FILE: return createEJBJarFile();
- case CommonarchivePackage.WAR_FILE: return createWARFile();
- case CommonarchivePackage.EAR_FILE: return createEARFile();
- case CommonarchivePackage.APPLICATION_CLIENT_FILE: return createApplicationClientFile();
- case CommonarchivePackage.READ_ONLY_DIRECTORY: return createReadOnlyDirectory();
- case CommonarchivePackage.RAR_FILE: return createRARFile();
- case CommonarchivePackage.EJB_MODULE_REF: return createEJBModuleRef();
- case CommonarchivePackage.WEB_MODULE_REF: return createWebModuleRef();
- case CommonarchivePackage.CLIENT_MODULE_REF: return createClientModuleRef();
- case CommonarchivePackage.CONNECTOR_MODULE_REF: return createConnectorModuleRef();
- default:
- throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
- }
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public void archiveClosed(Archive aClosedArchive) {
- getOpenArchives().remove(aClosedArchive);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public void archiveOpened(Archive anOpenArchive) {
- getOpenArchives().put(anOpenArchive, null);
- }
-
- /**
- * @deprecated Use {@link #getOpenArchivesDependingOn(Archive)}
- */
- public boolean canClose(Archive anArchive) {
- return !getOpenArchivesDependingOn(anArchive).isEmpty();
- }
-
- public void closeOpenArchives() {
- if (getOpenArchives().isEmpty())
- return;
- List opened = new ArrayList(getOpenArchives().size());
- Iterator it = getOpenArchives().keySet().iterator();
- while (it.hasNext()) {
- opened.add(it.next());
- }
- for (int i = 0; i < opened.size(); i++) {
- Archive anArchive = (Archive) opened.get(i);
- anArchive.close();
- }
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public Archive copy(Archive anArchive) {
- return new ArchiveCopyUtility().copy(anArchive);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public ModuleFile copy(ModuleFile aModuleFile) {
- return new ArchiveCopyUtility().copy(aModuleFile);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public ApplicationClientFile createApplicationClientFileInitialized(java.lang.String uri) {
- ApplicationClientFile clientFile = createApplicationClientFile();
- initializeNewApplicationClientFile(clientFile, uri);
- return clientFile;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public Archive createArchiveInitialized(java.lang.String uri) {
- Archive anArchive = createArchive();
- initializeNewArchive(anArchive, uri);
- return anArchive;
-
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public Archive createArchiveInitialized(ArchiveOptions options, java.lang.String uri) {
- Archive anArchive = createArchive();
- initializeNewArchive(anArchive, uri, options);
- return anArchive;
-
- }
-
- public LoadStrategy createChildLoadStrategy(String uri, LoadStrategy parent) throws java.io.IOException, java.io.FileNotFoundException {
-
- LoadStrategy childStrategy = null;
- if (parent.isDirectory()) {
- String dirName = ((DirectoryArchiveLoadStrategy) parent).getDirectoryUri();
- String qualifiedUri = ArchiveUtil.getOSUri(dirName, uri);
- childStrategy = createLoadStrategy(qualifiedUri);
- } else {
- childStrategy = createNestedLoadStrategy(uri, parent);
- }
- return childStrategy;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public EARFile createEARFileInitialized(java.lang.String uri) {
- EARFile earFile = createEARFile();
- initializeNewEARFile(earFile, uri);
- return earFile;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public EARFile createEARFileInitialized(ArchiveOptions options, java.lang.String uri) {
- EARFile earFile = createEARFile();
- initializeNewEARFile(earFile, uri, options);
- return earFile;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public EJBJarFile createEJBJarFileInitialized(java.lang.String uri) {
- EJBJarFile ejbJarFile = createEJBJarFile();
- initializeNewEJBJarFile(ejbJarFile, uri);
- return ejbJarFile;
-
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public EJBJarFile createEJBJarFileInitialized(ArchiveOptions options, java.lang.String uri) {
- EJBJarFile ejbJarFile = createEJBJarFile();
- initializeNewEJBJarFile(ejbJarFile, uri, options);
- return ejbJarFile;
-
- }
-
- /**
- * Returns a NullLoadStrategyImpl; used for new archives
- */
- public LoadStrategy createEmptyLoadStrategy() {
- return new NullLoadStrategyImpl();
- }
-
- /**
- * Helper method to dynamically build a load strategy from the file system. Determines whether
- * the uri points to a jar file or directory and returns the appropriate strategy
- */
- public LoadStrategy createLoadStrategy(String uri) throws FileNotFoundException, IOException {
- String filename = uri.replace('/', java.io.File.separatorChar);
- java.io.File file = new java.io.File(filename);
- if (!file.exists()) {
- throw new FileNotFoundException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.file_not_found_EXC_, (new Object[]{uri, file.getAbsolutePath()}))); // = "URI Name: {0}; File name: {1}"
- }
- if (file.isDirectory()) {
- return new DirectoryArchiveLoadStrategyImpl(uri);
- }
- return new org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.ZipFileLoadStrategyImpl(file);
- }
-
- /**
- * Create a load strategy for a nested archive; by default will extract the nested archive to a
- * temp file for performance reasons. This is because random access to the zip entries in a
- * nested archive is not supported by the java.util.zip package, and if the archive's contents
- * are being modified, copied, etc, this is much faster. If a temp file can not be created, or
- * if the archive is opened read only (for runtime), then use a NestedArchiveLoadStrategy, which
- * retrieves the contents of a zip entry by sequentially searching a zip input stream
- */
- public LoadStrategy createNestedLoadStrategy(String uri, LoadStrategy parent) {
- LoadStrategy loadStrategy = null;
- ArchiveOptions options = ((Archive) parent.getContainer()).getOptions();
-
- if (!options.isReadOnly(uri))
- loadStrategy = createTempZipFileStrategyIfPossible(uri, parent);
-
- if (loadStrategy == null)
- return new NestedArchiveLoadStrategyImpl(parent);
- return loadStrategy;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public RARFile createRARFileInitialized(java.lang.String uri) {
- RARFile rarFile = createRARFile();
- initializeNewRARFile(rarFile, uri);
- return rarFile;
- }
-
- public LoadStrategy createTempZipFileStrategyIfPossible(String uri, LoadStrategy parent) {
-
- if (!ArchiveUtil.shouldUseTempDirectoryForRead())
- return null;
-
- try {
- java.io.File tempFile = ArchiveUtil.createTempFile(uri);
- DeleteOnExitUtility.markForDeletion(tempFile);
- InputStream in = parent.getInputStream(uri);
- OutputStream out = new FileOutputStream(tempFile);
- ArchiveUtil.copy(in, out);
- return new TempZipFileLoadStrategyImpl(tempFile);
- } catch (IOException ex) {
- ArchiveUtil.inform(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.make_temp_file_WARN_, (new Object[]{uri})) + ex.getLocalizedMessage()); // = "Warning: Unable to create temp file for {0}. This will impact performance."
- }
- return null;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public WARFile createWARFileInitialized(java.lang.String uri) {
- WARFile warFile = createWARFile();
- initializeNewWARFile(warFile, uri);
- return warFile;
- }
-
- protected ArchiveOptions defaultOptions(LoadStrategy aLoadStrategy) {
- ArchiveOptions options = new ArchiveOptions();
- options.setLoadStrategy(aLoadStrategy);
- return options;
- }
-
- public static CommonarchiveFactory getActiveFactory() {
- CommonarchivePackage pkg = getPackage();
- if (pkg != null)
- return pkg.getCommonarchiveFactory();
- return null;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public java.lang.String[] getManifestClassPathValues(java.lang.String uri) throws org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException {
- Archive anArchive = primOpenArchive(uri);
- String[] result = anArchive.getManifest().getClassPathTokenized();
- anArchive.close();
- return result;
- }
-
- /**
- * Insert the method's description here. Creation date: (02/23/01 2:35:55 PM)
- *
- * @return java.util.Map
- */
- public java.util.Map getOpenArchives() {
- if (openArchives == null)
- openArchives = new WeakHashMap();
- return openArchives;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public Set getOpenArchivesDependingOn(Archive anArchive) {
- Set dependents = new HashSet();
- Iterator opened = getOpenArchives().keySet().iterator();
- while (opened.hasNext()) {
- Archive openedArchive = (Archive) opened.next();
- if (openedArchive == anArchive)
- continue;
- if (!openedArchive.isIndexed())
- //**********Optimization***********
- //If the file list has never been built for the archive, we don't want to trigger
- // it now,
- //and we are sure that the archive is not preventing the parameter from closing
- continue;
- List files = openedArchive.getFiles();
- for (int i = 0; i < files.size(); i++) {
- File aFile = (File) files.get(i);
- if (aFile.getLoadingContainer() == anArchive) {
- Archive outermost = openedArchive;
- Container c = openedArchive.getContainer();
- while (c != null && c.isArchive()) {
- outermost = (Archive) c;
- c = c.getContainer();
- }
- dependents.add(outermost);
- }
- }
- }
- //Elements from one of the children (e.g., a module file in an ear) may have been copied to
- //another archive
- List nestedArchives = anArchive.getArchiveFiles();
- for (int i = 0; i < nestedArchives.size(); i++) {
- dependents.addAll(getOpenArchivesDependingOn((Archive) nestedArchives.get(i)));
- }
- return dependents;
- }
-
- protected static void initPrereqs() {
- org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveInit.invokePrereqInits(true);
- ArchiveTypeDiscriminator disc = RootArchiveTypeDescriminatorImpl.singleton();
- disc.addChild(Ear12ImportStrategyImpl.getDiscriminator());
- disc.addChild(War22ImportStrategyImpl.getDiscriminator());
- disc.addChild(AppClient12ImportStrategyImpl.getDiscriminator());
- disc.addChild(RarImportStrategyImpl.getDiscriminator());
- disc.addChild(RootEJBJarDescriminatorImpl.singleton());
- }
-
- public void initializeNewApplicationClientFile(ApplicationClientFile anArchive, String uri) {
- initializeNewModuleFile(anArchive, uri);
- }
-
- public void initializeNewArchive(Archive anArchive, String uri) {
- anArchive.setURI(uri);
- anArchive.setSize(0);
- anArchive.setLastModified(System.currentTimeMillis());
- anArchive.setDirectoryEntry(false);
- anArchive.setLoadStrategy(createEmptyLoadStrategy());
- }
-
- public void initializeNewEARFile(EARFile anArchive, String uri) {
- initializeNewModuleFile(anArchive, uri);
- }
-
- public void initializeNewEJBJarFile(EJBJarFile anArchive, String uri) {
- initializeNewModuleFile(anArchive, uri);
- }
-
- public void initializeNewModuleFile(ModuleFile anArchive, String uri) {
- initializeNewArchive(anArchive, uri);
- anArchive.makeDeploymentDescriptorResource();
- }
-
- public void initializeNewRARFile(RARFile anArchive, String uri) {
- initializeNewModuleFile(anArchive, uri);
- }
-
- public void initializeNewWARFile(WARFile anArchive, String uri) {
- initializeNewModuleFile(anArchive, uri);
- }
-
- public void initializeNewApplicationClientFile(ApplicationClientFile anArchive, String uri, ArchiveOptions options) {
- initializeNewModuleFile(anArchive, uri, options);
- }
-
- public void initializeNewArchive(Archive anArchive, String uri, ArchiveOptions options) {
- if (options.getLoadStrategy() == null) {
- try {
- options.setLoadStrategy(createEmptyLoadStrategy());
- } catch (Exception ex) {
- Logger.getLogger().logError(ex);
- }
- }
-
- anArchive.setURI(uri);
- anArchive.setSize(0);
- anArchive.setLastModified(System.currentTimeMillis());
- anArchive.setDirectoryEntry(false);
- anArchive.setLoadStrategy(options.getLoadStrategy());
- anArchive.setOptions(options);
-
- }
-
- public void initializeNewEARFile(EARFile anArchive, String uri, ArchiveOptions options) {
- initializeNewModuleFile(anArchive, uri, options);
- }
-
- public void initializeNewEJBJarFile(EJBJarFile anArchive, String uri, ArchiveOptions options) {
- initializeNewModuleFile(anArchive, uri, options);
- }
-
- public void initializeNewModuleFile(ModuleFile anArchive, String uri, ArchiveOptions options) {
- initializeNewArchive(anArchive, uri, options);
- anArchive.makeDeploymentDescriptorResource();
- }
-
- public void initializeNewRARFile(RARFile anArchive, String uri, ArchiveOptions options) {
- initializeNewModuleFile(anArchive, uri, options);
- }
-
- public void initializeNewWARFile(WARFile anArchive, String uri, ArchiveOptions options) {
- initializeNewModuleFile(anArchive, uri, options);
- }
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public ApplicationClientFile openApplicationClientFile(ArchiveOptions options, String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(options, uri);
- ArchiveTypeDiscriminator disc = AppClient12ImportStrategyImpl.getDiscriminator();
- return (ApplicationClientFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public ApplicationClientFile openApplicationClientFile(LoadStrategy aLoadStrategy, String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(aLoadStrategy, uri);
- ArchiveTypeDiscriminator disc = AppClient12ImportStrategyImpl.getDiscriminator();
- return (ApplicationClientFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public ApplicationClientFile openApplicationClientFile(String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(uri);
- ArchiveTypeDiscriminator disc = AppClient12ImportStrategyImpl.getDiscriminator();
- return (ApplicationClientFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public Archive openArchive(ArchiveOptions options, String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(options, uri);
- return openSpecificArchive(anArchive, RootArchiveTypeDescriminatorImpl.singleton());
- }
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public Archive openArchive(LoadStrategy aLoadStrategy, String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(aLoadStrategy, uri);
- return openSpecificArchive(anArchive, RootArchiveTypeDescriminatorImpl.singleton());
- }
-
- /**
- * openArchive(String uri) - open the archive by the passed name, setting up the appropriate
- * strategies. Name may be a path to a jar, a zip, or a directory return the appropriate Archive
- * type
- */
- public Archive openArchive(java.lang.String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(uri);
- return openSpecificArchive(anArchive, RootArchiveTypeDescriminatorImpl.singleton());
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public Archive openArchive(String uri, String extraClassPath) throws OpenFailureException {
- Archive anArchive = primOpenArchive(uri);
- anArchive.setExtraClasspath(extraClassPath);
- return openSpecificArchive(anArchive, RootArchiveTypeDescriminatorImpl.singleton());
- }
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public EARFile openEARFile(ArchiveOptions options, String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(options, uri);
- ArchiveTypeDiscriminator disc = Ear12ImportStrategyImpl.getDiscriminator();
- return (EARFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public EARFile openEARFile(LoadStrategy aLoadStrategy, String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(aLoadStrategy, uri);
- ArchiveTypeDiscriminator disc = Ear12ImportStrategyImpl.getDiscriminator();
- return (EARFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public EARFile openEARFile(String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(uri);
- ArchiveTypeDiscriminator disc = Ear12ImportStrategyImpl.getDiscriminator();
- return (EARFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public EJBJarFile openEJB11JarFile(ArchiveOptions options, String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(options, uri);
- ArchiveTypeDiscriminator disc = EjbJar11ImportStrategyImpl.getDiscriminator();
- return (EJBJarFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public EJBJarFile openEJB11JarFile(LoadStrategy aLoadStrategy, String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(aLoadStrategy, uri);
- ArchiveTypeDiscriminator disc = EjbJar11ImportStrategyImpl.getDiscriminator();
- return (EJBJarFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public EJBJarFile openEJB11JarFile(String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(uri);
- ArchiveTypeDiscriminator disc = EjbJar11ImportStrategyImpl.getDiscriminator();
- return (EJBJarFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public EJBJarFile openEJBJarFile(ArchiveOptions options, String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(options, uri);
- RootEJBJarDescriminatorImpl disc = (RootEJBJarDescriminatorImpl) RootEJBJarDescriminatorImpl.singleton();
- return (EJBJarFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public EJBJarFile openEJBJarFile(LoadStrategy aLoadStrategy, String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(aLoadStrategy, uri);
- RootEJBJarDescriminatorImpl disc = (RootEJBJarDescriminatorImpl) RootEJBJarDescriminatorImpl.singleton();
- return (EJBJarFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public EJBJarFile openEJBJarFile(LoadStrategy aLoadStrategy, String uri, String extraClassPath) throws OpenFailureException {
- Archive anArchive = primOpenArchive(aLoadStrategy, uri);
- anArchive.setExtraClasspath(extraClassPath);
- RootEJBJarDescriminatorImpl disc = (RootEJBJarDescriminatorImpl) RootEJBJarDescriminatorImpl.singleton();
- return (EJBJarFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public EJBJarFile openEJBJarFile(String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(uri);
- RootEJBJarDescriminatorImpl disc = (RootEJBJarDescriminatorImpl) RootEJBJarDescriminatorImpl.singleton();
- return (EJBJarFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public EJBJarFile openEJBJarFile(String uri, String extraClassPath) throws OpenFailureException {
- Archive anArchive = primOpenArchive(uri);
- anArchive.setExtraClasspath(extraClassPath);
- RootEJBJarDescriminatorImpl disc = (RootEJBJarDescriminatorImpl) RootEJBJarDescriminatorImpl.singleton();
- return (EJBJarFile) openSpecificArchive(anArchive, disc);
- }
-
- public Archive openNestedArchive(LooseArchive loose, Archive parent) throws OpenFailureException {
- String uri = loose.getUri();
- try {
- if(loose.getBinariesPath() == null){
- throw new OpenFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.open_nested_EXC_, (new Object[] {uri,parent.getURI()})), null); // = "Could not open the nested archive "{0}" in "{1}""
- }
- LoadStrategy childStrategy = createLoadStrategy(loose.getBinariesPath());
- childStrategy.setLooseArchive(loose);
- ArchiveOptions options = parent.getOptions().cloneWith(childStrategy, loose.getUri());
- return primOpenArchive(options, uri);
- } catch (IOException ex) {
- throw new OpenFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.open_nested_EXC_, (new Object[]{uri, parent.getURI()})), ex); // = "Could not open the nested archive "{0}" in "{1}""
- }
- }
-
- /**
- * @see CommonarchiveFactory
- */
- public Archive openNestedArchive(String uri, Archive parent) throws OpenFailureException {
- try {
- LoadStrategy childStrategy = createChildLoadStrategy(uri, parent.getLoadStrategy());
- ArchiveOptions options = parent.getOptions().cloneWith(childStrategy, uri);
- if (options.shouldDiscriminateNestedArchives())
- return openArchive(options, uri);
- return primOpenArchive(options, uri);
- } catch (IOException ex) {
- throw new OpenFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.open_nested_EXC_, (new Object[]{uri, parent.getURI()})), ex); // = "Could not open the nested archive "{0}" in "{1}""
- }
- }
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public RARFile openRARFile(ArchiveOptions options, java.lang.String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(options, uri);
- ArchiveTypeDiscriminator disc = RarImportStrategyImpl.getDiscriminator();
- return (RARFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public RARFile openRARFile(LoadStrategy aLoadStrategy, String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(aLoadStrategy, uri);
- ArchiveTypeDiscriminator disc = RarImportStrategyImpl.getDiscriminator();
- return (RARFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public RARFile openRARFile(String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(uri);
- ArchiveTypeDiscriminator disc = RarImportStrategyImpl.getDiscriminator();
- return (RARFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * openReadOnlyDirectory method comment.
- */
- public ReadOnlyDirectory openReadOnlyDirectory(java.lang.String uri) throws java.io.IOException {
- java.io.File aFile = new java.io.File(uri);
- if (!aFile.exists())
- throw new FileNotFoundException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.could_not_find_dir_EXC_, (new Object[]{uri}))); // = "Unable to open directory "
- if (!aFile.isDirectory())
- throw new IOException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.not_a_dir_EXC_, (new Object[]{uri}))); // = "Unable to open directory because file is not a directory :"
- LoadStrategy strategy = new ReadOnlyDirectoryLoadStrategyImpl(uri);
- ReadOnlyDirectory container = createReadOnlyDirectory();
- container.setURI(uri);
- container.setLoadStrategy(strategy);
- container.setLastModified(aFile.lastModified());
- return container;
- }
-
- /**
- * Take the primitive archive and run it through the list of discriminators to convert it to the
- * correct specialized type; after after conversion, tell the archive to initalize itself if
- * necessary.
- */
- protected Archive openSpecificArchive(Archive anArchive, ArchiveTypeDiscriminator disc) throws OpenFailureException {
- if (!disc.canImport(anArchive)) {
- anArchive.close();
- throw new OpenFailureException(disc.getUnableToOpenMessage());
- }
- Archive specificArchive = disc.openArchive(anArchive);
- specificArchive.initializeAfterOpen();
- return specificArchive;
- }
-
- /**
- * Special case for ejb jar files, because of the need to support non-compliant 1.0 jars
- */
- protected Archive openSpecificArchive(Archive anArchive, RootEJBJarDescriminatorImpl disc) throws OpenFailureException {
- Archive specific = openSpecificArchive(anArchive, (ArchiveTypeDiscriminator) disc);
- if (specific == anArchive) {
- //The discriminator failed to convert the archve to an ejb jar file
- anArchive.close();
- throw new OpenFailureException(disc.getUnableToOpenMessage());
- }
- return specific;
- }
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public WARFile openWARFile(ArchiveOptions options, java.lang.String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(options, uri);
- ArchiveTypeDiscriminator disc = War22ImportStrategyImpl.getDiscriminator();
- return (WARFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public WARFile openWARFile(LoadStrategy aLoadStrategy, String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(aLoadStrategy, uri);
- ArchiveTypeDiscriminator disc = War22ImportStrategyImpl.getDiscriminator();
- return (WARFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public WARFile openWARFile(String uri) throws OpenFailureException {
- Archive anArchive = primOpenArchive(uri);
- ArchiveTypeDiscriminator disc = War22ImportStrategyImpl.getDiscriminator();
- return (WARFile) openSpecificArchive(anArchive, disc);
- }
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public Archive primOpenArchive(ArchiveOptions options, String uri) throws OpenFailureException {
- if (options.getLoadStrategy() == null) {
- try {
- options.setLoadStrategy(createLoadStrategy(uri));
- } catch (IOException ex) {
- throw new OpenFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.could_not_open_EXC_, (new Object[]{uri})), ex); // = "Could not open "
- }
- }
- Archive anArchive = createArchive();
- anArchive.setURI(uri);
- anArchive.setOriginalURI(uri);
- anArchive.setLoadStrategy(options.getLoadStrategy());
- anArchive.setOptions(options);
- ArchiveTypeDiscriminatorRegistry.getInstance().contributeTypes(anArchive);
- return anArchive;
- }
-
- /**
- * open the archive, setting up the appropriate strategies, using the loadStrategy passed in;
- * URI still necessary so the archive has a name, but it will not be used for io.
- */
- public Archive primOpenArchive(LoadStrategy aLoadStrategy, String uri) throws OpenFailureException {
- return primOpenArchive(defaultOptions(aLoadStrategy), uri);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.CommonarchiveFactory
- */
- public Archive primOpenArchive(String uri) throws OpenFailureException {
- return primOpenArchive(new ArchiveOptions(), uri);
- }
-
- protected void setOpenArchives(java.util.Map newOpenArchives) {
- openArchives = newOpenArchives;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public WARFile createWARFileGen() {
- WARFileImpl warFile = new WARFileImpl();
- return warFile;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EJBJarFile createEJBJarFileGen() {
- EJBJarFileImpl ejbJarFile = new EJBJarFileImpl();
- return ejbJarFile;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public ApplicationClientFile createApplicationClientFileGen() {
- ApplicationClientFileImpl applicationClientFile = new ApplicationClientFileImpl();
- return applicationClientFile;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EARFile createEARFileGen() {
- EARFileImpl earFile = new EARFileImpl();
- return earFile;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public RARFile createRARFileGen() {
- RARFileImpl rarFile = new RARFileImpl();
- return rarFile;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public File createFile() {
- FileImpl file = new FileImpl();
- return file;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public ReadOnlyDirectory createReadOnlyDirectory() {
- ReadOnlyDirectoryImpl readOnlyDirectory = new ReadOnlyDirectoryImpl();
- return readOnlyDirectory;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public CommonarchivePackage getCommonarchivePackage() {
- return (CommonarchivePackage)getEPackage();
- }
-
- /**
- *
- * @deprecated
- * @generated
- */
- public static CommonarchivePackage getPackage() {
- return CommonarchivePackage.eINSTANCE;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EJBModuleRef createEJBModuleRefGen() {
- EJBModuleRefImpl ejbModuleRef = new EJBModuleRefImpl();
- return ejbModuleRef;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public WebModuleRef createWebModuleRefGen() {
- WebModuleRefImpl webModuleRef = new WebModuleRefImpl();
- return webModuleRef;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public ClientModuleRef createClientModuleRefGen() {
- ClientModuleRefImpl clientModuleRef = new ClientModuleRefImpl();
- return clientModuleRef;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public ConnectorModuleRef createConnectorModuleRefGen() {
- ConnectorModuleRefImpl connectorModuleRef = new ConnectorModuleRefImpl();
- return connectorModuleRef;
- }
-
- public ClientModuleRef createClientModuleRef(ApplicationClientFile clientFile) {
- ClientModuleRef ref = createClientModuleRef();
- ref.setModuleFile(clientFile);
- return ref;
- }
-
- /*
- * @see CommonarchiveFactory#createConnectorModuleRef(RARFile)
- */
- public ConnectorModuleRef createConnectorModuleRef(RARFile rarFile) {
- ConnectorModuleRef ref = createConnectorModuleRef();
- ref.setModuleFile(rarFile);
- return ref;
-
- }
-
- /*
- * @see CommonarchiveFactory#createEJBModuleRef(EJBJarFile)
- */
- public EJBModuleRef createEJBModuleRef(EJBJarFile ejbJarFile) {
- EJBModuleRef ref = createEJBModuleRef();
- ref.setModuleFile(ejbJarFile);
- return ref;
- }
-
- /*
- * @see CommonarchiveFactory#createWebModuleRef(WARFile)
- */
- public WebModuleRef createWebModuleRef(WARFile warFile) {
- WebModuleRef ref = createWebModuleRef();
- ref.setModuleFile(warFile);
- return ref;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Archive createArchive() {
- ArchiveImpl archive = new ArchiveImpl();
- return archive;
- }
-
- public ApplicationClientFile createApplicationClientFile() {
- return CommonArchiveFactoryRegistry.INSTANCE.getCommonArchiveFactory().createApplicationClientFile();
- }
-
-
- public ClientModuleRef createClientModuleRef() {
- return CommonArchiveFactoryRegistry.INSTANCE.getCommonArchiveFactory().createClientModuleRef();
- }
-
- public ConnectorModuleRef createConnectorModuleRef() {
- return CommonArchiveFactoryRegistry.INSTANCE.getCommonArchiveFactory().createConnectorModuleRef();
- }
-
- public EARFile createEARFile() {
- return CommonArchiveFactoryRegistry.INSTANCE.getCommonArchiveFactory().createEARFile();
- }
-
- public EJBJarFile createEJBJarFile() {
- return CommonArchiveFactoryRegistry.INSTANCE.getCommonArchiveFactory().createEJBJarFile();
- }
-
- public EJBModuleRef createEJBModuleRef() {
- return CommonArchiveFactoryRegistry.INSTANCE.getCommonArchiveFactory().createEJBModuleRef();
- }
-
- public RARFile createRARFile() {
- return CommonArchiveFactoryRegistry.INSTANCE.getCommonArchiveFactory().createRARFile();
- }
-
- public WARFile createWARFile() {
- return CommonArchiveFactoryRegistry.INSTANCE.getCommonArchiveFactory().createWARFile();
- }
-
- public WebModuleRef createWebModuleRef() {
- return CommonArchiveFactoryRegistry.INSTANCE.getCommonArchiveFactory().createWebModuleRef();
- }
-
- /**
- * @return
- */
- public CommonarchiveFactory getDelegate() {
- return delegate;
- }
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/CommonarchivePackageImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/CommonarchivePackageImpl.java
deleted file mode 100644
index 9f1c75c05..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/CommonarchivePackageImpl.java
+++ /dev/null
@@ -1,613 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.impl;
-
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.jem.java.JavaRefPackage;
-import org.eclipse.jst.j2ee.application.ApplicationPackage;
-import org.eclipse.jst.j2ee.client.ClientPackage;
-import org.eclipse.jst.j2ee.common.CommonPackage;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ApplicationClientFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ClientModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchiveFactory;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchivePackage;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ConnectorModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Container;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EJBJarFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EJBModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.File;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.RARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ReadOnlyDirectory;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.WARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.WebModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseconfigPackage;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseconfigPackageImpl;
-import org.eclipse.jst.j2ee.ejb.EjbPackage;
-import org.eclipse.jst.j2ee.jca.JcaPackage;
-import org.eclipse.jst.j2ee.jsp.JspPackage;
-import org.eclipse.jst.j2ee.webapplication.WebapplicationPackage;
-import org.eclipse.jst.j2ee.webservice.wsclient.Webservice_clientPackage;
-
-
-/**
- * @lastgen class CommonarchivePackageImpl extends EPackageImpl implements CommonarchivePackage,
- * EPackage {}
- */
-public class CommonarchivePackageImpl extends EPackageImpl implements CommonarchivePackage {
- /**
- *
- * @generated
- */
- private EClass fileEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass archiveEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass ejbJarFileEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass warFileEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass earFileEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass applicationClientFileEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass moduleFileEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass containerEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass readOnlyDirectoryEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass rarFileEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass moduleRefEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass ejbModuleRefEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass webModuleRefEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass clientModuleRefEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass connectorModuleRefEClass = null;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- private CommonarchivePackageImpl() {
- super(eNS_URI, CommonarchiveFactory.eINSTANCE);
- }
-
- /**
- *
- * @generated
- */
- private static boolean isInited = false;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public static CommonarchivePackage init() {
- if (isInited) return (CommonarchivePackage)EPackage.Registry.INSTANCE.getEPackage(CommonarchivePackage.eNS_URI);
-
- // Obtain or create and register package
- CommonarchivePackageImpl theCommonarchivePackage = (CommonarchivePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof CommonarchivePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new CommonarchivePackageImpl());
-
- isInited = true;
-
- // Initialize simple dependencies
- EcorePackage.eINSTANCE.eClass();
- Webservice_clientPackage.eINSTANCE.eClass();
- CommonPackage.eINSTANCE.eClass();
- WebapplicationPackage.eINSTANCE.eClass();
- EjbPackage.eINSTANCE.eClass();
- JspPackage.eINSTANCE.eClass();
- ApplicationPackage.eINSTANCE.eClass();
- ClientPackage.eINSTANCE.eClass();
- JcaPackage.eINSTANCE.eClass();
- JavaRefPackage.eINSTANCE.eClass();
-
- // Obtain or create and register interdependencies
- LooseconfigPackageImpl theLooseconfigPackage = (LooseconfigPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(LooseconfigPackage.eNS_URI) instanceof LooseconfigPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(LooseconfigPackage.eNS_URI) : LooseconfigPackage.eINSTANCE);
-
- // Create package meta-data objects
- theCommonarchivePackage.createPackageContents();
- theLooseconfigPackage.createPackageContents();
-
- // Initialize created meta-data
- theCommonarchivePackage.initializePackageContents();
- theLooseconfigPackage.initializePackageContents();
-
- // Mark meta-data to indicate it can't be changed
- theCommonarchivePackage.freeze();
-
- return theCommonarchivePackage;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getContainer() {
- return containerEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EReference getContainer_Files() {
- return (EReference)containerEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getWARFile() {
- return warFileEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EReference getWARFile_DeploymentDescriptor() {
- return (EReference)warFileEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getModuleFile() {
- return moduleFileEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getEARFile() {
- return earFileEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EReference getEARFile_DeploymentDescriptor() {
- return (EReference)earFileEClass.getEStructuralFeatures().get(1);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EReference getEARFile_ModuleRefs() {
- return (EReference)earFileEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getModuleRef() {
- return moduleRefEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EReference getModuleRef_ModuleFile() {
- return (EReference)moduleRefEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EReference getModuleRef_EarFile() {
- return (EReference)moduleRefEClass.getEStructuralFeatures().get(1);
- }
-
- /**
- *
- *
- * @generated
- */
- public EReference getModuleRef_Module() {
- return (EReference)moduleRefEClass.getEStructuralFeatures().get(2);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getEJBModuleRef() {
- return ejbModuleRefEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getWebModuleRef() {
- return webModuleRefEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getClientModuleRef() {
- return clientModuleRefEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getConnectorModuleRef() {
- return connectorModuleRefEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getApplicationClientFile() {
- return applicationClientFileEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EReference getApplicationClientFile_DeploymentDescriptor() {
- return (EReference)applicationClientFileEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getEJBJarFile() {
- return ejbJarFileEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EReference getEJBJarFile_DeploymentDescriptor() {
- return (EReference)ejbJarFileEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getRARFile() {
- return rarFileEClass;
- }
-
- /**
- *
- * @generated
- */
- public EReference getRARFile_DeploymentDescriptor() {
- return (EReference)rarFileEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getArchive() {
- return archiveEClass;
- }
-
- /**
- *
- * @generated
- */
- public EAttribute getArchive_Types() {
- return (EAttribute)archiveEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getFile() {
- return fileEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EAttribute getFile_URI() {
- return (EAttribute)fileEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EAttribute getFile_LastModified() {
- return (EAttribute)fileEClass.getEStructuralFeatures().get(1);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EAttribute getFile_Size() {
- return (EAttribute)fileEClass.getEStructuralFeatures().get(2);
- }
-
- /**
- *
- * @generated
- */
- public EAttribute getFile_DirectoryEntry() {
- return (EAttribute)fileEClass.getEStructuralFeatures().get(3);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EAttribute getFile_OriginalURI() {
- return (EAttribute)fileEClass.getEStructuralFeatures().get(4);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EReference getFile_LoadingContainer() {
- return (EReference)fileEClass.getEStructuralFeatures().get(5);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EReference getFile_Container() {
- return (EReference)fileEClass.getEStructuralFeatures().get(6);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getReadOnlyDirectory() {
- return readOnlyDirectoryEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public CommonarchiveFactory getCommonarchiveFactory() {
- return (CommonarchiveFactory)getEFactoryInstance();
- }
-
- /**
- *
- * @generated
- */
- private boolean isCreated = false;
-
- /**
- * Creates the meta-model objects for the package. This method is
- * guarded to have no affect on any invocation but its first.
- *
- * @generated
- */
- public void createPackageContents() {
- if (isCreated) return;
- isCreated = true;
-
- // Create classes and their features
- fileEClass = createEClass(FILE);
- createEAttribute(fileEClass, FILE__URI);
- createEAttribute(fileEClass, FILE__LAST_MODIFIED);
- createEAttribute(fileEClass, FILE__SIZE);
- createEAttribute(fileEClass, FILE__DIRECTORY_ENTRY);
- createEAttribute(fileEClass, FILE__ORIGINAL_URI);
- createEReference(fileEClass, FILE__LOADING_CONTAINER);
- createEReference(fileEClass, FILE__CONTAINER);
-
- archiveEClass = createEClass(ARCHIVE);
- createEAttribute(archiveEClass, ARCHIVE__TYPES);
-
- ejbJarFileEClass = createEClass(EJB_JAR_FILE);
- createEReference(ejbJarFileEClass, EJB_JAR_FILE__DEPLOYMENT_DESCRIPTOR);
-
- warFileEClass = createEClass(WAR_FILE);
- createEReference(warFileEClass, WAR_FILE__DEPLOYMENT_DESCRIPTOR);
-
- earFileEClass = createEClass(EAR_FILE);
- createEReference(earFileEClass, EAR_FILE__MODULE_REFS);
- createEReference(earFileEClass, EAR_FILE__DEPLOYMENT_DESCRIPTOR);
-
- applicationClientFileEClass = createEClass(APPLICATION_CLIENT_FILE);
- createEReference(applicationClientFileEClass, APPLICATION_CLIENT_FILE__DEPLOYMENT_DESCRIPTOR);
-
- moduleFileEClass = createEClass(MODULE_FILE);
-
- containerEClass = createEClass(CONTAINER);
- createEReference(containerEClass, CONTAINER__FILES);
-
- readOnlyDirectoryEClass = createEClass(READ_ONLY_DIRECTORY);
-
- rarFileEClass = createEClass(RAR_FILE);
- createEReference(rarFileEClass, RAR_FILE__DEPLOYMENT_DESCRIPTOR);
-
- moduleRefEClass = createEClass(MODULE_REF);
- createEReference(moduleRefEClass, MODULE_REF__MODULE_FILE);
- createEReference(moduleRefEClass, MODULE_REF__EAR_FILE);
- createEReference(moduleRefEClass, MODULE_REF__MODULE);
-
- ejbModuleRefEClass = createEClass(EJB_MODULE_REF);
-
- webModuleRefEClass = createEClass(WEB_MODULE_REF);
-
- clientModuleRefEClass = createEClass(CLIENT_MODULE_REF);
-
- connectorModuleRefEClass = createEClass(CONNECTOR_MODULE_REF);
- }
-
- /**
- *
- * @generated
- */
- private boolean isInitialized = false;
-
- /**
- * Complete the initialization of the package and its meta-model. This
- * method is guarded to have no affect on any invocation but its first.
- *
- * @generated
- */
- public void initializePackageContents() {
- if (isInitialized) return;
- isInitialized = true;
-
- // Initialize package
- setName(eNAME);
- setNsPrefix(eNS_PREFIX);
- setNsURI(eNS_URI);
-
- // Obtain other dependent packages
- LooseconfigPackage theLooseconfigPackage = (LooseconfigPackage)EPackage.Registry.INSTANCE.getEPackage(LooseconfigPackage.eNS_URI);
- CommonPackage theCommonPackage = (CommonPackage)EPackage.Registry.INSTANCE.getEPackage(CommonPackage.eNS_URI);
- EjbPackage theEjbPackage = (EjbPackage)EPackage.Registry.INSTANCE.getEPackage(EjbPackage.eNS_URI);
- WebapplicationPackage theWebapplicationPackage = (WebapplicationPackage)EPackage.Registry.INSTANCE.getEPackage(WebapplicationPackage.eNS_URI);
- ApplicationPackage theApplicationPackage = (ApplicationPackage)EPackage.Registry.INSTANCE.getEPackage(ApplicationPackage.eNS_URI);
- ClientPackage theClientPackage = (ClientPackage)EPackage.Registry.INSTANCE.getEPackage(ClientPackage.eNS_URI);
- JcaPackage theJcaPackage = (JcaPackage)EPackage.Registry.INSTANCE.getEPackage(JcaPackage.eNS_URI);
-
- // Add subpackages
- getESubpackages().add(theLooseconfigPackage);
-
- // Add supertypes to classes
- fileEClass.getESuperTypes().add(theCommonPackage.getJ2EEEObject());
- archiveEClass.getESuperTypes().add(this.getContainer());
- ejbJarFileEClass.getESuperTypes().add(this.getModuleFile());
- warFileEClass.getESuperTypes().add(this.getModuleFile());
- earFileEClass.getESuperTypes().add(this.getModuleFile());
- applicationClientFileEClass.getESuperTypes().add(this.getModuleFile());
- moduleFileEClass.getESuperTypes().add(this.getArchive());
- containerEClass.getESuperTypes().add(this.getFile());
- readOnlyDirectoryEClass.getESuperTypes().add(this.getContainer());
- rarFileEClass.getESuperTypes().add(this.getModuleFile());
- moduleRefEClass.getESuperTypes().add(theCommonPackage.getJ2EEEObject());
- ejbModuleRefEClass.getESuperTypes().add(this.getModuleRef());
- webModuleRefEClass.getESuperTypes().add(this.getModuleRef());
- clientModuleRefEClass.getESuperTypes().add(this.getModuleRef());
- connectorModuleRefEClass.getESuperTypes().add(this.getModuleRef());
-
- // Initialize classes and features; add operations and parameters
- initEClass(fileEClass, File.class, "File", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getFile_URI(), ecorePackage.getEString(), "URI", null, 0, 1, File.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getFile_LastModified(), ecorePackage.getELong(), "lastModified", null, 0, 1, File.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getFile_Size(), ecorePackage.getELong(), "size", null, 0, 1, File.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getFile_DirectoryEntry(), ecorePackage.getEBoolean(), "directoryEntry", null, 0, 1, File.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getFile_OriginalURI(), ecorePackage.getEString(), "originalURI", null, 0, 1, File.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getFile_LoadingContainer(), this.getContainer(), null, "loadingContainer", null, 1, 1, File.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getFile_Container(), this.getContainer(), this.getContainer_Files(), "container", null, 0, 1, File.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(archiveEClass, Archive.class, "Archive", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getArchive_Types(), ecorePackage.getEString(), "types", null, 0, -1, Archive.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(ejbJarFileEClass, EJBJarFile.class, "EJBJarFile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getEJBJarFile_DeploymentDescriptor(), theEjbPackage.getEJBJar(), null, "deploymentDescriptor", null, 1, 1, EJBJarFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(warFileEClass, WARFile.class, "WARFile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getWARFile_DeploymentDescriptor(), theWebapplicationPackage.getWebApp(), null, "deploymentDescriptor", null, 1, 1, WARFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(earFileEClass, EARFile.class, "EARFile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getEARFile_ModuleRefs(), this.getModuleRef(), this.getModuleRef_EarFile(), "moduleRefs", null, 1, -1, EARFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getEARFile_DeploymentDescriptor(), theApplicationPackage.getApplication(), null, "deploymentDescriptor", null, 1, 1, EARFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(applicationClientFileEClass, ApplicationClientFile.class, "ApplicationClientFile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getApplicationClientFile_DeploymentDescriptor(), theClientPackage.getApplicationClient(), null, "deploymentDescriptor", null, 1, 1, ApplicationClientFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(moduleFileEClass, ModuleFile.class, "ModuleFile", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
- initEClass(containerEClass, Container.class, "Container", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getContainer_Files(), this.getFile(), this.getFile_Container(), "files", null, 0, -1, Container.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(readOnlyDirectoryEClass, ReadOnlyDirectory.class, "ReadOnlyDirectory", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
- initEClass(rarFileEClass, RARFile.class, "RARFile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getRARFile_DeploymentDescriptor(), theJcaPackage.getConnector(), null, "deploymentDescriptor", null, 1, 1, RARFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(moduleRefEClass, ModuleRef.class, "ModuleRef", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getModuleRef_ModuleFile(), this.getModuleFile(), null, "moduleFile", null, 1, 1, ModuleRef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getModuleRef_EarFile(), this.getEARFile(), this.getEARFile_ModuleRefs(), "earFile", null, 1, 1, ModuleRef.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getModuleRef_Module(), theApplicationPackage.getModule(), null, "module", null, 1, 1, ModuleRef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(ejbModuleRefEClass, EJBModuleRef.class, "EJBModuleRef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
- initEClass(webModuleRefEClass, WebModuleRef.class, "WebModuleRef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
- initEClass(clientModuleRefEClass, ClientModuleRef.class, "ClientModuleRef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
- initEClass(connectorModuleRefEClass, ConnectorModuleRef.class, "ConnectorModuleRef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
- // Create resource
- createResource(eNS_URI);
- }
-
-} //CommonarchivePackageImpl
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ConnectorModuleRefImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ConnectorModuleRefImpl.java
deleted file mode 100644
index 11e080644..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ConnectorModuleRefImpl.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.impl;
-
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchivePackage;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ConnectorModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveWrappedException;
-import org.eclipse.jst.j2ee.jca.Connector;
-
-/**
- * @generated
- */
-public class ConnectorModuleRefImpl extends ModuleRefImpl implements ConnectorModuleRef {
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected ConnectorModuleRefImpl() {
- super();
- }
-
- /**
- *
- * @generated
- */
- protected EClass eStaticClass() {
- return CommonarchivePackage.Literals.CONNECTOR_MODULE_REF;
- }
-
- public Connector getConnector() throws ArchiveWrappedException {
- return (Connector) getDeploymentDescriptor();
- }
-
- /*
- * @see ModuleRef#isConnector()
- */
- public boolean isConnector() {
- return true;
- }
-
-} //ConnectorModuleRefImpl
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ContainerImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ContainerImpl.java
deleted file mode 100644
index ea604989a..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ContainerImpl.java
+++ /dev/null
@@ -1,406 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.impl;
-
-
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchivePackage;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Container;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.File;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveUtil;
-
-
-/**
- * @generated
- */
-public abstract class ContainerImpl extends FileImpl implements Container {
-
-
- /**
- * Inner class which maintains the index for the domain's collection of nodes keyed by name.
- */
- protected class FileNotificationAdapter extends AdapterImpl {
- public boolean isAdapterForType(Object type) {
- return (type == "FileNotificationAdapter");//$NON-NLS-1$
- }
-
- public void addIndexedFile(String newValue, Notifier notifier) {
- fileIndex.put(newValue, notifier);
- if (notifier.eAdapters() == null || !notifier.eAdapters().contains(this))
- notifier.eAdapters().add(this);
- }
-
- public void removeIndexedFile(String oldValue, Notifier notifier) {
- fileIndex.remove(oldValue);
- notifier.eAdapters().remove(this);
- }
-
- public void notifyChanged(Notification notification) {
- if (fileIndex == null || notification.getFeature() == null)
- return;
- //If the name changed, update the index
- if (notification.getFeature().equals(CommonarchivePackage.eINSTANCE.getFile_URI()) && ((File) notification.getNotifier()).getContainer() == ContainerImpl.this) {
- fileIndex.remove(notification.getOldValue());
- fileIndex.put(notification.getNewValue(), notification.getNotifier());
- }
- //Handle adds and removes
- if (notification.getFeature().equals(CommonarchivePackage.eINSTANCE.getContainer_Files()) && notification.getNotifier() == ContainerImpl.this) {
- switch (notification.getEventType()) {
- case Notification.ADD : {
- File file = (File) notification.getNewValue();
- addIndexedFile(file.getURI(), file);
- break;
- }
- case Notification.REMOVE : {
- removeIndexedFile(((File) notification.getOldValue()).getURI(), (File) notification.getOldValue());
- break;
- }
- case Notification.ADD_MANY : {
- filesAdded((List) notification.getNewValue());
- break;
- }
- case Notification.REMOVE_MANY : {
- filesRemoved((List) notification.getOldValue());
- break;
- }
- case Notification.MOVE : {
- break;
- }
- case Notification.SET : {
- if (notification.getPosition() != Notification.NO_INDEX) { //This is now a
- // replace in
- // MOF2
- File file = (File) notification.getNewValue();
- removeIndexedFile(((File) notification.getOldValue()).getURI(), (File) notification.getOldValue());
- addIndexedFile(file.getURI(), file);
- }
- break;
- }
- }
- }
- }
-
- public void filesAdded(List newFiles) {
- for (int i = 0; i < newFiles.size(); i++) {
- File file = (File) newFiles.get(i);
- addIndexedFile(file.getURI(), file);
- }
- }
-
- public void filesRemoved(List oldFiles) {
- for (int i = 0; i < oldFiles.size(); i++) {
- File file = (File) oldFiles.get(i);
- removeIndexedFile(file.getURI(), file);
- }
- }
-
- public void rebuildFileIndex() {
- removeAdaptersIfNecessary();
- fileIndex = new HashMap();
-
- // If the primary collection already has elements,
- //'reflect them in the index...
- if (getFiles().size() > 0) {
- Iterator i = getFiles().iterator();
- while (i.hasNext()) {
- File file = (File) i.next();
- addIndexedFile(file.getURI(), file);
- }
- }
- }
-
- public void removeAdaptersIfNecessary() {
- if (fileIndex == null)
- return;
- Iterator iter = fileIndex.values().iterator();
- while (iter.hasNext()) {
- File aFile = (File) iter.next();
- aFile.eAdapters().remove(this);
- }
- }
- }
-
- /** Implementer for loading entries in this container */
- protected LoadStrategy loadStrategy;
- /**
- * Index to provide fast lookup by name of files.
- */
- protected Map fileIndex;
- /**
- * An adapter which maintains the file index
- */
- protected FileNotificationAdapter fileIndexAdapter;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected EList files = null;
-
- public ContainerImpl() {
- super();
- }
-
- /**
- *
- * @generated
- */
- protected EClass eStaticClass() {
- return CommonarchivePackage.Literals.CONTAINER;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public boolean containsFile(java.lang.String aUri) {
- String key = aUri.startsWith("/") ? ArchiveUtil.truncateFromFrontIgnoreCase(aUri, "/") : aUri;//$NON-NLS-2$//$NON-NLS-1$
- if (isIndexed())
- return getFileIndex().containsKey(key);
- return getLoadStrategy().contains(key);
-
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Container
- */
- public java.lang.String getAbsolutePath() throws java.io.FileNotFoundException {
- return getLoadStrategy().getAbsolutePath();
- }
-
- public File getFile(String URI) throws java.io.FileNotFoundException {
- if (!isIndexed()) {
- getFiles();
- }
- File file = (File) getFileIndex().get(URI);
- if (file == null) {
- throw new java.io.FileNotFoundException(URI);
- }
- return file;
- }
-
- /**
- * Insert the method's description here. Creation date: (12/05/00 7:20:21 PM)
- *
- * @return java.util.Map
- */
- protected java.util.Map getFileIndex() {
- if (fileIndex == null)
- getFileIndexAdapter().rebuildFileIndex();
- return fileIndex;
- }
-
- /**
- * Insert the method's description here. Creation date: (12/05/00 7:20:21 PM)
- *
- * @return FileNotificationAdapter
- */
- protected FileNotificationAdapter getFileIndexAdapter() {
- if (fileIndexAdapter == null) {
- fileIndexAdapter = new FileNotificationAdapter();
- eAdapters().add(fileIndexAdapter);
- }
- return fileIndexAdapter;
- }
-
- /**
- * List is built on demand, by requesting from the load strategy.
- */
- public EList getFiles() {
- EList filesList = this.getFilesGen();
- if (!isIndexed()) {
- if (filesList.isEmpty() && getLoadStrategy() != null) {
- filesList.addAll(getLoadStrategy().collectFiles());
- }
- //Causes the index to be built
- getFileIndex();
- }
- return filesList;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive Looks for a file with the given uri, and returns an
- * input stream; optimization: if the file list has not been built, goes directly to the
- * loadStrategy.
- */
- public java.io.InputStream getInputStream(java.lang.String aUri) throws java.io.IOException, java.io.FileNotFoundException {
- if (isIndexed()) {
- return getFile(aUri).getInputStream();
- }
- return primGetInputStream(aUri);
- }
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @return com.ibm.etools.archive.LoadStrategy
- */
- public org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy getLoadStrategy() {
- return loadStrategy;
- }
-
- public boolean isContainer() {
- return true;
- }
-
- public boolean isIndexed() {
- return fileIndex != null;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive Goes directly to the loadStrategy.
- */
- public java.io.InputStream primGetInputStream(java.lang.String aUri) throws java.io.IOException, java.io.FileNotFoundException {
- return getLoadStrategy().getInputStream(aUri);
- }
-
- public void rebuildFileIndex() {
- getFileIndexAdapter().rebuildFileIndex();
- }
-
- /**
- * Insert the method's description here. Creation date: (11/29/00 6:35:08 PM)
- *
- * @param newLoadStrategy
- * com.ibm.etools.archive.LoadStrategy
- */
- public void setLoadStrategy(org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy newLoadStrategy) {
-
- if (newLoadStrategy != null) {
- newLoadStrategy.setContainer(this);
- if (loadStrategy != null) {
- newLoadStrategy.setRendererType(loadStrategy.getRendererType());
- newLoadStrategy.setReadOnly(loadStrategy.isReadOnly());
- loadStrategy.setContainer(null);
- loadStrategy.close();
- }
- }
- loadStrategy = newLoadStrategy;
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public EList getFilesGen() {
- if (files == null) {
- files = new EObjectContainmentWithInverseEList(File.class, this, CommonarchivePackage.CONTAINER__FILES, CommonarchivePackage.FILE__CONTAINER);
- }
- return files;
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case CommonarchivePackage.CONTAINER__FILES:
- return ((InternalEList)getFiles()).basicAdd(otherEnd, msgs);
- }
- return super.eInverseAdd(otherEnd, featureID, msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case CommonarchivePackage.CONTAINER__FILES:
- return ((InternalEList)getFiles()).basicRemove(otherEnd, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case CommonarchivePackage.CONTAINER__FILES:
- return getFiles();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case CommonarchivePackage.CONTAINER__FILES:
- getFiles().clear();
- getFiles().addAll((Collection)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eUnset(int featureID) {
- switch (featureID) {
- case CommonarchivePackage.CONTAINER__FILES:
- getFiles().clear();
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- *
- *
- * @generated
- */
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case CommonarchivePackage.CONTAINER__FILES:
- return files != null && !files.isEmpty();
- }
- return super.eIsSet(featureID);
- }
-
- public void clearFiles() {
- boolean oldDelivery = eDeliver();
- files.clear();
- eSetDeliver(oldDelivery);
- if (isIndexed()) {
- eAdapters().remove(fileIndexAdapter);
- fileIndexAdapter = null;
- fileIndex = null;
- }
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/EARFileImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/EARFileImpl.java
deleted file mode 100644
index 26b7f7ff8..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/EARFileImpl.java
+++ /dev/null
@@ -1,1196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.impl;
-
-
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jst.j2ee.application.Application;
-import org.eclipse.jst.j2ee.application.ApplicationFactory;
-import org.eclipse.jst.j2ee.application.ApplicationPackage;
-import org.eclipse.jst.j2ee.application.ConnectorModule;
-import org.eclipse.jst.j2ee.application.EjbModule;
-import org.eclipse.jst.j2ee.application.JavaClientModule;
-import org.eclipse.jst.j2ee.application.Module;
-import org.eclipse.jst.j2ee.application.WebModule;
-import org.eclipse.jst.j2ee.client.ApplicationClient;
-import org.eclipse.jst.j2ee.client.internal.impl.ApplicationClientResourceFactory;
-import org.eclipse.jst.j2ee.common.EjbRef;
-import org.eclipse.jst.j2ee.common.SecurityRole;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonArchiveResourceHandler;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchivePackage;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EJBJarFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.File;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveWrappedException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DuplicateObjectException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.EmptyResourceException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ObjectNotFoundException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ResourceLoadException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveOptions;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveUtil;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive;
-import org.eclipse.jst.j2ee.ejb.AssemblyDescriptor;
-import org.eclipse.jst.j2ee.ejb.EJBJar;
-import org.eclipse.jst.j2ee.ejb.EJBResource;
-import org.eclipse.jst.j2ee.ejb.EjbPackage;
-import org.eclipse.jst.j2ee.ejb.EnterpriseBean;
-import org.eclipse.jst.j2ee.ejb.internal.impl.EJBJarResourceFactory;
-import org.eclipse.jst.j2ee.internal.J2EEConstants;
-import org.eclipse.jst.j2ee.internal.common.XMLResource;
-import org.eclipse.jst.j2ee.jca.Connector;
-import org.eclipse.jst.j2ee.jca.internal.impl.ConnectorResourceFactory;
-import org.eclipse.jst.j2ee.webapplication.WebApp;
-import org.eclipse.jst.j2ee.webapplication.internal.impl.WebAppResourceFactory;
-import org.eclipse.wst.common.internal.emf.resource.FileNameResourceFactoryRegistry;
-import org.eclipse.wst.common.internal.emf.utilities.EtoolsCopyUtility;
-
-
-/**
- * @generated
- */
-public class EARFileImpl extends ModuleFileImpl implements EARFile {
-
- /**
- * Internal; clients should use {@link #getModuleRef(Module)}
- */
- public ModuleFile getModuleFile(Module moduleDescriptor) {
- ModuleRef ref = getModuleRef(moduleDescriptor);
- return (ref == null) ? null : ref.getModuleFile();
- }
-
- /**
- * @see com.ibm.etools.commonarchive.EARFile
- */
- public ModuleFile addCopy(ModuleFile aModuleFile) throws DuplicateObjectException {
- Object result = primAddCopyRef(aModuleFile);
- if (result instanceof ModuleRef)
- return ((ModuleRef) result).getModuleFile();
-
- return (ModuleFile) result;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected Application deploymentDescriptor = null;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected EList moduleRefs = null;
-
- public EARFileImpl() {
- super();
- }
-
- /**
- *
- * @generated
- */
- protected EClass eStaticClass() {
- return CommonarchivePackage.Literals.EAR_FILE;
- }
-
- public Archive addCopy(Archive anArchive) throws org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DuplicateObjectException {
- if (anArchive.isModuleFile())
- return addCopy((ModuleFile) anArchive);
- Archive copy = super.addCopy(anArchive);
- copy.initializeClassLoader();
- return copy;
- }
-
- protected Object primAddCopyRef(ModuleFile aModuleFile) throws DuplicateObjectException {
- //force this list to get initialized before the add
- EList refs = getModuleRefs();
-
- if (aModuleFile.isEARFile())
- //If it's an ear then just treat it like any other archive
- return (ModuleFile) super.addCopy(aModuleFile);
- checkAddValid(aModuleFile);
- ModuleFile copy = getCommonArchiveFactory().copy(aModuleFile);
- Module newModule = createModuleForCopying(aModuleFile);
- getFiles().add(copy);
- copy.initializeClassLoader();
- if (!copy.getURI().equals(newModule.getUri()))
- copy.setURI(newModule.getUri());
-
- getDeploymentDescriptor().getModules().add(newModule);
- ModuleRef aRef = createModuleRef(newModule, copy);
- refs.add(aRef);
- return aRef;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.EARFile
- */
- public ModuleRef addCopyRef(ModuleFile aModuleFile) throws DuplicateObjectException {
- Object result = primAddCopyRef(aModuleFile);
- if (result instanceof ModuleRef)
- return (ModuleRef) result;
-
- return null;
- }
-
-
-
- /**
- * @see com.ibm.etools.commonarchive.EARFile
- */
- public SecurityRole addCopy(SecurityRole aRole, Module aModule) throws DuplicateObjectException {
- EObject dd = null;
- try {
- dd = getDeploymentDescriptor(aModule);
- } catch (Exception e) {
- throw new DeploymentDescriptorLoadException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.dd_in_ear_load_EXC_, (new Object[]{aModule.getUri(), getURI()})), e); // = "Exception occurred loading deployment descriptor for module "{0}" in ear file "{1}""
- }
- String roleName = aRole.getRoleName();
- SecurityRole copy = (SecurityRole) EtoolsCopyUtility.createCopy(aRole);
- if (aModule.isEjbModule()) {
- EJBJar ejbJar = (EJBJar) dd;
- if (ejbJar.containsSecurityRole(roleName))
- throw new DuplicateObjectException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.dup_sec_role_module_EXC_, (new Object[]{aModule.getUri(), roleName})), ejbJar.getAssemblyDescriptor().getSecurityRoleNamed(roleName)); // = "Deployment descriptor for {0} already contains a security role named {1}"
- getAssemblyDescriptorAddIfNecessary(ejbJar).getSecurityRoles().add(copy);
- } else if (aModule.isWebModule()) {
- WebApp webApp = (WebApp) dd;
- if (webApp.containsSecurityRole(roleName))
- throw new DuplicateObjectException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.dup_sec_role_module_EXC_, (new Object[]{aModule.getUri(), roleName})), webApp.getSecurityRoleNamed(roleName));// = "Deployment descriptor for {0} already contains a security role named {1}"
- webApp.getSecurityRoles().add(copy);
- }
- addCopyIfNotExists(aRole);
- return copy;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.EARFile
- */
- public SecurityRole addCopyIfNotExists(SecurityRole aRole) {
- Application dd = getDeploymentDescriptor();
- SecurityRole copy = null;
- if (!dd.containsSecurityRole(aRole.getRoleName())) {
- copy = (SecurityRole) EtoolsCopyUtility.createCopy(aRole);
- dd.getSecurityRoles().add(copy);
- }
- return copy;
- }
-
- protected void checkDuplicate(String aUri) throws DuplicateObjectException {
- if (isDuplicate(aUri))
- throw new DuplicateObjectException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.dup_resource_EXC_, (new Object[]{aUri, getURI()}))); // = "Resource named "{0}" already exists in archive "{1}""
- }
-
-
- protected Module createModuleForCopying(ModuleFile aModuleFile) {
- Module aModule = null;
- if (aModuleFile.isWARFile()) {
- aModule = getApplicationFactory().createWebModule();
- } else if (aModuleFile.isEJBJarFile()) {
- aModule = getApplicationFactory().createEjbModule();
- } else if (aModuleFile.isApplicationClientFile()) {
- aModule = getApplicationFactory().createJavaClientModule();
- } else if (aModuleFile.isRARFile()) {
- aModule = getApplicationFactory().createConnectorModule();
- }
- aModule.setUri(aModuleFile.getURI());
- return aModule;
- }
-
- /**
- * Retrieves the deployment descriptor root element for the specified module. Takes into account
- * altDD indirection.
- *
- * @return Only return null if an altDD is not defined.
- */
- public EObject getAltDeploymentDescriptor(Module aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException {
- // Look for altDD
- String altDD = aModule.getAltDD();
- if (ArchiveUtil.isNullOrEmpty(altDD))
- return null;
- if (!isMofResourceLoaded(altDD.trim()))
- registerResourceFactory(aModule, altDD);
- XMLResource ddRes = (XMLResource) getMofResource(altDD.trim());
- if (!ddRes.isAlt()) {
- ddRes.setIsAlt(true);
- ddRes.setApplication(getDeploymentDescriptor());
- }
- return ArchiveUtil.getRoot(ddRes);
-
- }
-
- /**
- * @see com.ibm.etools.commonarchive.EARFile
- */
- public java.util.List getApplicationClientFiles() {
- List clientFiles = new ArrayList();
- List fileList = getFiles();
- for (int i = 0; i < fileList.size(); i++) {
- File aFile = (File) fileList.get(i);
- if (aFile.isApplicationClientFile()) {
- clientFiles.add(aFile);
- }
- }
- return clientFiles;
- }
-
- protected ApplicationFactory getApplicationFactory() {
- return ((ApplicationPackage) EPackage.Registry.INSTANCE.getEPackage(ApplicationPackage.eNS_URI)).getApplicationFactory();
- }
-
- protected AssemblyDescriptor getAssemblyDescriptorAddIfNecessary(EJBJar ejbJar) {
- AssemblyDescriptor ad = ejbJar.getAssemblyDescriptor();
- if (ad == null) {
- ad = ((EjbPackage) EPackage.Registry.INSTANCE.getEPackage(EjbPackage.eNS_URI)).getEjbFactory().createAssemblyDescriptor();
- ejbJar.setAssemblyDescriptor(ad);
- }
- return ad;
- }
-
-
- /**
- * @throws DeploymentDescriptorLoadException -
- * is a runtime exception, because we can't override the signature of the generated
- * methods
- */
- public Application getDeploymentDescriptor() throws DeploymentDescriptorLoadException {
- Application dd = this.getDeploymentDescriptorGen();
- if (dd == null && canLazyInitialize()) {
- try {
- getImportStrategy().importMetaData();
- } catch (Exception e) {
- throw new DeploymentDescriptorLoadException(getDeploymentDescriptorUri(), e);
- }
- }
- return this.getDeploymentDescriptorGen();
- }
-
- /**
- * Retrieves the deployment descriptor root element for the specified module. Takes into account
- * altDD indirection.
- */
- public Connector getDeploymentDescriptor(ConnectorModule aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException {
- return (Connector) getDeploymentDescriptor((Module) aModule);
- }
-
- /**
- * Retrieves the deployment descriptor root element for the specified module. Takes into account
- * altDD indirection.
- */
- public EJBJar getDeploymentDescriptor(EjbModule aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException {
- return (EJBJar) getDeploymentDescriptor((Module) aModule);
- }
-
- /**
- * Retrieves the deployment descriptor root element for the specified module. Takes into account
- * altDD indirection.
- */
- public ApplicationClient getDeploymentDescriptor(JavaClientModule aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException {
- return (ApplicationClient) getDeploymentDescriptor((Module) aModule);
- }
-
- /**
- * Retrieves the deployment descriptor root element for the specified module. Takes into account
- * altDD indirection.
- */
- public EObject getDeploymentDescriptor(Module aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException {
- EObject dd = getAltDeploymentDescriptor(aModule);
- if (dd == null)
- dd = getModuleFile(aModule).getStandardDeploymentDescriptor();
- return dd;
- }
-
- /**
- * Retrieves the deployment descriptor root element for the specified module. Takes into account
- * altDD indirection.
- */
- public WebApp getDeploymentDescriptor(WebModule aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException {
- return (WebApp) getDeploymentDescriptor((Module) aModule);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.ModuleFile
- */
- public java.lang.String getDeploymentDescriptorUri() {
- return J2EEConstants.APPLICATION_DD_URI;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.EARFile
- */
- public java.util.List getEJBJarFiles() {
- List ejbJarFiles = new ArrayList();
- List fileList = getFiles();
- for (int i = 0; i < fileList.size(); i++) {
- File aFile = (File) fileList.get(i);
- if (aFile.isEJBJarFile()) {
- ejbJarFiles.add(aFile);
- }
- }
- return ejbJarFiles;
- }
-
- /**
- * Return an enterprise bean referenced by the EjbRef, if one exists. The ejb-link value of the
- * ref must equate to a named enterprise bean contained in the jar; otherwise return null.
- * Returns the first hit found; assumption that the ejb names are unique within the scope of the
- * ear file. This will likely be replaced with a better way for dereferencing ejb refs.
- *
- * Can be used with ejb 1.1 references only.
- *
- * @deprecated {@link#getEnterpiseBeanFromRef(EjbRef ref, String moduleUri )
- * @param EjbRef
- * ref - An ejb reference
- * @return EnterpriseBean
- */
- public EnterpriseBean getEnterpiseBeanFromRef(EjbRef ref) {
- String link = ref.getLink();
- if (link == null) {
- return null;
- }
- List jarFiles = getEJBJarFiles();
- for (int i = 0; i < jarFiles.size(); i++) {
- EnterpriseBean bean = ((EJBJarFile) jarFiles.get(i)).getDeploymentDescriptor().getEnterpriseBeanNamed(link);
- if (bean != null) {
- return bean;
- }
- }
- return null;
- }
-
- /**
- * Return an enterprise bean referenced by the EjbRef, if one exists. The ejb-link value of the
- * ref must equate to a named enterprise bean contained in the jar; otherwise return null.
- * Returns the first hit found; assumption that the ejb names are unique within the scope of the
- * ear file. This will likely be replaced with a better way for dereferencing ejb refs
- *
- * Can be used with ejb 1.1 & ejb 2.0 references.
- *
- * @param EjbRef
- * ref - An ejb reference
- * @param String
- * moduleUri - The module uri
- * @return EnterpriseBean
- */
- public EnterpriseBean getEnterpiseBeanFromRef(EjbRef ref, String moduleUri) {
- String link = ref.getLink();
- if (link == null) {
- return null;
- }// if
-
- if (link.indexOf('#') == -1) {
- EnterpriseBean linkedEJB = null;
- XMLResource res = (XMLResource) ref.eResource();
- if (res instanceof EJBResource) {
- //Must be in an EJB JAR to be here
- EJBJar jar = ((EJBResource) res).getEJBJar();
- if (jar != null)
- linkedEJB = jar.getEnterpiseBeanFromRef(ref);
- }
- if (linkedEJB == null) {
- List jarFiles = getEJBJarFiles();
- for (int i = 0; i < jarFiles.size(); i++) {
- linkedEJB = ((EJBJarFile) jarFiles.get(i)).getDeploymentDescriptor().getEnterpriseBeanNamed(link);
- if (linkedEJB != null) {
- return linkedEJB;
- }// if
- }// for
- } else
- return linkedEJB;
- } else {
- //Grab the ejb name and ejb jar name from the link
- String ejbBeanName = link.substring(link.indexOf("#") + 1, link.length()); //$NON-NLS-1$
- String ejbJarName = link.substring(0, link.indexOf("#")); //$NON-NLS-1$
-
- if (ejbBeanName != null && ejbJarName != null) {
- //Get the uri of the jar name.
- String ejbJarUri = ArchiveUtil.deriveEARRelativeURI(ejbJarName, moduleUri);
- if (ejbJarUri != null) {
- try {
- //Get the actual jar file
- File aFile = getFile(ejbJarUri);
- if (aFile == null || !aFile.isEJBJarFile())
- return null;
-
- EJBJarFile jarFile = (EJBJarFile) getFile(ejbJarUri);
- List ejbs = jarFile.getDeploymentDescriptor().getEnterpriseBeans();
- //Check if any of the beans in the list match the given ejb bean name give
- // in
- //the link
- if (ejbs != null && !ejbs.isEmpty()) {
- Iterator it = ejbs.iterator();
- while (it.hasNext()) {
- EnterpriseBean ejbBean = (EnterpriseBean) it.next();
- if (ejbBean != null && ejbBean.getName().equals(ejbBeanName)) {
- return ejbBean;
- }// if
- }// while
- }// if
- } catch (FileNotFoundException fe) {
- return null;
- }// try
- }// if
- }// if
- }// if
- return null;
- }// getEnterpiseBeanFromRef
-
- /**
- * @see com.ibm.etools.commonarchive.EARFile
- */
- public Module getModule(String aUri, String altDD) {
- return getDeploymentDescriptor().getModule(aUri, altDD);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.EARFile
- */
- public ModuleRef getModuleRef(Module moduleDescriptor) {
- List refs = getModuleRefs();
- for (int i = 0; i < refs.size(); i++) {
- ModuleRef ref = (ModuleRef) refs.get(i);
- if (ref.getModule() == moduleDescriptor)
- return ref;
- }
- return null;
- }
-
- /**
- * Return a filtered list of the archives
- */
- public List getModuleFiles() {
- List moduleFiles = new ArrayList();
- List fileList = getFiles();
- for (int i = 0; i < fileList.size(); i++) {
- File aFile = (File) fileList.get(i);
- if (aFile.isModuleFile()) {
- moduleFiles.add(aFile);
- }
- }
- return moduleFiles;
- }
-
- protected ArchiveOptions getOptionsForOpening(String aUri) throws IOException {
-
- LoadStrategy strategy = getCommonArchiveFactory().createChildLoadStrategy(aUri, getLoadStrategy());
- return getOptions().cloneWith(strategy, aUri);
- }
-
- protected ArchiveOptions getOptionsForOpening(LooseArchive loose) throws IOException, OpenFailureException{
- if(loose.getBinariesPath() == null){
- throw new OpenFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.open_nested_EXC_, (new Object[] {loose.getUri(), getURI()})), null); // = "Could not open the nested archive "{0}" in "{1}""
- }
- LoadStrategy strategy = getCommonArchiveFactory().createLoadStrategy(loose.getBinariesPath());
- strategy.setLooseArchive(loose);
- return getOptions().cloneWith(strategy, loose.getUri());
- }
-
- /**
- * @see com.ibm.etools.commonarchive.EARFile
- */
- public java.util.List getRARFiles() {
- List rarFiles = new ArrayList();
- List fileList = getFiles();
- for (int i = 0; i < fileList.size(); i++) {
- File aFile = (File) fileList.get(i);
- if (aFile.isRARFile()) {
- rarFiles.add(aFile);
- }
- }
- return rarFiles;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.EARFile
- */
- public EList getRolesFromAllModules() {
- EList roleList = new org.eclipse.emf.common.util.BasicEList();
- List modules = getDeploymentDescriptor().getModules();
- for (int i = 0, n = modules.size(); i < n; i++) {
- Module aModule = (Module) modules.get(i);
- EList roles = getRolesFromModule(aModule);
- for (int j = 0, m = roles.size(); j < m; j++) {
- roleList.add(roles.get(j));
- }
- }
- return roleList;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.EARFile
- */
- public EList getRolesFromModule(Module aModule) {
- EList roleList = new org.eclipse.emf.common.util.BasicEList();
- try {
- if (aModule.isWebModule())
- roleList = getDeploymentDescriptor((WebModule) aModule).getSecurityRoles();
- else if (aModule.isEjbModule())
- roleList = getAssemblyDescriptorAddIfNecessary(getDeploymentDescriptor((EjbModule) aModule)).getSecurityRoles();
- } catch (Exception e) {
- throw new DeploymentDescriptorLoadException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.dd_in_ear_load_EXC_, (new Object[]{aModule.getUri(), getURI()})), e); // = "Exception occurred loading deployment descriptor for module "{0}" in ear file "{1}""
- }
- return roleList;
- }
-
- /**
- * Return the DeployementDescriptor.
- */
- public EObject getStandardDeploymentDescriptor() throws DeploymentDescriptorLoadException {
- return getDeploymentDescriptor();
- }
-
- /**
- * @see com.ibm.etools.commonarchive.EARFile
- */
- public java.util.List getWARFiles() {
- List warFiles = new ArrayList();
- List fileList = getFiles();
- for (int i = 0; i < fileList.size(); i++) {
- File aFile = (File) fileList.get(i);
- if (aFile.isWARFile()) {
- warFiles.add(aFile);
- }
- }
- return warFiles;
- }
-
- public void initializeAfterOpen() {
- super.initializeAfterOpen();
- }
-
- public boolean isDeploymentDescriptorSet() {
- return deploymentDescriptor != null;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.File
- */
- public boolean isEARFile() {
- return true;
- }
-
- /**
- * Return true if super returns true, or return whether the app dd contains a module having the
- * uri
- */
- public boolean isNestedArchive(String aUri) {
- if (super.isNestedArchive(aUri))
- return true;
- return getDeploymentDescriptor().getFirstModule(aUri) != null;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.impl.ModuleFileImpl
- */
- public org.eclipse.emf.ecore.EObject makeDeploymentDescriptor(XMLResource resource) {
- Application appl = ((ApplicationPackage) EPackage.Registry.INSTANCE.getEPackage(ApplicationPackage.eNS_URI)).getApplicationFactory().createApplication();
- resource.setID(appl, J2EEConstants.APPL_ID);
- setDeploymentDescriptorGen(appl);
- resource.getContents().add(appl);
- return appl;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public Archive openNestedArchive(LooseArchive loose) throws OpenFailureException {
-
- Module m = getDeploymentDescriptor().getFirstModule(loose.getUri());
- if (m == null)
- return super.openNestedArchive(loose);
-
- try {
- ArchiveOptions archiveOptions = getOptionsForOpening(loose);
- return openNestedArchive(m, archiveOptions);
- } catch (java.io.IOException ex) {
- //Probably the file did not exist; silently fail, per request from WS runtime
- //More than likely a failure is going to occur down the road when a ModuleFile for a
- // Module
- //in the dd is requested
- }
- return null;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.Archive
- */
- public Archive openNestedArchive(String aUri) throws OpenFailureException {
-
- Module m = getDeploymentDescriptor().getFirstModule(aUri);
- if (m == null)
- return super.openNestedArchive(aUri);
-
- try {
- ArchiveOptions archiveOptions = getOptionsForOpening(aUri);
- return openNestedArchive(m, archiveOptions);
- } catch (java.io.IOException ex) {
- //Probably the file did not exist; silently fail, per request from WS runtime
- //More than likely a failure is going to occur down the road when a ModuleFile for a
- // Module
- //in the dd is requested
- }
- return null;
- }
-
- protected Archive openNestedArchive(Module m, ArchiveOptions archiveOptions) throws OpenFailureException {
- String aUri = m.getUri();
-
- try {
- /*
- * Since we have a clue about the type of archive to open Use the appropriate open
- * method, so if a failure occurrs, we can get a more specific message
- */
- if (m.isWebModule())
- return getCommonArchiveFactory().openWARFile(archiveOptions, aUri);
- else if (m.isEjbModule())
- return getCommonArchiveFactory().openEJBJarFile(archiveOptions, aUri);
- else if (m.isJavaModule())
- return getCommonArchiveFactory().openApplicationClientFile(archiveOptions, aUri);
- else if (m.isConnectorModule())
- return getCommonArchiveFactory().openRARFile(archiveOptions, aUri);
-
- } catch (OpenFailureException ex) {
- throw new OpenFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.nested_open_fail_EXC_, (new Object[]{aUri, getURI()})), ex); // = "Unable to open module file "{0}" in EAR file "{1}""
- }
- //Should never reach the code below
- return null;
- }
-
- /**
- * @see EARFile
- */
- public void pushDownRole(SecurityRole role) {
- if (role == null)
- throw new IllegalArgumentException(CommonArchiveResourceHandler.Parameter_should_not_be_nu_EXC_); // = "Parameter should not be null"
-
- List modules = getDeploymentDescriptor().getModules();
- for (int i = 0; i < modules.size(); i++) {
- Module m = (Module) modules.get(i);
- pushDownRole(role, m);
- }
- }
-
- /**
- * @see EARFile
- */
- public void pushDownRole(SecurityRole role, Module aModule) {
- try {
- if (aModule.isWebModule()) {
- WebApp dd = getDeploymentDescriptor((WebModule) aModule);
- if (dd.getSecurityRoleNamed(role.getRoleName()) == null)
- dd.getSecurityRoles().add(EtoolsCopyUtility.createCopy(role));
- } else if (aModule.isEjbModule()) {
- AssemblyDescriptor assembly = getAssemblyDescriptorAddIfNecessary(getDeploymentDescriptor((EjbModule) aModule));
- if (assembly.getSecurityRoleNamed(role.getRoleName()) == null)
- assembly.getSecurityRoles().add(EtoolsCopyUtility.createCopy(role));
- }
- } catch (Exception e) {
- throw new DeploymentDescriptorLoadException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.dd_in_ear_load_EXC_, (new Object[]{aModule.getUri(), getURI()})), e); // = "Exception occurred loading deployment descriptor for module "{0}" in ear file "{1}""
- }
- }
-
- /**
- * An alt-dd is about to be loaded; register the appropriate resource factory for the uri so it
- * will get loaded correctly.
- */
- protected void registerResourceFactory(Module aModule, String aUri) {
- org.eclipse.emf.ecore.resource.Resource.Factory factory = null;
- if (aModule.isEjbModule())
- factory = EJBJarResourceFactory.getRegisteredFactory();
- else if (aModule.isWebModule())
- factory = WebAppResourceFactory.getRegisteredFactory();
- else if (aModule.isJavaModule())
- factory = ApplicationClientResourceFactory.getRegisteredFactory();
- else if (aModule.isConnectorModule())
- factory = ConnectorResourceFactory.getRegisteredFactory();
-
- if (factory != null) {
- ResourceSet set = getResourceSet();
- ((FileNameResourceFactoryRegistry) set.getResourceFactoryRegistry()).registerLastFileSegment(aUri, factory);
- }
- }
-
- /**
- * @see com.ibm.etools.commonarchive.EARFile
- */
- public void remove(ModuleRef aModuleRef) {
- if (aModuleRef == null)
- return;
- Module aModule = aModuleRef.getModule();
-
- if (aModule != null)
- getDeploymentDescriptor().getModules().remove(aModule);
-
- getModuleRefs().remove(aModuleRef);
- if (getModuleRefs(aModuleRef.getModuleFile()).isEmpty())
- getFiles().remove(aModuleRef.getModuleFile());
- }
-
- /**
- * @see EARFile
- */
- public List getModuleRefs(ModuleFile aModuleFile) {
- List refs = getModuleRefs();
- List result = new ArrayList(1);
- for (int i = 0; i < refs.size(); i++) {
- ModuleRef ref = (ModuleRef) refs.get(i);
- if (ref.getModuleFile() == aModuleFile)
- result.add(ref);
- }
- return result;
- }
-
- protected void renameRolesInModuleDDs(String existingRoleName, String newRoleName) {
- List modules = getDeploymentDescriptor().getModules();
- for (int i = 0; i < modules.size(); i++) {
- Module m = (Module) modules.get(i);
- try {
- if (m.isEjbModule())
- getDeploymentDescriptor((EjbModule) m).renameSecurityRole(existingRoleName, newRoleName);
- else if (m.isWebModule())
- getDeploymentDescriptor((WebModule) m).renameSecurityRole(existingRoleName, newRoleName);
- } catch (Exception e) {
- throw new DeploymentDescriptorLoadException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.dd_in_ear_load_EXC_, (new Object[]{m.getUri(), getURI()})), e); // = "Exception occurred loading deployment descriptor for module "{0}" in ear file "{1}""
- }
- }
- }
-
- /**
- * @see com.ibm.etools.commonarchive.EARFile
- */
- public void renameSecurityRole(String existingRoleName, String newRoleName) throws ObjectNotFoundException, DuplicateObjectException {
- Application app = getDeploymentDescriptor();
- SecurityRole aRole = app.getSecurityRoleNamed(existingRoleName);
- if (aRole == null)
- throw new ObjectNotFoundException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.no_sec_role_EXC_, (new Object[]{getURI(), existingRoleName}))); // = ": EAR File deployment descriptor does not contain a security role named "
- if (app.getSecurityRoleNamed(newRoleName) != null)
- throw new DuplicateObjectException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.dup_sec_role_EXC_, (new Object[]{getURI(), newRoleName})), app.getSecurityRoleNamed(newRoleName)); // = ": EAR File deployment descriptor already contains a security role named "
-
- aRole.setRoleName(newRoleName);
-
- renameRolesInModuleDDs(existingRoleName, newRoleName);
- }
-
- /**
- * @see com.ibm.etools.commonarchive.EARFile
- */
- public void rollUpRoles() {
- List modules = getDeploymentDescriptor().getModules();
- for (int i = 0; i < modules.size(); i++) {
- Module aModule = (Module) modules.get(i);
- rollUpRoles(aModule);
- }
- }
-
- /**
- * @see com.ibm.etools.commonarchive.EARFile
- */
- public void rollUpRoles(Module aModule) {
- List securityRoles = null;
- try {
- if (aModule.isWebModule())
- securityRoles = getDeploymentDescriptor((WebModule) aModule).getSecurityRoles();
- else if (aModule.isEjbModule())
- securityRoles = getAssemblyDescriptorAddIfNecessary(getDeploymentDescriptor((EjbModule) aModule)).getSecurityRoles();
- } catch (Exception e) {
- throw new DeploymentDescriptorLoadException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.dd_in_ear_load_EXC_, (new Object[]{aModule.getUri(), getURI()})), e); // = "Exception occurred loading deployment descriptor for module "{0}" in ear file "{1}""
- }
-
- if (securityRoles == null)
- return;
- for (int i = 0; i < securityRoles.size(); i++) {
- addCopyIfNotExists((SecurityRole) securityRoles.get(i));
- }
- }
-
- public void setDeploymentDescriptor(Application l) {
- this.setDeploymentDescriptorGen(l);
- replaceRoot(getMofResourceMakeIfNecessary(getDeploymentDescriptorUri()), l);
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public Application getDeploymentDescriptorGen() {
- if (deploymentDescriptor != null && deploymentDescriptor.eIsProxy()) {
- InternalEObject oldDeploymentDescriptor = (InternalEObject)deploymentDescriptor;
- deploymentDescriptor = (Application)eResolveProxy(oldDeploymentDescriptor);
- if (deploymentDescriptor != oldDeploymentDescriptor) {
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.RESOLVE, CommonarchivePackage.EAR_FILE__DEPLOYMENT_DESCRIPTOR, oldDeploymentDescriptor, deploymentDescriptor));
- }
- }
- return deploymentDescriptor;
- }
-
- /**
- *
- * @generated
- */
- public Application basicGetDeploymentDescriptor() {
- return deploymentDescriptor;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public void setDeploymentDescriptorGen(Application newDeploymentDescriptor) {
- Application oldDeploymentDescriptor = deploymentDescriptor;
- deploymentDescriptor = newDeploymentDescriptor;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, CommonarchivePackage.EAR_FILE__DEPLOYMENT_DESCRIPTOR, oldDeploymentDescriptor, deploymentDescriptor));
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case CommonarchivePackage.EAR_FILE__MODULE_REFS:
- return ((InternalEList)getModuleRefs()).basicAdd(otherEnd, msgs);
- }
- return super.eInverseAdd(otherEnd, featureID, msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case CommonarchivePackage.EAR_FILE__MODULE_REFS:
- return ((InternalEList)getModuleRefs()).basicRemove(otherEnd, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case CommonarchivePackage.EAR_FILE__MODULE_REFS:
- return getModuleRefs();
- case CommonarchivePackage.EAR_FILE__DEPLOYMENT_DESCRIPTOR:
- if (resolve) return getDeploymentDescriptor();
- return basicGetDeploymentDescriptor();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case CommonarchivePackage.EAR_FILE__MODULE_REFS:
- getModuleRefs().clear();
- getModuleRefs().addAll((Collection)newValue);
- return;
- case CommonarchivePackage.EAR_FILE__DEPLOYMENT_DESCRIPTOR:
- setDeploymentDescriptor((Application)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eUnset(int featureID) {
- switch (featureID) {
- case CommonarchivePackage.EAR_FILE__MODULE_REFS:
- getModuleRefs().clear();
- return;
- case CommonarchivePackage.EAR_FILE__DEPLOYMENT_DESCRIPTOR:
- setDeploymentDescriptor((Application)null);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- *
- *
- * @generated
- */
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case CommonarchivePackage.EAR_FILE__MODULE_REFS:
- return moduleRefs != null && !moduleRefs.isEmpty();
- case CommonarchivePackage.EAR_FILE__DEPLOYMENT_DESCRIPTOR:
- return deploymentDescriptor != null;
- }
- return super.eIsSet(featureID);
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public EList getModuleRefsGen() {
- if (moduleRefs == null) {
- moduleRefs = new EObjectContainmentWithInverseEList(ModuleRef.class, this, CommonarchivePackage.EAR_FILE__MODULE_REFS, CommonarchivePackage.MODULE_REF__EAR_FILE);
- }
- return moduleRefs;
- }
-
- public EList getModuleRefs() {
- EList refs = getModuleRefsGen();
-
- if (refs.isEmpty())
- initRefs(refs);
-
- return refs;
- }
-
- public void initRefs(EList refs) {
- List modules = getDeploymentDescriptor().getModules();
- for (int i = 0; i < modules.size(); i++) {
- Module module = (Module) modules.get(i);
- refs.add(createModuleRef(module, null));
- }
- }
-
- protected ModuleRef createModuleRef(Module aModule, ModuleFile aFile) {
- ModuleRef newRef = null;
-
- if (aModule.isEjbModule())
- newRef = getCommonArchiveFactory().createEJBModuleRef();
- else if (aModule.isWebModule())
- newRef = getCommonArchiveFactory().createWebModuleRef();
- else if (aModule.isConnectorModule())
- newRef = getCommonArchiveFactory().createConnectorModuleRef();
- else if (aModule.isJavaModule())
- newRef = getCommonArchiveFactory().createClientModuleRef();
-
- newRef.setModule(aModule);
- newRef.setModuleFile(aFile);
-
- return newRef;
- }
-
- /*
- * @see EARFile#getClientModuleRefs()
- */
- public List getClientModuleRefs() {
- List result = new ArrayList();
- List refs = getModuleRefs();
- for (int i = 0; i < refs.size(); i++) {
- ModuleRef ref = (ModuleRef) refs.get(i);
- if (ref.isClient())
- result.add(ref);
- }
- return result;
- }
-
- /*
- * @see EARFile#getConnectorModuleRefs()
- */
- public List getConnectorModuleRefs() {
- List result = new ArrayList();
- List refs = getModuleRefs();
- for (int i = 0; i < refs.size(); i++) {
- ModuleRef ref = (ModuleRef) refs.get(i);
- if (ref.isConnector())
- result.add(ref);
- }
- return result;
- }
-
- /*
- * @see EARFile#getEJBModuleRefs()
- */
- public List getEJBModuleRefs() {
- List result = new ArrayList();
- List refs = getModuleRefs();
- for (int i = 0; i < refs.size(); i++) {
- ModuleRef ref = (ModuleRef) refs.get(i);
- if (ref.isEJB())
- result.add(ref);
- }
- return result;
- }
-
- /*
- * @see EARFile#getWebModuleRefs()
- */
- public List getWebModuleRefs() {
- List result = new ArrayList();
- List refs = getModuleRefs();
- for (int i = 0; i < refs.size(); i++) {
- ModuleRef ref = (ModuleRef) refs.get(i);
- if (ref.isWeb())
- result.add(ref);
- }
- return result;
- }
-
- /*
- * @see EARFile#getFARFiles()
- */
- public List getFARFiles() {
- List farFiles = new ArrayList();
- List fileList = getFiles();
- for (int i = 0; i < fileList.size(); i++) {
- File aFile = (File) fileList.get(i);
- if (aFile.isFARFile()) {
- farFiles.add(aFile);
- }
- }
- return farFiles;
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.ibm.etools.commonarchive.EARFile#getArchivesOfType(java.lang.String)
- */
- public List getArchivesOfType(String type) {
- return Collections.EMPTY_LIST;
- }
-
- public Map getEJBReferences(boolean filterLinkedReferences, boolean filterNonLinkedReferences) throws ArchiveWrappedException {
- if (!filterLinkedReferences || !filterNonLinkedReferences) {
- Application app = getDeploymentDescriptor();
- if (app != null) {
- List modules = app.getModules();
- Module module;
- Map references = null;
- for (int i = 0; i < modules.size(); i++) {
- module = (Module) modules.get(i);
- try {
- references = collectEJBReferences(module, filterLinkedReferences, filterNonLinkedReferences, references);
- } catch (ResourceLoadException e) {
- throw new ArchiveWrappedException(e);
- } catch (FileNotFoundException e) {
- throw new ArchiveWrappedException(e);
- } catch (EmptyResourceException e) {
- throw new ArchiveWrappedException(e);
- }
- }
- return references;
- }
- }
- return Collections.EMPTY_MAP;
- }
-
- /**
- * @param module
- * @param filterLinkedReferences
- * @param filterNonLinkedReferences
- * @param references
- * @return
- */
- private Map collectEJBReferences(Module module, boolean filterLinkedReferences, boolean filterNonLinkedReferences, Map references) throws ResourceLoadException, FileNotFoundException, EmptyResourceException {
- Map myReferences = references;
- List moduleReferences = getEJBReferneces(module);
- if (moduleReferences != null && !moduleReferences.isEmpty()) {
- EjbRef ref = null;
- List filteredRefs = null;
- String link = null;
- for (int i = 0; i < moduleReferences.size(); i++) {
- ref = (EjbRef) moduleReferences.get(i);
- link = ref.getLink();
- if ((link != null && link.length() > 0 && !filterLinkedReferences) || ((link == null || link.length() == 0) && !filterNonLinkedReferences)) {
- if (filteredRefs == null)
- filteredRefs = new ArrayList(moduleReferences.size());
- filteredRefs.add(ref);
- }
- }
- if (filteredRefs != null) {
- if (myReferences == null)
- myReferences = new HashMap();
- myReferences.put(module, filteredRefs);
- }
- }
- return myReferences;
- }
-
- /**
- * @param module
- * @return
- */
- private List getEJBReferneces(Module module) throws ResourceLoadException, FileNotFoundException, EmptyResourceException {
- if (module != null) {
- if (module.isEjbModule()) {
- EJBJar ejbJar = getDeploymentDescriptor((EjbModule) module);
- return getEJBReferences(ejbJar);
- } else if (module.isWebModule()) {
- WebApp webApp = getDeploymentDescriptor((WebModule) module);
- if (webApp != null)
- return webApp.getEjbRefs();
- } else if (module.isJavaModule()) {
- ApplicationClient appClient = getDeploymentDescriptor((JavaClientModule) module);
- if (appClient != null)
- return appClient.getEjbReferences();
- }
- }
- return Collections.EMPTY_LIST;
- }
-
- /**
- * @param ejbJar
- * @return
- */
- private List getEJBReferences(EJBJar ejbJar) {
- if (ejbJar != null) {
- List ejbs = ejbJar.getEnterpriseBeans();
- List refs = null;
- EnterpriseBean ejb = null;
- for (int i = 0; i < ejbs.size(); i++) {
- ejb = (EnterpriseBean) ejbs.get(i);
- if (refs == null)
- refs = new ArrayList();
- refs.addAll(ejb.getEjbRefs());
- }
- if (refs != null)
- return refs;
- }
- return Collections.EMPTY_LIST;
- }
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/EJBJarFileImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/EJBJarFileImpl.java
deleted file mode 100644
index 71617ba5b..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/EJBJarFileImpl.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.impl;
-
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchivePackage;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EJBJarFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException;
-import org.eclipse.jst.j2ee.ejb.EJBJar;
-import org.eclipse.jst.j2ee.ejb.EjbPackage;
-import org.eclipse.jst.j2ee.ejb.EnterpriseBean;
-import org.eclipse.jst.j2ee.ejb.Entity;
-import org.eclipse.jst.j2ee.internal.J2EEConstants;
-import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
-import org.eclipse.jst.j2ee.internal.common.XMLResource;
-
-
-/**
- * @generated
- */
-public class EJBJarFileImpl extends ModuleFileImpl implements EJBJarFile {
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected EJBJar deploymentDescriptor = null;
-
- public EJBJarFileImpl() {
- super();
- }
-
- /**
- *
- * @generated
- */
- protected EClass eStaticClass() {
- return CommonarchivePackage.Literals.EJB_JAR_FILE;
- }
-
- /**
- * Used for tools performing selective import
- */
- public List getAssociatedFiles(EnterpriseBean ejb) {
-
- List classNames = new java.util.ArrayList();
- List result = new ArrayList();
- if (ejb.getVersionID() <= J2EEVersionConstants.EJB_1_1_ID) {
- classNames.add(ejb.getHomeInterfaceName());
- classNames.add(ejb.getRemoteInterfaceName());
- } else if (ejb.getVersionID() >= J2EEVersionConstants.EJB_2_0_ID) {
- if (ejb.hasRemoteClient()) {
- classNames.add(ejb.getHomeInterfaceName());
- classNames.add(ejb.getRemoteInterfaceName());
- }
- if (ejb.hasLocalClient()) {
- classNames.add(ejb.getLocalHomeInterfaceName());
- classNames.add(ejb.getLocalInterfaceName());
- }
- }
- classNames.add(ejb.getEjbClassName());
-
- if (ejb.isEntity()) {
- String className = ((Entity) ejb).getPrimaryKeyName();
- if (!className.startsWith("java"))//$NON-NLS-1$
- classNames.add(className);
- }
- for (int i = 0; i < classNames.size(); i++) {
- String className = (String) classNames.get(i);
- if (className == null)
- continue;
- String classUri = org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveUtil.classNameToUri(className);
- String javaUri = org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveUtil.classNameToJavaUri(className);
- try {
- result.add(getFile(classUri));
- } catch (java.io.FileNotFoundException iox) {
- //Do nothing - the file does not exist in this jar file
- }
- try {
- result.add(getFile(javaUri));
- } catch (java.io.FileNotFoundException iox) {
- //Do nothing - the file does not exist in this jar file
- }
- }
- return result;
- }
-
- /**
- * @throws DeploymentDescriptorLoadException -
- * is a runtime exception, because we can't override the signature of the generated
- * methods
- */
- public EJBJar getDeploymentDescriptor() throws DeploymentDescriptorLoadException {
- EJBJar dd = this.getDeploymentDescriptorGen();
- if (dd == null && canLazyInitialize()) {
- try {
- getImportStrategy().importMetaData();
- } catch (DeploymentDescriptorLoadException ex) {
- throw ex;
- } catch (Exception e) {
- throw new DeploymentDescriptorLoadException(getDeploymentDescriptorUri(), e);
- }
- }
- return this.getDeploymentDescriptorGen();
- }
-
- public java.lang.String getDeploymentDescriptorUri() {
- return J2EEConstants.EJBJAR_DD_URI;
- }
-
- /**
- * Return the DeployementDescriptor.
- */
- public EObject getStandardDeploymentDescriptor() throws DeploymentDescriptorLoadException {
- return getDeploymentDescriptor();
- }
-
- public boolean isDeploymentDescriptorSet() {
- return deploymentDescriptor != null;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.File
- */
- public boolean isEJBJarFile() {
- return true;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.EJBJarFile
- */
- public boolean isImportedFrom10() {
- return getImportStrategy() != null && getImportStrategy().isEJB10();
- }
-
- /**
- * @see com.ibm.etools.commonarchive.impl.ModuleFileImpl
- */
- public org.eclipse.emf.ecore.EObject makeDeploymentDescriptor(XMLResource resource) {
- EJBJar ejbJar = ((EjbPackage) EPackage.Registry.INSTANCE.getEPackage(EjbPackage.eNS_URI)).getEjbFactory().createEJBJar();
- resource.setID(ejbJar, J2EEConstants.EJBJAR_ID);
- setDeploymentDescriptorGen(ejbJar);
- resource.getContents().add(ejbJar);
-
- return ejbJar;
- }
-
-
- public void setDeploymentDescriptor(EJBJar l) {
- this.setDeploymentDescriptorGen(l);
- replaceRoot(getMofResourceMakeIfNecessary(getDeploymentDescriptorUri()), l);
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public EJBJar getDeploymentDescriptorGen() {
- if (deploymentDescriptor != null && deploymentDescriptor.eIsProxy()) {
- InternalEObject oldDeploymentDescriptor = (InternalEObject)deploymentDescriptor;
- deploymentDescriptor = (EJBJar)eResolveProxy(oldDeploymentDescriptor);
- if (deploymentDescriptor != oldDeploymentDescriptor) {
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.RESOLVE, CommonarchivePackage.EJB_JAR_FILE__DEPLOYMENT_DESCRIPTOR, oldDeploymentDescriptor, deploymentDescriptor));
- }
- }
- return deploymentDescriptor;
- }
-
- /**
- *
- * @generated
- */
- public EJBJar basicGetDeploymentDescriptor() {
- return deploymentDescriptor;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public void setDeploymentDescriptorGen(EJBJar newDeploymentDescriptor) {
- EJBJar oldDeploymentDescriptor = deploymentDescriptor;
- deploymentDescriptor = newDeploymentDescriptor;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, CommonarchivePackage.EJB_JAR_FILE__DEPLOYMENT_DESCRIPTOR, oldDeploymentDescriptor, deploymentDescriptor));
- }
-
- /**
- *
- *
- * @generated
- */
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case CommonarchivePackage.EJB_JAR_FILE__DEPLOYMENT_DESCRIPTOR:
- if (resolve) return getDeploymentDescriptor();
- return basicGetDeploymentDescriptor();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case CommonarchivePackage.EJB_JAR_FILE__DEPLOYMENT_DESCRIPTOR:
- setDeploymentDescriptor((EJBJar)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eUnset(int featureID) {
- switch (featureID) {
- case CommonarchivePackage.EJB_JAR_FILE__DEPLOYMENT_DESCRIPTOR:
- setDeploymentDescriptor((EJBJar)null);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- *
- *
- * @generated
- */
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case CommonarchivePackage.EJB_JAR_FILE__DEPLOYMENT_DESCRIPTOR:
- return deploymentDescriptor != null;
- }
- return super.eIsSet(featureID);
- }
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/EJBModuleRefImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/EJBModuleRefImpl.java
deleted file mode 100644
index 9f4ea24bd..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/EJBModuleRefImpl.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.impl;
-
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchivePackage;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EJBModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveWrappedException;
-import org.eclipse.jst.j2ee.ejb.EJBJar;
-
-/**
- * @generated
- */
-public class EJBModuleRefImpl extends ModuleRefImpl implements EJBModuleRef {
-
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected EJBModuleRefImpl() {
- super();
- }
-
- /**
- *
- * @generated
- */
- protected EClass eStaticClass() {
- return CommonarchivePackage.Literals.EJB_MODULE_REF;
- }
-
- public EJBJar getEJBJar() throws ArchiveWrappedException {
- return (EJBJar) getDeploymentDescriptor();
- }
-
- /*
- * @see ModuleRef#isEJB()
- */
- public boolean isEJB() {
- return true;
- }
-
-} //EJBModuleRefImpl
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/FileImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/FileImpl.java
deleted file mode 100644
index 74c06edae..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/FileImpl.java
+++ /dev/null
@@ -1,653 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.impl;
-
-
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.jst.j2ee.common.internal.impl.J2EEEObjectImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonArchiveFactoryRegistry;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchiveFactory;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchivePackage;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Container;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.File;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveUtil;
-
-
-
-/**
- * @generated
- */
-public class FileImpl extends J2EEEObjectImpl implements File {
-
- /**
- * The default value of the '{@link #getURI() URI}' attribute.
- *
- * @see #getURI()
- * @generated
- * @ordered
- */
- protected static final String URI_EDEFAULT = null;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected String uri = URI_EDEFAULT;
- /**
- * The default value of the '{@link #getLastModified() Last Modified}' attribute.
- *
- * @see #getLastModified()
- * @generated
- * @ordered
- */
- protected static final long LAST_MODIFIED_EDEFAULT = 0L;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected long lastModified = LAST_MODIFIED_EDEFAULT;
- /**
- * This is true if the Last Modified attribute has been set.
- *
- * @generated
- * @ordered
- */
- protected boolean lastModifiedESet = false;
-
- /**
- * The default value of the '{@link #getSize() Size}' attribute.
- *
- * @see #getSize()
- * @generated
- * @ordered
- */
- protected static final long SIZE_EDEFAULT = 0L;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected long size = SIZE_EDEFAULT;
- /**
- * This is true if the Size attribute has been set.
- *
- * @generated
- * @ordered
- */
- protected boolean sizeESet = false;
-
- /**
- * The default value of the '{@link #isDirectoryEntry() Directory Entry}' attribute.
- *
- * @see #isDirectoryEntry()
- * @generated
- * @ordered
- */
- protected static final boolean DIRECTORY_ENTRY_EDEFAULT = false;
-
- /**
- * The cached value of the '{@link #isDirectoryEntry() Directory Entry}' attribute.
- *
- * @see #isDirectoryEntry()
- * @generated
- * @ordered
- */
- protected boolean directoryEntry = DIRECTORY_ENTRY_EDEFAULT;
-
- /**
- * This is true if the Directory Entry attribute has been set.
- *
- * @generated
- * @ordered
- */
- protected boolean directoryEntryESet = false;
-
- /**
- * The default value of the '{@link #getOriginalURI() Original URI}' attribute.
- *
- * @see #getOriginalURI()
- * @generated
- * @ordered
- */
- protected static final String ORIGINAL_URI_EDEFAULT = null;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected String originalURI = ORIGINAL_URI_EDEFAULT;
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected Container loadingContainer = null;
-
- public FileImpl() {
- super();
- }
-
- /**
- *
- * @generated
- */
- protected EClass eStaticClass() {
- return CommonarchivePackage.Literals.FILE;
- }
-
- public CommonarchiveFactory getCommonArchiveFactory() {
- return CommonArchiveFactoryRegistry.INSTANCE.getCommonArchiveFactory();
- }
-
- /**
- * @see com.ibm.etools.commonarchive.File
- */
- public java.lang.String getDirectoryURI() {
- return ArchiveUtil.getFileNameParent(getURI());
- }
-
- /**
- * @see com.ibm.etools.commonarchive.File
- */
- public java.io.InputStream getInputStream() throws java.io.FileNotFoundException, java.io.IOException {
- return getLoadingContainer().primGetInputStream(getOriginalURI());
- }
-
- public String getName() {
- return ArchiveUtil.getFileNameTail(getURI());
- }
-
- /**
- * @see com.ibm.etools.commonarchive.File
- */
- public boolean isApplicationClientFile() {
- return false;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.File
- */
- public boolean isArchive() {
- return false;
- }
-
- /**
- * isContainer method comment.
- */
- public boolean isContainer() {
- return false;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.File
- */
- public boolean isEARFile() {
- return false;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.File
- */
- public boolean isEJBJarFile() {
- return false;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.File
- */
- public boolean isModuleFile() {
- return false;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.File
- */
- public boolean isRARFile() {
- return false;
- }
-
- /**
- * isReadOnlyDirectory method comment.
- */
- public boolean isReadOnlyDirectory() {
- return false;
- }
-
- /**
- * @see com.ibm.etools.commonarchive.File
- */
- public boolean isWARFile() {
- return false;
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public String getURI() {
- return uri;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public void setURI(String newURI) {
- String oldURI = uri;
- uri = newURI;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, CommonarchivePackage.FILE__URI, oldURI, uri));
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public long getLastModified() {
- return lastModified;
- }
-
- /**
- *
- * @generated
- */
- public void setLastModified(long newLastModified) {
- long oldLastModified = lastModified;
- lastModified = newLastModified;
- boolean oldLastModifiedESet = lastModifiedESet;
- lastModifiedESet = true;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, CommonarchivePackage.FILE__LAST_MODIFIED, oldLastModified, lastModified, !oldLastModifiedESet));
- }
-
- /**
- *
- * @generated
- */
- public void unsetLastModified() {
- long oldLastModified = lastModified;
- boolean oldLastModifiedESet = lastModifiedESet;
- lastModified = LAST_MODIFIED_EDEFAULT;
- lastModifiedESet = false;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.UNSET, CommonarchivePackage.FILE__LAST_MODIFIED, oldLastModified, LAST_MODIFIED_EDEFAULT, oldLastModifiedESet));
- }
-
- /**
- *
- * @generated
- */
- public boolean isSetLastModified() {
- return lastModifiedESet;
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public long getSize() {
- return size;
- }
-
- /**
- *
- * @generated
- */
- public void setSize(long newSize) {
- long oldSize = size;
- size = newSize;
- boolean oldSizeESet = sizeESet;
- sizeESet = true;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, CommonarchivePackage.FILE__SIZE, oldSize, size, !oldSizeESet));
- }
-
- /**
- *
- * @generated
- */
- public void unsetSize() {
- long oldSize = size;
- boolean oldSizeESet = sizeESet;
- size = SIZE_EDEFAULT;
- sizeESet = false;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.UNSET, CommonarchivePackage.FILE__SIZE, oldSize, SIZE_EDEFAULT, oldSizeESet));
- }
-
- /**
- *
- * @generated
- */
- public boolean isSetSize() {
- return sizeESet;
- }
-
- /**
- *
- * @generated
- */
- public boolean isDirectoryEntry() {
- return directoryEntry;
- }
-
- /**
- *
- * @generated
- */
- public void setDirectoryEntry(boolean newDirectoryEntry) {
- boolean oldDirectoryEntry = directoryEntry;
- directoryEntry = newDirectoryEntry;
- boolean oldDirectoryEntryESet = directoryEntryESet;
- directoryEntryESet = true;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, CommonarchivePackage.FILE__DIRECTORY_ENTRY, oldDirectoryEntry, directoryEntry, !oldDirectoryEntryESet));
- }
-
- /**
- *
- * @generated
- */
- public void unsetDirectoryEntry() {
- boolean oldDirectoryEntry = directoryEntry;
- boolean oldDirectoryEntryESet = directoryEntryESet;
- directoryEntry = DIRECTORY_ENTRY_EDEFAULT;
- directoryEntryESet = false;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.UNSET, CommonarchivePackage.FILE__DIRECTORY_ENTRY, oldDirectoryEntry, DIRECTORY_ENTRY_EDEFAULT, oldDirectoryEntryESet));
- }
-
- /**
- *
- * @generated
- */
- public boolean isSetDirectoryEntry() {
- return directoryEntryESet;
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public String getOriginalURI() {
- return originalURI;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public void setOriginalURI(String newOriginalURI) {
- String oldOriginalURI = originalURI;
- originalURI = newOriginalURI;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, CommonarchivePackage.FILE__ORIGINAL_URI, oldOriginalURI, originalURI));
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public Container getLoadingContainer() {
- if (loadingContainer != null && loadingContainer.eIsProxy()) {
- InternalEObject oldLoadingContainer = (InternalEObject)loadingContainer;
- loadingContainer = (Container)eResolveProxy(oldLoadingContainer);
- if (loadingContainer != oldLoadingContainer) {
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.RESOLVE, CommonarchivePackage.FILE__LOADING_CONTAINER, oldLoadingContainer, loadingContainer));
- }
- }
- return loadingContainer;
- }
-
- /**
- *
- * @generated
- */
- public Container basicGetLoadingContainer() {
- return loadingContainer;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public void setLoadingContainer(Container newLoadingContainer) {
- Container oldLoadingContainer = loadingContainer;
- loadingContainer = newLoadingContainer;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, CommonarchivePackage.FILE__LOADING_CONTAINER, oldLoadingContainer, loadingContainer));
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public Container getContainer() {
- if (eContainerFeatureID != CommonarchivePackage.FILE__CONTAINER) return null;
- return (Container)eContainer();
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain basicSetContainer(Container newContainer, NotificationChain msgs) {
- msgs = eBasicSetContainer((InternalEObject)newContainer, CommonarchivePackage.FILE__CONTAINER, msgs);
- return msgs;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public void setContainer(Container newContainer) {
- if (newContainer != eInternalContainer() || (eContainerFeatureID != CommonarchivePackage.FILE__CONTAINER && newContainer != null)) {
- if (EcoreUtil.isAncestor(this, newContainer))
- throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
- NotificationChain msgs = null;
- if (eInternalContainer() != null)
- msgs = eBasicRemoveFromContainer(msgs);
- if (newContainer != null)
- msgs = ((InternalEObject)newContainer).eInverseAdd(this, CommonarchivePackage.CONTAINER__FILES, Container.class, msgs);
- msgs = basicSetContainer(newContainer, msgs);
- if (msgs != null) msgs.dispatch();
- }
- else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, CommonarchivePackage.FILE__CONTAINER, newContainer, newContainer));
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case CommonarchivePackage.FILE__CONTAINER:
- if (eInternalContainer() != null)
- msgs = eBasicRemoveFromContainer(msgs);
- return basicSetContainer((Container)otherEnd, msgs);
- }
- return super.eInverseAdd(otherEnd, featureID, msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case CommonarchivePackage.FILE__CONTAINER:
- return basicSetContainer(null, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
- switch (eContainerFeatureID) {
- case CommonarchivePackage.FILE__CONTAINER:
- return eInternalContainer().eInverseRemove(this, CommonarchivePackage.CONTAINER__FILES, Container.class, msgs);
- }
- return super.eBasicRemoveFromContainerFeature(msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case CommonarchivePackage.FILE__URI:
- return getURI();
- case CommonarchivePackage.FILE__LAST_MODIFIED:
- return new Long(getLastModified());
- case CommonarchivePackage.FILE__SIZE:
- return new Long(getSize());
- case CommonarchivePackage.FILE__DIRECTORY_ENTRY:
- return isDirectoryEntry() ? Boolean.TRUE : Boolean.FALSE;
- case CommonarchivePackage.FILE__ORIGINAL_URI:
- return getOriginalURI();
- case CommonarchivePackage.FILE__LOADING_CONTAINER:
- if (resolve) return getLoadingContainer();
- return basicGetLoadingContainer();
- case CommonarchivePackage.FILE__CONTAINER:
- return getContainer();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case CommonarchivePackage.FILE__URI:
- setURI((String)newValue);
- return;
- case CommonarchivePackage.FILE__LAST_MODIFIED:
- setLastModified(((Long)newValue).longValue());
- return;
- case CommonarchivePackage.FILE__SIZE:
- setSize(((Long)newValue).longValue());
- return;
- case CommonarchivePackage.FILE__DIRECTORY_ENTRY:
- setDirectoryEntry(((Boolean)newValue).booleanValue());
- return;
- case CommonarchivePackage.FILE__ORIGINAL_URI:
- setOriginalURI((String)newValue);
- return;
- case CommonarchivePackage.FILE__LOADING_CONTAINER:
- setLoadingContainer((Container)newValue);
- return;
- case CommonarchivePackage.FILE__CONTAINER:
- setContainer((Container)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eUnset(int featureID) {
- switch (featureID) {
- case CommonarchivePackage.FILE__URI:
- setURI(URI_EDEFAULT);
- return;
- case CommonarchivePackage.FILE__LAST_MODIFIED:
- unsetLastModified();
- return;
- case CommonarchivePackage.FILE__SIZE:
- unsetSize();
- return;
- case CommonarchivePackage.FILE__DIRECTORY_ENTRY:
- unsetDirectoryEntry();
- return;
- case CommonarchivePackage.FILE__ORIGINAL_URI:
- setOriginalURI(ORIGINAL_URI_EDEFAULT);
- return;
- case CommonarchivePackage.FILE__LOADING_CONTAINER:
- setLoadingContainer((Container)null);
- return;
- case CommonarchivePackage.FILE__CONTAINER:
- setContainer((Container)null);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- *
- *
- * @generated
- */
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case CommonarchivePackage.FILE__URI:
- return URI_EDEFAULT == null ? uri != null : !URI_EDEFAULT.equals(uri);
- case CommonarchivePackage.FILE__LAST_MODIFIED:
- return isSetLastModified();
- case CommonarchivePackage.FILE__SIZE:
- return isSetSize();
- case CommonarchivePackage.FILE__DIRECTORY_ENTRY:
- return isSetDirectoryEntry();
- case CommonarchivePackage.FILE__ORIGINAL_URI:
- return ORIGINAL_URI_EDEFAULT == null ? originalURI != null : !ORIGINAL_URI_EDEFAULT.equals(originalURI);
- case CommonarchivePackage.FILE__LOADING_CONTAINER:
- return loadingContainer != null;
- case CommonarchivePackage.FILE__CONTAINER:
- return getContainer() != null;
- }
- return super.eIsSet(featureID);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public String toString() {
- if (eIsProxy()) return super.toString();
-
- StringBuffer result = new StringBuffer(super.toString());
- result.append(" (URI: ");
- result.append(uri);
- result.append(", lastModified: ");
- if (lastModifiedESet) result.append(lastModified); else result.append("true>
then empty directories will be included in {@link #getFiles()}.
- *
- * @see #setIncludeEmptyDirectories(boolean)
- */
- public boolean isIncludeEmptyDirectories() {
- return includeEmptyDirectories;
- }
-
- /**
- * If this value has not been set, the default is defined by {@link #ArchiveUtil.INCLUDE_EMPTY_DIRECTORIES}.
- *
- * @see #isIncludeEmptyDirectories()
- */
- public void setIncludeEmptyDirectories(boolean includeEmptyDirectories) {
- this.includeEmptyDirectories = includeEmptyDirectories;
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/strategy/ZipStreamSaveStrategyImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/strategy/ZipStreamSaveStrategyImpl.java
deleted file mode 100644
index 9fee0c8bf..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/strategy/ZipStreamSaveStrategyImpl.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.strategy;
-
-
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.URIConverter;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.File;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.SaveFailureException;
-import org.eclipse.jst.j2ee.internal.J2EEConstants;
-import org.eclipse.wst.common.internal.emf.resource.CompatibilityURIConverter;
-import org.eclipse.wst.common.internal.emf.utilities.Revisit;
-
-
-/**
- * This is a concrete implentation of SaveStrategy. All the contents of the archive, including xmi
- * resources, will be output to a ZipOutputStream. The output stream should be passed in by the
- * client.
- */
-public class ZipStreamSaveStrategyImpl extends SaveStrategyImpl implements SaveStrategy {
- protected OutputStream destinationStream;
- /** Used internally */
- protected ZipOutputStream zipOutputStream;
-
- /**
- * Wraps a new zip output stream around the parameter
- */
- public ZipStreamSaveStrategyImpl(OutputStream out) {
- setDestinationStream(out);
- setZipOutputStream(new ZipOutputStream(out));
- }
-
- public void close() throws IOException {
- getDestinationStream().close();
- }
-
- protected SaveStrategy createNestedSaveStrategy(Archive anArchive) {
- return new ZipStreamSaveStrategyImpl(getZipOutputStream());
- }
-
- public void finish() throws IOException {
- getZipOutputStream().finish();
- //If this is not nested, close the stream to free up the resource
- //otherwise, don't close it because the parent may not be done
- if (!(getDestinationStream() instanceof ZipOutputStream))
- getDestinationStream().close();
- }
-
- /**
- * @return java.io.OutputStream
- */
- public java.io.OutputStream getDestinationStream() {
- return destinationStream;
- }
-
- /**
- * @see com.ibm.etools.archive.impl.SaveStrategyImpl
- */
- protected java.io.OutputStream getOutputStreamForResource(Resource aResource) throws java.io.IOException {
- return getZipOutputStream();
- }
-
- /**
- * @see com.ibm.etools.archive.SaveStrategy#saveMofResource(Resource)
- */
- public void saveMofResource(Resource aResource, OutputStream out) throws IOException {
- Revisit.revisit();
- URI uri = aResource.getURI();
- //Ensure container relative URI
- URIConverter conv = getArchive().getResourceSet().getURIConverter();
- if (conv instanceof CompatibilityURIConverter)
- uri = ((CompatibilityURIConverter) conv).deNormalize(uri);
- ZipEntry entry = new ZipEntry(uri.toString());
- zipOutputStream.putNextEntry(entry);
- super.saveMofResource(aResource, out);
- zipOutputStream.closeEntry();
- }
-
- /**
- * @return java.util.zip.ZipOutputStream
- */
- protected java.util.zip.ZipOutputStream getZipOutputStream() {
- return zipOutputStream;
- }
-
- /**
- * @see com.ibm.etools.archive.SaveStrategy
- */
- public void save(org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveManifest aManifest) throws SaveFailureException {
- try {
- ZipEntry entry = new ZipEntry(J2EEConstants.MANIFEST_URI);
- getZipOutputStream().putNextEntry(entry);
- aManifest.write(getZipOutputStream());
- getZipOutputStream().closeEntry();
- } catch (IOException iox) {
- throw new SaveFailureException(J2EEConstants.MANIFEST_URI, iox);
- }
- }
-
- public void save(Archive anArchive) throws SaveFailureException {
- try {
- ZipEntry entry = new ZipEntry(anArchive.getURI());
- getZipOutputStream().putNextEntry(entry);
- super.save(anArchive);
- getZipOutputStream().closeEntry();
- } catch (IOException iox) {
- throw new SaveFailureException(anArchive.getURI(), iox);
- }
- }
-
- public void save(File aFile, InputStream in) throws SaveFailureException {
- try {
- String entryName = aFile.getURI();
- if (aFile.isDirectoryEntry() && !entryName.endsWith("/"))//$NON-NLS-1$
- entryName = entryName + '/';
- ZipEntry entry = new ZipEntry(entryName);
- if (aFile.getLastModified() > 0)
- entry.setTime(aFile.getLastModified());
- getZipOutputStream().putNextEntry(entry);
- if (!aFile.isDirectoryEntry()) {
- org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveUtil.copy(in, getZipOutputStream());
- }
- getZipOutputStream().closeEntry();
- } catch (IOException iox) {
- throw new SaveFailureException(aFile.getURI(), iox);
- }
- }
-
- /**
- * @param newDestinationStream
- * java.io.OutputStream
- */
- public void setDestinationStream(java.io.OutputStream newDestinationStream) {
- destinationStream = newDestinationStream;
- }
-
- /**
- * @param newZipOutputStream
- * java.util.zip.ZipOutputStream
- */
- protected void setZipOutputStream(java.util.zip.ZipOutputStream newZipOutputStream) {
- zipOutputStream = newZipOutputStream;
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ArchiveFileDynamicClassLoader.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ArchiveFileDynamicClassLoader.java
deleted file mode 100644
index 7fa413333..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ArchiveFileDynamicClassLoader.java
+++ /dev/null
@@ -1,327 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.util;
-
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLStreamHandler;
-import java.security.ProtectionDomain;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonArchiveResourceHandler;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.File;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveRuntimeException;
-
-
-/**
- * Class loader which loads a given set of classes stored in byte arrays. (Assumption: System
- * classes and those in the set are the only classes needed to resolve each one)
- */
-
-public class ArchiveFileDynamicClassLoader extends ClassLoader {
- protected Archive archive = null;
- protected ClassLoader extraClassLoader;
- protected boolean inEARFile;
- private static final String URL_PROTOCOL = "archive";
- private ArchiveURLStreamHandler handler;
-
- protected ProtectionDomain protectionDomain;
-
- /**
- * findClass
.defineClass
.createXXX
methods.
- *
- *
- * @generated
- */
- protected CommonarchiveSwitch modelSwitch =
- new CommonarchiveSwitch() {
- public Object caseFile(File object) {
- return createFileAdapter();
- }
- public Object caseArchive(Archive object) {
- return createArchiveAdapter();
- }
- public Object caseEJBJarFile(EJBJarFile object) {
- return createEJBJarFileAdapter();
- }
- public Object caseWARFile(WARFile object) {
- return createWARFileAdapter();
- }
- public Object caseEARFile(EARFile object) {
- return createEARFileAdapter();
- }
- public Object caseApplicationClientFile(ApplicationClientFile object) {
- return createApplicationClientFileAdapter();
- }
- public Object caseModuleFile(ModuleFile object) {
- return createModuleFileAdapter();
- }
- public Object caseContainer(Container object) {
- return createContainerAdapter();
- }
- public Object caseReadOnlyDirectory(ReadOnlyDirectory object) {
- return createReadOnlyDirectoryAdapter();
- }
- public Object caseRARFile(RARFile object) {
- return createRARFileAdapter();
- }
- public Object caseModuleRef(ModuleRef object) {
- return createModuleRefAdapter();
- }
- public Object caseEJBModuleRef(EJBModuleRef object) {
- return createEJBModuleRefAdapter();
- }
- public Object caseWebModuleRef(WebModuleRef object) {
- return createWebModuleRefAdapter();
- }
- public Object caseClientModuleRef(ClientModuleRef object) {
- return createClientModuleRefAdapter();
- }
- public Object caseConnectorModuleRef(ConnectorModuleRef object) {
- return createConnectorModuleRefAdapter();
- }
- public Object caseJ2EEEObject(J2EEEObject object) {
- return createJ2EEEObjectAdapter();
- }
- public Object defaultCase(EObject object) {
- return createEObjectAdapter();
- }
- };
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createAdapterGen(Notifier target) {
- return (Adapter)modelSwitch.doSwitch((EObject)target);
- }
-
-
- /**
- * By default create methods return null so that we can easily ignore cases. It's useful to
- * ignore a case when inheritance will catch all the cases anyway.
- */
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createContainerAdapterGen() {
-
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createWARFileAdapterGen() {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createModuleFileAdapterGen() {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createApplicationClientFileAdapterGen() {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createEARFileAdapterGen() {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createEJBJarFileAdapterGen() {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createRARFileAdapterGen() {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createArchiveAdapterGen() {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createFileAdapterGen() {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createReadOnlyDirectoryAdapterGen() {
- return null;
- }
-
-} //CommonarchiveAdapterFactory
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/CommonarchiveSwitch.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/CommonarchiveSwitch.java
deleted file mode 100644
index f241a093a..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/CommonarchiveSwitch.java
+++ /dev/null
@@ -1,520 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.util;
-
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jst.j2ee.common.J2EEEObject;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ApplicationClientFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ClientModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchiveFactory;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchivePackage;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ConnectorModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Container;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EJBJarFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EJBModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.File;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.RARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ReadOnlyDirectory;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.WARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.WebModuleRef;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchiveFactoryImpl;
-
-
-public class CommonarchiveSwitch {
- /**
- * The cached model package
- *
- * @generated
- */
- protected static CommonarchivePackage modelPackage;
-
- protected static CommonarchiveFactory factory;
-
- public CommonarchiveSwitch() {
- factory = (CommonarchiveFactory) CommonarchiveFactoryImpl.getPackage().getEFactoryInstance();
- modelPackage = CommonarchiveFactoryImpl.getPackage();
- }
-
- public Object doSwitch(EObject theEObject) {
- EClass theEClass = theEObject.eClass();
- if (theEClass.eContainer() != modelPackage)
- return defaultCase(theEObject);
-
- switch (theEClass.getClassifierID()) {
- case CommonarchivePackage.WAR_FILE : {
- WARFile castedObject = (WARFile) theEObject;
- Object result = caseWARFile(castedObject);
- if (result == null)
- result = caseModuleFile(castedObject);
- if (result == null)
- result = caseArchive(castedObject);
- if (result == null)
- result = caseContainer(castedObject);
- if (result == null)
- result = caseFile(castedObject);
- if (result == null)
- result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.EAR_FILE : {
- EARFile castedObject = (EARFile) theEObject;
- Object result = caseEARFile(castedObject);
- if (result == null)
- result = caseModuleFile(castedObject);
- if (result == null)
- result = caseArchive(castedObject);
- if (result == null)
- result = caseContainer(castedObject);
- if (result == null)
- result = caseFile(castedObject);
- if (result == null)
- result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.APPLICATION_CLIENT_FILE : {
- ApplicationClientFile castedObject = (ApplicationClientFile) theEObject;
- Object result = caseApplicationClientFile(castedObject);
- if (result == null)
- result = caseModuleFile(castedObject);
- if (result == null)
- result = caseArchive(castedObject);
- if (result == null)
- result = caseContainer(castedObject);
- if (result == null)
- result = caseFile(castedObject);
- if (result == null)
- result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.EJB_JAR_FILE : {
- EJBJarFile castedObject = (EJBJarFile) theEObject;
- Object result = caseEJBJarFile(castedObject);
- if (result == null)
- result = caseModuleFile(castedObject);
- if (result == null)
- result = caseArchive(castedObject);
- if (result == null)
- result = caseContainer(castedObject);
- if (result == null)
- result = caseFile(castedObject);
- if (result == null)
- result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.RAR_FILE : {
- RARFile castedObject = (RARFile) theEObject;
- Object result = caseRARFile(castedObject);
- if (result == null)
- result = caseModuleFile(castedObject);
- if (result == null)
- result = caseArchive(castedObject);
- if (result == null)
- result = caseContainer(castedObject);
- if (result == null)
- result = caseFile(castedObject);
- if (result == null)
- result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.ARCHIVE : {
- Archive castedObject = (Archive) theEObject;
- Object result = caseArchive(castedObject);
- if (result == null)
- result = caseContainer(castedObject);
- if (result == null)
- result = caseFile(castedObject);
- if (result == null)
- result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.FILE : {
- File castedObject = (File) theEObject;
- Object result = caseFile(castedObject);
- if (result == null)
- result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.READ_ONLY_DIRECTORY : {
- ReadOnlyDirectory castedObject = (ReadOnlyDirectory) theEObject;
- Object result = caseReadOnlyDirectory(castedObject);
- if (result == null)
- result = caseContainer(castedObject);
- if (result == null)
- result = caseFile(castedObject);
- if (result == null)
- result = defaultCase(theEObject);
- return result;
- }
- default :
- return defaultCase(theEObject);
- }
- } // doSwitch
-
- public Object caseContainer(Container object) {
- return null;
- }
-
- public Object caseWARFile(WARFile object) {
- return null;
- }
-
- public Object caseModuleFile(ModuleFile object) {
- return null;
- }
-
- public Object caseEARFile(EARFile object) {
- return null;
- }
-
- public Object caseApplicationClientFile(ApplicationClientFile object) {
- return null;
- }
-
- public Object caseEJBJarFile(EJBJarFile object) {
- return null;
- }
-
- public Object caseRARFile(RARFile object) {
- return null;
- }
-
- public Object caseArchive(Archive object) {
- return null;
- }
-
- public Object caseFile(File object) {
- return null;
- }
-
- public Object caseReadOnlyDirectory(ReadOnlyDirectory object) {
- return null;
- }
-
- public Object defaultCase(EObject object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseModuleRef(ModuleRef object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseEJBModuleRef(EJBModuleRef object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseWebModuleRef(WebModuleRef object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseClientModuleRef(ClientModuleRef object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseConnectorModuleRef(ConnectorModuleRef object) {
- return null;
- }
-
- /**
- * Returns the result of interpretting the object as an instance of 'J2EEE Object'.
- *
- * This implementation returns null;
- * returning a non-null result will terminate the switch.
- *
- * @param object the target of the switch.
- * @return the result of interpretting the object as an instance of 'J2EEE Object'.
- * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
- * @generated
- */
- public Object caseJ2EEEObject(J2EEEObject object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object doSwitchGen(EObject theEObject) {
- return doSwitch(theEObject.eClass(), theEObject);
- }
-
- /**
- * Calls caseXXX
for each class of the model until one returns a non null result; it yields that result.
- *
- *
- * @return the first non-null result returned by a caseXXX
call.
- * @generated
- */
- protected Object doSwitch(EClass theEClass, EObject theEObject) {
- if (theEClass.eContainer() == modelPackage) {
- return doSwitch(theEClass.getClassifierID(), theEObject);
- }
- else {
- List eSuperTypes = theEClass.getESuperTypes();
- return
- eSuperTypes.isEmpty() ?
- defaultCase(theEObject) :
- doSwitch((EClass)eSuperTypes.get(0), theEObject);
- }
- }
-
- /**
- * Calls caseXXX
for each class of the model until one returns a non null result; it yields that result.
- *
- *
- * @return the first non-null result returned by a caseXXX
call.
- * @generated
- */
- protected Object doSwitch(int classifierID, EObject theEObject) {
- switch (classifierID) {
- case CommonarchivePackage.FILE: {
- File file = (File)theEObject;
- Object result = caseFile(file);
- if (result == null) result = caseJ2EEEObject(file);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.ARCHIVE: {
- Archive archive = (Archive)theEObject;
- Object result = caseArchive(archive);
- if (result == null) result = caseContainer(archive);
- if (result == null) result = caseFile(archive);
- if (result == null) result = caseJ2EEEObject(archive);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.EJB_JAR_FILE: {
- EJBJarFile ejbJarFile = (EJBJarFile)theEObject;
- Object result = caseEJBJarFile(ejbJarFile);
- if (result == null) result = caseModuleFile(ejbJarFile);
- if (result == null) result = caseArchive(ejbJarFile);
- if (result == null) result = caseContainer(ejbJarFile);
- if (result == null) result = caseFile(ejbJarFile);
- if (result == null) result = caseJ2EEEObject(ejbJarFile);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.WAR_FILE: {
- WARFile warFile = (WARFile)theEObject;
- Object result = caseWARFile(warFile);
- if (result == null) result = caseModuleFile(warFile);
- if (result == null) result = caseArchive(warFile);
- if (result == null) result = caseContainer(warFile);
- if (result == null) result = caseFile(warFile);
- if (result == null) result = caseJ2EEEObject(warFile);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.EAR_FILE: {
- EARFile earFile = (EARFile)theEObject;
- Object result = caseEARFile(earFile);
- if (result == null) result = caseModuleFile(earFile);
- if (result == null) result = caseArchive(earFile);
- if (result == null) result = caseContainer(earFile);
- if (result == null) result = caseFile(earFile);
- if (result == null) result = caseJ2EEEObject(earFile);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.APPLICATION_CLIENT_FILE: {
- ApplicationClientFile applicationClientFile = (ApplicationClientFile)theEObject;
- Object result = caseApplicationClientFile(applicationClientFile);
- if (result == null) result = caseModuleFile(applicationClientFile);
- if (result == null) result = caseArchive(applicationClientFile);
- if (result == null) result = caseContainer(applicationClientFile);
- if (result == null) result = caseFile(applicationClientFile);
- if (result == null) result = caseJ2EEEObject(applicationClientFile);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.MODULE_FILE: {
- ModuleFile moduleFile = (ModuleFile)theEObject;
- Object result = caseModuleFile(moduleFile);
- if (result == null) result = caseArchive(moduleFile);
- if (result == null) result = caseContainer(moduleFile);
- if (result == null) result = caseFile(moduleFile);
- if (result == null) result = caseJ2EEEObject(moduleFile);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.CONTAINER: {
- Container container = (Container)theEObject;
- Object result = caseContainer(container);
- if (result == null) result = caseFile(container);
- if (result == null) result = caseJ2EEEObject(container);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.READ_ONLY_DIRECTORY: {
- ReadOnlyDirectory readOnlyDirectory = (ReadOnlyDirectory)theEObject;
- Object result = caseReadOnlyDirectory(readOnlyDirectory);
- if (result == null) result = caseContainer(readOnlyDirectory);
- if (result == null) result = caseFile(readOnlyDirectory);
- if (result == null) result = caseJ2EEEObject(readOnlyDirectory);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.RAR_FILE: {
- RARFile rarFile = (RARFile)theEObject;
- Object result = caseRARFile(rarFile);
- if (result == null) result = caseModuleFile(rarFile);
- if (result == null) result = caseArchive(rarFile);
- if (result == null) result = caseContainer(rarFile);
- if (result == null) result = caseFile(rarFile);
- if (result == null) result = caseJ2EEEObject(rarFile);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.MODULE_REF: {
- ModuleRef moduleRef = (ModuleRef)theEObject;
- Object result = caseModuleRef(moduleRef);
- if (result == null) result = caseJ2EEEObject(moduleRef);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.EJB_MODULE_REF: {
- EJBModuleRef ejbModuleRef = (EJBModuleRef)theEObject;
- Object result = caseEJBModuleRef(ejbModuleRef);
- if (result == null) result = caseModuleRef(ejbModuleRef);
- if (result == null) result = caseJ2EEEObject(ejbModuleRef);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.WEB_MODULE_REF: {
- WebModuleRef webModuleRef = (WebModuleRef)theEObject;
- Object result = caseWebModuleRef(webModuleRef);
- if (result == null) result = caseModuleRef(webModuleRef);
- if (result == null) result = caseJ2EEEObject(webModuleRef);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.CLIENT_MODULE_REF: {
- ClientModuleRef clientModuleRef = (ClientModuleRef)theEObject;
- Object result = caseClientModuleRef(clientModuleRef);
- if (result == null) result = caseModuleRef(clientModuleRef);
- if (result == null) result = caseJ2EEEObject(clientModuleRef);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case CommonarchivePackage.CONNECTOR_MODULE_REF: {
- ConnectorModuleRef connectorModuleRef = (ConnectorModuleRef)theEObject;
- Object result = caseConnectorModuleRef(connectorModuleRef);
- if (result == null) result = caseModuleRef(connectorModuleRef);
- if (result == null) result = caseJ2EEEObject(connectorModuleRef);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- default: return defaultCase(theEObject);
- }
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseContainerGen(Container object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseWARFileGen(WARFile object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseModuleFileGen(ModuleFile object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseApplicationClientFileGen(ApplicationClientFile object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseEARFileGen(EARFile object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseEJBJarFileGen(EJBJarFile object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseRARFileGen(RARFile object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseArchiveGen(Archive object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseFileGen(File object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseReadOnlyDirectoryGen(ReadOnlyDirectory object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object defaultCaseGen(EObject object) {
- return null;
- }
-
-} //CommonarchiveSwitch
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/DeleteOnExitUtility.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/DeleteOnExitUtility.java
deleted file mode 100644
index e92f063c9..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/DeleteOnExitUtility.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.jst.j2ee.commonarchivecore.internal.util;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-
-/**
- * @author jsholl
- *
- * TODO To change the template for this generated type comment go to Window - Preferences - Java -
- * Code Style - Code Templates
- */
-public class DeleteOnExitUtility {
-
- private static Set tempFilesToDelete;
- private static boolean initialized = false;
- private static int cleanupCount = 0;
- private static final int CLEANUP_THRESHOLD = 10000;
-
- public static void markForDeletion(File file) {
- if (!initialized) {
- initialized = true;
- try {
- Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
- public void run() {
- if (tempFilesToDelete != null) {
- synchronized (tempFilesToDelete) {
- Iterator iterator = tempFilesToDelete.iterator();
- File file = null;
- while (iterator.hasNext()) {
- try {
- file = (File) iterator.next();
- if (file.exists()) {
- file.delete();
- }
- } catch (SecurityException e) {
- }
- }
- }
- }
- }
- }));
- tempFilesToDelete = new HashSet();
- } catch (SecurityException e) {
- }
- }
- if (tempFilesToDelete != null) {
- synchronized (tempFilesToDelete) {
- cleanupCount++;
- tempFilesToDelete.add(file);
- }
- if (cleanupCount > CLEANUP_THRESHOLD) {
- runCleanup();
- }
- }
- }
-
- public static void fileHasBeenDeleted(File file) {
- if (tempFilesToDelete != null) {
- synchronized (tempFilesToDelete) {
- cleanupCount++;
- try {
- if (!file.exists()) {
- tempFilesToDelete.remove(file);
- }
- } catch (SecurityException e) {
- }
- }
- if (cleanupCount > CLEANUP_THRESHOLD) {
- runCleanup();
- }
- }
- }
-
- public static void runCleanup() {
- if (tempFilesToDelete != null) {
- synchronized (tempFilesToDelete) {
- cleanupCount = 0;
- List filesToRemove = null;
- Iterator iterator = tempFilesToDelete.iterator();
- File file = null;
- while (iterator.hasNext()) {
- try {
- file = (File) iterator.next();
- if (!file.exists()) {
- if (filesToRemove == null) {
- filesToRemove = new ArrayList();
- }
- filesToRemove.add(file);
- }
- } catch (SecurityException e) {
- }
- }
- if (filesToRemove != null) {
- tempFilesToDelete.removeAll(filesToRemove);
- }
- }
- }
- }
-
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/EARFileUtil.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/EARFileUtil.java
deleted file mode 100644
index c22e9599b..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/EARFileUtil.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.util;
-
-
-import java.io.FileNotFoundException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleFile;
-import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
-import org.eclipse.jst.j2ee.internal.common.XMLResource;
-
-
-public class EARFileUtil {
-
- /**
- * Constructor for EARFileUtil.
- */
- private EARFileUtil() {
- super();
- }
-
- /**
- * Returns a list of all module files which are a spec level too high for the EAR file. If the
- * EAR is 1.3, returns an empty list. Otherwise returns any J2EE 1.3 modules.
- */
- public static List getIncompatible13ModuleFiles(EARFile earFile) {
- if (isJ2EE13(earFile))
- return Collections.EMPTY_LIST;
-
- List moduleFiles = earFile.getModuleFiles();
- List result = new ArrayList();
- for (int i = 0; i < moduleFiles.size(); i++) {
- ModuleFile aModuleFile = (ModuleFile) moduleFiles.get(i);
- if (isJ2EE13(aModuleFile))
- result.add(aModuleFile);
- }
- return result;
- }
-
- /**
- * Returns a list of all module files which are a spec level too high for the EAR file. If the
- * EAR is 1.4, returns an empty list. Otherwise returns any J2EE 1.4 modules.
- */
- public static List getIncompatible14ModuleFiles(EARFile earFile) {
- if (isJ2EE14(earFile))
- return Collections.EMPTY_LIST;
-
- List moduleFiles = earFile.getModuleFiles();
- List result = new ArrayList();
- for (int i = 0; i < moduleFiles.size(); i++) {
- ModuleFile aModuleFile = (ModuleFile) moduleFiles.get(i);
- if (isJ2EE14(aModuleFile))
- result.add(aModuleFile);
- }
- return result;
- }
-
- public static boolean isJ2EE13(ModuleFile aModuleFile) {
- try {
- XMLResource xmlResource = (XMLResource) aModuleFile.getDeploymentDescriptorResource();
- return xmlResource.getJ2EEVersionID() == J2EEVersionConstants.J2EE_1_3_ID;
- } catch (FileNotFoundException ex) {
- return false;
- }
- }
-
- public static boolean isJ2EE14(ModuleFile aModuleFile) {
- try {
- XMLResource xmlResource = (XMLResource) aModuleFile.getDeploymentDescriptorResource();
- return xmlResource.getJ2EEVersionID() == J2EEVersionConstants.J2EE_1_4_ID;
- } catch (FileNotFoundException ex) {
- return false;
- }
- }
-
-
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/FileDups.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/FileDups.java
deleted file mode 100644
index 4caed6ce9..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/FileDups.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.util;
-
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import com.ibm.icu.util.StringTokenizer;
-
-/**
- * Insert the type's description here. Creation date: (4/11/2001 10:28:44 AM)
- *
- * @author: Administrator
- */
-public class FileDups {
- private static int sFiles = 0;
- private static int sDups = 0;
- private static int sJARs = 0;
- private static String[] excludedEntryNames = new String[]{"com/ibm/ivj/ejb/runtime/_CopyHelper_Stub.class", //$NON-NLS-1$
- "org/omg/stub/javax/ejb/_HomeHandle_Stub.class", //$NON-NLS-1$
- "org/omg/stub/javax/ejb/_Handle_Stub.class", //$NON-NLS-1$
- "org/omg/stub/javax/ejb/_EJBObject_Stub.class", //$NON-NLS-1$
- "org/omg/stub/javax/ejb/_EJBHome_Stub.class", //$NON-NLS-1$
- "org/omg/stub/java/lang/_Cloneable_Stub.class", //$NON-NLS-1$
- "com/ibm/websphere/csi/_TransactionalObject_Stub.class", //$NON-NLS-1$
- "com/ibm/websphere/csi/_CSIServant_Stub.class", //$NON-NLS-1$
- "com/ibm/ejs/container/_EJSWrapper_Tie.class", //$NON-NLS-1$
- "com/ibm/ejs/container/_EJSWrapper_Stub.class" //$NON-NLS-1$
- };
- private static HashSet excluded = new HashSet(Arrays.asList(excludedEntryNames));
-
- private static void addEntry(String entry, Map map, String jarName) {
- sFiles++;
-
- Object current = map.get(entry);
- if (current == null) {
- // This is the first time the entry is found
- map.put(entry, jarName);
- } else if (current instanceof String) {
- // There is one other entry
- map.remove(entry);
-
- String other = (String) current;
- LinkedList list = new LinkedList();
- list.addFirst(other);
- list.addFirst(jarName);
- map.put(entry, list);
-
- sDups++;
- } else {
- // There are more than one other instances
- LinkedList list = (LinkedList) current;
- list.addFirst(jarName);
-
- sDups++;
- }
- }
-
- /**
- * Starts the application.
- *
- * @param args
- * an array of command-line arguments
- */
- public static void main(java.lang.String[] args) {
- if (args.length != 1) {
- StringBuffer sb = new StringBuffer();
- sb.append("FileDups utility\r\n\r\n"); //$NON-NLS-1$
- sb.append("Synopsis:\r\n"); //$NON-NLS-1$
- sb.append("Analyzes JAR and ZIP files in a directory for duplicate entries with the same name. This excludes all entries in the \"META-INF\" directory of the archive. This does not check timestamps or size.\r\n\r\n"); //$NON-NLS-1$
- sb.append("Usage: FileDups dirName\r\n"); //$NON-NLS-1$
- System.out.println(sb.toString());
- return;
- }
-
- TreeMap map = new TreeMap();
-
- try {
- for (int i = 0; i < args.length; i++) {
- File root = new File(args[i]);
- processDirectory(root, map);
- }
-
- TreeMap outputMap = new TreeMap();
-
- Set set = map.entrySet();
- Iterator it = set.iterator();
- while (it.hasNext()) {
- Map.Entry me = (Map.Entry) it.next();
- Object o = me.getValue();
- if (o instanceof LinkedList) {
- StringBuffer jars = new StringBuffer();
-
- LinkedList list = (LinkedList) o;
- Iterator entryIter = list.iterator();
- while (entryIter.hasNext()) {
- jars.append(entryIter.next());
- jars.append("\r\n"); //$NON-NLS-1$
- }
-
- LinkedList outputList = (LinkedList) outputMap.get(jars.toString());
- if (outputList == null) {
- outputList = new LinkedList();
- outputMap.put(jars.toString(), outputList);
- }
- outputList.addFirst(me.getKey());
- }
- }
-
- Set outSet = outputMap.entrySet();
- it = outSet.iterator();
- while (it.hasNext()) {
- Map.Entry me = (Map.Entry) it.next();
- String jars = (String) me.getKey();
- StringTokenizer tokens = new StringTokenizer(jars, "\r\n"); //$NON-NLS-1$
-
- while (tokens.hasMoreTokens()) {
- System.out.println(tokens.nextToken());
- }
-
- LinkedList list = (LinkedList) me.getValue();
- Iterator entryIter = list.iterator();
- while (entryIter.hasNext()) {
- System.out.println(" " + (String) entryIter.next()); //$NON-NLS-1$
- }
- }
-
- System.out.println("\r\nSearched " + sJARs + " jars, found " + sDups + " dups in " + sFiles + " files."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- } catch (Exception x) {
- x.printStackTrace();
- }
- }
-
- private static void processDirectory(File root, Map map) throws java.io.IOException {
- File[] files = root.listFiles();
- for (int i = 0; i < files.length; i++) {
- File f = files[i];
- if (f.isDirectory())
- processDirectory(f, map);
- else {
- String name = f.getName().toLowerCase();
- if (name.endsWith(".zip") || name.endsWith(".jar")) //$NON-NLS-1$ //$NON-NLS-2$
- {
- processFile(f, map);
- }
- }
- }
- }
-
- private static void processFile(File file, Map map) throws java.io.IOException {
- HashSet filesInFile = new HashSet();
-
- sJARs++;
- ZipFile zip = null;
- try {
- zip = new ZipFile(file);
- Enumeration eNum = zip.entries();
- while (eNum.hasMoreElements()) {
- ZipEntry entry = (ZipEntry) eNum.nextElement();
- String name = entry.getName();
- if (!name.startsWith("META-INF") && !excluded.contains(name)) //$NON-NLS-1$
- filesInFile.add(name);
- }
- } catch (Exception x) {
- System.out.println("*Error searching in " + file.getAbsolutePath()); //$NON-NLS-1$
- } finally {
- try {
- if (zip != null)
- zip.close();
- } catch (java.io.IOException ignored) {
- //Ignore
- }
- }
-
- // Now add the packages to the map
- String filename = file.getPath();
-
- Iterator it = filesInFile.iterator();
- while (it.hasNext()) {
- String entryName = (String) it.next();
- addEntry(entryName, map, filename);
- }
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ObjectInputStreamCustomResolver.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ObjectInputStreamCustomResolver.java
deleted file mode 100644
index 76cef83c1..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ObjectInputStreamCustomResolver.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.internal.util;
-
-
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectStreamClass;
-import java.io.StreamCorruptedException;
-import java.lang.reflect.Array;
-
-public class ObjectInputStreamCustomResolver extends java.io.ObjectInputStream {
- private ClassLoader cl;
-
- /**
- * Constructor
- */
-
- public ObjectInputStreamCustomResolver(InputStream is, ClassLoader loader) throws IOException, StreamCorruptedException {
-
- super(is);
-
- if (loader != null)
- cl = loader;
-
- }
-
- /**
- * Gets the java type class given a signature letter.
- */
-
- private Class getType(char type) {
-
- switch (type) {
- case 'B' :
- return byte.class;
- case 'C' :
- return char.class;
- case 'D' :
- return double.class;
- case 'F' :
- return float.class;
- case 'I' :
- return int.class;
- case 'J' :
- return long.class;
- case 'S' :
- return short.class;
- case 'Z' :
- return boolean.class;
- default :
- return null;
- }
-
- }
-
- /**
- * This overrides the default resolveClass() method to use a custom class loader.
- */
-
- protected Class resolveClass(ObjectStreamClass classDesc) throws IOException, ClassNotFoundException {
-
- String className = classDesc.getName();
-
- //UtilsTrace.trace(" ObjectInputStreamCustomResolver: Resolving " + className);
-
- // Handle arrays of classes differently
-
- if (className.startsWith("[")) {//$NON-NLS-1$
-
- Class component = null;
- int dimNum;
-
- for (dimNum = 1; className.charAt(dimNum) == '['; dimNum++)
-
- if (className.charAt(dimNum) == 'L') {
- component = cl.loadClass(className.substring(dimNum + 1, className.length() - 1));
- } else {
- if (className.length() != dimNum + 1)
- throw new ClassNotFoundException(className); // malformed
- component = getType(className.charAt(dimNum));
- }
-
- int dimensions[] = new int[dimNum];
- for (int i = 0; i < dimNum; i++)
- dimensions[i] = 0;
-
- return Array.newInstance(component, dimensions).getClass();
-
- }
- return cl.loadClass(className);
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/RarFileDynamicClassLoader.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/RarFileDynamicClassLoader.java
deleted file mode 100644
index 832c099a7..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/RarFileDynamicClassLoader.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *******************************************************************************/
-/*
- * Created on Jun 2, 2003
- *
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-package org.eclipse.jst.j2ee.commonarchivecore.internal.util;
-
-import java.security.ProtectionDomain;
-import java.util.List;
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.File;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.RARFile;
-
-public class RarFileDynamicClassLoader extends ArchiveFileDynamicClassLoader {
-
- public RarFileDynamicClassLoader(Archive anArchive, ClassLoader parentCl, ClassLoader extraCl, ProtectionDomain pDomain) {
- super(anArchive, parentCl, extraCl, pDomain);
- }
-
- public RarFileDynamicClassLoader(Archive anArchive, ClassLoader parentCl, ClassLoader extraCl) {
- super(anArchive, parentCl, extraCl);
- }
-
- protected File getFile(String name) {
- List children = getRarFile().getArchiveFiles();
- for (int i = 0; i < children.size(); i++) {
- try {
- return ((Archive) children.get(i)).getFile(name);
- } catch (java.io.FileNotFoundException ex) {
- continue;
- }
- }
- return getFileFromDependentJar(name);
- }
-
- private RARFile getRarFile() {
- return (RARFile) getArchive();
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/WarFileDynamicClassLoader.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/WarFileDynamicClassLoader.java
deleted file mode 100644
index 1c24c7259..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/WarFileDynamicClassLoader.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *******************************************************************************/
-/*
- * Created on Jun 23, 2003
- *
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-package org.eclipse.jst.j2ee.commonarchivecore.internal.util;
-
-import java.security.ProtectionDomain;
-import java.util.List;
-
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.File;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.WARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveConstants;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveOptions;
-
-
-/**
- * @author dfholttp
- *
- * To change the template for this generated type comment go to Window>Preferences>Java>Code
- * Generation>Code and Comments
- */
-public class WarFileDynamicClassLoader extends ArchiveFileDynamicClassLoader {
-
- private boolean allowLoadingFromWAR = true;
-
- public WarFileDynamicClassLoader(Archive anArchive, ClassLoader parentCl, ClassLoader extraCl, ProtectionDomain pDomain) {
- super(anArchive, parentCl, extraCl, pDomain);
- allowLoadingFromWAR = anArchive.getOptions().getClassLoadingMode() == ArchiveOptions.LOAD_MODE_COMPAT;
- }
-
- public WarFileDynamicClassLoader(Archive anArchive, ClassLoader parentCl, ClassLoader extraCl) {
- this(anArchive, parentCl, extraCl, null);
- }
-
- protected File getFile(String name) {
- //search classes directory first, then war, then nested archives.
- //search classes directory
- String swizzledName = ArchiveUtil.concatUri(ArchiveConstants.WEBAPP_CLASSES_URI, name, '/');
- try {
- return getWarFile().getFile(swizzledName);
- } catch (java.io.FileNotFoundException ex) {
- }
- //search war if running with compatibility
- if (allowLoadingFromWAR) {
- File file = getFileFromArchive(name);
- if (file != null) {
- return file;
- }
- }
- //search nested archives
- List children = getWarFile().getLibs();
- for (int i = 0; i < children.size(); i++) {
- try {
- return ((Archive) children.get(i)).getFile(name);
- } catch (java.io.FileNotFoundException ex) {
- continue;
- }
- }
- //finally search jars in ear
- return getFileFromDependentJar(name);
- }
-
- private WARFile getWarFile() {
- return (WARFile) getArchive();
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseApplication.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseApplication.java
deleted file mode 100644
index e32caabdf..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseApplication.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.looseconfig.internal;
-
-
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * @generated
- */
-public interface LooseApplication extends LooseArchive {
- /**
- * @generated This field/method will be replaced during code generation
- * @return The list of LooseArchives references
- */
- EList getLooseArchives();
-
-} //LooseApplication
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseArchive.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseArchive.java
deleted file mode 100644
index 0e17a4b05..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseArchive.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.looseconfig.internal;
-
-
-
-import org.eclipse.jst.j2ee.common.J2EEEObject;
-
-/**
- * @generated
- */
-public interface LooseArchive extends J2EEEObject {
- /**
- * @generated This field/method will be replaced during code generation
- * @return The value of the Uri attribute
- */
- String getUri();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @param value
- * The new value of the Uri attribute
- */
- void setUri(String value);
-
- boolean isEAR();
-
- boolean isWAR();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return The value of the BinariesPath attribute
- */
- String getBinariesPath();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @param value
- * The new value of the BinariesPath attribute
- */
- void setBinariesPath(String value);
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return The value of the ResourcesPath attribute
- */
- String getResourcesPath();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @param value
- * The new value of the ResourcesPath attribute
- */
- void setResourcesPath(String value);
-
- /**
- * @generated This field/method will be replaced during code generation
- * @return The LooseApp reference
- */
- LooseApplication getLooseApp();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @param l
- * The new value of the LooseApp reference
- */
- void setLooseApp(LooseApplication value);
-
- boolean isModule();
-
-} //LooseArchive
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseConfigRegister.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseConfigRegister.java
deleted file mode 100644
index 17c670796..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseConfigRegister.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.looseconfig.internal;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.jst.j2ee.application.Module;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Container;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveRuntimeException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveUtil;
-import org.eclipse.wst.common.internal.emf.utilities.StringUtil;
-
-
-/**
- * Used internally for loose module support
- */
-public class LooseConfigRegister {
-
- /**
- * The system property used to specify the absolute path to the loose config document;
- * "was.loose.config"
- */
- public static final String LOOSE_CONFIG_PROPERTY = "was.loose.config"; //$NON-NLS-1$
-
- protected static LooseConfigRegister singleton;
-
- protected LooseConfiguration looseConfiguration;
-
- protected ResourceSet resourceSet;
-
- /** Have we previously loaded or tried to load the loose configuration? */
- protected boolean loadAttempted = false;
-
- private Map looseEarMap;
-
- /**
- * Constructor for LooseConfigRegister.
- */
- protected LooseConfigRegister() {
- super();
- initialize();
- }
-
- public static LooseConfigRegister singleton() {
- if (singleton == null)
- singleton = new LooseConfigRegister();
-
- return singleton;
- }
-
- /**
- * Searches for the ear file in the fluffed LooseConfiguration object, and attempts to load the
- * LooseApplication on demand from the existing mappings if it is not already loaded.
- *
- * @param earFileURI
- * @return
- */
- public LooseApplication findLooseApplication(String earFileURI) {
- // System.out.println(getClass().getName() + ".findLooseApplication(String
- // earFileURI=\""+earFileURI+"\")");
- if (getLooseConfiguration() != null) {
- List apps = getLooseConfiguration().getApplications();
- for (int i = 0; i < apps.size(); i++) {
- LooseApplication app = (LooseApplication) apps.get(i);
- // System.out.println(getClass().getName() + ".findLooseApplication():
- // app["+i+"].getURI()=\""+app.getUri()+"\"" );
- if (app.getUri().equals(earFileURI))
- return app;
- }
- }
- // System.out.println(getClass().getName() + ".findLooseApplication(): did not find loaded
- // LooseApplication, loading new value." );
- if (getDocumentURI() == null || getDocumentURI().trim().length() == 0) {
- URI looseConfig = (URI) getLooseEarMap().get(earFileURI);
- // System.out.println(getClass().getName() + ".findLooseApplication(): looseConfig URI
- // from map \""+looseConfig+"\"");
- LooseApplication application = loadLooseApplication(looseConfig);
- // System.out.println(getClass().getName() + ".findLooseApplication():
- // looseApplication="+application);
- if (application != null) {
- List modules = application.getLooseArchives();
- // System.out.println(getClass().getName() + ".findLooseApplication():
- // looseApplication contains " + modules.size() + " modules.");
- for (int i = 0; i < modules.size(); i++)
- // System.out.println(getClass().getName() + ".findLooseApplication():
- // modules.get("+i+"):"+ modules.get(i));
- getLooseConfiguration().getApplications().add(application);
- return application;
- }
- }
- return null;
- }
-
- /**
- * @param earFileURI
- * The containing EAR -- the absolute file system URI will be determined
- * automatically
- * @param looseApplicationResource
- * The absolute file system URI of a document containing a LooseApplication as its
- * root
- */
- public void addLooseMapping(Container container, String looseApplicationResource) {
- if (container != null)
- addLooseMapping(ArchiveUtil.getOSUri(container.getURI()), looseApplicationResource);
- }
-
- /**
- * @param earFileURI
- * The absolute file system URI of the EAR file of the given mapping
- * @param looseApplicationResource
- * The absolute file system URI of a document containing a LooseApplication as its
- * root
- */
- public void addLooseMapping(String earFileURI, String looseApplicationResource) {
- if (earFileURI != null) {
- // System.out.println(getClass().getName() + ".addLooseMapping(String
- // earFileURI=\""+earFileURI+"\", String
- // looseApplicationResource=\""+looseApplicationResource+"\")");
- if (getLooseEarMap().containsKey(earFileURI)) {
- // System.out.println(getClass().getName() + ".addLooseMapping(): Found existing key
- // with same earFileURI, looking for loaded app.");
- LooseApplication app = findLooseApplicationIfLoaded(earFileURI);
- // System.out.println(getClass().getName() + ".addLooseMapping(): Loaded app=" +
- // app);
- if (app != null) {
- Resource res = loadLooseApplicationResource(URI.createURI(looseApplicationResource));
- // System.out.println(getClass().getName() + ".addLooseMapping(): clearing
- // resource:" + res);
- res.unload();
- removeLooseApplication(app);
- }
- }
- getLooseEarMap().put(earFileURI, URI.createURI(looseApplicationResource));
- }
- }
-
- /**
- * @param earFileURI
- * @return
- */
- public LooseApplication findLooseApplicationIfLoaded(String earFileURI) {
- // System.out.println(getClass().getName() + ".findLooseApplicationIfLoaded(String
- // earFileURI=\""+earFileURI+"\")");
- if (getLooseConfiguration() != null) {
- List apps = getLooseConfiguration().getApplications();
- for (int i = 0; i < apps.size(); i++) {
- LooseApplication app = (LooseApplication) apps.get(i);
- // System.out.println(getClass().getName() + ".findLooseApplicationIfLoaded():
- // app["+i+"].getURI()=\""+app.getUri()+"\"" );
- if (app.getUri().equals(earFileURI))
- return app;
- }
- }
- return null;
- }
-
- /**
- * Allows adding LooseApplications dynmically.
- *
- * @param application
- * An application created and persisted by an external entity
- */
- public void addLooseApplication(LooseApplication application) {
- getLooseConfiguration().getApplications().add(application);
- }
-
- /**
- * Allows removing LooseApplications dynmically.
- *
- * @param application
- * An application created and persisted by an external entity
- */
- public void removeLooseApplication(LooseApplication application) {
- // System.out.println(getClass().getName() + ".removeLooseApplication(LooseApplication
- // application=\""+application+"\")");
- getLooseConfiguration().getApplications().remove(application);
- }
-
- /**
- * @param earFileURI
- * The absolute file system URI of the EAR file of the given mapping
- */
- public void removeLooseMapping(String earFileURI) {
- // System.out.println(getClass().getName() + ".removeLooseMapping(String
- // earFileURI=\""+earFileURI+"\")");
- if (earFileURI != null)
- getLooseEarMap().remove(earFileURI);
- }
-
- public LooseModule findLooseModule(LooseApplication app, String uri, String altDD) {
- List archives = app.getLooseArchives();
- for (int i = 0; i < archives.size(); i++) {
- LooseArchive element = (LooseArchive) archives.get(i);
- if (!element.isModule())
- continue;
-
- if (StringUtil.stringsEqual(uri, element.getUri()) && StringUtil.stringsEqual(altDD, ((LooseModule) element).getAltDD()))
- return (LooseModule) element;
- }
- return null;
- }
-
- public LooseModule findLooseModule(Module m, EARFile ear) {
- LooseApplication app = findLooseApplication(ear.getURI());
- return app == null ? null : findLooseModule(app, m.getUri(), m.getAltDD());
- }
-
- /**
- * Clears the loose configuration; the next time it is requested it will be reloaded;
- */
- public void flush() {
- loadAttempted = false;
- looseConfiguration = null;
- resourceSet = new ResourceSetImpl();
- }
-
- protected void initialize() {
- resourceSet = new ResourceSetImpl();
- }
-
- protected void loadLooseConfiguration() {
- Resource res = loadLooseConfigurationResource();
- if (res != null && !res.getContents().isEmpty())
- setLooseConfiguration((LooseConfiguration) res.getContents().get(0));
- else
- /*
- * if the document is empty then fluff up a LooseConfiguration object
- */
- setLooseConfiguration(LooseconfigFactory.eINSTANCE.createLooseConfiguration());
- loadAttempted = true;
- }
-
- protected Resource loadLooseConfigurationResource() {
- String uri = getDocumentURI();
- if (ArchiveUtil.isNullOrEmpty(uri))
- return null;
- try {
- return resourceSet.getResource(URI.createURI(uri), true);
- } catch (Exception ex) {
- throw new ArchiveRuntimeException("Exception occurred loading loose configuration", ex); //$NON-NLS-1$
- }
- }
-
- protected LooseApplication loadLooseApplication(URI looseAppURI) {
- Resource res = loadLooseApplicationResource(looseAppURI);
- if (res != null && !res.getContents().isEmpty())
- return (LooseApplication) res.getContents().get(0);
- return null;
- }
-
- protected Resource loadLooseApplicationResource(URI looseConfigURI) {
- if (looseConfigURI == null)
- return null;
- try {
- return resourceSet.getResource(looseConfigURI, true);
- } catch (Exception ex) {
- throw new ArchiveRuntimeException("Exception occurred loading loose application", ex); //$NON-NLS-1$
- }
- }
-
- /**
- * Gets the looseConfiguration. Basic accessor with no initialization
- *
- * @return Returns a LooseConfiguration
- */
- public LooseConfiguration primGetLooseConfiguration() {
- return looseConfiguration;
- }
-
- /** The value of the loose config property */
- protected String getDocumentURI() {
- return System.getProperty(LOOSE_CONFIG_PROPERTY);
- }
-
- /**
- * Gets the looseConfiguration. Tries to load it using the system property was.loose.config, if
- * necessary.
- *
- * @return Returns a LooseConfiguration or null
- */
- public LooseConfiguration getLooseConfiguration() {
- if (looseConfiguration == null && !loadAttempted)
- loadLooseConfiguration();
- return looseConfiguration;
- }
-
- /**
- * Assumption: the parameter must be a type that can have children, e.g., LooseWAR or
- * LooseApplication
- */
- public List getLooseChildren(LooseArchive loose) {
- if (loose != null) {
- if (loose.isEAR())
- return ((LooseApplication) loose).getLooseArchives();
- else if (loose.isWAR())
- return ((LooseWARFile) loose).getLooseLibs();
- }
- return Collections.EMPTY_LIST;
- }
-
- /**
- * Assumption: the parameter must be a type that can have children, e.g., LooseWAR or
- * LooseApplication
- */
- public LooseArchive findFirstLooseChild(String uri, LooseArchive loose) {
- List children = getLooseChildren(loose);
- for (int i = 0; i < children.size(); i++) {
- LooseArchive child = (LooseArchive) children.get(i);
- if (StringUtil.stringsEqual(uri, child.getUri()))
- return loose;
- }
- return null;
- }
-
- /**
- * Sets the looseConfiguration.
- *
- * @param looseConfiguration
- * The looseConfiguration to set
- */
- public void setLooseConfiguration(LooseConfiguration config) {
- looseConfiguration = config;
- }
-
- /**
- * Have we previously loaded or tried to load the loose configuration?
- *
- * @return Returns a boolean
- */
- public boolean getLoadAttempted() {
- return loadAttempted;
- }
-
- /**
- * @return Returns the looseEarMap.
- */
- public Map getLooseEarMap() {
- if (looseEarMap == null)
- looseEarMap = new HashMap();
- return looseEarMap;
- }
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseConfiguration.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseConfiguration.java
deleted file mode 100644
index 54564e130..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseConfiguration.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.looseconfig.internal;
-
-
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jst.j2ee.common.J2EEEObject;
-
-/**
- * @generated
- */
-public interface LooseConfiguration extends J2EEEObject {
- /**
- * @generated This field/method will be replaced during code generation
- * @return The list of Applications references
- */
- EList getApplications();
-
-} //LooseConfiguration
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseLibrary.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseLibrary.java
deleted file mode 100644
index 8c1ffd0e6..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseLibrary.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.looseconfig.internal;
-
-/**
- * @generated
- */
-public interface LooseLibrary extends LooseArchive {
- /**
- * @generated This field/method will be replaced during code generation
- * @return The LooseWAR reference
- */
- LooseWARFile getLooseWAR();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @param l
- * The new value of the LooseWAR reference
- */
- void setLooseWAR(LooseWARFile value);
-
-} //LooseLibrary
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseModule.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseModule.java
deleted file mode 100644
index 84e2f1578..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseModule.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.looseconfig.internal;
-
-/**
- * @generated
- */
-public interface LooseModule extends LooseArchive {
- /**
- * @generated This field/method will be replaced during code generation
- * @return The value of the AltDD attribute
- */
- String getAltDD();
-
- /**
- * @generated This field/method will be replaced during code generation
- * @param value
- * The new value of the AltDD attribute
- */
- void setAltDD(String value);
-
-} //LooseModule
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseWARFile.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseWARFile.java
deleted file mode 100644
index a7002db05..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseWARFile.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.looseconfig.internal;
-
-
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * @generated
- */
-public interface LooseWARFile extends LooseModule {
- /**
- * @generated This field/method will be replaced during code generation
- * @return The list of LooseLibs references
- */
- EList getLooseLibs();
-
-} //LooseWARFile
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseconfigFactory.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseconfigFactory.java
deleted file mode 100644
index 2c08c0996..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseconfigFactory.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- *
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.LooseconfigFactory
- * @model kind="package"
- * @generated
- */
-public interface LooseconfigPackage extends EPackage {
- /**
- * The package name.
- *
- *
- * @generated
- */
- String eNAME = "looseconfig";
-
- /**
- * The package namespace URI.
- *
- *
- * @generated
- */
- String eNS_URI = "commonarchive.looseconfig.xmi";
-
- /**
- * The package namespace name.
- *
- *
- * @generated
- */
- String eNS_PREFIX = "org.eclipse.jst.j2ee.commonarchivecore.looseconfig";
-
- /**
- * The singleton instance of the package.
- *
- *
- * @generated
- */
- LooseconfigPackage eINSTANCE = org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseconfigPackageImpl.init();
-
- /**
- * The meta object id for the '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseArchiveImpl Loose Archive}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseArchiveImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseconfigPackageImpl#getLooseArchive()
- * @generated
- */
- int LOOSE_ARCHIVE = 1;
-
- /**
- * The feature id for the 'Uri' attribute.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_ARCHIVE__URI = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 0;
-
- /**
- * The feature id for the 'Binaries Path' attribute.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_ARCHIVE__BINARIES_PATH = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 1;
-
- /**
- * The feature id for the 'Resources Path' attribute.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_ARCHIVE__RESOURCES_PATH = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 2;
-
- /**
- * The feature id for the 'Loose App' container reference.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_ARCHIVE__LOOSE_APP = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 3;
-
- /**
- * The number of structural features of the 'Loose Archive' class.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_ARCHIVE_FEATURE_COUNT = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 4;
-
- /**
- * The meta object id for the '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseApplicationImpl Loose Application}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseApplicationImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseconfigPackageImpl#getLooseApplication()
- * @generated
- */
- int LOOSE_APPLICATION = 0;
-
- /**
- * The feature id for the 'Uri' attribute.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_APPLICATION__URI = LOOSE_ARCHIVE__URI;
-
- /**
- * The feature id for the 'Binaries Path' attribute.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_APPLICATION__BINARIES_PATH = LOOSE_ARCHIVE__BINARIES_PATH;
-
- /**
- * The feature id for the 'Resources Path' attribute.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_APPLICATION__RESOURCES_PATH = LOOSE_ARCHIVE__RESOURCES_PATH;
-
- /**
- * The feature id for the 'Loose App' container reference.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_APPLICATION__LOOSE_APP = LOOSE_ARCHIVE__LOOSE_APP;
-
- /**
- * The feature id for the 'Loose Archives' containment reference list.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_APPLICATION__LOOSE_ARCHIVES = LOOSE_ARCHIVE_FEATURE_COUNT + 0;
-
- /**
- * The number of structural features of the 'Loose Application' class.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_APPLICATION_FEATURE_COUNT = LOOSE_ARCHIVE_FEATURE_COUNT + 1;
-
- /**
- * The meta object id for the '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseLibraryImpl Loose Library}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseLibraryImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseconfigPackageImpl#getLooseLibrary()
- * @generated
- */
- int LOOSE_LIBRARY = 2;
-
- /**
- * The feature id for the 'Uri' attribute.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_LIBRARY__URI = LOOSE_ARCHIVE__URI;
-
- /**
- * The feature id for the 'Binaries Path' attribute.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_LIBRARY__BINARIES_PATH = LOOSE_ARCHIVE__BINARIES_PATH;
-
- /**
- * The feature id for the 'Resources Path' attribute.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_LIBRARY__RESOURCES_PATH = LOOSE_ARCHIVE__RESOURCES_PATH;
-
- /**
- * The feature id for the 'Loose App' container reference.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_LIBRARY__LOOSE_APP = LOOSE_ARCHIVE__LOOSE_APP;
-
- /**
- * The feature id for the 'Loose WAR' container reference.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_LIBRARY__LOOSE_WAR = LOOSE_ARCHIVE_FEATURE_COUNT + 0;
-
- /**
- * The number of structural features of the 'Loose Library' class.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_LIBRARY_FEATURE_COUNT = LOOSE_ARCHIVE_FEATURE_COUNT + 1;
-
- /**
- * The meta object id for the '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseModuleImpl Loose Module}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseModuleImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseconfigPackageImpl#getLooseModule()
- * @generated
- */
- int LOOSE_MODULE = 3;
-
- /**
- * The feature id for the 'Uri' attribute.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_MODULE__URI = LOOSE_ARCHIVE__URI;
-
- /**
- * The feature id for the 'Binaries Path' attribute.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_MODULE__BINARIES_PATH = LOOSE_ARCHIVE__BINARIES_PATH;
-
- /**
- * The feature id for the 'Resources Path' attribute.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_MODULE__RESOURCES_PATH = LOOSE_ARCHIVE__RESOURCES_PATH;
-
- /**
- * The feature id for the 'Loose App' container reference.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_MODULE__LOOSE_APP = LOOSE_ARCHIVE__LOOSE_APP;
-
- /**
- * The feature id for the 'Alt DD' attribute.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_MODULE__ALT_DD = LOOSE_ARCHIVE_FEATURE_COUNT + 0;
-
- /**
- * The number of structural features of the 'Loose Module' class.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_MODULE_FEATURE_COUNT = LOOSE_ARCHIVE_FEATURE_COUNT + 1;
-
- /**
- * The meta object id for the '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseConfigurationImpl Loose Configuration}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseConfigurationImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseconfigPackageImpl#getLooseConfiguration()
- * @generated
- */
- int LOOSE_CONFIGURATION = 4;
-
- /**
- * The feature id for the 'Applications' containment reference list.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_CONFIGURATION__APPLICATIONS = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 0;
-
- /**
- * The number of structural features of the 'Loose Configuration' class.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_CONFIGURATION_FEATURE_COUNT = CommonPackage.J2EEE_OBJECT_FEATURE_COUNT + 1;
-
- /**
- * The meta object id for the '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseWARFileImpl Loose WAR File}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseWARFileImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseconfigPackageImpl#getLooseWARFile()
- * @generated
- */
- int LOOSE_WAR_FILE = 5;
-
- /**
- * The feature id for the 'Uri' attribute.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_WAR_FILE__URI = LOOSE_MODULE__URI;
-
- /**
- * The feature id for the 'Binaries Path' attribute.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_WAR_FILE__BINARIES_PATH = LOOSE_MODULE__BINARIES_PATH;
-
- /**
- * The feature id for the 'Resources Path' attribute.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_WAR_FILE__RESOURCES_PATH = LOOSE_MODULE__RESOURCES_PATH;
-
- /**
- * The feature id for the 'Loose App' container reference.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_WAR_FILE__LOOSE_APP = LOOSE_MODULE__LOOSE_APP;
-
- /**
- * The feature id for the 'Alt DD' attribute.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_WAR_FILE__ALT_DD = LOOSE_MODULE__ALT_DD;
-
- /**
- * The feature id for the 'Loose Libs' containment reference list.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_WAR_FILE__LOOSE_LIBS = LOOSE_MODULE_FEATURE_COUNT + 0;
-
- /**
- * The number of structural features of the 'Loose WAR File' class.
- *
- *
- * @generated
- * @ordered
- */
- int LOOSE_WAR_FILE_FEATURE_COUNT = LOOSE_MODULE_FEATURE_COUNT + 1;
-
-
- /**
- * Returns the meta object for class '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseApplication Loose Application}'.
- *
- *
- * @return the meta object for class 'Loose Application'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseApplication
- * @generated
- */
- EClass getLooseApplication();
-
- /**
- * Returns the meta object for the containment reference list '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseApplication#getLooseArchives Loose Archives}'.
- *
- *
- * @return the meta object for the containment reference list 'Loose Archives'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseApplication#getLooseArchives()
- * @see #getLooseApplication()
- * @generated
- */
- EReference getLooseApplication_LooseArchives();
-
- /**
- * Returns the meta object for class '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive Loose Archive}'.
- *
- *
- * @return the meta object for class 'Loose Archive'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive
- * @generated
- */
- EClass getLooseArchive();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive#getUri Uri}'.
- *
- *
- * @return the meta object for the attribute 'Uri'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive#getUri()
- * @see #getLooseArchive()
- * @generated
- */
- EAttribute getLooseArchive_Uri();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive#getBinariesPath Binaries Path}'.
- *
- *
- * @return the meta object for the attribute 'Binaries Path'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive#getBinariesPath()
- * @see #getLooseArchive()
- * @generated
- */
- EAttribute getLooseArchive_BinariesPath();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive#getResourcesPath Resources Path}'.
- *
- *
- * @return the meta object for the attribute 'Resources Path'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive#getResourcesPath()
- * @see #getLooseArchive()
- * @generated
- */
- EAttribute getLooseArchive_ResourcesPath();
-
- /**
- * Returns the meta object for the container reference '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive#getLooseApp Loose App}'.
- *
- *
- * @return the meta object for the container reference 'Loose App'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive#getLooseApp()
- * @see #getLooseArchive()
- * @generated
- */
- EReference getLooseArchive_LooseApp();
-
- /**
- * Returns the meta object for class '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseLibrary Loose Library}'.
- *
- *
- * @return the meta object for class 'Loose Library'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseLibrary
- * @generated
- */
- EClass getLooseLibrary();
-
- /**
- * Returns the meta object for the container reference '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseLibrary#getLooseWAR Loose WAR}'.
- *
- *
- * @return the meta object for the container reference 'Loose WAR'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseLibrary#getLooseWAR()
- * @see #getLooseLibrary()
- * @generated
- */
- EReference getLooseLibrary_LooseWAR();
-
- /**
- * Returns the meta object for class '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseModule Loose Module}'.
- *
- *
- * @return the meta object for class 'Loose Module'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseModule
- * @generated
- */
- EClass getLooseModule();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseModule#getAltDD Alt DD}'.
- *
- *
- * @return the meta object for the attribute 'Alt DD'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseModule#getAltDD()
- * @see #getLooseModule()
- * @generated
- */
- EAttribute getLooseModule_AltDD();
-
- /**
- * Returns the meta object for class '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseConfiguration Loose Configuration}'.
- *
- *
- * @return the meta object for class 'Loose Configuration'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseConfiguration
- * @generated
- */
- EClass getLooseConfiguration();
-
- /**
- * Returns the meta object for the containment reference list '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseConfiguration#getApplications Applications}'.
- *
- *
- * @return the meta object for the containment reference list 'Applications'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseConfiguration#getApplications()
- * @see #getLooseConfiguration()
- * @generated
- */
- EReference getLooseConfiguration_Applications();
-
- /**
- * Returns the meta object for class '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseWARFile Loose WAR File}'.
- *
- *
- * @return the meta object for class 'Loose WAR File'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseWARFile
- * @generated
- */
- EClass getLooseWARFile();
-
- /**
- * Returns the meta object for the containment reference list '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseWARFile#getLooseLibs Loose Libs}'.
- *
- *
- * @return the meta object for the containment reference list 'Loose Libs'.
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseWARFile#getLooseLibs()
- * @see #getLooseWARFile()
- * @generated
- */
- EReference getLooseWARFile_LooseLibs();
-
- /**
- * Returns the factory that creates the instances of the model.
- *
- *
- * @return the factory that creates the instances of the model.
- * @generated
- */
- LooseconfigFactory getLooseconfigFactory();
-
- /**
- *
- * Defines literals for the meta objects that represent
- *
- *
- *
- * @generated
- */
- interface Literals {
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseApplicationImpl Loose Application}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseApplicationImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseconfigPackageImpl#getLooseApplication()
- * @generated
- */
- EClass LOOSE_APPLICATION = eINSTANCE.getLooseApplication();
-
- /**
- * The meta object literal for the 'Loose Archives' containment reference list feature.
- *
- *
- * @generated
- */
- EReference LOOSE_APPLICATION__LOOSE_ARCHIVES = eINSTANCE.getLooseApplication_LooseArchives();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseArchiveImpl Loose Archive}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseArchiveImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseconfigPackageImpl#getLooseArchive()
- * @generated
- */
- EClass LOOSE_ARCHIVE = eINSTANCE.getLooseArchive();
-
- /**
- * The meta object literal for the 'Uri' attribute feature.
- *
- *
- * @generated
- */
- EAttribute LOOSE_ARCHIVE__URI = eINSTANCE.getLooseArchive_Uri();
-
- /**
- * The meta object literal for the 'Binaries Path' attribute feature.
- *
- *
- * @generated
- */
- EAttribute LOOSE_ARCHIVE__BINARIES_PATH = eINSTANCE.getLooseArchive_BinariesPath();
-
- /**
- * The meta object literal for the 'Resources Path' attribute feature.
- *
- *
- * @generated
- */
- EAttribute LOOSE_ARCHIVE__RESOURCES_PATH = eINSTANCE.getLooseArchive_ResourcesPath();
-
- /**
- * The meta object literal for the 'Loose App' container reference feature.
- *
- *
- * @generated
- */
- EReference LOOSE_ARCHIVE__LOOSE_APP = eINSTANCE.getLooseArchive_LooseApp();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseLibraryImpl Loose Library}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseLibraryImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseconfigPackageImpl#getLooseLibrary()
- * @generated
- */
- EClass LOOSE_LIBRARY = eINSTANCE.getLooseLibrary();
-
- /**
- * The meta object literal for the 'Loose WAR' container reference feature.
- *
- *
- * @generated
- */
- EReference LOOSE_LIBRARY__LOOSE_WAR = eINSTANCE.getLooseLibrary_LooseWAR();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseModuleImpl Loose Module}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseModuleImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseconfigPackageImpl#getLooseModule()
- * @generated
- */
- EClass LOOSE_MODULE = eINSTANCE.getLooseModule();
-
- /**
- * The meta object literal for the 'Alt DD' attribute feature.
- *
- *
- * @generated
- */
- EAttribute LOOSE_MODULE__ALT_DD = eINSTANCE.getLooseModule_AltDD();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseConfigurationImpl Loose Configuration}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseConfigurationImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseconfigPackageImpl#getLooseConfiguration()
- * @generated
- */
- EClass LOOSE_CONFIGURATION = eINSTANCE.getLooseConfiguration();
-
- /**
- * The meta object literal for the 'Applications' containment reference list feature.
- *
- *
- * @generated
- */
- EReference LOOSE_CONFIGURATION__APPLICATIONS = eINSTANCE.getLooseConfiguration_Applications();
-
- /**
- * The meta object literal for the '{@link org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseWARFileImpl Loose WAR File}' class.
- *
- *
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseWARFileImpl
- * @see org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.impl.LooseconfigPackageImpl#getLooseWARFile()
- * @generated
- */
- EClass LOOSE_WAR_FILE = eINSTANCE.getLooseWARFile();
-
- /**
- * The meta object literal for the 'Loose Libs' containment reference list feature.
- *
- *
- * @generated
- */
- EReference LOOSE_WAR_FILE__LOOSE_LIBS = eINSTANCE.getLooseWARFile_LooseLibs();
-
- }
-
-} //LooseconfigPackage
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseApplicationImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseApplicationImpl.java
deleted file mode 100644
index a89df469e..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseApplicationImpl.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.looseconfig.internal.impl;
-
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseApplication;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseconfigPackage;
-
-/**
- * @generated
- */
-public class LooseApplicationImpl extends LooseArchiveImpl implements LooseApplication {
- /**
- * @generated This field/method will be replaced during code generation.
- */
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected EList looseArchives = null;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected LooseApplicationImpl() {
- super();
- }
-
- /**
- *
- * @generated
- */
- protected EClass eStaticClass() {
- return LooseconfigPackage.Literals.LOOSE_APPLICATION;
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public EList getLooseArchives() {
- if (looseArchives == null) {
- looseArchives = new EObjectContainmentWithInverseEList(LooseArchive.class, this, LooseconfigPackage.LOOSE_APPLICATION__LOOSE_ARCHIVES, LooseconfigPackage.LOOSE_ARCHIVE__LOOSE_APP);
- }
- return looseArchives;
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_APPLICATION__LOOSE_ARCHIVES:
- return ((InternalEList)getLooseArchives()).basicAdd(otherEnd, msgs);
- }
- return super.eInverseAdd(otherEnd, featureID, msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_APPLICATION__LOOSE_ARCHIVES:
- return ((InternalEList)getLooseArchives()).basicRemove(otherEnd, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_APPLICATION__LOOSE_ARCHIVES:
- return getLooseArchives();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_APPLICATION__LOOSE_ARCHIVES:
- getLooseArchives().clear();
- getLooseArchives().addAll((Collection)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eUnset(int featureID) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_APPLICATION__LOOSE_ARCHIVES:
- getLooseArchives().clear();
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- *
- *
- * @generated
- */
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_APPLICATION__LOOSE_ARCHIVES:
- return looseArchives != null && !looseArchives.isEmpty();
- }
- return super.eIsSet(featureID);
- }
-
- public boolean isEAR() {
- return true;
- }
-
-
-}
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseArchiveImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseArchiveImpl.java
deleted file mode 100644
index cb25a76a1..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseArchiveImpl.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.looseconfig.internal.impl;
-
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.jst.j2ee.common.internal.impl.J2EEEObjectImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseApplication;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseconfigPackage;
-
-/**
- * @generated
- */
-public abstract class LooseArchiveImpl extends J2EEEObjectImpl implements LooseArchive {
- /**
- * The default value of the '{@link #getUri() Uri}' attribute.
- *
- * @see #getUri()
- * @generated
- * @ordered
- */
- protected static final String URI_EDEFAULT = null;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected String uri = URI_EDEFAULT;
- /**
- * The default value of the '{@link #getBinariesPath() Binaries Path}' attribute.
- *
- * @see #getBinariesPath()
- * @generated
- * @ordered
- */
- protected static final String BINARIES_PATH_EDEFAULT = null;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected String binariesPath = BINARIES_PATH_EDEFAULT;
- /**
- * The default value of the '{@link #getResourcesPath() Resources Path}' attribute.
- *
- * @see #getResourcesPath()
- * @generated
- * @ordered
- */
- protected static final String RESOURCES_PATH_EDEFAULT = null;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected String resourcesPath = RESOURCES_PATH_EDEFAULT;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected LooseArchiveImpl() {
- super();
- }
-
- /**
- *
- * @generated
- */
- protected EClass eStaticClass() {
- return LooseconfigPackage.Literals.LOOSE_ARCHIVE;
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public String getUri() {
- return uri;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public void setUri(String newUri) {
- String oldUri = uri;
- uri = newUri;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, LooseconfigPackage.LOOSE_ARCHIVE__URI, oldUri, uri));
- }
-
- public boolean isEAR() {
- return false;
- }
-
- public boolean isWAR() {
- return false;
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public String getBinariesPath() {
- return binariesPath;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public void setBinariesPath(String newBinariesPath) {
- String oldBinariesPath = binariesPath;
- binariesPath = newBinariesPath;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, LooseconfigPackage.LOOSE_ARCHIVE__BINARIES_PATH, oldBinariesPath, binariesPath));
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public String getResourcesPath() {
- return resourcesPath;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public void setResourcesPath(String newResourcesPath) {
- String oldResourcesPath = resourcesPath;
- resourcesPath = newResourcesPath;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, LooseconfigPackage.LOOSE_ARCHIVE__RESOURCES_PATH, oldResourcesPath, resourcesPath));
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public LooseApplication getLooseApp() {
- if (eContainerFeatureID != LooseconfigPackage.LOOSE_ARCHIVE__LOOSE_APP) return null;
- return (LooseApplication)eContainer();
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain basicSetLooseApp(LooseApplication newLooseApp, NotificationChain msgs) {
- msgs = eBasicSetContainer((InternalEObject)newLooseApp, LooseconfigPackage.LOOSE_ARCHIVE__LOOSE_APP, msgs);
- return msgs;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public void setLooseApp(LooseApplication newLooseApp) {
- if (newLooseApp != eInternalContainer() || (eContainerFeatureID != LooseconfigPackage.LOOSE_ARCHIVE__LOOSE_APP && newLooseApp != null)) {
- if (EcoreUtil.isAncestor(this, newLooseApp))
- throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
- NotificationChain msgs = null;
- if (eInternalContainer() != null)
- msgs = eBasicRemoveFromContainer(msgs);
- if (newLooseApp != null)
- msgs = ((InternalEObject)newLooseApp).eInverseAdd(this, LooseconfigPackage.LOOSE_APPLICATION__LOOSE_ARCHIVES, LooseApplication.class, msgs);
- msgs = basicSetLooseApp(newLooseApp, msgs);
- if (msgs != null) msgs.dispatch();
- }
- else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, LooseconfigPackage.LOOSE_ARCHIVE__LOOSE_APP, newLooseApp, newLooseApp));
- }
-
- public boolean isModule() {
- return false;
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_ARCHIVE__LOOSE_APP:
- if (eInternalContainer() != null)
- msgs = eBasicRemoveFromContainer(msgs);
- return basicSetLooseApp((LooseApplication)otherEnd, msgs);
- }
- return super.eInverseAdd(otherEnd, featureID, msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_ARCHIVE__LOOSE_APP:
- return basicSetLooseApp(null, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
- switch (eContainerFeatureID) {
- case LooseconfigPackage.LOOSE_ARCHIVE__LOOSE_APP:
- return eInternalContainer().eInverseRemove(this, LooseconfigPackage.LOOSE_APPLICATION__LOOSE_ARCHIVES, LooseApplication.class, msgs);
- }
- return super.eBasicRemoveFromContainerFeature(msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_ARCHIVE__URI:
- return getUri();
- case LooseconfigPackage.LOOSE_ARCHIVE__BINARIES_PATH:
- return getBinariesPath();
- case LooseconfigPackage.LOOSE_ARCHIVE__RESOURCES_PATH:
- return getResourcesPath();
- case LooseconfigPackage.LOOSE_ARCHIVE__LOOSE_APP:
- return getLooseApp();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_ARCHIVE__URI:
- setUri((String)newValue);
- return;
- case LooseconfigPackage.LOOSE_ARCHIVE__BINARIES_PATH:
- setBinariesPath((String)newValue);
- return;
- case LooseconfigPackage.LOOSE_ARCHIVE__RESOURCES_PATH:
- setResourcesPath((String)newValue);
- return;
- case LooseconfigPackage.LOOSE_ARCHIVE__LOOSE_APP:
- setLooseApp((LooseApplication)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eUnset(int featureID) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_ARCHIVE__URI:
- setUri(URI_EDEFAULT);
- return;
- case LooseconfigPackage.LOOSE_ARCHIVE__BINARIES_PATH:
- setBinariesPath(BINARIES_PATH_EDEFAULT);
- return;
- case LooseconfigPackage.LOOSE_ARCHIVE__RESOURCES_PATH:
- setResourcesPath(RESOURCES_PATH_EDEFAULT);
- return;
- case LooseconfigPackage.LOOSE_ARCHIVE__LOOSE_APP:
- setLooseApp((LooseApplication)null);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- *
- *
- * @generated
- */
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_ARCHIVE__URI:
- return URI_EDEFAULT == null ? uri != null : !URI_EDEFAULT.equals(uri);
- case LooseconfigPackage.LOOSE_ARCHIVE__BINARIES_PATH:
- return BINARIES_PATH_EDEFAULT == null ? binariesPath != null : !BINARIES_PATH_EDEFAULT.equals(binariesPath);
- case LooseconfigPackage.LOOSE_ARCHIVE__RESOURCES_PATH:
- return RESOURCES_PATH_EDEFAULT == null ? resourcesPath != null : !RESOURCES_PATH_EDEFAULT.equals(resourcesPath);
- case LooseconfigPackage.LOOSE_ARCHIVE__LOOSE_APP:
- return getLooseApp() != null;
- }
- return super.eIsSet(featureID);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public String toString() {
- if (eIsProxy()) return super.toString();
-
- StringBuffer result = new StringBuffer(super.toString());
- result.append(" (uri: ");
- result.append(uri);
- result.append(", binariesPath: ");
- result.append(binariesPath);
- result.append(", resourcesPath: ");
- result.append(resourcesPath);
- result.append(')');
- return result.toString();
- }
-
-} //LooseArchiveImpl
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseConfigurationImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseConfigurationImpl.java
deleted file mode 100644
index a3df27678..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseConfigurationImpl.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.looseconfig.internal.impl;
-
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jst.j2ee.common.internal.impl.J2EEEObjectImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseApplication;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseConfiguration;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseconfigPackage;
-
-/**
- * @generated
- */
-public class LooseConfigurationImpl extends J2EEEObjectImpl implements LooseConfiguration {
- /**
- * @generated This field/method will be replaced during code generation.
- */
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected EList applications = null;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected LooseConfigurationImpl() {
- super();
- }
-
- /**
- *
- * @generated
- */
- protected EClass eStaticClass() {
- return LooseconfigPackage.Literals.LOOSE_CONFIGURATION;
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public EList getApplications() {
- if (applications == null) {
- applications = new EObjectContainmentEList(LooseApplication.class, this, LooseconfigPackage.LOOSE_CONFIGURATION__APPLICATIONS);
- }
- return applications;
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_CONFIGURATION__APPLICATIONS:
- return ((InternalEList)getApplications()).basicRemove(otherEnd, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_CONFIGURATION__APPLICATIONS:
- return getApplications();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_CONFIGURATION__APPLICATIONS:
- getApplications().clear();
- getApplications().addAll((Collection)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eUnset(int featureID) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_CONFIGURATION__APPLICATIONS:
- getApplications().clear();
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- *
- *
- * @generated
- */
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_CONFIGURATION__APPLICATIONS:
- return applications != null && !applications.isEmpty();
- }
- return super.eIsSet(featureID);
- }
-
-} //LooseConfigurationImpl
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseLibraryImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseLibraryImpl.java
deleted file mode 100644
index cfb3250c0..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseLibraryImpl.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.looseconfig.internal.impl;
-
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseLibrary;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseWARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseconfigPackage;
-
-/**
- * @generated
- */
-public class LooseLibraryImpl extends LooseArchiveImpl implements LooseLibrary {
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected LooseLibraryImpl() {
- super();
- }
-
- /**
- *
- * @generated
- */
- protected EClass eStaticClass() {
- return LooseconfigPackage.Literals.LOOSE_LIBRARY;
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public LooseWARFile getLooseWAR() {
- if (eContainerFeatureID != LooseconfigPackage.LOOSE_LIBRARY__LOOSE_WAR) return null;
- return (LooseWARFile)eContainer();
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain basicSetLooseWAR(LooseWARFile newLooseWAR, NotificationChain msgs) {
- msgs = eBasicSetContainer((InternalEObject)newLooseWAR, LooseconfigPackage.LOOSE_LIBRARY__LOOSE_WAR, msgs);
- return msgs;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public void setLooseWAR(LooseWARFile newLooseWAR) {
- if (newLooseWAR != eInternalContainer() || (eContainerFeatureID != LooseconfigPackage.LOOSE_LIBRARY__LOOSE_WAR && newLooseWAR != null)) {
- if (EcoreUtil.isAncestor(this, newLooseWAR))
- throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
- NotificationChain msgs = null;
- if (eInternalContainer() != null)
- msgs = eBasicRemoveFromContainer(msgs);
- if (newLooseWAR != null)
- msgs = ((InternalEObject)newLooseWAR).eInverseAdd(this, LooseconfigPackage.LOOSE_WAR_FILE__LOOSE_LIBS, LooseWARFile.class, msgs);
- msgs = basicSetLooseWAR(newLooseWAR, msgs);
- if (msgs != null) msgs.dispatch();
- }
- else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, LooseconfigPackage.LOOSE_LIBRARY__LOOSE_WAR, newLooseWAR, newLooseWAR));
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_LIBRARY__LOOSE_WAR:
- if (eInternalContainer() != null)
- msgs = eBasicRemoveFromContainer(msgs);
- return basicSetLooseWAR((LooseWARFile)otherEnd, msgs);
- }
- return super.eInverseAdd(otherEnd, featureID, msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_LIBRARY__LOOSE_WAR:
- return basicSetLooseWAR(null, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
- switch (eContainerFeatureID) {
- case LooseconfigPackage.LOOSE_LIBRARY__LOOSE_WAR:
- return eInternalContainer().eInverseRemove(this, LooseconfigPackage.LOOSE_WAR_FILE__LOOSE_LIBS, LooseWARFile.class, msgs);
- }
- return super.eBasicRemoveFromContainerFeature(msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_LIBRARY__LOOSE_WAR:
- return getLooseWAR();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_LIBRARY__LOOSE_WAR:
- setLooseWAR((LooseWARFile)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eUnset(int featureID) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_LIBRARY__LOOSE_WAR:
- setLooseWAR((LooseWARFile)null);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- *
- *
- * @generated
- */
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_LIBRARY__LOOSE_WAR:
- return getLooseWAR() != null;
- }
- return super.eIsSet(featureID);
- }
-
-} //LooseLibraryImpl
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseModuleImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseModuleImpl.java
deleted file mode 100644
index 5a181a609..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseModuleImpl.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.looseconfig.internal.impl;
-
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseModule;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseconfigPackage;
-
-/**
- * @generated
- */
-public class LooseModuleImpl extends LooseArchiveImpl implements LooseModule {
- /**
- * The default value of the '{@link #getAltDD() Alt DD}' attribute.
- *
- * @see #getAltDD()
- * @generated
- * @ordered
- */
- protected static final String ALT_DD_EDEFAULT = null;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected String altDD = ALT_DD_EDEFAULT;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected LooseModuleImpl() {
- super();
- }
-
- /**
- *
- * @generated
- */
- protected EClass eStaticClass() {
- return LooseconfigPackage.Literals.LOOSE_MODULE;
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public String getAltDD() {
- return altDD;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public void setAltDD(String newAltDD) {
- String oldAltDD = altDD;
- altDD = newAltDD;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, LooseconfigPackage.LOOSE_MODULE__ALT_DD, oldAltDD, altDD));
- }
-
- /**
- *
- *
- * @generated
- */
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_MODULE__ALT_DD:
- return getAltDD();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_MODULE__ALT_DD:
- setAltDD((String)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eUnset(int featureID) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_MODULE__ALT_DD:
- setAltDD(ALT_DD_EDEFAULT);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- *
- *
- * @generated
- */
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_MODULE__ALT_DD:
- return ALT_DD_EDEFAULT == null ? altDD != null : !ALT_DD_EDEFAULT.equals(altDD);
- }
- return super.eIsSet(featureID);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public String toString() {
- if (eIsProxy()) return super.toString();
-
- StringBuffer result = new StringBuffer(super.toString());
- result.append(" (altDD: ");
- result.append(altDD);
- result.append(')');
- return result.toString();
- }
-
-} //LooseModuleImpl
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseWARFileImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseWARFileImpl.java
deleted file mode 100644
index b257c8fe3..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseWARFileImpl.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.looseconfig.internal.impl;
-
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseLibrary;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseWARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseconfigPackage;
-
-/**
- * @generated
- */
-public class LooseWARFileImpl extends LooseModuleImpl implements LooseWARFile {
- /**
- * @generated This field/method will be replaced during code generation.
- */
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected EList looseLibs = null;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected LooseWARFileImpl() {
- super();
- }
-
- /**
- *
- * @generated
- */
- protected EClass eStaticClass() {
- return LooseconfigPackage.Literals.LOOSE_WAR_FILE;
- }
-
- public boolean isWAR() {
- return true;
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public EList getLooseLibs() {
- if (looseLibs == null) {
- looseLibs = new EObjectContainmentWithInverseEList(LooseLibrary.class, this, LooseconfigPackage.LOOSE_WAR_FILE__LOOSE_LIBS, LooseconfigPackage.LOOSE_LIBRARY__LOOSE_WAR);
- }
- return looseLibs;
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_WAR_FILE__LOOSE_LIBS:
- return ((InternalEList)getLooseLibs()).basicAdd(otherEnd, msgs);
- }
- return super.eInverseAdd(otherEnd, featureID, msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_WAR_FILE__LOOSE_LIBS:
- return ((InternalEList)getLooseLibs()).basicRemove(otherEnd, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_WAR_FILE__LOOSE_LIBS:
- return getLooseLibs();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_WAR_FILE__LOOSE_LIBS:
- getLooseLibs().clear();
- getLooseLibs().addAll((Collection)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- *
- *
- * @generated
- */
- public void eUnset(int featureID) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_WAR_FILE__LOOSE_LIBS:
- getLooseLibs().clear();
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- *
- *
- * @generated
- */
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case LooseconfigPackage.LOOSE_WAR_FILE__LOOSE_LIBS:
- return looseLibs != null && !looseLibs.isEmpty();
- }
- return super.eIsSet(featureID);
- }
-
-} //LooseWARFileImpl
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseconfigFactoryImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseconfigFactoryImpl.java
deleted file mode 100644
index 11fe7db3a..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseconfigFactoryImpl.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.looseconfig.internal.impl;
-
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EFactory;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.impl.EFactoryImpl;
-import org.eclipse.emf.ecore.plugin.EcorePlugin;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseApplication;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseConfiguration;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseLibrary;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseModule;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseWARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseconfigFactory;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseconfigPackage;
-
-
-public class LooseconfigFactoryImpl extends EFactoryImpl implements LooseconfigFactory, EFactory {
- /**
- * Creates the default factory implementation.
- *
- *
- * @generated
- */
- public static LooseconfigFactory init() {
- try {
- LooseconfigFactory theLooseconfigFactory = (LooseconfigFactory)EPackage.Registry.INSTANCE.getEFactory("commonarchive.looseconfig.xmi");
- if (theLooseconfigFactory != null) {
- return theLooseconfigFactory;
- }
- }
- catch (Exception exception) {
- EcorePlugin.INSTANCE.log(exception);
- }
- return new LooseconfigFactoryImpl();
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public LooseconfigFactoryImpl() {
- super();
- }
-
- /**
- *
- * @generated
- */
- public EObject create(EClass eClass) {
- switch (eClass.getClassifierID()) {
- case LooseconfigPackage.LOOSE_APPLICATION: return createLooseApplication();
- case LooseconfigPackage.LOOSE_LIBRARY: return createLooseLibrary();
- case LooseconfigPackage.LOOSE_MODULE: return createLooseModule();
- case LooseconfigPackage.LOOSE_CONFIGURATION: return createLooseConfiguration();
- case LooseconfigPackage.LOOSE_WAR_FILE: return createLooseWARFile();
- default:
- throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
- }
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public LooseApplication createLooseApplication() {
- LooseApplicationImpl looseApplication = new LooseApplicationImpl();
- return looseApplication;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public LooseLibrary createLooseLibrary() {
- LooseLibraryImpl looseLibrary = new LooseLibraryImpl();
- return looseLibrary;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public LooseWARFile createLooseWARFile() {
- LooseWARFileImpl looseWARFile = new LooseWARFileImpl();
- return looseWARFile;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public LooseModule createLooseModule() {
- LooseModuleImpl looseModule = new LooseModuleImpl();
- return looseModule;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public LooseConfiguration createLooseConfiguration() {
- LooseConfigurationImpl looseConfiguration = new LooseConfigurationImpl();
- return looseConfiguration;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public LooseconfigPackage getLooseconfigPackage() {
- return (LooseconfigPackage)getEPackage();
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public static LooseconfigPackage getPackage() {
- return LooseconfigPackage.eINSTANCE;
- }
-
-} //LooseconfigFactoryImpl
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseconfigPackageImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseconfigPackageImpl.java
deleted file mode 100644
index 44b7a91ee..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/impl/LooseconfigPackageImpl.java
+++ /dev/null
@@ -1,346 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.looseconfig.internal.impl;
-
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.jem.java.JavaRefPackage;
-import org.eclipse.jst.j2ee.application.ApplicationPackage;
-import org.eclipse.jst.j2ee.client.ClientPackage;
-import org.eclipse.jst.j2ee.common.CommonPackage;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchivePackage;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchivePackageImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseApplication;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseConfiguration;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseLibrary;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseModule;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseWARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseconfigFactory;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseconfigPackage;
-import org.eclipse.jst.j2ee.ejb.EjbPackage;
-import org.eclipse.jst.j2ee.jca.JcaPackage;
-import org.eclipse.jst.j2ee.jsp.JspPackage;
-import org.eclipse.jst.j2ee.webapplication.WebapplicationPackage;
-import org.eclipse.jst.j2ee.webservice.wsclient.Webservice_clientPackage;
-
-
-/**
- * @lastgen class LooseconfigPackageImpl extends EPackageImpl implements LooseconfigPackage,
- * EPackage {}
- */
-public class LooseconfigPackageImpl extends EPackageImpl implements LooseconfigPackage {
- /**
- *
- * @generated
- */
- private EClass looseApplicationEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass looseArchiveEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass looseLibraryEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass looseModuleEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass looseConfigurationEClass = null;
-
- /**
- *
- * @generated
- */
- private EClass looseWARFileEClass = null;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- private LooseconfigPackageImpl() {
- super(eNS_URI, LooseconfigFactory.eINSTANCE);
- }
-
- /**
- *
- * @generated
- */
- private static boolean isInited = false;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public static LooseconfigPackage init() {
- if (isInited) return (LooseconfigPackage)EPackage.Registry.INSTANCE.getEPackage(LooseconfigPackage.eNS_URI);
-
- // Obtain or create and register package
- LooseconfigPackageImpl theLooseconfigPackage = (LooseconfigPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof LooseconfigPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new LooseconfigPackageImpl());
-
- isInited = true;
-
- // Initialize simple dependencies
- EcorePackage.eINSTANCE.eClass();
- Webservice_clientPackage.eINSTANCE.eClass();
- CommonPackage.eINSTANCE.eClass();
- WebapplicationPackage.eINSTANCE.eClass();
- EjbPackage.eINSTANCE.eClass();
- JspPackage.eINSTANCE.eClass();
- ApplicationPackage.eINSTANCE.eClass();
- ClientPackage.eINSTANCE.eClass();
- JcaPackage.eINSTANCE.eClass();
- JavaRefPackage.eINSTANCE.eClass();
-
- // Obtain or create and register interdependencies
- CommonarchivePackageImpl theCommonarchivePackage = (CommonarchivePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CommonarchivePackage.eNS_URI) instanceof CommonarchivePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CommonarchivePackage.eNS_URI) : CommonarchivePackage.eINSTANCE);
-
- // Create package meta-data objects
- theLooseconfigPackage.createPackageContents();
- theCommonarchivePackage.createPackageContents();
-
- // Initialize created meta-data
- theLooseconfigPackage.initializePackageContents();
- theCommonarchivePackage.initializePackageContents();
-
- // Mark meta-data to indicate it can't be changed
- theLooseconfigPackage.freeze();
-
- return theLooseconfigPackage;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getLooseApplication() {
- return looseApplicationEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EReference getLooseApplication_LooseArchives() {
- return (EReference)looseApplicationEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getLooseArchive() {
- return looseArchiveEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EAttribute getLooseArchive_Uri() {
- return (EAttribute)looseArchiveEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EAttribute getLooseArchive_BinariesPath() {
- return (EAttribute)looseArchiveEClass.getEStructuralFeatures().get(1);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EAttribute getLooseArchive_ResourcesPath() {
- return (EAttribute)looseArchiveEClass.getEStructuralFeatures().get(2);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EReference getLooseArchive_LooseApp() {
- return (EReference)looseArchiveEClass.getEStructuralFeatures().get(3);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getLooseLibrary() {
- return looseLibraryEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EReference getLooseLibrary_LooseWAR() {
- return (EReference)looseLibraryEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getLooseWARFile() {
- return looseWARFileEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EReference getLooseWARFile_LooseLibs() {
- return (EReference)looseWARFileEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getLooseModule() {
- return looseModuleEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EAttribute getLooseModule_AltDD() {
- return (EAttribute)looseModuleEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EClass getLooseConfiguration() {
- return looseConfigurationEClass;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public EReference getLooseConfiguration_Applications() {
- return (EReference)looseConfigurationEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public LooseconfigFactory getLooseconfigFactory() {
- return (LooseconfigFactory)getEFactoryInstance();
- }
-
- /**
- *
- * @generated
- */
- private boolean isCreated = false;
-
- /**
- * Creates the meta-model objects for the package. This method is
- * guarded to have no affect on any invocation but its first.
- *
- * @generated
- */
- public void createPackageContents() {
- if (isCreated) return;
- isCreated = true;
-
- // Create classes and their features
- looseApplicationEClass = createEClass(LOOSE_APPLICATION);
- createEReference(looseApplicationEClass, LOOSE_APPLICATION__LOOSE_ARCHIVES);
-
- looseArchiveEClass = createEClass(LOOSE_ARCHIVE);
- createEAttribute(looseArchiveEClass, LOOSE_ARCHIVE__URI);
- createEAttribute(looseArchiveEClass, LOOSE_ARCHIVE__BINARIES_PATH);
- createEAttribute(looseArchiveEClass, LOOSE_ARCHIVE__RESOURCES_PATH);
- createEReference(looseArchiveEClass, LOOSE_ARCHIVE__LOOSE_APP);
-
- looseLibraryEClass = createEClass(LOOSE_LIBRARY);
- createEReference(looseLibraryEClass, LOOSE_LIBRARY__LOOSE_WAR);
-
- looseModuleEClass = createEClass(LOOSE_MODULE);
- createEAttribute(looseModuleEClass, LOOSE_MODULE__ALT_DD);
-
- looseConfigurationEClass = createEClass(LOOSE_CONFIGURATION);
- createEReference(looseConfigurationEClass, LOOSE_CONFIGURATION__APPLICATIONS);
-
- looseWARFileEClass = createEClass(LOOSE_WAR_FILE);
- createEReference(looseWARFileEClass, LOOSE_WAR_FILE__LOOSE_LIBS);
- }
-
- /**
- *
- * @generated
- */
- private boolean isInitialized = false;
-
- /**
- * Complete the initialization of the package and its meta-model. This
- * method is guarded to have no affect on any invocation but its first.
- *
- * @generated
- */
- public void initializePackageContents() {
- if (isInitialized) return;
- isInitialized = true;
-
- // Initialize package
- setName(eNAME);
- setNsPrefix(eNS_PREFIX);
- setNsURI(eNS_URI);
-
- // Obtain other dependent packages
- CommonPackage theCommonPackage = (CommonPackage)EPackage.Registry.INSTANCE.getEPackage(CommonPackage.eNS_URI);
-
- // Add supertypes to classes
- looseApplicationEClass.getESuperTypes().add(this.getLooseArchive());
- looseArchiveEClass.getESuperTypes().add(theCommonPackage.getJ2EEEObject());
- looseLibraryEClass.getESuperTypes().add(this.getLooseArchive());
- looseModuleEClass.getESuperTypes().add(this.getLooseArchive());
- looseConfigurationEClass.getESuperTypes().add(theCommonPackage.getJ2EEEObject());
- looseWARFileEClass.getESuperTypes().add(this.getLooseModule());
-
- // Initialize classes and features; add operations and parameters
- initEClass(looseApplicationEClass, LooseApplication.class, "LooseApplication", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getLooseApplication_LooseArchives(), this.getLooseArchive(), this.getLooseArchive_LooseApp(), "looseArchives", null, 0, -1, LooseApplication.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(looseArchiveEClass, LooseArchive.class, "LooseArchive", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getLooseArchive_Uri(), ecorePackage.getEString(), "uri", null, 0, 1, LooseArchive.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getLooseArchive_BinariesPath(), ecorePackage.getEString(), "binariesPath", null, 0, 1, LooseArchive.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getLooseArchive_ResourcesPath(), ecorePackage.getEString(), "resourcesPath", null, 0, 1, LooseArchive.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getLooseArchive_LooseApp(), this.getLooseApplication(), this.getLooseApplication_LooseArchives(), "looseApp", null, 0, 1, LooseArchive.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- addEOperation(looseArchiveEClass, ecorePackage.getEBoolean(), "isModule", 0, 1);
-
- initEClass(looseLibraryEClass, LooseLibrary.class, "LooseLibrary", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getLooseLibrary_LooseWAR(), this.getLooseWARFile(), this.getLooseWARFile_LooseLibs(), "looseWAR", null, 0, 1, LooseLibrary.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(looseModuleEClass, LooseModule.class, "LooseModule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getLooseModule_AltDD(), ecorePackage.getEString(), "altDD", null, 0, 1, LooseModule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(looseConfigurationEClass, LooseConfiguration.class, "LooseConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getLooseConfiguration_Applications(), this.getLooseApplication(), null, "applications", null, 0, -1, LooseConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(looseWARFileEClass, LooseWARFile.class, "LooseWARFile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getLooseWARFile_LooseLibs(), this.getLooseLibrary(), this.getLooseLibrary_LooseWAR(), "looseLibs", null, 0, -1, LooseWARFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- }
-
-} //LooseconfigPackageImpl
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/util/LooseconfigAdapterFactory.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/util/LooseconfigAdapterFactory.java
deleted file mode 100644
index a2538aa98..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/util/LooseconfigAdapterFactory.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.looseconfig.internal.util;
-
-
-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.emf.ecore.EObject;
-import org.eclipse.jst.j2ee.common.J2EEEObject;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseApplication;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseConfiguration;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseLibrary;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseModule;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseWARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseconfigPackage;
-
-
-/**
- * @lastgen class LooseconfigAdapterFactory extends AdapterFactoryImpl {}
- */
-public class LooseconfigAdapterFactory extends AdapterFactoryImpl {
- /**
- * @generated This field/method will be replaced during code generation.
- */
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected static LooseconfigPackage modelPackage;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public LooseconfigAdapterFactory() {
- if (modelPackage == null) {
- modelPackage = LooseconfigPackage.eINSTANCE;
- }
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public boolean isFactoryForType(Object object) {
- if (object == modelPackage) {
- return true;
- }
- if (object instanceof EObject) {
- return ((EObject)object).eClass().getEPackage() == modelPackage;
- }
- return false;
- }
-
- /**
- * The switch the delegates to the createXXX
methods.
- *
- *
- * @generated
- */
- protected LooseconfigSwitch modelSwitch =
- new LooseconfigSwitch() {
- public Object caseLooseApplication(LooseApplication object) {
- return createLooseApplicationAdapter();
- }
- public Object caseLooseArchive(LooseArchive object) {
- return createLooseArchiveAdapter();
- }
- public Object caseLooseLibrary(LooseLibrary object) {
- return createLooseLibraryAdapter();
- }
- public Object caseLooseModule(LooseModule object) {
- return createLooseModuleAdapter();
- }
- public Object caseLooseConfiguration(LooseConfiguration object) {
- return createLooseConfigurationAdapter();
- }
- public Object caseLooseWARFile(LooseWARFile object) {
- return createLooseWARFileAdapter();
- }
- public Object caseJ2EEEObject(J2EEEObject object) {
- return createJ2EEEObjectAdapter();
- }
- public Object defaultCase(EObject object) {
- return createEObjectAdapter();
- }
- };
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createAdapter(Notifier target) {
- return (Adapter)modelSwitch.doSwitch((EObject)target);
- }
-
-
- /**
- * By default create methods return null so that we can easily ignore cases. It's useful to
- * ignore a case when inheritance will catch all the cases anyway.
- */
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createLooseApplicationAdapter() {
-
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createLooseArchiveAdapter() {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createLooseLibraryAdapter() {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createLooseWARFileAdapter() {
- return null;
- }
-
- /**
- * Creates a new adapter for an object of class '{@link org.eclipse.jst.j2ee.common.J2EEEObject J2EEE Object}'.
- *
- * This default implementation returns null so that we can easily ignore cases;
- * it's useful to ignore a case when inheritance will catch all the cases anyway.
- *
- * @return the new adapter.
- * @see org.eclipse.jst.j2ee.common.J2EEEObject
- * @generated
- */
- public Adapter createJ2EEEObjectAdapter() {
- return null;
- }
-
- /**
- * Creates a new adapter for the default case.
- * This default
- * implementation returns null.
- * @return the new adapter.
- * @generated
- */
- public Adapter createEObjectAdapter() {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createLooseModuleAdapter() {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Adapter createLooseConfigurationAdapter() {
- return null;
- }
-
-} //LooseconfigAdapterFactory
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/util/LooseconfigSwitch.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/util/LooseconfigSwitch.java
deleted file mode 100644
index 2ebc6fc9a..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/util/LooseconfigSwitch.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.j2ee.commonarchivecore.looseconfig.internal.util;
-
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jst.j2ee.common.J2EEEObject;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseApplication;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseArchive;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseConfiguration;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseLibrary;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseModule;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseWARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.looseconfig.internal.LooseconfigPackage;
-
-
-/**
- * @lastgen class LooseconfigSwitch {}
- */
-public class LooseconfigSwitch {
- /**
- * The cached model package
- *
- * @generated
- */
- protected static LooseconfigPackage modelPackage;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public LooseconfigSwitch() {
- if (modelPackage == null) {
- modelPackage = LooseconfigPackage.eINSTANCE;
- }
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object doSwitch(EObject theEObject) {
- return doSwitch(theEObject.eClass(), theEObject);
- }
-
- /**
- * Calls caseXXX
for each class of the model until one returns a non null result; it yields that result.
- *
- *
- * @return the first non-null result returned by a caseXXX
call.
- * @generated
- */
- protected Object doSwitch(EClass theEClass, EObject theEObject) {
- if (theEClass.eContainer() == modelPackage) {
- return doSwitch(theEClass.getClassifierID(), theEObject);
- }
- else {
- List eSuperTypes = theEClass.getESuperTypes();
- return
- eSuperTypes.isEmpty() ?
- defaultCase(theEObject) :
- doSwitch((EClass)eSuperTypes.get(0), theEObject);
- }
- }
-
- /**
- * Calls caseXXX
for each class of the model until one returns a non null result; it yields that result.
- *
- *
- * @return the first non-null result returned by a caseXXX
call.
- * @generated
- */
- protected Object doSwitch(int classifierID, EObject theEObject) {
- switch (classifierID) {
- case LooseconfigPackage.LOOSE_APPLICATION: {
- LooseApplication looseApplication = (LooseApplication)theEObject;
- Object result = caseLooseApplication(looseApplication);
- if (result == null) result = caseLooseArchive(looseApplication);
- if (result == null) result = caseJ2EEEObject(looseApplication);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case LooseconfigPackage.LOOSE_ARCHIVE: {
- LooseArchive looseArchive = (LooseArchive)theEObject;
- Object result = caseLooseArchive(looseArchive);
- if (result == null) result = caseJ2EEEObject(looseArchive);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case LooseconfigPackage.LOOSE_LIBRARY: {
- LooseLibrary looseLibrary = (LooseLibrary)theEObject;
- Object result = caseLooseLibrary(looseLibrary);
- if (result == null) result = caseLooseArchive(looseLibrary);
- if (result == null) result = caseJ2EEEObject(looseLibrary);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case LooseconfigPackage.LOOSE_MODULE: {
- LooseModule looseModule = (LooseModule)theEObject;
- Object result = caseLooseModule(looseModule);
- if (result == null) result = caseLooseArchive(looseModule);
- if (result == null) result = caseJ2EEEObject(looseModule);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case LooseconfigPackage.LOOSE_CONFIGURATION: {
- LooseConfiguration looseConfiguration = (LooseConfiguration)theEObject;
- Object result = caseLooseConfiguration(looseConfiguration);
- if (result == null) result = caseJ2EEEObject(looseConfiguration);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case LooseconfigPackage.LOOSE_WAR_FILE: {
- LooseWARFile looseWARFile = (LooseWARFile)theEObject;
- Object result = caseLooseWARFile(looseWARFile);
- if (result == null) result = caseLooseModule(looseWARFile);
- if (result == null) result = caseLooseArchive(looseWARFile);
- if (result == null) result = caseJ2EEEObject(looseWARFile);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- default: return defaultCase(theEObject);
- }
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseLooseApplication(LooseApplication object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseLooseArchive(LooseArchive object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseLooseLibrary(LooseLibrary object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseLooseWARFile(LooseWARFile object) {
- return null;
- }
-
- /**
- * Returns the result of interpretting the object as an instance of 'J2EEE Object'.
- *
- * This implementation returns null;
- * returning a non-null result will terminate the switch.
- *
- * @param object the target of the switch.
- * @return the result of interpretting the object as an instance of 'J2EEE Object'.
- * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
- * @generated
- */
- public Object caseJ2EEEObject(J2EEEObject object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseLooseModule(LooseModule object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object caseLooseConfiguration(LooseConfiguration object) {
- return null;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public Object defaultCase(EObject object) {
- return null;
- }
-
-} //LooseconfigSwitch
-
-
-
diff --git a/plugins/org.eclipse.jst.j2ee.core/component.xml b/plugins/org.eclipse.jst.j2ee.core/component.xml
deleted file mode 100644
index 3fa448186..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/component.xml
+++ /dev/null
@@ -1,176 +0,0 @@
-
-